web-dev-qa-db-ja.com

Drupal 7のメニュードロップダウン

私はDrupal 7サイトを学び、開発し始めたので、Drupalはよくわかりません。
これら2つのサイトで使用されるメニュー http://www.honda.com.my/ および http://www.toyota.comを作成するにはどうすればよいですか? .my/index.html

2
arkchong

質問には3つの側面があります。

1つは、mega menuとも呼ばれるドロップダウンマルチカラムメニューを作成することです。 Superfish モジュールがそれを提供するはずです。しかし、きっと 他にもあります

2つ目は、メニューエントリに関連付けられた画像を用意することです。 1つの解決策は、メニューからリンクされたページに関連付けられた画像を使用することです。すべてのページがノードである場合、これは file (またはmedia)フィールドを使用して実行できます。別の解決策は、分類用語に関連付けられた画像を使用することです。また、これらの用語をページのカテゴリとして使用する(従来の用語とノードの関連付けまたはその他のソリューションを通じて)。メニューエントリの画像を取得するには、そのページに関連付けられている用語の画像を取得します。

クエリを集中的に使用する可能性がある、メニューの作成時にメニューエントリの画像を探す代わりに、カスタムメニューコールバックを使用してメニューエントリの画像を配信します。メニューコールバックは、単一の引数であるメニューパスを受け取り、使用する画像へのリダイレクト(つまり、drupal_goto())を発行して終了します。もちろん、メニュースタイルに合わせて画像のサイズを変更するには、画像スタイルを使用します。

3番目の質問は、製品リスト(ノード)からメニューを自動的に生成することです。これが実際に必要かどうかはわかりません。 Drupal=のメニューは動的であり、適切な権限を持つユーザーがいつでも編集できます。作成時にノードをメニューに配置できます。自動メニューが必要な場合、カスタムコードは Auto Men は、Drupal 7.に移植されていない場合でも、この機能を提供します。- Taxonomy Men は、分類階層からメニューを生成します、したがって、製品が用語である場合、これも機能します。コーディングが問題である場合、 Rules メニューは、カスタムメニューエントリ作成ロジックを実装するために必要なツールを提供できます。ソリューションは、実際のサイト構造に実際に依存します。

もちろん、メニューシステムをバイパスして、ビューまたはカスタムコードを使用してメニューを生成することもできますが、これは、既存のモジュールやコードを再利用できない完全なカスタムソリューションになることを意味しますnormalDrupalメニューを対象とするスニペット。

3
Pierre Buyle

簡単な解決策は、 Nice_menus を使用して、theme_Nice_menus_build関数をオーバーライドすることです。

必要に応じて、 views_embed_view 、または必要な他の種類のPHPロジック)を使用して、そこからブロックビューを呼び出すことができます。

2
askibinski

ドロップダウンメニューには、 Nice menussuper fish および mega men のようなモジュールがあります。メガメニューはまだ開発段階です。あなたはあなたの要件に応じてどれでも行くことができます。

1
nitvirus