最新消息: 新版网站上线了!!!

改写thinkphp的U方法让路由下分页正常

thinkphp3.1.3下在启用路由的情况下,分页地址不是路由的地址,看了看thinkphp3.2.1的代码也没有修复,官网上面很多人问,所以olcms决定搞定它,具体是修改tp的functions.php的U方法,

if(!empty($vars)) { // 添加参数
    foreach ($vars as $var => $val){
        if('' !== trim($val))   $url .= $depr . $var . $depr . urlencode($val);
}
后面加入以下代码
//tp开启路由之后下一页路由失效问题 分页类URL组装
        //如果开启路由
        if(C('URL_ROUTER_ON')){            
            foreach (C('URL_ROUTE_RULES') as $zhaolg => $zlig){//遍历路由                      
                if(strstr('/'.GROUP_NAME.$url,$zlig)){//从网址中找路由规则
                    $lg = strstr($zhaolg,'/:');//分析规则 带参数?
                    if($lg){//如果规则带参数                          
                        $tempzlg = str_replace('/:','',$lg);//取参数
                        //dump($tempzlg); 
                        if($tempzlg){
                            if(C('APP_SUB_DOMAIN_DEPLOY')){
                                $zlgurl = str_replace($zlig,$zhaolg,'/'.GROUP_NAME.$url); //url替换为路由规则
                            }else{
                                $zlgurl = str_replace($zlig,$zhaolg,$url); //url替换为路由规则
                            }
                            //注 /s/:c/c/4/p/__PAGE__
                            //dump($zlgurl);
                            $url = str_replace($lg.'/'.$tempzlg,'',$zlgurl);//url替换路由规则参数
                        }  
                    }else{//分析规则  不带参数
                        if(C('APP_SUB_DOMAIN_DEPLOY')){
                            $url = str_replace($zlig,$zhaolg,'/'.GROUP_NAME.$url);//url替换为路由规则
                        }else{
                            $url = str_replace($zlig,$zhaolg,$url);//url替换为路由规则
                        }                  
                    }
                }
            }
        }
        /**改造完毕**/

转载请注明:谷谷点程序 » 改写thinkphp的U方法让路由下分页正常