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

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
открытие ссылки в lightbox
« : 12.11.2011, 23:14:37 »
Здравствуйте, уважаемые!

Подскажите пожалуйста, если кто знает, такой вопрос!

Мне нужно открывать ссылки на картинки в lightbox.
Средствами настройки Multithumb не получилось сделать, а добавлять к каждой ссылке rel="lightbox" очень долго, т.к. картинок куча.
Попробовал добавить в шаблон в файл functions.php следующий код:

add_filter('the_content', 'my_addlightboxrel');
function my_addlightboxrel($content) {
       global $post;
       $pattern ="/<a(.*?)href=('|\")(.*?).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
       $replacement = '<a$1href=$2$3.$4$5 rel="lightbox" title="'.$post->post_title.'"$6>';
       $content = preg_replace($pattern, $replacement, $content);
       return $content;

ничего не произошло. :(

Подскажите как мне решить данную проблему?
Заранее спасибо.
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Re: открытие ссылки в lightbox
« Ответ #1 : 13.11.2011, 01:42:04 »
добавлять к каждой ссылке rel="lightbox" очень долго, т.к. картинок куча.

Открываете дамп БД - таблицу com_content (ну вам наверно контент нужен) и находите все <img (пробел после g обязательно) и добавляете к ним rel="lightbox" (заменяете на <img rel="lightbox)
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: открытие ссылки в lightbox
« Ответ #2 : 13.11.2011, 03:05:49 »
Можно это же сделать прям в phpMyAdmin через соответствующий запрос.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Re: открытие ссылки в lightbox
« Ответ #3 : 13.11.2011, 03:31:03 »
А если не изобретать велосипед и воспользоваться плагином, которых нуууу очень много http://extensions.joomla.org/extensions/photos-a-images/articles-images, не проще разве?  ;D
« Последнее редактирование: 13.11.2011, 03:37:42 от Infosakh »
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #4 : 13.11.2011, 09:41:20 »
Что-то я из всего многообразия плагинов не нашёл тот, который бы умел открывать ссылки, а не пиктограммы!
Может я туплю! :(
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Re: открытие ссылки в lightbox
« Ответ #5 : 13.11.2011, 09:55:44 »
Надо внести некоторую ясность, что Вы подразумеваете под этим?
Цитировать
Мне нужно открывать ссылки на картинки в lightbox
Я так понял что есть маленькая картинка, кликаем по ней и открывается во всплывающем окне? Или что нужно то?  ^-^
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #6 : 13.11.2011, 10:12:21 »
Нет! Как раз маленькие картинки открываются в lightbox
Есть в тексте материала куча ссылок на картинки, нужно, чтобы и они в lightbox открывались. Сейчас если на ссылку тыкнуть, она открывается в просто новом окне. :(
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #7 : 13.11.2011, 10:15:03 »
в материале ссылка такого типа:
<a href="images/stories/about/PB070018.jpg">UA0AAC</a>
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Re: открытие ссылки в lightbox
« Ответ #8 : 13.11.2011, 10:22:51 »
теперь понял, но не понимаю разве так красиво вешать ссылку на фото на слово? Не айс вообще.
З.Ы. Через запрос rel="lightbox" вставится единожды, но вставится и туда, где уже используется lightbox потому как по <img будет вставляться, а потом на новые всегда будете через запрос вставлять? ^-^
Вопрос, у Вас используется на сайте сеф?
« Последнее редактирование: 13.11.2011, 12:20:52 от Infosakh »
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #9 : 13.11.2011, 10:30:09 »
Я извиняюсь! Но что такое "сеф"?
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Re: открытие ссылки в lightbox
« Ответ #10 : 13.11.2011, 10:32:23 »
ЧПУ. Ссылки у Вас какие на сайте?
Вы говорите что у Вас сейчас ссылки на картинки открываются в новом окне через таргет в ссылке? Если да, тогда я знаю как помочь Вашей проблеме.  ;D
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #11 : 13.11.2011, 10:35:37 »
ссылки такого типа:
<a href="images/stories/about/PB070018.jpg">UA0AAC</a>
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Re: открытие ссылки в lightbox
« Ответ #12 : 13.11.2011, 10:42:40 »
Я спрашиваю про ссылки на статьи и т.д.  ^-^
Вы говорите что сейчас картинки открываются в новом окне, через таргет=бланк?
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #13 : 13.11.2011, 10:44:05 »
нет никаких target в ссылке. просто <a href... и всё!
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #14 : 13.11.2011, 10:46:04 »
ссылок на статьи тоже нет. есть ссылки только на фото.
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Re: открытие ссылки в lightbox
« Ответ #15 : 13.11.2011, 10:47:21 »
как все сложно
Цитировать
Сейчас если на ссылку тыкнуть, она открывается в просто новом окне.
каким образом ссылки открываются тогда в новом окне?  ;D
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #16 : 13.11.2011, 11:53:42 »
Не в новом, а в этом же окне открывается, но без эффекта Lightbox

А если прописать в ссылке так:
<a href="images/stories/about/PB070018.jpg rel="lightbox"">UA0AAC</a>
то все открывается путём!
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Re: открытие ссылки в lightbox
« Ответ #17 : 13.11.2011, 11:57:32 »
ну так надо правильно говорить, если бы в новом окне открывалось тогда проще было бы. Хотя в принципе это не сильно затруднит задачу. Суть такая, в принципе не сложно самому проставить таргет=_бланк, Вы же все равно проставляете ссылку, прям в этом же окне и выбрать как открыть, если согласны так выводить ссылку то решить можно Вашу проблему с всплывающим окном для ссылок на картинку
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #18 : 13.11.2011, 12:23:36 »
Дак как проблему-то решить? дописывать в каждой ссылке rel="lightbox" не вариант - очень много ссылок!
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Re: открытие ссылки в lightbox
« Ответ #19 : 13.11.2011, 12:25:14 »
Тут на помощь придет джаваскрипт.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #20 : 13.11.2011, 12:28:03 »
А никак нельзя, например, в файле functions.php сделать какой-нибудь фильтр по расширениям изображений, который будет к ссылке подставлять класс lightbox?
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
Re: открытие ссылки в lightbox
« Ответ #21 : 13.11.2011, 12:29:16 »
а надо прям все ссылки в текстах на Lightbox вешать? Напишите простенький плагин для контента,который ищет в тексте <a href и между a и href вставляет ваш rel="lightbox"

Кстати, что делает rel="lightbox"? Про class="modal" знаю, а про это нет...
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Re: открытие ссылки в lightbox
« Ответ #22 : 13.11.2011, 12:34:32 »
Можно, но я не знаю как у Вас там на сайте ссылки идут, то картинки есть, то на слово вешается картинка, вообщем смотрите в принципе можно и по типу файла сделать всплывающее окно, есть такой плагин Modalizer кажись так пишется, в настройках есть у него обработка по типу файла, по таргету, по компоненту, по условию и т.д. и т.п.  Поставьте в его настройках по типу файла и пропишите расширение jpg и т.д.
*

Kenoby666

  • Захожу иногда
  • 53
  • 0 / 0
Re: открытие ссылки в lightbox
« Ответ #23 : 13.11.2011, 12:59:21 »
Спасибо! Этот плагин то, что нужно! Разобрался!  ^-^
*

tefun

  • Живу я здесь
  • 2540
  • 130 / 1
  • Легче всего обмануть себя
Re: открытие ссылки в lightbox
« Ответ #24 : 07.01.2012, 11:27:50 »
Надо внести некоторую ясность, что Вы подразумеваете под этим?Я так понял что есть маленькая картинка, кликаем по ней и открывается во всплывающем окне? Или что нужно то?  ^-^

а мне вот имеено это и нужно, только хочется чтоб вставлялась типа {gallery}folder1/folde2/image2.jpg{/gallery} а на другое изображение {gallery}folder3/folder4/image2.jpg{/gallery}
image2 - бывают разные, но и из разных папок
есть подходящий компонентик?
то что постится на фОруме, не вырубается тапОрами
_______________________________________________
Мысли и женщины вместе не приходят М.Ж.
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Re: открытие ссылки в lightbox
« Ответ #25 : 07.01.2012, 11:41:56 »
мне кажется тут проще юзать плагин по типу mavik Thumbnails или highslide. В последнем можно и галерею сделать всмысле слайдшоу назад вперед  ^-^
*

tefun

  • Живу я здесь
  • 2540
  • 130 / 1
  • Легче всего обмануть себя
Re: открытие ссылки в lightbox
« Ответ #26 : 07.01.2012, 17:05:44 »
мне кажется тут проще юзать плагин по типу mavik Thumbnails или highslide. В последнем можно и галерею сделать всмысле слайдшоу назад вперед  ^-^
юзал почти все бесплатные в JED , только вот там ДОФИГА модулей, компонентов, а плагинов маловато будет, а мне нада именно плагин под Joomla 1.5 - с этим кстати тоже уже проблемы еклмн! под 1.7 только есть решение

щас поюзаю ваши компоненты

mavik Thumbnails - Directory for thumbnails - вот это тоже самое как и в sigplus gallery - там тоже можно делать но только в одной папке! а у меня 1000 изображений и хотелось бы назвать их типа 1,2,3,4 и тд чтоб в таблице через ексель делать быстро и в разных папках :)

http://extensions.joomla.org/extensions/core-enhancements/scripts/5017?qh=YToxOntpOjA7czo5OiJoaWdoc2xpZGUiO30%3D - Highslide JS for Joomla - это имеется в виду ? А там есть ссылка на конкретную картинку с папок из сайта? (Просто щас не имеею возможности проверить что да как)

Может что нить сталкивался с такой задачей >:( нада под j1.5
« Последнее редактирование: 07.01.2012, 17:20:58 от tefun »
то что постится на фОруме, не вырубается тапОрами
_______________________________________________
Мысли и женщины вместе не приходят М.Ж.
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Re: открытие ссылки в lightbox
« Ответ #27 : 08.01.2012, 03:33:10 »
Давайте внесем некоторую ясность, правильно ли я понял что нужно сделать слайдшоу с эффектом всплывающей картинки из картинок, которые находятся в разных папках? Самый главный вопрос, эти картинки Вы вставляете в статью или эти картинки выводятся из какого то расширения галереи?
Если картинки находятся в статье то я могу посоветовать такой плагин http://joomlaforum.ru/index.php/topic,169776.new.html Давно его юзаю очень приличный по фунционалу и простоте использования. Картинки в статье могут быть из разных папок, возможность автоплея, ручное переключение вперед назад, вывод тайтла вывод кол-во картинок ну и визуальные эффекты.  ^-^
З.Ы. В принципе возможно этот плагин сможет крутить картинки в каком нибудь расширении галереи, я просто таких расширений не использую поэтому не знаю
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Убрал в настройках материалов "Заголовок как ссылка" - "нет". И в разделе ссылки с заголовков исчезл

Автор Adrian1111

Ответов: 6
Просмотров: 3264
Последний ответ 22.03.2018, 22:17:44
от palexa
Не отображаются материалы и ссылки на сайте (joomla 1.5)

Автор МарияЛ

Ответов: 1
Просмотров: 1772
Последний ответ 18.03.2017, 19:22:31
от rebus
Изменить текст ссылки, выводимой в адресной строке

Автор acamaz

Ответов: 2
Просмотров: 1840
Последний ответ 28.11.2016, 20:59:45
от KKAAZZOO
где хранятся SEO ссылки товара

Автор knatalik

Ответов: 0
Просмотров: 1377
Последний ответ 14.09.2016, 11:58:10
от knatalik
Открытие картинки

Автор andrei1537

Ответов: 10
Просмотров: 2040
Последний ответ 06.07.2016, 13:39:32
от draff