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\']}">
毕竟手机端的栏目不是很多