Page 1 of 1
{get_template_vars} -> {php} (РЕШЕНО)
Posted: Wed Jan 20, 2010 5:44 am
by legko
У меня в
шаблоне такая ситуация:
Code: Select all
{capture assign='captured_content'}{content block='specifications'}{/capture}
Данные попадают в переменную $captured_content, о чем говорит вывод {get_template_vars}
Code: Select all
captured_content = СЕРТИФИКАТ КАЧЕСТВА Содержание основного вещества 99,3% Влажность 0,26% Железо 0,0032% Нерастворимые в соляной кислоте вещества 0,22% Общее содержание сульфатов (в пересчете на SO4) 0,24% Насыпная плотность (г/см3) 1,11% Размер частиц 2 – 5 мм 95%
Дальше я хочу обработать эти данные при помощи PHP, но PHP этой переменной не видит.
Code: Select all
{php}
echo $captured_content;
{/php}
Подскажите, пожалуйста, что нужно сделать, что б PHP код мог работать с переменной $captured_content?
Re: {get_template_vars} -> {php}
Posted: Wed Jan 20, 2010 7:27 am
by cyberman
legko wrote:
У меня в
шаблоне такая ситуация:
Code: Select all
{capture assign='captured_content'}{content block='specifications'}{/capture}
Простая ;)
Code: Select all
{content block='specifications' assign='captured_content'}
Подскажите, пожалуйста, что нужно сделать, что б PHP код мог работать с переменной $captured_content?
Code: Select all
{php}
$captured_content = $smarty->get_template_vars('captured_content');
echo $captured_content;
{/php}
http://www.smarty.net/manual/ru/api.get ... e.vars.php
Re: {get_template_vars} -> {php}
Posted: Wed Jan 20, 2010 9:13 am
by legko
Смотрел и пробовал, не работает конструкция видимо чего-то нужно после тега {php} добавить.
Вот что получается:
Code: Select all
Fatal error: Call to a member function get_template_vars() on a non-object in L:\home\eurochem\www\tmp\templates_c\%%01^013^01360D26%%tpl_body%3A23.php on line 98
Еще раз напоминаю, что все это дело происходит в
шаблоне сайта, возможно поэтому и не работает.
Может еще какие мысли есть?
Re: {get_template_vars} -> {php}
Posted: Wed Jan 20, 2010 12:42 pm
by cyberman
Вы активированы PHP использования в config.php?
Попробуйте это
Code: Select all
{php}
global $gCms;
$captured_content = $smarty->get_template_vars('captured_content');
echo $captured_content;
{/php}
Извините за мой русский - это русский от Google translator.
Re: {get_template_vars} -> {php}
Posted: Thu Jan 21, 2010 4:41 pm
by legko
спасибо за помощь, но...
... не работает, а времени разбираться совершенно нет
видимо что-то в настройках нужно изменить
выкручиваюсь непосредственно на SMARTY
да и к тому же пишут, что PHP-код в шаблоне - не очень хорошо.
Re: {get_template_vars} -> {php}
Posted: Fri Jan 22, 2010 7:39 am
by cyberman
OK, it's a lot easier (and faster) for me to answer in english - had my last russian lessons in school 20 years ago. Hope you will understand it.
To the first you should better use an UDT - User Defined Tag (menu Extensions > Userdefined Tags) - for including PHP inside CMSms. It's a nice option of CMSms and a lot securer.
To the second my solution works

- have check it on my playground. Please look here
http://www.just4test.de
What I have done:
1. Modify my template like
Code: Select all
{content block='specifications' assign='captured_content'} <br />
{content} <br />
2. Add an udt named "cap_content" with content
Code: Select all
$captured_content = $smarty->get_template_vars('captured_content');
echo $captured_content;
3. Add your last answer to content block "specifications"
4. Call udt with {cap_content} in the second content block
That's all ...
Re: {get_template_vars} -> {php}
Posted: Fri Jan 22, 2010 12:46 pm
by anort
cyberman wrote:
Попробуйте это
Code: Select all
{php}
global $gCms;
$captured_content = $smarty->get_template_vars('captured_content');
echo $captured_content;
{/php}
По-моему, в коде ошибка. Нужно писать так:
Code: Select all
{php}
global $gCms;
$captured_content = $gCms->smarty->get_template_vars('captured_content');
echo $captured_content;
{/php}
Re: {get_template_vars} -> {php}
Posted: Fri Jan 22, 2010 3:52 pm
by legko
Так работает без проблем!!!!
Code: Select all
$captured_content = $gCms->smarty->get_template_vars('captured_content');
Спасибо огромное!!!!
Re: {get_template_vars} -> {php} (РЕШЕНО)
Posted: Wed Nov 02, 2011 2:25 pm
by legko
Установил CMS SM v1.10 - конструкция не работает, а так как у нас на форумах принято самому себе отвечать на свои же вопросы,

новую тему создавать не буду.
Короче, что нужно сделать:
1. В корне сайта в config.php дописать следующее:
Code: Select all
$config['use_smarty_php_tags'] = true;
2. В нужном месте шаблона использовать конструкцию:
Code: Select all
{php}
global $gCms;
$FP = $gCms->GetSmarty()->get_template_vars('variable');
{/php}
, где
variable - имя переменной из тега get_template_vars