dede文章相干调用
在利用dedecms5.6时发现假设在内容页面调用相干文章,简略的利用dedecms arclist不可以完成,然而arclist有一个字段keyword,假设把以后文章的keyword调用进去,就可以失去以后相干文章的列表.我的做法是对keyword附一个固定的值
{dede:arclist keyword='relation' row='5'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
假设是在终端页面调用相干文章,就将keyword的值固定,其余的参数也都是可能用的,默许的keyword值是以后页面得要害字
可能对比下面相干文章的要害字和以后页面得要害字
详细的完成模式是:
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找到函数MakeOneTag函数
MakeOneTag(&$dtp, &$refObj, $parfield='Y')
在函数的最后加上一个参数
MakeOneTag(&$dtp, &$refObj, $parfield='Y',$reltag)
细心看下有什么区别吧
在函数中找到
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));
}
呵呵,去生成静态吧,不要遗记了 keyword=’relation’ relation 不要变哦,变了可就调不进去了