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

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Вывод описания категории
« Ответ #30 : 30.01.2016, 18:48:35 »
Господибожемой.... заменить элементарные табы AJAX запросом...   :o
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #31 : 30.01.2016, 18:54:36 »
ну... обычные табы... а может и не обычные? :) обычные - это когда в разрезе например товара - описание, изображения, характеристики. а когда описания разных категорий - то это имхо не совсем обычные :) может навигация какая, или еще что...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Вывод описания категории
« Ответ #32 : 30.01.2016, 19:43:24 »
Я так понимаю это у товарища список категорий магазина.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

kit2m2

  • Живу я здесь
  • 3362
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Вывод описания категории
« Ответ #33 : 22.02.2016, 23:01:26 »
Тут на досуге написал плагин "Вывода краткого и полного описаний категории" без всяких дополнительных контроллеров и т.п.

Работает Bootstrap, до конца не оформил плагин как доделаю выложу, но уже сейчас можно посмотреть работу плагина: ДЕМО

Планирую добавить различные настройки.

Сейчас выводит по клику на кнопку: Название категории, Краткое описание категории, Полное описание категории (с форматирование текста).

Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3362
  • 276 / 0
  • Беру сайты на полное сопровождение
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Marcello

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Вывод описания категории
« Ответ #35 : 14.06.2017, 10:42:42 »
Здравствуйте! Я тоже пытаюсь вывести описание категории на странице list_product.php
Спойлер
[свернуть]
Имя категории этим способом получить удается, а вот описание нет. Что я делаю не так?
*

kit2m2

  • Живу я здесь
  • 3362
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Вывод описания категории
« Ответ #36 : 14.06.2017, 14:27:08 »
На странице list_product.php и без танцев с бубнами выводиться и название категории и её описание...
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #37 : 14.06.2017, 14:41:12 »
Что я делаю не так?
думаю, много чего. но вы дали только кусочек кода, поэтому будет тяжело перечислить все неправильные моменты.

На странице list_product.php и без танцев с бубнами выводиться и название категории и её описание...
list_product разные бывают же... а если это list_product товаров производителя? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kit2m2

  • Живу я здесь
  • 3362
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Вывод описания категории
« Ответ #38 : 14.06.2017, 14:53:50 »
...list_product разные бывают же... а если это list_product товаров производителя? :)
А если это list_product товаров производителя, то какое описание категории может быть? Товары у производителей могут быть из разных категорий... тогда уж описание производителя, которое и так выводиться.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #39 : 14.06.2017, 15:06:51 »
какое описание категории может быть?
ну как какое? описание категории конкретного товара, очевидно :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Marcello

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Вывод описания категории
« Ответ #40 : 14.06.2017, 15:31:58 »
ну как какое? описание категории конкретного товара, очевидно :)
Спойлер
[свернуть]
Этот list_product выводит все товары подкатегорий. Проблема в $table_product
Код
object(jshopCategory)#1501 (43) { ["_tbl":protected]=> string(23) "#__jshopping_categories" ["_tbl_key":protected]=> string(11) "category_id" ["_tbl_keys":protected]=> array(1) { [0]=> string(11) "category_id" } ["_db":protected]=> object(JDatabaseDriverMysqli)#15 (23) { ["name"]=> string(6) "mysqli" ["serverType"]=> string(5) "mysql" ["connection":protected]=> object(mysqli)#16 (19) { ["affected_rows"]=> int(1) ["client_info"]=> string(36) "mysqlnd 5.0.12-dev - 20150407 - $Id$" ["client_version"]=> int(50012) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(25) ["host_info"]=> string(25)
...
 ["meta_keyword_en-GB"]=> string(0) "" ["name_ru-RU"]=> string(25) "Название подкатегории" ["alias_ru-RU"]=> string(13) "rolls-complex" ["short_description_ru-RU"]=> string(0) "" ["description_ru-RU"]=> string(0) "" ["meta_title_ru-RU"]=> string(0) "" ["meta_description_ru-RU"]=> string(0) "" ["meta_keyword_ru-RU"]=> string(0) "" ["name"]=> string(25) "Название подкатегории" ["description"]=> string(0) "Описание" ["short_description"]=> string(0) "" ["meta_title"]=> string(0) "" ["meta_keyword"]=> string(0) "" ["meta_description"]=> string(0) "" }
[/spoiler]
Не понимаю как вытянуть description
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #41 : 14.06.2017, 15:41:32 »
как можно вытянуть то, чего нет?
Цитировать
["description_ru-RU"]=> string(0) ""
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Marcello

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Вывод описания категории
« Ответ #42 : 14.06.2017, 16:40:34 »
как можно вытянуть то, чего нет?
В другой категории он есть. Я не понимаю как это написать. $table_category->getDescription(); не работает
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Вывод описания категории
« Ответ #43 : 14.06.2017, 16:42:42 »
Давайте так: ссылку на страницу, ткнуть пальцем где хотите получить и как хотите вывести. Иначе это испорченный телефон.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #44 : 14.06.2017, 17:17:19 »
В другой категории он есть. Я не понимаю как это написать. $table_category->getDescription(); не работает
при чем тут другая категория? в другой категории видимо заполнено описание. $table_category->getDescription() прекрасно работает. что он должен вывести, если в той категории, что вы показываете, просто нет описания?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Marcello

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Вывод описания категории
« Ответ #45 : 14.06.2017, 18:00:48 »
Давайте так: ссылку на страницу, ткнуть пальцем где хотите получить и как хотите вывести. Иначе это испорченный телефон.

Вот samurai-nn.ru/catalog/products/ .
Нужно под названием подкатегории (в данном случае есть описание подкатегории "Бургеры") вывести описание этой подкатегории.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Вывод описания категории
« Ответ #46 : 14.06.2017, 18:45:01 »
Marcello, во первых почему в коде делается два раза $table_category->load()? Ну и во вторых шаблон какой-то самописный, поэтому сложно сказать, ну и в третьих в Вашем посте выше прекрасно видно, что описание хранится в поле description А следовательно его можно получить просто выполнив
Код
$table_category->description
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #47 : 14.06.2017, 22:55:59 »
ну и в третьих в Вашем посте выше прекрасно видно, что описание хранится в поле description
все верно, если бы не одно "но" :) 99% что "Описание" в данном случае было просто дописано вручную, а в оригинале его там не было.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Marcello

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Вывод описания категории
« Ответ #48 : 15.06.2017, 11:17:19 »
все верно, если бы не одно "но" :) 99% что "Описание" в данном случае было просто дописано вручную, а в оригинале его там не было.
Да, код был взят в одной из веток форума
Спойлер
[свернуть]

Код
$table_category->description
не работает здесь, поэтому и возник вопрос как вывести описание.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #49 : 15.06.2017, 12:15:46 »
просто честно говоря я не могу понять чего вы не можете понять :) еще раз: та категория, которую вы нам показываете
Код
object(jshopCategory)#1501 (43) { ["_tbl":protected]=> string(23) "#__jshopping_categories" ["_tbl_key":protected]=> string(11) "category_id" ["_tbl_keys":protected]=> array(1) { [0]=> string(11) "category_id" } ["_db":protected]=> object(JDatabaseDriverMysqli)#15 (23) { ["name"]=> string(6) "mysqli" ["serverType"]=> string(5) "mysql" ["connection":protected]=> object(mysqli)#16 (19) { ["affected_rows"]=> int(1) ["client_info"]=> string(36) "mysqlnd 5.0.12-dev - 20150407 - $Id$" ["client_version"]=> int(50012) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(25) ["host_info"]=> string(25)
...
 ["meta_keyword_en-GB"]=> string(0) "" ["name_ru-RU"]=> string(25) "Название подкатегории" ["alias_ru-RU"]=> string(13) "rolls-complex" ["short_description_ru-RU"]=> string(0) "" ["description_ru-RU"]=> string(0) "" ["meta_title_ru-RU"]=> string(0) "" ["meta_description_ru-RU"]=> string(0) "" ["meta_keyword_ru-RU"]=> string(0) "" ["name"]=> string(25) "Название подкатегории" ["description"]=> string(0) "Описание" ["short_description"]=> string(0) "" ["meta_title"]=> string(0) "" ["meta_keyword"]=> string(0) "" ["meta_description"]=> string(0) "" }
у нее нет описания. не заполнено. 99% что вы "Описание" тут просто ручками дописали, а в оригинальном выводе это поле было пустое, т.е. описание не задано. так что вы пытаетесь вывести, не могу понять, если его нет в принципе?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Marcello

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Вывод описания категории
« Ответ #50 : 15.06.2017, 12:33:01 »
просто честно говоря я не могу понять чего вы не можете понять :) еще раз: та категория, которую вы нам показываетеу нее нет описания. не заполнено. 99% что вы "Описание" тут просто ручками дописали, а в оригинальном выводе это поле было пустое, т.е. описание не задано. так что вы пытаетесь вывести, не могу понять, если его нет в принципе?
Да, дописал руками, но и при заданном описании вывод не работает. Я просто спрашивал способ вывести это свойство. Вот что выдает $table_category
Спойлер
[свернуть]
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #51 : 15.06.2017, 13:12:23 »
ну и вы хотите сказать, что если вы тут сделаете не
Код
var_dump($table_category);
а например
Код
echo $table_category->description;
то не выведется "Описание"?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Marcello

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Вывод описания категории
« Ответ #52 : 15.06.2017, 15:44:41 »
ну и вы хотите сказать, что если вы тут сделаете не
Код
var_dump($table_category);
а например
Код
echo $table_category->description;
то не выведется "Описание"?
Да, это точно нужно) Сам напутал с переменными)
А получится ли тем же способом вывести alias?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #53 : 15.06.2017, 15:53:50 »
а вы попробуйте :) все ж переменные, которые есть, вы видите в var_dump. есть там alias?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Marcello

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Вывод описания категории
« Ответ #54 : 15.06.2017, 16:05:15 »
а вы попробуйте :) все ж переменные, которые есть, вы видите в var_dump. есть там alias?
Alias есть, а вот как получить его я не понимаю(
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #55 : 15.06.2017, 16:08:58 »
а что именно непонятного? в чем именно сложность на этот раз?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Marcello

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Вывод описания категории
« Ответ #56 : 15.06.2017, 16:12:56 »
а что именно непонятного? в чем именно сложность на этот раз?
Ну getName() получает имя, getDescription() - описание, getAlias - не работает.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #57 : 15.06.2017, 16:22:40 »
та зачем вам эти сахарные методы? обратитесь напрямую к свойству. у вас алиас ваш в каком поле хранится? вот к нему и обратитесь. подобно как с описанием
Код
$table_category->description
только не description, а посмотрите где алиас лежит.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Marcello

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Вывод описания категории
« Ответ #58 : 15.06.2017, 17:08:02 »
та зачем вам эти сахарные методы? обратитесь напрямую к свойству. у вас алиас ваш в каком поле хранится? вот к нему и обратитесь. подобно как с описанием
Код
$table_category->description
только не description, а посмотрите где алиас лежит.
Никак не могу проследить путь( Я вижу его на том же уровне, что и description
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вывод описания категории
« Ответ #59 : 15.06.2017, 17:14:14 »
какой уровень? какой путь? путь в никуда? :)

свойство объекта jshopCategory, в котором содержится ваш алиас, как называется? описание - description. а алиас?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JoomShopping, вывод всех категории к которым принадлежит товар

Автор Valent777

Ответов: 12
Просмотров: 2305
Последний ответ 01.11.2024, 14:57:28
от kit2m2
Дополнительные поля для категории JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 1767
Последний ответ 07.07.2024, 08:43:15
от nevigen
[JoomShopping 5] вывод товаров из дочерних категорий

Автор v42bis

Ответов: 15
Просмотров: 2573
Последний ответ 14.06.2024, 11:43:28
от denistischenko
WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 13
Просмотров: 3180
Последний ответ 03.04.2024, 14:24:38
от sergeytolkachyov
Вывод номера телефона в списке заказов

Автор sifoz

Ответов: 8
Просмотров: 2772
Последний ответ 25.11.2023, 00:58:54
от nevigen