Переменная из php вставки в шаблоне

Аватар пользователя Jenia Jenia 7 февраля 2008 в 3:07

Подскажите пожалуйста, можно ли как-то сделать переменную из php вставки к конкретному ноду видимой в шаблоне?
В php вставке я формирую массив $games и хочу его вывести в шаблоне конкретного нода, но этот массив в шаблоне не виден. Как получить к нему доступ в шаблоне?

Комментарии

Аватар пользователя Nikit Nikit 7 февраля 2008 в 8:46

может тогда лучше его делать в шаблоне?
а $games твой в принципе можно в невидимое поле бросить, тогда шаблон получить доступ к содержимому, дальше парсить и тд

Аватар пользователя Jenia Jenia 12 февраля 2008 в 3:19

Я хочу вытянуть массив данных из БД во вставке, а в шаблоне для конкретного НОДа вывести данные из массива так, как мне это нужно. Для этого хотелось бы сделать переменную $games доступной в шаблоне. Как переменная $title доступна, так хотелось бы сделать и для $games.

Просто не хочется в вставке держать и дизайн и код.

Аватар пользователя Jenia Jenia 13 февраля 2008 в 9:56

Решил эту проблему сделав $games глобальной переменной. Но вот не знаю правильно ли так делать.

Аватар пользователя Jenia Jenia 17 февраля 2008 в 8:09

Никто не может подсказать насколько безопасно и корректно передавать данные из php-вставки в шаблон через массив $GLOBALS ?

Аватар пользователя venom280 venom280 18 февраля 2008 в 8:04

Дело в том, что ты путаешь две разные вещи.
Ты говоришь, что сделал $games глобальной переменной. Глобальной переменной она может стать лишь, если параметр register_globals включен. Сама по себе эта опция никак не влияет на безопасность, угрозу представляет некорректное использование предоставляемых ею возможностей. Тем более, что параметр register_globals в настройках PHP обычно выключен на хостинге. Он выключен по умолчанию начиная с версии PHP 4.2.

Взамен этому разработчики сделали суперглобальные массивы $GLOBALS,$_GET, $_POST и т.д.

Т.е. использование $_GET['filter0'] из URL http://www.afkart.ru/part?filter0=113 предпочтительнее $filter0 , т.к. скорее всего $filter0 имеет нулевое значение.
К примеру я часто использую $GLOBALS['base_url'] (берется из /sites/default/settings.php).

Аватар пользователя angel_kubstu angel_kubstu 9 ноября 2011 в 15:42

Дорогие коллеги, вопрос следующий, есть форма для заполнения объявления, которую могут заполнять зарегистрированные пользователи. Моя задача, когда человек нажимает -создать объявление, в поля материала автоматически вставлялись данные из профиля пользователя.
Имя пользователя (Значение по умолчанию =>(echo ($username); )
Эл. почта (Значение по умолчанию => (echo ($e_mail);)
Данный запрос на каждое поле пишется примерно так:

return array(
0 => array('value' => значение для value),
// You'll usually want to stop here. Provide more values
// if you want your 'default value' to be multi-valued:
1 => array('value' => значение для value),
2 => ...
);

Кто силен в php подскажите пожалуйста.

Аватар пользователя Orion76 Orion76 9 ноября 2011 в 15:58

"Jenia" wrote:
Просто не хочется в вставке держать и дизайн и код.

простейший (и кстати почти стандартный вариант) данные получать в template.php(в папке темы) и передавать в шаблон функциями ИМЯ_ТЕМЫ_preprocess_page, ИМЯ_ТЕМЫ_preprocess_node(подробнее расскажет поиск в http://api.drupal.ru/) в том же файле...

Аватар пользователя Orion76 Orion76 9 ноября 2011 в 16:03

"angel_kubstu" wrote:
в поля материала автоматически вставлялись данные из профиля пользователя.

у каждого материала и так есть Автор...а данные автора очень просто выводятся при помощи Views или Друпал АПИ..
Зачем дублировать инфу в материале?