member_menu.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. /**
  3. * 管理员后台会员中心菜单管理类
  4. */
  5. defined('IN_PHPCMS') or exit('No permission resources.');
  6. pc_base::load_app_class('admin', 'admin', 0);
  7. class member_menu extends admin {
  8. function __construct() {
  9. parent::__construct();
  10. $this->db = pc_base::load_model('member_menu_model');
  11. }
  12. function manage() {
  13. $tree = pc_base::load_sys_class('tree');
  14. $tree->icon = array('&nbsp;&nbsp;&nbsp;│ ','&nbsp;&nbsp;&nbsp;├─ ','&nbsp;&nbsp;&nbsp;└─ ');
  15. $tree->nbsp = '&nbsp;&nbsp;&nbsp;';
  16. $userid = $_SESSION['userid'];
  17. $admin_username = param::get_cookie('admin_username');
  18. $result = $this->db->select('','*','','listorder ASC,id DESC');
  19. foreach($result as $r) {
  20. $r['cname'] = L($r['name'], '', 'member_menu');
  21. $r['str_manage'] = '<a href="?m=member&c=member_menu&a=edit&id='.$r['id'].'&menuid='.$_GET['menuid'].'">'.L('edit').'</a> | <a href="javascript:confirmurl(\'?m=member&c=member_menu&a=delete&id='.$r['id'].'&menuid='.$_GET['menuid'].'\',\''.L('confirm',array('message'=>$r['cname'])).'\')">'.L('delete').'</a> ';
  22. $array[] = $r;
  23. }
  24. $str = "<tr>
  25. <td align='center'><input name='listorders[\$id]' type='text' size='3' value='\$listorder' class='input-text-c'></td>
  26. <td align='center'>\$id</td>
  27. <td >\$spacer\$cname</td>
  28. <td align='center'>\$str_manage</td>
  29. </tr>";
  30. $tree->init($array);
  31. $categorys = $tree->get_tree(0, $str);
  32. include $this->admin_tpl('member_menu');
  33. }
  34. function add() {
  35. if(isset($_POST['dosubmit'])) {
  36. $this->db->insert($_POST['info']);
  37. //开发过程中用于自动创建语言包
  38. $file = PC_PATH.'languages'.DIRECTORY_SEPARATOR.'zh-cn'.DIRECTORY_SEPARATOR.'member_menu.lang.php';
  39. if(file_exists($file)) {
  40. $content = file_get_contents($file);
  41. $content = substr($content,0,-2);
  42. $key = $_POST['info']['name'];
  43. $data = $content."\$LANG['$key'] = '$_POST[language]';\r\n?>";
  44. file_put_contents($file,$data);
  45. } else {
  46. $key = $_POST['info']['name'];
  47. $data = "<?php\r\n\$LANG['$key'] = '$_POST[language]';\r\n?>";
  48. file_put_contents($file,$data);
  49. }
  50. //结束
  51. showmessage(L('add_success'));
  52. } else {
  53. $show_validator = '';
  54. $tree = pc_base::load_sys_class('tree');
  55. $result = $this->db->select();
  56. foreach($result as $r) {
  57. $r['cname'] = L($r['name'], '', 'member_menu');
  58. $r['selected'] = $r['id'] == $_GET['parentid'] ? 'selected' : '';
  59. $array[] = $r;
  60. }
  61. $str = "<option value='\$id' \$selected>\$spacer \$cname</option>";
  62. $tree->init($array);
  63. $select_categorys = $tree->get_tree(0, $str);
  64. include $this->admin_tpl('member_menu');
  65. }
  66. }
  67. function delete() {
  68. $_GET['id'] = intval($_GET['id']);
  69. $menu = $this->db->get_one(array("id"=>$_GET['id']));
  70. if(!$menu)showmessage('菜单不存在!请返回!',HTTP_REFERER);
  71. $this->db->delete(array('id'=>$_GET['id']));
  72. //删除member_menu语言包
  73. $file = PC_PATH.'languages'.DIRECTORY_SEPARATOR.'zh-cn'.DIRECTORY_SEPARATOR.'member_menu.lang.php';
  74. require $file;
  75. $content = file_get_contents($file);
  76. $str = "\$LANG['".$menu['name']."'] = '".$LANG[$menu['name']]."';\r\n";
  77. $content = str_replace($str,'',$content);
  78. file_put_contents($file,$content);
  79. showmessage(L('operation_success'));
  80. }
  81. function edit() {
  82. if(isset($_POST['dosubmit'])) {
  83. $id = intval($_POST['id']);
  84. $this->db->update($_POST['info'],array('id'=>$id));
  85. //修改语言文件
  86. $file = PC_PATH.'languages'.DIRECTORY_SEPARATOR.'zh-cn'.DIRECTORY_SEPARATOR.'member_menu.lang.php';
  87. require $file;
  88. $key = $_POST['info']['name'];
  89. if(!isset($LANG[$key])) {
  90. $content = file_get_contents($file);
  91. $content = substr($content,0,-2);
  92. $data = $content."\$LANG['$key'] = '$_POST[language]';\r\n?>";
  93. file_put_contents($file,$data);
  94. } elseif(isset($LANG[$key]) && $LANG[$key]!=$_POST['language']) {
  95. $content = file_get_contents($file);
  96. $LANG[$key] = safe_replace($LANG[$key]);
  97. $content = str_replace($LANG[$key],$_POST['language'],$content);
  98. file_put_contents($file,$content);
  99. }
  100. //结束语言文件修改
  101. showmessage(L('operation_success'));
  102. } else {
  103. $show_validator = '';
  104. $tree = pc_base::load_sys_class('tree');
  105. $id = intval($_GET['id']);
  106. $r = $this->db->get_one(array('id'=>$id));
  107. if($r) extract($r);
  108. $result = $this->db->select();
  109. foreach($result as $r) {
  110. $r['cname'] = L($r['name'], '', 'member_menu');
  111. $r['selected'] = $r['id'] == $parentid ? 'selected' : '';
  112. $array[] = $r;
  113. }
  114. $str = "<option value='\$id' \$selected>\$spacer \$cname</option>";
  115. $tree->init($array);
  116. $select_categorys = $tree->get_tree(0, $str);
  117. include $this->admin_tpl('member_menu');
  118. }
  119. }
  120. /**
  121. * 排序
  122. */
  123. function listorder() {
  124. if(isset($_POST['dosubmit'])) {
  125. foreach($_POST['listorders'] as $id => $listorder) {
  126. $this->db->update(array('listorder'=>$listorder),array('id'=>$id));
  127. }
  128. showmessage(L('operation_success'));
  129. } else {
  130. showmessage(L('operation_failure'));
  131. }
  132. }
  133. }
  134. ?>