Як програматизувати тизер вузла за допомогою шару теми?


Відповіді:


20

node_view() є стандартною функцією для візуалізації вузлів, наприклад

$node = node_load(1);
$view = node_view($node, 'teaser');
$rendered = drupal_render($view);

Існує nodeтема, визначена модулем вузла (в node_theme()), але я ніколи не бачив, щоб він використовувався.


1
Чи не node_theme () дозволяє тематичній системі використовувати файл .tpl.php для елемента, а також дозволяти функції попередньої обробки?
mpdonadio

Так, мене хвилює обхід шару теми. Якби я це зробив, то інші модулі, які хочуть чіпнути, не змогли б. Принаймні, я вважаю, що це правильно?
Лестер Пібоді

1
Аналізуючи api.drupal.org/api/drupal/modules%21node%21node.module/function/…, якщо ви переглядаєте код реалізації, де він говорить $build += array(, у нього є #themeатрибут , який, напевно, каже Drupal використовувати тематична система. Виправте мене, якщо я помиляюся. Я тільки зараз починаю «діставати» API Drupal :)
Лестер Пібоді

@MPD Так, я не дуже добре пояснив це, я просто мав на увазі, що ніколи не бачив дзвінка, як theme('node', ...раніше. Насправді це навіть не спрацювало б, оскільки воно визначає себе як мати render elementзамість variables.
Клайв

@ Leester Spot, є два способи виклику тематичних функцій, "звичайний" спосіб ( theme('theme_name', $args)і за допомогою так званих render elementс. hook_theme()Документи пояснюють це досить добре, це не 100% інтуїтивно, але як тільки ви знаєте, це дійсно корисно. Використання node_view()буде ніколи не оминайте шар теми, тож вам слід добре :)
Clive
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.