用phpcms切換中英文網頁的方法(不用解析次層網域)、phpcms完成pc和手機端切換(同一網域名稱)

來源:互聯網
上載者:User

標籤: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和手機端切換(同一網域名稱)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.