在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判断方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
/** * 判断是否为手机版 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的后面即可
替换成
1
2
3
4
5
|
if (is_mobile()) {
$pv ->SetTemplet( $cfg_basedir . $cfg_templets_dir . "/mobile/" . $row [ 'templet' ]);
} else {
$pv ->SetTemplet( $cfg_basedir . $cfg_templets_dir . "/" . $row [ 'templet' ]);
} |
这样首页就折腾完了
修改/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)上面添加如下代码:
1
2
3
4
5
6
7
|
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)上面添加
1
2
3
4
5
6
7
|
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