circle_theme.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. <?php
  2. /**
  3. * 圈子话题管理
  4. *
  5. *
  6. *
  7. ***/
  8. defined('InShopNC') or exit('Access Invalid!');
  9. class circle_themeControl extends SystemControl{
  10. public function __construct(){
  11. parent::__construct();
  12. Language::read('circle');
  13. }
  14. /**
  15. * 话题列表
  16. */
  17. public function theme_listOp(){
  18. $model = Model();
  19. if (chksubmit()){
  20. if (!empty($_POST['check_theme_id']) && is_array($_POST['check_theme_id'])){
  21. foreach ($_POST['check_theme_id'] as $t_id){
  22. $theme_info = $model->table('circle_theme')->where(array('theme_id'=>$t_id))->find();
  23. if(empty($theme_info)){
  24. continue;
  25. }
  26. // 删除附件
  27. $affix_list = $model->table('circle_affix')->where(array('theme_id'=>$t_id))->select();
  28. if(!empty($affix_list)){
  29. foreach ($affix_list as $val){
  30. @unlink(themeImagePath($val['affix_filename']));
  31. @unlink(themeImagePath($val['affix_filethumb']));
  32. }
  33. $model->table('circle_affix')->where(array('theme_id'=>$t_id))->delete();
  34. }
  35. // 删除商品
  36. $model->table('circle_thg')->where(array('theme_id'=>$t_id))->delete();
  37. // 删除赞表相关
  38. $model->table('circle_like')->where(array('theme_id'=>$t_id))->delete();
  39. // 删除回复
  40. $model->table('circle_threply')->where(array('theme_id'=>$t_id))->delete();
  41. // 更新圈子主题数量
  42. $model->table('circle')->update(array('circle_id'=>$theme_info['circle_id'], 'circle_thcount'=>array('exp','circle_thcount-1')));
  43. // The recycle bin add delete records
  44. $param = array();
  45. $param['theme_id'] = $t_id;
  46. $param['op_id'] = 0;
  47. $param['op_name'] = L('cirlce_administrator');
  48. $param['type'] = 'admintheme';
  49. Model('circle_recycle')->saveRecycle($param, $theme_info);
  50. // 删除话题
  51. $model->table('circle_theme')->delete($t_id);
  52. // Experience
  53. if(intval($theme_info['theme_exp']) > 0){
  54. $param = array();
  55. $param['member_id'] = $theme_info['member_id'];
  56. $param['member_name'] = $theme_info['member_name'];
  57. $param['circle_id'] = $theme_info['circle_id'];
  58. $param['itemid'] = $t_id;
  59. $param['type'] = 'delRelease';
  60. $param['exp'] = $theme_info['theme_exp'];
  61. Model('circle_exp')->saveExp($param);
  62. }
  63. }
  64. }
  65. showMessage(L('nc_common_op_succ'), 'index.php?act=circle_theme&op=theme_list');
  66. }
  67. $where = array();
  68. if($_GET['searchname'] != ''){
  69. $where['theme_name'] = array('like', '%'.$_GET['searchname'].'%');
  70. }
  71. if($_GET['classname'] != ''){
  72. $where['circle_name'] = array('like', '%'.$_GET['classname'].'%');
  73. }
  74. if($_GET['searchtop'] != '' && in_array($_GET['searchtop'], array(0,1))){
  75. $where['is_stick'] = intval($_GET['searchtop']);
  76. }
  77. if($_GET['searchcream'] != '' && in_array($_GET['searchcream'], array(0,1))){
  78. $where['is_digest'] = intval($_GET['searchcream']);
  79. }
  80. if($_GET['searchrecommend'] != '' && in_array($_GET['searchrecommend'], array(0,1))){
  81. $where['is_recommend'] = intval($_GET['searchrecommend']);
  82. }
  83. $theme_list = $model->table('circle_theme')->where($where)->order('theme_id desc')->page(10)->select();
  84. if(!empty($theme_list)){
  85. $theme_list = array_under_reset($theme_list, 'theme_id'); $themeid_array = array_keys($theme_list);
  86. // 附件
  87. $affix_list = $model->table('circle_affix')->where(array('theme_id'=>array('in', $themeid_array), 'affix_type'=>1))->group('theme_id')->select();
  88. if(!empty($affix_list)) $affix_list = array_under_reset($affix_list, 'theme_id');
  89. foreach ($theme_list as $key=>$val){
  90. if(isset($affix_list[$val['theme_id']])) $theme_list[$key]['affix'] = themeImageUrl($affix_list[$val['theme_id']]['affix_filethumb']);
  91. }
  92. }
  93. Tpl::output('theme_list', $theme_list);
  94. Tpl::output('page', $model->showpage(2));
  95. Tpl::showpage('circle_theme.list');
  96. }
  97. /**
  98. * 话题详细
  99. */
  100. public function theme_infoOp(){
  101. $model = Model();
  102. $t_id = intval($_GET['t_id']);
  103. $theme_info = $model->table('circle_theme')->find($t_id);
  104. Tpl::output('theme_info', $theme_info);
  105. if($theme_info['theme_special'] == 1){
  106. $poll_info = $model->table('circle_thpoll')->find($t_id);
  107. $option_list = $model->table('circle_thpolloption')->where(array('theme_id'=>$t_id))->order('pollop_sort asc')->select();
  108. Tpl::output('poll_info', $poll_info);
  109. Tpl::output('option_list', $option_list);
  110. }
  111. Tpl::showpage('circle_theme.info');
  112. }
  113. /**
  114. * 删除话题
  115. */
  116. public function theme_delOp(){
  117. $model = Model();
  118. // 验证话题
  119. $t_id = intval($_GET['t_id']); $c_id = intval($_GET['c_id']);
  120. $theme_info = $model->table('circle_theme')->where(array('theme_id'=>$t_id, 'circle_id'=>$c_id))->find();
  121. if(empty($theme_info)){
  122. showMessage(L('param_error'));
  123. }
  124. // 删除附件
  125. $affix_list = $model->table('circle_affix')->where(array('theme_id'=>$t_id))->select();
  126. if(!empty($affix_list)){
  127. foreach ($affix_list as $val){
  128. @unlink(themeImagePath($val['affix_filename']));
  129. @unlink(themeImagePath($val['affix_filethumb']));
  130. }
  131. $model->table('circle_affix')->where(array('theme_id'=>$t_id))->delete();
  132. }
  133. // 删除商品
  134. $model->table('circle_thg')->where(array('theme_id'=>$t_id))->delete();
  135. // 删除赞表相关
  136. $model->table('circle_like')->where(array('theme_id'=>$t_id))->delete();
  137. // 删除回复
  138. $model->table('circle_threply')->where(array('theme_id'=>$t_id))->delete();
  139. // The recycle bin add delete records
  140. $param = array();
  141. $param['theme_id'] = $t_id;
  142. $param['op_id'] = 0;
  143. $param['op_name'] = L('cirlce_administrator');
  144. $param['type'] = 'admintheme';
  145. Model('circle_recycle')->saveRecycle($param, $theme_info);
  146. // 删除话题
  147. $model->table('circle_theme')->delete($t_id);
  148. // 更新圈子主题数量
  149. $model->table('circle')->update(array('circle_id'=>$c_id, 'circle_thcount'=>array('exp','circle_thcount-1')));
  150. // Experience
  151. if(intval($theme_info['theme_exp']) > 0){
  152. $param = array();
  153. $param['member_id'] = $theme_info['member_id'];
  154. $param['member_name'] = $theme_info['member_name'];
  155. $param['circle_id'] = $theme_info['circle_id'];
  156. $param['itemid'] = $t_id;
  157. $param['type'] = 'delRelease';
  158. $param['exp'] = $theme_info['theme_exp'];
  159. Model('circle_exp')->saveExp($param);
  160. }
  161. showMessage(L('nc_common_op_succ'), 'index.php?act=circle_theme&op=theme_list');
  162. }
  163. /**
  164. * 话题回复
  165. */
  166. public function theme_replyOp(){
  167. $model = Model();
  168. if(chksubmit()){
  169. $t_id = intval($_POST['t_id']);
  170. if (!empty($_POST['check_reply_id']) && is_array($_POST['check_reply_id'])){
  171. foreach ($_POST['check_reply_id'] as $r_id){
  172. // 验证回复
  173. $reply_info = $model->table('circle_threply')->where(array('theme_id'=>$t_id, 'reply_id'=>$r_id))->find();
  174. if(empty($reply_info)){
  175. showMessage(L('param_error'));
  176. }
  177. // 删除附件
  178. $affix_list = $model->table('circle_affix')->where(array('affix_type'=>2, 'theme_id'=>$t_id, 'reply_id'=>$r_id))->select();
  179. if(!empty($affix_list)){
  180. foreach ($affix_list as $val){
  181. @unlink(themeImagePath($val['affix_filename']));
  182. @unlink(themeImagePath($val['affix_filethumb']));
  183. }
  184. $model->table('circle_affix')->where(array('affix_type'=>2 ,'theme_id'=>$t_id, 'reply_id'=>$r_id))->delete();
  185. }
  186. // 删除商品
  187. $model->table('circle_thg')->where(array('theme_id'=>$t_id, 'reply_id'=>$r_id))->delete();
  188. // The recycle bin add delete records
  189. $param = array();
  190. $param['theme_id'] = $t_id;
  191. $param['reply_id'] = $r_id;
  192. $param['op_id'] = 0;
  193. $param['op_name'] = L('cirlce_administrator');
  194. $param['type'] = 'adminreply';
  195. Model('circle_recycle')->saveRecycle($param, $reply_info);
  196. // 删除回复
  197. $model->table('circle_threply')->where(array('theme_id'=>$t_id, 'reply_id'=>$r_id))->delete();
  198. // 更新话题回复数
  199. $model->table('circle_theme')->update(array('theme_id'=>$t_id, 'theme_commentcount'=>array('exp', 'theme_commentcount-1')));
  200. // Experience
  201. if(intval($reply_info['reply_exp']) > 0){
  202. $param = array();
  203. $param['member_id'] = $reply_info['member_id'];
  204. $param['member_name'] = $reply_info['member_name'];
  205. $param['circle_id'] = $reply_info['circle_id'];
  206. $param['itemid'] = $t_id.','.$r_id;
  207. $param['type'] = 'delReplied';
  208. $param['exp'] = $reply_info['reply_exp'];
  209. Model('circle_exp')->saveExp($param);
  210. }
  211. }
  212. }
  213. showMessage(L('nc_common_op_succ'));
  214. }
  215. $t_id = intval($_GET['t_id']);
  216. $reply_list = $model->table('circle_threply')->where(array('theme_id'=>$t_id))->page(10)->select();
  217. Tpl::output('t_id', $t_id);
  218. Tpl::output('page', $model->showpage(2));
  219. Tpl::output('reply_list', $reply_list);
  220. Tpl::showpage('circle_theme.reply');
  221. }
  222. /**
  223. * 话题回复删除
  224. */
  225. public function theme_replydelOp(){
  226. $t_id = intval($_GET['t_id']);
  227. $r_id = intval($_GET['r_id']);
  228. $model = Model();
  229. // 验证回复
  230. $reply_info = $model->table('circle_threply')->where(array('theme_id'=>$t_id, 'reply_id'=>$r_id))->find();
  231. if(empty($reply_info)){
  232. showMessage(L('param_error'));
  233. }
  234. // 删除附件
  235. $affix_list = $model->table('circle_affix')->where(array('affix_type'=>2, 'theme_id'=>$t_id, 'reply_id'=>$r_id))->select();
  236. if(!empty($affix_list)){
  237. foreach ($affix_list as $val){
  238. @unlink(themeImagePath($val['affix_filename']));
  239. @unlink(themeImagePath($val['affix_filethumb']));
  240. }
  241. $model->table('circle_affix')->where(array('affix_type'=>2 ,'theme_id'=>$t_id, 'reply_id'=>$r_id))->delete();
  242. }
  243. // 删除商品
  244. $model->table('circle_thg')->where(array('theme_id'=>$t_id, 'reply_id'=>$r_id))->delete();
  245. // The recycle bin add delete records
  246. $param = array();
  247. $param['theme_id'] = $t_id;
  248. $param['reply_id'] = $r_id;
  249. $param['op_id'] = 0;
  250. $param['op_name'] = L('cirlce_administrator');
  251. $param['type'] = 'adminreply';
  252. Model('circle_recycle')->saveRecycle($param, $reply_info);
  253. // 删除回复
  254. $model->table('circle_threply')->where(array('theme_id'=>$t_id, 'reply_id'=>$r_id))->delete();
  255. // 更新话题回复数
  256. $model->table('circle_theme')->update(array('theme_id'=>$t_id, 'theme_commentcount'=>array('exp', 'theme_commentcount-1')));
  257. // Experience
  258. if(intval($reply_info['reply_exp']) > 0){
  259. $param = array();
  260. $param['member_id'] = $reply_info['member_id'];
  261. $param['member_name'] = $reply_info['member_name'];
  262. $param['circle_id'] = $reply_info['circle_id'];
  263. $param['itemid'] = $t_id.','.$r_id;
  264. $param['type'] = 'delReplied';
  265. $param['exp'] = $reply_info['reply_exp'];
  266. Model('circle_exp')->saveExp($param);
  267. }
  268. showMessage(L('nc_common_op_succ'));
  269. }
  270. /**
  271. * ajax操作
  272. */
  273. public function ajaxOp(){
  274. switch ($_GET['branch']){
  275. case 'recommend':
  276. $update = array(
  277. 'theme_id'=>intval($_GET['id']),
  278. $_GET['column']=>$_GET['value']
  279. );
  280. Model()->table('circle_theme')->update($update);
  281. echo 'true';
  282. break;
  283. }
  284. }
  285. }