Drupal: как передать переменную из узла в блок? - PullRequest
1 голос
/ 14 января 2011

Я бы хотел сделать в

  1. выполнить некоторую обработку полей узла в node.tpl.php
  2. сохранить в переменную
  3. и отображается в блоке, который загружается после узла (на той же странице).

Как передать переменную из узла в блок?

Ответы [ 2 ]

3 голосов
/ 14 января 2011

Поскольку вы работаете в Drupal 7, у вас есть доступ к новой функции hook_page_alter () из пользовательского модуля или темы. Реализуя это, вы можете легко перемещать части основной области содержимого (например, узла) в любое количество различных блоков. Вы захотите использовать функции show () , hide () и render () для правильного скрытия содержимого.

В качестве альтернативы, использование show () и hide () из вашего шаблона node.tpl.php должно правильно скрывать элементы, а затем вы можете получить объект узла из вашего блока, используя menu_get_object () функция.

Обычно здесь есть видео для hook_page_alter () здесь , но сайт в данный момент не работает.

1 голос
/ 14 января 2011

выполнить некоторую обработку полей узла в node.tpl.php

Пурист сказал бы, что вы не должны делать это там. hook_node_load () может использоваться для обработки полей.

Тогда вы можете просто использовать menu_get_item () в своем блоке, чтобы получить объект $node и получить доступ к любым значениям, которые вы добавили к нему.

...