AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > PHP编程

PHPCMS V9教程:实现tag、评论模块伪静态

51自学网 2016-09-26 http://www.51zixue.net
一、评论模块伪静态设置
  1、首先在后台->扩展->url规则里添加一个新的规则用于评论模块,如下面所示:
{$commentid}_{$page}.html
  添加完成后记住前面的id号,比如31。
  2、本来PC标签支持urlrule呢,后来不支持了,只好改代码了,于是打开文件phpcms/modules/comment/index.php找到:
include template('comment', 'list');
  在它上面添加几行用于读取urlrule和从评论表中调用评论数据,对了,评论表是带分表的。
       $page = intval($_GET['page']);    
       $page = max($page,1);    
       $urlrules = getcache('urlrules','commons');    
       $urlrule = $urlrules[31];//调用url规则    
       $pagesize = 10; //分页大小    
       $comment_db = pc_base::load_model('comment_model');    
       $comment_data_db = pc_base::load_model('comment_data_model');    
       $comment = $comment_db->get_one(array('commentid'=>$commentid, 'siteid'=>$siteid));    
       if ($comment){    
       $comment_data_db->table_name($comment['tableid']);    
       $comment_info = $comment_data_db->listinfo(Array('commentid'=>$commentid,'status'=>1) , 'id desc', $page ,$pagesize,'','10',$urlrule,Array('commentid'=>$commentid));    
       $pages = $comment_data_db->pages;    
       }  
  3、下面就就改模版了,改模版其实就是改一下那个pc标签,只留下循环那里就可以了, 就是把那个调用评论数据的标签改改, 删掉这个文件phpcms/templates/default/comment/list.html里的:
{pc:comment action="lists" commentid="$commentid" siteid="$siteid" page="$_GET[page]" hot="$hot" num="20"}
  和它对应的那个:
{/pc}
  然后把循环语句:
{loop $data $r}
  改成:
{loop $comment_info $r}
  把分页标签:
{$pages}
  改成:
{str_replace("_0.html","_1.html",$pages)}
  4、最后在.htaccess文件里加入以下代码:
RewriteRule ^content_(.*)_([0-9]+).html index.php?m=comment&c=index&a=init&commentid=content_$1&page=$2     
  ok,现在就大功告成了,显示出来的网址是:
  /content_9-1-1_2.html
  二、TAG模块伪静态设置
  1、在后台->扩展->url规则里添加一个新的规则用于评论模块,如下面所示:
{$tag}_{$catid}_{$page}.html
  添加完成后记住前面的id号,比如32。
  2、打开phpcms/modules/content/tag.php文件,找到:
$total = $this->db->number;     
  这一行往上面添加以下代码:
$siteid = $this->categorys[$catid]['siteid'];    
$siteurl = siteurl($siteid);    
$this->db->set_model($modelid);    
$page = $_GET['page'];    
$urlrules = getcache('urlrules','commons');    
$urlrule = $urlrules[32];//调用url规则    
$datas = $infos = array();    
$infos = $this->db->listinfo("`keywords` LIKE '%$tag%'",'id DESC',$page,25,'','9',$urlrule,Array('catid'=>$catid,'tag'=>urlencode($tag)));     
  3、修改模板,打开phpcms/templates/default/content/show.html,找到:
{APP_PATH}index.php?m=content&c=tag&catid={$catid}&tag={urlencode($keyword)}     
  改成:
{APP_PATH}{urlencode($keyword)}_{$catid}_1.html    
  打开phpcms/templates/default/content/tag.html,把分页标签:
{$pages}      
  改成:
{str_replace("_0.html","_1.html",$pages)}
  4、在.htaccess文件里加入以下代码:
RewriteRule ^(.*)_([0-9]+)_([0-9]+).html index.php?m=content&c=tag&catid=$2&tag=$1&page=$3     
  最后显示出来的URL样式如下:
  /关键词_6_1.html
  小结:其实以上的修改都是在listinfo支持伪静态规则的基础上来修改的,熟练使用listinfo,就能在phpcms的任何页面实现伪静态分页了。
  原文地址:http://www.ishang123.com/CMS/phpcms/2012-11-21/276.html




说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,51zixue.net不保证资料的完整性。
 
上一篇:PHPCMS V9 调用随机文章标签实例详解  下一篇:PHPCMS v9安全防范教程