/** * 编辑菜单 */ public function edit() { parent::check_privilege(); $menu_id = $this->uri->segment(3); $menu_id = !empty($menu_id) ? $menu_id : $_POST['menu_id']; /* * 提交编辑后处理 */ $data['error_code'] = 0; if (isset($_POST['submit']) && $_POST['submit'] == 'edit') { $this->form_validation->set_rules('menu_title', 'lang:menu_title', 'trim|required|min_length[2]|max_length[40]|xss_clean'); $this->form_validation->set_rules('menu_url', 'lang:menu_url', 'trim|required|xss_clean'); $this->form_validation->set_rules('display_order', 'lang:display_order', 'trim|required|integer'); if ($this->form_validation->run() == FALSE) { $data['error_code'] = 'validation_error'; } else { $data['error_code'] = 0; if ($this->input->post('parent_id') == $menu_id) { $data['error_code'] = 2; } else { $menu_level = $this->menu->get_level_by_parant_id($this->input->post('parent_id')); $data = array('menu_level' => $menu_level, 'parent_id' => $this->input->post('parent_id'), 'menu_title' => $this->input->post('menu_title'), 'menu_url' => $this->input->post('menu_url'), 'menu_icon' => $this->input->post('menu_icon'), 'display_order' => $this->input->post('display_order'), 'status' => $this->input->post('status')); $this->menu->update($data, $menu_id); redirect(site_url('menu/index')); } } } $record = $this->menu->get_record_by_id($menu_id); if (!$menu_id || !$record) { show_404(); } else { $data['record'] = $record; } $menu_record = $this->menu->get_total_record(); $data['menu_record_tree'] = get_menu_record_tree($menu_record['datalist']); $data['parent_id'] = $this->menu->get_parent_id($menu_id); //echo $data['parent_id'];exit; $data["cur_nav"] = "menu_edit"; $this->layout->view("menu/edit", $data); }
function get_menu_record_tree($array, $parent_id = 0, $level = 1) { $repeat = ' '; $str_repeat = ''; for ($i = 0; $i < $level; $i++) { $str_repeat .= $repeat; } $str_repeat = $str_repeat . '→'; $newarray = array(); $temparray = array(); foreach ((array) $array as $v) { if ($v['parent_id'] == $parent_id and $v['menu_level'] == $level) { $v['str_repeat'] = $str_repeat; $newarray[] = $v; $parent_id_v = $v['menu_id']; $level_v = $level + 1; $temparray = get_menu_record_tree($array, $parent_id_v, $level_v); if ($temparray) { $newarray = array_merge($newarray, $temparray); } } } return $newarray; }
/** * 编辑权限节点 */ public function edit() { parent::check_privilege(); $id = $this->uri->segment(3); $id = !empty($id) ? $id : $_POST['privilege_id']; /* * 提交编辑后处理 */ $data['error_code'] = 0; if (isset($_POST['submit']) && $_POST['submit'] == 'edit') { $this->form_validation->set_rules('privilege_title', 'lang:privilege_title', 'trim|required|xss_clean'); $this->form_validation->set_rules('action', 'lang:action', 'trim|required'); $this->form_validation->set_rules('display_order', 'lang:display_order', 'trim|required|integer'); if ($this->form_validation->run() == FALSE) { $data['error_code'] = 'validation_error'; } else { $data['error_code'] = 0; $data = array('privilege_title' => $this->input->post('privilege_title'), 'action' => $this->input->post('action'), 'menu_id' => $this->input->post('menu_id'), 'display_order' => $this->input->post('display_order')); $this->privilege->update($data, $id); redirect(site_url('privilege/index')); } } $record = $this->privilege->get_record_by_id($id); if (!$id || !$record) { show_404(); } else { $data['record'] = $record; } $menu_record = $this->menu->get_total_record(); $data['menu_record_tree'] = get_menu_record_tree($menu_record['datalist']); $this->layout->view("privilege/edit", $data); }