dede currentstyle属性完美解决方案
思韵闪耀
2018-12-15
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标签(详见:http://www.ifreew.com/a/ym/Dedecms/9191.html)相结合使用,
这样调用:
{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样式无效不起作用的问题。


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

热门资讯

dedecms升级CKEdit... 下载最新版本的 CKEditor:https://ckeditor.com/ckeditor-4/d...
dede织梦系统之解决自动跳转... 下面介绍如何解决dede织梦系统之解决自动跳转install/index.php的问题 打开网站目录...
织梦后台自带采集无法采集htt... 我们在用织梦后台自带的采集时发现织梦采集是不能完全兼容采集https的目标站的,现在我们来把它完善使...
织梦系统中 @me 实现原理及... 相信很多朋友都遇到过织梦系统dedecms里面的 @me 了吧。 例如,在织梦模板list_arti...
Dedecms如何批量修改文章... 批量修改dedecms时间的方法,语句:update dede_archives set sendd...
织梦ckplayer视频播放器... kplayer视频播放器介绍: CKplayer,其全称为超酷flv播放器,它是一款用于网页上播放视...
dedecms后台管理员密码重... 织梦cms建站系统是目前最流行的门户网站建站系统,功能强大,易于操作。不过经常有站长朋友和我一样,忘...
织梦DedeCms 5.7全站... 1、去除织梦后台登陆页面广告 登陆后台-模块-文件管理器。路径/dede/templets/logi...
织梦dedecms多张默认缩略... 织梦dedecms文章列表是可以调用文章内图片做缩略图的,如果文章内没有缩略图时,就会调用织梦默认缩...
织梦生成报错Fatal err... 从字面意思上看是内存资源被耗尽,内存不足了。 但是在织梦上那是因为文章内容有大量html代码引起的致...