2009-10-30 2 views
2

Мы строим сайт с богатым содержанием контента в Drupal. Я впервые с этим работаю. На этом сайте есть множество разделов, каждый из которых имеет разный макет. Я планирую определить page.tpl.php с помощью метода phptemplate_preprocess_page().Я правильно понимаю области и взгляды Drupal?

Мой вопрос в том, как лучше указать, где на данной странице помещать разные куски вторичного контента. У нас много компонентов боковых панелей, каждый из которых имеет несколько небольших списков или групп изображений. Я думаю, что лучший подход здесь состоит в том, чтобы определить несколько регионов по мере необходимости и отбросить пользовательские представления (используя модуль Views) в эти регионы. Это кажется разумным?

Update:

Что касается лечения Просмотров как запросы - то, что меня смущает, что Представления также есть варианты для изменения их внешнего вида. Я бы предпочел, если бы я мог просто получить массив узлов обратно из представления, чтобы я мог работать с данными на PHP, а не отформатированной разметкой. Это возможно?

+0

Имейте в виду, что даже если вы не выведете область блока в своем шаблоне, она все равно будет сгенерирована и может снизить производительность. Используйте правила отображения, чтобы гарантировать, что блоки обрабатываются только в том случае, если они фактически используются на странице. – gapple

+0

@ D.Pfeffer: Что касается выполнения представления без рендеринга результата, см.: Http://drupal.org/node/342132 –

+2

Кстати, не полезно добавить (другой) следующий вопрос, как это сделать уже ответил на вопрос, поскольку это не многие люди заметят. Вы должны задать новый вопрос (возможно, связать оригинал, если он все еще связан) в таких случаях. –

ответ

3

Чтобы разбить бит на ответ Rishavs (правильный), блоки являются «стандартным» элементом для заполнения регионов. Области в вашем page.tpl.php определяют общий общий макет (например, заголовок, некоторые столбцы/боковые панели и нижний колонтитул - все, что вам нужно). В пределах региона вы можете разместить только одну вещь (например, представление), но обычно больше в виде нескольких блоков. Порядок, в котором они появляются в регионах, определяется весом блоков.

Вы можете создавать блоки непосредственно в модуле views, добавляя отображения блока типов в определение «базового» вида. Кроме того, каждое настраиваемое вами меню будет доступно в виде блока. Также довольно просто создать свои собственные блоки внутри пользовательских модулей, давая вам полный контроль над его содержимым (см. hook_block() для этого). Таким образом, например, вы можете поместить формы в блоки (для этого примером является блок входа в стандартную установку Drupal).

3

Да, вы можете использовать пользовательские регионы и добавлять в них пользовательские представления.

Вы даже можете использовать создание пользовательских блоков и использовать в них представления.

Это зависит от структуры вашего размещения.

1

A Просмотр (список содержимого) - запрос базы данных. Область - это область страницы (левая боковая панель, нижний колонтитул и т. Д.). Регионы назначаются в шаблоне страницы (tpl.php) и зависят от темы, которую вы используете. Как правило, вторичный контент (включая, но не ограничиваясь, «Представления») помещается через блоки. Блоки отображаются, когда они назначены для региона («Новые пользователи» в «Правой боковой панели»). Кроме того, представления также могут быть встроены в шаблон страницы (либо внутри, за пределами региона).

+0

NonProfit, я обновил свой вопрос относительно вашего объяснения. Благодарю. –

+0

Привет, Д.Пфеффер, я бы посоветовал вам взглянуть на http://drupal.org/project/devel, в частности, на видеоролик http://drupal.org/files/videocasts/moshe-theme-developer.mov. Это своего рода как Firebug для Drupal.Когда вы наведете элемент на странице, этот модуль предоставит функцию, которая сгенерировала его, а также шаблон (а также возможные шаблоны, которые его переопределяют), которые его передали. Он также предоставляет аргументы функции, которые были переданы, и их значения. – NonProfit