[решено] Как переменную, созданную вне блока, использовать в тексте блока?

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

Аватар пользователя dudin.ie dudin.ie 13 августа 2009 в 10:40

Необходимо переменную, созданную вне блока (например в page.tpl.php), использовать в тексте блока.
Формат ввода PHP code включен.
При объявлении global $my_variable, получается использовать переменные только из соседних блоков.

Комментарии

Аватар пользователя andriy.olischuk andriy.olischuk 13 августа 2009 в 10:56

Как говорят на одном сайте - вы не должны этого хотеть. Общие данные лучше разделять из модуля или template.php, не стоит разбрасывать источники данных по шаблонам. Просто в качестве примера - создайте в template.php функцию themename_get_myvar() и тяните её и в блоках и в любых шаблонах.

Аватар пользователя dudin.ie dudin.ie 13 августа 2009 в 12:38

С themename_get_myvar() ничего не вышло.
phptemplate_preprocess_page() сейчас буду пробовать. Может быть пригодится в будущем.

Собственно, задачу таки удалось решить.
Весь фикус в том, что мне необходимо в моем блоке отобразить значение следующей конструкции:

<?php
$term 
array_shift(taxonomy_node_get_terms_by_vocabulary($node,2));
if (
$term) {
   
$my_varl($term->nametaxonomy_term_path($term), array('rel' => 'tag''title' => strip_tags($term->description)));
}
?>

Из themeplate.php из нее ничего не возвращается.

В общем, не знаю, на сколько грамотно мое решение, но сделал так:
Операции выполняю в node-news.tpl.php (этот шаблон у меня по любому используется) и через global результат передаю в другой, блок, где мне необходимо отобразить выходные данные.

Таким образом вышеприведенный код выполняется только на страницах с типом материала news, а это мне и надо.