【问题标题】:Drupal navigation in footer页脚中的 Drupal 导航
【发布时间】:2012-01-26 00:35:48
【问题描述】:

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

你可以使用:

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

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

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

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

【问题讨论】:

  • 为什么不将ul 设置为div?将显示更改为块,将列表样式更改为无等...
  • 是的,这是可能的,但我有很多不需要的 HTML...而且,div 保持嵌套。但我猜这不是什么大问题......

标签: navigation drupal-7 render


【解决方案1】:

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

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

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

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

【讨论】:

  • 是的,您可以使用视图输出链接,然后将输出格式化为 div。
  • 我认为不可能在视图中获取导航项...这是视图中可用的内容:文件、修订、内容、分类、用户、本地来源、主题
【解决方案2】:

我做了一些我想要的代码。在页脚的列中显示导航(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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多