dedecms頻道內(nèi)容模型自定義與sql標(biāo)簽應(yīng)用

字號:


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