爱资料 网 欢迎您的到来,我们在这里提供了免费网页模板、编程资料、开发资料、开发软件、在线工具
爱资料 > 编程资料 > Dedecms > dedecms代码自适应手机版只需要几个步骤快速实现功能

dedecms代码自适应手机版只需要几个步骤快速实现功能

作者:apizl 更新:2018-06-20 10:19:12 阅读:184次

在dedecms系统中主要常用到的有index.php view.php list.php。

如下以dedecms5.7为例子:

1.需要修改的路径有

/index.php

/include/arc.archives.class.php

/include/arc.listview.class.php

2.我们需要在模板目录下新建mobile目录

/templets/mobile/

将/templets/default/整个文件夹丢到/templets/mobile/

就变成如下/templets/mobile/default

判断是否为手机版的方法 三个地方都会用到

3-1判断方法

/**
* 判断是否为手机版 true是手机版
* @return boolean
*/
function is_mobile() {
if (empty($_SERVER['HTTP_USER_AGENT'])) {
return false;
}
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$mobile_agents = Array("240x320", "acer", "acoon", "acs-", "abacho", "ahong", "airness", "alcatel", "amoi", "android", "anywhereyougo.com", "applewebkit/525", "applewebkit/532", "asus", "audio", "au-mic", "avantogo", "becker", "benq", "bilbo", "bird", "blackberry", "blazer", "bleu", "cdm-", "compal", "coolpad", "danger", "dbtel", "dopod", "elaine", "eric", "etouch", "fly ", "fly_", "fly-", "go.web", "goodaccess", "gradiente", "grundig", "haier", "hedy", "hitachi", "htc", "huawei", "hutchison", "inno", "ipad", "ipaq", "ipod", "jbrowser", "kddi", "kgt", "kwc", "lenovo", "lg ", "lg2", "lg3", "lg4", "lg5", "lg7", "lg8", "lg9", "lg-", "lge-", "lge9", "longcos", "maemo", "mercator", "meridian", "micromax", "midp", "mini", "mitsu", "mmm", "mmp", "mobi", "mot-", "moto", "nec-", "netfront", "newgen", "nexian", "nf-browser", "nintendo", "nitro", "nokia", "nook", "novarra", "obigo", "palm", "panasonic", "pantech", "philips", "phone", "pg-", "playstation", "pocket", "pt-", "qc-", "qtek", "rover", "sagem", "sama", "samu", "sanyo", "samsung", "sch-", "scooter", "sec-", "sendo", "sgh-", "sharp", "siemens", "sie-", "softbank", "sony", "spice", "sprint", "spv", "symbian", "tablet", "talkabout", "tcl-", "teleca", "telit", "tianyu", "tim-", "toshiba", "tsm", "up.browser", "utec", "utstar", "verykool", "virgin", "vk-", "voda", "voxtel", "vx", "wap", "wellco", "wig browser", "wii", "windows ce", "wireless", "xda", "xde", "zte");
$is_mobile = false;
foreach ($mobile_agents as $device) {
if (stristr($user_agent, $device)) {
$is_mobile = true;
break;
}
}
return $is_mobile;
}

3.修改/index.php

找到里面的$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);

将3-1方法放到index.php的后面即可

indexphp修改

替换成

if (is_mobile()) {
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/mobile/" . $row['templet']);
} else {
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);
}

dedecms indexphp修改

这样首页就折腾完了

修改/templets/mobile/default/index.htm即可

然后在模板里面引入其他的模板地址也需要改变

{dede:include filename="/mobile/default/head.htm"/} 所有的模板前面多了/mobile/default/

4.修改/include/arc.archives.class.php

还是一样将方法放入类中

在if($this->TypeLink->TypeInfos['corank'] > 0 && $this->Fields['arcrank']==0)上面添加如下代码:

if($this->is_mobile())
{
$this->TypeLink->modDir=$this->TypeLink->modDir."/mobile";
$this->TypeLink->TypeInfos['tempindex']="mobile/".$this->TypeLink->TypeInfos['tempindex'];
$this->TypeLink->TypeInfos['templist']="mobile/".$this->TypeLink->TypeInfos['templist'];
$this->TypeLink->TypeInfos['temparticle']="mobile/".$this->TypeLink->TypeInfos['temparticle'];
}

5.修改/include/arc.listview.class.php

还是一样将方法放入类中

在 if(!$this->IsError)上面添加

if($this->is_mobile())
{
$this->TypeLink->modDir=$this->TypeLink->modDir."/mobile";
$this->TypeLink->TypeInfos['tempindex']="mobile/".$this->TypeLink->TypeInfos['tempindex'];
$this->TypeLink->TypeInfos['templist']="mobile/".$this->TypeLink->TypeInfos['templist'];
$this->TypeLink->TypeInfos['temparticle']="mobile/".$this->TypeLink->TypeInfos['temparticle'];
}

这样就完成了 整个手机版的修改 这样在mobile/default新增和修改对应的模板就能访问到独立的手机版HTML


文章由爱资料原创本文地址:https://www.apizl.com/archives/view-133830-1.html,转载请以链接形式标明本文地址!
发布时间:2017-03-04 12:11:26
分享:
0