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

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Нужны ссылки на товар вида домен/алиастовара

1) Перенаправление в настройках сайта включено
2) htaccess переименован
3) Пункт меню магазин - главная сайта
4) Меню построено на посадочных страницах AJAX фильтра
5) Включен плагин от максмаркетинг Product SEO
6) Алиасы товарам и категориям заданы
7) Кеш и куки чистила

Ссылки получаются вида

http://site.ru/component/jshopping/aliastovara?Itemid=1181

Что я забыла включить-выключить?
« Последнее редактирование: 27.02.2018, 14:41:10 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
та вроде бы ничего не забыла, все верно... а Itemid=1181 - это что за пункт меню?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Фишка в том, что на сайте НЕТ пункта меню с таким ID  :o

UPD

Разобралась. Поиском по файлам. В файле plugins\jshoppingrouter\jshopping_product_seo\jshopping_product_seo.php  прописан itemid 1181 - видимо, старый вариант. Не знаю как он туда попадает - возможно, при установке. Заменила его на актуальный для главной магазина - и все наладилось.

Надо заметить, странное поведение для плагина.
« Последнее редактирование: 27.02.2018, 18:04:30 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
это уже что то сами меняли в плагине, в оригинале вообще нет никаких упоминаний о Itemid
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Сейчас все работает как нужно. На сайте товары имеют краткий URL.



Вот только Яндекс активно индексирует товары как по короткому URL, так и по урлам через пункты меню.

примеры

http://site.ru/aksessuary/golovnye-ubory/bejsbolka-kepka-headrush-mechanic
http://site.ru/bejsbolka-kepka-headrush-mechanic

http://site.ru/aksessuary/golovnye-ubory/traker-bejsbolka-jitsu-blue-belt
http://site.ru/traker-bejsbolka-jitsu-blue-belt

http://site.ru/aksessuary/golovnye-ubory/zimnyaya-shapka-manto-sinij
http://site.ru/zimnyaya-shapka-manto-sinij

Откуда он их берет  и как с этим бороться?  :(

Плагин я, естественно, переустановила на оригинал.
« Последнее редактирование: 19.03.2018, 21:00:47 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Вот только Яндекс активно индексирует товары как по короткому URL, так и по урлам через пункты меню.
в смысле для товаров созданы пункты меню? или по каким "урлам через пункты меню"?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Нет. для товаров нет пунктов меню Есть просто пункты меню на посадочные страницы. Я имею ввиду, что есть ссылки помимо коротких.

Например для ссылки

http://site.ru/aksessuary/golovnye-ubory/bejsbolka-kepka-headrush-mechanic

Акскссуары - пункт меню, Головные уборы - подпункт меню Аксессуары. Оба пункта меню - посадочные страницы Аякс фильтра.
« Последнее редактирование: 19.03.2018, 21:01:22 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Я имею ввиду, что есть ссылки помимо коротких.
где есть? в индексе, или на сайте? на сайте я вроде глянул - везде короткие, из списка, из поиска в том числе. откуда то попали длинные в индекс?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
аа. может попали до того, как сделали короткие ссылки?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Короткие ссылки сделали ДО переноса новой версии сайта. То есть ссылки именно с этим плагином.

Если не найду причину - наверное, придется в карточке товара писать редирект.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
так проще закрыть от индексации ссылки в которых есть 2 и более слэша, наверно?
не силен в правилах htaccess, но явно можно такое замутить
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
так проще закрыть от индексации ссылки в которых есть 2 и более слэша, наверно?
не, для категорий там полные пути. это такое надо только для товаров.

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

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Почему-то у меня вот такой редирект выдает белый экран и никуда не редиректит(

Код
if(strlen($realurl)  !=  (strlen($alias) + 1) ) {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://site.ru/".$alias);
    exit();
}

Из ошибок одни варнинги

Так тоже не хочет

Код
header("Location: http://site.ru/".$alias,TRUE,301);
« Последнее редактирование: 19.03.2018, 21:01:59 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
если вопрос именно в редиректе, а не в условии, то
Код
JFactory::getApplication()->redirect($url, 301);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

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

url сайт/категория/product/товар без /shop/,

Автор yazicnik

Ответов: 7
Просмотров: 2101
Последний ответ 08.06.2023, 15:51:28
от kit2m2
Как правильно сформировать ссылки в категории?

Автор art22

Ответов: 1
Просмотров: 2121
Последний ответ 05.05.2023, 16:17:22
от art22
Домен/component/jshopping/cart/view.html заменить на домен/cart.html

Автор tigra-uki

Ответов: 12
Просмотров: 2493
Последний ответ 09.04.2023, 21:26:28
от tigra-uki
Неправильные ссылки на подкатегории

Автор pavelbush

Ответов: 8
Просмотров: 1249
Последний ответ 24.06.2018, 13:26:25
от pavelbush
Красивые ссылки магазина

Автор Paladinrus

Ответов: 4
Просмотров: 1416
Последний ответ 23.04.2018, 09:16:44
от dmitry_stas