DEDECMS實現欄目圖片介紹及簡介

dedecms是一個很好的開源cms,作爲一個cms來說,功能已經比較完善。但是用來做一些特定的網站,還需要一定的開發工作。

問題(也是很多人在羣裏問我的問題),在dedecms裏如何實現帶有圖片介紹和簡介的欄目信息,又不想大改程序。其實步驟很簡單,下面以dedecms4.0作例子。

基本思想:我們需要利用欄目表dede_arctype(前綴dede根據你的安裝設置而改變)的description(欄目簡介)這個字段,然後利用dedecms提供的runphp接口,用簡單的php編程實現。

步驟:

1、編輯欄目信息,在高級選項中,填入欄目描述,例如:lmlogo.jpg|||這是一個遊戲欄目。注意這段描述,實際上是兩部分內容,通過“|||”分開,前面的是欄目的圖片信息,後面是欄目的簡介。

2、dedecms在調用欄目的信息的時候,默認不調用description字段,因此我們需要修改源代碼,讓調用支持description字段。修改include/inc_arcpart_view.php文件,找到function GetOneType()函數,原文件爲: 

$row = $this->dsql->GetOne("Select ID,typedir,isdefault,defaultname,ispart,namerule2,typename,moresite,siterefer,siteurl,sitepath From #@__arctype where ID='$typeid'");

修改爲:

$row = $this->dsql->GetOne("Select ID,typedir,isdefault,defaultname,ispart,namerule2,typename,moresite,siterefer,siteurl,sitepath,description From #@__arctype where ID='$typeid'");

修改之後,就可以在模板中通過[field:description/]調用數據庫中description字段的值。

3、接下來要實現圖片信息和文字信息的分離,使用dedecms提供的runphp='yes'來實現簡單編程。代碼如下:

以下例子,只適合於類似“lmlogo.jpg|||這是一個遊戲欄目”這樣的欄目描述。

分離圖片信息:

 [field:description runphp='yes']
 $findme="|||";
 $mystring1=@me;
 $pos1 = stripos($mystring1, $findme);
 if($pos1>0) {
 @me=substr($mystring1,0,$pos1);}
 else{@me="";}
 [/field:description]

分離欄目簡介:

  [field:description runphp='yes']
 $findme="|||";
 $mystring1=@me;
 $pos1 = stripos($mystring1, $findme);
 if($pos1>0) {
 @me=substr($mystring1,$pos1+3,strlen($mystring1));}
 else{@me="";}
 [/field:description]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章