phpcms实现PC端与手机端双模版的方法

第一步

打开 \phpcms\libs\functions\global.func.php,添加以下函数:

/**
 * Function isMobile
 * 判断是否移动端访问
 */
 function isMobile(){
    $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
    $useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:'';
    function CheckSubstrs($substrs,$text){
        foreach($substrs as $substr)
        if(false!==strpos($text,$substr)){
            return true;
        }
        return false;
    }
    $mobile_os_list=array('Google Wireless Transcoder','Windows CE','WindowsCE','Symbian','Android','armv6l','armv5','Mobile','CentOS','mowser','AvantGo','Opera Mobi','J2ME/MIDP','Smartphone','Go.Web','Palm','iPAQ');
    $mobile_token_list=array('Profile/MIDP','Configuration/CLDC-','160×160','176×220','240×240','240×320','320×240','UP.Browser','UP.Link','SymbianOS','PalmOS','PocketPC','SonyEricsson','Nokia','BlackBerry','Vodafone','BenQ','Novarra-Vision','Iris','NetFront','HTC_','Xda_','SAMSUNG-SGH','Wapaka','DoCoMo','iPhone','iPod');
    $found_mobile=CheckSubstrs($mobile_os_list,$useragent_commentsblock)||CheckSubstrs($mobile_token_list,$useragent);
    if($found_mobile){
        return true;
    }else{
        return false;
    }
 }

第二步

修改 \phpcms\modules\content\index.php 文件

找到以下代码:

include template('content','index',$default_style);

修改成:

if (isMobile()){
    include template('content_m','index',$default_style);
}else{
    include template('content','index',$default_style);
}

第三步

修改 \phpcms\modules\content\index.php 文件

找到以下代码,一共有三处,三处都需要修改:

include template('content',$template);

修改成:

$sitelist=getcache('sitelist','commons');
if(isMobile()){
    include template('content_m',$template);  //手机模版
}else{
    include template('content',$template);    //PC模版
}

第四步

在使用的模版文件夹内,复制 content 文件夹为 content_m ,content_m 就可以直接制作手机模版。

注:此方法只能应用 phpCMS 的动态页面/伪静态页面。

发表评论