濮阳杆衣贸易有限公司

主頁 > 網(wǎng)站建設(shè) > 建站知識 > dedecms的文章和欄目的自定義字段的添加、調(diào)用以

dedecms的文章和欄目的自定義字段的添加、調(diào)用以

POST TIME:2017-11-13 00:03

在制作dedecms模板的過程中經(jīng)常會用到一些默認(rèn)dedecms沒有的字段,為此以dedecms以及以上的基礎(chǔ)上做了一個(gè)關(guān)于dedecms自定義字段的添加和自定義字段在dedecms模板中的調(diào)用方法。 在制作dedecms模板的過程中經(jīng)常會用到一些默認(rèn)dedecms沒有的字段,如:

這里的價(jià)格的調(diào)用,dedecms默認(rèn)是沒有這個(gè)標(biāo)簽的,那我們?nèi)绻麑?shí)現(xiàn)這個(gè)價(jià)格的調(diào)用呢? 在這里我們就需要使用到dedecms模型里的自定義字段了,下面我們以dedecms5.6為例介紹一下dedecms字段的添加和調(diào)用方法。(5.3版本后的所以版本的自定義字段的添加和調(diào)用相同) 首先我們打開網(wǎng)站后臺,點(diǎn)擊左側(cè)的“核心”,找到模型管理,這是就可以看到“內(nèi)容模型管理”的選項(xiàng)卡了。如圖:

點(diǎn)擊進(jìn)入“內(nèi)容模型管理”這是右側(cè)會顯示相應(yīng)的各個(gè)模型了,下面我們以文章模型為例講解自定義字段的添加。

點(diǎn)擊右側(cè)的更改小圖標(biāo)進(jìn)入文章模型的管理頁面。 這是我們會看到有“基本設(shè)置”和“字段管理”2個(gè)選項(xiàng)。我們選擇字段管理選項(xiàng)進(jìn)入。

進(jìn)入以后我

們會看到有個(gè)“添加新字段”的按鈕

點(diǎn)擊“添加新字段”按鈕進(jìn)入,這時(shí)看到的就是添加字段的界面了。 我們以上面講到的價(jià)格字段為例進(jìn)行一個(gè)實(shí)例操作的講解,如下圖:

全部添加好后點(diǎn)擊確定即可。然后我們進(jìn)入欄目管理,開始添加內(nèi)容,打開添加內(nèi)容頁面后我們會看到一個(gè)關(guān)于價(jià)格的內(nèi)容輸入框。

這個(gè)就是我們剛剛添加到關(guān)于價(jià)格的字段。 到這里就已經(jīng)講完關(guān)于dedecms自定義字段的一個(gè)添加過程,對于自定義字段的添加需要活學(xué)活用才能將這個(gè)功能的潛力完全發(fā)揮出來。下面講一下關(guān)于自定義字段在dedecms模板中的的調(diào)用。 我們以在首頁調(diào)用為例: Dedecms模板中默認(rèn)調(diào)用文章標(biāo)題的標(biāo)簽如下:

{dede:arclist row=6 titlelen=32} <li><a href="[field:arcurl/]">[field:title/]</a></li> {/dede:arclist} 

那么我們調(diào)用自定義字段就是在這個(gè)基礎(chǔ)上加以修改來實(shí)現(xiàn)的,我們還是以最開始提到的價(jià)格為例,具體標(biāo)簽表現(xiàn)為:

 {dede:arclist row=8 titlelen=32 addfields='jiage' channelid='1'} <li><span>¥[field:jiage/]起</span><a href="[field:arcurl/]">[field:title/]</a></li> {/dede:arclist} 

我們可以看到和第一個(gè)標(biāo)簽比較起來有2個(gè)不同的地方: 1, 在{dede:arclist row=6 titlelen=32}處多出了addfields='jiage' channelid='1' ,其中addfields='jiage'表示的是指定要獲得的字段 addfields='字段1,字段' channelid='1' 表示的是該字段是屬于哪個(gè)模型的,我們這里是指文章模型里添加到所以channelid=的值為1..。 確定文章模型的的ID是多少,我們里在文章模型管理里找到如下圖紅色框內(nèi)的就是模型ID.

2,還多出一個(gè)“[field:jiage/]”這個(gè)就是我們在添加字段時(shí)添加到字段名了。如果你需要在列表頁中的{dede:list}里調(diào)用自定義字段的話直接添加 “[field:jiage/]” 就可以了,但前提條件是你添加字段的時(shí)候必須選擇了該項(xiàng)參數(shù)。

以上就是關(guān)于dedecms自定義字段的添加和調(diào)用方法。 另外也可以通過在數(shù)據(jù)庫中添加字段,修改模板文件也能實(shí)現(xiàn)的。比如編輯欄目的時(shí)候,添加自己想要的欄目的自定義設(shè)置,比如添加欄目關(guān)鍵字等等。下面是具體的操作。第一步:我們要進(jìn)去mysql 數(shù)據(jù)庫里添加字段,自己命名好!比如我下面添加了一個(gè)欄目搜索關(guān)鍵字字段,當(dāng)然你字段可以自己新建,找到表dede_arctype (這個(gè)是欄目模型的數(shù)據(jù)庫表,前面是你安裝的表名)然后點(diǎn)擊

在點(diǎn)擊添加字段

添加字段

到這里數(shù)據(jù)庫字段添加好了。 接下來我們開始做后臺。大家寫找到后臺欄目管理模版! 要更改的 2個(gè) D:\www\dede\templets 模版:catalog_add.htm、catalog_edit.htm 下面就演示一個(gè)

然后添加 字段表單,這個(gè)一般大家都會的 我添加的代碼是:

<tr> <td height="65">欄目搜索關(guān)鍵字:</td> <td> <textarea name="lanmukeywrod" cols="70" rows="4" id="lanmukeywrod"  ><?php echo $myrow['lanmukeywrod']?></textarea> </td> </tr> 

這里注意了。表單的name 和id 要和添加的 mysql表字段一樣,不應(yīng)的話。還要多寫個(gè)取值代碼。一樣的話。默認(rèn)dedecms會自動(dòng)取的,然后我們做最后一部,把數(shù)據(jù)添加進(jìn)去。 大家找到: 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語句里面添加我們剛才的 字段進(jìn)去。也就是下面這個(gè)代碼

 $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' "; 

看到了 這個(gè)是添加的:`lanmukeywrod`='$lanmukeywrod',這個(gè)是更新欄目的。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')"; 

	

下面說下 如何調(diào)用到前臺

{dede:field.lanmukeywrod/}

在模版里調(diào)用這個(gè)就可以了,如果大家是別的字段也是一樣的調(diào)用,后面換成字段名稱就可以了。 另外關(guān)于自定義字段的完全刪除。 在修改網(wǎng)站的時(shí)候由于需要增加自定義字段,后來不需要的時(shí)候,發(fā)現(xiàn)自定義字段無法刪除。 于是找到了數(shù)據(jù)庫的dede_addonarticle這個(gè)表,看到了自定義字段,刪除后,在后臺的模型中看到自定義字段還存在,很多朋友都是做到這一步,就不知道如何做了。而且發(fā)布文章的時(shí)候還有錯(cuò)誤,提示自定義字段找不到,而無法發(fā)布文章。 原來在dede_channeltype這里面也就是模型配置里面還存在這個(gè)自定義字段,進(jìn)入數(shù)據(jù)庫dede_channeltype表下,然后點(diǎn)擊瀏覽內(nèi)容,你會發(fā)現(xiàn)fieldset字段里面的內(nèi)容還存在這個(gè)自定義字段。 以下為引用的內(nèi)容:

<field:body itemname='文章內(nèi)容' type='htmltext' isnull='true' default='' rename='' page='split'/> <field:daima itemname="代碼" autofield="1" notsend="1" type="htmltext" isnull="true" islist="0" default="" function="" maxlength="" page=""> </field:daima> 只要我們刪除<field:你的字段></field>

這樣就可以了,問題解決了。



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
白城市| 凤冈县| 恩平市| 元谋县| 思茅市| 榆林市| 甘泉县| 莱州市| 夏邑县| 苍山县| 邢台市| 安岳县| 任丘市| 张家界市| 漳州市| 沾化县| 江油市| 略阳县| 龙陵县| 时尚| 平遥县| 丰镇市| 康保县| 盱眙县| 呼伦贝尔市| 金川县| 武夷山市| 内江市| 瑞金市| 万全县| 修文县| 武定县| 宁海县| 府谷县| 靖西县| 通化县| 屏山县| 古交市| 文登市| 庆元县| 合山市|