max-vamshop 0 Posted June 24, 2020 Report Share Posted June 24, 2020 Раньше на 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 Link to post Share on other sites
support 447 Posted June 24, 2020 Report Share Posted June 24, 2020 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 Link to post Share on other sites
max-vamshop 0 Posted June 24, 2020 Author Report Share Posted June 24, 2020 попробовал {php} print_r($vamTemplate->getTemplateVars('box_LOGIN')); {/php} результат тот-же движок вылетает при попытке вызова getTemplateVars для чего нужно? ну как раньше я инклудировал какую нибудь фичу через {php} include '/php_код_скрипты_не совместимые_с_синтаксисом_смарти.php'; {/php} - именно так т.к. при данном способе вызова код внутри файла не обрабатываются смарти (там выкладывал всё что нужно без опаски что нибудь зацепить), но переменные от смарти всё равно иногда нужны , да и боксы целиком и я их вызывал через <? print_r($this->get_template_vars('box_LOGIN')); ?> но сейчас (с переходом vamshop на Smarty3) это неработает Link to post Share on other sites
support 447 Posted June 24, 2020 Report Share Posted June 24, 2020 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 Link to post Share on other sites
max-vamshop 0 Posted June 24, 2020 Author Report Share Posted June 24, 2020 Да это так, html для разметки а верста с отступами, таблицы для стилей, скрипты подключаются файлами - но это мечты а фот она жестокая реальность - где у тебя заскриптованный шаблон со стилями и сторонним API меняющий блоки и шаблоны в зависимости от кол-ва товаров в категории, кол-ва покупок, меняющиеся вид блока корзины в зависимости от наполнения товарами, разный вид сайта для залогиненного и незалогиненного и т.д. и всё это не проблемой раньше было а теперь мне нужна хоть какая нибудь функция которая бы брала данные из смарти находясь в <?php .... ;?> Link to post Share on other sites
support 447 Posted June 24, 2020 Report Share Posted June 24, 2020 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 Link to post Share on other sites
max-vamshop 0 Posted June 24, 2020 Author Report Share Posted June 24, 2020 Спасибо ! да дело было в global $vamTemplate его нужно объявлять код <?php global $vamTemplate; print_r($vamTemplate->getTemplateVars('box_LOGIN')); ?> вызовет блок {$box_LOGIN} из внешнего файла, если пользователь не залогинен пришлёт NULL Link to post Share on other sites
support 447 Posted June 24, 2020 Report Share Posted June 24, 2020 Не за что Link to post Share on other sites
Recommended Posts