Использование шаблона для предложения шаблона не работает в hook_theme () - PullRequest
4 голосов
/ 24 августа 2011

Я пытаюсь реализовать шаблон и предложение шаблона, но это не работает.
Вот реализация hook_theme() с моим шаблоном:

$theme['nm_home_page_zone'] = array(
  'pattern' => 'nm_home_page_zone__',
  'arguments' => array('nodes_content' => array(), 'nodes' => array()),
  'template' => 'zone-contenu',
),

И я звоню theme() со следующим кодом:

$output .= theme(array('nm_home_page_zone__'.$rowZone->model.'_'.$rowZone->weight, 'nm_home_page_zone__'.$rowZone->model, 'nm_home_page_zone'), array(), array());

Я получил 2 файла шаблона (zone-contenu.tpl.php и zone-contenu - one.tpl.php) в моей теме и моем модуле (просто чтобы быть уверенным).
Шаблон и шаблон должны использовать zone-contenu - one.tpl.php в моем случае, но это не работает.

Что мне здесь не хватает?

1 Ответ

5 голосов
/ 25 августа 2011

Я получил ответ (что довольно просто): файл шаблона должен быть назван как ловушка темы (ключ)
Итак, изменения в hook_theme:

$theme['zone-contenu'] = array(
  'pattern' => 'zone-contenu__',
  'arguments' => array('nodes_content' => array(), 'nodes' => array()),
  'template' => 'zone-contenu',
),


И это все ! Вы хорошо играете с шаблоном :)

Помните, что вы можете использовать динамический шаблон с theme () с такой строкой:

theme('zone_contenu__fun__here', $hello);

В этом примере Drupal автоматически попытается найти zone-contenu - fun - here.tpl.php, затем zone-contenu - fun.tpl.php и, наконец, zone-contenu.php

Если вы хотите контролировать порядок предложений, укажите массив, как указано выше (FIFO):

$output .= theme(array('nm_home_page_zone__'.$rowZone->model.'_'.$rowZone->weight, 'nm_home_page_zone__'.$rowZone->model, 'nm_home_page_zone'), array(), array());

Надеюсь, это поможет!

...