質問

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

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

更新:

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

役に立ちましたか?

解決

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

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

他のヒント

はい、カスタムリージョンを使用して、カスタムビューにドロップできます。

カスタムブロックの作成とビューの使用も可能です。

これは、使用しているレイアウトの構造によって異なります。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top