ThinkPHP3.2中文章内容页的上一篇,下一篇功能,以及分类功能的实现

上一篇下一篇功能的实现

模型层:注意:数据表的ID应为自动递增的情况下

  public function newsBeforeAfter($url,$id,$cate_id){
        //上一篇     $where=array();
        $where[‘checks‘]=array(‘eq‘,1);//该条内容是否审核
        $where[‘id‘]=array(‘lt‘,$id);//上一篇ID应该小于当前接收到的ID
        $where[‘cate_id‘]=array(‘eq‘,$cate_id);//分类ID
        $front=$this->where($where)->order(‘id desc‘)->limit(‘1‘)->find();//上一篇文章查出来
        if($front){
            $burl=$url."/id/".$front[‘id‘].‘/‘.‘cate_id‘.‘/‘.$front[‘cate_id‘];//成功!上一篇文章跳转地址
        }else{
            $burl="javascript:void(0);";
        }    //下一篇     $data=array();
        $data[‘id‘]=array(‘gt‘,$id);//下一篇的ID应该大于当前接收的id
        $data[‘checks‘]=array(‘eq‘,1);
        $data[‘cate_id‘]=array(‘eq‘,$cate_id);
        $after=$this->where($data)->order(‘id asc‘)->limit(‘1‘)->find();//下一篇文章查出来
        if($after){
            $aurl=$url."/id/".$after[‘id‘].‘/‘.‘cate_id‘.‘/‘.$after[‘cate_id‘];//成功,下一篇的跳转地址
        }else{
            $aurl="javascript:void(0);";
        }
        return array($front,$burl,$after,$aurl);
    }

视图层:例子:

<li><a>上一个:</a><if condition="$btitle eq null">已经没有了!<else/><a title="<{$btitle[‘title‘]}>" href="<{:U($burl)}>"><{$btitle[‘title‘]}></a></if></li>
<li><a>下一个:</a><if condition="$atitle eq null">已经没有了!<else/><a title="<{$atitle[‘title‘]}>" href="<{:U($aurl)}>"><{$atitle[‘title‘]}></a></if></li>   

控制器:

//上一篇下一篇
            $url="Home/Product/product23";
            $url=$this->news->newsBeforeAfterP($url,$id,$cate_id);
            //上一篇文章内容
            $this->assign(‘btitle‘,$url[0]);
            //上一篇地址
            $this->assign(‘burl‘,$url[1]);
            //下一篇文章内容
            $this->assign(‘atitle‘,$url[2]);
            //下一篇文章地址
            $this->assign(‘aurl‘,$url[3]);

分类二三级功能的实现以及分类查询子分类的减少查询数据库的方法

1.分类查询子分类的减少查询数据库的方法

模型类:

public function getGcategoryList($id=0) {
        $arr = $this->select();//查询数据库
        foreach ($arr as $k => $v) {
            if ($v[‘parent_id‘] == $id) {
                $retNext[$k][‘cate_id‘] = $v[‘cate_id‘];
                $retNext[$k][‘cate_name‘] = $v[‘cate_name‘];
                $retNext[$k][‘parent_id‘] = $v[‘parent_id‘];
                $retNext[$k][‘next‘] = 0;//用于判断是否还有子类

                foreach ($arr as $vv) {
                    if ($vv[‘parent_id‘] == $v[‘cate_id‘]) {
                        $retNext[$k][‘next‘] = 1;
                        break;
                    }
                }
                return array($retNext, $arr);
            }
        }
    }

2.分类二三级功能的实现

控制器:

$list=M(‘Category‘)->select();
$this->assign(‘list‘,$list);

视图层:

          <div class="bbD">上级分类:
                        <select name="parent_id" id="" style="margin-left: 20px">
                            <option value="">--请选择--</option>
                            <foreach name="list" item="v">
                                <if condition="$v[‘parent_id‘] eq 0">//首先获取第一层分类
                                    <option value="<{$v[‘cate_id‘]}>"><{$v[‘cate_name‘]}></option>
                                    <foreach name="list" item="vv">
                                        <if condition="$vv[‘parent_id‘] eq $v[‘cate_id‘]">//根据父类ID查询出二级分类。。。
                                            <option value="<{$vv[‘cate_id‘]}>">|-->|<{$vv[‘cate_name‘]}></option>
                                            <foreach name="list" item="vvv">
                                                <if condition="$vvv[‘parent_id‘] eq $vv[‘cate_id‘]">
                                                    <option value="<{$vvv[‘cate_id‘]}>">|-->|-->|<{$vvv[‘cate_name‘]}></option>
                                                </if>
                                            </foreach>
                                        </if>
                                    </foreach>
                                </if>
                            </foreach>
                        </select>
                    </div>

原文地址:https://www.cnblogs.com/houbingxu2014025681/p/8391537.html

时间: 2024-11-08 08:30:08

ThinkPHP3.2中文章内容页的上一篇,下一篇功能,以及分类功能的实现的相关文章

DZ3.2文章内容页代码注释,很不错的。

DZ3.2文章内容页代码注释,很不错的.<!--{template common/header}--><!--e之路网络科技--文章页--> <script type="text/javascript" src="{$_G['setting']['jspath']}forum_viewthread.js?{VERHASH}"></script><script type="text/javascript&

Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法

Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法,亲测可用! Dedecms(织梦)首页的图片调用,相信大家已经非常的清楚,但是今天我在进行内容页的编写的时候,发现了内容页图片的调用问题! 这种问题,一般出现在产品站内页,因为会有产品缩略图的图片展示,所以今天我专门搜集了这方便的帖子! 为大家来解决这个问题,我想一定能帮助到大家! 好了话不多说,写内容先! 文章内容页和图片集内容页,缩略图的调用.适合内页中调用. <img src="{dede:field.picname 

dedecms--二次开发文章内容页未登录禁止访问和同一个帐号只允许一个ip登录

最近在用dedecms二次开发会员功能,领导要求,会员未登录不允许访问文章内容页,和同一个账号只允许一个ip登录,我是将这两个在一起判断的,判断session存不存在,不存在的情况下就是未登录,这时候禁止访问文章内容,session存在,判断当前获取的ip和数据库存放的ip是否相等,不想登说明异地登陆,清空session和cookie;具体代码如下:在plus/view.php最末尾加上下面代码: @session_start();if(empty($_SESSION['userid']) ||

织梦正则自定义输出电脑站移动站上一篇下一篇文章

不去修改程序文件,用标签和正则直接在内容页模板里直接输出上一篇下一篇的链接和标题和没有上一篇下一篇的提示文字 电脑站上一篇下一篇的链接 <li> <a href="{dede:prenext get=pre runphp=yes}$url = @me;preg_match('/href=['"]?([^'"]+)/', $url, $match);@me = $match[1];{/dede:prenext}">上一篇</a> &

HQL实现新闻上一篇下一篇

要实现新闻的上一篇下一篇功能,关键是HQL语句 上一篇:HQL="from News d where d.id<? order by id desc"; 下一篇:HQL="from News d where d.id>? order by id asc "; daoImpl实现的方法: public News nextPage(News news){ try{ String queryString="from News d where d.id

HQL语句实现新闻上一篇下一篇

要实现新闻的上一篇下一篇功能,关键是HQL语句 上一篇:HQL="from News d where d.id<? order by id desc"; 下一篇:HQL="from News d where d.id>? order by id asc "; daoImpl实现的方法: public News nextPage(News news){ try{ String queryString="from News d where d.id

C#中在内容页获取其模板页中的变量,或者值

在CSDN的博文中看到了 muziduoxi 的文章:http://blog.csdn.net/muziduoxi/article/details/5386543 虽然里面提到的方法没有解决我的难题,但是我也是根据里面的方法想到现在所用的方法的,所以还是需要感谢  因为我要的变量初始化的时候是空的,如果使用muziduoxi的方法就只能读取到初始化时候的值,我做了个跟踪,发现有模板页的页面运行的时候是先运行本页的变量的定义→  到模板页的变量定义→ 到本页的Page_Load方法→ 到模板页的P

织梦文章内容页独立内容页模板

织梦内容页独立内容模板,可以让文章不同样式展示 1.后台-系统-SQL命令行工具-执行 ALTER TABLE `#@_archives` ADD `tempname` VARCHAR( 40 ) NOT NULL DEFAULT ''; 2.后台文档发布模板里添加表单 文章模型的是 dede/templets/article_add.htm dede/templets/article_edit.htm 图集模型的是 dede/templets/album_add.htm dede/temple

asp.net MVC实现文章的上一篇下一篇

由于这个东西的原理没有什么难的(只是实现的时候有少量的坑),故直接上代码以便查阅.另:本文给出的Action附送了点击量统计. public ActionResult SingleNews(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } var news = storeDB.articles.Find(id); var prev = storeDB.article