POST TIME:2017-11-13 00:26
制作網(wǎng)站主頁(yè)、頻道封面的時(shí)候,如果只是把某個(gè)欄目最新或者按特定排序方式的文檔無選擇的讀出來,是存在很大不足的,還好織夢(mèng)DedeCMS給用戶提供了自定義文檔屬性功能,使用自定義屬性之后,只要給arclist標(biāo)記加上att='自定義屬性的ID'的屬性,然后在發(fā)布的時(shí)候?qū)m合的文檔選擇專門的屬性,那么使用arclist的地方就會(huì)按用戶的意愿顯示指定的文檔。
不過使用織夢(mèng)DedeCMS自定義文檔屬性,也有比較尷尬的時(shí)候,比如織夢(mèng)DedeCMS默認(rèn)的自定義屬性不夠用,或者名稱不適用等,這些都需要用戶自己對(duì)自定義屬性進(jìn)行增加及刪除等操作,整理一篇織夢(mèng)dedecms自定義屬性增加及刪除方法的文章。具體的操作步驟如下:
在織夢(mèng)后臺(tái)左欄點(diǎn)擊“系統(tǒng)”;
選擇“系統(tǒng)”菜單下的“SQL命令行工具”;
輸入如下代碼:
insert into `dede_arcatt`(sortid,att,attname) values(9,'d','新自定義屬性');
alter table `dede_archives` modify `flag` set('c','h','p','f','s','j','a','b','d') default NULL;
選擇多行命令,點(diǎn)擊“確定”。
本操作是直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,操作之前請(qǐng)做好備份工作,以免誤操作造成損失。
代碼第1行:values(9,'d','新自定義屬性') 是根據(jù)我們需要自行定義的,其中9是sortid的值,是不可重復(fù)的,也就是每添加一個(gè)自定義屬性,sortid的值就應(yīng)該遞增到 10,11,12...,以此類推!
d是alt的值,是自定義屬性的標(biāo)記,與已存在的標(biāo)記符號(hào)不能重復(fù),“評(píng)論”是中文名稱,是方便人們直觀地了解自定義屬性的含義的,可以根據(jù)需要改為其他名字,不影響調(diào)用。
代碼第2行:set ('c','h','p','f','s','j','a','b','d'),括號(hào)中的字母對(duì)應(yīng)已存在的標(biāo)記符號(hào)和您需要添加的標(biāo)記符號(hào),并按順序錄入,不得改變先后順序。例如,d排序第9位,則對(duì)應(yīng)第一行代碼中添加的自定義屬性"新自定義屬性"。
接下來是如何在首頁(yè)或者頻道頁(yè)面模板中調(diào)用的問題,跟其他自定義屬性的調(diào)用是一樣的,只需要在屬性flag中加入新增加屬性的字段名,就可以調(diào)用文檔中已經(jīng)勾選新增加自定義屬性名的文檔了。
修改和刪除自定義文檔屬性的方法和添加的方法大同小異,都是操作那兩個(gè)數(shù)據(jù)表。如果SQL語(yǔ)句不會(huì)寫的話,建議使用phpmyadmin這樣的面板,直接進(jìn)行數(shù)據(jù)庫(kù)操作。下面舉幾個(gè)使用SQL語(yǔ)句對(duì)織夢(mèng)DedeCMS自定義文檔屬性進(jìn)行操作的例子。
以添加一個(gè)名為“超級(jí)推薦”的文檔自定義屬性為例,表前綴為織夢(mèng)DedeCMS默認(rèn),自定義表前綴的對(duì)應(yīng)修改:
添加“超級(jí)推薦”自定義屬性執(zhí)行以下SQL語(yǔ)句,意思是添加超級(jí)推薦[e]屬性:
insert into `dede_arcatt`(sortid,att,attname) values(9,'e','超級(jí)推薦');
alter table `dede_archives` modify `flag` set('c','h','p','f','s','j','a','b','e') default NULL;
修改“超級(jí)推薦”自定義屬性執(zhí)行以下SQL語(yǔ)句,意思是把滾動(dòng)[s]修改為"111":
UPDATE `dede_arcatt` SET `attname` = '111' WHERE CONVERT( `dede_arcatt`.`att` USING utf8 ) = 's' LIMIT 1 ;
刪除“超級(jí)推薦”自定義屬性執(zhí)行以下SQL語(yǔ)句,意思是刪除超級(jí)推薦[e]:
DELETE FROM ` dede_arcatt`WHERE CONVERT(dede_arcatt`,`att`USING utf8)+`e`LIMIT 1;