在修改PHPCMS模板时,需要一个上一篇下一篇的功能,搜索了一下,网的《PHPCMS实现上一篇/下一篇的完美方案》JS调用很好的解决了问题。
但是现在有个问题,就是该帖子提供的方法是分两次调用的,即上一篇调用了一次,下一篇又调用了一次,这样有个缺点,就是在访问量大的情况下加重服务器负担(没多少访问量可能看不出效果),我稍微修改了一下,只要一次就可以了。
代码:
- <?PHP
- include './include/common.inc.PHP';
- if($catid && $contentid){
- //下一篇开始
- $prevIoUs_query = "select contentid,catid,url,title from ".DB_PRE."content where contentid < '$contentid' and catid='$catid' order by contentid desc LIMIT 0,1";
- $prevIoUs_r = $db->get_one($prevIoUs_query);
- if($prevIoUs_r){
- $prevIoUs_qian = "下一篇:<a href=".$prevIoUs_r[url]." target=_blank>".$prevIoUs_r[title]."</a>";
- }
- else
- {
- $prevIoUs_qian = "下一篇:没有了";
- }
- $prevIoUs_qian = "<li>".$prevIoUs_qian."</li>";
- echo "document.writeln('$prevIoUs_qian');";
- //下一篇结束
- //上一篇开始
- $next_query = "select contentid,title from ".DB_PRE."content where contentid > '$contentid' and catid='$catid' order by contentid asc LIMIT 0,1";
- $next_r = $db->get_one($next_query);
- if($next_r){
- $next_qian = "上一篇:<a href=".$next_r[url]." target=_blank>".$next_r[title]."</a>";
- }
- else
- {
- $next_qian = "上一篇:没有了";
- }
- $next_qian = "<li>".$next_qian."</li>";
- echo "document.writeln('$next_qian');";
- //上一篇结束
- }else{
- echo "请正确填写调用参数!";
- }
- ?>
用上面的代码在PHPCMS的安装目录建立文件prevIoUs_and_next.PHP,现在输出的标签是<li></li>的,大家可以按自己的需要修改
调用的方法和简单,在需要显示的地方用下面的代码即可。
- <ul><script language="JavaScript" src="{PHPCMS_PATH}prevIoUs_and_next.PHP?contentid={$contentid}&catid={$catid}"></script></ul>
收藏