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

FiNsvoy

  • Захожу иногда
  • 79
  • 0 / 0
  • За хороший совет могу заплатить.
Нужно добавить как показано на рисунке модуль, который будет находиться все время в крайнем правом положении. Шаблон не резиновый, имеет 980px в ширину. Не знаю вообще возможно ли это сделать в Joomla? Подскажите с какой стороны искать?)))


Сам сайтик http://freshtour.biz/
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
элементарно на css:

.floating-block{
    position: fixed;
    top: 200px;
    right: 0;
}
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

FiNsvoy

  • Захожу иногда
  • 79
  • 0 / 0
  • За хороший совет могу заплатить.
А есть на примете такой сайтик?

Это как я понял нужно создать новый модуль и прописать в стиле его вышеуказанное положение?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
в шабоне дописываем перед </body>:

Код
<div class="stick"><jdoc:include type="modules" name="stick" style="none" /></div>

в css:

.stick{
    position: fixed;
    top: 200px;
    right: 0;
}
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

FiNsvoy

  • Захожу иногда
  • 79
  • 0 / 0
  • За хороший совет могу заплатить.
Спасибо тебе добрый человек! Все отлично подошло! Я еще прописал в templateDetails.xml  - <position>stick</position> на всякий!)
*

iluho

  • Давно я тут
  • 605
  • 50 / 4
  • Гламурный КабанчеГ
в шабоне дописываем перед </body>:

Код
<div class="stick"><jdoc:include type="modules" name="stick" style="none" /></div>

в css:

.stick{
    position: fixed;
    top: 200px;
    right: 0;
}
элегантное решение и простое, с учетом того ,что существуют специальные тяжеловесные модули такие:)
Милый и порядочный! Верьте мне во всем!
*

Symbios

  • Захожу иногда
  • 53
  • 3 / 0
только position:fixed не работает в ие6, если можно пренебречь, то это лучшее решение
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
для ие666 можно юзать position: absolute;
но так блок будет скроллироваться.

Если и это не подойдет можно нагуглить решение под него..
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

iluho

  • Давно я тут
  • 605
  • 50 / 4
  • Гламурный КабанчеГ
Если и это не подойдет можно нагуглить решение под него..
Решение: убрать ИА 6
Милый и порядочный! Верьте мне во всем!
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Статистика ие6 на вчерашний день: 6.3% (под данным liveinternet.ru)
По сути во внимание нужно принимать еще меньший процент, так как большое число пользователей ие6 осознают проблему и не будут удивляться корявому отображению сайта ...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Symbios

  • Захожу иногда
  • 53
  • 3 / 0
Цитировать
Статистика ие6 на вчерашний день: 6.3% (под данным liveinternet.ru)
подскажите пожалуйста, где на лайвинтернет эта статистика по браузерам, тоже хочу полюбопытствововать
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
в шабоне дописываем перед </body>:

Код
<div class="stick"><jdoc:include type="modules" name="stick" style="none" /></div>
в css:

.stick{
    position: fixed;
    top: 200px;
    right: 0;
}
У мну что то не получается, в шаблоне сайта дописываем?
name="stick" - имя заголовка модуля, или имя папки в которой лежит модуль?
Модуль должен быть включен, если да, то что ставить в настройке модуля, в каком положении он располагается?  ^-^
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
подскажите пожалуйста, где на лайвинтернет эта статистика по браузерам, тоже хочу полюбопытствововать
http://www.liveinternet.ru/stat/ru/browsers.html

Infosakh, это основа шаблонов Joomla... мы создали новую позицию для модулей, с названием stick. Заходим в админку и ставим нужному модулю эту позицию (в списке ее не будет, поэтому вписываем сами. а если хотим чтоб в списке позиция появилась сама - делаем как FiNsvoy)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
ок, попробую  ^-^
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
ну вот, могу ведь когда пнут в правильном направлении  ^-^
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
А можно как нибудь в CSS прописать заголовок модуля, который вывожу за край шаблона? А то в модуле включаю отображать заголовок, заголовок не выводится  ^-^ З.Ы. В самом модуле править заголовок нельзя, этот модуль использую несколько раз в разных местах
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Можно, только CSS тут не причем )
в этой вставке
Код
<jdoc:include type="modules" name="stick" style="none" />
вместо style="none" пишем style="xhtml" . Еще раз говорю - это основы шаблонов. Если есть желание поколупать шаблон - почитайте про это...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
всё получилось!  :D
З.Ы. Я конечно погляжу основы, просто не так много времени есть, специализация совсем у мну другая, 1Сник я  ;D
*

FiNsvoy

  • Захожу иногда
  • 79
  • 0 / 0
  • За хороший совет могу заплатить.
Цитировать
вместо style="none" пишем style="xhtml" ...

А что дает эта замена? Попробовал заменил - ничего не изменилось, я имею виду визуально.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
При style="none" модуль выводится так:
Код
содержимое_модуля...
а при style="xhtml" вот так:
Код
<div class="moduletable{суффикс_модуля}">
    <h3>заголовок_модуля</h3>
    содержимое_модуля...
</div>

тоесть визуально разница только в появлении заголовка. Если он отключен в админке - заголовка не будет в любом случае.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Уникализация шаблона rhuk_milkyway

Автор zosimov

Ответов: 2
Просмотров: 5350
Последний ответ 23.12.2014, 17:30:14
от zosimov
возможность выбора шаблона пользователем

Автор vampire333

Ответов: 5
Просмотров: 8883
Последний ответ 17.02.2014, 04:24:26
от MrAlexSid
[howto] Создание шаблона для Joomla! 1.5

Автор Mitrich

Ответов: 225
Просмотров: 372064
Последний ответ 17.09.2013, 16:00:05
от fred
Растягивание шаблона по вертикали

Автор misterio

Ответов: 6
Просмотров: 3483
Последний ответ 01.02.2012, 17:48:08
от misterio
Не отображается опубликованный модуль, в компоненте, не имеющем ссылки в меню.

Автор wmag

Ответов: 5
Просмотров: 2675
Последний ответ 12.12.2011, 09:44:51
от wmag