p_center.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <?php
  2. /**
  3. * Personal Center
  4. *
  5. *
  6. *********************************/
  7. defined('InShopNC') or exit('Access Invalid!');
  8. class p_centerControl extends BaseCirclePersonalControl{
  9. public function __construct(){
  10. parent::__construct();
  11. Language::read('p_center');
  12. }
  13. /**
  14. * Personal Center theme list
  15. */
  16. public function indexOp(){
  17. $model = Model();
  18. $theme_list = $model->table('circle_theme')->where(array('member_id'=>$this->m_id))->page(10)->order('theme_id desc')->select();
  19. if(!empty($theme_list)){
  20. $theme_list = array_under_reset($theme_list, 'theme_id');
  21. $themeid_array = array(); $circleid_array = array();
  22. foreach ($theme_list as $val){
  23. $themeid_array[] = $val['theme_id'];
  24. $circleid_array[] = $val['circle_id'];
  25. }
  26. $themeid_array = array_unique($themeid_array);
  27. $circleid_array = array_unique($circleid_array);
  28. // affix
  29. $affix_list = $model->table('circle_affix')->where(array('affix_type'=>1, 'member_id'=>$this->m_id, 'theme_id'=>array('in', $themeid_array)))->select();
  30. $affix_list = array_under_reset($affix_list, 'theme_id', 2);
  31. // like
  32. $like_list = $model->table('circle_like')->where(array('theme_id'=>array('in', $themeid_array)))->select();
  33. $like_list = array_under_reset($like_list, 'theme_id');
  34. if(!empty($like_list)){
  35. $lt_id = array_keys($like_list);
  36. Tpl::output('lt_id', $lt_id);
  37. }
  38. }
  39. Tpl::output('show_page', $model->showpage('2'));
  40. Tpl::output('theme_list', $theme_list);
  41. Tpl::output('affix_list', $affix_list);
  42. $this->profile_menu('theme', 'theme');
  43. Tpl::showpage('p_center.theme');
  44. }
  45. /**
  46. * Personal Center likeing theme list
  47. */
  48. public function likeingOp(){
  49. $model = Model();
  50. $like_array = $model->table('circle_like')->field('circle_id,theme_id')->where(array('member_id'=>$this->m_id))->order('theme_id desc')->page(10)->select();
  51. if(!empty($like_array)){
  52. $theme_list = array_under_reset($like_array, 'theme_id');
  53. $themeid_array = array(); $circleid_array = array();
  54. foreach ($theme_list as $val){
  55. $themeid_array[] = $val['theme_id'];
  56. $circleid_array[] = $val['circle_id'];
  57. }
  58. $themeid_array = array_unique($themeid_array);
  59. $circleid_array = array_unique($circleid_array);
  60. // theme
  61. $theme_list = $model->table('circle_theme')->where(array('theme_id'=>array('in', $themeid_array)))->select();
  62. // affix
  63. $affix_list = $model->table('circle_affix')->where(array('affix_type'=>1, 'theme_id'=>array('in', $themeid_array)))->select();
  64. $affix_list = array_under_reset($affix_list, 'theme_id', 2);
  65. Tpl::output('theme_list', $theme_list);
  66. Tpl::output('affix_list', $affix_list);
  67. }
  68. $this->profile_menu('theme', 'likeing');
  69. Tpl::showpage('p_center.likeing');
  70. }
  71. /**
  72. * Personal Center my circle group
  73. */
  74. public function my_groupOp(){
  75. $model = Model();
  76. $circlemember_array = $model->table('circle_member')->where(array('member_id'=>$this->m_id))->select();
  77. if(!empty($circlemember_array)){
  78. $circlemember_array = array_under_reset($circlemember_array, 'circle_id');
  79. Tpl::output('cm_array', $circlemember_array);
  80. $circleid_array = array_keys($circlemember_array);
  81. $circle_list = $model->table('circle')->where(array('circle_id'=>array('in', $circleid_array)))->select();
  82. Tpl::output('circle_list', $circle_list);
  83. }
  84. $this->profile_menu('group', 'group');
  85. Tpl::showpage('p_center.group');
  86. }
  87. /**
  88. * Personal Center my inform
  89. */
  90. public function my_informOp(){
  91. // language
  92. Language::read('manage_inform');
  93. $model = Model();
  94. $where = array();
  95. $where['member_id'] = $_SESSION['member_id'];
  96. $inform_list = $model->table('circle_inform')->where($where)->page(10)->order('inform_id desc')->select(); // tidy
  97. if(!empty($inform_list)){
  98. foreach ($inform_list as $key=>$val){
  99. $inform_list[$key]['url'] = spellInformUrl($val);
  100. $inform_list[$key]['title'] = L('circle_theme,nc_quote1').$val['theme_name'].L('nc_quote2');
  101. $inform_list[$key]['state'] = $this->informStatr(intval($val['inform_state']));
  102. if($val['reply_id'] != 0)
  103. $inform_list[$key]['title'] .= L('circle_inform_reply_title');
  104. }
  105. }
  106. Tpl::output('inform_list', $inform_list);
  107. Tpl::output('show_page', $model->showpage(2));
  108. $this->profile_menu('inform', 'inform');
  109. Tpl::showpage('p_center.inform');
  110. }
  111. /**
  112. * Inform state
  113. */
  114. private function informStatr($state){
  115. switch ($state){
  116. case 0:
  117. return L('circle_inform_untreated');
  118. break;
  119. case 1:
  120. return L('circle_inform_treated');
  121. break;
  122. }
  123. }
  124. /**
  125. * Delete inform
  126. */
  127. public function delinformOp(){
  128. $inform_id = explode(',', $_GET['i_id']);
  129. if(empty($inform_id)){
  130. echo 'false';exit;
  131. }
  132. $where = array();
  133. $where['member_id'] = $_SESSION['member_id'];
  134. $where['inform_id'] = array('in', $inform_id);
  135. Model()->table('circle_inform')->where($where)->delete();
  136. showDialog(L('nc_common_del_succ'), 'reload', 'succ');
  137. }
  138. /**
  139. * Personal Center my recycled
  140. */
  141. public function my_recycledOp(){
  142. $model = Model();
  143. $recycle_list = $model->table('circle_recycle')->where(array('member_id'=>$_SESSION['member_id']))->order('recycle_id desc')->page(10)->select();
  144. Tpl::output('recycle_list', $recycle_list);
  145. Tpl::output('show_page', $model->showpage(2));
  146. $this->profile_menu('recycled', 'recycled');
  147. Tpl::showpage('p_center.recycled');
  148. }
  149. /**
  150. * Empty the recycle bin
  151. */
  152. public function clr_recycledOp(){
  153. Model()->table('circle_recycle')->where(array('member_id'=>$_SESSION['member_id']))->delete();
  154. showDialog(L('nc_common_op_succ'),'reload','succ');
  155. }
  156. /**
  157. * 用户中心右边,小导航
  158. *
  159. * @param string $menu_type types of navigation
  160. * @param string $menu_key key of navigation
  161. * @return
  162. */
  163. private function profile_menu($menu_type, $menu_key){
  164. $menu_array = array();
  165. switch ($menu_type){
  166. case 'theme':
  167. $menu_array = array(
  168. 1=>array('menu_key'=>'theme','menu_name'=>L('p_center_published_theme'),'menu_url'=>'index.php?act=p_center'),
  169. 2=>array('menu_key'=>'likeing','menu_name'=>L('p_center_liked_theme'),'menu_url'=>'index.php?act=p_center&op=likeing'),
  170. );
  171. break;
  172. case 'group':
  173. $menu_array = array(
  174. 1=>array('menu_key'=>'group','menu_name'=>L('p_center_my_circle'),'menu_url'=>'index.php?act=p_center&op=my_group'),
  175. );
  176. break;
  177. case 'inform':
  178. $menu_array = array(
  179. 1=>array('menu_key'=>'inform','menu_name'=>L('p_center_my_inform'),'menu_url'=>'index.php?act=p_center&op=my_inform'),
  180. );
  181. break;
  182. case 'recycled':
  183. $menu_array = array(
  184. 1=>array('menu_key'=>'recycled','menu_name'=>L('p_center_my_recycled'),'menu_url'=>'index.php?act=p_center&op=my_recycled'),
  185. );
  186. break;
  187. }
  188. Tpl::output('menu_type', $menu_type);
  189. Tpl::output('member_menu', $menu_array);
  190. Tpl::output('menu_key', $menu_key);
  191. }
  192. }