以前用織夢(mèng)DEDECMS做二次開發(fā)時(shí)獲取附加表字段內(nèi)容都是通過runphp執(zhí)行SQL查詢獲得,最近看了看手冊(cè),發(fā)現(xiàn)一個(gè)非常簡(jiǎn)便的方法。
用arclist調(diào)用于附加表字段的方法:
方法一:
要獲取附加表內(nèi)容,必須符合兩個(gè)條件
1、指定 channelid 屬性(注意:channelid不是欄目id,而是自定義模型的id!)
2、指定要獲得的從表字段:addfields=’字段1,字段’
如:
{dede:arclist addfields=’video_description,video_id’ row=’8′ channelid=’3′}
[field:video_description /] – [field:video_id /]
{/dede:arclist}
其中addfields=’video_description,video_id’是附加表中的兩個(gè)字段。除指定的附加表字段外,其它底層字段如arcurl,title,infos等均能正常調(diào)用。
同樣,dede:list標(biāo)簽也可調(diào)取附加表字段,和arclist不同的是不用指定channelid,因?yàn)橄到y(tǒng)能自動(dòng)判斷。
調(diào)用格式如下:
{dede:list addfields=’video_description,video_id’ pagesize=’8′}
[field:video_description /] – [field:video_id /]
{/dede:list}
注意:取出的是附加表中所有記錄的相應(yīng)字段。
方法二:
DedeCms在dede:arclist標(biāo)簽如何調(diào)用附加表內(nèi)容(其他標(biāo)簽一樣適用)
代碼如下:
{dede:arclist titlelen='26' row='20' orderby='id'}
[field:id runphp="yes"]
$dsql = new DedeSql(false);
$a="SELECT * FROM dede_addongame_tg where aid=@me";
$arcRow = $dsql->GetOne($a);
@me='url="'.$arcRow[sptype].'" leixing="'.$arcRow[model];
[/field:id]
{/dede:arclist}
可以根據(jù)列表中每一條記錄的不同id來獲取另外一個(gè)表中某條記錄的內(nèi)容。