Manage.php 5.4 KB

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