Drupal 7 自定义主菜单

发布于 2024-11-07 03:59:54 字数 1365 浏览 0 评论 0原文

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

I desperately need help. I am trying to customize main menu (only) in Drupal 7 so that it suits my blueprintcss needs. I tried to find the answer in the documentation, but there is no straightforward example for this, which makes it a bit difficult.

Basic requirement is to have other menus (navigation etc) not affected by the main menu styling.

My page.tpl.php includes this code:

<?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; ?>

The output shows:

<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>

Whereas the desired output should be something like this:

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

镜花水月 2024-11-14 03:59:54

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

要实现此目的:

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

请参阅官方 Drupal 文档:覆盖主题输出“如何以 Drupal 方式更改 HTML”部分

You can override the theme function to modify the generated markup.

To achieve this :

  1. Locate the theme function you are calling (shall be
    theme_links__system_main_menu).
  2. Copy and paste the code of this function into a custom theme function (could
    be done in phptemplate or custom module)
  3. Customise your theme function to use divs instead of ul li

See the offical Drupal documentation : Overriding themable output Section "How to change HTML the Drupal way"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文