Перейти к содержанию
Форум поддержки пользователей VamShop

Vamshop1.9 Smarty3 не работает getTemplateVars


Рекомендуемые сообщения

Раньше на Smarty2   конструкции вида:

{php}  print_r($this->get_template_vars('box_LOGIN'));   {/php}

или из includированаго файла

 <? print_r($this->get_template_vars('box_LOGIN')); ?>

работали, а теперь нет

 

* php включено по инструкции 

* прочитал документацию Smarty3 теперь функция  get_template_vars переименована в  getTemplateVars

но конструкции вида <? print_r($this->getTemplateVars('box_LOGIN')); ?>
и
 {php} print_r($this->getTemplateVars('box_LOGIN'));   {/php}

серовно не работают подскажите пожалуйста как включить getTemplateVars

 

 

Ссылка на сообщение
Поделиться на другие сайты
50 минут назад, max-vamshop сказал:

Раньше на Smarty2   конструкции вида:

{php}  print_r($this->get_template_vars('box_LOGIN'));   {/php}

или из includированаго файла

 <? print_r($this->get_template_vars('box_LOGIN')); ?>

работали, а теперь нет

 

* php включено по инструкции 

* прочитал документацию Smarty3 теперь функция  get_template_vars переименована в  getTemplateVars

но конструкции вида <? print_r($this->getTemplateVars('box_LOGIN')); ?>
и
 {php} print_r($this->getTemplateVars('box_LOGIN'));   {/php}

серовно не работают подскажите пожалуйста как включить getTemplateVars

 

 

А для чего это?!

Я вообще никогда даже и не использовал.

А что там в $this ?!

Может попробовать всё-таки $vamTemplate->getTemplateVars()

 

По идее, шаблоны определяются как $vamTemplate

Ссылка на сообщение
Поделиться на другие сайты

попробовал  {php} print_r($vamTemplate->getTemplateVars('box_LOGIN'));    {/php} 

результат тот-же  движок вылетает при попытке вызова getTemplateVars 

 

для чего нужно? 
ну как раньше я инклудировал какую нибудь фичу через {php} include '/php_код_скрипты_не совместимые_с_синтаксисом_смарти.php'; {/php} - именно так т.к. при данном способе вызова код внутри файла не обрабатываются смарти  (там выкладывал всё что нужно без опаски что нибудь зацепить), но переменные от смарти всё равно иногда нужны , да и боксы целиком и я их вызывал через <? print_r($this->get_template_vars('box_LOGIN')); ?> 
но сейчас (с переходом vamshop на Smarty3) это неработает

 

 

Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, max-vamshop сказал:

попробовал  {php} print_r($vamTemplate->getTemplateVars('box_LOGIN'));    {/php} 

результат тот-же  движок вылетает при попытке вызова getTemplateVars 

 

для чего нужно? 
ну как раньше я инклудировал какую нибудь фичу через {php} include '/php_код_скрипты_не совместимые_с_синтаксисом_смарти.php'; {/php} - именно так т.к. при данном способе вызова код внутри файла не обрабатываются смарти  (там выкладывал всё что нужно без опаски что нибудь зацепить), но переменные от смарти всё равно иногда нужны , да и боксы целиком и я их вызывал через <? print_r($this->get_template_vars('box_LOGIN')); ?> 
но сейчас (с переходом vamshop на Smarty3) это неработает

 

 

Вообще я считаю, что это не совсем правильно, да и смарти говорит, что php внутри шаблонов быть не должно.

А почему не хотите именно в php держать данные только.

А в шаблоне - html разметку.

Ведь идея смарти именно в разделении данных, кода от вёрстки.

У меня вот так работает:

echo var_dump($box->getTemplateVars());

Это я для пробы вставил в /templates/vamshop4/source/boxes/information.php

Ссылка на сообщение
Поделиться на другие сайты

Да это так,
 html  для разметки а верста с отступами, таблицы для стилей, скрипты подключаются файлами - но это мечты

а фот она жестокая реальность - где у тебя заскриптованный шаблон со стилями и сторонним API меняющий блоки и шаблоны в зависимости от кол-ва товаров в категории, кол-ва покупок, меняющиеся вид блока корзины в зависимости от наполнения товарами, разный вид сайта для залогиненного и незалогиненного и т.д.

и всё это не проблемой раньше было а теперь мне нужна хоть какая нибудь функция которая бы брала данные из смарти находясь в <?php .... ;?>

Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, max-vamshop сказал:

Да это так,
 html  для разметки а верста с отступами, таблицы для стилей, скрипты подключаются файлами - но это мечты

а фот она жестокая реальность - где у тебя заскриптованный шаблон со стилями и сторонним API меняющий блоки и шаблоны в зависимости от кол-ва товаров в категории, кол-ва покупок, меняющиеся вид блока корзины в зависимости от наполнения товарами, разный вид сайта для залогиненного и незалогиненного и т.д.

и всё это не проблемой раньше было а теперь мне нужна хоть какая нибудь функция которая бы брала данные из смарти находясь в <?php .... ;?>

Да, кстати, а попробуйте добавить global

Может он просто не видит $vamTemplate

т.е. вот так:

{php} global $vamTemplate; echo var_dump($vamTemplate->getTemplateVars()));    {/php} 

или так:

{php} global $box; echo var_dump($box->getTemplateVars()));    {/php} 

 

10 минут назад, max-vamshop сказал:

а фот она жестокая реальность - где у тебя заскриптованный шаблон со стилями и сторонним API меняющий блоки и шаблоны в зависимости от кол-ва товаров в категории, кол-ва покупок, меняющиеся вид блока корзины в зависимости от наполнения товарами, разный вид сайта для залогиненного и незалогиненного и т.д.

 

Ну для этого надо просто разделить backend и frontend.

т.е. сделать работу с api и на стороне frontend рисовать что угодно через тот же React.

Именно так работает VamShop PWA - https://vamhost.ru

Ссылка на сообщение
Поделиться на другие сайты

Спасибо ! да дело было в global $vamTemplate его нужно объявлять

код 
   <?php 
        global $vamTemplate; 
     print_r($vamTemplate->getTemplateVars('box_LOGIN')); 
   ?> 

вызовет блок {$box_LOGIN} из внешнего файла, если пользователь не залогинен пришлёт NULL

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...