php,{dede:channel type='top'},[field:name/], {dede:list typeid='[field:id/]'},[field:name/], {/dede:list},{/dede:channel},
`,,在这个示例代码中,我们使用了
GetTopId`函数来获取当前栏目的顶级栏目ID,并通过判断ID是否相同来实现高亮效果。 在织梦CMS中,实现CHANNELARTLIST三级栏目调用顶级栏目高亮显示的方法主要依赖于对模板代码的调整和PHP运行代码的使用,以下是详细的步骤和方法:
方法一:使用typeid判断
1、打开include/taglib/channelartlist.lib.php文件:找到以下代码行:
“`php
$tpsql = " reid=’$typeid’ AND ispart<>2 AND ishidden<>1 ";
“`
修改为:
“`php
if($type==’son’) {
$typeid = ( !empty($refObj>TypeLink>TypeInfos[‘id’]) ? GetTopid($refObj>TypeLink>TypeInfos[‘id’]) : 0 );
$tpsql = " reid=’$typeid’ AND ishidden<>1 ";
} else {
$tpsql = " reid=’$typeid’ AND ispart<>2 AND ishidden<>1 ";
}
“`
2、打开include/taglib/channel.lib.php文件:找到以下代码行:
“`php
if($type==’son’ && $reid!=0 && $totalRow==0
“`
修改为:
“`php
if($type==’son’ && $reid!=0 && $totalRow==0 && $noself==”)
“`
3、后台设置:在后台系统其它选项中,确保模板引擎禁用标签去掉PHP。
4、调用代码:在模板文件中添加以下代码:
“`html
<ul>
{dede:field name=’typename’ runphp=’yes’}
if(@me == "织梦模板") @me = " class=’current’";else @me = "";
{/dede:field}
<li><a href='[field:typeurl/]’>[field:typename/]</a></li>
<ul>
{dede:channel type=’son’ noself=yes}
<li [field:id runphp=yes](@me==$GLOBALS[‘thisid’]? @me=’ class="current2"’:@me=”;[/field:id]><a href='[field:typelink /]’ title='[field:typename/]’>[field:typename/]</a></li>
{/dede:channel}
</ul>
{/dede:channelartlist}
</ul>
“`
方法二:使用栏目名称判断
1、在前台树状代码中添加判断逻辑:在dl
标签中加入判断条件,如果typename
等于本栏目名字,则添加class="current",否则为空:
“`html
<dl{dede:field name=’typename’ runphp=’yes’}if(@me == "织梦模板") @me = " class=’current’";else @me = "";{/dede:field}>
<dt>织梦模板</dt>
<dd>
<ul>
{dede:channel type=’son’ typeid=’2′}
<li>•<a href='[field:typeurl/]’>[field:typename/]</a></li>
{/dede:channel}
</ul>
</dd>
</dl>
“`
2、示例代码:
“`html
<dl{dede:field name=’typename’ runphp=’yes’}if(@me == "织梦源码") @me = " class=’current’";else @me = "";{/dede:field}>
<dt>织梦源码</dt>
<dd>
<ul>
{dede:channel type=’son’ typeid=’39’}
<li>•<a href='[field:typeurl/]’>[field:typename/]</a></li>
{/dede:channel}
</ul>
</dd>
</dl>
“`
相关问答FAQs
1、问:为什么栏目名称不能重复?
答:因为栏目名称重复会导致无法准确判断哪个是当前顶级栏目,从而影响高亮显示的效果,使用typeid判断可以避免这个问题,因为每个栏目的ID是唯一的。
2、问:如何确保栏目高亮显示效果正确?
答:确保栏目高亮显示效果正确的方法是在模板文件中正确添加判断逻辑,并确保PHP代码在include/taglib/channelartlist.lib.php和include/taglib/channel.lib.php文件中正确修改,需要在后台设置中禁用PHP标签。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。