Как обратиться к переменной хука компонента?

#1 26 июня 2021 в 15:20
Ситуация следующая, есть компонент, у этого компонента есть хук, там есть класс и функция, и вот в этой функции есть переменная, в которой есть текстовая информация, к примеру так

<?php
class onSupercomponentContentBeforeItem extends cmsAction {
public function run($data){
.....
$blabla = "Супер текст, от супер компонента!";
.....

вот путь компонента
system/controllers/supercomponent/hooks/content_before_item.php

Переменную $blabla я хочу вывести к примеру здесь default_item.tpl.php. Скажите пожалуйста, как обратиться к переменной $blabla хука компонента и вывести её?
#2 26 июня 2021 в 17:31
  1.  
  2. public function run($data) {
  3. ```
  4. $data["blabla"] = $blabla;
  5. return $data;
  6. }
  7.  
#3 26 июня 2021 в 18:48
Так а вывести как здесь default_item.tpl.php? И я думаю не нужно трогать переменную $data.
#4 26 июня 2021 в 19:47

И я думаю не нужно трогать переменную $data .

Vladimir
Хук content_before_item, это не хук компонента суперпупер, это хук компонента контент. И он существует именно для "вынесенной" обработки переменной $data. Все действия в хуке выполняются именно с этой переменной и если её не трогать, смысла в этом хуке нет.
  1. list($ctype, $item, $fields) = cmsEventsManager::hook('content_before_item', array($ctype, $item, $fields));
@IamB,
Увы, так просто не сработает. Ведь отправки в шаблон переменной блабла нет.
#5 26 июня 2021 в 20:16

Ведь отправки в шаблон переменной блабла нет.

Ris
Вы правы, но запихнуть блабла, например, в $item в наших силах?
#6 26 июня 2021 в 20:36

Вы правы, но запихнуть блабла, например, в $item в наших силах?

@IamB
Именно!
#7 27 июня 2021 в 09:48
Можно передать только в виде html кода.
Да и вообще вопрос не понятен. Вы используете хук другого компонента или своего супер? Если другого, то в шаблон какого нужно передать? Например вы создаёте событие в контроллере А и вам надо передать в шаблон контроллера А переменную из контроллера В. Тогда вы создаёте хук события контроллера А в контроллере В. И теперь вы можете переменую из контроллера В поместить в массив данных хука и вернуть назад. Или же, как я писал выше, можно использовать хук process_render_A_default в контроллере В и передать $blabla в виде html в шаблон default контроллера А
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.