Предложения по блочному шаблону

Есть ли способ использовать настраиваемый шаблон для каждого блока по названию? Например, если я назвал свой блок «test1», и он находится в области «left1», я хочу использовать следующие предложения шаблонов:

    блок-left1-test1.tpl.php блок-left1.tpl.php литий> блок-test1.tpl.php литий>

Есть ли список предложений шаблонов для блоков?

6 голосов | спросил amirash 28 Jam1000000amFri, 28 Jan 2011 04:10:58 +030011 2011, 04:10:58

3 ответа


6

В тематической системе Drupal есть концепция, называемая «предложениями шаблонов». Когда вызывается вызов темы, Drupal проверяет, был ли крючок темы реализован как шаблон или как функция. В случае шаблона вызывается все препроцессорные функции для этой темы. Это означает, что каждый модуль или шаблон может добавлять свои собственные данные к переменным, которые будут доступны для шаблона. Эти переменные передаются как большой массив, $variables. Этот массив может содержать список предложений шаблонов в виде вложенного массива с именем $variables['template_files']. Затем Drupal изменит этот список и использует первый существующий шаблон, который он может найти. Дополнительную информацию см. В документации на drupal.org .

Теперь вы можете сделать следующее:

  1. Добавить функцию в шаблон tem.php вашей темы с именем [themename]_preprocess_[themehook] (например. function mytheme_preprocess_block(&$variables) {})
  2. В этой функции создайте желаемые имена имен шаблонов
  3. Добавьте эти предложения в массив $variables['template_files']

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

PS 1: Это помогает, если вы сообщите нам, какую версию Drupal вы используете.

PS 2: Я голосую за этот вопрос, который нужно переместить на https://drupal.stackexchange.com/

ответил marcvangend 1 Maypm11 2011, 14:05:21
3

Шаблоны предложений шаблонов для блоков (и остальной части ядра) можно найти на http://drupal.org /узел /1089656 . Вместо использования заголовка блока вы используете идентификатор блока, например block-block-1.tpl.php, для блока, который определен блоком блока (определяется пользователем) с идентификатором 1 (вы можете найти идентификатор и модуль в URL-адресе, когда вы редактируете блок).

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

ответил Jody 2 Mayam11 2011, 02:23:45
1

Я не уверен, будет ли он делать именно то, что вы ищете, но блок темы темы звучит близко. Аналогичный модуль стоит посмотреть Skinr .

ответил Matt V. 28 Jam1000000amFri, 28 Jan 2011 04:14:43 +030011 2011, 04:14:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132