db = pc_base::load_model('linkage_model'); $this->sites = pc_base::load_app_class('sites'); pc_base::load_sys_class('form', '', 0); $this->childnode = array(); } /** * 联动菜单列表 */ public function init() { $where = array('keyid'=>0); $infos = $this->db->select($where); $big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=admin&c=linkage&a=add\', title:\''.L('linkage_add').'\', width:\'500\', height:\'220\', 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('linkage_add')); include $this->admin_tpl('linkage_list'); } /** * 添加联动菜单 */ function add() { if(isset($_POST['dosubmit'])) { $info = array(); $info['name'] = isset($_POST['info']['name']) && trim($_POST['info']['name']) ? trim($_POST['info']['name']) : showmessage(L('linkage_not_empty')); $info['description'] = trim($_POST['info']['description']); $info['style'] = trim(intval($_POST['info']['style'])); $info['siteid'] = trim(intval($_POST['info']['siteid'])); $this->db->insert($info); $insert_id = $this->db->insert_id(); if($insert_id){ showmessage(L('operation_success'), '', '', 'add'); } } else { $show_header = true; $show_validator = true; $sitelist = $this->sites->get_list(); foreach($sitelist as $siteid=>$v) { $sitelist[$siteid] = $v['name']; } include $this->admin_tpl('linkage_add'); } } /** * 编辑联动菜单 */ public function edit() { if(isset($_POST['dosubmit'])) { $info = array(); $linkageid = intval($_POST['linkageid']); $info['name'] = isset($_POST['info']['name']) && trim($_POST['info']['name']) ? trim($_POST['info']['name']) : showmessage(L('linkage_not_empty')); $info['description'] = trim($_POST['info']['description']); $info['style'] = trim(intval($_POST['info']['style'])); $info['siteid'] = trim(intval($_POST['info']['siteid'])); $info['setting'] = array2string(array('level'=>intval($_POST['info']['level']))); if($_POST['info']['keyid']) $info['keyid'] = trim($_POST['info']['keyid']); if($_POST['info']['parentid']) $info['parentid'] = trim($_POST['info']['parentid']); $this->db->update($info,array('linkageid'=>$linkageid)); $id = $info['keyid'] ? $info['keyid'] : $linkageid; showmessage(L('operation_success'), '', '', 'edit'); } else { $linkageid = intval($_GET['linkageid']); $info = $this->db->get_one(array('linkageid'=>$linkageid)); extract($info); $setting = string2array($setting); $sitelist = $this->sites->get_list(); foreach($sitelist as $id=>$v) { $sitelist[$id] = $v['name']; } $show_header = true; $show_validator = true; include $this->admin_tpl('linkage_edit'); } } /** * 删除菜单 */ public function delete() { $linkageid = intval($_GET['linkageid']); $keyid = intval($_GET['keyid']); $this->_get_childnode($linkageid); if(is_array($this->childnode)){ foreach($this->childnode as $linkageid_tmp) { $this->db->delete(array('linkageid' => $linkageid_tmp)); } } $this->db->delete(array('keyid' => $linkageid)); $id = $keyid ? $keyid : $linkageid; if(!$keyid)$this->_dlecache($linkageid); showmessage(L('operation_success')); } public function public_cache() { $linkageid = intval($_GET['linkageid']); $this->_cache($linkageid); showmessage(L('operation_success')); } /** * 菜单排序 */ public function public_listorder() { if(!is_array($_POST['listorders'])) return FALSE; foreach($_POST['listorders'] as $linkageid=>$value) { $value = intval($value); $this->db->update(array('listorder'=>$value),array('linkageid'=>$linkageid)); } $id = intval($_POST['keyid']); showmessage(L('operation_success'),'?m=admin&c=linkage&a=init'); } /** * 管理联动菜单子菜单 */ public function public_manage_submenu() { $keyid = isset($_GET['keyid']) && trim($_GET['keyid']) ? trim($_GET['keyid']) : showmessage(L('linkage_parameter_error')); $tree = pc_base::load_sys_class('tree'); $tree->icon = array(' │ ',' ├─ ',' └─ '); $tree->nbsp = ' '; $sum = $this->db->count(array('keyid'=>$keyid)); $sql_parentid = $_GET['parentid'] ? trim($_GET['parentid']) : 0; $where = $sum > 40 ? array('keyid'=>$keyid,'parentid'=>$sql_parentid) : array('keyid'=>$keyid); $result = $this->db->select($where,'*','','listorder ,linkageid'); foreach($result as $areaid => $area){ $areas[$area['linkageid']] = array('id'=>$area['linkageid'],'parentid'=>$area['parentid'],'name'=>$area['name'],'listorder'=>$area['listorder'],'style'=>$area['style'],'mod'=>$mod,'file'=>$file,'keyid'=>$keyid,'description'=>$area['description']); $areas[$area['linkageid']]['str_manage'] = ($sum > 40 && $this->_is_last_node($area['keyid'],$area['linkageid'])) ? ''.L('linkage_manage_submenu').' | ' : ''; $areas[$area['linkageid']]['str_manage'] .= ''.L('linkage_add_submenu').' | '.L('edit').' | '.L('delete').' '; } $str = "