web-dev-qa-db-ja.com

ページレイアウトのベストプラクティス

Drupalのページレイアウトのベストプラクティスを理解しようとしています。多くのページには、メインコンテンツ、ヘッダー画像など、いくつかの異なる要素が含まれています。「基本ページ」または同様のもの(つまり、ページ全体に1つのノード)を作成することは考えていません。

すべてのページにパネルを使用し、それらにブロックをドロップするのは良いことですか?ビュー、おそらくノード、連絡先フォームなどをドロップできます...

19

パネルは優れたモジュールですが、複雑になることもあり、完全に理解するまでに時間がかかる場合があります。すべてのページにパネルを使用することに興味がある場合は、 Panels Everywhere モジュールが興味深いプロジェクトです。

より柔軟なレイアウトを提供するもう1つの素晴らしいプロジェクトは、 Display Suite です。

人々はPanelsまたはDSのいずれかを使用する傾向がありますが、競合他社ではありません。 DSの作成者/メンテナーのブログで読むことができるように、これらを一緒に使用することもできます。 Drupal 7

11
marcvangend

ビューとパネルは良い可能性ですが、 960gs !のような優れたフレームワークを使用します。

2
gbwebservice

はい、パネルは要素をドロップできるレイアウトを提供します。

パネライザは、既存のノードにパネルを追加するだけの最も単純なパネルモジュールです。 (ノードパネルは非推奨ですが、この事実は広く指摘されていません。)

したがって、通常のノードシステムを使用しますが、必要に応じてノードを「パネライズ」します。

0
Tom Stermitz

レイアウトを1ページ以上再利用する場合は、一連のフィールドを備えたDisplay Suiteが最適です。

ページごとに個別のレイアウトが必要な場合は、パネルが適切な場合があります。


後者が必要であるが、(私と同じように)パネルが怖い場合は、他に試すことができるものがあります。 ( https://drupal.stackexchange.com/a/90744/2974 から)

モジュール:

どうやって?

  • ノードタイプ「frontpage」を作成します。
  • 「複数選択リスト」ウィジェットで複数値ブロック参照フィールドを追加します。
  • いくつかのBeanタイプを設定して、フロントページに配置できるさまざまな種類のファンシーボックスを許可します。
  • ネストされたレイアウトのBean内でブロック参照を使用します。
  • Beanタイプの1つは、複数値のエンティティ参照を持つことができます。多数の製品を参照する(そしてそれらをソート可能にする)。私は通常、これをnodequeueよりも優先します。
  • Display Suiteを使用して、各Beanとフロントページ自体の表示方法を定義します。
  • Display suite custom field templates を使用して、ブロック参照内の各Bean /ブロック、または各製品などの周りにボックスを装飾します。 hook_ds_field_theme_functions_info() を確認してください。このものは強力で素晴らしいです!
  • コンテキストリンクを使用して個々のBeanを編集するようにクライアント/コンテンツエディターに指示します。
  • さらに、Viewsブロックをブロック参照で使用できます。
  • インラインエンティティフォームは便利かもしれませんが、この組み合わせでは実際には試していません。これは宿題です:)

戦略は、1つのページに固有のすべてのものをブロック(またはBeanインスタンス)にすることです。これらのブロックはテーマ領域を汚染しないので、私たちは余裕があります。

これにより、..で遊ぶための素材がいくつか得られます。
これは非常に広いので、より詳細な質問は専用のstackexchange質問で議論する必要があります。

0
donquixote