Files
sentcms/app/controller/front/Content.php
2020-04-16 16:53:44 +08:00

140 lines
3.6 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.tensent.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------
namespace app\controller\front;
use think\facade\Db;
use \app\model\Category;
use \app\model\Model;
use \app\model\Content as ContentModel;
class Content extends Base {
public $modelInfo = [];
public $model = null;
/**
* @title 内容频道页
* @return [type] [description]
*/
public function index() {
$param = $this->request->param();
$this->setModel();
$order = "id desc";
$map = [];
if (isset($param['keyword']) && $param['keyword'] != '') {
$map[] = ['title', 'LIKE', '%'.$param['keyword'].'%'];
}
$category = Category::where('model_id', $this->modelInfo['id'])->column("*", "id");
$list = $this->model->where($map)->order($order)->paginate($this->request->pageConfig);
$this->data = [
'model' => $this->modelInfo,
'category' => $category,
'list' => $list,
'page' => $list->render()
];
return $this->fetch();
}
/**
* @title 内容列表
* @return [type] [description]
*/
public function lists() {
$param = $this->request->param();
$this->setModel();
$order = "id desc";
$map = [];
$category = Category::where('model_id', $this->modelInfo['id'])->column("*", "id");
$ids = (new \sent\tree\Tree())->getChilds($category, (int) $param['id']);
array_push($ids, (int) $param['id']);
$map[] = ['category_id', "IN", $ids];
if (isset($param['keyword']) && $param['keyword'] != '') {
$map[] = ['title', 'LIKE', '%'.$param['keyword'].'%'];
}
$list = $this->model->where($map)->order($order)->paginate($this->request->pageConfig);
$this->data = [
'model' => $this->modelInfo,
'id' => (int) $param['id'],
'category' => $category,
'list' => $list,
'page' => $list->render()
];
return $this->fetch();
}
/**
* @title 内容详情
* @return [type] [description]
*/
public function detail() {
$param = $this->request->param();
$this->setModel();
$map[] = ['id', "=", $param['id']];
$detail = $this->model->where($map)->find();
$pmap = [
['category_id', '=', $detail['category_id']],
['id', '<', $param['id']]
];
$prev = Db::name(ucfirst($this->modelInfo['name']))->where($pmap)->order('id desc')->find();
$nmap = [
['category_id', '=', $detail['category_id']],
['id', '>', $param['id']]
];
$next = Db::name(ucfirst($this->modelInfo['name']))->where($nmap)->order('id asc')->find();
$this->data = [
'model' => $this->modelInfo,
'info' => $detail,
'prev' => $prev,
'next' => $next
];
return $this->fetch();
}
/**
* @title 内容专题
* @return [type] [description]
*/
public function topic() {
return $this->fetch();
}
/**
* @title 内容搜索
* @return [type] [description]
*/
public function search() {
$param = $this->request->param();
$list = [];
if (isset($param['keyword']) && $param['keyword'] != '') {
$map[] = ['title', 'LIKE', '%'.$param['keyword'].'%'];
}
$this->data = [
"list" => $list
];
return $this->fetch();
}
protected function setModel(){
$this->modelInfo = Model::where('name', $this->request->param('name'))->find()->append(['grid_list', 'attr_group'])->toArray();
$this->model = Db::name($this->modelInfo['name']);
}
}