Ситуация следующая, есть компонент, у этого компонента есть хук, там есть класс и функция, и вот в этой функции есть переменная, в которой есть текстовая информация, к примеру так
<?php
class onSupercomponentContentBeforeItem extends cmsAction {
public function run($data){
.....
$blabla = "Супер текст, от супер компонента!";
.....
вот путь компонента
system/controllers/supercomponent/hooks/content_before_item.php
Переменную $blabla я хочу вывести к примеру здесь default_item.tpl.php. Скажите пожалуйста, как обратиться к переменной $blabla хука компонента и вывести её?
#1
26 июня 2021 в 15:20
#2
26 июня 2021 в 17:31
public function run($data) { ``` $data["blabla"] = $blabla; return $data; }
Так а вывести как здесь default_item.tpl.php? И я думаю не нужно трогать переменную $data.
Сегодня в 11:40
#4
26 июня 2021 в 19:47
Хук content_before_item, это не хук компонента суперпупер, это хук компонента контент. И он существует именно для "вынесенной" обработки переменной $data. Все действия в хуке выполняются именно с этой переменной и если её не трогать, смысла в этом хуке нет.И я думаю не нужно трогать переменную $data .
Увы, так просто не сработает. Ведь отправки в шаблон переменной блабла нет.
#5
26 июня 2021 в 20:16
Вы правы, но запихнуть блабла, например, в $item в наших силах?Ведь отправки в шаблон переменной блабла нет.
#6
26 июня 2021 в 20:36
Именно!Вы правы, но запихнуть блабла, например, в $item в наших силах?
Можно передать только в виде html кода.
Да и вообще вопрос не понятен. Вы используете хук другого компонента или своего супер? Если другого, то в шаблон какого нужно передать? Например вы создаёте событие в контроллере А и вам надо передать в шаблон контроллера А переменную из контроллера В. Тогда вы создаёте хук события контроллера А в контроллере В. И теперь вы можете переменую из контроллера В поместить в массив данных хука и вернуть назад. Или же, как я писал выше, можно использовать хук process_render_A_default в контроллере В и передать $blabla в виде html в шаблон default контроллера А
Да и вообще вопрос не понятен. Вы используете хук другого компонента или своего супер? Если другого, то в шаблон какого нужно передать? Например вы создаёте событие в контроллере А и вам надо передать в шаблон контроллера А переменную из контроллера В. Тогда вы создаёте хук события контроллера А в контроллере В. И теперь вы можете переменую из контроллера В поместить в массив данных хука и вернуть назад. Или же, как я писал выше, можно использовать хук process_render_A_default в контроллере В и передать $blabla в виде html в шаблон default контроллера А