public function index()
 {
     $sort = input("request.sort", 'trim', 'ordid');
     $order = input("request.order", 'trim', 'ASC');
     $tree = new \Common\ORG\Tree();
     $tree->icon = array('│ ', '├─ ', '└─ ');
     $tree->nbsp = '   ';
     $result = $this->_mod->order($sort . ' ' . $order)->select();
     $array = array();
     foreach ($result as $r) {
         $r['str_img'] = $r['img'] ? '<div class="img_border"><img src="' . attach($r['img'], 'article_cate') . '" width="26" height="26" class="J_preview" data-bimg="' . attach($r['img'], 'article_cate') . '"/></div>' : '';
         $r['str_status'] = '<img data-tdtype="toggle" data-id="' . $r['id'] . '" data-field="status" data-value="' . $r['status'] . '" src="__STATIC__/images/admin/toggle_' . ($r['status'] == 0 ? 'disabled' : 'enabled') . '.gif" />';
         $r['str_manage'] = '<a href="javascript:;" class="J_showdialog" data-uri="' . U('article_cate/add', array('pid' => $r['id'])) . '" data-title="' . L('add_article_cate') . '" data-id="add" data-width="500" data-height="360">' . L('add_article_subcate') . '</a> |
                             <a href="javascript:;" class="J_showdialog" data-uri="' . U('article_cate/edit', array('id' => $r['id'])) . '" data-title="' . L('edit') . ' - ' . $r['name'] . '" data-id="edit" data-width="500" data-height="360">' . L('edit') . '</a> |
                             <a href="javascript:;" data-acttype="ajax" class="J_confirmurl" data-uri="' . U('article_cate/delete', array('id' => $r['id'])) . '" data-msg="' . sprintf(L('confirm_delete_one'), $r['name']) . '">' . L('delete') . '</a>';
         $r['parentid_node'] = $r['pid'] ? ' class="child-of-node-' . $r['pid'] . '"' : '';
         $r['cate_type'] = $r['type'] ? '<span class="blue">' . L('article_cate_type_' . $r['type']) . '</span>' : L('article_cate_type_' . $r['type']);
         $array[] = $r;
     }
     $str = "<tr id='node-\$id' \$parentid_node>\n                <td align='center'><input type='checkbox' value='\$id' class='J_checkitem'></td>\n                <td>\$spacer<span data-tdtype='edit' data-field='name' data-id='\$id' class='tdedit'>\$name</span></td>\n                <td align='center'>\$id</td>\n                <td align='center'>\$cate_type</td>\n                <td align='center'>\$str_img</td>\n                <td align='center'><span data-tdtype='edit' data-field='ordid' data-id='\$id' class='tdedit'>\$ordid</span></td>\n\n                <td align='center'>\$str_status</td>\n                <td align='center'>\$str_manage</td>\n                </tr>";
     $tree->init($array);
     $list = $tree->get_tree(0, $str);
     $this->assign('list', $list);
     //bigmenu (标题,地址,弹窗ID,宽,高)
     $big_menu = array('title' => L('add_article_cate'), 'iframe' => U('article_cate/add'), 'id' => 'add', 'width' => '500', 'height' => '360');
     $this->assign('big_menu', $big_menu);
     $this->assign('list_table', true);
     $this->display();
 }
 public function _before_edit()
 {
     $id = input('get.id', 'intval');
     $info = $this->_mod->find($id);
     $this->assign('info', $info);
     $tree = new \Common\ORG\Tree();
     $result = $this->_mod->select();
     $array = array();
     foreach ($result as $r) {
         $r['selected'] = $r['id'] == $info['pid'] ? 'selected' : '';
         $array[] = $r;
     }
     $str = "<option value='\$id' \$selected>\$spacer \$name</option>";
     $tree->init($array);
     $select_menus = $tree->get_tree(0, $str);
     $this->assign('select_menus', $select_menus);
 }
 public function auth()
 {
     $menu_mod = D('menu');
     $auth_mod = D('admin_auth');
     if (isset($_POST['dosubmit'])) {
         $id = intval($_POST['id']);
         //清空权限
         $auth_mod->where(array('role_id' => $id))->delete();
         if (is_array($_POST['menu_id']) && count($_POST['menu_id']) > 0) {
             foreach ($_POST['menu_id'] as $menu_id) {
                 $auth_mod->add(array('role_id' => $id, 'menu_id' => $menu_id));
             }
         }
         $this->success(L('operation_success'));
     } else {
         $id = input('get.id', 'intval');
         $tree = new \Common\ORG\Tree();
         $tree->icon = array('│ ', '├─ ', '└─ ');
         $tree->nbsp = '&nbsp;&nbsp;&nbsp;';
         $result = $menu_mod->order('ordid')->select();
         //获取被操作角色权限
         $role_data = $this->_mod->relation('role_priv')->find($id);
         $priv_ids = array();
         foreach ($role_data['role_priv'] as $val) {
             $priv_ids[] = $val['id'];
         }
         foreach ($result as $k => $v) {
             $result[$k]['level'] = $menu_mod->get_level($v['id'], $result);
             $result[$k]['checked'] = in_array($v['id'], $priv_ids) ? ' checked' : '';
             $result[$k]['parentid_node'] = $v['pid'] ? ' class="child-of-node-' . $v['pid'] . '"' : '';
         }
         $str = "<tr id='node-\$id' \$parentid_node>" . "<td style='padding-left:10px;'>\$spacer<input type='checkbox' name='menu_id[]' value='\$id' class='J_checkitem' level='\$level' \$checked> \$name</td>\n                    </tr>";
         $tree->init($result);
         $menu_list = $tree->get_tree(0, $str);
         $this->assign('list', $menu_list);
         $this->assign('role', $role_data);
         $this->display();
     }
 }
 /**
  * 单页管理
  */
 public function page()
 {
     $prefix = C('DB_PREFIX');
     $sort = I("request.sort", 'ordid', 'trim');
     $order = I("request.order", 'DESC', 'trim');
     $tree = new \Common\ORG\Tree();
     $tree->icon = array('&nbsp;&nbsp;&nbsp;│ ', '&nbsp;&nbsp;&nbsp;├─ ', '&nbsp;&nbsp;&nbsp;└─ ');
     $tree->nbsp = '&nbsp;&nbsp;&nbsp;';
     $result = $this->_cate_mod->field('id,pid,name,last_time')->join('__article_page__ ON __article_page__.cate_id =__article_cate__.id', 'LEFT')->where(array('type' => 1))->order($sort . ' ' . $order)->select();
     $array = array();
     foreach ($result as $r) {
         //是否有下一级
         if ($this->_cate_mod->where(array('pid' => $r['id']))->count('id')) {
             $r['str_manage'] = '';
         } else {
             $r['str_manage'] = '<a href="' . U('article/page_edit', array('cate_id' => $r['id'])) . '">' . L('edit') . '</a>';
         }
         $r['parentid_node'] = $r['pid'] ? ' class="child-of-node-' . $r['pid'] . '"' : '';
         $r['last_time'] = $r['last_time'] ? date('Y-m-d H:i:s', $r['last_time']) : '-';
         $array[] = $r;
     }
     $str = "<tr id='node-\$id' \$parentid_node>\n                <td align='center'>\$id</td>\n                <td>\$spacer\$name</td>\n                <td align='center'>\$last_time</td>\n                <td align='center'>\$str_manage</td>\n                </tr>";
     $tree->init($array);
     $list = $tree->get_tree(0, $str);
     $this->assign('list', $list);
     $this->assign('list_table', true);
     $this->display();
 }