濮阳杆衣贸易有限公司

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

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

POST TIME:2017-11-13 00:03

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

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

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

點擊右側的更改小圖標進入文章模型的管理頁面。 這是我們會看到有“基本設置”和“字段管理”2個選項。我們選擇字段管理選項進入。

進入以后我

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

點擊“添加新字段”按鈕進入,這時看到的就是添加字段的界面了。 我們以上面講到的價格字段為例進行一個實例操作的講解,如下圖:

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

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

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

那么我們調(diào)用自定義字段就是在這個基礎上加以修改來實現(xiàn)的,我們還是以最開始提到的價格為例,具體標簽表現(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} 

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

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

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

在點擊添加字段

添加字段

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

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

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

這里注意了。表單的name 和id 要和添加的 mysql表字段一樣,不應的話。還要多寫個取值代碼。一樣的話。默認dedecms會自動取的,然后我們做最后一部,把數(shù)據(jù)添加進去。 大家找到: 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')"; 

	

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

{dede:field.lanmukeywrod/}

在模版里調(diào)用這個就可以了,如果大家是別的字段也是一樣的調(diào)用,后面換成字段名稱就可以了。 另外關于自定義字段的完全刪除。 在修改網(wǎng)站的時候由于需要增加自定義字段,后來不需要的時候,發(fā)現(xiàn)自定義字段無法刪除。 于是找到了數(shù)據(jù)庫的dede_addonarticle這個表,看到了自定義字段,刪除后,在后臺的模型中看到自定義字段還存在,很多朋友都是做到這一步,就不知道如何做了。而且發(fā)布文章的時候還有錯誤,提示自定義字段找不到,而無法發(fā)布文章。 原來在dede_channeltype這里面也就是模型配置里面還存在這個自定義字段,進入數(shù)據(jù)庫dede_channeltype表下,然后點擊瀏覽內(nèi)容,你會發(fā)現(xiàn)fieldset字段里面的內(nèi)容還存在這個自定義字段。 以下為引用的內(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
眉山市| 金塔县| 伊通| 铜陵市| 富顺县| 新野县| 来安县| 泰顺县| 浮山县| 涞水县| 大港区| 静宁县| 宣汉县| 井冈山市| 汉中市| 新巴尔虎左旗| 阳曲县| 武定县| 抚松县| 东兴市| 梁河县| 二连浩特市| 石嘴山市| 高要市| 平遥县| 建湖县| 同仁县| 鄯善县| 融水| 怀仁县| 尉犁县| 蓬安县| 玉门市| 政和县| 荥阳市| 江安县| 阿城市| 达州市| 阿尔山市| 马边| 青冈县|