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

man999

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
Верхнее меню
« : 19.06.2009, 17:58:43 »
подскажите как сделать, чтобы в верхнем меню вмещялись все разделы из бокового.Не хотелось бы сокращать имена разделов. конкретно можно глянуть тут - http://www.ief-stu.2x4.ru/
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Re: Верхнее меню
« Ответ #1 : 21.06.2009, 15:54:28 »
Возможно, что самый простой способ - создать копию меню  со своими (сокращенными) заголовками.
Можно, конечно, подкорректировать код вывода названий в модуле меню, чтобы не делать дубликат…
Но программно урезать названия пунктов меню, чтобы не потерять смысл, может и не получиться.
*

Skier78rus

  • Новичок
  • 9
  • 0 / 0
Re: Верхнее меню
« Ответ #2 : 23.06.2009, 00:24:30 »
man999, подскажи пожалуйста, а как ты сделал выпадающее верхнее меню???
Сам прописал в шаблоне или оно там есть?(как я понимаю это шаблон Ja_puritry)
Заранее спасибо
*

man999

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
Re: Верхнее меню
« Ответ #3 : 09.08.2009, 10:05:25 »
в настройках шаблона там есть что-то типа moo_menu, им и воспользовался...
*

Skier78rus

  • Новичок
  • 9
  • 0 / 0
Re: Верхнее меню
« Ответ #4 : 07.09.2009, 22:56:05 »
Спасибо
*

Travmatolog

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Верхнее меню
« Ответ #5 : 10.09.2009, 18:34:28 »
Рад, что нашел эту тему, ведь я для своего сайта выбрал именно этот шаблон. Только я совсем начинающий в этом деле (как в HTML, php, CSS, так и в joomla).
Очень интересует, как были добавлены всплывающие подменю в верхнем меню.
В исходном коде этот момент я нашел. Но хотелось бы знать, как сделать это средствами самой joomla.
Рассчитываю на помощь. Спасибо!
-----------------------------------------
Сам во всём разобрался!
« Последнее редактирование: 11.09.2009, 16:20:51 от Travmatolog »
*

Travmatolog

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Верхнее меню
« Ответ #6 : 21.09.2009, 18:00:38 »
  Проблема с шапкой шаблона!
При изменении ширины body изображение не растягивается, а дублируется куском, взятым с противоположного конца той же картинки. ( см. прикрепленный файл справа )
К тому же, по высоте тоже картинка не полностью влазит. Как сделать, чтобы было всё как нужно, как например по ссылке в первом посте?

[вложение удалено Администратором]
« Последнее редактирование: 21.09.2009, 18:04:32 от Travmatolog »
*

Dron79

  • Захожу иногда
  • 321
  • 37 / 0
  • Век живи - век учись!
Re: Верхнее меню
« Ответ #7 : 21.09.2009, 18:17:00 »
  Проблема с шапкой шаблона!
При изменении ширины body изображение не растягивается, а дублируется куском, взятым с противоположного конца той же картинки. ( см. прикрепленный файл справа )
К тому же, по высоте тоже картинка не полностью влазит. Как сделать, чтобы было всё как нужно, как например по ссылке в первом посте?
Все правильно, ведь у тебя шапка сделана одним изображением.
Рациональнее сделать две отдельные картинки (левую и правую) на выбранном фоне.
Сделать заливку шаблона выбранным цветом.
Картинки привязать левую к левой стенке с помощью стиля left:0px;
а правую к правой стенке по тому же принципу.
Надписи выполнить с помощью строк.
И  при увеличении горизонтального размера экрана картинки будут плотоно привязаны к вертикальным стенкам браузера.
кодинг на php.
*

Travmatolog

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Верхнее меню
« Ответ #8 : 21.09.2009, 18:27:40 »
Спасибо за ответ! Буду пытаться!
p.s. Хотя если, опять же, смотреть 1-й пост, складывается впечатление всё же неразрывной картинки в шапке.
*

Dron79

  • Захожу иногда
  • 321
  • 37 / 0
  • Век живи - век учись!
Re: Верхнее меню
« Ответ #9 : 21.09.2009, 18:53:33 »
В сайте указанном в первом посте, шапка сделана одним изображением и она не меняет своего размеров при любых размерах экрана, на малых разрешениях появляется скролинг, при больших добавляется фон справа.
Я думал тебе надо так как http://www.2-povara.ru/
кодинг на php.
*

Travmatolog

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Верхнее меню
« Ответ #10 : 21.09.2009, 19:21:49 »
Нет, мне нужно именно, как в первом посте. У меня картинка также сплошная. Но при попытке вставить её в место стандартной s5_logo.png выдает такой вот результат.
Могу сказать, что изначально ширина body в этом шаблоне чуть меньше. Он, как и я изменил показатели ширины. А вот с картинкой что-то надо проделать, чтобы она была на всю ширину шапки.
Надеюсь, что и автор темы прояснит ситуацию...
*

Dron79

  • Захожу иногда
  • 321
  • 37 / 0
  • Век живи - век учись!
Re: Верхнее меню
« Ответ #11 : 21.09.2009, 20:01:04 »
Нет ничего проще, в таблице стилей нийди те стиль отвечающий за блок div c изображение шапки и выставите в стиле значения
background-repeat: no-repeat;
изображение дублироваться при растяжении не будет.
кодинг на php.
*

man999

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
Re: Верхнее меню
« Ответ #12 : 22.09.2009, 15:45:15 »
Travmatolog, со второго вопроса:в админке все меню - верхнее меню. собственно либо удали все, либо измени, ссоздай какое надо. поковыряй расширения - верхнее меню на тему вкл и выкл, что меняется. Про лого скажу следующее, растянул шаблон лого вручную редактировал, изменял параметры, в paint наращивал, с графикой не дружу маленько...подгонял вручную, то было длиннее, то короче, подобрал оптимал. Есть у меня еще вопрос, на счет скролинга, возможно как-то без него? может кто подскажет?
*

Dron79

  • Захожу иногда
  • 321
  • 37 / 0
  • Век живи - век учись!
Re: Верхнее меню
« Ответ #13 : 24.09.2009, 19:57:36 »
Travmatolog, со второго вопроса:в админке все меню - верхнее меню. собственно либо удали все, либо измени, ссоздай какое надо. поковыряй расширения - верхнее меню на тему вкл и выкл, что меняется. Про лого скажу следующее, растянул шаблон лого вручную редактировал, изменял параметры, в paint наращивал, с графикой не дружу маленько...подгонял вручную, то было длиннее, то короче, подобрал оптимал. Есть у меня еще вопрос, на счет скролинга, возможно как-то без него? может кто подскажет?
Еще как возможно. Надо сделать графический логотип (шапку) раздельно, состоящий из двух и более независимых частей. Первое изображение логотипа на прозрачном фоне привязываем в шаблоне к левой стороне экрана как left: 0px;(или нужное). Второе изображение фон, применяем его в качестве заливки с помощью background-repeat: указать нужное;
Третье изображение на прозрачном фоне цепляем опять на левую или правую сторону на нужном удалении.
В итоге получаем раздвигающуюся шапку с минимальным размером равным величине элементу самого большого используемого в шаблоне элемента.
кодинг на php.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ширина меню

Автор alex86r93

Ответов: 5
Просмотров: 4848
Последний ответ 14.06.2018, 05:13:50
от KANEGI
как сделать кнопки меню!

Автор Millenium_3000

Ответов: 10
Просмотров: 11362
Последний ответ 17.08.2017, 17:24:12
от Intrande
Вопрос по добавлению тега в МЕНЮ j 1.5

Автор berTalino

Ответов: 12
Просмотров: 4576
Последний ответ 29.03.2017, 16:20:43
от berTalino
Как увеличить ширину левого меню?

Автор afina2009

Ответов: 8
Просмотров: 2667
Последний ответ 09.04.2016, 23:00:36
от afina2009
Плавный якорь из меню на Jquery

Автор Timerlan

Ответов: 19
Просмотров: 3381
Последний ответ 04.02.2016, 03:54:16
от Fedor Vlasenko