今天在織夢(mèng)論壇上看到很多咨詢關(guān)于分頁太多,導(dǎo)致頁碼導(dǎo)航全部顯示而撐破網(wǎng)頁或不太美觀的問題,當(dāng)然相信很多用DedeCMS的站長朋友們多少也都遇到這樣的問題,如下圖所示:
導(dǎo)致頁碼導(dǎo)航全部顯示而撐破網(wǎng)頁或不太美觀的問題
那么該如何讓頁碼智能顯示,每頁只固定顯示當(dāng)前頁的前后幾個(gè)呢?仔細(xì)想一下其實(shí)并不太難,首先我們需要知道解析分頁的文件是哪一個(gè),一般情況下dedecms此類文件都會(huì)放在include下,用查找的方式找了一下“上一頁</a></li>”,不用說也知道這是為什么要找它,因?yàn)檫@是分頁唯一的代碼!很快我們查找到了arc.archives.class.php文件,但是其中有兩處,仔細(xì)看了一下,第一處是列表頁用的,第二處是文章頁用的,下邊就來解決一下如何智能分頁,本人asp學(xué)的還可以,php就差多了,在5.1的時(shí)候記的有個(gè)朋友寫過,于是拿出來改了一下,修改方法如下:
打開include/arc.archives.class.php文件
dedecms5.1版本
inc_archives_view.php
dedecms 5.5 5.5是
arc.archives.class.php
找到GetPagebreakDM //修改的是列表頁
找到代碼:for($i=1;$i<=$totalPage;$i++) (注意:共有兩處,上面說了,改第二處,大約813行處,當(dāng)然兩個(gè)都可以修改,上面的是動(dòng)態(tài)頁面,下面的是靜態(tài)頁面)。
$total_list=8; //只顯示8個(gè)頁碼 服務(wù)器之家(jb51.net)注
if($nowPage >= $total_list) {
$i = $nowPage-4; //顯示4頁
$total_list = $nowPage+4; //顯示4頁
if($total_list >= $totalPage) $total_list = $totalPage;
}else{
$i=1;
if($total_list >= $totalPage) $total_list = $totalPage;
}
for($i;$i<=$total_list;$i++)
再將for($i=1;$i<=$totalPage;$i++) 修改成for($i;$i<=$total_list;$i++)
找到GetPagebreak //修改的是內(nèi)容頁,修改方法同上
接下來,保存arc.archives.class.php文件并上傳。登陸dede后臺(tái),找到分頁比較多的文章,重新生成HTML,再看一下分頁的效果,如下圖:
看到效果了吧?就是不管有多少頁,只顯示當(dāng)前頁的前四與后四個(gè)頁碼,以上圖為例,現(xiàn)在是第八頁,只顯示前邊到四和后邊到十二,趕快試一下吧,注意該方法只適合dedecms5.1、dedecms5.3和5.5哦。