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

Zlodey

  • Осваиваюсь на форуме
  • 48
  • 1 / 0
Вопрос таков, как правильно прописать в robots.txt доступ для индексации картинок, ботами которые находятся в папке запрещенной к индексации по умолчанию? Если точнее в components/com_virtuemart/shop_image/product - вот именно эту папку разрешить к индексации.? !!!???!!!
*

hedaya

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
тот же самый вопрос.
как оставить Disallow: /components/ и в то же время разрешить индексировать components/com_virtuemart/shop_image/product?
Спасибо
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
2 Zlodey
если ты не в курсе, то картинки индексируются не файлами, а по ALT указаниям при выводе в хтмл кода <img src="..." alt="..." />.
так шо расслабься
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Zlodey

  • Осваиваюсь на форуме
  • 48
  • 1 / 0
alt прописаны с самого начала. Если бы я хотел спросить как прописывать теги, то так бы и спрашивал. Меня интересует индексация картинок товаров в VirtueMart, а папка в которой складываются эти изображения запрещена к индексации файлом robots.txt. Мне конечно уже подсказали выход из положения, такой как прописать путь для этих картинок в отдельную папку. Но все равно спасибо за информативный урок.
*

hedaya

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
alt прописаны с самого начала. Если бы я хотел спросить как прописывать теги, то так бы и спрашивал. Меня интересует индексация картинок товаров в VirtueMart, а папка в которой складываются эти изображения запрещена к индексации файлом robots.txt. Мне конечно уже подсказали выход из положения, такой как прописать путь для этих картинок в отдельную папку. Но все равно спасибо за информативный урок.

Подскажешь мне, что значит прописать путь до картинок в отдельную папку и как это сделать? =)
Спасибо.
*

Zlodey

  • Осваиваюсь на форуме
  • 48
  • 1 / 0
Сразу скажу я пробовал это на тестовом домене.
1- скопировал всю папку  shop_image себе на комп
2- создал в головной директории папку imagevm/com_virtuemart/
3- в папку com_virtuemart кинул скопированную папку shop_image со всем содержимым
4- удалил папку shop_image из директории components за ненадобностью
5- изменил в administrator/components/com_virtuemart/ файле virtuemart.cfg строку 41 вместо 'components/com_virtuemart/shop_image/'  на 'imagevm/com_virtuemart/shop_image/'
и в строке 47 соответственно 'components/com_virtuemart/shop_image/' на '/imagevm/com_virtuemart/shop_image/'
6- соответственно колдонул на счет атрибутов папок куда сохраняются картинки категорий и продуктов

Но предупреждаю, что я в пхп не силен, эксперементировал на тестовом домене - на основном сайте не делал изменения (боюсь, слишком много товара) хотя копия сайта есть. А так вроде все работает все добавляется картинки открываются. И папка imagevm лежит отдельно в голове а не в компонентсах
Если кто подскажет другой вариант поставлю репутацию +1000  ^-^
*

Zlodey

  • Осваиваюсь на форуме
  • 48
  • 1 / 0
И второй вариант - это посредством robots.txt , мне кажется это тоже вариант.
Именно я на данном этапе на одном сайте прописал роботс так:

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /editor/
Disallow: /help/
Disallow: /images/
Disallow: /includes/
Disallow: /language/
Disallow: /mambots/
Disallow: /media/
Disallow: /modules/
Disallow: /templates/
Disallow: /installation/
Disallow: /component/
Disallow: /glavnaya/
Disallow: /index.php?option
Disallow: /index.php?page
Disallow: /index.php?orderby
Disallow: /index.php?option=*
Disallow: /index.php?page=*
Disallow: /index.php?orderby=*
Disallow: /components/com_akobook/
Disallow: /components/com_banners/
Disallow: /components/com_contact/
Disallow: /components/com_content/
Disallow: /components/com_ebackup/
Disallow: /components/com_frontpage/
Disallow: /components/com_joomap/
Disallow: /components/com_jpack/
Disallow: /components/com_jrecache/
Disallow: /components/com_linkexchange/
Disallow: /components/com_login/
Disallow: /components/com_messages/
Disallow: /components/com_newsfeeds/
Disallow: /components/com_newsgrabberjc/
Disallow: /components/com_poll/
Disallow: /components/com_registration/
Disallow: /components/com_rss/
Disallow: /components/com_search/
Disallow: /components/com_sef/
Disallow: /components/com_swmenufree/
Disallow: /components/com_user/
Disallow: /components/com_weblinks/
Disallow: /components/com_wrapper/
Disallow: /components/components/
Disallow: /components/index.html
Disallow: /components/com_virtuemart/css/
Disallow: /components/com_virtuemart/js/
Disallow: /components/com_virtuemart/index.html
Disallow: /components/com_virtuemart/show_image_in_imgtag.php
Disallow: /components/com_virtuemart/virtuemart.php
Disallow: /components/com_virtuemart/virtuemart_parser.php
Disallow: /components/com_virtuemart/shop_image/availability/
Disallow: /components/com_virtuemart/shop_image/ps_image/
Disallow: /components/com_virtuemart/shop_image/stars/
Disallow: /components/com_virtuemart/shop_image/vendor/
Disallow: /components/com_virtuemart/shop_image/blank.gif
Disallow: /components/com_virtuemart/shop_image/pngbehavior.htc
Disallow: /components/com_virtuemart/shop_image/index.html
Disallow: /components/com_virtuemart/shop_image/JSCookTree.js

а на другом попробую верхний вариант.
Есть мнение - пиши.
*

hedaya

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
А картинки начали индексироваться? я чего-то по разному пробовал - результат один, все есть, кроме картинок =(
*

Gans

  • Захожу иногда
  • 73
  • 6 / 0
Да че то нет картинок :(
Уже 6 месяцев, и альты с самого начала есть, а картинок нет
*

Zlodey

  • Осваиваюсь на форуме
  • 48
  • 1 / 0
Пока нет  :( , но апорт проиндексировал и картинки, просто не заметил когда (до внесения изменений или после) посмотрю на другом своем проекте жду индексации яшей. На нем я вынес картинки в отдельную папку, а на первом менял robots.txt. Будем ждать.
*

hedaya

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Можете сообщить о результатах здесь? Я думаю, это важно многим. Только почему то все молчат.
У меня на сайте есть альты, есть титлы картинок, есть релевантные надписи непосредственно рядом с картинками, вся продукция индексируется, каталоги с картинками в роботс.тхт открыты, но картинок в поиске нет (на гугле и яше во всяком случае).
*

Zlodey

  • Осваиваюсь на форуме
  • 48
  • 1 / 0
Конечно отпишу при изменениях.
*

Zlodey

  • Осваиваюсь на форуме
  • 48
  • 1 / 0
Вобщем вариант с вынесением изображений лучше не пробовать, скорее всего могут быть некоторые проблемы с отображением картинок. Скорее всего что-то не досмотрел.
*

hedaya

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Короче, картинки индексятся. Как и с вынесением их в отдельный каталог, так и без. Я их какое то время не мог найти в поиске картинок, поэтому не могу сказать, случилась ли индексация до изменения robots.txt или до, логично предположить, что после. Недели две у меня на сайте был просто открыт к индексации весь каталог components, потом мне это надоело, прописывать все директории по отдельности не хотелось, поэтому я перенес весь каталог с картинками vm в корень, как и описано выше. Картинок так и не было около двух недель. Буквально на днях посмотреть яндекс картинки - там куча картинок с моего сайта, при том путь указывает как на /components/com_virtuemart/shop_images, так и на /shop_images, пришлось ставить 301 редирект. Теперь все нормально.

В чем дело не знаю, может быть яндекс не сразу добавляет картинки.

+ если переносите папку в корень - не забывайте править все все, что может ссылаться на картинки, в том числе css virtuemart'a. Смотрите в логах ошибки, у меня там была куча ошибок по поводу обращения к картинкам уже не существующим. Хотя редирект это исправит все равно.
« Последнее редактирование: 26.09.2007, 02:24:41 от hedaya »
*

Zlodey

  • Осваиваюсь на форуме
  • 48
  • 1 / 0
У меня аналогичная ситуация не могу отследить когда именно проиндексились, а на счет того что чего-то не досмотрел, как я писал выше - скорее всего что учел я все, когда писал пост по выносу картинок. Просто мой хостер имеет некоторые нюансы (когда меняешь в админке пользователя, он почему-то меняет атрибуты некоторых файлов ((наверное защита у них своеобразная)), а я забыл про это чудное свойство, и картинки поменяли атрибут на защиту от чтения. Надо было просто записать из как надо. Ну будем дальше смотреть на данном этапе у меня из robots.txt удален components.
*

hedaya

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Оказалось все дело в АПах яндекса. АПы картинок происходят намного реже, чем АПы поискового индекса.
*

opa_dopa

  • Новичок
  • 5
  • 0 / 0
Всё проще:

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/
Disallow: /components/
Allow: /components/com_virtuemart/shop_image/category
Allow: /components/com_virtuemart/shop_image/product
*

Zlodey

  • Осваиваюсь на форуме
  • 48
  • 1 / 0
все равно пишет запрещен правилом /components/
*

Chij

  • Осваиваюсь на форуме
  • 47
  • 0 / 1
все равно пишет запрещен правилом /components/
Пропиши так
User-agent: *
Allow: /components/com_virtuemart/shop_image/category
Allow: /components/com_virtuemart/shop_image/product
Disallow: /administrator/
Disallow: /cache/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/
Disallow: /components/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод изображения в материале - как лучше для seo?

Автор yalo

Ответов: 1
Просмотров: 2604
Последний ответ 28.03.2025, 06:29:35
от azm1n
Sp Page Builder индексация поисковиками

Автор MosTender

Ответов: 3
Просмотров: 2674
Последний ответ 30.05.2017, 17:16:33
от MosTender
Индексация страниц с объявлениями

Автор igor289

Ответов: 9
Просмотров: 1824
Последний ответ 17.03.2017, 23:13:48
от ChaosHead
Индексация и продвижение мультисайта

Автор easy_simple

Ответов: 1
Просмотров: 1592
Последний ответ 07.12.2016, 03:40:07
от Dmitriy M
Оптимизация изображения по PageSpeed Insights в Joomla 3.x (5, 6)

Автор News_N

Ответов: 9
Просмотров: 3380
Последний ответ 27.07.2016, 12:08:12
от Missile