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端的一樣。
當然,在產生靜態頁面時會出現問題,目前解決的辦法是手機端用動態,
#呼叫資料時可以這樣
?1<a href="index.php?m=content&c=index&a=show&catid=25&id={$r['id']}">
以上是phpcms怎麼做手機站的詳細內容。更多資訊請關注PHP中文網其他相關文章!