Drupal - рендеринг вложенного представления / частичного в шаблоне - PullRequest
6 голосов
/ 21 марта 2012

Как я могу создать HTML-фрагмент, который я смогу повторно использовать на нескольких страницах шаблона и в который можно передавать переменные s? Некоторым это нравится (но, очевидно, немного сложнее):

<ul>
    <? foreach ($items as $item): ?>
    <li><?=$item?></li>
    <? endfor; ?>
</ul>

Спасибо

1 Ответ

8 голосов
/ 21 марта 2012

Используйте hook_theme() в пользовательском модуле, затем вызовите метод theme() из вашего шаблона.

В вашем модуле:

mymodule_theme($existing, $type, $theme, $path) {
  return array(
    'my_theme_name' => array(
      'template' => 'my_template_file_name', // without the .tpl.php extension
      'variables' => array(), // to define default values for passed variables
     )
  );
}

В вашем шаблоне:

theme('my_theme_name', array('arg1' => 'val1', 'arg2' => 'val2'));
...