在之前分享的Phpcms V9全站偽靜態設置方法中,具體講解了PC v9具體的為靜態設置詳細步驟,在這里VeVb.COM再次分享關于如何在模塊中使用偽靜態,比如評論偽靜態,tag偽靜態等方面的設置方法。
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標簽,只留下循環那里就可以了,就是把那個調用評論數據的標簽改改。
去掉{pc:comment action="lists" commentid="$commentid" siteid="$siteid" page="$_GET[page]" hot="$hot" ........和它對應的那個{/pc}
然后改循環那里{loop $data $r}改成{loop $comment_info $r}
ok~改好了~~o(∩_∩)o~
對了還有.htaccess文件要改,windows的是httpd.ini
每次改這個我都是靠蒙....對.htaccess的語法規則真不不太懂
RewriteRule ^content_(.*)-([0-9]+).html index.php?m=comment&c=index&a=init&commentid=content_$1&page=$2
嘿嘿~這個RewriteRule隨便寫的,不過湊活著能用
給個網址看看吧
不過我沒url的權限,大家知道怎么看吧
phpcms。topone。me/content_9-1-1-2.html
沒評論出錯的問題改好了,重新修改代碼就行了
下面說tag的偽靜態
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)));
當然,32是后臺擴展里加的url規則
tag_{$catid}_{$tag}_{$page}.html
.htaccess
cmsyou.com/tag_9_測試_1.html
一開始沒考慮中文編碼的問題,結果好像GBK編碼下翻頁就出錯了,幸虧 Anchorite同學發現了,加個urlencode給中文的標簽編碼一下就ok了
在第一頁點擊上一頁出現0的問題的兩種解決方法:
第一種就是將pages里的內容替換一下,{str_replace("-1-0.html", "-1-1.html", $pages)}
http://bbs.phpcms.cn/redirect.php?goto=findpost&ptid=272432&pid=1518669&fromuid=53612
第二種就是修改分頁函數
http://bbs.phpcms.cn/redirect.php?goto=findpost&ptid=272432&pid=1518645&fromuid=53612
任選一種即可,當然,修改代碼記得備份,要養成隨時備份的好習慣。
其實以上的修改都是在listinfo支持偽靜態規則的基礎上來修改的,熟練使用listinfo,就能在phpcms的任何頁面實現偽靜態分頁了。
新聞熱點
疑難解答