Добрый день, интересует такой вопрос: как я могу передать данные, полученные в init.post.php пост контроллере для фронтенда и для бекенда моего модуля в шаблон моего модуля scripts.post.tpl, для отрисовки скриптов.
[quote name='Aleksey.Chuyan' timestamp='1438611693' post='225427']
Добрый день, интересует такой вопрос: как я могу передать данные, полученные в init.post.php пост контроллере для фронтенда и для бекенда моего модуля в шаблон моего модуля scripts.post.tpl, для отрисовки скриптов.
[/quote]
Смарти переменная создаётся и она уже доступна в шаблонах, может использоваться при отрисовке.
Пример:
/app/addons/seo/controllers/frontend/init.post.php
Расскажите детальней задачу.
Есть ядро нашего модуля, которое осуществляет все запросы на сервер. Сейчас задача написать интегратор. Есть js скрипты, которые я подключил в хуке index:scripts в посте. Теперь задача стоит. Есть несколько методов ядра, которые должны быть подключены на каждой станице фронтенда. Я реализовал их, добавив свою функцию в func.php моего модуля. Инициализировал эту функцию в модуле в frontend/init.post.php. Тут все хорошо работает. Теперь задача полученные в init.post.php данные (диамически сгенерированный js) добавить на каждой станице. Буду очень признателен если направите в нужном направлении.
Так.
- init.post.php у Вас на каждой странице что то получает. Передайте это что то в SMARTY, с помощью:
Tygh::$app['view']->assign('my_var', $my_var);
Смотрим пример в файле модуля “Обратный звонок”:
/app/addons/call_requests/controllers/frontend/init.post.php
2. Теперь у Вас в SMARTY доступна переменная
{$my_var}
и Вы можете делать что хотите, например как модуль “Обратный звонок” создать JavaScript переменную:
/design/themes/responsive/templates/addons/call_requests/hooks/index/scripts.post.tpl
или под какими нибудь условиями выводить что нибудь.
[size=4]доброе утро, посоветуйте пожалуйста, создал design/themes/responsive/templates/addons/triggmine/hooks/index/footer.post.tpl[/size]
[size=4]в нем вывожду переменную {$triggmine_scripts}, передаваемую в init.post.php, как вы описали выше. В футер должна приходить и выводиться строка вида:[/size]
[size=4][font=arial,helvetica,sans-serif]<script type='text/javascript' src='test1.local?triggmine_async=1&_action=getVisitor&Data=%7B%22dummy%22%3A1%2C%22Agent%22%3A%22CS-Cart%22%7D&salt=JilkA7wH'>[/font][/size]
В дальнейшем таких строк будет несколько, соответственно будут подключаться нужные скрипты. Только вот пока в футере ничего не выводится. Возможно я что-то не так сделал с подключением к хуку index:footer?
Да вроди так[quote name='Aleksey.Chuyan' timestamp='1438676471' post='225502']
В дальнейшем таких строк будет несколько, соответственно будут подключаться нужные скрипты. Только вот пока в футере ничего не выводится. Возможно я что-то не так сделал с подключением к хуку index:footer?
[/quote]
Да вроди так,
- удалите папку /var/cache в папке магазина, чтобы очистить кэш.
- Ищите Ваш скрипт поиском по коду, так как все скрипты вырезаются и переносятся в самый низ. Чтобы скрипт не переносился, добавьте атрибут data-no-defer
Спасибо, вроде как разобрался. Отличная у вас поддержка 5+
[quote name='Aleksey.Chuyan' timestamp='1438678494' post='225504']
Спасибо, вроде как разобрался. Отличная у вас поддержка 5+
[/quote]
Спасибо.
Есть видосики:
Еще такой вопрос возник: получил переменную в smarty шаблоне footer.post.tpl. Вывожу переменную {$triggmine_scripts}. При этом интерпритатор отрисовывает на странице текст, а как сделать, чтоб переменная выводилась как скрипт?
[quote name='Aleksey.Chuyan' timestamp='1438679962' post='225509']
Еще такой вопрос возник: получил переменную в smarty шаблоне footer.post.tpl. Вывожу переменную {$triggmine_scripts}. При этом интерпритатор отрисовывает на странице текст, а как сделать, чтоб переменная выводилась как скрипт?
[/quote]
[color=#282828][font=arial, verdana, tahoma, sans-serif]{$triggmine_scripts nofilter}
[/font][/color]
Пытаюсь подключиться к php хуку login_user_pre. Указал его в init.php, в func.php добавил функцию
[color=#cc7832]function [/color][color=#ffc66d]fn_triggmine_sucess_user_login/color{
fn_print_r([color=#6a8759]'sucess_user_login'[/color])[color=#cc7832];
[/color][color=#cc7832] [/color]fn_print_die()[color=#cc7832];
[/color]}
[font=arial,helvetica,sans-serif][size=4]Выдало ошибку:[/size][/font]
[font=arial,helvetica,sans-serif][size=4]Tygh\Exceptions\AException[/size][/font]
[font=arial,helvetica,sans-serif][size=4]Message[/size][/font]
[color=#000000]
Hook fn_triggmine_login_user_pre is not callable[/color]
к хуку [color=#ffc66d]sucess_user_login[/color]
[quote name='Aleksey.Chuyan' timestamp='1438689108' post='225539']
к хуку [color=#ffc66d]sucess_user_login[/color]
[/quote]
А где код init.php
deleted (тоже самое спросил)
[color=#cc7832]<?php
[/color]
[color=#cc7832]if /color { [color=#cc7832]die[/color]([color=#6a8759]'Access denied'[/color])[color=#cc7832]; [/color]}
fn_register_hooks(
[color=#6a8759]'login_user_pre'[/color][color=#cc7832],
[/color][color=#cc7832] [/color][color=#6a8759]'sucess_user_login'[/color][color=#cc7832],
[/color][color=#cc7832] [/color][color=#6a8759]'login_user_post'[/color][color=#cc7832],
[/color][color=#cc7832] [/color][color=#6a8759]'user_init'
[/color])[color=#cc7832];[/color]
app/addons/triggmine/init.php
Все, разобрался - спасибо. Было связано с кэшем.