【前言】
? ?本文介绍下实现文章或新闻上下篇的语法,可以解决ID不连续的问题
?
【主体】
(1)上篇
class="php" name="code">$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>
?
?
?
?
?
?
?
?
?
..