2012-01-20 2 views
0

На многих сайтах вы видите навигацию со всеми ссылками в нижнем колонтитуле, в столбцах. Но когда у вас много ссылок, вы хотите, чтобы некоторые элементы находились в одних и тех же столбцах. (Пример: 12 штук, каждая с подпунктами будет показана в 6 столбцов)Навигация по Drupal в нижнем колонтитуле

Вы можете использовать:

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

Но тогда вы получите вложенные элементы UL.

Есть ли способ получить все ссылки в DIV? (Не вложенными)

Пример выполнен в Drupal: http://www.louvre.fr/

+0

Почему не стиль 'ul' как' div'? Измените отображение, чтобы заблокировать, перечислите стиль none и т. Д. –

+0

Да, это возможность, но мне нужно много HTML, что не нужно для этого ... И, пребывание div остается вложенным. Но это не такая большая проблема, я думаю ... –

ответ

0

Ul генерируется с помощью файлов шаблонов темы.

Вместо этого вы можете использовать виды. Я бы сгенерировал список в представлениях. Это позволяет мне форматировать вывод как div int ul.

Этот вид я бы сделал его блоком, а затем разместил его на нижнем колонтитуле.

Надеюсь, что это поможет, если не вернется назад.

+0

Можете ли вы использовать элементы навигации во взглядах? Узлы, Таксономия, .... но навигация? –

+0

да, вы можете использовать представления для вывода ссылок, а затем форматировать вывод как div. –

+0

Нет возможности получить элементы навигации в Представлениях, я думаю ... Это то, что можно увидеть на изображениях: Файлы, редакционные версии, таксономия, пользователи, местный источник, тема –

0

Я сделал код, который делает то, что я хотел. Показывать навигацию (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; 
    } 
} 
Смежные вопросы