getListForCount($map); $per_page = C('ADMIN_PER_PAGE_NUM', null, false); if ($per_page === false) { $page = new \Gy_Library\GyPage($count); } else { $page = new \Gy_Library\GyPage($count, $per_page); } $order = 'id desc'; $data_list = $model->getListForPage($map, $page->nowPage, $page->listRows, $order); foreach ($data_list as &$data) { // dd($data); $data['news_name'] = $model->getNewsName($data[$this->news_index]); $data['from_user_name'] = $model->getUserName($data['from_id']); if (strlen($data['from_user_name']) == 0) $data['from_user_name'] = $data['from_name'] . " (已删除)"; } // 使用Builder快速建立列表页面。 $builder = new ListBuilder(); $builder = $builder->setMetaTitle('评论管理'); // 设置页面标题 $builder->addTopButton('addnew'); // $builder->addTopButton('save', array('title' => '保存排序')); $builder ->setNIDByNode(MODULE_NAME, CONTROLLER_NAME, 'index') ->addSearchItem('news_name', 'select_text', '单行输入', array('name' => '名称')) ->addTableColumn('news_name', '名称') ->addTableColumn('from_user_name', '发表者') ->addTableColumn('like_num', '点赞数') ->addTableColumn('content', '评论内容') ->addTableColumn('create_time', '创建时间', 'time') ->addTableColumn('right_button', '操作', 'btn') ->setTableDataList($data_list) // 数据列表 ->setTableDataPage($page->show()) // 数据列表分页 ->addRightButton('edit') // 添加编辑按钮 ->addRightButton('delete') // 添加删除按钮 ->addRightButton('forbid') // 添加禁用按钮 // ->addRightButton('self', ['title' => '查看相关文章', 'href' => U('News/index', ['key' => 'keyword', 'word' => '__name__']), 'class' => 'label label-success']) ->display(); } public function add() { if (IS_POST) { parent::autoCheckToken(); $data = I('post.'); $data['name'] = trim($data['name']); $data['belong_to'] = $this->belong_to[$data['belong_to']]; $model = D('SecondaryTitle'); $n_model = D('SecondaryNews'); $keyword_ids = D('Keywords')->checkKeywords($data['keywords_id'] ? $data['keywords_id'] : []); if ($keyword_ids === false) { $this->error(D('Keywords')->getError()); } $data['keywords_id'] = implode(',', $keyword_ids ? $keyword_ids : []); $data['news_id'] = implode(',', $data['news_id'] ? $data['news_id'] : []); $data['cate_id'] = implode(',', $data['cate_id'] ? $data['cate_id'] : []); $r = $model->createAdd($data); if ($r === false) { $this->error($model->getError()); } else { $data['secondary_id'] = $r; $n_r = $n_model->createAdd($data); if ($n_r === false) { $this->error($n_model->getError()); } sysLogs('新增关键词id:' . $r); $this->success(l('add') . l('success'), U(CONTROLLER_NAME . '/index')); } } else { // 使用FormBuilder快速建立表单页面。 $builder = new FormBuilder(); $data_list = array( "status" => 1, "sort" => 0, ); if ($data_list) { $builder->setFormData($data_list); } $keywordBuilder = new \Qscmf\Builder\SubTableBuilder(); $keywordBuilder->addTableHeader('关键词', '30%', '输入关键词可以搜索添加现有关键词,输入@+关键词可以新增'); $keywordBuilder->addFormItem('keywords_id', 'select2', [ 'tags' => true, 'options' => D('Keywords')->order('id desc')->getField('id, name', true) ]); $newsBuilder = new \Qscmf\Builder\SubTableBuilder(); $newsBuilder->addTableHeader('新闻列表', '30%', '输入新闻可以搜索添加现有新闻'); $newsBuilder->addFormItem('news_id', 'select2', [ 'tags' => true, 'options' => D('News')->order('id desc')->getField('id, title', true) ]); $cates = D('NewsCate')->order('id asc')->getField('id, name', true); $builder->setMetaTitle('添加关键词') //设置页面标题 ->setNIDByNode(MODULE_NAME, CONTROLLER_NAME, 'index') ->setPostUrl(U('add')) ->addFormItem('belong_to', 'radio', '选项', '', $this->belong_to) ->addFormItem('name', 'text', '名称*') ->addFormItem('news_id', 'self', '新闻列表', '', $newsBuilder->makeHtml()) ->addFormItem('keywords_id', 'self', '关键词', '', $keywordBuilder->makeHtml()) ->addFormItem('cate_id', 'checkbox', '分类', '', $cates) ->addFormItem('sort', 'num', '排序') ->addFormItem('status', 'select', '状态', '', DBCont::getStatusList()) ->display(); } } public function save() { if (IS_POST) { $data = I('post.'); foreach ($data['id'] as $k => $v) { $save_data['sort'] = $data['sort'][$k]; D('Keywords')->where('id=' . $v)->save($save_data); } $this->success('保存成功', U('index')); } } public function edit($id) { if (IS_POST) { parent::autoCheckToken(); $m_id = I('post.id'); $data = I('post.'); $data['name'] = trim($data['name']); $data['belong_to'] = $this->belong_to[$data['belong_to']]; $model = D('SecondaryTitle'); if (!$m_id) { E('缺少内容ID'); } $ent = $model->getOne($m_id); if (!$ent) { E('不存在内容'); } $keyword_ids = D('Keywords')->checkKeywords($data['keywords_id'] ? $data['keywords_id'] : []); if ($keyword_ids === false) { $this->error(D('Keywords')->getError()); } $data['keywords_id'] = implode(',', $keyword_ids ? $keyword_ids : []); $data['news_id'] = implode(',', $data['news_id'] ? $data['news_id'] : []); $data['cate_id'] = implode(',', $data['cate_id'] ? $data['cate_id'] : []); $n_model = D('SecondaryNews'); $news_ent = $n_model->where(['secondary_id' => $data['id']])->find(); // todo 保存关联表 // dd($data, $data['id'], $ent['id'], $news_ent); if ($data['keywords_id']) { $news_ent['keywords_id'] = $data['keywords_id']; } if ($data['news_id']) { $news_ent['news_id'] = $data['news_id']; } if ($data['cate_id']) { $news_ent['cate_id'] = $data['cate_id']; } $ent['name'] = $data['name']; $ent['sort'] = $data['sort']; $ent['belong_to'] = $data['belong_to']; $ent['status'] = $data['status']; if ($model->createSave($ent) === false || $n_model->createSave($news_ent) === false) { $this->error($model->getError()); } else { $this->success('修改成功', U('index')); } } else { $model = D('SecondaryTitle'); $info = $model->getOne($id); $is_belong_to_in_list = in_array($info['belong_to'], $this->belong_to); $info['belong_to'] = array_search($info['belong_to'], $this->belong_to); $s_news = $model->getConditionList($info['id']); if ($s_news) { $info['news_id'] = $s_news['news_id']; $info['keywords_id'] = $s_news['keywords_id']; $info['cate_id'] = $s_news['cate_id']; } $keywordBuilder = new \Qscmf\Builder\SubTableBuilder(); $keywordBuilder->setData(D('Keywords')->genKeywordId($info['keywords_id'])); $keywordBuilder->addTableHeader('关键词', '30%', '输入关键词可以搜索添加现有关键词,输入@+关键词可以新增'); $keywordBuilder->addFormItem('keywords_id', 'select2', [ 'tags' => true, 'options' => D('Keywords')->order('id desc')->getField('id, name', true) ]); $newsBuilder = new \Qscmf\Builder\SubTableBuilder(); $newsBuilder->setData(D('News')->genNewsId($info['news_id'])); $newsBuilder->addTableHeader('新闻列表', '30%', '输入新闻可以搜索添加现有新闻'); $newsBuilder->addFormItem('news_id', 'select2', [ 'tags' => true, 'options' => D('News')->order('id desc')->getField('id, title', true) ]); $cates = D('NewsCate')->order('id asc')->getField('id, name', true); $builder = new FormBuilder(); $builder->setMetaTitle('编辑关键词') ->setPostUrl(U('edit')) // ->setExtraHtml($this->fetch('Keywords/detail')) ->setNIDByNode(MODULE_NAME, CONTROLLER_NAME, 'index') ->addFormItem('id', 'hidden', 'ID'); if ($is_belong_to_in_list) { $builder ->addFormItem('belong_to', 'radio', '选项', '', $this->belong_to) ->addFormItem('name', 'text', '名称') ->addFormItem('news_id', 'self', '新闻列表', '', $newsBuilder->makeHtml()) ->addFormItem('keywords_id', 'self', '关键词', '', $keywordBuilder->makeHtml()) ->addFormItem('cate_id', 'checkbox', '分类', '', $cates); } $builder ->addFormItem('sort', 'num', '排序', '', $info['sort']) ->addFormItem('status', 'select', '状态', '', DBCont::getStatusList()) ->setFormData($info) ->display(); } } public function forbid() { $ids = I('ids'); if (!$ids) { $this->error('请选择要禁用的数据'); } $r = parent::_forbid($ids); if ($r !== false) { // sysLogs('新闻分类id: ' . $ids . ' 禁用'); $this->success('禁用成功', U(CONTROLLER_NAME . '/index')); } else { $this->error($this->_getError()); } } public function resume() { $ids = I('ids'); if (!$ids) { $this->error('请选择要启用的数据'); } $r = parent::_resume($ids); if ($r !== false) { $this->success('启用成功', U(CONTROLLER_NAME . '/index')); } else { $this->error($this->_getError()); } } public function delete() { $ids = I('ids'); if (!$ids) { $this->error('请选择要删除的数据'); } $r = parent::_del($ids); if ($r === false) { $this->error($this->_getError()); } else { $this->success('删除成功', U(MODULE_NAME . '/' . CONTROLLER_NAME . '/index')); } } }