admincp_albumcategory.php 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: admincp_albumcategory.php 24658 2011-09-29 09:39:40Z chenmengshu $
  7. */
  8. if(!defined('IN_DISCUZ') || !defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. cpheader();
  12. $operation = $operation == 'delete' ? 'delete' : 'list';
  13. loadcache('albumcategory');
  14. $category = $_G['cache']['albumcategory'];
  15. if($operation == 'list') {
  16. if(!submitcheck('editsubmit')) {
  17. shownav('portal', 'albumcategory');
  18. showsubmenu('albumcategory', array(
  19. array('list', 'albumcategory', 1)
  20. ));
  21. showformheader('albumcategory');
  22. showtableheader();
  23. showsetting('system_category_stat', 'settingnew[albumcategorystat]', $_G['setting']['albumcategorystat'], 'radio', '', 1);
  24. showsetting('system_category_required', 'settingnew[albumcategoryrequired]', $_G['setting']['albumcategoryrequired'], 'radio', '');
  25. echo '<tr><td colspan="2">';
  26. showtableheader();
  27. showsubtitle(array('order', 'albumcategory_name', 'albumcategory_num', 'operation'));
  28. foreach ($category as $key=>$value) {
  29. if($value['level'] == 0) {
  30. echo showcategoryrow($key, 0, '');
  31. }
  32. }
  33. echo '<tr><td class="td25">&nbsp;</td><td colspan="3"><div><a class="addtr" onclick="addrow(this, 0, 0)" href="###">'.cplang('albumcategory_addcategory').'</a></div></td></tr>';
  34. showtablefooter();
  35. echo '</td></tr>';
  36. showtableheader('', 'notop');
  37. showsubmit('editsubmit');
  38. showtablefooter();
  39. showformfooter();
  40. $langs = array();
  41. $keys = array('albumcategory_addcategory', 'albumcategory_addsubcategory', 'albumcategory_addthirdcategory');
  42. foreach ($keys as $key) {
  43. $langs[$key] = cplang($key);
  44. }
  45. echo <<<SCRIPT
  46. <script type="text/Javascript">
  47. var rowtypedata = [
  48. [[1,'<input type="text" class="txt" name="neworder[{1}][]" value="0" />', 'td25'], [3, '<div class="parentboard"><input type="text" class="txt" value="$lang[albumcategory_addcategory]" name="newname[{1}][]"/></div>']],
  49. [[1,'<input type="text" class="txt" name="neworder[{1}][]" value="0" />', 'td25'], [3, '<div class="board"><input type="text" class="txt" value="$lang[albumcategory_addsubcategory]" name="newname[{1}][]"/></div>']],
  50. [[1,'<input type="text" class="txt" name="neworder[{1}][]" value="0" />', 'td25'], [3, '<div class="childboard"><input type="text" class="txt" value="$lang[albumcategory_addthirdcategory]" name="newname[{1}][]"/></div>']],
  51. ];
  52. </script>
  53. SCRIPT;
  54. } else {
  55. if($_POST['name']) {
  56. foreach($_POST['name'] as $key=>$value) {
  57. $sets = array();
  58. $value = trim($value);
  59. if($category[$key] && $category[$key]['catname'] != $value) {
  60. $sets['catname'] = $value;
  61. }
  62. if($category[$key] && $category[$key]['displayorder'] != $_POST['order'][$key]) {
  63. $sets['displayorder'] = $_POST['order'][$key] ? $_POST['order'][$key] : '0';
  64. }
  65. if($sets) {
  66. C::t('home_album_category')->update($key, $sets);
  67. }
  68. }
  69. }
  70. if($_POST['newname']) {
  71. foreach ($_POST['newname'] as $upid=>$names) {
  72. foreach ($names as $nameid=>$name) {
  73. C::t('home_album_category')->insert(array('upid' => $upid, 'catname' => trim($name), 'displayorder'=>intval($_POST['neworder'][$upid][$nameid])));
  74. }
  75. }
  76. }
  77. if($_POST['settingnew']) {
  78. $_POST['settingnew'] = array_map('intval', $_POST['settingnew']);
  79. C::t('common_setting')->update_batch($_POST['settingnew']);
  80. updatecache('setting');
  81. }
  82. include_once libfile('function/cache');
  83. updatecache('albumcategory');
  84. cpmsg('albumcategory_update_succeed', 'action=albumcategory', 'succeed');
  85. }
  86. } elseif($operation == 'delete') {
  87. if(!$_GET['catid'] || !$category[$_GET['catid']]) {
  88. cpmsg('albumcategory_catgory_not_found', '', 'error');
  89. }
  90. if(!submitcheck('deletesubmit')) {
  91. $a_count = C::t('home_album')->count_by_catid($_GET['catid']);
  92. if(!$a_count && empty($category[$_GET['catid']]['children'])) {
  93. C::t('home_album_category')->delete($_GET['catid']);
  94. include_once libfile('function/cache');
  95. updatecache('albumcategory');
  96. cpmsg('albumcategory_delete_succeed', 'action=albumcategory', 'succeed');
  97. }
  98. shownav('portal', 'albumcategory');
  99. showsubmenu('albumcategory', array(
  100. array('list', 'albumcategory', 0),
  101. array('delete', 'albumcategory&operation=delete&catid='.$_GET['catid'], 1)
  102. ));
  103. showformheader('albumcategory&operation=delete&catid='.$_GET['catid']);
  104. showtableheader();
  105. if($category[$_GET[catid]]['children']) {
  106. showsetting('albumcategory_subcategory_moveto', '', '',
  107. '<input type="radio" name="subcat_op" value="trash" id="subcat_op_trash" checked="checked" />'.
  108. '<label for="subcat_op_trash" />'.cplang('albumcategory_subcategory_moveto_trash').'</label>'.
  109. '<input type="radio" name="subcat_op" value="parent" id="subcat_op_parent" checked="checked" />'.
  110. '<label for="subcat_op_parent" />'.cplang('albumcategory_subcategory_moveto_parent').'</label>'
  111. );
  112. }
  113. include_once libfile('function/portalcp');
  114. showsetting('albumcategory_article_moveto', '', '', category_showselect('album', 'tocatid', false, $category[$_GET['catid']]['upid']));
  115. showsubmit('deletesubmit');
  116. showtablefooter();
  117. showformfooter();
  118. } else {
  119. if($_POST['tocatid'] == $_GET['catid']) {
  120. cpmsg('albumcategory_move_category_failed', 'action=albumcategory', 'error');
  121. }
  122. $delids = array($_GET['catid']);
  123. if($category[$_GET['catid']]['children']) {
  124. if($_POST['subcat_op'] == 'parent') {
  125. $upid = intval($category[$_GET['catid']]['upid']);
  126. C::t('home_album_category')->update($category[$_GET['catid']]['children'], array('upid'=>$upid));
  127. } else {
  128. $delids = array_merge($delids, $category[$_GET['catid']]['children']);
  129. foreach ($category[$_GET['catid']]['children'] as $id) {
  130. $value = $category[$id];
  131. if($value['children']) {
  132. $delids = array_merge($delids, $value['children']);
  133. }
  134. }
  135. if(!$category[$_POST['tocatid']] || in_array($_POST['tocatid'], $delids)) {
  136. cpmsg('albumcategory_move_category_failed', 'action=albumcategory', 'error');
  137. }
  138. }
  139. }
  140. if($delids) {
  141. C::t('home_album')->update_by_catid($delids, array('catid' => $_POST['tocatid']));
  142. C::t('home_album_category')->delete($delids);
  143. $num =C::t('home_album')->count_by_catid($_GET['tocatid']);
  144. C::t('home_album_category')->update($_POST['tocatid'], array('num'=>$num));
  145. }
  146. include_once libfile('function/cache');
  147. updatecache('albumcategory');
  148. cpmsg('albumcategory_delete_succeed', 'action=albumcategory', 'succeed');
  149. }
  150. }
  151. function showcategoryrow($key, $level = 0, $last = '') {
  152. global $_G;
  153. loadcache('albumcategory');
  154. $value = $_G['cache']['albumcategory'][$key];
  155. $return = '';
  156. include_once libfile('function/portalcp');
  157. $value['num'] = category_get_num('album', $key);
  158. if($level == 2) {
  159. $class = $last ? 'lastchildboard' : 'childboard';
  160. $return = '<tr class="hover"><td class="td25"><input type="text" class="txt" name="order['.$value['catid'].']" value="'.$value['displayorder'].'" /></td><td><div class="'.$class.'">'.
  161. '<input type="text" name="name['.$value['catid'].']" value="'.$value['catname'].'" class="txt" />'.
  162. '</div>'.
  163. '</td><td>'.$value[num].'</td><td><a href="'.ADMINSCRIPT.'?action=albumcategory&operation=delete&catid='.$value['catid'].'">'.cplang('delete').'</a></td></tr>';
  164. } elseif($level == 1) {
  165. $return = '<tr class="hover"><td class="td25"><input type="text" class="txt" name="order['.$value['catid'].']" value="'.$value['displayorder'].'" /></td><td><div class="board">'.
  166. '<input type="text" name="name['.$value['catid'].']" value="'.$value['catname'].'" class="txt" />'.
  167. '<a class="addchildboard" onclick="addrowdirect = 1;addrow(this, 2, '.$value['catid'].')" href="###">'.cplang('albumcategory_addthirdcategory').'</a></div>'.
  168. '</td><td>'.$value[num].'</td><td><a href="'.ADMINSCRIPT.'?action=albumcategory&operation=delete&catid='.$value['catid'].'">'.cplang('delete').'</a></td></tr>';
  169. for($i=0,$L=count($value['children']); $i<$L; $i++) {
  170. $return .= showcategoryrow($value['children'][$i], 2, $i==$L-1);
  171. }
  172. } else {
  173. $return = '<tr class="hover"><td class="td25"><input type="text" class="txt" name="order['.$value['catid'].']" value="'.$value['displayorder'].'" /></td><td><div class="parentboard">'.
  174. '<input type="text" name="name['.$value['catid'].']" value="'.$value['catname'].'" class="txt" />'.
  175. '</div>'.
  176. '</td><td>'.$value[num].'</td><td><a href="'.ADMINSCRIPT.'?action=albumcategory&operation=delete&catid='.$value['catid'].'">'.cplang('delete').'</a></td></tr>';
  177. for($i=0,$L=count($value['children']); $i<$L; $i++) {
  178. $return .= showcategoryrow($value['children'][$i], 1, '');
  179. }
  180. $return .= '<tr><td class="td25"></td><td colspan="3"><div class="lastboard"><a class="addtr" onclick="addrow(this, 1, '.$value['catid'].')" href="###">'.cplang('albumcategory_addsubcategory').'</a></div>';
  181. }
  182. return $return;
  183. }
  184. ?>