2

Drupal で非常にコンテンツの豊富なサイトを構築しています。それを扱うのは初めてです。このサイトにはさまざまなセクションがあり、それぞれレイアウトが異なります。phptemplate_preprocess_page() メソッドを使用して page.tpl.php を決定する予定です。

私の質問は、特定のページのどこに二次コンテンツのさまざまなチャンクを配置するのが最善かを指定する方法です。サイドバー タイプのコンポーネントが多数あり、それぞれにいくつかの小さなリストまたは画像のグループがあります。ここでの最善のアプローチは、必要に応じて複数の領域を定義し、これらの領域に (Views モジュールを使用して) カスタム ビューをドロップすることだと思います。それは合理的に思えますか?

アップデート:

ビューをクエリとして扱うことについて-私を混乱させるのは、ビューにも外観を変更するオプションがあることです。書式設定されたマークアップではなく、PHP でデータを操作できるように、View からノードの配列を取得できればよいと思います。それは可能ですか?

4

3 に答える 3

3

はい、カスタム領域を使用して、それらにカスタム ビューをドロップできます。

カスタム ブロックの作成を使用して、それらのビューを使用することもできます。

レイアウトの構造によって異なります。

于 2009-10-30T18:32:05.310 に答える
3

Rishavs(正解)の回答を少し拡張すると、ブロックは領域を埋めるための「標準」要素です。page.tpl.php の領域は、幅広い一般的なレイアウトを定義します (例: ヘッダー、いくつかの列/サイドバー、フッターなど、必要なものは何でも)。リージョン内には、1 つのもの (ビューなど) のみを配置する場合がありますが、通常は複数のブロックの形で配置します。領域に表示される順序は、ブロックの重みによって決まります。

タイプブロックのディスプレイを「ベース」ビュー定義に追加することにより、ビューモジュールでブロックを直接作成できます。また、定義したすべてのメニューがブロックとして利用可能になります。また、カスタム モジュール内に独自のブロックを作成することも非常に簡単で、その内容を完全に制御できます (これについては、 を参照hook_block()してください)。そうすれば、たとえば、フォームをブロックに入れることができます (標準の Drupal インストールのログイン ブロックはこの例です)。

于 2009-10-30T18:53:28.497 に答える
1

ビュー (コンテンツのリスト) はデータベース クエリです。領域は、ページの領域です (左側のサイドバー、フッターなど)。リージョンはページ テンプレート (tpl.php) で割り当てられ、使用しているテーマによって異なります。通常、二次コンテンツ (ビューを含むがこれに限定されない) はブロックを介して配置されます。ブロックが地域に割り当てられると、ブロックが表示されます (「右側のサイドバー」の「新しいユーザー」)。また、ビューをページ テンプレートに埋め込むこともできます (リージョンの内側と外側のいずれか)。

于 2009-11-02T23:18:56.530 に答える