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

浏览:2896 发布日期:2014/03/05 分类:技术分享
thinkphp3.1.3下在启用路由的情况下,分页地址不是路由的地址,看了看thinkphp3.2.1的代码也没有修复,官网上面很多人问,所以olcms决定搞定它,感谢神一般的phper jack做出神一般的贡献,具体是修改tp的functions.php的U方法,在大概287行, 
if(!empty($vars)) { // 添加参数    foreach ($vars as $var => $val){        if('' !== trim($val))   $url .= $depr . $var . $depr . urlencode($val);} 
后面加入以下代码 /*
* tp开启路由之后下一页路由失效问题 分页类URL组装
* modify author :赵利刚 王荣
* modify time:2014.3.5
*/
//如果开启路由
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替换为路由规则 
                }                    

            }
        }
    }
本文地址:http://www.olcms.com/html/121.html
最佳答案
评论( 相关
后面还有条评论,点击查看>>