Где вы собираетесь это видеть? Например, используете ли вы его как часть вашего файла template.php как часть страницы или как внешний модуль?
Если вы не включили эту функцию в свое собственное пространство имен, попробуйте присвоить ей значение по-разному, чем $node
- например, назовите ее $my_node
. В зависимости от контекста, имя «узла», скорее всего, будет доступно и модифицировано ядром Drupal и другими модулями.
Если это происходит внутри функции, попробуйте следующее и дайте мне знать, что выход:
$test_node_1 = node_load(344983); // Any hard-coded $nid that actually exists
echo $test_node_1->nid;
$test_node_2 = node_load(arg(1)); // Consider using hook_menu loaders instead of arg() in the future, but that's another discussion
echo $test_node_2->nid;
$test_node_3 = menu_get_object(); // Another method that is better than arg()
echo $test_node_3->nid;
Edit:
Поскольку вы используете hook_block, я думаю, см. вашу проблему - сам блок кэшируется, а не узел.
Try установки BLOCK_NO_CACHE
или BLOCK_CACHE_PER_PAGE
в hook_block, согласно документации на http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_block/6
Вы должны также попытаться избежать Arg() всякий раз, когда это возможно - это немного угрозу безопасности, и есть лучшие способы достигнуть почти все, что arg() будет делать в среде модуля.
Edit: *
Некоторые примеры кода, который показывает, что я имею в виду:
function foo_block ($op = 'list', $delta = 0, $edit = array()) {
switch ($op) {
case 'list':
$blocks[0] = array(
'info' => 'I am a block!',
'status' => 1,
'cache' => BLOCK_NO_CACHE // Add this line
);
return $block;
case 'view':
.....
}
}
Если это в модуле, отправьте свои _menu hooks –
function custom_node_menu() { $ items = array(); $ пунктов [ 'узел'] = массив ( 'заголовок' => 'узел', 'страница обратного вызова' => 'drupal_not_found', 'обратного вызова доступа' => TRUE, то 'тип' => MENU_CALLBACK, ); возврат $ пунктов; } – Alaa
Имеет ли 'node_load (arg (1))' похожие проблемы? Что выводит 'print arg (1)'? Возможно, у вас есть кеширование для анонимных пользователей, и вы просто видите более ранний вывод со страницы? – ceejayoz