2012-01-20 6 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はあなたのテーマテンプレートファイルによって生成されています。

代わりにビューを使用できます。私はビューでリストを生成します。これにより、出力をulのdiv inteadとしてフォーマットすることができます。

このビューでは、ブロックを作成してフッターに配置します。

元に戻らないと便利です。

+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; 
    } 
}