標籤:open session asc 添加 參數 hpc front 開啟 不用
AA。phpcms進行雙語切換方法(不用解析次層網域)
phpcms進行兩種語言的切換,有一把部分的人都是進行的次層網域的解析,這樣的話可能會有一部分的麻煩,我這裡有一種方法可以不用解析次層網域就可以,不過因為是模板所以可能麻煩一點,不過真的是不接觸不知道,接觸到沒有用到的東西就可以進行進一步的學習。悅悅 部落格地址:http://www.cnblogs.com/nuanai/
這裡我使用的方法是進行一級欄目的讀取,通過不同的一級欄目進行不同的內容調取。只要修改一級欄目的id就可以了,這就需要用到不同的id,因此就進行了頭部檔案的修改,其它的列表頁或是內容頁的東西不用進行修改。但是怎麼判斷當前頁面我應該調取那個語言的一級欄目的id呢?這就是我需要考慮的問題,不過這個問題已經解決了,看下我是怎麼解決的吧。下面就是進行phpcms的步驟,因為phpcms的安裝步驟一直到新增內容、更換模板風格等在之前的部落格中都有寫到,這裡就不多說了,直接從怎麼替換語言來說。悅悅 部落格地址:http://www.cnblogs.com/nuanai/
一、兩種語言模板的替換(中文---英文)預設首頁假如是中文
1.模板結構功能如果一樣,直接在你的content檔案夾中複製一模一樣的預設檔案出來(包括所有的檔案)
2.修改檔案的名字,要和預設中文的檔案名稱字區分開,好進行中英文的模板切換
3.找到你的中文模板的標頭檔,我這裡是header.html檔案,開啟標頭檔,進行如下修改
(1)找到你要進行切換語言的位置,修改你的語言切換的指向路徑是一個php的處理檔案
<!--找到你要進行雙語切換的地方,這裡是進行英文版的切換--><a href="qhe.php">English</a>
注意:這裡指向的php檔案是要放到“phpcmswm\install_package”檔案夾下的,不然在走這個php檔案的時候會出錯
(2)進行編寫這個php處理檔案
<?php //開啟緩衝 session_start(); //給一個預設的值,這裡是英文語言的預設值,預設值你們可以自己定義 $_SESSION[‘qhz‘] = 1; //跳轉到自己的phpcms的首頁,使用的是window.location.href = ‘自己的phpcms的首頁路徑‘ echo "<script type=‘text/javascript‘>window.location.href = ‘/phpcmswm/install_package/‘</script>"?>
(3)編寫結束php處理檔案之後,對預設的首頁跳轉的處理檔案進行修改
首先,找到這個路徑下的index.php檔案並開啟,檔案的路徑是: phpcmswm\install_package\phpcms\modules\content\index.php
其次,A.在index.php檔案中開啟緩衝
//開啟緩衝session_start();
B.找到檔案中的這句話,大約在31行
include template(‘content‘,‘index‘,$default_style);
替換成如下這樣,這是進行判讀
//判斷傳過來的session的值是不是空的,是的話就跳預設中文首頁,不是就跳英文首頁if(empty($_SESSION["qhz"])){ include template(‘content‘,‘index‘,$default_style);}else{ //這是英文版的首頁,我的英文版首頁的名字是index1 include template(‘content‘,‘index1‘,$default_style); }
到這裡關於中文版的頭部檔案修改就結束了。
4.中文頭部檔案結束了,然後是英文的頭部檔案了(同上面的第3步驟)
注意:不同的地方是你的英文的php處理檔案,不要指向同一個處理檔案,所以要進行新的處理檔案的編寫,除了檔案名稱和傳值不一樣外,其他的其實都是一樣的。
(1)中文的頭部檔案
<!--切換中文的指向檔案--><a href="qhz.php">中文</a>
(2)php處理的頁面
<?php session_start(); $_SESSION[‘qhz‘] = 0; //傳的中文狀態下的值 echo "<script type=‘text/javascript‘>window.location.href = ‘/phpcmswm/install_package/‘</script>"?>
(3)phpcmswm\install_package\phpcms\modules\content\index.php這個index.php檔案是不需要修改的,因為裡面的判斷已經寫了空的時候就是預設的中文介面,值是空的其實和0是一樣的,所以不用進行別的修改。 這樣中文和英文的模板需要修改的地方就寫完了。二、phpcms背景修改部分 1.預設的模板不用進行修改,需要修改的是英文狀態下的模板,這裡你就需要進行一級欄目的添加 (1)選擇“內容”標籤,單擊“添加欄目”,進行資訊的添加 (2)進行到“模板設定”的欄目的時候,選擇“可用風格”---“是網站管理中的風格名字”這個是不用變得;“欄目首頁模板”---“是你的英文的首頁模板”;“列表頁、內容頁”----“都是對應的英文的模板檔案” (3)進行“提交”就可以了 2.進行英文欄目下的功能表列目的添加,正常的添加功能表列目就可以了 3.其他的內容頁、列表頁都是正常的新增內容就可以了 到這裡,背景修改就結束了三、整體看效果就可以了 以上就是進行雙語的切換步驟,修改的只有中英文的頭部檔案和傳值的處理頁面,需要後台添加的就是你的英文欄目,其它的東西就是全靠傳的id值進行內容切換就可以了,因為功能都是樣的,所以直接複製了預設範本的所有檔案就可以了。 悅悅 部落格地址:http://www.cnblogs.com/nuanai/BB。 phpcms完成pc和手機端切換(同一網域名稱)悅悅 部落格地址:http://www.cnblogs.com/nuanai/ 一、手機端檔案的建立和修改 1.在這個檔案路徑下建立一個手機端網頁檔案 phpcmswm\install_package\phpcms\templates\wm 這路徑就是背景“網站管理”中的模板風格檔案,在這個模板風格檔案下建立一個檔案夾,我這裡叫做content_m,這個檔案夾就是用來做手機網站的 2.將你的手機網頁的檔案複製到這個content_m檔案夾下,進行拆分成phpcms使用的分類檔案就可以了(正常的網頁檔案拆分:頭部、尾部、中心等),然後修改檔案中的各個檔案路徑就可以了,這裡不多說,路徑修改什麼的都在前面的部落格中詳細講解過了。二、修改首頁跳轉的處理檔案 1.找到這個index.php檔案,就是首頁跳轉的處理檔案 路徑:phpcmswm\install_package\phpcms\modules\content\index.php 2.將判斷裝置的代碼複製到index的類方法裡(類名大約是第8行),判斷裝置的代碼如下:
//判斷是不是手機端 function isMobile() { // 如果有HTTP_X_WAP_PROFILE則一定是行動裝置 if (isset ($_SERVER[‘HTTP_X_WAP_PROFILE‘])) { return true; } // 如果via資訊含有wap則一定是行動裝置,部分服務商會屏蔽該資訊 if (isset ($_SERVER[‘HTTP_VIA‘])) { // 找不到為flase,否則為true return stristr($_SERVER[‘HTTP_VIA‘], "wap") ? true : false; } // 腦殘法,判斷手機發送的用戶端標誌,相容性有待提高 if (isset ($_SERVER[‘HTTP_USER_AGENT‘])) { $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‘, ‘openwave‘, ‘nexusone‘, ‘cldc‘, ‘midp‘, ‘wap‘, ‘mobile‘ ); // 從HTTP_USER_AGENT中尋找手機瀏覽器的關鍵字 if (preg_match("/(" . implode(‘|‘, $clientkeywords) . ")/i", strtolower($_SERVER[‘HTTP_USER_AGENT‘]))) { return true; } } // 協議法,因為有可能不準確,放到最後判斷 if (isset ($_SERVER[‘HTTP_ACCEPT‘])) { // 如果只支援wml並且不支援html那一定是行動裝置 // 如果支援wml和html但是wml在html之前則是行動裝置 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‘)))) { return true; } } return false;
3.找到本處理檔案中的這句代碼(處理檔案的所有這句代碼都要替換)
include template(‘content‘,$template);
替換成如下代碼:
if($this->isMobile()){ //第一個參數是你要跳轉的手機網頁檔案夾名 include template(‘content_m‘,$template);}else{ include template(‘content‘,$template);}
4.找到處理檔案中的這句代碼
include template(‘content‘,‘index‘,$default_style);
替換成如下代碼:
if($this->isMobile()){ //這是手機端的網頁 include template(‘content_m‘,‘index‘,$default_style);}else{ include template(‘content‘,‘index‘,$default_style); }
到這裡就是PC和手機的切換步驟基本結束了,你可以通過Firefox瀏覽器的手機模擬器來查看是不是可以修改了。悅悅 部落格地址:http://www.cnblogs.com/nuanai/
以上的兩大內容就是我在做項目的時候遇到過的新的問題,現在已經都解決了,所以分享一下過程,需要的同志們可以查看一下
用phpcms切換中英文網頁的方法(不用解析次層網域)、phpcms完成pc和手機端切換(同一網域名稱)