DEDE让文章的分类栏目也能显示到页面上去。我这里是从网络中找到的解决办法。但还没有经过测试。
————————————————————
当你用{dede:channel type='self}'标签时
如果是当前栏目 则不显示 有时我们的客户 会让我们 将当前栏目也显示 怎么办呢
如果 只用标签的话是不可能实现的 我们只有 修改dede系统文件 来达到目的
具体怎么实现呢 ?请看下面操作:
inc_typelink.php
第290-305行
if($typetype=="self" && $row['ID']=="$typeid"){
if($myinnertext!=''){
$linkOkstr = $myinnertext;
$row['typelink'] = $this->GetOneTypeUrl($row);
$linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);
$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
$likeType .= $linkOkstr;
}
}else{//非当前栏目
$row['typelink'] = $this->GetOneTypeUrl($row);
if(is_array($dtp2->CTags)){
foreach($dtp2->CTags as $tagid=>$ctag)
{ if(isset($row[$ctag->GetName()])) $dtp2->Assign($tagid,$row[$ctag->GetName()]); }
}
$likeType .= $dtp2->GetResult();
}
改成:
if($typetype=="self") {
$row['typelink'] = $this->GetOneTypeUrl($row);
if(is_array($dtp2->CTags)){
foreach($dtp2->CTags as $tagid=>$ctag)
{ if(isset($row[$ctag->GetName()])) $dtp2->Assign($tagid,$row[$ctag->GetName()]); }
}
$likeType .= $dtp2->GetResult();
}
这样再更新的你的栏目页就可以 显示当前栏目了
——————————————————————————————————
用self的时候让当前栏目也显示的修改方法
用{dede:channel type='self}'标签时
当前栏目不显示..估计是DEDE设计时候想让其显示其他颜色或者我们理解用法不恰当.
include目录里面
inc_typelink.php
第290-305行
找到并改.......成这样...(其实就是吧原来的注解了,加了段代码)
- /* //处理同级栏目中,当前栏目的样式
- if($typetype=="self" && $row['ID']=="$typeid"){
- if($myinnertext!=''){
- $linkOkstr = $myinnertext;
- $row['typelink'] = $this->GetOneTypeUrl($row);
- $linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);
- $linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
- $likeType .= $linkOkstr;
- }
- }else{//非当前栏目
- $row['typelink'] = $this->GetOneTypeUrl($row);
- if(is_array($dtp2->CTags)){
- foreach($dtp2->CTags as $tagid=>$ctag)
- { if(isset($row[$ctag->GetName()])) $dtp2->Assign($tagid,$row[$ctag->GetName()]); }
- }
- $likeType .= $dtp2->GetResult();
- }
- */
- //注解完成,修改开始
- if($typetype=="self" or $typetype=="top" or $typetype=="sun" or $typetype=="son") {//非当前栏目
- $row['typelink'] = $this->GetOneTypeUrl($row);
- if(is_array($dtp2->CTags)){
- foreach($dtp2->CTags as $tagid=>$ctag)
- { if(isset($row[$ctag->GetName()])) $dtp2->Assign($tagid,$row[$ctag->GetName()]); }
- }
- $likeType .= $dtp2->GetResult();
- }
- //修改完成
——————————————————————————————————————————
请教大家一个问题,就是我一直在问得,为什么我的首页导航 能显示,可是2级页面导航就不能显示了??
{dede:channel type='self' row='8'} <a href="~typelink~">~typename~</a> | {/dede}
修改当前栏目不显示现象
[size=2]当你用[color=red]{dede:channel type='self}'[/color]标签时如果是当前[u][color=red]栏目[/color][/u] 则不显示 有时我们的客户 会让我们 将当前[u][color=red]栏目[/color][/u]也显示 怎么办呢
如果 只用标签的话是不可能实现的 我们只有 修改dede系统文件 来达到目的
具体怎么实现呢 ?请看下面操作:
[color=red]inc_typelink.php[/color]
第[color=blue]290-305[/color]行
[/size][size=2][color=green]if($typetype=="self" && $row['ID']=="$typeid"){
if($myinnertext!=''){
$linkOkstr = $myinnertext;
$row['typelink'] = $this->GetOneTypeUrl($row);
$linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);
$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
$likeType .= $linkOkstr;
}
}else{//非当前[u][color=red]栏目[/color][/u]
$row['typelink'] = $this->GetOneTypeUrl($row);
if(is_array($dtp2->CTags)){
foreach($dtp2->CTags as $tagid=>$ctag)
{ if(isset($row[$ctag->GetName()])) $dtp2->Assign($tagid,$row[$ctag->GetName()]); }
}
$likeType .= $dtp2->GetResult();
}[/color]
改成:
[/size][size=2][color=indigo]if($typetype=="self") {
$row['typelink'] = $this->GetOneTypeUrl($row);
if(is_array($dtp2->CTags)){
foreach($dtp2->CTags as $tagid=>$ctag)
{ if(isset($row[$ctag->GetName()])) $dtp2->Assign($tagid,$row[$ctag->GetName()]); }
}
$likeType .= $dtp2->GetResult();
}[/color]
这样再更新的你的[u][color=red]栏目[/color][/u]页就可以 显示当前[u][color=red]栏目[/color][/u]了[/size]


