Manage.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. namespace Journal\Lib;
  3. use Dever;
  4. class Manage
  5. {
  6. private function search($table = 'content/article')
  7. {
  8. $keyword = Dever::input('keyword');
  9. $yes = Dever::input('yes');
  10. $where = array();
  11. if ($yes) {
  12. $yes = Dever::db($table)->search(array('ids' => $yes));
  13. }
  14. if (!$keyword) {
  15. $where['limit'] = '0,50';
  16. $data = Dever::db($table)->search($where);
  17. } else {
  18. $where['name'] = $keyword;
  19. $data = Dever::db($table)->search($where);
  20. }
  21. $result = array();
  22. if ($yes) {
  23. foreach ($yes as $k => $v) {
  24. if (isset($data[$k])) {
  25. unset($data[$k]);
  26. }
  27. $yes[$k]['selected'] = 'selected';
  28. }
  29. $data = $yes + $data;
  30. $data = array_merge($data, array());
  31. }
  32. return $data;
  33. }
  34. # 搜索文章
  35. public function search_article_api()
  36. {
  37. return $this->search('content/article');
  38. }
  39. # 搜索视频
  40. public function search_vod_api()
  41. {
  42. return $this->search('video/vod');
  43. }
  44. # 搜索直播
  45. public function search_live_api()
  46. {
  47. return $this->search('video/live');
  48. }
  49. # 搜索小刊
  50. public function search_journal_api()
  51. {
  52. return $this->search('journal/info');
  53. }
  54. # 显示杂志内页
  55. public function journalContent()
  56. {
  57. $where['info_id'] = Dever::input('search_option_info_id');
  58. $where['state'] = Dever::input('search_option_state');
  59. $data = Dever::db('journal/content')->all($where);
  60. $database = Dever::load('manage/database');
  61. if ($data) {
  62. foreach ($data as $k => $v) {
  63. if ($v['type'] <= 2) {
  64. $data[$k]['name'] = '';
  65. } elseif ($v['type'] == 3) {
  66. $data[$k]['pic'] = $v['focus'];
  67. }
  68. if ($v['type'] == 11) {
  69. # 图文
  70. $info = Dever::load('content/lib/article')->get($v['article_id']);
  71. if ($info) {
  72. $data[$k]['pic'] = $info['pic_cover'];
  73. $data[$k]['name'] = $info['name'];
  74. }
  75. } elseif ($v['type'] == 12) {
  76. # 视频
  77. $info = Dever::load('video/lib/vod')->get($v['vod_id']);
  78. if ($info) {
  79. $data[$k]['pic'] = $info['pic_cover'];
  80. $data[$k]['name'] = $info['name'];
  81. }
  82. } elseif ($v['type'] == 13) {
  83. # 直播
  84. $info = Dever::load('video/lib/live')->get($v['live_id']);
  85. if ($info) {
  86. $data[$k]['pic'] = $info['pic_cover'];
  87. $data[$k]['name'] = $info['name'];
  88. }
  89. }
  90. if ($v['type'] == 2) {
  91. $data[$k]['text'] = $this->text($database, $v['id'], $where['info_id']);
  92. } else {
  93. $data[$k]['text'] = '';
  94. }
  95. $link = $database->url('edit', $v['id']) . '&search_option_info_id=' . $where['info_id'];
  96. $data[$k]['edit'] = "fastEdit($(this), '".$link."', '编辑内页', '', 1)";
  97. $data[$k]['delete'] = $database->url('delete', $v['id']);
  98. }
  99. }
  100. return $data;
  101. }
  102. private function text_name($link, $content_id, $info_id, $location, $name)
  103. {
  104. $where['info_id'] = $info_id;
  105. $where['content_id'] = $content_id;
  106. $where['location'] = $location;
  107. $info = Dever::db('journal/content_text')->one($where);
  108. $link .= '&search_option_info_id=' . $info_id. '&search_option_content_id=' . $content_id.'&table=content_text&search_option_location='.$location;
  109. if ($info) {
  110. $link .= '&where_id=' . $info['id'];
  111. }
  112. $html = '<a style="cursor:pointer;" href="javascript:;" onclick="fastEdit($(this), \''.$link.'\', \'编辑'.$name.'文字\', \'\')">'.$name.'</a>';
  113. return $html;
  114. }
  115. public function text($database, $content_id, $info_id)
  116. {
  117. $link = $database->url('edit');
  118. $location = Dever::db('journal/content_text')->config['location'];
  119. $html = '<table class="layui-table"><tbody><tr>';
  120. $i = 0;
  121. foreach ($location as $k => $v) {
  122. $name = $this->text_name($link, $content_id, $info_id, $k, $v);
  123. $html .= '<td>'.$name.'</td>';
  124. if ($i == 2 || $i == 5) {
  125. $html .= '</tr><tr>';
  126. }
  127. $i++;
  128. }
  129. $html .= '</tr></tbody></table>';
  130. return $html;
  131. }
  132. public function updateJournalContent_api()
  133. {
  134. $data = Dever::input('data');
  135. if ($data) {
  136. $data = explode(',', str_replace('data-', '', $data));
  137. foreach ($data as $k => $v) {
  138. $k = $k + 1;
  139. $where['where_id'] = $v;
  140. $where['reorder'] = $k;
  141. Dever::db('journal/content')->update($where);
  142. }
  143. }
  144. return $data;
  145. }
  146. }