Добрый вечер, коллеги! У меня есть следующая задача. Нужно при выводе определенных компонентов заменять их код на мою надпись. Предполагается делать это в системном плагине. Но вот как определить, что это код модуля, а вот это код, собственно, компонента не очень понятно. Пока вижу только вариант - обратиться к шаблону и узнать какими тэгами обрамлен компонент. Отсюда вопрос - как программно работать с текущим шаблоном? Или как решить мою задачу, если есть другие варианты. P.S. Класс JTemplate кажется не про то.
Компоненты лежат в папке components, а модули - в modules Компонент в основном "обрамлен" своими тэгами. Шаблон описывает вид модулей в позициях шаблона и вывод некоторых компонентов, если в нем есть папка html и папки соответствующие по названию компонентов, вид вывода которых модифицируется. А также форматирование содержимого основного контента.
Итак, компонент произвольный. Соответственно, у каждого из компонентов своя специфика. В плагине я получаю уже готовый код страницы Код (PHP): $body = JResponse::getBody(); Это HTML. На этом этапе определить где в этом коде компонент, в общем случае, не получится. А вот если мы загрузим шаблон и поймем где в нем код подгрузки компонента, то мы сможем вычислить обрамляющие тэги. И сказать, что тот html, который между ними, это код компонента.
Код (PHP): $doc = &JFactory::getDocument(); $content = $doc->getBuffer('component'); $content = $content.' Ути-ути-пути'; $doc->setBuffer($content,'component');
Спасибо большое! То что доктор прописал. Отмечу, что в плагине это будет работать в методе onAfterDispatch()