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

bobru

  • Новичок
  • 2
  • 0 / 0
W3C результаты проверки CSS
« : 16.07.2009, 15:04:32 »
Хотелось бы поподробнее узнать об этой проверке.
 например
Ошибка значения : font-family имена базовых семейств являются ключевыми словами и не должны заключаться в кавычки. : 'Tahoma','sans-serif'
стоит ли вводить исправленный вариант.
потом такая встечается проблема.
Я шаблон немного изменил, а точнее цвета.
Эта же проверка говорит о несуществовании или невозможности цвета, хотя точно web-цвет, да и отображается на сайте именно указанный цвет. в итоге сайт полетел, ошибка в шаблоне в коде пхп кажется. что делать?
и как смотреть css других сайтов
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
Re: W3C результаты проверки CSS
« Ответ #1 : 17.07.2009, 09:00:04 »
имя базового семейства это sans-serif, monospace и т.д. и не должны заключатся в кавычки. в кавычки(двойные, а не одинарные как у вас) заключаются имена шрифтов которым дается приоритет. к примеру font-family: "Arial", Verdana, Helvetica, sans означает что приоритетным шрифтом на сайте будет Arial, а при его отсутствии у клиента будет использоваться Verdana а при её отсутствии Helvetica, а если всех 3-ёх нет то будет использоватся шрифт установленный в системе клиента по-умолчанию. sans означает гарнитуру шрифта без засечек. monospace - шрифт, элементы которого одинаковой ширины.

теперь по цвету. валидатор ругается по причине того что возможно у вас не websafe цвет шрифта. т.е. есть группы цветов которые в всех браузерах и почти на всех системах будут выглядеть визуально одинаково. если же не websafe то нетгарантии что цвет который у вас показан как болотным у клиента не станет темно-зеленым.
в принципе в этом страшного ничего нет.
/* Have a nice day! */
*

IRIDON

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: W3C результаты проверки CSS
« Ответ #2 : 17.07.2009, 09:49:51 »
Знаешь попробуй проверить эту систему на сайте Google и увидидишь сколько Google светит ошибок.

http://validator.w3.org/check?verbose=1&uri=http%3A%2F%2Fwww.Google.com.ua%2Fsearch%3Fhl%3Dru%26q%3D4%26btnG%3D%25D0%259F%25D0%25BE%25D0%25B8%25D1%2581%25D0%25BA%2B%25D0%25B2%2BGoogle%26meta%3D%26aq%3Df%26oq%3D

Я смотрю что мало сайтов провереяться этим сервисом. Хотя я  проверяю и устраняю подобные ошибки которие он показывает (эсли могу конечно =))
*

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
Re: W3C результаты проверки CSS
« Ответ #3 : 18.07.2009, 03:26:35 »
Цитировать
имя базового семейства это sans-serif, monospace и т.д. и не должны заключатся в кавычки. в кавычки(двойные, а не одинарные как у вас) заключаются имена шрифтов которым дается приоритет. к примеру font-family: "Arial", Verdana, Helvetica, sans означает что приоритетным шрифтом на сайте будет Arial, а при его отсутствии у клиента будет использоваться Verdana а при её отсутствии Helvetica, а если всех 3-ёх нет то будет использоватся шрифт установленный в системе клиента по-умолчанию. sans означает гарнитуру шрифта без засечек. monospace - шрифт, элементы которого одинаковой ширины.

Не совсем точно. Если шрифт заключается в кавычки, то он не является приоритетным. Он и так приоритетней, чем остальные, так как он на первом месте в этом списке. Когда Вы заключается шрифт в кавычки, то Вы называется точное имя у этого шрифта, например, у шрифта Arial есть разновидности, такие как Arial Black, Arial Narrow, Arial Unicode MS и т.д., и когда в ковычках например указан "Arial Narrow", браузер пытается найти именно эту разновидность этого шрифта, а потом уже остальные по списку. Если без кавычек указать, а просто Arial, браузер будет пытаться найти любой имеющийся шрифт из семейства Arial, в случаи неудачи - дальше по списку. Вот как-то так.

Цитировать
Знаешь попробуй проверить эту систему на сайте Google и увидидишь сколько Google светит ошибок.

Подход не верен. Следует всегда стараться писать вылидный HTML и валидный СSS, тем более, что касается CSS, его валидость легко исправить.
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
Re: W3C результаты проверки CSS
« Ответ #4 : 19.07.2009, 00:45:23 »
Не совсем точно

как тогда по вашему будет обработан код font-family: Arial, "Arial Black", sans-serif; ?
/* Have a nice day! */
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: W3C результаты проверки CSS
« Ответ #5 : 19.07.2009, 00:48:19 »
как тогда по вашему будет обработан код font-family: Arial, "Arial Black", sans-serif; ?
а так писать нельзя, ведь ни в одной системе кроме windows ваш шрифт Arial Black не будет найдет, аналогично с вероятностью в 90% не найден и sans-serif и что дальше - что увидят пользователи никс мака и прочих?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
Re: W3C результаты проверки CSS
« Ответ #6 : 19.07.2009, 20:32:08 »
Цитировать
как тогда по вашему будет обработан код font-family: Arial, "Arial Black", sans-serif;

Увидят текст в шрифте Arial, а не именно Arial Black. Браузер закончит обработку этого правила при первой удачной попытке. Если поиск шрифта Arial будет не успешным, то тогда браузер тупа начнет искать именно "Arial Black" и тоже не найдет, так как не нашел ни одного из семейства Arial, в итоге будет применен первый попавшийся шрифт из типов шрифтом sans-serif.

Но в целом такая запись некорректна, как уже сказал beliyadm

П.С. 2 Helios - на аватарке нас двое, но я один, один человек. =)))))
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
Re: W3C результаты проверки CSS
« Ответ #7 : 20.07.2009, 09:08:08 »
ы :) знач у мну в книге неправильный перевод спецификации... плин нуно оригинал помучить будет.
/* Have a nice day! */
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Re: W3C результаты проверки CSS
« Ответ #8 : 20.07.2009, 09:51:04 »
ы :) знач у мну в книге неправильный перевод спецификации... плин нуно оригинал помучить будет.

http://pyramidin.narod.ru/css2/fonts.html#font-family-prop

Цитировать
Имена семейств шрифтов, содержащие пробелы, должны заключаться в кавычки. Если кавычки отсутствуют, любые символы пробела до и после имени шрифта игнорируются, а любая последовательность пробелов внутри имени шрифта конвертируется в одиночный пробел.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться