dedecms欄目修改的二次開發 增加欄目屬性
如何在dede欄目設定中新增自定義欄位 這個說法以前沒有見到到,很少有客戶會提出這樣的二次要求,今天織夢者在網上轉了一下看到了這樣的一篇文章轉過來與大家分享
鑑於這個教程沒人發過,網上搜索的人也比較多。所以就做了個。
比如我要新增:欄目圖片,和欄目關鍵字等。隨便你吧。好。我們現在開始做。
第一我們要進去mysql 資料庫裡新增欄位,自己命名好!比如我下面添加了一個欄目搜尋關鍵字欄位,當然你欄位可以自己新建,找到表dede_arctype (這個是欄目模型的資料庫表,前面是你安裝的表名,新手要注意,不要問我,我找不到這個表)
注意。這裡老鳥跳過
然後點選
圖片1
在點選新增欄位
圖片2
新增欄位
圖片3
到這裡資料庫欄位新增好了。
接下來我們開始做後臺。大家寫找到後臺欄目管理模版!
要更改的 2個 D:\www\dede\templets 模版:catalog_add.htm、catalog_edit.htm
下面就演示一個
圖片4
然後新增 欄位表單,這個一般大家都會的
我新增的程式碼是:
<tr>
<td height="65">欄目搜尋關鍵字:</td>
<td> <textarea name="lanmukeywrod" cols="70" rows="4" id="lanmukeywrod" class="alltxt" ><?php echo $myrow['lanmukeywrod']?></textarea>
</td>
</tr>
這裡大家注意了。表單的name 和id 要和新增的 mysql表字段一樣,不應的話。還要多寫個取值程式碼。一樣的話。預設dedecms會自動取的,然後我們做最後一部,把資料新增進去。
大家找到: D:\www\dede\catalog_edit.php
目錄可能和大家不一樣 也就是後臺 裡面的 catalog_edit.php,catalog_add.php
catalog_edit.php要改的地方有:
38行
$upquery = "Update `dede_arctype` set
issend=’$issend’,
sortrank=’$sortrank’,
typename=’$typename’,
typedir=’$typedir’,
isdefault=’$isdefault’,
defaultname=’$defaultname’,
issend=’$issend’,
ishidden=’$ishidden’,
channeltype=’$channeltype’,
tempindex=’$tempindex’,
templist=’$templist’,
temparticle=’$temparticle’,
namerule=’$namerule’,
namerule2=’$namerule2′,
ispart=’$ispart’,
corank=’$corank’,
description=’$description’,
keywords=’$keywords’,
moresite=’$moresite’,
`cross`=’$cross’,
`content`=’$content’,
`crossid`=’$crossid’,
`smalltypes`=’$smalltypes’
$uptopsql
where id=’$id’ ";sql語句裡面新增我們剛才的 欄位進去。也就是下面這個程式碼
$upquery = "Update `dede_arctype` set
issend=’$issend’,
sortrank=’$sortrank’,
typename=’$typename’,
typedir=’$typedir’,
isdefault=’$isdefault’,
defaultname=’$defaultname’,
issend=’$issend’,
ishidden=’$ishidden’,
channeltype=’$channeltype’,
tempindex=’$tempindex’,
templist=’$templist’,
temparticle=’$temparticle’,
namerule=’$namerule’,
namerule2=’$namerule2′,
ispart=’$ispart’,
corank=’$corank’,
description=’$description’,
keywords=’$keywords’,
moresite=’$moresite’,
`cross`=’$cross’,
`content`=’$content’,
`crossid`=’$crossid’,
`smalltypes`=’$smalltypes’,
`lanmukeywrod`=’$lanmukeywrod’
$uptopsql
where id=’$id’ ";看到了 這個是新增的:`lanmukeywrod`=’$lanmukeywrod’
這個是更新欄目的。catalog_add.php新增。也是同樣的辦法
更改地址有:63行和196行。也是同樣辦法。新增欄位資訊 到sql裡去
更改後的程式碼:63行:
$queryTemplate = "insert into `dede_arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype,
tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`,`lanmukeywrod`)
Values(‘~reid~’,’~topid~’,’~rank~’,’~typename~’,’~typedir~’,’$isdefault’,’$defaultname’,’$issend’,’$channeltype’,
‘$tempindex’,’$templist’,’$temparticle’,’default’,’$namerule’,’$namerule2′,’0′,’0′,”,”,’0′,”,”,’0′,’0′,’0′,”,”,’$lanmukeywrod’)";添加了 lanmukeywrod
196行:
$in_query = "insert into `dede_arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype,
tempindex,templist,temparticle,modname,namerule,namerule2,
ispart,corank,description,keywords,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`,`lanmukeywrod`)
Values(‘$reid’,’$topid’,’$sortrank’,’$typename’,’$typedir’,’$isdefault’,’$defaultname’,’$issend’,’$channeltype’,
‘$tempindex’,’$templist’,’$temparticle’,’default’,’$namerule’,’$namerule2′,
‘$ispart’,’$corank’,’$description’,’$keywords’,’$moresite’,’$siteurl’,’$sitepath’,’$ishidden’,’$cross’,’$crossid’,’$content’,’$smalltypes’,’$lanmukeywrod’)";
下面說下 如何呼叫到前臺
{dede:field.lanmukeywrod/}
在模版裡呼叫這個就可以了,如果大家是別的欄位也是一樣的呼叫,後面換成欄位名稱就可以了。
轉載:http://www.genban.org/news/dedecms-2281.html