Manage.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. <?php
  2. namespace Collection\Lib;
  3. use Dever;
  4. class Manage
  5. {
  6. public function getManageData()
  7. {
  8. $data = array();
  9. $data = Dever::db('collection/cate')->state();
  10. if ($data) {
  11. foreach ($data as $k => $v) {
  12. $data[$k]['child'] = Dever::db('collection/info')->state(array('cate_id' => $v['id']));
  13. }
  14. }
  15. return $data;
  16. }
  17. # 获取数据
  18. public function num($id)
  19. {
  20. $data = Dever::db('collection/info')->one($id);
  21. $data = Dever::load('collection/api')->ding($data);
  22. $cate = Dever::db('collection/cate')->one($data['cate_id']);
  23. $html = '《' . $cate['name'] . '》<br />';
  24. if ($data['buy'] == 1) {
  25. $num_buy = $data['num_buy'];
  26. $num_add_buy = $data['num_add_buy'];
  27. $num_ratio_buy = $data['num_ratio_buy'];
  28. $num_buy_total = $data['num_buy_total'];
  29. $html .= '<font style="color:red">收费</font><br />';
  30. $html .= '购买数:('.$num_buy.'+'.$num_add_buy.')*'.$num_ratio_buy.'='.$num_buy_total;
  31. } else {
  32. $num_view = $data['num_view'];
  33. $num_add_view = $data['num_add_view'];
  34. $num_view_total = $num_view + $num_add_view;
  35. $html .= '<font style="color:blue">免费</font><br />';
  36. $html .= '阅读数:'.$num_view.'+'.$num_add_view.'='.$num_view_total;
  37. }
  38. return $html;
  39. }
  40. # 获取数据
  41. public function objectNum($id)
  42. {
  43. $data = Dever::db('collection/object')->one($id);
  44. $data = Dever::load('collection/api')->ding($data);
  45. $num_buy = $data['num_buy'];
  46. $num_add_buy = $data['num_add_buy'];
  47. $num_ratio_buy = $data['num_ratio_buy'];
  48. $num_buy_total = $data['num_buy_total'];
  49. $html = '购买数:('.$num_buy.'+'.$num_add_buy.')*'.$num_ratio_buy.'='.$num_buy_total;
  50. return $html;
  51. }
  52. private function search($table = 'content/article')
  53. {
  54. $keyword = Dever::input('keyword');
  55. $yes = Dever::input('yes');
  56. $where = array();
  57. $cate = Dever::input('cate');
  58. if ($cate) {
  59. $where['cate_id'] = $cate;
  60. }
  61. if ($yes) {
  62. $yes = Dever::db($table)->search(array('ids' => $yes));
  63. }
  64. if (!$keyword) {
  65. $where['limit'] = '0,50';
  66. $data = Dever::db($table)->search($where);
  67. } else {
  68. $where['name'] = $keyword;
  69. $data = Dever::db($table)->search($where);
  70. }
  71. $result = array();
  72. if ($yes) {
  73. foreach ($yes as $k => $v) {
  74. if (isset($data[$k])) {
  75. unset($data[$k]);
  76. }
  77. $yes[$k]['selected'] = 'selected';
  78. }
  79. $data = $yes + $data;
  80. $data = array_merge($data, array());
  81. } else {
  82. $data = array_merge($data, array());
  83. }
  84. if (!$data) {
  85. Dever::alert('暂无数据');
  86. }
  87. return $data;
  88. }
  89. # 搜索
  90. public function search_journal_api()
  91. {
  92. return $this->search('collection/info');
  93. }
  94. # 按照分类搜索
  95. public function search_cate_journal_api()
  96. {
  97. $level_num = Dever::input('level_num');
  98. $level_id = Dever::input('level_id');
  99. $auth = Dever::tops();
  100. $where = array();
  101. if ($level_num == 1) {
  102. $default = array
  103. (
  104. 'value' => -1,
  105. 'name' => '选择分类',
  106. );
  107. if ($auth) {
  108. $where['ids'] = $auth;
  109. }
  110. $data = Dever::db('collection/cate')->getIds($where);
  111. } elseif ($level_num == 2 && $level_id > 0) {
  112. $default = array
  113. (
  114. 'value' => -1,
  115. 'name' => '选择合集',
  116. );
  117. if ($level_id > 0) {
  118. $where['cate_id'] = $level_id;
  119. } elseif ($auth) {
  120. $where['cate_id'] = $auth;
  121. }
  122. $data = Dever::db('collection/info')->getIds($where);
  123. } else {
  124. return array();
  125. }
  126. array_unshift($data, $default);
  127. $result['level_total'] = 2;
  128. $result['list'] = $data;
  129. return $result;
  130. }
  131. # 显示内页
  132. public function content()
  133. {
  134. $where['info_id'] = Dever::input('search_option_info_id');
  135. $where['page_id'] = Dever::input('send_page_id');
  136. $where['state'] = Dever::input('search_option_state');
  137. $data = Dever::db('collection/content')->all($where);
  138. $database = Dever::load('manage/database');
  139. $type = Dever::db('collection/cate')->config['gettype'];
  140. if ($data) {
  141. foreach ($data as $k => $v) {
  142. $data[$k]['height'] = 'height: 154px;';
  143. $data[$k]['info_height'] = 'height: auto;';
  144. $data[$k]['type_name'] = '[' . $type[$v['type']]['name'] . ']';
  145. $data[$k]['text'] = '';
  146. $link = $database->url('edit', $v['id']) . '&search_option_info_id=' . $where['info_id'];
  147. $data[$k]['edit'] = "fastEdit($(this), '".$link."', '编辑数据内容', '', 1)";
  148. $data[$k]['editurl'] = $link;
  149. $table = $type[$v['type']]['table'];
  150. $list = false;
  151. $method = 'edit';
  152. if (strstr($table, '-')) {
  153. $list = true;
  154. $temp = explode('-', $table);
  155. $table = $temp[0];
  156. $method = 'list';
  157. }
  158. # 验证有没有数据
  159. $info = Dever::db($table)->one(array('content_id' => $v['id'], 'info_id' => $v['info_id']));
  160. if ($list) {
  161. $data[$k]['data_name'] = '内容列表';
  162. } elseif ($info) {
  163. $data[$k]['data_name'] = '更新内容';
  164. } else {
  165. $data[$k]['data_name'] = '新增内容';
  166. }
  167. $temp = explode('/', $table);
  168. $project_name = $temp[0];
  169. $table_name = $temp[1];
  170. $param['search_option_info_id'] = $v['info_id'];
  171. $param['search_option_content_id'] = $v['id'];
  172. # 当前表和项目
  173. $param['table'] = $table_name;
  174. $param['project'] = $project_name;
  175. # 保存之后要跳转的表和项目
  176. if ($list) {
  177. $param['oper_page_type'] = 1;
  178. # 更新后要跳转的
  179. $param['oper_save_table'] = $table_name;
  180. $param['oper_save_project'] = $project_name;
  181. # 上级表和项目
  182. $param['oper_table'] = 'content';
  183. $param['oper_project'] = 'collection';
  184. $param['top_table'] = 'page.info';
  185. $param['top_project'] = 'collection';
  186. } else {
  187. $param['oper_save_table'] = 'content';
  188. $param['oper_save_project'] = 'collection';
  189. $param['oper_table'] = 'page';
  190. $param['oper_project'] = 'collection';
  191. $param['top_table'] = 'info';
  192. $param['top_project'] = 'collection';
  193. }
  194. $data[$k]['data_editurl'] = $database->url($method, $v['id'], $table_name, '', $project_name, $param);
  195. $data[$k]['delete'] = $database->url('delete', $v['id']);
  196. }
  197. }
  198. return $data;
  199. }
  200. private function text_name($link, $content_id, $info_id, $location, $name)
  201. {
  202. $where['info_id'] = $info_id;
  203. $where['content_id'] = $content_id;
  204. $where['location'] = $location;
  205. $info = Dever::db('collection/content_text')->one($where);
  206. $link .= '&search_option_info_id=' . $info_id. '&search_option_content_id=' . $content_id.'&table=content_text&search_option_location='.$location;
  207. if ($info) {
  208. $link .= '&where_id=' . $info['id'];
  209. }
  210. $html = '<a style="cursor:pointer;" href="javascript:;" onclick="fastEdit($(this), \''.$link.'\', \'编辑'.$name.'文字\', \'\')">'.$name.'</a>';
  211. return $html;
  212. }
  213. public function text($database, $content_id, $info_id)
  214. {
  215. $link = $database->url('edit');
  216. $location = Dever::db('collection/content_text')->config['location'];
  217. $html = '<table class="layui-table"><tbody><tr>';
  218. $i = 0;
  219. foreach ($location as $k => $v) {
  220. $name = $this->text_name($link, $content_id, $info_id, $k, $v);
  221. $html .= '<td>'.$name.'</td>';
  222. if ($i == 2 || $i == 5) {
  223. $html .= '</tr><tr>';
  224. }
  225. $i++;
  226. }
  227. $html .= '</tr></tbody></table>';
  228. return $html;
  229. }
  230. public function updateContent_api()
  231. {
  232. $data = Dever::input('data');
  233. if ($data) {
  234. $data = explode(',', str_replace('data-', '', $data));
  235. foreach ($data as $k => $v) {
  236. $k = $k + 1;
  237. $where['where_id'] = $v;
  238. $where['reorder'] = $k;
  239. Dever::db('collection/content')->update($where);
  240. }
  241. }
  242. return $data;
  243. }
  244. public function addContent($id, $name, $data)
  245. {
  246. # 获取最新的reorder
  247. $info_id = Dever::param('info_id', $data);
  248. $data = Dever::db('collection/content')->getAllByReorder(array('info_id' => $info_id));
  249. if ($data) {
  250. $update['where_id'] = $id;
  251. $update['reorder'] = $data['reorder'] + 1;
  252. Dever::db('collection/content')->update($update);
  253. }
  254. }
  255. public function setInfo($id, $name, $param)
  256. {
  257. $score_type = Dever::param('score_type', $param);
  258. if ($score_type) {
  259. $score_id = Dever::param('score_id', $param);
  260. $name = Dever::param('score_name', $param);
  261. Dever::load('score/lib/core')->setScoreChild($score_type, $score_id, 'collection/info', $id, $name);
  262. }
  263. }
  264. }