172 lines
4.7 KiB
PHP
172 lines
4.7 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\index\controller;
|
|
use app\common\controller\Fornt;
|
|
|
|
class Content extends Fornt {
|
|
|
|
protected $beforeActionList = array(
|
|
'setModel' => array('except' => 'category'),
|
|
);
|
|
|
|
//模块频道首页
|
|
public function index() {
|
|
$id = input('id', '', 'trim,intval');
|
|
$name = input('name', '', 'trim');
|
|
if ($name) {
|
|
$id = db('Category')->where(array('name' => $name))->getField('id');
|
|
}
|
|
|
|
if (!$id) {
|
|
return $this->error("无此频道!");
|
|
}
|
|
|
|
$cate = $this->getCategory($id);
|
|
|
|
//获得当前栏目的所有子栏目
|
|
$ids = get_category_child($id);
|
|
|
|
$data = array(
|
|
'category' => $cate,
|
|
'child_cate' => $ids,
|
|
);
|
|
if ($cate['template_index']) {
|
|
$teamplate = 'content/' . $this->modelInfo['name'] . '/' . $cate['template_index'];
|
|
} else {
|
|
$teamplate = 'content/' . $this->modelInfo['name'] . '/index';
|
|
}
|
|
$this->assign($data);
|
|
$this->setSeo($cate['name']);
|
|
return $this->fetch($teamplate);
|
|
}
|
|
|
|
//模块列表页
|
|
public function lists($id = '', $name = '') {
|
|
if ($name) {
|
|
$id = db('Category')->where(array('name' => $name))->getField('id');
|
|
}
|
|
|
|
if (!$id) {
|
|
return $this->error("无此栏目!");
|
|
}
|
|
|
|
$cate = $this->getCategory($id);
|
|
|
|
if ($this->modelInfo['extend'] == 1) {
|
|
//获得当前栏目的所有子栏目
|
|
$ids = get_category_child($id);
|
|
$map['category_id'] = array('IN', $ids);
|
|
$map['model_id'] = $this->modelInfo['id'];
|
|
$map['status'] = array('GT', 0);
|
|
}
|
|
|
|
if ($this->modelInfo['extend'] > 1) {
|
|
$order = "id desc";
|
|
} else {
|
|
$order = "is_top desc,id desc";
|
|
}
|
|
$list = $this->model->where($map)->order($order)->paginate(15);
|
|
|
|
$data = array(
|
|
'list' => $list,
|
|
'cate' => $cate,
|
|
'page' => $list->render(),
|
|
);
|
|
|
|
if ($cate['template_lists']) {
|
|
$teamplate = 'content/' . $this->modelInfo['name'] . '/' . $cate['template_lists'];
|
|
} else {
|
|
$teamplate = 'content/' . $this->modelInfo['name'] . '/list';
|
|
}
|
|
$this->setSeo($cate['title']);
|
|
$this->assign($data);
|
|
return $this->fetch($teamplate);
|
|
}
|
|
|
|
public function category() {
|
|
$id = $this->request->param('id');
|
|
if (!$id) {
|
|
return $this->error("非法操作");
|
|
}
|
|
$cate = $this->getCategory($id);
|
|
|
|
$category = get_category_child($id);
|
|
$map = array(
|
|
'category_id' => array('IN', $category),
|
|
);
|
|
|
|
$order = "id desc";
|
|
$list = model('Document')->where($map)->order($order)->paginate(15);
|
|
|
|
$data = array(
|
|
'list' => $list,
|
|
'cate' => $cate,
|
|
'page' => $list->render(),
|
|
);
|
|
if ($cate['template_lists']) {
|
|
$teamplate = 'content/' . $cate['template_lists'];
|
|
} else {
|
|
$teamplate = 'content/list';
|
|
}
|
|
$this->setSeo($cate['title']);
|
|
$this->assign($data);
|
|
return $this->fetch($teamplate);
|
|
}
|
|
|
|
//模块内容详情页
|
|
public function detail($id = '', $name = '') {
|
|
//当为文章模型时
|
|
$info = $this->model->find($id);
|
|
|
|
if (empty($info)) {
|
|
return $this->error("无此内容!");
|
|
}
|
|
|
|
$data = array(
|
|
'info' => $info,
|
|
);
|
|
if (isset($info['template_detail']) && $info['template_detail']) {
|
|
$teamplate = 'content/' . $this->modelInfo['name'] . '/' . $info['template_detail'];
|
|
} else {
|
|
$teamplate = 'content/' . $this->modelInfo['name'] . '/detail';
|
|
}
|
|
$this->assign($data);
|
|
$title = isset($info['title']) ? $info['title'] : '';
|
|
$tags = isset($info['tags']) ? $info['tags'] : '';
|
|
$description = isset($info['description']) ? $info['description'] : '';
|
|
$this->setSeo($title, $tags, $description);
|
|
return $this->fetch($teamplate);
|
|
}
|
|
|
|
protected function getCategory($id) {
|
|
$data = db('Category')->find($id);
|
|
return $data;
|
|
}
|
|
|
|
protected function setModel() {
|
|
$model_name = $this->request->param('model');
|
|
$model_id = $this->request->param('model_id');
|
|
$row = db('Model')->select();
|
|
foreach ($row as $key => $value) {
|
|
$name_list[$value['name']] = $value;
|
|
$id_list[$value['id']] = $value;
|
|
}
|
|
|
|
if (empty($name_list[$model_name]) && empty($id_list[$model_id])) {
|
|
return $this->error("无此模型!");
|
|
} else {
|
|
$this->modelInfo = $model_name ? $name_list[$model_name] : $id_list[$model_id];
|
|
$this->model = new \app\common\model\Content($this->modelInfo['name']);
|
|
|
|
$this->assign('model_id', $this->modelInfo['id']);
|
|
$this->assign('model_list', $name_list);
|
|
}
|
|
}
|
|
} |