public function index($page = 1, $r = 20)
 {
     $map['status'] = array('egt', 0);
     list($roleList, $totalCount) = $this->roleModel->selectPageByMap($map, $page, $r, 'sort asc');
     $map_group['id'] = array('in', array_column($roleList, 'group_id'));
     $group = $this->roleGroupModel->where($map_group)->field('id,title')->select();
     $group = array_combine(array_column($group, 'id'), $group);
     $authGroupList = M('AuthGroup')->where(array('status' => 1))->field('id,title')->select();
     $authGroupList = array_combine(array_column($authGroupList, 'id'), array_column($authGroupList, 'title'));
     foreach ($roleList as &$val) {
         $user_groups = explode(',', $val['user_groups']);
         $val['group'] = $group[$val['group_id']]['title'];
         foreach ($user_groups as &$vl) {
             $vl = $authGroupList[$vl];
         }
         unset($vl);
         $val['user_groups'] = implode(',', $user_groups);
     }
     unset($val);
     $builder = new AdminListBuilder();
     $builder->meta_title = "角色列表";
     $builder->title("角色列表");
     $builder->buttonNew(U('Role/editRole'))->setStatusUrl(U('setStatus'))->buttonEnable()->buttonDisable()->button('删除', array('class' => 'btn ajax-post confirm', 'url' => U('setStatus', array('status' => -1)), 'target-form' => 'ids', 'confirm-info' => "确认删除角色?删除后不可恢复!"))->buttonSort(U('sort'));
     $builder->keyId()->keyText('title', '角色名')->keyText('name', '角色标识')->keyText('group', '所属分组')->keyText('description', '描述')->keyText('user_groups', '默认用户组')->keytext('sort', '排序')->keyYesNo('invite', '是否需要邀请才能注册')->keyYesNo('audit', '注册后是否需要审核')->keyStatus()->keyCreateTime()->keyUpdateTime()->keyDoActionEdit('Role/editRole?id=###')->keyDoAction('Role/configScore?id=###', '默认信息配置')->data($roleList)->pagination($totalCount, $r)->display();
 }
 public function type($page = 1, $r = 20)
 {
     $entity = I('entity', 0, 'intval');
     if ($entity != 0) {
         $map['entity'] = $entity;
     }
     $builder = new AdminListBuilder();
     $builder->title('商品分类管理');
     $list = D('Appstore/AppstoreType')->getList($map, $r, 'id desc');
     foreach ($list['data'] as &$v) {
         switch ($v['entity']) {
             case 1:
                 $v['entity_alias'] = '插件';
                 break;
             case 2:
                 $v['entity_alias'] = '模块';
                 break;
             case 3:
                 $v['entity_alias'] = '模板';
                 break;
             case 4:
                 $v['entity_alias'] = '服务';
                 break;
         }
     }
     unset($v);
     $builder->keyId()->keyLink('title', '分类名称', 'addType?id=###')->keyText('entity_alias', '分类所属');
     $builder->setSelectPostUrl(U('type'))->select('', 'entity', 'select', '', '', '', array(array('id' => 0, 'value' => '全部'), array('id' => 1, 'value' => '插件'), array('id' => 2, 'value' => '模块'), array('id' => 3, 'value' => '主题'), array('id' => 4, 'value' => '服务')));
     $builder->buttonNew(U('addType', array('entity' => $entity)), '新增');
     $builder->data($list[data]);
     $builder->display();
 }
 public function index($page = 1, $r = 20)
 {
     $map['status'] = array('egt', 0);
     list($roleList, $totalCount) = $this->roleModel->selectPageByMap($map, $page, $r, 'sort asc');
     $map_group['id'] = array('in', array_column($roleList, 'group_id'));
     $group = $this->roleGroupModel->where($map_group)->field('id,title')->select();
     $group = array_combine(array_column($group, 'id'), $group);
     $authGroupList = M('AuthGroup')->where(array('status' => 1))->field('id,title')->select();
     $authGroupList = array_combine(array_column($authGroupList, 'id'), array_column($authGroupList, 'title'));
     foreach ($roleList as &$val) {
         $user_groups = explode(',', $val['user_groups']);
         $val['group'] = $group[$val['group_id']]['title'];
         foreach ($user_groups as &$vl) {
             $vl = $authGroupList[$vl];
         }
         unset($vl);
         $val['user_groups'] = implode(',', $user_groups);
     }
     unset($val);
     $builder = new AdminListBuilder();
     $builder->meta_title = L('_IDENTITY_LIST_');
     $builder->title(L('_IDENTITY_LIST_'));
     $builder->buttonNew(U('Role/editRole'))->setStatusUrl(U('setStatus'))->buttonEnable()->buttonDisable()->button(L('_DELETE_'), array('class' => 'btn ajax-post confirm', 'url' => U('setStatus', array('status' => -1)), 'target-form' => 'ids', 'confirm-info' => "确认删除身份?删除后不可恢复!"))->buttonSort(U('sort'));
     $builder->keyId()->keyText('title', L('_ROLE_NAME_'))->keyText('name', L('_ROLE_MARK_'))->keyText('group', L('_GROUP_'))->keyText('description', L('_DESCRIPTION_'))->keyText('user_groups', L('_DEFAULT_USER_GROUP_'))->keytext('sort', L('_SORT_'))->keyYesNo('invite', L('_DO_YOU_NEED_AN_INVITATION_TO_REGISTER_'))->keyYesNo('audit', L('_REGISTRATION_WILL_NEED_TO_AUDIT_'))->keyStatus()->keyCreateTime()->keyUpdateTime()->keyDoActionEdit('Role/editRole?id=###')->keyDoAction('Role/configScore?id=###', L('_DEFAULT_INFORMATION_CONFIGURATION_'))->data($roleList)->pagination($totalCount, $r)->display();
 }
 public function lists()
 {
     $listBuilder = new AdminListBuilder();
     /*刷新模块列表时清空缓存*/
     $aRefresh = I('get.refresh', 0, 'intval');
     if ($aRefresh) {
         S('module_all', null);
     }
     /*刷新模块列表时清空缓存 end*/
     $modules = $this->moduleModel->getAll();
     foreach ($modules as &$m) {
         $m['alias'] = '<i class="icon-' . $m['icon'] . '"></i> ' . $m['alias'];
         if ($m['is_setup']) {
             $m['name'] = '<i class="icon-ok" style="color: green;"></i> ' . $m['name'];
             if ($m['can_uninstall']) {
                 $m['do'] = '<a class="btn btn-error "  onclick="moduleManager.uninstall(\'' . $m['id'] . '\')"><span style="color: red;" ><i class="icon-cut"></i></span> 卸载</a>';
             }
         } else {
             $m['name'] = '<i class="icon-remove" style="color: red;"></i> ' . $m['name'];
             $m['do'] = '<a class="btn" onclick="moduleManager.install(\'' . $m['id'] . '\')"><span style="color: green;"<i class="icon-check"></i></span> 安装</a>';
         }
         if ($m['is_com']) {
             $m['is_com'] = '<strong style="color: orange">商业模块</strong>';
         } else {
             $m['is_com'] = '<strong style="color: green">免费模块</strong>';
         }
     }
     unset($m);
     $listBuilder->data($modules);
     $listBuilder->title('模块管理');
     $listBuilder->button('刷新', array('href' => U('Admin/Module/lists', array('refresh' => 1))));
     $listBuilder->keyId()->keyHtml('alias', '模块名')->keyText('name', '模块英文名')->keyText('summary', '模块介绍')->keyText('version', '版本号')->keyText('is_com', '商业模块')->keyLink('developer', '开发者', '{$website}')->keyText('entry', '前台入口')->keyText('admin_entry', '后台入口')->keyText('do', '操作');
     $listBuilder->display();
 }
 public function scoreLog($r = 20, $p = 1)
 {
     if (I('type') == 'clear') {
         D('ScoreLog')->where(array('id>0'))->delete();
         $this->success('清空成功。', U('scoreLog'));
         exit;
     } else {
         $aUid = I('uid', 0, '');
         if ($aUid) {
             $map['uid'] = $aUid;
         }
         $listBuilder = new AdminListBuilder();
         $listBuilder->title('积分日志');
         $map['status'] = array('gt', -1);
         $scoreLog = D('ScoreLog')->where($map)->order('create_time desc')->findPage($r);
         $scoreTypes = D('Ucenter/Score')->getTypeListByIndex();
         foreach ($scoreLog['data'] as &$v) {
             $v['adjustType'] = $v['action'] == 'inc' ? '增加' : '减少';
             $v['scoreType'] = $scoreTypes[$v['type']]['title'];
             $class = $v['action'] == 'inc' ? 'text-success' : 'text-danger';
             $v['value'] = '<span class="' . $class . '">' . ($v['action'] == 'inc' ? '+' : '-') . $v['value'] . $scoreTypes[$v['type']]['unit'] . '</span>';
             $v['finally_value'] = $v['finally_value'] . $scoreTypes[$v['type']]['unit'];
         }
         $listBuilder->data($scoreLog['data']);
         $listBuilder->keyId()->keyUid('uid', '用户')->keyText('scoreType', '积分类型')->keyText('adjustType', '调整类型')->keyHtml('value', '积分变动')->keyText('finally_value', '积分最终值')->keyText('remark', '变动描述')->keyCreateTime();
         $listBuilder->pagination($scoreLog['count'], $r);
         $listBuilder->search(L('_SEARCH_'), 'uid', 'text', '输入UID');
         $listBuilder->button('清空日志', array('url' => U('scoreLog', array('type' => 'clear')), 'class' => 'btn ajax-get confirm'));
         $listBuilder->display();
     }
 }
 /**
  * 公告列表
  * @param int $page
  * @param int $r
  * @author 郑钟良<*****@*****.**>
  */
 public function buildList($page = 1, $r = 20)
 {
     $map['status'] = 1;
     $aDown = I('down', 0, 'intval');
     $this->assign('down', $aDown);
     if ($aDown) {
         $map['end_time'] = array('elt', time());
     } else {
         $map['end_time'] = array('gt', time());
     }
     list($list, $totalCount) = $this->announcementModel->getListPage($map, $page, 'id desc', $r);
     $builder = new AdminListBuilder();
     $builder->title('公告列表');
     $builder->buttonNew(addons_url('Announcement://admin/edit'));
     $builder->setSelectPostUrl(addons_url('Announcement://admin/buildList'))->select('', 'down', 'select', '', '', '', array(array('id' => 0, 'value' => '当前公告'), array('id' => 1, 'value' => '历史公告')));
     $builder->keyId()->keyTitle()->keyIcon()->keyText('link', '链接')->keyText('content', '内容')->keyCreateTime()->keyTime('end_time', '截止日期');
     $builder->keyDoActionEdit('Announcement://admin/edit?id=###|addons_url');
     if (!$aDown) {
         $builder->ajaxButton(addons_url('Announcement://admin/setEnd'), '', '设为到期')->keyDoAction('Announcement://admin/setEnd?ids=###|addons_url', '设为到期');
     }
     $builder->data($list)->pagination($totalCount, $r);
     $builder->display();
 }
 public function lists()
 {
     $listBuilder = new AdminListBuilder();
     /*刷新模块列表时清空缓存*/
     $aRefresh = I('get.refresh', 0, 'intval');
     if ($aRefresh == 1) {
         D('Module')->reload();
     } else {
         if ($aRefresh == 2) {
             D('Module')->cleanModulesCache();
         }
     }
     /*刷新模块列表时清空缓存 end*/
     $modules = $this->moduleModel->getAll();
     foreach ($modules as &$m) {
         $m['alias'] = '<a href="' . U('edit?', array('name' => $m['name'])) . '"><i class="icon-' . $m['icon'] . '"></i> ' . $m['alias'] . '</a>';
         if ($m['is_setup']) {
             $m['name'] = '<i class="icon-ok" style="color: green;"></i> ' . $m['name'];
             if ($m['can_uninstall'] == 1) {
                 $m['do'] = '<a class="btn btn-error "  href="' . U('uninstall', array('id' => $m['id'])) . '"><span style="color: red;" ><i class="icon-cut"></i></span> 卸载</a>';
             } else {
                 $m['do'] = '系统模块';
             }
         } else {
             $m['do'] = '<a class="btn" href="' . U('install', array('name' => $m['name'])) . '"><span style="color: green;"<i class="icon-check"></i></span> 安装</a>';
             $m['name'] = '<i class="icon-remove" style="color: red;"></i> ' . $m['name'];
             // $m['do'] = '<a class="btn" onclick="moduleManager.install(\'' . $m['id'] . '\')"><span style="color: green;"<i class="icon-check"></i></span> 安装</a>';
         }
     }
     unset($m);
     $listBuilder->data($modules);
     $listBuilder->title('模块管理');
     $listBuilder->button('刷新(读入新的模块)', array('href' => U('Admin/Module/lists', array('refresh' => 2))));
     $listBuilder->button('重置(根据预设模块信息重置)', array('href' => U('Admin/Module/lists', array('refresh' => 1))));
     $listBuilder->keyId()->keyHtml('alias', '模块名')->keyText('name', '模块英文名')->keyText('summary', '模块介绍')->keyText('version', '版本号')->keyLink('developer', '开发者', '{$website}')->keyText('entry', '前台入口')->keyText('admin_entry', '后台入口')->keyHtml('do', '操作');
     $listBuilder->display();
 }
 public function field($id, $page = 1, $r = 20)
 {
     $profile = D('field_group')->where('id=' . $id)->find();
     $map['status'] = array('egt', 0);
     $map['profile_group_id'] = $id;
     $field_list = D('field_setting')->where($map)->order("sort asc")->page($page, $r)->select();
     $totalCount = D('field_setting')->where($map)->count();
     $type_default = array('input' => L('_ONE-WAY_TEXT_BOX_'), 'radio' => L('_RADIO_BUTTON_'), 'checkbox' => L('_CHECKBOX_'), 'select' => L('_DROP-DOWN_BOX_'), 'time' => L('_DATE_'), 'textarea' => L('_MULTI_LINE_TEXT_BOX_'));
     $child_type = array('string' => L('_STRING_'), 'phone' => L('_PHONE_NUMBER_'), 'email' => L('_MAILBOX_'), 'number' => L('_NUMBER_'), 'join' => L('_RELATED_FIELD_'));
     foreach ($field_list as &$val) {
         $val['form_type'] = $type_default[$val['form_type']];
         $val['child_form_type'] = $child_type[$val['child_form_type']];
     }
     $builder = new AdminListBuilder();
     $builder->title('【' . $profile['profile_name'] . '】 字段管理');
     $builder->meta_title = $profile['profile_name'] . L('_FIELD_MANAGEMENT_');
     $builder->buttonNew(U('editFieldSetting', array('id' => '0', 'profile_group_id' => $id)))->buttonDelete(U('setFieldSettingStatus', array('status' => '-1')))->setStatusUrl(U('setFieldSettingStatus'))->buttonSort(U('sortField', array('id' => $id)))->button(L('_RETURN_'), array('href' => U('profile')));
     $builder->keyId()->keyText('field_name', L('_FIELD_NAME_'))->keyBool('visiable', L('_OPEN_YE_OR_NO_'))->keyBool('required', L('_WHETHER_THE_REQUIRED_'))->keyText('sort', L('_SORT_'))->keyText('form_type', L('_FORM_TYPE_'))->keyText('child_form_type', L('_TWO_FORM_TYPE_'))->keyText('form_default_value', L('_DEFAULT_'))->keyText('validation', L('_FORM_VERIFICATION_MODE_'))->keyText('input_tips', L('_USER_INPUT_PROMPT_'));
     $builder->keyTime("createTime", L('_CREATE_TIME_'))->keyStatus()->keyDoAction('User/editFieldSetting?profile_group_id=' . $id . '&id=###', L('_EDIT_'));
     $builder->data($field_list);
     $builder->pagination($totalCount, $r);
     $builder->display();
 }
 public function field($id, $page = 1, $r = 20)
 {
     $profile = D('field_group')->where('id=' . $id)->find();
     $map['status'] = array('egt', 0);
     $map['profile_group_id'] = $id;
     $field_list = D('field_setting')->where($map)->order("sort asc")->page($page, $r)->select();
     $totalCount = D('field_setting')->where($map)->count();
     $type_default = array('input' => '单行文本框', 'radio' => '单选按钮', 'checkbox' => '多选框', 'select' => '下拉选择框', 'time' => '日期', 'textarea' => '多行文本框');
     $child_type = array('string' => '字符串', 'phone' => '手机号码', 'email' => '邮箱', 'number' => '数字', 'join' => '关联字段');
     foreach ($field_list as &$val) {
         $val['form_type'] = $type_default[$val['form_type']];
         $val['child_form_type'] = $child_type[$val['child_form_type']];
     }
     $builder = new AdminListBuilder();
     $builder->title('【' . $profile['profile_name'] . '】 字段管理');
     $builder->meta_title = $profile['profile_name'] . '字段管理';
     $builder->buttonNew(U('editFieldSetting', array('id' => '0', 'profile_group_id' => $id)))->buttonDelete(U('setFieldSettingStatus', array('status' => '-1')))->setStatusUrl(U('setFieldSettingStatus'))->buttonSort(U('sortField', array('id' => $id)))->button('返回', array('href' => U('profile')));
     $builder->keyId()->keyText('field_name', "字段名称")->keyBool('visiable', '是否公开')->keyBool('required', '是否必填')->keyText('sort', "排序")->keyText('form_type', '表单类型')->keyText('child_form_type', '二级表单类型')->keyText('form_default_value', '默认值')->keyText('validation', '表单验证方式')->keyText('input_tips', '用户输入提示');
     $builder->keyTime("createTime", "创建时间")->keyStatus()->keyDoAction('User/editFieldSetting?profile_group_id=' . $id . '&id=###', '编辑');
     $builder->data($field_list);
     $builder->pagination($totalCount, $r);
     $builder->display();
 }
 public function adv($r = 20)
 {
     $aPosId = I('pos_id', 0, 'intval');
     $advPosModel = D('Common/AdvPos');
     $pos = $advPosModel->find($aPosId);
     if ($aPosId != 0) {
         $map['pos_id'] = $aPosId;
     }
     $map['status'] = 1;
     $data = D('Adv')->where($map)->order('pos_id desc,sort desc')->findPage($r);
     foreach ($data['data'] as &$v) {
         $p = $advPosModel->find($v['pos_id']);
         $v['pos'] = '<a class="text-danger" href="' . U('adv?pos_id=' . $p['pos_id']) . '">' . $p['title'] . '</a>';
     }
     //todo 广告管理列表
     $builder = new AdminListBuilder();
     if ($aPosId == 0) {
         $builder->title('广告管理');
     } else {
         $builder->title($pos['title'] . '【' . $pos['name'] . '】' . ' 设置——' . $advPosModel->switchType($pos['type']));
     }
     $builder->keyId()->keyLink('title', '广告说明', 'editAdv?id=###');
     $builder->keyHtml('pos', '所属广告位');
     $builder->keyText('click_count', '点击量');
     $builder->buttonNew(U('editAdv?pos_id=' . $aPosId), '新增广告');
     if ($aPosId != 0) {
         $builder->button('广告排期查看', array('href' => U('schedule?pos_id=' . $aPosId)));
         $builder->button('设置广告位', array('href' => U('editPos?id=' . $aPosId)));
     }
     $builder->keyText('url', '链接地址')->keyTime('start_time', '开始生效时间', '不设置则立即生效')->keyTime('end_time', '失效时间', '不设置则一直有效')->keyText('sort', '排序')->keyCreateTime()->keyStatus();
     $builder->data($data['data']);
     $builder->pagination($data['count'], $r);
     $builder->display();
 }
 public function fieldTrash($page = 1, $r = 20)
 {
     $aModel = I('model', 'CatField', 'text');
     $listBuilder = new AdminListBuilder();
     $listBuilder->clearTrash($aModel);
     $listBuilder->title('字段管理');
     $data = M('cat_field')->where(' status=-1')->order('sort desc')->page($page, $r)->select();
     $totalCount = M('cat_field')->where(' status=-1')->count();
     $type_alias = array(IT_SINGLE_TEXT => '单行文本', IT_MULTI_TEXT => '多行文本', IT_SELECT => '下拉框', IT_CHECKBOX => '多选框', IT_RADIO => '单选框', IT_EDITOR => '编辑器', IT_PIC => '单图上传');
     foreach ($data as $key => $v) {
         $data[$key]['input_type'] = $type_alias[$v['input_type']];
         $entity = M('cat_entity')->find($v['entity_id']);
         $data[$key]['entity_alias'] = $entity['alias'];
     }
     $listBuilder->keyId();
     $listBuilder->keyText('name', '英文名')->keyLink('entity_alias', '模型', 'field?entity_id={$entity_id}')->keyText('alias', '中文名')->keyText('sort', '排序')->keyText('input_type', '输入类型');
     $listBuilder->keyDoActionEdit('editField?id=####');
     $listBuilder->buttonRestore(U('setFieldStatus', array('status' => 1)))->buttonClear('CatField');
     //$listBuilder->buttonSort(U('sortField'));
     $listBuilder->pagination($totalCount, $r);
     $listBuilder->data($data);
     $listBuilder->display();
 }
 public function Sale()
 {
     $d_sale = D('Sale');
     $map['a.status'] = 1;
     //2表示待审核
     $list = $d_sale->alias('a')->field('a.id,a.name,a.tel,a.createtime,a.uptime')->where($map)->select();
     $builder = new AdminListBuilder();
     $builder->title('委托');
     $builder->keyId()->keyLink('name', '委托人', 'SaleDetail?id=###')->keyText('tel', '电话')->keyCreateTime('createtime')->keyDoAction('doMemberAuth?id=###', '删除')->keyDoAction('doMemberAuth?id=###', '成交');
     $builder->data($list);
     $builder->display();
 }
 public function withdrawList($r = 15, $page = 1)
 {
     $listBuilder = new AdminListBuilder();
     $recordModel = D('recharge_withdraw');
     $data = $recordModel->order('create_time desc')->page($p, $r)->select();
     $totalCount = $recordModel->count();
     foreach ($data as &$v) {
         $type = D('Ucenter/Score')->getType(array('id' => $v['field'], 'status' => 1));
         $v['type_title'] = $type['title'];
         $v['method_name'] = get_pay_method($v['method']);
         $v['pay_condition'] = $this->getConditionText($v['payok']);
         if ($v['pay_uid'] != 0) {
             $user = query_user(array('space_link'), $v['pay_uid']);
             $v['operator'] = $user['space_link'];
         } else {
             $v['operator'] = '-';
         }
         $v['pay_time'] = $v['pay_time'] == 0 ? '-' : $v['pay_time'];
     }
     unset($v);
     $listBuilder->title('提现记录');
     $listBuilder->keyId()->keyText('type_title', '提现字段')->keyText('amount', '提现金额')->keyText('frozen_amount', '冻结积分')->keyUid()->keyText('method_name', '提现方式')->keyCreateTime()->keyText('pay_condition', '支付状态')->keyText('operator', '操作者')->keyTime('pay_time', '提现操作时间')->keyText('account_info', '收款账户信息');
     $listBuilder->data($data)->pagination($totalCount, $r);
     $listBuilder->ajaxButton(U('recharge/doWithdraw'), null, '提现');
     $listBuilder->ajaxButton(U('recharge/cancelWithdraw'), null, '关闭提现');
     $listBuilder->display();
 }
 public function shopLog($page = 1, $r = 20)
 {
     //读取列表
     $model = M('shop_log');
     $list = $model->page($page, $r)->order('create_time desc')->select();
     $totalCount = $model->count();
     //显示页面
     $builder = new AdminListBuilder();
     $builder->title('商城信息记录');
     $builder->meta_title = '商城信息记录';
     $builder->keyId()->keyText('message', '信息')->keyUid()->keyCreateTime()->data($list)->pagination($totalCount, $r)->display();
 }
 public function index($page = 1, $r = 20)
 {
     $aStatus = I('get.status', 0, 'intval');
     if ($aStatus == 0) {
         $map['status'] = 1;
     } elseif ($aStatus == 1) {
         $map['status'] = 2;
     } else {
         $map['status'] = 0;
     }
     list($list, $totalCount) = $this->questionModel->getListPageByMap($map, $page, 'is_recommend desc,create_time desc', $r, '*');
     $builder = new AdminListBuilder();
     $builder->title('问题列表页');
     $builder->setSelectPostUrl(U('Question/index'))->select('', 'status', 'select', '', '', '', array(array('id' => 0, 'value' => '当前问题(启用)'), array('id' => 1, 'value' => '未审核'), array('id' => 2, 'value' => '审核失败或已禁用')));
     $builder->setStatusUrl(U('Question/setQuestionStatus'));
     if ($aStatus == 1) {
         $builder->buttonEnable(null, '审核通过')->buttonDisable(null, '审核失败')->buttonDelete(null, '直接删除');
     } elseif ($aStatus == 2) {
         $builder->buttonEnable(null, '启用或审核通过')->buttonDelete();
     } else {
         $builder->buttonEnable()->buttonDisable()->buttonDelete()->ajaxButton(U('Question/recommend'), array('recommend' => 1), '设为推荐')->ajaxButton(U('Question/recommend'), array('recommend' => 0), '取消推荐');
     }
     $builder->keyId()->keyLink('title', '标题', 'Question/Index/detail?id=###')->keyUid()->keyText('category', '分类')->keyBool('is_recommend', '是否为推荐')->keyCreateTime()->keyUpdateTime()->keyStatus();
     $builder->pagination($totalCount, $r)->data($list)->display();
 }