【问题标题】:Drupal 7 custom main menuDrupal 7 自定义主菜单
【发布时间】:2011-05-13 23:37:12
【问题描述】:

我迫切需要帮助。我正在尝试在 Drupal 7 中自定义主菜单(仅),以使其适合我的 blueprintcss 需求。我试图在文档中找到答案,但没有直接的例子,这使得它有点困难。

基本要求是其他菜单(导航等)不受主菜单样式的影响。

我的 page.tpl.php 包含以下代码:

<?php if ($main_menu): ?>
<div class="span-9" id="topmenu">
<?php print theme('links__system_main_menu', array(
'links' => $main_menu,
'attributes' => array(
'id' => 'main-menu',
'class' => array('links', 'inline', 'clearfix'),
),
)); ?>
</div>
<?php endif; ?>

输出显示:

<div class="span-9" id="topmenu"> 
<ul id="main-menu" class="links inline clearfix">
 <li class="menu-151 first"><a href="/drupal/" title="">Home</a></li> 
 <li class="menu-152"><a href="/drupal/" title="">Contact Us</a></li> 
 <li class="menu-153 last"><a href="/drupal/" title="">About Us</a></li> 
</ul>
</div>

而所需的输出应该是这样的:

<div class="span-9" id="topmenu">
 <div class="span-3 menu-151"><a href="/drupal/" title="">Home</a></div>
 <div class="span-3 menu-152"><a href="/drupal/" title="">Contact Us</a></div>
 <div class="span-3 menu-153 last"><a href="/drupal/" title="">About Us</a></div>
</div>

【问题讨论】:

    标签: templates drupal drupal-7


    【解决方案1】:

    您可以覆盖主题函数来修改生成的标记。

    要实现这一点:

    1. 找到您正在调用的主题函数(应为 theme_links__system_main_menu)。
    2. 将此函数的代码复制并粘贴到自定义主题函数中(可以 在phptemplate 或自定义模块中完成)
    3. 自定义您的主题功能以使用divs 而不是ul li

    请参阅 Drupal 官方文档:Overriding themable output“如何以 Drupal 方式更改 HTML”部分

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      相关资源
      最近更新 更多