Новости 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 Гость просматривают эту тему.
  • 17 Ответов
  • 2413 Просмотров
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
Всем привет! (Сразу скажу в коде не силен) Хотел поставить спойлер на сайт. Нашел на этом сайте как это организовать (http://lepeta.net/archive/vebmasteru/vy%D0%BErstka/proshchajte-spojlery-zdravstvuj-html5.html)
Ну думаю здорово! Вырубаю редактор, ставлю код, а он начинает делать отступы после сохранения материала.
Пример на стандартном шаблоне - protostar - Default (Joomla3)
Спойлер
[свернуть]
Откуда они появляются эти теги? -
<p> </p>
<p> </p>
Убираю в коде, все равно обратно встают. Спойлер как будто отталкивается от текста.
Думал поставить плагин LVSpoiler, но он притормаживает на мобильных устройствах, а этот код на HTML5 прям быстро все отображает. Как исправить отступы? Заранее благодарен) 
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
<p></p> из редактора.
при сохранении(видно он не настроен) и добавляет.
///
простенький скрипт:

Код
<script type="text/javascript">
$(document).ready(function(){
 $('.spoiler_links').click(function(){
  $(this).parent().children('div.spoiler_body').toggle('normal');
  return false;
 });
});
</script>

и вызов:

Код
<div>
 <a href="" class="spoiler_links">#1</a>
 <div class="spoiler_body">
тело #1
 </div>
</div>

<div>
 <a href="" class="spoiler_links">#2</a>
 <div class="spoiler_body">
тело #2
 </div>
</div>
« Последнее редактирование: 16.04.2016, 20:00:49 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
<p></p> из редактора.
при сохранении(видно он не настроен) и добавляет.
Ну а как его настроить то?? Вот ссылка на мой сайт http://manifico.kz/
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
там я ещё квери не подключал, подумал вы в курсе, но по вашем ответу понял, что не особо.
начните с того, какой редактор вы используете.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
Ну а как его настроить то?? Вот ссылка на мой сайт http://manifico.kz/
Сорри за глупый вопрос - скрипт сунуть надо в Тэмплэйт.css или в Индекс.php?
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
там я ещё квери не подключал, подумал вы в курсе, но по вашем ответу понял, что не особо.
начните с того, какой редактор вы используете.
Tiny (расширенный)
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Вы начните с того, что от спойлера вы хотите?!

скрипт перед тегом </body>, вызов квери между <head> и </head>, дивы там где вывод.

Это плавный вызов спойлера.

Какие у вас эффекты и каков функционал?
Может у вас спойлер только для .., или тем..., или ещё как-то.

Вот скрипт подключения к данному синтаксису: https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
« Последнее редактирование: 16.04.2016, 20:15:52 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
Вы начните с того, что от спойлера вы хотите?!

скрипт перед тегом </body>, вызов квери между <head> и </head>, дивы там где вывод.
На данный момент спойлер работает как нужно (без эффекта выкатывания, просто появился тектс и все, очень похоже на эффект табов) единственное что пытаюсь исправить это отступ от текста вверху и в низу - http://manifico.kz/.

Это плавный вызов спойлера.

Какие у вас эффекты и каков функционал?
Может у вас спойлер только для .., или тем..., или ещё как-то.
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
Вы начните с того, что от спойлера вы хотите?!

скрипт перед тегом </body>, вызов квери между <head> и </head>, дивы там где вывод.

Это плавный вызов спойлера.

Какие у вас эффекты и каков функционал?
Может у вас спойлер только для .., или тем..., или ещё как-то.

Вот скрипт подключения к данному синтаксису: https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js

На данный момент спойлер работает как нужно (без эффекта выкатывания, просто появился тектс и все, очень похоже на эффект табов) единственное что пытаюсь исправить это отступ от текста вверху и в низу - http://manifico.kz/
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
Вы начните с того, что от спойлера вы хотите?!

скрипт перед тегом </body>, вызов квери между <head> и </head>, дивы там где вывод.

Это плавный вызов спойлера.

Какие у вас эффекты и каков функционал?
Может у вас спойлер только для .., или тем..., или ещё как-то.

Вот скрипт подключения к данному синтаксису: https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
Могу скинуть данные к администрированию, сами увидите появляется тег <p> </p>
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
1. Уберите синюю обводку ссылки спойлера.
Это у вас в 556 строке в темплейтс/протостар/темплейт.цсс

добавьте к диву strong это:
outline:none;

2.Там же в строке 7496 для summary добавить margin: 10px;
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
там я ещё квери не подключал, подумал вы в курсе, но по вашем ответу понял, что не особо.
начните с того, какой редактор вы используете.
Спасибо! Начал рыть в сторону редактора. Установил JCE НЕпомогло. Психанул, скинул JCE, поставил обратно Tiny, методом тыка и мата переставил "Новые строки" - Теги Р на "Новые строки" - Теги BR. Отступы не появляются. Тема закрыта)
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Решение не верное, но жираф большой - ему видней. (с)
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
Решение не верное, но жираф большой - ему видней. (с)
?
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
Решение не верное, но жираф большой - ему видней. (с)
Почему неверное? Может я своим дилетантским взглядом не разглядел, вроде все работает. Меня этот ответ пугает))) Опять все тазом медным накроется да?) Что не так то?
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
А можно в двух словах, для жирафа, что неверно? ^-^
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
ну хотя бы сравните 2 скрина, мой с разжёвыванием где и что делать и вашу реальность, то, что вы не послушались меня.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Dannik

  • Захожу иногда
  • 164
  • 0 / 0
ну хотя бы сравните 2 скрина, мой с разжёвыванием где и что делать и вашу реальность, то, что вы не послушались меня.
С удовольствие продолжил бы диалог про "мою реальность" но на моих уже второй час ночи. Хотелось бы подробнее узнать чем так плох метод который Я сделал, придется завтра обсудить)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Тег iframe и его содержимое, возможно добиться в html5

Автор leo78

Ответов: 12
Просмотров: 3146
Последний ответ 04.03.2017, 00:52:52
от leo78
Проблема с отступами

Автор vasyakril

Ответов: 10
Просмотров: 2287
Последний ответ 01.05.2013, 11:00:09
от vasyakril
Проблема с отступами и не только

Автор Loh

Ответов: 3
Просмотров: 2045
Последний ответ 28.03.2010, 18:44:53
от Loh