dede currentstyle属性完美解决方案

所属分类: CMS教程 / dedecms 阅读数: 1664
收藏 0 赞 0 分享

问题一、dede让channelartlist标签支持currentstyle属性 完美解决

打开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'] = '';
}

网上找到的一般没有加$typeids[$i]['id'] ==$refObj->TypeLink->TypeInfos['topid']

添加这个后才能对二级栏目也起作用

调用方法:

{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}

如果是当前栏目则 li的class属性显示current,否则显示class='' ,也可以修改currentstyle='这里改为你需要的类名'。

也可以与arclist标签相结合使用,

这样调用:

{dede:channelartlist typeid='2' currentstyle='current'}
<dt ><a class='{dede:field.currentstyle/}' href='{dede:fieldname='typeurl'/}'>{dede:field name='typename'/}</a></dt>
{dede:arclist titlelen='42' row='10' currentstyle="<dd><a class='current' href='~typelink~'>~typename~</a></dd>"}
[field:array runphp='yes']
if(@me['currentstyle']){
@me = @me['currentstyle'];
}else{
@me = "<dd ><a href='{@me['arcurl']}'>{@me['title']}</a></dd>";
}
[/field:array]
{/dede:arclist}
{/dede:channelartlist}

问题二、织梦channel标签currentstyle样式无效不起作用

我们在用织梦系统制作网站时,经常会用到channel标签来调子栏目。但是,很多朋友会遇到这种情况在使用channel标签来调子栏目的时候,指定 “type=son typeid=x” 发现currentstyle无效。今天笔者就跟大家分享一下解决方法。

1、解决channel标签currentstyle样式无效不起作用的错误方法

代码如下:

{dede: type='son' typeid='12' currentstyle="<li><a href='~typelink~' title="~typename~">~typename~</a> </li>"}   
<li><a title="[field:typename/]" href="[field:typelink/]">[field:typename/]</a></li>   
{/dede:channel}

解决的办法:把typeid=‘12’改为channel=‘1’ (文章模型id),首页除外,其他页面不需要指定typeid=x,会自动判断当前位置。

解决方法如下:

{dede: type='son' channel='1' currentstyle="<li><a href='~typelink~' title="~typename~">~typename~</a> </li>"}  
<li><a title="[field:typename/]" href="[field:typelink/]">[field:typename/]</a></li> 
{/dede:channel}

笔者经测试这种调用方式currentstyle根本是无效的,简直是无稽之谈。

2、解决channel标签currentstyle样式无效不起作用的正确方法

修改include/taglib/channel.lib.php

if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )

改成

if( ( $row['id']== $refObj->TypeLink->TypeInfos['id'] || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )

笔者经测试这种调用方式currentstyle有效,可以解决解决channel标签currentstyle样式无效不起作用的问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

织梦dedecms 忘记管理员后台密码的解决技巧

好多情况下,由于各种原因忘记了dedecms的密码,给大家带来了很大的麻烦,官方也没有出直接修改密码的东西可能是为了安全考虑吧。下面是最根本的方法,需要的朋友可以参考下。
收藏 0 赞 0 分享

取消dedecms 留言簿的验证码的方法

有时候感觉加了验证码,为互动带来了麻烦,如果垃圾广告很少的话可以取消,下面是具体的实现方法。
收藏 0 赞 0 分享

DEDECMS相关文章不相关的解决办法

关键字描述:相关 办法 解决 文章   " < row-> ss &rsquo DEDE的相关文章完全不相关,有朋友在DEDE官方放出根据TAG显示相关文章,也是很不错,可惜我在根据那边文章改DEDE代码后老是不行,可能是能力有限,当然也有可能是代
收藏 0 赞 0 分享

Dedecms默认模板用户评论扩展

关键字描述:评论 扩展 用户 模板 默认 " < > class 登录 Dedecms默认模板内容页评论处有个不足的地方,就是用户登录之后还会出现那个提示用户登录的框子,天涯这里给出了以下解决方案,如果喜欢的朋友可以拿去。 首先我们给内容页模板写上一段
收藏 0 赞 0 分享

DEDE取消发表文章时去掉验证码

关键字描述:dede 取消 发表文章 验证码 网站 关闭 后台 我的一个DEDECMS的网站里面所有的东西都是自己发布的,所以不需要验证码! DEDE默认是有验证码的,而且后台是不能关闭的,所以我们需要对代码动下手术拉! 今天,小青就在xkzzz谈一谈如何将d
收藏 0 赞 0 分享

【Arclist 标记】--Dedecms模板标签代码

关键字描述:标签 代码 模板 标记 表示 文档 < " 属性 orderby 这个标记是DedeCms最常用的一个标记,也叫自由列表标记,其中 hotart、coolart、likeart、ar
收藏 0 赞 0 分享

Dedecms实时更新热门关键字!

关键字描述:关键字 热门 更新 实时 标记 Copy code < subday num Dedecms实时更新热门关键字其实实现起来很简单,可是很多人不知道。 登录到dedecms后台 后台:自定义宏标记 添加一标记: 所属栏目:默认不用动 标记名称:ke
收藏 0 赞 0 分享

从零学DedeCms模板教程

关键字描述:教程 模板 < 模版 代码 标记 &mdash 制作 field:title/ DedeCms真是一个非常棒的系统,我从接触到现在一年时间再也没有理会其他CMS系统,推荐刚开始建站或准备换程序的朋友使用DedeCms系统。就像柏拉图说的:利剑已出,天下必乱
收藏 0 赞 0 分享

dedecms制作的admin5的评论效果

dedecms制作的admin5的评论效果 哪位朋友修改后了 请出个演示 以便让其他朋友提供参考 谢谢 声明:大家下载后请先在本地调式,确定无误后再使用。请备份原文件 把附件一覆盖到 主目录plus文件夹下; 把附件二覆盖到
收藏 0 赞 0 分享

dede解决两个标题之间的空格问题

关键字描述:空格 问题 之间 标题 解决 两个 显示 dedecms 一行 没有 问题: dedecms想在一行显示多个标题,比如两个或者三个,标题之间不需要空格,但是dedecms默认的一行显示的标题间有空格 修改./include/inc_arcpart_view.
收藏 0 赞 0 分享
查看更多