dedecms当前栏目增加样式currentstyle

639 ℃

有两种方法,比较传统的方法是:
{dede:channel type='self' currentstyle="<li class='thisclass'><a href='~typelink~'><span>~typename~</span></a></li>"}
<li><a href='[field:typeurl/]'><span>[field:typename/]</span></a></li>
{/dede:channel}
该标签局限性比较大,首先要注意currentstyle属性里的双引号需要全部换成单引号,否则执行会出错; 
该标签在不修改模板的情况下只能在channel里边用; 
再有,自己定义的标签在currentstyle里是无法显示的,比如[field:seotitle/]在currentstyle应该写成“~seotitle~”,但因为channel并不支持seotitle这个属性,所以该语句并不能实现。 
另一种方法是用channelartlist,但需要先修改模板,首先需要打开include\taglib\channelartlist.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'] = '';
}
加好了之后,使用方法是:
{dede:channelartlist typeid='2' currentstyle='current'}
<li class='{dede:field.currentstyle/}'><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></li>
。。。
{/dede:channelartlist}
这种方法的好处是不用加“~typename~”之类的标签,可以直接套用channelartlist的标签; 
上边的代码中,class=’{dede:field.currentstyle/}’在非当前栏目的情况下,会输出为:class=”“,在当前栏目下会输出为:class=”current”,然后就可以在current中添加样式了,如果想要把这个clss换一个名字,如想改成test,需要把“{dede:channelartlist typeid=’2’ currentstyle=’current’}”改成“{dede:channelartlist typeid=’2’ currentstyle=test}”,同时,模板中的 ‘current’也需要改成’test’。

dede织梦模板后台模块管理空白不显示的解决方法

js获取当前li标签的父级、子级、兄弟级

dede织梦模板嵌套调用与当前文章关键词相同的文

dedecms {dede:datalist}标签下,if语句的运用!{dede:

dede二次开发:无子栏目时显示同级栏目的问题

标签: channel, currentstyle, dede采集, li, span

上面是“dedecms当前栏目增加样式currentstyle”的全面内容,想了解更多关于 织梦cms 内容,请继续关注web建站教程。

当前网址:https://m.ipkd.cn/webs_747.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

javaScript设置定时器清除定时器
js利用includes判断某个值数组中是否存在
js语法中window.location.replace和window.location.href有什么区别
做网站SEO最难的是什么
获取dede织梦cms当前栏目的顶级栏目名称