私はWebを巡回しましたが、カスタムメニューのテーマを設定する方法はまったく明らかではありません。私は何時間も探しましたが、メニューを作成してその出力をカスタマイズするプロセスを最初から最後まで説明する単一の投稿を見つけていません。これは多段階のプロセスのようです:
- Drupalインターフェースを介してメニューを作成します。
template.php
ファイルにテーマ関数を作成して、出力をテーマにします。- このメニューを変数として追加して、テンプレートファイルに(なんとかして)表示します。
theme
テンプレートファイルのメニューの関数を呼び出します。
1は簡単に実行できますが、私が遭遇する問題は2、3、4です。デフォルトのページテンプレートを見ると、変数のメインメニューが公開されていることがわかります$main_menu
。ページの後半で関数を見ることができますtheme('links__system_main_menu', array('links' => $main_menu...
。つまり、適切な名前のテーマ関数をどこかで探し、それを使用して出力を生成しています。
function theme_links__system_main_menu(&$variables) {...}
template.phpファイルにDrupalが配置するのではなく、その機能を使用するかどうかを知っていfunction theme_menu_links(&$variables) {...}
ます。
私が知らないのは、Drupalがその関数で作成したカスタムメニューをどのようにリンクするかです。たとえば、というメニューを作成したとしますMy Menu
。template.php
ファイルに次の関数を作成し、そのメニューの出力をテーマにできますか?function theme_links__system_my_menu(&$variables) {...}
また、テンプレートファイルでカスタムメニューを使用できるようにするにはどうすればよいですか?Drupalはどのようにし$main_menu
てpage.tpl.phpに変数を公開しますか?
私が考えて、私はここに欠けているキーは、テンプレートページに私のカスタムメニューを表す変数を埋め込む方法です。ほとんどの場合、メニューを作成した後に何をすべきかを完全に失います。
助けてくれてありがとう。
編集:おそらく私がやっていることを投稿する必要があります。以下のBetaRideへのコメントごとに、カスタマイズしたHTMLを<li>
メニュー項目の要素に挿入する必要があります。具体的には、Twitter Bootstrapアイコンを追加しています。