Drupal 7自定义主菜单

时间:2011-05-13 23:37:12

标签: templates drupal drupal-7

我迫切需要帮助。我正在尝试在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>

1 个答案:

答案 0 :(得分:3)

您可以覆盖主题功能以修改生成的标记。

实现这一目标:

  1. 找到您正在呼叫的主题功能(应该是 theme_links__system_main_menu)。
  2. 将此功能的代码复制并粘贴到自定义主题功能中(可以 可以在phptemplate或自定义模块中完成)
  3. 自定义主题功能以使用divs代替ul li
  4. 请参阅官方Drupal文档:Overriding themable output“如何以Drupal方式更改HTML”部分