POST TIME:2018-08-09 00:57
在使用dedecms5.6時(shí)發(fā)現(xiàn)如果在內(nèi)容頁面調(diào)用相關(guān)文章,簡(jiǎn)單的使用dedecms arclist不能夠?qū)崿F(xiàn),但是arclist有一個(gè)字段keyword,如果把當(dāng)前文章的keyword調(diào)用出來,就能夠得到當(dāng)前相關(guān)文章的列表.我的 做法是對(duì)keyword附一個(gè)固定的值
{dede:arclist keyword=’relation’ row=’5′}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
如果是在終端頁面調(diào)用相關(guān)文章,就將keyword的值固定,其他的參數(shù)也都是可以用的,默認(rèn)的keyword值是當(dāng)前頁面得關(guān)鍵字,有興趣的可以去我網(wǎng)站看看 游戲聯(lián)盟114 可以對(duì)比下面相關(guān)文章的關(guān)鍵字和當(dāng)前頁面得關(guān)鍵字
具體的實(shí)現(xiàn)方式是:
1.修改include/arc.archives.class.php找到MakeOneTag($this->dtp, $this, ‘N’,$reltag);將其替換為
$reltag = explode(‘,’,$this->Fields['keywords']);
$reltag = $reltag[0];
MakeOneTag($this->dtp, $this, ‘N’,$reltag);
2.修改include/下的channelunit.func.php找到函數(shù)MakeOneTag函數(shù) MakeOneTag(&$dtp, &$refObj, $parfield=’Y’)在函數(shù)的最后加上一個(gè)參數(shù)
MakeOneTag(&$dtp, &$refObj, $parfield=’Y’,$reltag)
仔細(xì)看下有什么區(qū)別吧
在函數(shù)中找到
if(in_array($tagname,$alltags))
{
$filename = DEDEINC.’/taglib/’.$tagname.’.lib.php’;
include_once($filename);
$funcname = ‘lib_’.$tagname;
$dtp->Assign($tagid,$funcname($ctag,$refObj));
}
將其修改為
if(in_array($tagname,$alltags))
{
$filename = DEDEINC.’/taglib/’.$tagname.’.lib.php’;
include_once($filename);
$funcname = ‘lib_’.$tagname;
if($tagname == ‘arclist’){
foreach($ctag->CAttribute->Items as $key => $val){
if($key == ‘keyword’){
if($val==’Relation’){
$ctag->CAttribute->Items[$key]=$reltag;
}
}
}
}
$dtp->Assign($tagid,$funcname($ctag,$refObj));
}
呵呵,去生成靜態(tài)吧,不要忘記了 keyword=’relation’ relation 不要變哦,變了可就調(diào)不出來了,有問題就問吧