Data.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <?php
  2. namespace Push\Lib;
  3. use Dever;
  4. class Data
  5. {
  6. public function get($key, $name, $total = 10, $page = false, $limit = false)
  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'] = '1,3';
  14. $info['id'] = Dever::db('push/info')->insert($insert);
  15. $info['num'] = $insert['num'];
  16. }
  17. $data = array();
  18. if ($info) {
  19. if (!$info['num']) {
  20. $info['num'] = 20;
  21. }
  22. if ($limit > 0) {
  23. $info['num'] = $limit;
  24. }
  25. $where = array();
  26. $where['info_id'] = $info['id'];
  27. /*
  28. if (checkVersion()->video == 2) {
  29. $where['type_no'] = 2;
  30. }
  31. */
  32. if ($page) {
  33. $where['page'] = array($info['num'], 'list');
  34. $data = Dever::db('push/data')->getAllPage($where);
  35. } else {
  36. $where['limit'] = '0,' . $info['num'];
  37. $data = Dever::db('push/data')->getAll($where);
  38. }
  39. if ($data) {
  40. foreach ($data as $k => $v) {
  41. $data[$k] = $this->getOne($v);
  42. }
  43. }
  44. }
  45. return $data;
  46. }
  47. private function getOne($info)
  48. {
  49. $info['id'] = 0;
  50. if ($info['type'] < 10 || $info['type'] == 13) {
  51. $table = Dever::config('base')->type_table[$info['type']];
  52. $method = 'one';
  53. if ($info['type'] == 1) {
  54. $id = $info['article_id'];
  55. } elseif ($info['type'] == 2) {
  56. $id = $info['vod_id'];
  57. } elseif ($info['type'] == 3) {
  58. $id = $info['live_id'];
  59. } elseif ($info['type'] == 4) {
  60. $id = $info['journal_id'];
  61. $method = 'getOne';
  62. } elseif ($info['type'] == 6) {
  63. $id = $info['feature_id'];
  64. } elseif ($info['type'] == 7) {
  65. $id = $info['applet_id'];
  66. } elseif ($info['type'] == 13) {
  67. $id = $info['journal_id'];
  68. }
  69. unset($info['article_id']);
  70. unset($info['vod_id']);
  71. unset($info['live_id']);
  72. unset($info['journal_id']);
  73. unset($info['feature_id']);
  74. unset($info['applet_id']);
  75. if ($id > 0) {
  76. $info['id'] = $id;
  77. $data = Dever::db($table)->$method($id);
  78. if (isset($data) && $data) {
  79. if (isset($data['name']) && $data['name'] && !$info['name']) {
  80. $info['name'] = $data['name'];
  81. }
  82. if (isset($data['pic_cover']) && $data['pic_cover'] && !$info['pic']) {
  83. $info['pic'] = $data['pic_cover'];
  84. }
  85. if (isset($data['pic_cover_169']) && $data['pic_cover_169']) {
  86. $info['pic_169'] = $data['pic_cover_169'];
  87. }
  88. if (isset($data['pic_view_cover']) && $data['pic_view_cover'] && !$info['pic']) {
  89. $info['pic'] = $data['pic_view_cover'];
  90. }
  91. if (isset($data['num_ding'])) {
  92. $info['num_ding'] = $data['num_ding'];
  93. }
  94. if (isset($data['buy'])) {
  95. $info['buy'] = $data['buy'];
  96. }
  97. if (isset($data['pdate']) && $data['pdate']) {
  98. $info['cdate'] = $data['pdate'];
  99. }
  100. if (isset($data['cate_id']) && $data['cate_id']) {
  101. $cate = Dever::db('content/cate')->one($data['cate_id']);
  102. $info['cate_name'] = $cate['name'];
  103. }
  104. if (isset($data['author_id']) && $data['author_id']) {
  105. $author = Dever::db('content/author')->one($data['author_id']);
  106. $info['author_name'] = $author['name'];
  107. }
  108. if (isset($data['appid']) && $data['appid']) {
  109. $info['appid'] = $data['appid'];
  110. }
  111. if (isset($data['link']) && $data['link']) {
  112. $info['link'] = $data['link'];
  113. }
  114. }
  115. }
  116. } else {
  117. unset($info['article_id']);
  118. unset($info['vod_id']);
  119. unset($info['live_id']);
  120. unset($info['journal_id']);
  121. unset($info['feature_id']);
  122. unset($info['applet_id']);
  123. }
  124. if ($info['link']) {
  125. if (!strstr($info['link'], 'http')) {
  126. $info['link'] = 'http://' . $info['link'];
  127. }
  128. }
  129. $info['cdate'] = date('Y-m-d', $info['cdate']);
  130. if (isset($info['pic']) && $info['pic']) {
  131. $info['pic'] = Dever::load('main/lib/core')->replacePic($info['pic']);
  132. }
  133. if (isset($info['name']) && $info['name']) {
  134. $info['name'] = Dever::cut($info['name'], 20, '...');
  135. }
  136. return $info;
  137. }
  138. }