Як я можу програматично зобразити тизер вузла за допомогою шару теми?
Як я можу програматично зобразити тизер вузла за допомогою шару теми?
Відповіді:
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()буде ніколи не оминайте шар теми, тож вам слід добре :)