濮阳杆衣贸易有限公司

主頁 > 網(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
大埔县| 台北市| 六枝特区| 凤山市| 龙州县| 汨罗市| 高密市| 出国| 泸定县| 霍邱县| 太仆寺旗| 桃园市| 仙居县| 共和县| 兴隆县| 大渡口区| 晋城| 嘉荫县| 涟源市| 普兰县| 青海省| 安泽县| 丰县| 鸡西市| 凉城县| 固镇县| 泗洪县| 呼玛县| 北安市| 固安县| 宁晋县| 清流县| 陕西省| 宜良县| 惠安县| 双柏县| 高要市| 娱乐| 襄汾县| 宁阳县| 炉霍县|