关于PHPCMS的上一篇与下一篇功能的改进

时间:2021-11-25
类别:教程 - CMS教程

在修改PHPCMS模板时,需要一个上一篇下一篇的功能,搜索了一下,网的《PHPCMS实现上一篇/下一篇的完美方案》JS调用很好的解决了问题。

但是现在有个问题,就是该帖子提供的方法是分两次调用的,即上一篇调用了一次,下一篇又调用了一次,这样有个缺点,就是在访问量大的情况下加重服务器负担(没多少访问量可能看不出效果),我稍微修改了一下,只要一次就可以了。

代码:

  1. <?PHP 
  2.  
  3. include './include/common.inc.PHP'
  4.  
  5. if($catid && $contentid){ 
  6.  
  7. //下一篇开始 
  8.  
  9. $prevIoUs_query = "select contentid,catid,url,title from ".DB_PRE."content where contentid < '$contentid' and catid='$catid' order by contentid desc LIMIT 0,1"
  10.  
  11. $prevIoUs_r = $db->get_one($prevIoUs_query); 
  12.  
  13. if($prevIoUs_r){ 
  14.  
  15. $prevIoUs_qian = "下一篇:<a href=".$prevIoUs_r[url]." target=_blank>".$prevIoUs_r[title]."</a>"
  16.  
  17.  
  18. else 
  19.  
  20.  
  21. $prevIoUs_qian = "下一篇:没有了"
  22.  
  23.  
  24. $prevIoUs_qian = "<li>".$prevIoUs_qian."</li>"
  25.  
  26. echo "document.writeln('$prevIoUs_qian');"
  27.  
  28. //下一篇结束 
  29.  
  30. //上一篇开始 
  31.  
  32. $next_query = "select contentid,title from ".DB_PRE."content where contentid > '$contentid' and catid='$catid' order by contentid asc LIMIT 0,1"
  33.  
  34. $next_r = $db->get_one($next_query); 
  35.  
  36. if($next_r){ 
  37.  
  38. $next_qian = "上一篇:<a href=".$next_r[url]." target=_blank>".$next_r[title]."</a>"
  39.  
  40.  
  41. else 
  42.  
  43.  
  44. $next_qian = "上一篇:没有了"
  45.  
  46.  
  47. $next_qian = "<li>".$next_qian."</li>"
  48.  
  49. echo "document.writeln('$next_qian');"
  50.  
  51. //上一篇结束 
  52.  
  53. }else
  54.  
  55. echo "请正确填写调用参数!"
  56.  
  57.  
  58. ?> 

用上面的代码在PHPCMS的安装目录建立文件prevIoUs_and_next.PHP,现在输出的标签是<li></li>的,大家可以按自己的需要修改

调用的方法和简单,在需要显示的地方用下面的代码即可。

  1. <ul><script language="JavaScript" src="{PHPCMS_PATH}prevIoUs_and_next.PHP?contentid={$contentid}&catid={$catid}"></script></ul> 

 

    收藏