{$info['create_time']|time_format}
+diff --git a/app/controller/front/Content.php b/app/controller/front/Content.php index 27721252..6c24aaef 100644 --- a/app/controller/front/Content.php +++ b/app/controller/front/Content.php @@ -8,17 +8,39 @@ // +---------------------------------------------------------------------- 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(); } @@ -27,6 +49,60 @@ class Content extends Base { * @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(); } @@ -43,15 +119,21 @@ class Content extends Base { * @return [type] [description] */ public function search() { - return $this->fetch(); - } + $param = $this->request->param(); + $list = []; + + if (isset($param['keyword']) && $param['keyword'] != '') { + $map[] = ['title', 'LIKE', '%'.$param['keyword'].'%']; + } - /** - * @title 内容详情 - * @return [type] [description] - */ - public function detail() { + $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']); + } } diff --git a/public/template/default/front/content_detail.html b/public/template/default/front/content_detail.html new file mode 100644 index 00000000..2f7a1e7a --- /dev/null +++ b/public/template/default/front/content_detail.html @@ -0,0 +1,37 @@ + + +
+ + + +{$info['create_time']|time_format}
+{:print_r($model)}
+