请选择 进入手机版 | 继续访问电脑版

NodejQ

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1252|回复: 9

[CMS] dede织梦系统使手机wap模板能使用pc模板的功能

  [复制链接]
发表于 2017-10-14 23:33:08 | 显示全部楼层 |阅读模式
dedecms织梦系统的wap插件模板的编辑太费力了,远没有pc模板方便,这里介绍一种很好的方法,可以向修改pc模板一样修改wap模板,不需要安装插件

首先在后台添加一个wap模板的变量,系统——系统基本参数——添加新变量
14_3_9fdae7a9aeb0fec.jpg

打开include目录下的common.inc.php,在58行
function _RunMagicQuotes(&$svar)函数前加一个判断是否手机浏览的函数
  1. function is_mobile_request(){
  2.     $_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : '';
  3.     $mobile_browser = '0';
  4.     if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT'])))
  5.         $mobile_browser++;
  6.     if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false))
  7.         $mobile_browser++;
  8.     if(isset($_SERVER['HTTP_X_WAP_PROFILE']))
  9.         $mobile_browser++;
  10.     if(isset($_SERVER['HTTP_PROFILE']))
  11.         $mobile_browser++;
  12.     $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
  13.     $mobile_agents = array('w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac','blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno','ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-','maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-','newt','noki','oper','palm','pana','pant','phil','play','port','prox','qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar','sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-','tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp','wapr','webc','winw','winw','xda','xda-' );
  14.     if(in_array($mobile_ua, $mobile_agents))
  15.         $mobile_browser++;
  16.     if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false)
  17.         $mobile_browser++;    // Pre-final check to reset everything if the user is on Windows
  18.     if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)
  19.         $mobile_browser=0;    // But WP7 is also Windows, with a slightly different characteristic
  20.     if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false)
  21.         $mobile_browser++;
  22.     if($mobile_browser>0)
  23.         return true;
  24.     else
  25.         return false;
  26. }
复制代码

14_3_db393b6641d0960.jpg

打开include目录下的common.inc.php,找到
  1. require_once(DEDEDATA."/config.cache.inc.php");
复制代码

在下面加入代码:
  1. if(is_mobile_request() && !isset($_GET['ispic'])){
  2.     $cfg_df_style=$cfg_wap_style;
  3. }
复制代码

如果是手机端访问,把模板目录缓存手机模板目录,如果在手机端浏览电脑版,在地址后面加上?ispic=1
14_3_966c98c224b06d6.jpg

然后修改根目录下首页index.php代码,首页必须动态浏览,不使用生成静态页,删除首页所有代码,首页全部代码更改为:
  1. require_once (dirname(__FILE__) . "/include/common.inc.php");
  2. require_once DEDEINC."/arc.partview.class.php";
  3. $GLOBALS['_arclistEnv'] = 'index';

  4. $pv = new PartView();
  5. if(is_mobile_request() && !isset($_GET['ispic'])){
  6.     $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $cfg_wap_style . '/index.htm');
  7. }else{
  8.     $row = $dsql->GetOne("Select * From `#@__homepageset`");
  9.     $row['templet'] = MfTemplet($row['templet']);
  10.     $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);
  11. }
  12. $row['showmod'] = isset($row['showmod'])? $row['showmod'] : 0;
  13. $pv->Display();
  14. exit();
复制代码

14_3_a7ad563b2735878.jpg

然后在手机模板目录创建模板,模板名称与pc模板名称一致。首页、列表页、内容页模板都要创建。
14_3_f0c66e2b60bc667.jpg


用手机打开首页显示效果
14_3_70c97856f7e57c2.jpg

有个缺点是模板中栏目和内容页的地址需要使用动态的如/plus/list.php?tid=栏目id,内容页可以修改代码自动生成html页,前面文章有过介绍

点击放大,扫码打赏,金额随意!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|NodejQ ( 粤ICP备18055488号 )

GMT+8, 2020-8-12 14:01 , Processed in 0.042635 second(s), 16 queries , Redis On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表