1. 程式人生 > >用phpcms切換中英文網頁的方法(不用解析二級域名)、phpcms完成pc和手機端切換(同一域名)

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

msu 可用 解決 start 這就是 arp header 欄目 profile

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和手機的切換步驟基本結束了,你可以通過火狐瀏覽器的手機模擬器來查看是不是可以修改了。作者:悅悅 博客地址:http://www.cnblogs.com/nuanai/

 

以上的兩大內容就是我在做項目的時候遇到過的新的問題,現在已經都解決了,所以分享一下過程,需要的同誌們可以查看一下。

作者:悅悅 博客地址:http://www.cnblogs.com/nuanai/

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