Data.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. namespace Push\Lib;
  3. use Dever;
  4. class Data
  5. {
  6. public function get($key, $name, $total = 10, $col = '1,2,3', $func = '-1', $page = false, $limit = false, $cdate = 'Y-m-d H:i')
  7. {
  8. $info = Dever::db('push/info')->one(array('key' => $key));
  9. if (!$info) {
  10. $insert['key'] = $key;
  11. $insert['name'] = $name;
  12. $insert['num'] = $total;
  13. $insert['col'] = $col;
  14. $insert['func'] = $func;
  15. $info['id'] = Dever::db('push/info')->insert($insert);
  16. $info['num'] = $insert['num'];
  17. }
  18. $data = array();
  19. if ($info) {
  20. if (!$info['num']) {
  21. $info['num'] = 20;
  22. }
  23. if ($limit > 0) {
  24. $info['num'] = $limit;
  25. }
  26. $where = array();
  27. $where['info_id'] = $info['id'];
  28. if ($page) {
  29. $where['page'] = array($info['num'], 'list');
  30. $data = Dever::db('push/data')->getAllPage($where);
  31. } else {
  32. $where['limit'] = '0,' . $info['num'];
  33. $data = Dever::db('push/data')->getAll($where);
  34. }
  35. if ($data) {
  36. foreach ($data as $k => $v) {
  37. $data[$k] = $this->getOne($v, 2, $cdate);
  38. }
  39. }
  40. }
  41. return $data;
  42. }
  43. public function getOne($info, $state = 2, $cdate = 'Y-m-d H:i')
  44. {
  45. $data = is_array($info) ? $info : Dever::db('push/data')->one($info);
  46. $source = array();
  47. $info = array();
  48. $col = array();
  49. if ($data['type'] > 0) {
  50. $func = Dever::db('push/func')->one($data['type']);
  51. if ($func) {
  52. if ($func['type'] == 1) {
  53. $method = $func['api'];
  54. $col = Dever::array_decode($func['col']);
  55. $source = Dever::load($method, $data['type_id']);
  56. } else {
  57. $data['type_id'] = $func['api'];
  58. }
  59. }
  60. }
  61. if ($state == 1) {
  62. $result = array();
  63. } else {
  64. $result = $data;
  65. unset($result['data']);
  66. $result['cdate_string'] = date($cdate, $result['cdate']);
  67. }
  68. $text = $data['data'];
  69. $text = Dever::array_decode($text);
  70. foreach ($text as $k => $v) {
  71. foreach ($v as $k1 => $v1) {
  72. if (strstr($k1, 'col_')) {
  73. $id = str_replace('col_', '', $k1);
  74. $col_info = Dever::db('push/col')->one($id);
  75. if (!$v1 && $source && $col) {
  76. foreach ($col as $k2 => $v2) {
  77. if ($v2['col_id'] == $id && isset($source[$v2['name']]) && $source[$v2['name']]) {
  78. $v1 = $source[$v2['name']];
  79. }
  80. }
  81. }
  82. if ($state == 1) {
  83. if (strstr($v1, 'jpg') || strstr($v1, 'png') || strstr($v1, 'gif')) {
  84. $v1 = '<img src="'.$v1.'" width="150"/>';
  85. }
  86. if (!isset($result[$k])) {
  87. $result[$k] = array();
  88. }
  89. $result[$k][$col_info['name']] = $v1;
  90. } else {
  91. $result[$col_info['ename']] = $v1;
  92. }
  93. }
  94. }
  95. }
  96. return $result;
  97. }
  98. }