ZFSYS

模板Cate.php

64

代码仅供参考

<?php
// +----------------------------------------------------------------------
// | 子枫CMS管理系统
// +----------------------------------------------------------------------
// | Copyright (c)  http://store.zf-sys.com/
// | 子枫CMS管理系统提供免费使用,可使用此框架进行二次开发
// +----------------------------------------------------------------------
// | Author: 子枫 <287851074@qq.com>
// | 子枫社区:  http://bbs.90ckm.com/
// +----------------------------------------------------------------------
namespace 模板名\controller;
use think\Db;
use think\facade\Request;
use Wmc1125\TpFast\Category as cat;
class Cate extends Base
{
    public function __construct ( Request $request = null ){
        parent::__construct();
    }
    // 首页
    public function index()
    {
        echo 'index';die;

    }
    //列表
    public function list()
    {
        $cid = input('cid',1);
        $this->assign('cid',$cid);
        $top_cid_now = $this->get_top_category($cid);
        $this->assign('top_cid_now',$top_cid_now);
        $cate_res = Db::name('category')->where(['status'=>1,'cid'=>$cid])->find();
        if(!$cate_res) $this->error('栏目已关闭');
        if($cate_res['tpl_category']==''){ $cate_res['tpl_category'] = 'tpl_list';}

        $where[] = ['p.status','=',1];
        $where[] = ['c.status','=',1];
        $where[] = ['c.ctime','<',time()];
        $where[] =['p.lang','=',$this->lang];
        if($cid==$top_cid_now['cid']){
            $where[] = ['p.cid','in',$this->get_child_id($cid)];
        }else{
            $where[] = ['p.cid','=',$cid];
        }
        $where[] = ['p.ctime','<',time()];
        $keyword = input('keyword','');
        if($keyword!=''){
            $where[] = ['p.title|p.content','like','%'.$keyword.'%'];
        }
        $this->assign('keyword',$keyword);

        $list = Db::name('post p')
            ->field('p.*,c.name as c_name')
            ->where($where)
            ->join('category'.' c','c.cid=p.cid')
            ->order('p.sort desc,p.ctime desc,p.id desc')
            ->paginate($cate_res['page'],false,['query' => request()->param()]);
        $page = $list->render();
        $this->assign('list', $list);
        $this->assign("page",$page);
        $this->assign('list',$list);
        $this->assign('cid',$cid);
        // 
        // dd($cate_res['url']);
        if($cate_res['url']!=''){
            return redirect($cate_res['url']);
        }
        $meta_res = get_meta_data('category',$cid,'',[]);
        if($meta_res){
            $cate_res['meta_data'] = $meta_res;
            $diy_url = isset_arr_key($meta_res,'diy_url','');
            if($diy_url!='' && !is_str_find(get_url(),$diy_url) ){
                $this->redirect('/'.$meta_res['diy_url'].'.html');
            }
        }
        $this->assign('cate_res',$cate_res);

        //当前位置{{面包屑导航}}
        $currentPath = '<a href="/" class="zfcss_mbx">首页</a> ' . $this->get_path($cid);
        $this->assign('currentPath', $currentPath);
        $this->assign('seo', seo_tpl('category',['id'=>$cate_res['cid'],'t'=>$cate_res['name'],'k'=>$cate_res['name'],'d'=>$cate_res['summary']]));  //栏目
        $this->assign('act', 'list');
        $tpl = $this->zf_tpl_suffix.($this->template==''?'':'/'.$this->template).'/cate/'.$cate_res['tpl_category'];
        // dd($tpl);

        return view($tpl); 
    }
    // detail
    public function detail()
    {
        $id = input('id',0);
        $this->id = $id;
        $t = input('t','');
        if($t=='show_admin'){
            if(!session('admin')){
                $this->error('错误的请求',$this->site_path);
            }
        }else{
            $where[] = ['status','=',1];
        }
        $where[] = ['ctime','<',time()];
        $where[] = ['id','=',$id];
        $where[] =['lang','=',$this->lang];

        $content = Db::name('post')->where($where)->find();
        $meta_res = get_meta_data('post',$id,'',[]);
        if($meta_res){
            $content['meta_data'] = $meta_res;
            $diy_url = isset_arr_key($meta_res,'diy_url','');
            if($diy_url!='' && !is_str_find(get_url(),$diy_url) ){
                $this->redirect('/'.$meta_res['diy_url'].'.html'.($t=='show_admin'?'?t=show_admin':''));
            }
        }
        if(!$content){
            $this->error('未找到相关内容',$this->site_path);
        }
        $content['content'] = $this->_seo($content['content']);
        $this->assign('content',$content);
        $cid = $content['cid'];
        $this->assign('cid',$cid);
        $top_cid_now = $this->get_top_category($content['cid']);
        $this->assign('top_cid_now',$top_cid_now);

        $cate_res = Db::name('category')->field('cid,name,tpl_category,tpl_post,content,alt_banner,banner,summary')->where(['status'=>1,'cid'=>$content['cid']])->find();
        if($cate_res['tpl_post']=='')  $cate_res['tpl_post'] = 'tpl_detail';
        if(!$cate_res) $this->error('栏目已关闭'); 
        $this->assign('cate_res',$cate_res);
        //增加浏览次数
        Db::name('post')->where(["id"=>$id])->setInc('hits');
        $prev = Db::name('post')->where([['lang','=',$this->lang],['status','=',1],['ctime','<',time()],['cid','=',$content['cid']],['id','>',$id]])->order('id asc')->find();
        $next = Db::name('post')->where([['lang','=',$this->lang],['status','=',1],['ctime','<',time()],['cid','=',$content['cid']],['id','<',$id]])->order('id desc')->find();
        $this->assign('prev', empty($prev) ? '<a class="zfcss_prev preview" href="#">【Prev】:没有了</a>' : ' <a class="zfcss_prev preview" href="' .$this->site_path.'detail/'.$prev['id']. '.html"  >【Prev】:' . $prev['title'] . '</a>');
        $this->assign('next', empty($next) ? '<a class="zfcss_next next" href="#">【Next】:没有了</a>' : '<a class="zfcss_next next" href="' .$this->site_path.'detail/'.$next['id'].'.html"  >【Next】:' . $next['title'] . '</a>');


        $relevant = Db::name('post')->where([['lang','=',$this->lang],['status','=',1],['cid','=',$content['cid']],['ctime','<',time()]])->order('hits desc,ctime asc')->limit(10)->select();
        $this->assign('relevant',$relevant);

        //当前位置{{面包屑导航}}
        $currentPath = '<a href="/">首页</a> ' . $this->get_path($cid);
        $this->assign('currentPath', $currentPath);

        //相关专题
        $special = Db::name("special s")
                ->field('s.id,s.name')
                ->where([['s.lang','=',$this->lang],['sp.post_id','=',$content['id']]])
                ->join("special_post sp",'s.id=sp.special_id')
                ->group('s.id')
                ->select();
        $this->assign('special',$special);

        //推荐
        if($content['main_keys_m']!=''){
            $_main_keys_m_arr = explode(',', $content['main_keys_m']) ;
            foreach ($_main_keys_m_arr as $k => $vo) {
                $where_key_a[] = ['title|content','like','%'.$vo.'%'];
            }
            $where_key_a[] = ['status','=','1'];
            $where_key_a[] =['lang','=',$this->lang];
            $tui_arr['key_m_arr'] = Db::name('post')->where($where_key_a)->order('ctime desc,id desc')->limit(10)->select();
        }else{
            $tui_arr['key_m_arr'] = [];
        }
        if($content['main_keys_c']!=''){
            $_main_keys_c_arr = explode(',', $content['main_keys_c']) ;
            foreach ($_main_keys_c_arr as $k => $vo) {
                $where_key_c[] = ['title|content','like','%'.$vo.'%'];
            }
            $where_key_c[] = ['status','=','1'];
            $where_key_c[] =['lang','=',$this->lang];

            $tui_arr['key_c_arr'] = Db::name('post')->where($where_key_c)->order('ctime desc,id desc')->limit(10)->select();
        }else{
            $tui_arr['key_c_arr'] = [];
        }
        $this->assign('tui_arr', $tui_arr);

        //相关文章
        //$xg = Db::name('post')->where([['status','=',1],['cid','=',$content['cid']],['ctime','<',time()],['id','in',$content['right_adv']]])->order('hits desc,ctime asc')->limit(10)->select();
        //$this->assign('xg',$xg);

        $this->assign('seo', seo_tpl('post',['id'=>$content['id'],'t'=>$content['title'],'k'=>$content['title'],'d'=>$content['summary']]));  //文章详情
        $tpl =$this->zf_tpl_suffix.($this->template==''?'':'/'.$this->template).'/cate/'.$cate_res['tpl_post'];

        return view($tpl); 
    }
    //search
    public function search()
    {
        $keyword = input('keyword','');
        $t = input('t','');
        if($t!=''){
            $this->redirect($this->site_path.'search/'.$keyword.'.html');
        }
        $where[] = ['p.title','like','%'.$keyword.'%'];
        $where[] = ['p.status','=','1'];
        $where[] = ['p.ctime','<',time()];
        $where[] =['p.lang','=',$this->lang];
        $list = Db::name('post p')
        ->field('p.*,c.name as c_name')
        ->where($where)
        ->join('category'.' c','c.cid=p.cid')
        ->order('p.sort desc,p.ctime desc,p.id desc')->paginate(12,false,['query' => request()->param()]);
        $page = $list->render();
        $this->assign('list', $list);
        $this->assign('page', $page);

        $this->assign('cid','search');
        $this->assign('keyword',$keyword);
        $this->assign('act', 'list');
        $this->assign('seo', seo_tpl('search',['id'=>$keyword,'t'=>$keyword,'k'=>$keyword,'d'=>$keyword]));  //搜索
        $tpl = $this->zf_tpl_suffix.($this->template==''?'':'/'.$this->template).'/cate/search';
        return view($tpl); 
    }
    public function liuyan(){
        if(request()->isPost()){
            $data = input('post.');
            // if(!check_email($data['email'])){
            //     return jserror('邮箱错误');
            // }
            if($data['content']==''){
                return jserror('内容不能为空');
            }
            //判断是否已提交
            if(Db::name('guessbook')->where(['tel'=>$data['tel'],'content'=>$data['content']])->count() >0){
                return jserror('请勿重复提交');
            }
            $data['ctime'] = time();
            $data = array_merge($data,$this->common_tag);
            $res = Db::name('guessbook')->insert($data);
            if($res){            
                return jssuccess('提交成功');
            }else{
                return jserror('提交失败');
            }
        }
        $tpl = $this->zf_tpl_suffix.($this->template==''?'':'/'.$this->template).'/cate/liuyan';
        return view($tpl); 
    }
    public function tag($tag=''){
        $where = [['ctime','<',time()],['status','=',1],['title|content|summary','like','%'.$tag.'%']];
        $where = array_merge($where, $this->common_select_tag);
        $list = db('post')->where($where)->order('sort desc,ctime desc,id desc')->paginate(10);
        $page = $list->render();
        $this->assign('list', $list);
        $this->assign('page', $page);
        $this->assign('tag', $tag);
        // $id = 1;
        // $meta_res = get_meta_data('tag',$id,'',[]);
        // if($meta_res){
        //     $tag_res['meta_data'] = $meta_res;
        //     $diy_url = isset_arr_key($meta_res,'diy_url','');
        //     if($diy_url!='' && !is_str_find(get_url(),$diy_url) ){
        //         $this->redirect('/'.$meta_res['diy_url'].'.html');
        //     }
        // }
        // $this->assign('seo', seo_tpl('tag',['id'=>$tag_res['id'],'t'=>$tag_res['title'],'k'=>$tag_res['title'],'d'=>$tag_res['summary']]));  //专题

        $tpl = $this->zf_tpl_suffix.($this->template==''?'':'/'.$this->template).'/cate/tag';
        return view($tpl); 
    }
    public function special(){
        $where = [['status','=',1]];
        $where = array_merge($where, $this->common_select_tag);
        $list = db('special')->where($where)->order('sort desc,ctime desc,id desc')->paginate(100,false, ['query' => request()->param()]);
        $page = $list->render();
        $this->assign('list', $list);
        $this->assign('page', $page);

        $seo['title'] = '专题列表-'.isset_arr_key($this->cms_config,'site_name','') ;
        $seo['description'] =  isset_arr_key($this->cms_config,'site_description','') ;
        $seo['keywords'] = isset_arr_key($this->cms_config,'site_keywords','') ;
        $this->assign('seo', $seo);
        $tpl = $this->zf_tpl_suffix.($this->template==''?'':'/'.$this->template).'/cate/special';
        return view($tpl); 
    }

    public function special_list()
    {
        $id = input('id',1);
        $this->assign('id',$id);
        Db::name('special')->where("id=".$id)->setInc('hits');

        //查询专题
        $special_res = db('special')->where(['id'=>$id])->find();
        $meta_res = get_meta_data('special',$id,'',[]);
        if($meta_res){
            $special_res['meta_data'] = $meta_res;
            $diy_url = isset_arr_key($meta_res,'diy_url','');
            if($diy_url!='' && !is_str_find(get_url(),$diy_url) ){
                $this->redirect('/'.$meta_res['diy_url'].'.html');
            }
        }
        $this->assign('special_res',$special_res);

        //专题下的文章
        $where[] = ['sp.special_id','=',$id];
        $where[] = ['p.status','=',1];
        $where[] = ['p.ctime','<',time()];
        $list = Db::name('special_post sp')
                ->field('p.*')
                ->where($where)
                ->join('post p','p.id=sp.post_id')
                ->order('p.sort desc,p.ctime desc,p.id desc')
                ->paginate(10);
        $page = $list->render();
        $this->assign('list', $list);
        $this->assign('page', $page);

        $relevant = Db::name('post')->where([['ctime','<',time()],['status','=',1]])->order('hits desc,ctime asc')->limit(10)->select();
        $this->assign('relevant',$relevant);

        $this->assign('seo', seo_tpl('special',['id'=>$special_res['id'],'t'=>$special_res['name'],'k'=>$special_res['name'],'d'=>$special_res['summary']]));  //文章详情

        $this->assign('act', 'list');
        $tpl = ($this->zf_tpl_suffix==''?'':$this->zf_tpl_suffix.'/').'cate/tpl_special_list';
        return view($tpl); 
    }
    public function page(){
        $cid = input('cid',0);
        $content = Db::name('category')->where(['status'=>1,'cid'=>$cid])->find();

        $this->assign('content',$content);
        $this->assign('cid',$cid);
        $this->assign('seo', seo_tpl('category',['id'=>$content['cid'],'t'=>$content['name'],'k'=>$content['name'],'d'=>$content['summary']]));
        $tpl = $this->zf_tpl_suffix.($this->template==''?'':'/'.$this->template).'/cate/page';
        return view($tpl); 
    }
     //返回当前最顶层栏目
    protected function get_top_category($cid = 0) {
        $data = Db::name('category')->field('cid,pid,name,cname,icon,tpl_category,tpl_post,mid,sort,menu')->where(['status'=>1])->order("sort asc,cid asc")->select();
        $cat = new cat(array('cid', 'pid', 'name', 'cname')); //初始化无限分类
        $list = $cat->getPath($data, $cid); //获取分类数据树结构
        if(isset($list[0])){
            return $list[0];
        }else{
            return [];
        }
    }
    //当前位置导航
    protected function get_path($cid = 0, $space = '>') {
        //查询分类信息
        $data = Db::name('category')->field('cid,pid,name,cname,icon,tpl_category,tpl_post,mid,sort,menu')->where(['status'=>1])->order("sort asc,cid asc")->select();
        $cat = new cat(array('cid', 'pid', 'name', 'cname')); //初始化无限分类
        $list = $cat->getPath($data, $cid); //获取分类数据树结构
        $path = '';
        if (is_array($list)) {
            foreach ($list as $vo) {
                $path .= $space . ' <a href="/cate/' . $vo['cid'] . '.html">' . $vo['name'] . '</a> ';
            }
        }
        return $path;
    }
    //子栏目所有CID
    protected function get_child_id($pid = 0, $condition = '1=1') {
        //查询分类信息
        $data = Db::name('category')->field('cid,pid,name')->where($condition)->order("sort asc,cid asc")->select();
        $cat = new cat(array('cid', 'pid', 'name', 'cname')); //初始化无限分类
        $child_array = $cat->getTree($data, $pid);//获取分类数据树结构
        if(is_array($child_array) && !empty($child_array)){
            $child_cid[] = $pid;
            foreach($child_array as $vo){
                $child_cid[] = $vo['cid'];
            }
        }else{
            return $pid;
        }
        return implode(',', $child_cid);//获取所有子分类cid字符串
    }
    public function _seo($content_str){
        return  $content_str;
    }






}



  • 没有任何评论
最新帖子
[站长推荐] 一些站长/创业者使用的工具推荐 593
HTML+JS 全选与取消全选功能 546
子枫内容系统更新记录 449
有没有人做百度小程序啊 447
PHP 按照指定数量切割字符串 393
php composer更换国内源 375
a链接一键安装ios应用 373
composer 报错SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify 348
layui table 的宽度超出自动隐藏 345
怎么克服拖延症呀 339
最近热帖
[站长推荐] 一些站长/创业者使用的工具推荐 593
HTML+JS 全选与取消全选功能 546
子枫内容系统更新记录 449
有没有人做百度小程序啊 447
PHP 按照指定数量切割字符串 393
php composer更换国内源 375
a链接一键安装ios应用 373
composer 报错SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify 348
layui table 的宽度超出自动隐藏 345
怎么克服拖延症呀 339
近期热议
开始使用 161