2011-05-13 161 views
3

我非常需要幫助。我試圖在Drupal 7中自定義主菜單(僅),以便它適合我的blueprintcss需求。我試圖在文檔中找到答案,但沒有直接的例子,這使得它有點困難。Drupal 7自定義主菜單

基本要求是讓其他菜單(導航等)不受主菜單樣式的影響。

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> 

回答

3

您可以覆蓋主題功能來修改生成的標記。

要做到這一點:

  1. 找到您所呼叫的主題功能(須 theme_links__system_main_menu)。
  2. 複製此功能的代碼粘貼到一個自定義主題功能(可以 在phptemplate或自定義模塊來完成)
  3. 自定義您的主題函數使用divs代替ul li

見官方的Drupal文檔:Overriding themable output「如何更改HTML Drupal方式」部分