素材abc - WWW.SUCAIABC.COM - psd素材 - 高清图片素材免费下载!
素材ABC > 教程 > 织梦教程 > 详细内容

织梦二开顶级栏目高亮

时间:2021-03-09 21:12所属栏目: 织梦教程来源:素材ABC 热度:

织梦模板的时候可能会有的页面设计写的有个性些,在菜单上不太调用全部栏目,所以顶级栏目高亮这块还是要换下思路。

比如我现在有个页面。菜单是

     首页---新闻---媒体---产品---招聘---关于

其中新闻和产品这两个菜单的样式写得不一样,有下拉菜单,而且结构样式都不同。。

所以我就换个方法,直接把简单粗暴把菜单写上去,然后在需要添加高亮样式的地方加入下方判断  cur为高亮样式。

首先修改/include/helpers/extend.helper.php  在最下方添加以下代码让它支持调用顶级栏目的信息

/*  获取顶级栏目相关信息
 *
 * @access    public
 * @param     string  $tid  栏目id
 * @param     string  $field栏目字段
 * @return    string
 */
if ( ! function_exists('getToptype'))
{
function getToptype($tid,$field)
{
global $dsql,$cfg_Cs;
if(!is_array($cfg_Cs))
{
require_once(DEDEDATA."/cache/inc_catalog_base.inc");
}
if(!isset($cfg_Cs[$tid][0]) || $cfg_Cs[$tid][0]==0)
{
$topid = $tid;
}
else
{
$topid = GetTopid($cfg_Cs[$tid][0]);
}
$row = $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id=$topid");
if($field=='id') return $topid;
if($field=='typename') return $row['typename'];//栏目名称
if($field=='typeurl') return GetOneTypeUrlA($row);//栏目链接
if($field=='typenamedir') return $row['typenamedir'];//栏目英文名称
if($field=='seotitle') return $row['seotitle'];//栏目SEO标题
if($field=='description') return $row['description'];//栏目描述
if($field=='content') return $row['content'];//栏目内容
}
}


判断当前栏目的顶级栏目ID是否为2,如果是则输出class=“cur”,否则为空

{dede:field.typeid function="gettoptype(@me,id)" runphp='yes'}if(@me==2) @me='class="cur"'; else @me='';{/dede:field.typeid}


使用示例

<li {dede:field.typeid function="gettoptype(@me,id)" runphp='yes'}if(@me==0) @me='class="cur"'; else @me='';{/dede:field.typeid}>首页</li>
 
<li {dede:field.typeid function="gettoptype(@me,id)" runphp='yes'}if(@me==1) @me='class="cur"'; else @me='';{/dede:field.typeid}>
    <div>新闻</div>
    <div>
        <li>下拉菜单</li>
        <li>下拉菜单</li>
        <li>下拉菜单</li>
        <li>下拉菜单</li>
        <li>下拉菜单</li>
    </div>
    <div>
        其他信息
    </div>
</li>
<li{dede:field.typeid function="gettoptype(@me,id)" runphp='yes'}if(@me==3) @me='class="cur"'; else @me='';{/dede:field.typeid}>媒体</li>
<li {dede:field.typeid function="gettoptype(@me,id)" runphp='yes'}if(@me==4) @me='class="cur"'; else @me='';{/dede:field.typeid}>
    <div>新闻</div>
    <div>
        <li>下拉菜单</li>
        <li>下拉菜单</li>
        <li>下拉菜单</li>
    </div>
    <div>
        其他信息
    </div>
      <div>
        其他信息
    </div>
</li>
 
<li{dede:field.typeid function="gettoptype(@me,id)" runphp='yes'}if(@me==5) @me='class="cur"'; else @me='';{/dede:field.typeid}>招聘</li>
<li{dede:field.typeid function="gettoptype(@me,id)" runphp='yes'}if(@me==6) @me='class="cur"'; else @me='';{/dede:field.typeid}>关于</li>


然后把菜单导航写成 模板页,在需要的地方调用