簡體   English   中英

如何在Drupal 7中修改系統輔助菜單的輸出標記?

[英]How do I modify output markup for system secondary menu in Drupal 7?

我想修改登錄后出現的Drupal 7中二級菜單的結構。二級導航顯示“我的帳戶”和“注銷”鏈接。 默認情況下,它呈現為:

<h2 class="element-invisible">Secondary Menu</h2>
<ul id="secondary-menu-links" class="links inline clearfix">
    <li class="menu-2 first">
        <a href="/user">My account</a>
    </li>
    <li class="menu-15 last">
        <a href="/user/logout">Log out</a>
    </li>
</ul>

我的主題中生成此菜單的代碼是:

<?php print theme('links__system_secondary_menu', array(
    'links'         => $secondary_menu,
    'attributes'    => array(
        'id'        => 'secondary-menu-links',
        'class'     => array('links', 'inline', 'clearfix'),
    ),
    'heading'       => array(
        'text'      => t('Secondary Menu'),
        'level'     => 'h2',
        'class'     => array('element-invisible'),
    ),
)); ?>

我如何輸出以下標記而不是上面列出的標記?

<li class="secmenusep"><span>|</span></li>
<li class="menu-2 secnav_account">
    <a href="/user">My account</a>
</li>
<li class="secmenusep"><span>|</span></li>
<li class="menu-15 secnav_logout">
    <a href="/user/logout">Log out</a>
</li>

我要刪除h2和ul,並添加兩個帶有管道分隔符的其他li標簽,並為每個添加一個唯一的類。

非常感激你的幫助。

您可以通過定義鏈接的適當主題來為輔助菜單實現此自定義HTML。 由於links__system_secondary_menu[base hook]__[context]形式的主題掛鈎模式,因此您可以使用YOURTHEME_links__system_secondary_menu在主題中輕松實現此輔助菜單的主題定義。

在主題的template.php內,可以放置以下代碼,該代碼完全符合您的要求:

function YOURTHEME_links__system_secondary_menu(&$variables)
{
    $output = '';
    $extra_classes = array(
        'user' => 'secnav_account',
        'user/logout' => 'secnav_logout',
    );

    foreach ($variables['links'] as $item => $link) {
        $classes = array($item);

        if (isset($extra_classes[$link['href']])) {
            $classes[] = $extra_classes[$link['href']];
        }

        $output .= '<li class="secmenusep"><span>|</span></li>';
        $output .= sprintf(
            '<li class="%s">%s</li>', implode(' ', $classes), l($link['title'], $link['href']));
    }

    return $output;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM