Как то неудобно спрашивать
задаю функцию в node.tpl.php
$desc = $node->content['body']['#value'];
// идёт разное всякое
function myfunct() {
global $desc;
$output = $desc;
// идёт разное всякое
return $output;
}
<?php echo myfunct() ?>
Ничё не выводит, т.к $desc не передаётся, а должна. В чём трабла?
Комментарии
Попробуй так в первой строчке:
global $desc = $node->content['body']['#value'];
Т.е. у тебя сейчас переменная $desc не является глобальной.
Или можно так, без глобальной переменной:
function myfunct($desc) {
$output = $desc;
// идёт разное всякое
return $output;
}
echo myfunct($desc);
Deleted
Вставлю свои 5 копеек.
Задавать функцию в шаблоне крайне не правильно с точки зрения архитектуры друпала.
В шаблоне должен быть только хтмл, переменные из препроцессов и theme функции.
Необходимо задать функцию, так определите ее в другом месте и передайте параметром $desc. А в шаблоне должно быть только
<?php print myfunct($desc); ?>
Это понятно и я полностью согласен, просто задумка такая, чтобы это всё лежало в одном месте. Хочу сделать для уберкарта некий универсальный node.tpl.php со всеми возможными переменными - кнопки, поля, цены в разном формате,виджеты и тд
В данном случае функция - блок с jquery табами.
Sinkora: не, в твоём примере global тоже не работает
node.tpl.php:
<?php
global $desc;
$desc = $node->content['body']['#value'];
?>
но это крайне ужасно