wap_admin.php 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. pc_base::load_app_class('admin','admin',0);
  4. pc_base::load_sys_class('form', '', 0);
  5. class wap_admin extends admin {
  6. private $db,$type_db;
  7. function __construct() {
  8. parent::__construct();
  9. $this->sites = pc_base::load_app_class('sites','admin');
  10. $this->db = pc_base::load_model('wap_model');
  11. $this->type_db = pc_base::load_model('wap_type_model');
  12. }
  13. function init() {
  14. $infos = $this->db->select();
  15. $show_dialog = true;
  16. $big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=wap&c=wap_admin&a=add\', title:\''.L('add_site').'\', width:\'400\', height:\'550\', lock:true}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('wap_add_site'));
  17. include $this->admin_tpl('m_list');
  18. }
  19. function edit() {
  20. if($_POST['dosubmit']) {
  21. $siteid = intval($_POST['siteid']) ? intval($_POST['siteid']) : showmessage(L('parameter_error'),HTTP_REFERER);
  22. $sitename = trim(new_addslashes($_POST['sitename']));
  23. $logo = trim($_POST['logo']);
  24. $domain = trim($_POST['domain']);
  25. $setting = array2string($_POST['setting']);
  26. $this->db->update(array('sitename'=>$sitename,'logo'=>$logo,'domain'=>$domain,'setting'=>$setting), array('siteid'=>$siteid));
  27. $this->wap_site_cache();
  28. showmessage(L('operation_success'), '', '', 'edit');
  29. } else {
  30. $siteid = intval($_GET['siteid']) ? intval($_GET['siteid']) : showmessage(L('parameter_error'),HTTP_REFERER);
  31. $sitelist = $this->sites->get_list();
  32. $info = $this->db->get_one(array('siteid'=>$siteid));
  33. if($info) {
  34. extract($info);
  35. extract(string2array($setting));
  36. }
  37. $show_header = true;
  38. include $this->admin_tpl('m_edit');
  39. }
  40. }
  41. function add() {
  42. if($_POST['dosubmit']) {
  43. $siteid = intval($_POST['siteid']) ? intval($_POST['siteid']) : showmessage(L('parameter_error'),HTTP_REFERER);
  44. if($this->db->get_one(array('siteid'=>$siteid))) {
  45. showmessage(L('wap_add_samesite_error'),HTTP_REFERER);
  46. }
  47. $sitename = trim(new_addslashes($_POST['sitename']));
  48. $logo = trim($_POST['logo']);
  49. $domain = trim($_POST['domain']);
  50. $setting = array2string($_POST['setting']);
  51. $return_id = $this->db->insert(array('siteid'=>$siteid,'sitename'=>$sitename,'logo'=>$logo,'domain'=>$domain,'setting'=>$setting),'1');
  52. $this->wap_site_cache();
  53. showmessage(L('operation_success'), '', '', 'add');
  54. } else {
  55. $sitelists = array();
  56. $current_siteid = get_siteid();
  57. $sitelists = $this->sites->get_list();
  58. if($_SESSION['roleid'] == '1') {
  59. foreach($sitelists as $key=>$v) $sitelist[$key] = $v['name'];
  60. } else {
  61. $sitelist[$current_siteid] = $sitelists[$current_siteid]['name'];
  62. }
  63. $show_header = true;
  64. include $this->admin_tpl('m_add');
  65. }
  66. }
  67. function delete() {
  68. $siteid = intval($_GET['siteid']) ? intval($_GET['siteid']) : showmessage(L('parameter_error'),HTTP_REFERER);
  69. if($siteid == 1) showmessage(L('wap_permission_denied_del'),HTTP_REFERER);
  70. $this->db->delete(array('siteid'=>$siteid));
  71. $this->type_db->delete(array('siteid'=>$siteid));
  72. $this->wap_site_cache();
  73. showmessage(L('wap_del_succ'),HTTP_REFERER);
  74. }
  75. function public_status() {
  76. $status = intval($_GET['status']) && intval($_GET['status'])== 1 ? '1' : '0';
  77. $siteid = intval($_GET['siteid']) ? intval($_GET['siteid']) : showmessage(L('parameter_error'),HTTP_REFERER);
  78. $this->db->update(array('status'=>$status), array('siteid'=>$siteid));
  79. $this->wap_site_cache();
  80. showmessage(L('wap_change_status'),HTTP_REFERER);
  81. }
  82. function type_manage() {
  83. $tree = pc_base::load_sys_class('tree');
  84. $tree->icon = array('&nbsp;&nbsp;&nbsp;│ ','&nbsp;&nbsp;&nbsp;├─ ','&nbsp;&nbsp;&nbsp;└─ ');
  85. $tree->nbsp = '&nbsp;&nbsp;&nbsp;';
  86. $siteid = intval($_GET['siteid']);
  87. if($siteid==0) showmessage(L('parameter_error'),HTTP_REFERER);
  88. if($_POST['dosubmit']) {
  89. $info['typename'] = $_POST['info']['typename'] ? $_POST['info']['typename'] : showmessage(L('wap_empty_type'),HTTP_REFERER);
  90. $info['cat'] = $_POST['info']['cat'] ? $_POST['info']['cat'] : showmessage(L('wap_empty_bound_type'),HTTP_REFERER);
  91. $info['listorder'] = $_POST['listorder'];
  92. $info['siteid'] = $siteid;
  93. if($this->type_db->get_one(array('cat'=>$info['cat'],'siteid'=>$siteid))) {
  94. $this->type_cache($siteid);
  95. showmessage(L('wap_repeat_bound_error'),HTTP_REFERER);
  96. } else {
  97. $this->type_db->insert($info);
  98. showmessage(L('operation_success'),HTTP_REFERER);
  99. }
  100. } else {
  101. $result = $this->type_db->select(array('siteid'=>$siteid),'*','','listorder ASC,typeid DESC');
  102. foreach($result as $r) {
  103. $r['add_new'] = $r['parentid']==0 ? '<a href="#" onclick="add_tr(this,\''.$r['typeid'].'\',\''.$r['siteid'].'\');">'.L('wap_add_subtype').'</a>' : '';
  104. $r['select_cat'] = form::select_category('',$r[cat],'name="cat['.$r['typeid'].']"',L('wap_type_bound'),0,0,0,$siteid);
  105. $array[$r['typeid']] = $r;
  106. }
  107. $str = "<tr>
  108. <td align='center'><input type='checkbox' value='\$typeid' name='ids[]' class='inputcheckbox'></td>
  109. <td align='center'><input name='listorders[\$typeid]' type='text' size='3' value='\$listorder' class='input-text'></td>
  110. <td align='center'>\$typeid</td>
  111. <td align='left'>\$spacer<input name='typename[\$typeid]' type='text' value='\$typename' class='input-text' size='10' >\$add_new</td>
  112. <td align='center'>\$select_cat</td>
  113. </tr>";
  114. $tree->init($array);
  115. $wap_type = $tree->get_tree(0, $str);
  116. $show_validator = true;
  117. include $this->admin_tpl('type_manage');
  118. }
  119. }
  120. function type_edit() {
  121. $siteid = intval($_GET['siteid']);
  122. if($_POST['dosubmit']) {
  123. $typename = $_POST['typename'];
  124. foreach ($typename as $typeid=>$in) {
  125. $this->type_db->update(array(
  126. 'typename'=>$_POST['typename'][$typeid],
  127. 'cat'=>$_POST['cat'][$typeid],
  128. 'listorder'=>$_POST['listorders'][$typeid],
  129. ),array('typeid'=>$typeid));
  130. }
  131. $addtype = $_POST['addtype'];
  132. $addcat = $_POST['addcat'];
  133. $addorder = $_POST['addorder'];
  134. if(is_array($addtype) && !empty($addtype)) {
  135. foreach ($addtype as $_k=>$_v) {
  136. foreach ($_v as $_s=>$infos) {
  137. $info['typename'] = $infos;
  138. $info['parentid'] = $_k;
  139. $info['siteid'] = $siteid;
  140. $info['cat'] = $addcat[$_k][$_s];
  141. $info['listorder'] = $addorder[$_k][$_s];
  142. if($this->type_db->get_one(array('cat'=>$info['cat'],'siteid'=>$siteid))) {
  143. showmessage($info['typename'].L('wap_repeat_bound'),HTTP_REFERER);
  144. } else {
  145. $this->type_db->insert($info);
  146. }
  147. }
  148. unset($info);
  149. }
  150. }
  151. $this->type_cache($siteid);
  152. showmessage(L('operation_success'),HTTP_REFERER);
  153. }
  154. }
  155. public function type_delete() {
  156. if($_POST['dosubmit']) {
  157. if(is_array($_POST['ids']) && !empty($_POST['ids'])) {
  158. foreach ($_POST['ids'] as $id) {
  159. if($this->type_db->get_one(array('parentid'=>$id))) {
  160. showmessage(L('wap_type_del_error'),HTTP_REFERER);
  161. } else {
  162. $this->type_db->delete(array('typeid'=>$id));
  163. }
  164. }
  165. }
  166. showmessage(L('operation_success'),HTTP_REFERER);
  167. }
  168. }
  169. public function public_show_cat_ajx() {
  170. $parentid = intval($_GET['parentid']);
  171. $siteid = intval($_GET['siteid']);
  172. echo form::select_category('',0,'name="addcat['.$parentid.'][]"',L('wap_type_bound'),0,0,0,$siteid);
  173. }
  174. private function wap_site_cache() {
  175. $datas = $this->db->select();
  176. $array = array();
  177. foreach ($datas as $r) {
  178. $array[$r['siteid']] = $r;
  179. }
  180. setcache('wap_site', $array,'wap');
  181. }
  182. private function type_cache($siteid) {
  183. $siteid = intval($siteid);
  184. $datas = $this->type_db->select('','*',10000,'listorder ASC');
  185. $array = array();
  186. foreach ($datas as $r) {
  187. $array[$r['typeid']] = $r;
  188. }
  189. setcache('wap_type', $array,'wap');
  190. }
  191. }
  192. ?>