284 lines
9.5 KiB
PHP
Executable File
284 lines
9.5 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Admin\Controller;
|
|
|
|
use Common\Model\MenuModel;
|
|
use Gy_Library\DBCont;
|
|
use Gy_Library\GyListController;
|
|
|
|
use Qscmf\Builder\FormBuilder;
|
|
use Qscmf\Builder\ListBuilder;
|
|
use Qscmf\Builder\SubTableBuilder;
|
|
|
|
//专题
|
|
class TopicController extends GyListController
|
|
{
|
|
public function index()
|
|
{
|
|
$map = [];
|
|
$get_data = I('get.');
|
|
if (isset($get_data['key']) && $get_data['word']) {
|
|
$map[$get_data['key']] = array('like', '%' . $get_data['word'] . '%');
|
|
}
|
|
|
|
|
|
$model = D('Topic');
|
|
$count = $model->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 = 'sort asc,id asc';
|
|
if (!empty($get_data['click_time']) && $get_data['click_time']==='asc') {
|
|
$order = 'click_time asc';
|
|
}elseif (!empty($get_data['click_time']) && $get_data['click_time']==='desc'){
|
|
$order = 'click_time desc';
|
|
}
|
|
$data_list = $model->getListForPage($map, $page->nowPage, $page->listRows, $order);
|
|
//时间戳的转换
|
|
foreach ($data_list as &$value) {
|
|
$value['create_date'] = date('Y-m-d H:i:s', $value['create_date']);
|
|
}
|
|
// 使用Builder快速建立列表页面。
|
|
|
|
|
|
$builder = new ListBuilder();
|
|
|
|
$builder = $builder->setMetaTitle('专题内容管理');// 设置页面标题
|
|
$builder->addTopButton('addnew');
|
|
$builder->addTopButton('save', array('title' => '保存排序'));
|
|
$builder
|
|
->setNIDByNode(MODULE_NAME, CONTROLLER_NAME, 'index')
|
|
->addSearchItem('click_time', 'select', '点击量排序', array('asc' => '点击量正序','desc'=>'点击量倒序'))
|
|
->addSearchItem('', 'select_text', '单行输入', array('name' => '专题名称'))
|
|
->addTableColumn('name', '专题标题')
|
|
->addTableColumn('click_time', '点击次数')
|
|
->addTableColumn('sort', '排序','','',true)
|
|
->addTableColumn('status', '状态', 'status', '', false)
|
|
->addTableColumn('right_button', '操作', 'btn')
|
|
->setTableDataList($data_list)// 数据列表
|
|
->setTableDataPage($page->show())// 数据列表分页
|
|
->addRightButton('edit',array('href' => U('edit',['page'=>I('get.page'),'id'=>'__data_id__']),'data-id' => '__data_id__'))// 添加编辑按钮
|
|
->addRightButton('delete')// 添加删除按钮
|
|
->addRightButton('forbid')// 添加禁用按钮
|
|
->addRightButton('self', ['title' => '文章列表', 'href' => U('TopicFromNews/index', ['topic_id' => '__data_id__']), 'class' => 'label label-success', '{key}' => '', '{condition}' => '', '{value}' =>''])
|
|
->display();
|
|
}
|
|
|
|
public function add()
|
|
{
|
|
if (IS_POST) {
|
|
parent::autoCheckToken();
|
|
$data = I('post.');
|
|
$model = D('Topic');
|
|
$r = $model->createAdd($data);
|
|
if ($r === false) {
|
|
$this->error($model->getError());
|
|
} else {
|
|
// sysLogs('新增内容id:' . $r);
|
|
$this->success(l('add') . l('success'), U(CONTROLLER_NAME . '/index'));
|
|
}
|
|
} else {
|
|
// 使用FormBuilder快速建立表单页面。
|
|
$builder = new FormBuilder();
|
|
$data_list = array(
|
|
"status" => 1,
|
|
);
|
|
if ($data_list) {
|
|
$builder->setFormData($data_list);
|
|
}
|
|
$builder->setMetaTitle('添加专题名称')//设置页面标题
|
|
->setNIDByNode(MODULE_NAME, CONTROLLER_NAME, 'index')
|
|
->setPostUrl(U('add'))//设置表单提交地址
|
|
->addFormItem('name', 'text', '*专题标题')
|
|
->addFormItem('cover_id', 'picture', '*封面图','尺寸为334*188px,格式JPG、PNG、JPEG')
|
|
// ->addFormItem('title', 'text', '专题标题')
|
|
->addFormItem('summary', 'textarea', '*专题简介','')
|
|
->addFormItem('banner_cover_id', 'picture', '横幅图','尺寸为910*320px,格式JPG、PNG、JPEG')
|
|
->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('Topic')->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.');
|
|
$model = D('Topic');
|
|
if (!$m_id) {
|
|
E('缺少内容ID');
|
|
}
|
|
$ent = $model->getOne($m_id);
|
|
if (!$ent) {
|
|
E('不存在内容');
|
|
}
|
|
$ent['name'] = $data['name'];
|
|
$ent['cover_id'] = $data['cover_id'];
|
|
// $ent['title'] = $data['title'];
|
|
$ent['summary'] = $data['summary'];
|
|
$ent['banner_cover_id'] = $data['banner_cover_id'];
|
|
$ent['sort'] = $data['sort'];
|
|
$ent['status'] = $data['status'];
|
|
if ($model->createSave($ent) === false) {
|
|
$this->error($model->getError());
|
|
} else {
|
|
$this->success('修改成功', U('index',['page'=>$data['page']]));
|
|
}
|
|
} else {
|
|
$info = D('Topic')->getOne($id);
|
|
$info['page'] =!empty(I('get.page'))?I('get.page'):1;
|
|
$builder = new FormBuilder();
|
|
$builder->setMetaTitle('编辑专题名称')
|
|
->setPostUrl(U('edit'))
|
|
->setNIDByNode(MODULE_NAME, CONTROLLER_NAME, 'index')
|
|
->addFormItem('id', 'hidden', 'ID')
|
|
->addFormItem('page', 'hidden', 'PAGE','',$info['page'])
|
|
->addFormItem('name', 'text', '*专题标题')
|
|
->addFormItem('cover_id', 'picture', '*封面图','尺寸为334*188px,格式JPG、PNG、JPEG')
|
|
// ->addFormItem('title', 'text', '专题标题')
|
|
->addFormItem('summary', 'textarea', '*专题简介','')
|
|
->addFormItem('banner_cover_id', 'picture', '横幅图','尺寸为910*320px,格式JPG、PNG、JPEG')
|
|
->addFormItem('sort', 'num', '排序')
|
|
->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'));
|
|
}
|
|
}
|
|
|
|
public function extractNumberGetName($strs, $countarr)
|
|
{
|
|
$patterns = "/\d+/";
|
|
$str = '';
|
|
preg_match_all($patterns, $strs, $arr);
|
|
$i = 0;
|
|
foreach ($arr[0] as $key => $value) {
|
|
if ($i == 0) {
|
|
$str .= $countarr[$value];
|
|
} else {
|
|
$str .= '、' . $countarr[$value];
|
|
}
|
|
$i++;
|
|
}
|
|
return $str;
|
|
}
|
|
public function toolbars()
|
|
{
|
|
return ['toolbars' => [
|
|
[
|
|
'undo', 'redo',
|
|
'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
|
|
'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
|
|
'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
|
|
'indent', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|',
|
|
'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
|
|
'simpleupload', 'insertimage', '|', 'horizontal', 'spechars', 'wordimage', '|',
|
|
'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts',
|
|
'|', 'fullscreen', 'source', '|', 'attachment'
|
|
]
|
|
]
|
|
];
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|