世界上怎么可能?我发誓,我读了相当于三本百科全书的书,却毫无用处。我已经尝试过区域、page.tpl.php 和块内的解决方案。他们都没有给我我需要的东西......而且我知道还有很多其他人也需要这个!
我得出的结论是,我想打印出 page.tpl.php 中的菜单......所以请不要使用块解决方案。
我希望能够循环主菜单链接(和子菜单)并重写输出,以便没有默认的 Drupal 类标记。我发现的最接近的是这个例子:
<?php if (is_array($primary_links)) : ?>
<ul id="sliding-navigation">
<?php foreach ($primary_links as $link): ?>
<li class="sliding-element"><?php
$href = $link['href'] == "<front>" ? base_path() : base_path() . drupal_get_path_alias($link['href']);
print "<a href='" . $href . "'>" . $link['title'] . "</a>";
?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
正如您所看到的,链接正在使用自定义 UL 和 LI 类重新打印......这太棒了!但是,没有打印任何子项。我如何扩展此代码以使所有孩子都成为列表的一部分?注意:我不希望孩子只出现在其父页面上,他们必须始终存在。不然我规划的下拉菜单就没啥用了。
我真诚地感谢您减轻了我巨大的头痛!
一旦到达 page.tpl,就很难影响输出 - 您最好寻找 template.php 函数。
这是我用来更改主要链接类别的一个:
function primary_links_add_icons() {
$links = menu_primary_links();
$level_tmp = explode('-', key($links));
$level = $level_tmp[0];
$output = "<ul class=\"links-$level\">\n";
if ($links) {
foreach ($links as $link) {
$link = l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment']);
$output .= '<li class="sublevel">' . $link .'</li>';
};
$output .= '</ul>';
}
return $output;
}
然后在 page.tpl.php 中我这样称呼它:
<?php if ($primary_links) :?>
<?php print '<div id="menu">'; ?>
<?php print primary_links_add_icons(); ?>
<?php print '</div>'; ?>
<?php endif;?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)