zoukankan      html  css  js  c++  java
  • PHPCMS搭建wap手机网站

    PHPCMS搭建PC端网站比较方便,但是在wap手机端方面却不怎么实用,而且自带的手机建站感觉不是很好,而且模版不好控制,现在对其进行修改,手机建站个人感觉比较方便

    首先在phpcms/libs/functions/extention.func.php里面写入判断手机访问的自定义函数

    <?php
    /**
     *  extention.func.php 用户自定义函数库
     *
     * @copyright            (C) 2005-2010 PHPCMS
     * @license                
     * @lastmodify            2010-10-27
     */
    
    //判断是否手机访问
    function check_wap()
    {
       
        if (isset($_SERVER['HTTP_VIA'])) return true;
        if (isset($_SERVER['HTTP_X_NOKIA_CONNECTION_MODE'])) return true;
        if (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])) return true;
        if (strpos(strtoupper($_SERVER['HTTP_ACCEPT']), "VND.WAP.WML") > 0) {
            // Check whether the browser/gateway says it accepts WML.
            $br = "WML";
        } else {
            $browser = isset($_SERVER['HTTP_USER_AGENT']) ? trim($_SERVER['HTTP_USER_AGENT']) : '';
            if (empty($browser)) return true;
            $clientkeywords = array(
                'nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-'
            , 'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu',
                'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini',
                'operamobi', 'opera mobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile'
            );
            if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", $browser) && strpos($browser, 'ipad') === false) {
                $br = "WML";
            } else {
                $br = "HTML";
            }
        }
        if ($br == "WML") {
            return TRUE;
        } else {
            return FALSE;
        }
    }
    
    
    ?>


    然后在phpcms/templates/default模版文件夹里建立一个文件夹存放手机站的模版
    我建立一个叫mobile的文件夹

    然后修改
    phpcms/templates/modules/content/index.php文件

    麻烦点,分别在频道页,列表页,内容页加载模版时进行判断
    比如:
            if (check_wap()) {
                    include template('mobile', $template);
                } else {
                    include template('content', $template);
                }
    这样当用手机访问时会加载mobile文件夹里面的模版,mobile文件夹里面的模版名字要跟PC端的一样。

    当然,在生成静态页面时会出现问题,目前解决的办法是手机端用动态,
    调用数据时可以这样
    <a href="index.php?m=content&c=index&a=show&catid=25&id={$r['id']}">
    
    
    

     毕竟手机端的栏目不是很多



  • 相关阅读:
    Spring MVC 迁移项目搭建运行
    linux 安装 nginx
    linux 安装 redis
    linux 安装 jdk
    存储过程之游标插入数据
    存储过程之基础语法
    AES加密解密,自定义加密规则记录
    idea破解记录
    Mysql-explain之Using temporary和Using filesort解决方案
    C#多线程学习笔记(朝夕eleven) Task启动方式、Task阻塞、Task.Delay()、多线程异常处理、任务取消、多线程的临时变量、共享数据的lock、Task返回值
  • 原文地址:https://www.cnblogs.com/wang-yang/p/4819777.html
Copyright © 2011-2022 走看看