在使用dede
網站建設中,我們經常遇到調用文章某字段的內容,應該怎么做呢? 我們下面來了解一下。
基本語法:
{dede:arclist typeid='' row='' col='' titlelen='' infolen=''
imgwidth='' imgheight='' listtype='' orderby='' keyword=''}
底層模板(InnerText)
{/dede:arclist}
在我這幾天做模板的過程中,發現主要問題出在“底層模板(InnerText)”
我們在做模板的時候,特別是列表頁,或者自己定義的一個封面頁面的時候。
在底層模板,只能調用,
底層模板字段:
ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),writer,shorttitle,memberid
pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,
arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),
textlink,typelink,imglink,image
這些字段,但是在這里是沒有比較重要的幾個字段,比如關鍵字,作者,特別是軟件等級。讓人非常郁悶啊。
我覺得如果可以改源代碼,應該就可以把這個問題解決的,但是不清楚具體是那個文件,那個函數,有知道的朋友,可以提醒一下不?
上面是我在學習過程中遇到的一些問題,晚上21:55分,通過各位朋友的提醒,我找到了一些規律。
就以軟件頻道的等級(softrank)這個字段為例,我們在使用{dede:arclist}這個標簽的時候,是不能調用這個字段的,那我們要如何修改才能讓他能夠調用例如softrank,keyword,writer等等一些我們想調用的字段呢。我在這里舉例一個softrank。下面是具體的操作方法。
1、首先要找到{dede:arclist}這個標簽對應的文件源代碼,通過later提醒,找到了,就是文件inc_fun_SpGetArcList.php,你打開后,比如搜索softrank你會發現搜到不到,因此我們就調用不到softrank了,那我們自己怎么加呢。
我們仔細看一下會發現,所有的能調用的字段,都是通過這段sql語句實現的。
$query = "Select arc.ID,arc.title,arc.iscommend,arc.color,arc.typeid,
arc.ismake,arc.description,arc.pubdate,arc.senddate,arc.arcrank,arc.click,
arc.money,arc.litpic,arc.writer,arc.shorttitle,arc.memberid,arc.vote,arc.postnum,arc.lastpost,arc.keywords,
tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,
tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,st.softrank
$addField
from dede_archives arc
left join dede_arctype tp on arc.typeid=tp.ID
left join dede_addonsoft st on arc.ID=st.aid
$addJoin
where $orwhere $ordersql $limitsql";
大家仔細看一下,我這段代碼和你們有什么區別,多了一個arc.keywords和st.softrank,但這樣加了還不行,先講一下keywords是怎么添加的,要在下面的代碼中找到
$row['info'] = $row['description'];
然后在下面或者上面加入下面的代碼,
$row['keyword'] = $row['keywords'];
這樣keyword就能夠在{dede:arclist}標簽里面調用了,如何調用呢,很簡單[field:keyword]
現在明白了吧。
那么我再講一下softrank這個字段怎么調用的呢,這里比較麻煩,沒有keyword這么簡單,加了就可以了,因為keyword和其他字段一樣都是在dede_archives這張表里的,但是softrank你會發現不是在這個表里的,他是在dede_addonsoft這種表里的,因此就比較麻煩了,那么還要如何操作呢,看上面那段SQL語句里面,我特別放大了,那段代碼left join dede_addonsoft st on arc.ID=st.aid,最后一步如何操作呢。
同樣在下面的代碼中找到
$row['info'] = $row['description'];
然后在下面或者上面加入下面的代碼,
$row[softrank] = $row[softrank];
這樣softrank就能夠在{dede:arclist}標簽里面調用了,如何調用呢,很簡單
[field:softrank function='GetRankStar(@me)'/]
大功告成!!!以后想調用什么字段隨便你自己調用了,方法和上面一樣。那么{dede:arclist}這個標簽就比較實用了。