迷城网络 - 专注于中小企业Linux运维服务

当前位置: 迷城网络 > 建站程序 >

dedecms5.6在内容页面调用当前文章的相关文章的方

时间:2019-03-27 10:51来源: 作者: 点击:
在使用dedecms5.6时发现如果在内容页面调用相关文章,简单的使用dedecms arclist不能够实现,但是arclist有一个字段keyword,如果把当前文章的keyword调用出来,就能够得到当前相关文章的列表.我的

在使用5.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值是当前页面得关键字,有兴趣的可以去我网站看看 游戏联盟114 可以对比下面相关文章的关键字和当前页面得关键字

具体的实现方式是:
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 不要变哦,变了可就调不出来了,有问题就问吧


(责任编辑:迷城网络科技)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容