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

krechet47

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Добрый день! Проблема такая. В компоненте К2 по умолчанию изображения выравниваются по ширине, а возможно ли сделать так, чтобы они выравнивались по высоте? На К2 у меня каталог товаров. Надо чтоб каждый товар при просмотре категории выравнивался по высоте.



Изменял файл  components\com_k2\templates\default\category.php  , но в php не силен поэтому ничего путного не вышло.

Если кто знает ответ, или сможет помочь реализовать такое (не бесплатно конечно) - помогите пожалуйста! Буду очень признателен.
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Re: К2 - выравнивание по высоте
« Ответ #1 : 26.10.2011, 14:32:38 »
Вам, скорее всего, нужно и по ширине и по высоте.
Кстати, у  k2 есть свой раздел
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

krechet47

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: К2 - выравнивание по высоте
« Ответ #2 : 26.10.2011, 14:40:39 »
staticlight, спасибо вам огромное, это то что нужно!
А раздел не заметил на фоне других разделов и форумов, но теперь буду знать)
спасибо еще раз.
*

krechet47

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: К2 - выравнивание по высоте
« Ответ #3 : 26.10.2011, 15:06:52 »
К сожалению, данный метод не работает =((
Может быть из за того что у меня версия K2 v2.3 ?
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Re: К2 - выравнивание по высоте
« Ответ #4 : 26.10.2011, 15:16:41 »
У Вас скорее всего 2.4 версия. Если сделали все, как написано - должно работать.
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

krechet47

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: К2 - выравнивание по высоте
« Ответ #5 : 26.10.2011, 15:20:30 »
Нет,именно 2.3
Цитировать
K2 v2.3 | Copyright © 2006-2010 JoomlaWorks, a business unit of Nuevvo Webware Ltd.
Именно так всё делал. А вы не могли бы мне помочь и за какую сумму?
*

andrejdi

  • Захожу иногда
  • 329
  • 32 / 0
Re: К2 - выравнивание по высоте
« Ответ #6 : 26.10.2011, 15:34:18 »
Попробуйте в К2.css в div.catItemView прописать жесто высоту height: 350 px
Вместо 350  вставьте нужную вам высоту
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Re: К2 - выравнивание по высоте
« Ответ #7 : 26.10.2011, 15:36:22 »
Попробуйте в К2.css в div.catItemView прописать жесто высоту height: 350 px
Вместо 350  вставьте нужную вам высоту

Кстати, как вариант, если не критичен размер картинки, а важно только выравнивание блоков.
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

krechet47

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: К2 - выравнивание по высоте
« Ответ #8 : 26.10.2011, 15:52:43 »
Цитировать
Попробуйте в К2.css в div.catItemView прописать жесто высоту height: 350 px
Вместо 350  вставьте нужную вам высоту
Спасибо, попробовал, но это получается что блоки только выравниваются по высоте, но мне нужно именно чтоб картинки были одной высоты.
*

sergserg9167

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: К2 - выравнивание по высоте
« Ответ #9 : 18.11.2011, 17:40:15 »
А мне нужно не только что бы картинки были по высоте одинаковые, а нужно что бы они обрезались до нужно высоты. Ну допустим что бы изображения выравнивались так же по ширине, но при этом лишняя высота изображения обрезалалсь(становилась не видимой) Допустим мне надо что бы все изображения были высотой 300 пикселей, и все остальное было невидимо и блоки в категории были ровные все. Подскажите пожалуйста как сделать(
*

StarMag

  • Moderator
  • 228
  • 25 / 0
  • после ночи разбора РНР кода
Re: К2 - выравнивание по высоте
« Ответ #10 : 18.11.2011, 19:59:54 »
Спасибо, попробовал, но это получается что блоки только выравниваются по высоте, но мне нужно именно чтоб картинки были одной высоты.
Код
span.catItemImage img {border:1px solid #ccc;padding:8px;height:300px !important;}
Где 300рх - это нужная вам высота картинки. Все остальные параметры по усмотрению, но
Код
height:300px !important;
обязательно.
Цитировать
и все остальное было невидимо
что именно подразумевается под остальным?
Ну почему никто никогда не читает справочные материалы?...
*

sergserg9167

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: К2 - выравнивание по высоте
« Ответ #11 : 18.11.2011, 20:07:17 »
Да все через CSS сделал а бордер с дива span.catItemImage img убрал и на див div.catItemImageBlock  его прописал. Что бы с низу у видимой части изображения тоже рамка была.
Вот так написал
Код: css
div.catItemImageBlock {
padding:8px;
margin:0 0 16px 0;
display:block;
max-height:215px !important;
overflow:hidden!important;
border:1px solid #ccc;
padding:8px;}

Как раз как и хотел. Одно плохо что это действует теперь для всех категорий. Нету шаблонов если в К2, а хотелось бы для разных категорий, разные что бы били параметры отображения изображений.
*

StarMag

  • Moderator
  • 228
  • 25 / 0
  • после ночи разбора РНР кода
Re: К2 - выравнивание по высоте
« Ответ #12 : 18.11.2011, 20:09:51 »
Создавайте свои шаблоны для разных категорий.
В FAQ все написано. Смотрите пункты:
Шаблоны
Создание собственного шаблон для К2
Как поменять позицию элемента в k2?
Шаблонизация в K2 Joomla! (MVC)
Ну почему никто никогда не читает справочные материалы?...
*

sergserg9167

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: К2 - выравнивание по высоте
« Ответ #13 : 18.11.2011, 20:12:56 »
Ааа точно  *DRINK* да еще плохо освоил компонент, оказывается можно, сейчас только увидел что есть шаблоны для категорий разные можно выбирать  :D
*

TiJai

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: К2 - выравнивание по высоте
« Ответ #14 : 20.03.2014, 17:51:52 »
Как изменить размер мини изображения на главной странице, все перепробовал, остается прежним.
*

TiJai

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: К2 - выравнивание по высоте
« Ответ #15 : 20.03.2014, 19:45:40 »
Есть кто?
« Последнее редактирование: 20.03.2014, 19:51:16 от TiJai »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться