Создал новый хук темизации node_block для отображения последних нод в боковой панели. В файле template.tpl свойе темы vic зарегистрирован новый хук
<?php
function vic_theme() {
return array(
'node_block' => array(
'arguments' => array('node' => NULL),
'template' => 'node_block',
),
);
}
?>
Создал в папке своей темы новый фаил node_block.tpl.php и прописал там шаблон отображения ноды в боковой панели. И вот какая проблемма возникла - не могу в шаблоне оперировать объектом ноды $node, как будто объект туда не передается.
Боковая панель у меня такая
<?phpprint theme('node_block', node_load($links->nid));?>
Подскажите, пожалуйста, что я делаю не правильно? Куда пропал объект ноды $node?
Комментарии
Попробовал на гарланде. Давайте по шагам:
1. В template.php у гарланда в конец пишу:
return array(
'node_block' => array(
'arguments' => array('node' => NULL),
'template' => 'node_block',
),
);
}
2. В папке с темой создаю файл node_block.tpl.php:
3. В page.tpl.php добавляю такой код (после breadcrumb-a):
<?php print $breadcrumb; ?>
<?php print theme('node_block', node_load(1));?>
...
4. Захожу на страничку "admin/build/modules", жму там F5, дабы тема зарегистрировалась. Это надо делать каждый раз после того как вы внесли любые изменения в hook_theme().
5. Уже на странице с модулями получаю вверху распечатанный объект первой ноды и "testtesttest".
6. Если в ф-ии theme('node_block', node_load(15684)) передать NID несуществующей ноды, то распечатано будет только "testtesttest", т.о. надо проверить что находится у вас в $links->nid.
7. Ну и думаю "template.tpl" у вас просто описка?
Заработало! Сделал все сначала. Только что было до этого не так - НЕ ПОЙМУ!
zhylik, спасибо за разбор полетов!