// +---------------------------------------------------------------------- namespace app\index\controller; use app\common\controller\Fornt; class Content extends Fornt{ public function _initialize(){ parent::_initialize(); $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]; if ($this->modelInfo['extend'] > 1) { $this->model = model($this->modelInfo['name']); }else{ $this->model = model('Document')->extend($this->modelInfo['name']); } $this->assign('model_id',$this->modelInfo['id']); $this->assign('model_list',$name_list); } } //模块频道首页 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); 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); //获得当前栏目的所有子栏目 $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 detail($id = '', $name = ''){ //当为文章模型时 $info = $this->model->detail($id); //文档模型数据统计,同一台电脑半小时更新一次 if ($this->modelInfo['extend'] = 1 && (time() - session('set_content_view')) > 1800) { db('Document')->where(array('id'=>$id))->setInc('view'); session('set_content_view',time()); } if (empty($info)) { return $this->error("无此内容!"); } $data = array( 'info' => $info ); if ($name) { $teamplate = 'content/'.$this->modelInfo['name'].'/'.$name; }else{ $teamplate = 'content/'.$this->modelInfo['name'].'/detail'; } $this->assign($data); return $this->fetch($teamplate); } protected function getCategory($id){ $data = db('Category')->find($id); return $data; } }