dedecms三级栏目当前样式不生效
用到的开源项目:DedeCMS,artdialog
1下载includerar文件完成后,解压得到2个php文件和一个使用说明文件,将php文
件上传至系统的include目录。
2打开系统的include/commonfuncphp文件 找到 178-240行(function ShowMsg)。
3将该段替换为:
if($cfg_soft_lang=="utf-8"){
require_once(DEDEINC'/dedemsg_cmsjoy_utf8php');//引入自定义提示信息方法(utf)
}else if($cfg_soft_lang=="gb2312"){
require_once(DEDEINC'/dedemsg_cmsjoy_gb2312php');//引入自定义提示信息方法(gbk)
}else{
die("Unkonw soft_lang , please modify back!");
}
4配置对话框风格样式:
如果你的系统编码是utf-8则打开打开dedemsg_cmsjoy_utf8php找到20行将$skin的值改为可选皮肤(default |
aero | chrome | opera | simple | idialog | twitter | blue | black |
green)的值便可。
这个我是用js的方法实现的。
1、左侧的列表正常调取
2、建立一个隐藏的div,里面的内容是当前栏目的标题
3、取到隐藏div的内容,去左侧栏目比对,相同则增加响应的class
效果蛮好,而且不用修改dede的代码,js组件很方便用。
有案例可看,如果需要可以私信我,这里发网址容易被屏蔽。
贴出一些css和channelartlist
css部分:
<style>
type{dede:fieldid/}{ color:#b96704; font-weight:bold; background:#fff}
#dis{dede:fieldreid/},#dis{dede:fieldid/}{ display: block}
on{dede:fieldreid/},on{dede:fieldid/}{ font-weight:bold; color:#000}
</style>
这部分一定要放到模板页面,不能使用link来加入
--------------------------------------------------------------------------------------
channelartlist 循环部分
<ul>
{dede:channelartlist }
<li class="tenint"><a href='{dede:field name='typeurl'/}' class=" on{dede:fieldid/}">{dede:field name='typename'/}</a></li>
<ul class='autod' id="dis{dede:fieldid/}">
{dede:sql sql='Select from dede_arctype where reid =~id~'}
<li><a href="/plus/listphptid=[field:id/]" class="type[field:id/]">[field:typename /]</a></li>
{/dede:sql}
</ul>
{/dede:channelartlist}
</ul>
--------------------------------------------------------------------------------------
这个就可以实现二级 甚至三级的当前效果
0条评论