DeDeBIZ中,织梦dede:channel指定typeid子栏目调用currentstyle高亮无效的解决教程。
但在channelartlist中嵌套channel时,dede:channel指定typeid时currentstyle高亮会无效。
{dede:channelartlist typeid='top' row='4' currentstyle="display:block;background:#b044ff!important;"}
<h3 id="chk{dede:field name='id'/}"><a href="{dede:field name='typeurl'/}" title="{dede:field name='typename'/}"> {dede:field name='typename'/}</a></h3>
<ul class="flst f_cb" id="chk{dede:field name='id'/}_chkul" style="{dede:field.currentstyle/}">
{dede:channel type='son' currentstyle="<li><a href='~typelink~' title='~typename~' style='color:#ff6428!important;'>~typename~</a></li>"}
<li><a href="[field:typeurl/]" title="[field:typename/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
{/dede:channelartlist}前端的调用标签,就这样的嵌套标签,channel子栏目无法显示高亮的解决办法。
打开 /system/taglib/channel.lib.php 搜索
global $dsql;改为
global $dsql,$tid,$aid;$arr = $dsql->GetOne("SELECT typeid FROM `#@__arctiny` WHERE id='{$aid}' ");继续搜索
if (($row['id'] == $typeid || ($topid == $row['id'] && $type == 'top')) && $currentstyle != '') {改为
if (($row['id'] == $typeid || $row['id'] == $tid || $row['id'] == $arr['typeid'] || ($topid == $row['id'] && $type == 'top')) && $currentstyle != '') {完成,这样就可以显示高亮了。