error('栏目不存在或已删除!');
}
//赋值分类id,可能是通过栏目分类id获取的栏目分类数据
$id=$dc['id'];
//栏目存在 增加访问量
Db::name('document_category')->where('id',$id)->inc('view')->update();
//判断后台统计配置是否开启 1 开启
if($this->systemConfig["web_statistics"] ==1){
//统计url
$this->urlrecord($dc['title']);
}
//读取列表页模板
$listTmp='';
if($dc['type']==0){
$listTmp=$dc['template_lists'];
if(!$listTmp){
$this->error('请在栏目分类中,指定当前栏目的列表模板!');
}
}
elseif($dc['type']==1){
$listTmp=$dc['template_index'];
if(!$listTmp){
$this->error('请在栏目分类中,指定当前栏目的单篇模板!');
}
//如果是单篇栏目,加载内容
$dcContent= Db::name('document_category_content')->find($id);
$dc['content']=$dcContent['content'];
}
if(!is_file(TPL.$listTmp)){
$this->error('模板文件不存在!');
}
trace('列表页模板路径:'.TPL.$listTmp,'debug');
//文章兼容字段
$dc['category_id']=$dc['id'];
//判断seo标题是否存在
$dc['meta_title']=$dc['meta_title']?$dc['meta_title']:$dc['title'];
//添加当前页面的位置信息
$dc['position']=tpl_get_position($dc);
//输出文章分类
$this->assign('zzField',$dc);
$this->assign('id',$id);
//当前页面所属分类id
$this->assign('cid',$id);
//缓存当前页面栏目分类树ids
cache('curr_category_patent_id',$dc['parent_id']?$dc['parent_id'].','.$id:$id);
return $this->fetch($listTmp);
}
public function detail()
{
$id=input('id/d');
if(!$id){
$this->error('参数错误!');
}
//获取该文章
$article = (new Document())->where('status',1)->where('id',$id)->find();
if(!$article){
$this->error('文章不存在或已删除!');
}
$article = $article->toArray();
//根据分类id找分类信息
$dc = get_document_category($article['category_id']);
if(!$dc){
$this->error('栏目不存在或已删除!');
}
//获取该文章内容
//根据文章类型,加载不同的内容。
$articleType= $article['type']?$article['type']:'article';
$articleExt= Db::name('document_'.$articleType)->where('id',$id)->find();
if(!$articleExt){
$this->error('文章不存在或已删除!');
}
$article=array_merge($article,$articleExt);
//添加当前页面的位置信息
$article['position']=tpl_get_position($dc);
//更新浏览次数
(new Document())->where('id', $article['id'])->inc('view')->update();
//读取详情页模板
$detailTmp=$dc['template'];
if(!$detailTmp){
$this->error('请在栏目分类中,指定当前栏目的详情模板!');
}
if(!is_file(config('view.view_path').'article/'.$detailTmp)){
$this->error('模板文件不存在!');
}
$article['category_title']=$dc['title'];
//输出文章内容
$this->assign('zzField',$article);
$this->assign('id',$id);
//当前页面所属分类id
$this->assign('cid',$article['category_id']);
//缓存当前页面栏目分类树ids
cache('curr_category_patent_id',$dc['pid']?$dc['pid'].','.$article['category_id']:$article['category_id']);
//设置文章的url
$article['link_str']=aurl($article);
//判断后台统计配置是否开启 1 开启
if(system_config("web_statistics") ==1){
//统计url
$this->urlrecord($article['title']);
}
Log::info('详情页模板路径:'.config('view.view_path').'article/'.$detailTmp);
//去除后缀
$detailTmp = substr($detailTmp,0,strpos($detailTmp,'.'));
return $this->fetch('article/'.$detailTmp);
}
//自定义页面,可通过参数指定模板文件。完成完全自定义的文件输出。
//可以输出html片段,甚至可以输出JSON
//参数指定的模板文件必须位于模板文件夹下,且以content_开头,以.htm拓展名结尾
public function content()
{
$zzField=input();
if(!isset($zzField['tpl'])){
$this->error('没有指定模板文件!');
}
//将参数传递到模板页面
$this->assign('zzField',$zzField);
//模板兼容性标签
$this->assign('id',false);
$this->assign('cid',false);
//读取模板配置,获得模板后缀名
$view_suffix=config('view.view_suffix');
Log::info('详情页模板路径:'.TPL.'content_'.$zzField['tpl'].'.'.$view_suffix);
cache('curr_category_patent_id',false);
return $this->fetch(TPL.'content_'.$zzField['tpl'].'.'.$view_suffix);
}
//文章标签页面
public function tag()
{
$tag=input('t');
if(!trim($tag)){
$this->error('请输入标签');
}
if(!mb_check_encoding($tag,'utf-8')){
$tag=iconv('gbk', 'utf-8', $tag);
}
$zzField['id']='0';
$zzField['title'] = $tag;
$zzField['meta_title'] = $tag;
$zzField['keywords'] = $this->systemConfig['keywords'];
$zzField['description'] = $this->systemConfig['description'];
$zzField['position'] ='首页 > '.$tag.'';
$this->assign('zzField',$zzField);
$this->assign('tag',$tag);
//清除可能存在的栏目分类树id
cache('curr_category_patent_id',false);
//模板兼容性标签
$this->assign('id',false);
$this->assign('cid',false);
return $this->fetch();
}
//搜索页面
public function search()
{
$kw=input('kw');
if(!trim($kw)){
$this->error('请输入搜索关键词');
}
if(!mb_check_encoding($kw,'utf-8')){
$kw=iconv('gbk', 'utf-8', $kw);
}
$zzField['id'] = '0';
$zzField['title'] = '搜索';
$zzField['meta_title'] = '搜索';
$zzField['keywords'] = $this->systemConfig['keywords'];
$zzField['description'] = $this->systemConfig['description'];
$zzField['position'] = '首页 > 搜索';
$this->assign('zzField',$zzField);
$this->assign('kw',$kw);
//清除可能存在的栏目分类树id
cache('curr_category_patent_id',false);
//模板兼容性标签
$this->assign('id',false);
$this->assign('cid',false);
return $this->fetch();
}
}