dedecms也提供頻道內(nèi)容模型自定義功能,可以根據(jù)自己的需求建立頻道模型,類似kingcms的自定義模塊。這篇文章不寫如何建立頻道內(nèi)容模型,寫寫在首頁或非自定義頻道內(nèi)容列表頁如果要調(diào)用里面的內(nèi)容使用的sql標(biāo)簽。
要使用sql標(biāo)簽,最基本的查看數(shù)據(jù)庫字段是一定要會(huì)的,特別是如果用自定義模型字段都是自己加的,不是系統(tǒng)默認(rèn)的。
先看下面這段調(diào)用的語句,我一行行解釋吧,這樣可能比較好理解。
{dede:sql sql= select
dede_addonevents.aid,
dede_addonevents.typeid,
dede_addonevents.events_place,
dede_addonevents.begin_date,
dede_addonevents.end_date,
dede_events.id,
dede_events.typeid,
dede_events.title,
dede_events.description,
dede_full_search.aid,
dede_full_search.typeid,
dede_full_search.url
from dede_addonevents , dede_events , dede_full_search
where dede_addonevents.aid=dede_events.id
and dede_events.id=dede_full_search.aid
order by dede_addonevents.aid desc limit 0, 4 }
[field:events_place/] [field:title function=cn_substr(@me,38)/] [field:description function=cn_substr(@me,38)/] [field:begin_date/] - [field:end_date /]
{/dede:sql}
dede_addonevents 和 dede_events 是自定義生成頻道之后自動(dòng)生成的表,默認(rèn)的系統(tǒng)中是沒有的。dede_full_search 這個(gè)表是存儲(chǔ)dedecms中所有文章或自定義頻道文章內(nèi)容的路徑的表,這里要調(diào)用url,一定是需要打開的。
dede_addonevents.aid,
dede_addonevents.typeid,
dede_addonevents.events_place,
dede_addonevents.begin_date,
dede_addonevents.end_date,
dede_events.id,
dede_events.typeid,
dede_events.title,
dede_events.description,
這幾個(gè)都是自定義表中需要調(diào)取的字段,在自定義頻道生成的時(shí)候dedecms系統(tǒng)會(huì)自動(dòng)加上.aid,.id,.typeid,這樣的id字段,以實(shí)現(xiàn)多表關(guān)聯(lián)查詢。
這部分from dede_addonevents , dede_events , dede_full_search就不詳細(xì)解釋了,就是調(diào)用的表名。
下面這個(gè)部分就是多表關(guān)聯(lián)查詢的條件語句了
where dede_addonevents.aid=dede_events.id
and dede_events.id=dede_full_search.aid
當(dāng)然是要id能匹配上調(diào)用的內(nèi)容才不出錯(cuò)。
order by dede_addonevents.aid desc limit 0, 4
這句就是數(shù)據(jù)顯示的倒序正序了,mysql支持limit 0, 4 這個(gè)設(shè)置起始位置非常方便。
[field:events_place/] [field:title function=cn_substr(@me,38)/] [field:description function=cn_substr(@me,38)/] [field:begin_date/] - [field:end_date /]
這個(gè)部分就是dedecms的標(biāo)簽了,自定義的時(shí)候會(huì)有字段名,跟系統(tǒng)默認(rèn)標(biāo)簽基本相近,方法也一致。標(biāo)簽問題查看系統(tǒng)的幫助就可以。
從這個(gè)語句可以看出,如果對(duì)dedecms的數(shù)據(jù)庫表和字段了解的夠清楚基本可以實(shí)現(xiàn)想調(diào)用什么數(shù)據(jù)就調(diào)用什么數(shù)據(jù)。以后有時(shí)間再看看可以不可以實(shí)現(xiàn)多個(gè)sql查詢。