$node->nid не работает в блоке. Но работает в шаблоне.

Главные вкладки

Аватар пользователя qman qman 28 февраля 2009 в 21:36

Всем привет,
в шаблоне (использую модуль Template) php код верно работает

 
<?php print $node->nid; ?>

но если разместить данный код в блоке , то print ничего не выводит. Подскажите в чем ошибка? Как в блоке отобразить $node->nid , отображаемой ноды.?

Комментарии

Аватар пользователя Dan Dan 28 февраля 2009 в 22:55

Например так:
$nid = 0;
if(is_numeric(arg(1))
$nid = arg(1);

Но блок может кэшироваться, тогда его содержимое не будет соответствовать странице.

Аватар пользователя qman qman 19 марта 2009 в 23:08

"Dan" wrote:
Но блок может кэшироваться, тогда его содержимое не будет соответствовать странице.

а как тогда быть? отключать кеширование?

Аватар пользователя Dan Dan 19 марта 2009 в 23:41

"neochief" wrote:
Если шестой друпал, можно так:
<?php $node = menu_get_object('node'); ?>

По-любому, если блок закеширован, например для роли, будет несоответствие.
Выхода два: писать модуль и в нём указывать как кэшировать блок или воспользоваться модулем blockcache alter