thinkphp实现文章上下篇

【前言】

   本文介绍下实现文章或新闻上下篇的语法,可以解决ID不连续的问题

【主体】

(1)上篇

$pre = M('article')->where(array('id>"'.$_GET["id"].'"','cateid' => $cateid))
                   ->limit('1')->find();

    注意:这里我在where里的条件加了一条,即分类。也就是和当前文章处于同一分类,这里用array数组形式添加多个条件。如没有分类,则可以去除cateid条件 

(2)下篇

$next = M('article')->where(array('id<"'.$_GET["id"].'"','cateid' => $cateid))
                    ->order('id desc')
                    ->limit('1')
                    ->find();

    注意:和上篇原理类似  

(3)没有了--判断有无上下篇

         注意:这里可以在控制器里加判断然后传递到模板,也可以直接在模板里判断。

         ①控制器里判断

if(!$pre){
           $pre['title']='没有了(本文为该分类的首篇)';
        }
if(!$next){
           $next['title']='没有了(本文为该分类的尾篇)';
        }

          判断完后传递到模板即可

         ②模板里判断

            输出后得知,没有上下篇时$pre或$next变量输出为空数组,所以可以在模板里判断

<if condition="$next eq null">
    <a href="javascript:;" class="prompt-next">没有了!</a>
<else/>
    <a href="__CONTROLLER__/index/id/{$next.id}" title="{$next['title']|msubstr=###,0,40}">{$next['title']|msubstr=###,0,40}</a>
</if>

    完善,为了提高用户体验,给没有上下文的情况,添加个点击事件

<script type="text/javascript">
    $(function(){
        $('.prompt-pre').on('click',function(){
            alert("本文为该分类的首篇");
        });
        $('.prompt-next').on('click',function(){
            alert("本文为该分类的尾篇");
        });
    })
</script>

..

猜你喜欢

转载自570109268.iteye.com/blog/2419904
今日推荐