Новости Joomla

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 11767 Просмотров
*

bigshot

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Как поставит картинку в title страницы???(Joomla 1.0.15) ::) 
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Re: Как поставить картинки в title???
« Ответ #1 : 14.10.2008, 16:41:21 »
титлов много разных, точнее плиз
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Как поставить картинки в title???
« Ответ #2 : 14.10.2008, 17:45:31 »
картинку в название страниц???
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

bigshot

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Как поставить картинки в title???
« Ответ #3 : 14.10.2008, 22:16:01 »
картинку в название страниц???
Разве так можно???
*

profiX0808

  • Захожу иногда
  • 497
  • 70 / 0
Re: Как поставить картинки в title???
« Ответ #4 : 14.10.2008, 22:18:56 »
возможно речь идет о фавиконе :)
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Как поставить картинки в title???
« Ответ #5 : 14.10.2008, 22:25:28 »
Возможно...будем ждать пока автор темы снизойдет до более подробного изложения)))
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

bigshot

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Как поставить картинки в title???
« Ответ #6 : 14.10.2008, 22:39:12 »
Возможно...будем ждать пока автор темы снизойдет до более подробного изложения)))
Есть содержимое категории допустим "Воздух, Земля , Вода" три пункта я хочу что бы при входе на определенную страницу был тайтл с определенной картинкой...(Извините за некорректно составленный вопрос).
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Re: Как поставить картинки в title???
« Ответ #7 : 14.10.2008, 23:00:50 »
вариант таков:
в начале текста вставляешь картинку и задаешь ей стиль с отрицательным маргином: margin-top:-30px (это например) может потребоваться сделат еще display:block; position:relative;

может не получиться :)

другой вариант:
вставляеш картинку через {mosimage}, потом лезешь в код  мамбота и там, где происходит вставка тега <img... в $row->text подставляешь вместо $row->text зачение $row->title

а из $row->text удаляешь тег {mosimage}

это будет более правильное решение, если не сможешь сам, то я завтра как-нить сделаю тебе данный хак
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Как поставить картинки в title???
« Ответ #8 : 14.10.2008, 23:06:07 »
хм..и мы теряем мамбот mosimage?
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Re: Как поставить картинки в title???
« Ответ #9 : 14.10.2008, 23:13:21 »
нет, можно расширить мосимайдже и добавить параметр типа {mosimage intitle=1}
если этого параметра нет, то это обычная картинка в тексте, иначе картинка уйдет в заголовок страницы
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Re: Как поставить картинки в title???
« Ответ #10 : 16.10.2008, 17:04:28 »
function Title( &$row, &$params, &$access, ---> &$mosConfig_live_site )
убери , ---> &$mosConfig_live_site
а добавь global $mosConfig_live_site; под function Title( &$row, &$params, &$access, ---> &$mosConfig_live_site )
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Re: Как поставить картинки в title???
« Ответ #11 : 03.11.2008, 22:00:18 »
Вобщем двигались мы правильно, но не совсем туда )))

Для пугктов меню типа Блог - содержимое раздела и Блог - содержимое категории следующий код:

в файле /components/com_content/content.php
найти
Код
function BlogOutput ( &$rows, &$params, $gid, &$access, $pop, &$menu, $limitstart, $limit, $total, $archive=NULL, $archive_page=NULL ) {

в ней далее найти вывод заголовка
Код
	if ( $header ) {

echo '<div class="componentheading'. $params->get( 'pageclass_sfx' ) .'">'. $header .'</div>';
}

и добавить перед $header

Код
($params->get('menu_image') ? '<img src="'.$mosConfig_live_site.'/images/stories/'.$params->get('menu_image').'" />' : '')

и все будет работать нормально )))

ниже файл, который тебе нужно заменить, он от 1.0.13, но структура идентична и в 1.0.15 ))
в content.html.php удали внесенные изменения )))

[вложение удалено Администратором]
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема в отображении Title и Description

Автор rastik23

Ответов: 0
Просмотров: 3007
Последний ответ 10.03.2014, 10:42:04
от rastik23
как убрать из title главной страницы слово" Главная"?

Автор vovchikku

Ответов: 2
Просмотров: 5855
Последний ответ 14.11.2009, 22:24:27
от smart
Как сделать название главы в title страницы при разделении mospagebreak

Автор krasniy001

Ответов: 11
Просмотров: 3478
Последний ответ 07.08.2009, 17:43:13
от palexa
Вывод картинки в списке новостей категории?

Автор forward

Ответов: 6
Просмотров: 2761
Последний ответ 24.06.2009, 17:03:28
от ShadowXak
Как сделать заголовок отдельно а title отдельно

Автор polla

Ответов: 5
Просмотров: 2337
Последний ответ 03.06.2009, 23:24:24
от ShadowXak