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); } }
如圖:
接下來再在解析清單頁,內容頁的類別裡加入相關程式碼,
在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'/} 呼叫
如圖
註:頻道頁無需用這樣方法呼叫,雖然也可以得到頻道名稱,但用{dede:field name='typename'/}呼叫更加方便,也不需要修改inc_arcpart_view.php類別
實現效果如下:
O了,加上這篇文章,修改織夢系統使其實現"文章名稱_專欄1_欄位2_網站名稱" 總共有4種不同的方法了,根據個人情況選擇吧,
祝你的網站讓baidu,google收錄的更多,呵呵.
後話:
在開發這個功能時,發現dede像欄位資料表(平常不怎麼改動)都不緩存, 程式在用時都是即時連結資料庫查詢,就例如inc_typelink. php中都是直接sql查出來的,不禁感嘆phpcms在方面的處理要更優於dedecms, phpcms對平時不怎麼更改的數據都是直接緩存成php文件,雖然dedecms最新版5.5的生成速度還可以,但織夢的開發人員如果能更好的優化這些細節,那生成速度豈不會更加快.
以上是dedecms 清單頁標題怎麼修改的詳細內容。更多資訊請關注PHP中文網其他相關文章!