首頁  >  文章  >  CMS教程  >  dedecms 清單頁標題怎麼修改

dedecms 清單頁標題怎麼修改

藏色散人
藏色散人原創
2019-12-13 10:24:272391瀏覽

dedecms 清單頁標題怎麼修改

dedecms 清單頁標題怎麼修改?

推薦學習:織夢cms

最近看到sina.com.cn qq.com 163.com 這些大站的頁面標題title ,發現他們的標題如下 

頻道頁: 頻道名稱_網站名稱 

清單頁:清單名稱_頻道名稱_網站名稱 

內容頁:文章名稱_專欄二(清單名稱)_專欄一(頻道名稱)_網站名稱 

也想把自己的小站改成這樣的,去查了查dedecms的幫助文件,發現沒有這樣相關標記,看來只能自己動手了,又開始baidu,發現這樣的文章還不少,請查閱本站轉來的另一篇文章, 

DEDE實現「文章標題-欄位名稱-網站名稱」 

#但身為一個技術人員又驅使我自己也寫了一個,下面把我自己實現的方法及如何調用貼出來,方便大家使用 

版本5.0,涉及到的類別和模板有以下幾個 

inc_archives_view.php (最新5.5版为 arc.archives.class.php)内容页生成类 
inc_arclist_view.php (最新5.5版为 arc.listview.class.php)列表页生成类 
inc_typelink.php(最新5.5版为 typelink.class.php) 用于获取页面位置和栏目名相关类 
index_article.htm 频道页模板 
list_article.htm 列表页模板 
article_article.htm 内容页模板

首先我們來修改dedecms的核心,(以下我說的檔名統一用5.0版,你可以對應上面我列出的文件一一查看新版對應的各檔) 

在inc_typelink.php類別裡Ctrl F查找"function GetPositionLink" 在GetPositionLink()函數下入以下函數 

這個函數用於取得目前頁面的位置資訊 

#例如欄位1 _欄2 

以下為引用的內容: 

程式碼如下:

/* 
* 得到当前页的位置,主要用在页面title中 
* $typeid 栏目id 
* &$info 引用传值 
* $SplitSymbol 各栏目之间的分割符 
* 排序 desc:栏目二_栏目一 ,asc:栏目一_栏目二 
*/ 
function getPosition($typeid,&$info,$SplitSymbol='_',$orderby='desc'){ 
if (empty($typeid)) return false; 
$this->dsql->SetQuery("Select ID,reID,typename From jyk_arctype where ID='".$typeid."'"); 
$infos = $this->dsql->GetOne(); 
$symbol = empty($info)?"":$SplitSymbol; 
if ($orderby=='desc'){ 
$info = $info.$symbol.$infos['typename']; 
} 
else{ 
$info = $infos['typename'].$symbol.$info; 
} 
if ($infos['reID']!='0'){ 
$this->getPosition($infos['reID'],&$info,$SplitSymbol,$orderby); 
} 
}

如圖: 

dedecms 清單頁標題怎麼修改

接下來再在解析清單頁,內容頁的類別裡加入相關程式碼, 

在inc_archives_view.php 類別裡查找$this->Fields['position'] 在這一行下面加入以下程式碼 

#程式碼如下:

$this->TypeLink->getPosition($this->Fields['typeid'],&$this->Fields['position2'],"_");

在inc_arclist_view.php 類別裡同樣查找$this->Fields['position'] 在他下面加入以下程式碼 

#程式碼如下:

$this->TypeLink->getPosition($typeid,&$this->Fields['position2'],"_");

好了,現在我們在模板裡呼叫 

在list_article.htm和article_article.htm的title標籤裡用{dede:field name='position2'/} 呼叫 

如圖 

dedecms 清單頁標題怎麼修改

註:頻道頁無需用這樣方法呼叫,雖然也可以得到頻道名稱,但用{dede:field name='typename'/}呼叫更加方便,也不需要修改inc_arcpart_view.php類別 

實現效果如下: 

dedecms 清單頁標題怎麼修改

O了,加上這篇文章,修改織夢系統使其實現"文章名稱_專欄1_欄位2_網站名稱" 總共有4種不同的方法了,根據個人情況選擇吧, 

祝你的網站讓baidu,google收錄的更多,呵呵. 

後話: 

在開發這個功能時,發現dede像欄位資料表(平常不怎麼改動)都不緩存, 程式在用時都是即時連結資料庫查詢,就例如inc_typelink. php中都是直接sql查出來的,不禁感嘆phpcms在方面的處理要更優於dedecms, phpcms對平時不怎麼更改的數據都是直接緩存成php文件,雖然dedecms最新版5.5的生成速度還可以,但織夢的開發人員如果能更好的優化這些細節,那生成速度豈不會更加快.

以上是dedecms 清單頁標題怎麼修改的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn