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

Babyaka

  • Захожу иногда
  • 110
  • 3 / 0
[Решено] Наложение блоков
« : 21.04.2013, 14:54:03 »
Доброго времени суток. Возникла такая проблема: не получается правильно распределить уровни блоков. На самом заднем плане находится контент, чуть выше лого, выше него меню, еще выше поиск, а выше поиска должны быть выпадающие элементы меню. Но так как меню ниже поиска по z-index, то выпадающие элементы отображаются под поиском. Как исправить ситуацию? Пробовал задавать z-index для выпадающих элементов, но так как родитель ниже значением, то не прокатывает. Заранее спасибо, и вот картинка для наглядности проблемы:
« Последнее редактирование: 22.04.2013, 15:31:11 от Babyaka »
*

NortonFox

  • Захожу иногда
  • 441
  • 43 / 0
Re: Наложение блоков
« Ответ #1 : 21.04.2013, 15:22:41 »
Может конечно что то не понимаю, но почему бы не сделать z-index меню больше чем у поиска?
Я знаю только то, что ничего не знаю
*

Babyaka

  • Захожу иногда
  • 110
  • 3 / 0
Re: Наложение блоков
« Ответ #2 : 21.04.2013, 15:32:06 »
Может конечно что то не понимаю, но почему бы не сделать z-index меню больше чем у поиска?
Тогда меню перекроет поиск. Оно идет прямоугольным блоком, оно не повернуто. А элементы меню выполнены позиционированием на розовой линии. Вот так выглядит на самом деле меню:
« Последнее редактирование: 21.04.2013, 15:37:16 от Babyaka »
*

NortonFox

  • Захожу иногда
  • 441
  • 43 / 0
Re: Наложение блоков
« Ответ #3 : 21.04.2013, 16:30:46 »
Накидал на скорую руку.
Сделал три элемента, средний элемент повернул на 30 градусов с помощью transform:rotate, он зашел на близлежащие элементы своими углами перекрыв только места соединений.
То есть должно получится так - ставим меню z-index больше чем поиску, а поиск просто ставим на нужное место, но что бы он не соприкасался с элементом меню, от сюда и подпункты меню будут иметь z-index выше чем у поиска.
Я знаю только то, что ничего не знаю
*

Babyaka

  • Захожу иногда
  • 110
  • 3 / 0
Re: Наложение блоков
« Ответ #4 : 21.04.2013, 17:21:56 »
Накидал на скорую руку.
Сделал три элемента, средний элемент повернул на 30 градусов с помощью transform:rotate, он зашел на близлежащие элементы своими углами перекрыв только места соединений.
То есть должно получится так - ставим меню z-index больше чем поиску, а поиск просто ставим на нужное место, но что бы он не соприкасался с элементом меню, от сюда и подпункты меню будут иметь z-index выше чем у поиска.
А других решений нет? Я от трансформации не просто так отказался, потому что при повороте меню, оно становится пиксельным и теряет качество, а края становятся грубыми и не сглаженными. Поиск стоит там, где надо, ничего двигать нельзя, нужно чтобы все стояло там, где стоит.
*

NortonFox

  • Захожу иногда
  • 441
  • 43 / 0
Re: Наложение блоков
« Ответ #5 : 21.04.2013, 17:35:39 »
если не transform:rotate то как делаете?
И все будет стоят так как показывали если трансформом воспользоваться.
Я знаю только то, что ничего не знаю
*

Babyaka

  • Захожу иногда
  • 110
  • 3 / 0
Re: Наложение блоков
« Ответ #6 : 21.04.2013, 19:56:11 »
если не transform:rotate то как делаете?
И все будет стоят так как показывали если трансформом воспользоваться.
Я же писал, что сделано позиционированием. Полоска меню сделана картинкой, элементы меню тоже сделаны картинками и зафиксированы позиционированием. Я пробовал трансформацией делать, говорил же как выходит.
*

NortonFox

  • Захожу иногда
  • 441
  • 43 / 0
Re: Наложение блоков
« Ответ #7 : 22.04.2013, 08:25:01 »
Интересное решение, мне бы в голову не пришло наверное ))).


Можно сделать прозрачным фоном вот этот элемент в картинки - "И это тоже все блок меню".?
Я знаю только то, что ничего не знаю
*

Babyaka

  • Захожу иногда
  • 110
  • 3 / 0
Re: Наложение блоков
« Ответ #8 : 22.04.2013, 08:57:29 »
Интересное решение, мне бы в голову не пришло наверное ))).
Можно сделать прозрачным фоном вот этот элемент в картинки - "И это тоже все блок меню".?
Даже если сделать прозрачным фоном, то блок все равно будет перекрывать поиск, и тогда поиск хоть и будет видно, но доступен он не будет.
« Последнее редактирование: 22.04.2013, 10:57:59 от Babyaka »
*

NortonFox

  • Захожу иногда
  • 441
  • 43 / 0
Re: [Не решено] Наложение блоков
« Ответ #9 : 22.04.2013, 09:23:32 »
Мне уже интересно решить задачу ))
Хорошо, а если подложку меню сделать меньшим индексом чем поиск, а сами пункты меню сделать большим, то есть по идее поиск должен встать и быть доступен в заданном месте, но не перекрывать само меню.
Я знаю только то, что ничего не знаю
*

Babyaka

  • Захожу иногда
  • 110
  • 3 / 0
Re: [Не решено] Наложение блоков
« Ответ #10 : 22.04.2013, 10:59:17 »
Мне уже интересно решить задачу ))
Хорошо, а если подложку меню сделать меньшим индексом чем поиск, а сами пункты меню сделать большим, то есть по идее поиск должен встать и быть доступен в заданном месте, но не перекрывать само меню.
Я так пробовал уже, выше об этом упоминал. То, что само меню в корне ниже индексом, влияет на последующие элементы меню.
*

NortonFox

  • Захожу иногда
  • 441
  • 43 / 0
Re: [Не решено] Наложение блоков
« Ответ #11 : 22.04.2013, 12:57:41 »
Ну это было понятно, попробую подробнее объяснить мысль.

Полоска меню сделана картинкой, элементы меню тоже сделаны картинками и зафиксированы позиционированием.
Полоску меню сделать ниже индексом, а элементы меню сделать выше относительно поиска, по идее должно получится, что выше находятся сами пункты меню и не перекрывают поиск.
Я знаю только то, что ничего не знаю
*

Babyaka

  • Захожу иногда
  • 110
  • 3 / 0
Re: [Не решено] Наложение блоков
« Ответ #12 : 22.04.2013, 13:47:20 »
Ну это было понятно, попробую подробнее объяснить мысль.
Полоску меню сделать ниже индексом, а элементы меню сделать выше относительно поиска, по идее должно получится, что выше находятся сами пункты меню и не перекрывают поиск.
Так вот и получается, что полоска это #mainmenu и оно равно z-index:2; А элементы меню это #mainmenu ul li и равны они z-index:5; Но так как корень все же #mainmenu, то элементы перенимают все равно его индекс...
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Re: [Не решено] Наложение блоков
« Ответ #13 : 22.04.2013, 14:05:24 »
т.е. если вы задаете для #mainmenu ul ul z-index:5; он все равно равен 2? правильно я понял?
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

NortonFox

  • Захожу иногда
  • 441
  • 43 / 0
Re: [Не решено] Наложение блоков
« Ответ #14 : 22.04.2013, 14:08:39 »
Тогда надо сделать эти элементы не дочерними а сестринскими.
Из этого:
<div class="a">
 <div class="b">
 </div>
</div>

В это:
<div class="a">
</div>
<div class="b">
</div>

Расположение этих элементов достичь так же позиционированием и для верности объединить их в один общий родительский элемент:
<div class="с">
 <div class="a">
 </div>
 <div class="b">
 </div>
</div>
Я знаю только то, что ничего не знаю
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Re: [Не решено] Наложение блоков
« Ответ #15 : 22.04.2013, 14:57:50 »
@Babyaka
все должно получиться.
не назначайте z-index для родителя подменю. только для блока поиска (допустим 5) и блока подменю (допустим 6).
вот что-то подобное воспроизвел на локале. серый фон - это родительский ul
« Последнее редактирование: 22.04.2013, 15:03:22 от dynamit »
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Babyaka

  • Захожу иногда
  • 110
  • 3 / 0
Re: [Не решено] Наложение блоков
« Ответ #16 : 22.04.2013, 15:00:32 »
т.е. если вы задаете для #mainmenu ul ul z-index:5; он все равно равен 2? правильно я понял?
Я задаю z-index:5; для #mainmenu ul li и он все равно ниже поиска стоит, хотя FireBug показывает z-index:5;, а у поиска z-index:3;
@Babyaka
все должно олучиться.
не назначайте z-index для родителя подменю. только для блока поиска (допустим 5) и блока подменю (допустим 6).
вот что-то подобное воспроизвел на локале. серый фон - это родительский ul

Мне необходимо задать z-index:2; для #mainmenu ведь у меня еще и лого имеется, как я выше упоминал, и плюс ко всему тело контента задано z-index:1; а под ним идет уже фон сайта.
Тогда надо сделать эти элементы не дочерними а сестринскими.
Из этого:
<div class="a">
 <div class="b">
 </div>
</div>

В это:
<div class="a">
</div>
<div class="b">
</div>

Расположение этих элементов достичь так же позиционированием и для верности объединить их в один общий родительский элемент:
<div class="с">
 <div class="a">
 </div>
 <div class="b">
 </div>
</div>
Вы мне предлагаете сделать выпадающие элементы отдельными от главного меню?
« Последнее редактирование: 22.04.2013, 15:06:17 от Babyaka »
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: [Не решено] Наложение блоков
« Ответ #17 : 22.04.2013, 15:08:54 »
Сам модуль поиска впишите в #mainmenu
Создание сайтов, шаблонов, помощь в решении проблем.
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Re: [Не решено] Наложение блоков
« Ответ #18 : 22.04.2013, 15:16:47 »
Efanych не обязательно. все там абсолютно реально сделать. главное не задавать для #mainmenu z-index. просто надо правильно сверстать все блоки.
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: [Не решено] Наложение блоков
« Ответ #19 : 22.04.2013, 15:21:14 »
Efanych не обязательно. все там абсолютно реально сделать. главное не задавать для #mainmenu z-index. просто надо правильно сверстать все блоки.
Да я и не говорю, что так обязательно. Просто кажется так проще всего выкрутиться. Тем более, что разметка по сабжу не представлена и как их правильно сверстать, ХЗ.
Создание сайтов, шаблонов, помощь в решении проблем.
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Re: [Не решено] Наложение блоков
« Ответ #20 : 22.04.2013, 15:28:47 »
да просто поместить все в один блок (лого, меню и поиск). лого и поиск абсолютно спозиционировать, развести их по нужным местам, задать нужные z-index не трогая само меню. а для подменю задать z-index больше чем у поиска. но, это судя по представленной картинке. как там на самом деле и правда ХЗ :)
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Babyaka

  • Захожу иногда
  • 110
  • 3 / 0
Re: [Не решено] Наложение блоков
« Ответ #21 : 22.04.2013, 15:30:27 »
Сам модуль поиска впишите в #mainmenu
Спасибо большое! Помогло.
да просто поместить все в один блок (лого, меню и поиск). лого и поиск абсолютно спозиционировать, развести их по нужным местам, задать нужные z-index не трогая само меню. а для подменю задать z-index больше чем у поиска. но, это судя по представленной картинке. как там на самом деле и правда ХЗ :)
У меня все было по разным блокам. Но теперь меню и поиск в одном, а лого в другом.
Efanych не обязательно. все там абсолютно реально сделать. главное не задавать для #mainmenu z-index. просто надо правильно сверстать все блоки.
не буду же я полностью менять всю верстку. Спасибо за помощь, но раз уж как начал, так и закончу ^-^
« Последнее редактирование: 22.04.2013, 15:34:35 от Babyaka »
*

bl0geps

  • Новичок
  • 1
  • 0 / 0
Re: Наложение блоков
« Ответ #22 : 08.06.2013, 22:42:46 »
Верстать блоки с помощью стилей CSS надо конечно уметь, потому что при неправильном написании тэгов <div></div> блоки могут отображаться так как надо или разбегаться по всей странице. Исполняется все это при правильном написании позиционирования, например текст на главной странице пишется с самого начала, а в двух блоках боковых, применяемых как сидебары, не устанавливается с самого начала а уходит вниз и смотрится это совсем не хорошо.

Оформляются все блоги в основном по парному количеству этих тэгов (сколько открывающих, значит должно быть столько и закрывающих), иначе блоки будут показываться Неправильно.

Но почему то пишутся они не по порядку, а могут начинаться с нескольких открывающих, потом несколько закрыться, далее опять открытые и в конце возможно будут 3-4 закрывающих. Логика в этом конечно не очень понятно, но работает все правильно и без ошибок.  

Поэтому, те кто разбирается в правильном отображении верстки блоков и текста знает как это делается, необходимостью у сайтостроителей считается и то чтобы сайт отображался одинаково во всех браузерах Интернета. Иначе когда зайдут на Ваш проект и увидят расползание сайта во все стороны, то уже никогда к Вам не зайдут.
« Последнее редактирование: 13.07.2013, 14:59:20 от bl0geps »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Как сделать чтобы фотография открылась в отдельном окне?

Автор a-two

Ответов: 11
Просмотров: 2118
Последний ответ 03.11.2020, 16:57:40
от Nikolay89
[Решено] Слетает правый сайдбар на шаблоне protostar

Автор Mick_20

Ответов: 4
Просмотров: 2258
Последний ответ 28.05.2020, 15:45:06
от Muzzy
Перенос блоков

Автор Forgiving

Ответов: 0
Просмотров: 894
Последний ответ 15.03.2020, 10:22:43
от Forgiving
[Решено] UiKit: сетка на 12 колонок, а также на 7, 8, 9 и (для uikit3) 10

Автор AlekVolsk

Ответов: 1
Просмотров: 6058
Последний ответ 08.08.2019, 19:02:41
от AlekVolsk
Элемент flexbox выходит за края родителя [РЕШЕНО]

Автор dm-krv

Ответов: 3
Просмотров: 10105
Последний ответ 05.04.2019, 16:07:44
от dm-krv