有時(shí)候我們需要dedecms能夠調(diào)用指定文章的內(nèi)容,尤其是在建企業(yè)網(wǎng)站的時(shí)候,需要在首頁(yè)調(diào)用網(wǎng)站簡(jiǎn)介聯(lián)系我們什么的。今天,織夢(mèng)技術(shù)研究中心就給大家介紹兩種實(shí)現(xiàn)調(diào)用指定文章內(nèi)容的方法。
方法一:打開(kāi)include/inc_arcpart_view.php文件,在里面找到function ParseTemplet();這一個(gè)函數(shù)里面的如下代碼:
$this->dtp->Assign($tagid, $this->GetArcList($typeid,$ctag->GetAtt("row"),$ctag->GetAtt("col"),$titlelen,$infolen,$ctag->GetAtt("imgwidth"),$ctag->GetAtt("imgheight"), $ctag->GetAtt("type"),$orderby,$ctag->GetAtt("keyword"),$innertext, $ctag->GetAtt("tablewidth"),0,"",$channelid,$ctag->GetAtt("limit"),$ctag->GetAtt("att"), $ctag->GetAtt("orderway"),$ctag->GetAtt("subday"),$autopartid,$ctag->GetAtt("ismember") )
將里面的紅色的0改為
$ctag->GetAtt('arcid')
然后在incclude/inc/inc_fun_spgetarclist.php文件里面找到:
if($arcid!=0) $orwhere .= " And arc.ID<>'$arcid' ";
將這一句改為:
if($arcid!=0) $orwhere .= " And arc.ID='$arcid' ";
if($arcid==0) $orwhere .= " And arc.ID<>'$arcid' ";
然后就可以調(diào)用了,如在主頁(yè)中調(diào)用文章id為145的文章內(nèi)容,可以用如下代碼調(diào)用:
{dede:arclist arcid='145' row='5' col='1' titlelen='24' } [field:title/] [field:info/] {/dede:arclist}
這樣就只會(huì)調(diào)用到一個(gè)ID為145的文章,即始ROW設(shè)為5也沒(méi)有用,因?yàn)閺臄?shù)據(jù)庫(kù)里面只提出一條記錄來(lái), 但是現(xiàn)在還不能解析HTML語(yǔ)法,提出來(lái)的文章沒(méi)有版式。
方法二: 可以借助強(qiáng)大的LOOP萬(wàn)能標(biāo)簽來(lái)實(shí)現(xiàn)這一種需求,在首頁(yè)模板里面加入如下代碼:
{dede:loop table='dede_addonarticle' sort='aid' row='8' if='aid=524'} [field:body/] <hr> [field:body function="Html2Text(cn_substr('@me',200))" /]{/dede:loop}
注意下面的這一行:
{dede:loop table='dede_addonarticle' sort='aid' row='8' if='aid=524'}
其中有一個(gè)aid=524,代表要取文章列表的id為524的文章內(nèi)容,table='dede_addonarticle' 為所存文章的表 其中中間的這一行最重要:
[field:body function="Html2Text(cn_substr('@me',200))" /]
上面這一句有多種調(diào)用方式,如:
[field:body/]
將得到文章所有的內(nèi)容,不過(guò)濾HTML標(biāo)記;
[field:body function="(cn_substr('@me',200))" /]
只取內(nèi)容的前200個(gè)字符;
[field:body function="Html2Text(cn_substr('@me',200))" /]
取前200個(gè)字符并把HTML標(biāo)記過(guò)濾。
以上就是實(shí)現(xiàn)調(diào)用指定文章內(nèi)容的方法,大家可以自己研究一下!
|