Необходимо переменную, созданную вне блока (например в page.tpl.php), использовать в тексте блока.
Формат ввода PHP code включен.
При объявлении global $my_variable, получается использовать переменные только из соседних блоков.
Необходимо переменную, созданную вне блока (например в page.tpl.php), использовать в тексте блока.
Формат ввода PHP code включен.
При объявлении global $my_variable, получается использовать переменные только из соседних блоков.
Комментарии
Как говорят на одном сайте - вы не должны этого хотеть. Общие данные лучше разделять из модуля или template.php, не стоит разбрасывать источники данных по шаблонам. Просто в качестве примера - создайте в template.php функцию themename_get_myvar() и тяните её и в блоках и в любых шаблонах.
Это в пятом друпале. В шестерке используйте
phptemplate_preprocess_page()
С themename_get_myvar() ничего не вышло.
phptemplate_preprocess_page() сейчас буду пробовать. Может быть пригодится в будущем.
Собственно, задачу таки удалось решить.
Весь фикус в том, что мне необходимо в моем блоке отобразить значение следующей конструкции:
<?php
$term = array_shift(taxonomy_node_get_terms_by_vocabulary($node,2));
if ($term) {
$my_var= l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description)));
}
?>
Из themeplate.php из нее ничего не возвращается.
В общем, не знаю, на сколько грамотно мое решение, но сделал так:
Операции выполняю в node-news.tpl.php (этот шаблон у меня по любому используется) и через global результат передаю в другой, блок, где мне необходимо отобразить выходные данные.
Таким образом вышеприведенный код выполняется только на страницах с типом материала news, а это мне и надо.