yzncms二开 栏目分页伪静态 如list/1_1.html

yzncms基于thinkphp框架 那么伪静态当然少不了写路由来实现的

案例如:
www.***.com/list/1.htm?page=2

伪静态 :www.***.com/list/1_1.html 


打开routeroute_cms.php 找到

Route::rule('lists/:catid/[:condition]', 'cms/index/lists')->pattern(['catid' => 'd+', 'condition' => '[0-9_&=a-zA-Z]+']);

在下方增加

Route::rule('lists/[:catid]/[:condition]_:page', 'cms/index/lists')->pattern(['catid' => 'd+', 'condition' => '[0-9_&=a-zA-Z]+', 'page' => 'd+']);


然后找到分页类   applicationcmspaginatorPage.php  

找到getAvailablePageWrapper方法 给一下判断替换


直接替换如下方法

protected function getAvailablePageWrapper($url, $page)
    {
        preg_match("/d+/",$url,$urls);
        if(is_numeric($urls['0'])){
            if($page == 1){
                $url=$urls['0'].".html";
            }else{
                $url=$urls['0']."_".$page.".html";
            }
        }

        if($page == '»'){
            $sum=$this->currentPage()+1;
            $url=$urls['0']."_".$sum.".html";
        }
        if($page == '«'){
            $sum=$this->currentPage()-1;
            if($sum == 1){
                $url=$urls['0'].".html";
            }else{
                $url=$urls['0']."_".$sum.".html";
            }
            
        }
        return '<li><a href="' . htmlentities($url) . '">' . $page . '</a></li>';
    }

 

修改好 务必 更新一下缓存就可以了  

PS:   由于工作时间原因   我只写了 URL模式:数字  标识的我没写上