{get_template_vars} -> {php} (РЕШЕНО)

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
legko
Forum Members
Forum Members
Posts: 88
Joined: Sun Jan 10, 2010 1:54 am

{get_template_vars} -> {php} (РЕШЕНО)

Post 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?
Last edited by legko on Fri Jan 22, 2010 3:52 pm, edited 1 time in total.
cyberman

Re: {get_template_vars} -> {php}

Post 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
Last edited by cyberman on Wed Jan 20, 2010 7:31 am, edited 1 time in total.
legko
Forum Members
Forum Members
Posts: 88
Joined: Sun Jan 10, 2010 1:54 am

Re: {get_template_vars} -> {php}

Post by legko »

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
Смотрел и пробовал, не работает конструкция видимо чего-то нужно после тега {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
Еще раз напоминаю, что все это дело происходит в шаблоне сайта, возможно поэтому и не работает.
Может еще какие мысли есть?
Last edited by legko on Wed Jan 20, 2010 9:28 am, edited 1 time in total.
cyberman

Re: {get_template_vars} -> {php}

Post 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.
legko
Forum Members
Forum Members
Posts: 88
Joined: Sun Jan 10, 2010 1:54 am

Re: {get_template_vars} -> {php}

Post by legko »

спасибо за помощь, но...
... не работает, а времени разбираться совершенно нет
видимо что-то в настройках нужно изменить

выкручиваюсь непосредственно на SMARTY
да и к тому же пишут, что PHP-код в шаблоне - не очень хорошо.
Last edited by legko on Thu Jan 21, 2010 4:43 pm, edited 1 time in total.
cyberman

Re: {get_template_vars} -> {php}

Post 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" 8)

4. Call udt with {cap_content} in the second content block

That's all ...
anort
Forum Members
Forum Members
Posts: 12
Joined: Sat Jan 09, 2010 3:22 pm

Re: {get_template_vars} -> {php}

Post 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} 
legko
Forum Members
Forum Members
Posts: 88
Joined: Sun Jan 10, 2010 1:54 am

Re: {get_template_vars} -> {php}

Post by legko »

Так работает без проблем!!!!

Code: Select all

$captured_content = $gCms->smarty->get_template_vars('captured_content');
Спасибо огромное!!!!
legko
Forum Members
Forum Members
Posts: 88
Joined: Sun Jan 10, 2010 1:54 am

Re: {get_template_vars} -> {php} (РЕШЕНО)

Post 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
Post Reply

Return to “Russian - русский”