PHPCMS搭建wap手机网站

本文介绍了如何通过修改PHPCMS的extension.func.php函数库,添加判断手机访问的函数,以及在默认模版中创建mobile文件夹来存放手机端模版。针对手机访问,通过条件判断加载不同的模版,实现PC和手机端的差异化展示。在处理静态页面生成时,提出了使用动态调用数据的解决方案,以应对手机端的栏目限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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']}">


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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_15568321

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值