找回密码
 注册
首页 ≡≡网络技术≡≡ PHP语言 电脑,wap手机模板双切换,修改代码最少 ...

CMS 电脑,wap手机模板双切换,修改代码最少

灰儿 2016-12-9 16:16:14
自带的手机门户根本不会用,逻辑和原先的又有差距,忍无可忍,自己做了一个
规则:
以模板,"mb"为例,用的是phpcms\templates\mb\里面的模板文件
正常电脑打开无影响

手机打开时,访问的是phpcms\templates\mb_wap\的模板
也不改模板的js什么文件,为模板解析一个新域名了,简单明了见效开。


添加判断手机访问函数(这个函数不是我写的,随便百度的,当然你又更好的函数可以自己写):
\phpcms\libs\functions\global.func.php
添加如下代码,弱弱的提醒,在<?php 和?>之间添加…不过都明白吧,当我没说


  1. //判断是否是手机访问的函数
  2. function isphone()
  3. {     // 如果有HTTP_X_WAP_PROFILE则一定是移动设备

  4.     if(isset ($_SERVER['HTTP_X_WAP_PROFILE']))
  5.     {
  6.         return true;
  7.     }

  8.     // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息

  9.     if(isset ($_SERVER['HTTP_VIA']))

  10.     {
  11.         // 找不到为flase,否则为true
  12.         return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
  13.     }

  14.     // 脑残法,判断手机发送的客户端标志,兼容性有待提高

  15.     if(isset ($_SERVER['HTTP_USER_AGENT']))    {

  16.         $clientkeywords= array('nokia',
  17.             'sony',
  18.             'ericsson',
  19.             'mot',
  20.             'samsung',
  21.             'htc',
  22.             'sgh',
  23.             'lg',
  24.             'sharp',
  25.             'sie-',
  26.             'philips',

  27.             'panasonic',

  28.             'alcatel',

  29.             'lenovo',

  30.             'iphone',

  31.             'ipod',

  32.             'blackberry',

  33.             'meizu',

  34.             'android',

  35.             'netfront',

  36.             'symbian',

  37.             'ucweb',

  38.             'windowsce',

  39.             'palm',

  40.             'operamini',

  41.             'operamobi',

  42.             'openwave',

  43.             'nexusone',

  44.             'cldc',

  45.             'midp',

  46.             'wap',

  47.             'mobile'

  48.             );

  49.         // 从HTTP_USER_AGENT中查找手机浏览器的关键字

  50.         if(preg_match("/(". implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
  51.         {            return true;

  52.         }
  53.     }

  54.     // 协议法,因为有可能不准确,放到最后判断

  55.     if(isset ($_SERVER['HTTP_ACCEPT']))
  56.     {

  57.         // 如果只支持wml并且不支持html那一定是移动设备

  58.         // 如果支持wml和html但是wml在html之前则是移动设备

  59.         if((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
  60.         {
  61.             return true;
  62.         }
  63.     }
  64.     return false;
  65. }
复制代码


2、修改
\phpcms\modules\content\index.php

(有一处要改)
源代码:
include template('content','index',$default_style);
改为:
$phone=isphone();
if($phone)$default_style=$default_style."_wap";               
include template('content','index',$default_style);

源代码:
include template('content',$template);
改为:
$sitelist  = getcache('sitelist','commons');
$phone=isphone();
if($phone){
        include template('content',$template,$sitelist[$siteid]['default_style'].'_wap');
}
else{
        include template('content',$template);
}


ok大工告成,自己为手机模块做个模板适配起来吧,mb_wap
灰儿 楼主 2016-12-9 16:16:51
include template('content',$template); 一共有三处要改的,忘记加了

您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。