网站运营
位置:首页>> 网站运营>> dedecms5.6内容页面调用当前文章的相关文章解决办法

dedecms5.6内容页面调用当前文章的相关文章解决办法

 来源:站长家园 发布时间:2010-12-14 14:47:00 

标签:dedecms,内容

在使用dedecms5.6时发现如果在内容页面调用相关文章,简单的使用dedecms arclist不能够实现,但是arclist有一个字段keyword,如果把当前文章的keyword调用出来,就能够得到当前相关文章的列表.我的做法是对keyword附一个固定的值

复制代码

  1. {dede:arclist keyword='relation' row='5'}

  2.                         <li><a href="[field:arcurl/]">[field:title/]</a></li>

  3.                     {/dede:arclist}    


如果是在终端页面调用相关文章,就将keyword的值固定,其他的参数也都是可以用的,默认的keyword值是当前页面得关键字,有兴趣的可以去我网站看看 游戏联盟114 可以对比下面相关文章的关键字和当前页面得关键字

具体的实现方式是:
        1.修改include/arc.archives.class.php找到MakeOneTag($this->dtp, $this, 'N',$reltag);将其替换为

复制代码

  1. $reltag = explode(',',$this->Fields['keywords']);

  2.         $reltag = $reltag[0];

  3.         MakeOneTag($this->dtp, $this, 'N',$reltag);



         2.修改include/下的channelunit.func.php找到函数MakeOneTag函数 MakeOneTag(&$dtp, &$refObj, $parfield='Y')在函数的最后加上一个参数

复制代码

  1. MakeOneTag(&$dtp, &$refObj, $parfield='Y',$reltag)


仔细看下有什么区别吧
    在函数中找到

复制代码

  1. if(in_array($tagname,$alltags))

  2.         {

  3.             $filename = DEDEINC.'/taglib/'.$tagname.'.lib.php';

  4.             include_once($filename);

  5.             $funcname = 'lib_'.$tagname;

  6.             $dtp->Assign($tagid,$funcname($ctag,$refObj));

  7.         }



     将其修改为

复制代码

  1. if(in_array($tagname,$alltags))

  2.         {

  3.             $filename = DEDEINC.'/taglib/'.$tagname.'.lib.php';

  4.             include_once($filename);

  5.             $funcname = 'lib_'.$tagname;

  6.             if($tagname == 'arclist'){

  7.                 foreach($ctag->CAttribute->Items as $key => $val){

  8.                     if($key == 'keyword'){

  9.                         if($val=='Relation'){

  10.                             

  11.                             $ctag->CAttribute->Items[$key]=$reltag;

  12.                         }

  13.                     }

  14.                 }

  15.             }

  16.             $dtp->Assign($tagid,$funcname($ctag,$refObj));

  17.         }



呵呵,去生成静态吧,不要忘记了 keyword='relation'  relation 不要变哦,变了可就调不出来了,有问题就问吧

0
投稿

猜你喜欢

手机版 网站运营 asp之家 www.aspxhome.com