Як я можу програматично зобразити тизер вузла за допомогою шару теми?
Як я можу програматично зобразити тизер вузла за допомогою шару теми?
Відповіді:
node_view()
є стандартною функцією для візуалізації вузлів, наприклад
$node = node_load(1);
$view = node_view($node, 'teaser');
$rendered = drupal_render($view);
Існує node
тема, визначена модулем вузла (в node_theme()
), але я ніколи не бачив, щоб він використовувався.
$build += array(
, у нього є #theme
атрибут , який, напевно, каже Drupal використовувати тематична система. Виправте мене, якщо я помиляюся. Я тільки зараз починаю «діставати» API Drupal :)
theme('node', ...
раніше. Насправді це навіть не спрацювало б, оскільки воно визначає себе як мати render element
замість variables
.
theme('theme_name', $args)
і за допомогою так званих render element
с. hook_theme()
Документи пояснюють це досить добре, це не 100% інтуїтивно, але як тільки ви знаєте, це дійсно корисно. Використання node_view()
буде ніколи не оминайте шар теми, тож вам слід добре :)