Подскажите как в файле block.tpl.php получить переменные из page.tpl.php, конкретнее это $head_title и $primary_links.
Пробовал в файле template.php использовать функцию phptemplate_preprocess_block
<?php
function phptemplate_preprocess_block(&$vars) {
$vars["my_title"]=$head_title;
return $vars;
}
?>
но так не работает
Комментарии
Вставь в блоке код и посмотри, что тебе доступно.
<?php print_r($variables) ?>
переменные $head_title и $primary_links в блоке не доступны. Как их сделать глобальными?
Попробуйте так:
<?php
$primary = menu_tree('primary-links');
echo $primary['primary-links'];
?>
Что выдаст?
glu2006, ничего не выдает.
С $primary_links разобрался, сделал меню не в блоке а в page.tpl.php.
Теперь надо как-то в блоке или в page.tpl получить термины таксономии. Как это сделать?
в page.tpl.php такой код:
<?php
foreach (taxonomy_get_vocabularies($variables['node']->type) as $vid=>$vocab) {
foreach (taxonomy_node_get_terms_by_vocabulary($variables['node']->nid, $vid) as $term) {
echo $term;
}
}
?>
функция taxonomy_get_vocabularies получает словари таксономии, а функция taxonomy_node_get_terms_by_vocabulary почему-то не возвращает термины таксономии. Что я делаю не так?
я сталкивался с подобной проблемой, а собственно суть проста -
в друпале блоки обрабатываются после страницы с нодой, как бы это печально не звучало. это накладывает соответствующие ограничения - пожалуй самое большое и обидное из них - не достучаться до $node, ну и ваш случай то же самое
выход из ситуации - грузить то что надо используя внутренние api нужных модулей, конечно не верх изящества, но рабочий вариант