"景先生毕设|www.jxszl.com

织梦dedecms使用channelartlist标签显示當前文章高亮

2022-10-29 16:28编辑: www.jxszl.com景先生毕设
在织梦系统中的artlist有时候需要当前文章高亮,或者和channelartlist标签套用实现当前栏目高亮和当前文章高亮,就可以通过此方法实现:
首先实现artlist当前文章高亮:

打开include aglibarclist.lib.php


 更多精彩就在: 51免费论文网|www.jxszl.com 
$channelid=$ctag->GetAtt(channelid);
下增加:
$currentstyle=$ctag->GetAtt(currentstyle);

$tagid,$pagesize,$isweight
后增加
,$currentstyle

$noflag=,$tagid=,$pagesize=0,$isweight=N
后增加
,$currentstyle=

$row[textlink]="".$row[title]."";
下增加
if($currentstyle&&$row[id]==$arcid){
$currentstyle=str_replace(~typelink~,$row[filename],$currentstyle);
$row[currentstyle]=str_replace(~typename~,$row[title],$currentstyle);
}

模板调用:
I.{dede:arclisttitlelen=IVIIrow=I.0currentstyle="~typename~"}
II[field:arrayrunphp=yes]
IIIif(@me[currentstyle]){
IV@me=@me[currentstyle];
V}else{
VI@me="{@me[title]}";
VII}
VIII[/field:array]
IX{/dede:arclist}


如果和channelartlist搭配使用,方法如下:
打开include aglibchannelartlist.lib.php
找到
$pv->Fields[typeurl]=GetOneTypeUrlA($typeids[$i]);
在此行代码下方增加以下代码:
if($typeids[$i][id]==$refObj->TypeLink->TypeInfos[id]||$typeids[$i][id]==$refObj->TypeLink->TypeInfos[topid]){
$pv->Fields[currentstyle]=$currentstyle?$currentstyle:current;
}
else{
$pv->Fields[currentstyle]=;
}
网上找到的I.般没有加$typeids[$i][id]==$refObj->TypeLink->TypeInfos[topid]
添加这个后才能对II级栏目也起作用
调用方法:
{dede:channelartlisttypeid=IIcurrentstyle=current}
{dede:fieldname=typename/}
{/dede:channelartlist}
如果是当前栏目则li的class属性显示current,否则显示class=,也可以修改currentstyle=这里改为你需要的类名.
这样调用:
0I.{dede:channelartlisttypeid=IIcurrentstyle=current}
0II
0III
{dede:fieldname=typename/}

0IV
0V{dede:arclisttitlelen=IVIIrow=I.0currentstyle="
~typename~
"}
0VI
0VII[field:arrayrunphp=yes]
0VIII
0IXif(@me[currentstyle]){
I.0
I.I.@me=@me[currentstyle];
I.II
I.III}else{
I.IV
I.V@me="
{@me[title]}
";
I.VI
I.VII}
I.VIII
I.IX[/field:array]
II0
III.{/dede:arclist}
IIII
IIIII{/dede:channelartlist}



原文链接:http://www.jxszl.com/biancheng/dedecms/75092.html