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