2011-01-11 13 views
2

私はDrupalのテーマについてかなり成功しています(少なくとも、それは私の考えです)。しかし、私はCSSをプライマリリンクメニューに挿入して、一般的にHTML + CSSを使ってカスタマイズしました壁に当たった。drupal menu customizacion via css?

私はdiv、リンク、およびテキストにCSSスタイルを適用できましたが、おそらくいくつかのCSSスプライトメニューテクニックを使って、プライマリ(セカンダリ)リンクメニューをもっとカスタマイズしたいと思います。そのプロセスでdrupal自身のPHPの多くを使用しています。私はかなりプログラマではないが、私は本当にいくつかのコードを書き直す必要がある場合、私は気にしない。

私はいくつかのサイトの周りにいますが、特に有用なものはありません。だれかが私を正しい方向に向けることができれば、とても感謝しています。

thanxです。

答えて

0

あなたは、各メニューアイテムのIDのようなクラスを追加することができます -

あなたのtemplate.phpに

function mythemename_menu_item_link($link) { 
    if (empty($link['localized_options'])) { 
    $link['localized_options'] = array(); 
    } 

    // LOOK HERE 
    // add a key for main menu items, so we can theme each item in a different way 
    // add this class only for a specific menu 
    if ($link['menu_name'] == 'menu-menu-mymenu') { 
    if ($link['localized_options']['attributes']['class']) { 
     $link['localized_options']['attributes']['class'] .= ' menu-'. $link['mlid']; 
    } 
    else { 
     $link['localized_options']['attributes']['class'] = 'menu-'. $link['mlid']; 
    } 
    } 

    return l($link['title'], $link['href'], $link['localized_options']); 
} 
をこの機能を追加するこのコードはきれいにすることができますが、私はしましたあなたがそれをよりよく読むことができるように、より多くの行を追加しました

0

あなたの質問が正しく分かっていれば、カスタムクラス/ IDをメニューに追加することになります。これは、指定されたメニューのtheme_menu_treeをオーバーライドすることで行うことができます。私は私のtemplate.phpファイルに以下を追加して私のメインメニューのためにこれを行います:

function THEMENAME_menu_tree__main_menu($variables){ 
return '<ul class="menu main-menu">' . $variables['tree'] . '</ul>'; 
} 

これは役立ちます。

また、themerモジュールもご覧ください。このモジュールには、テンプレート関数などのご提案があります。

歓声、 ヨルゲン