max-vamshop 0 Опубликовано 24 июня, 2020 Жалоба Share Опубликовано 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 Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 июня, 2020 Жалоба Share Опубликовано 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 Ссылка на сообщение Поделиться на другие сайты
max-vamshop 0 Опубликовано 24 июня, 2020 Автор Жалоба Share Опубликовано 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) это неработает Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 июня, 2020 Жалоба Share Опубликовано 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 Ссылка на сообщение Поделиться на другие сайты
max-vamshop 0 Опубликовано 24 июня, 2020 Автор Жалоба Share Опубликовано 24 июня, 2020 Да это так, html для разметки а верста с отступами, таблицы для стилей, скрипты подключаются файлами - но это мечты а фот она жестокая реальность - где у тебя заскриптованный шаблон со стилями и сторонним API меняющий блоки и шаблоны в зависимости от кол-ва товаров в категории, кол-ва покупок, меняющиеся вид блока корзины в зависимости от наполнения товарами, разный вид сайта для залогиненного и незалогиненного и т.д. и всё это не проблемой раньше было а теперь мне нужна хоть какая нибудь функция которая бы брала данные из смарти находясь в <?php .... ;?> Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 июня, 2020 Жалоба Share Опубликовано 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 Ссылка на сообщение Поделиться на другие сайты
max-vamshop 0 Опубликовано 24 июня, 2020 Автор Жалоба Share Опубликовано 24 июня, 2020 Спасибо ! да дело было в global $vamTemplate его нужно объявлять код <?php global $vamTemplate; print_r($vamTemplate->getTemplateVars('box_LOGIN')); ?> вызовет блок {$box_LOGIN} из внешнего файла, если пользователь не залогинен пришлёт NULL Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 июня, 2020 Жалоба Share Опубликовано 24 июня, 2020 Не за что Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения