【前言】
本文介绍下实现文章或新闻上下篇的语法,可以解决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>
..
相关推荐
在Web内容管理系统中,常需要实现文章的上一篇和下一篇文章的功能,以便用户可以方便地浏览相关内容。在ThinkPHP中实现这一功能,可以通过查询数据库来获取符合条件的文章记录。本文将详细介绍两种不同的实现方法,...
ThinkPHP通过内置的机制支持事务操作,本篇文章将详细介绍如何在ThinkPHP中实现事务回滚。 事务回滚是指当事务中的一个或多个操作失败时,撤销之前的操作,使得数据库回退到事务开始前的状态。这在需要保证数据一致...
本篇文章将深入探讨基于ThinkPHP框架的开源B2C电商小程序系统,旨在帮助开发者理解并掌握此类系统的构建、管理和优化。 一、B2C电商模式概述 B2C(Business-to-Consumer)是企业对消费者的电子商务模式,商家通过...
本篇文章将深入探讨一款名为"sale_admin"的进销存管理系统,该系统基于强大的ThinkPHP5框架和MySQL数据库,由专业的木马团队开发,并且完全开源,为企业提供了灵活的定制和扩展空间。 一、ThinkPHP5框架解析 ...
本篇文章将深入探讨如何使用自定义函数实现类似`assign()`和`extract()`的功能,以便在不依赖特定框架的情况下完成模板变量的分配。 `assign()`函数通常用于将数组或变量分配到模板,以便在模板文件中使用。在这个...
1.【修复】上下篇url在兼容模式下出错。(2016.01.23解决) 2.【修复】万能标签调用不出文章描述。(2016.05.10解决) 3.【修复】单页模型添加图片无法正常显示。(2016.05.12解决) 4.【修复】后台上传文章缩略图...
本篇文章将深入探讨如何使用PHP解析包含数学公式、图片以及数字上下标的Word文档。 1. **PHP与Word文档解析** PHP可以借助一些开源库来解析Word文档,如PHPWord、PHPDocX等。这些库允许开发者读取、创建和编辑Word...