页脚中的 Drupal 导航

发布于 2024-12-28 11:05:34 字数 367 浏览 0 评论 0原文

在许多网站上,您会在页脚的列中看到包含所有链接的导航。但是,当您有许多链接时,您希望某些项目位于同一列中。 (示例:12 个项目,每个项目都有子项目显示在 6 列中)

您可以使用:

<?php print(render(menu_tree_output(menu_tree_all_data('main-menu')))); ?>

但是您会得到嵌套的 UL 元素。

有没有办法获取DIV中的所有链接? (不嵌套)

在 Drupal 中制作的示例: http://www.louvre.fr/

On many sites you see the navigation with ALL links in the footer, in columns. But when you have MANY links you want some items to be in the same columns. (example: 12 items each with sub-items to be shown in 6 columns)

You can use:

<?php print(render(menu_tree_output(menu_tree_all_data('main-menu')))); ?>

But then you get nested UL elements.

Is there a way to get all links in DIV's? (not nested)

Example made in Drupal:
http://www.louvre.fr/

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

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

发布评论

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

评论(2

北方的巷 2025-01-04 11:05:34

Ul 是由您的主题模板文件生成的。

您可以改为使用视图。我会在视图中生成列表。这允许我将输出格式化为 div 而不是 ul。

然后我会将这个视图做成一个块,然后将其放置在页脚上。

如果不恢复的话希望这会有所帮助。

Ul is being generated by your theme template files.

You can instead use views. I would generate the list in views. This allows me to format the output as div intead of ul.

This view I would then make it a block and then place it on the footer.

Hope this helps if not revert back.

请恋爱 2025-01-04 11:05:34

我编写了一些代码来实现我想要的功能。在页脚的列中显示导航(2 级)。如果有人有更好的方法来做到这一点,请告诉我!

$my_menu = menu_tree_all_data('main-menu');
$my_array = array();

foreach($my_menu as $my_item){
    $my_array[] = l(t($my_item['link']['link_title']), $my_item['link']['link_path'], array('attributes' => array('class' => array('level-1'))));
    foreach($my_item['below'] as $my_below){
        $my_array[] = l(t($my_below['link']['link_title']), $my_below['link']['link_path'], array('attributes' => array('class' => array('level-2'))));
    }
}

$my_totalcount = count($my_array);
$my_count = 0;
$my_column = 1;
$my_columns = 6;
$my_percolumn = ceil($my_totalcount / $my_columns);

foreach($my_array as $my_item){

    if($my_count == 0) echo '<div class="footer-column footer-column-'. $my_column++ .'">';
    echo $my_item;
    $my_count++;

    if($my_count == $my_percolumn){
        echo '</div>';
        $my_count = 0;
    }
}

I made some code that does what I wanted. Show the navigation (2 levels) in columns in the footer. If anyone has a better way for doing this, let me know!

$my_menu = menu_tree_all_data('main-menu');
$my_array = array();

foreach($my_menu as $my_item){
    $my_array[] = l(t($my_item['link']['link_title']), $my_item['link']['link_path'], array('attributes' => array('class' => array('level-1'))));
    foreach($my_item['below'] as $my_below){
        $my_array[] = l(t($my_below['link']['link_title']), $my_below['link']['link_path'], array('attributes' => array('class' => array('level-2'))));
    }
}

$my_totalcount = count($my_array);
$my_count = 0;
$my_column = 1;
$my_columns = 6;
$my_percolumn = ceil($my_totalcount / $my_columns);

foreach($my_array as $my_item){

    if($my_count == 0) echo '<div class="footer-column footer-column-'. $my_column++ .'">';
    echo $my_item;
    $my_count++;

    if($my_count == $my_percolumn){
        echo '</div>';
        $my_count = 0;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文