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

DragDG

  • Захожу иногда
  • 75
  • 1 / 0
Задача: Есть сайт который нужно перенести на последнюю Joomla (дизайн новый, тексты сохраняться ). Так же не потерять позицию в яндексе(первое место, по запросу: "торты на заказ").
Вопрос: На что обратить внимание, чего не делать и т.д. Очень интересен сей вопрос.

Заранее спасибо!
*

AL_ALEX

  • Глобальный модератор
  • 855
  • 112 / 1
Либо ставить стороний SEF, например sh404SEF или Artio JoomSEF. Или второй вариант изучаем и работаем с редирект 301, как с ним работать можете узнать через поисковики, набрав "редирект 301"
*

reasons

  • Захожу иногда
  • 382
  • 6 / 0
  • http://dehost.biz
я могу ошибаться, но я думаю, что если вы перенесете сайт на новый движок, то позиции сайта в поисковике изменятся в худшую сторону
*

DragDG

  • Захожу иногда
  • 75
  • 1 / 0
редирект 301 это действительно выход.

буду дальше штудировать тему.

reasons , смысл моего поста именно как избежать этого.
*

reasons

  • Захожу иногда
  • 382
  • 6 / 0
  • http://dehost.biz
я думаю что понижение в позициях гарантировано. Но это только мое мнение.
Ну а если говорить про минимальные потери, то необходимо максимально индивидуализировать хотя бы шаблон, изменить названия стилей, названия картинок.
*

DragDG

  • Захожу иногда
  • 75
  • 1 / 0
само самбой, думаю действительно выход сделать редирект на поддомен. по крайней мере это самый простой вариант без потерь.
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
само самбой, думаю действительно выход сделать редирект на поддомен. по крайней мере это самый простой вариант без потерь.
не понятно, что вы хотите сделать и при чем здесь поддомен?

после переноса сайта на Joomla изменятся урлы, и AL_ALEX предложил вам сделать редирект со старых урлов на новые..
*

DragDG

  • Захожу иногда
  • 75
  • 1 / 0
просто прочитав пару статей про 301 редирект, пришел к выводу, что это полная переадресация на другой домен, без потери ТИЦ и ПР


у сайта ссылки такого вида http://сайт.ру/korporat.htm

так что SEF в любом случаи как я понимаю?

Прошу прошения за безграмотность в вопросе, выражаюсь как понимаю.
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
если бы ссылки были такого плана http://сайт.ру/korporat.html , то вообще можно было обойтись без SEF и без редиректов
в вашем случае можно сделать ссылки вида
http://сайт.ру/korporat.html , просто прописав в меню алиасы. В данном случае не вижу смысла ставить SEF, можно просто сделать редиректы со старой страницы http://сайт.ру/korporat.htm на новую, сайт небольшой и много времени не займет.
тем более что по запросу у вас главная в выдаче - думаю особых проблем не будет. но желательно ссылки, если они закупались на внут. страницы, подправить. в любом случае они будут действовать и передавать вес если вы установите редирект.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
1) Не трогая старый сайт делаете новый, закрыв его от индексации
2) Настраиваете 301 редирект (внутри домена).
3) За пару минут меняете старый сайт на новый.

Как результат - вес не потярется, а если еще и сайт сделан грамотно то будет и рост.
Пример такого грамотного переезда с проведенной внутренней оптимизацией
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
просто прочитав пару статей про 301 редирект, пришел к выводу, что это полная переадресация на другой домен, без потери ТИЦ и ПР

редирект внутри домена делается так в .htaccess

Redirect 301 /old-page.html http://domain.ru/new-page.html
*

skai

  • Moderator
  • 1198
  • 153 / 1
  • skaiseo
ух, voland кудесник )) это что ж за сайт такой был ужасный что так взлетел после смены движка?
оффтоп )
Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
ух, voland кудесник )) это что ж за сайт такой был ужасный что так взлетел после смены движка?
оффтоп )
Ну это уже конфиденциальная инфа.
Скажу только что это было пару лет назад, и конкурентность топа x00 круб :-)
*

DragDG

  • Захожу иногда
  • 75
  • 1 / 0
т.е. по порядку:
1) делаю новый сайт, соблюдая полное соответствие названия ссылок.
(так как в Yandex, главное сохранить, главную страницу. не критично что другие страницы будут такого вида:
http://сайт.ру/korporat
а не http://сайт.ру/korporat.html?)
2)когда сайт готов, (представим что он был на поддомене), просто быстренько заменяем старый новым. (на главной текст будет идентичен).
3) вуаля все работает.

p.s.
Это да бы подвести итог) Еще раз всем спасибо!
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
А можно вопрос?
Вот есть версия J! 1.7 кто-нибудь из ТС прежде чем плодить темы смотрел какие компоненты там есть по дефолту, а поиском по форуму пользоваться не пробовали?

На днях была подобная тема, там всё, абсолютно всё разжевали (ибо для автора топика английский казался ересью, по ходу он учил немецкий в школе, да и мозг автор выключал с завидной периодичностью).
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

reasons

  • Захожу иногда
  • 382
  • 6 / 0
  • http://dehost.biz
Цитировать
1) делаю новый сайт, соблюдая полное соответствие названия ссылок.
(так как в Yandex, главное сохранить, главную страницу. не критично что другие страницы будут такого вида:
http://сайт.ру/korporat
а не http://сайт.ру/korporat.html?)
2)когда сайт готов, (представим что он был на поддомене), просто быстренько заменяем старый новым. (на главной текст будет идентичен).
3) вуаля все работает.

позиции будут потеряны.
и к тому же http://сайт.ру/korporat и http://сайт.ру/korporat.html это разные адреса

могу ошибаться.
*

DragDG

  • Захожу иногда
  • 75
  • 1 / 0
А можно вопрос?
Вот есть версия J! 1.7 кто-нибудь из ТС прежде чем плодить темы смотрел какие компоненты там есть по дефолту, а поиском по форуму пользоваться не пробовали?

На днях была подобная тема, там всё, абсолютно всё разжевали (ибо для автора топика английский казался ересью, по ходу он учил немецкий в школе, да и мозг автор выключал с завидной периодичностью).

Я думаю это лишнее переходить на личности и оскорбления. По крайней мере, в каком праве вы, осуждать и оскорблять человека по одному его топику?
Поиском пользовался, но не вам ли (с кучей "+", и тысячами постов) лучше знать что каждая ситуация по своему индивидуальна.
По сему задал вопрос и создал тему.
Что касательно знания языков, на чем вы основывались делая свой вывод? Я, как вы выразились "учил в школе" и английский и французский, в институте же исключительно английский.
Что касается "мозга". В 7 посте я уточнил:
Цитировать
Прошу прошения за безграмотность в вопросе, выражаюсь как понимаю.
Если вы все понимаете с полу слова (вращаясь в этом деле, думаю не меньше пары лет), я за вас очень рад.
Но данный форум так же предусмотрен и для новичков в этом деле (тут порядка 70% именно такой контингент).
Так что на будущее мой совет, удерживайте себя от подобных комментариев и если уж отвечаете то отвечайте по делу.
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
http://joomlaforum.ru/index.php/topic,186001.0.html - собственно вот.
На счет "немецкий" - вы видимо не сталкивались с людьми которые отказываются что-либо понимать и пользоваться переводчиками, к вам данное о знании языков не относится.
Вопрос был скорее риторический.

По сути ваш вопрос и вопрос в той теме это два одинаковых вопроса. Темы создаются однотипные ежедневно, только разными словами пользуются для описания проблемы, это немного неприятно :(
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

DragDG

  • Захожу иногда
  • 75
  • 1 / 0
Действительно все используют разные слова, и именно по этому, эту тему в поиске я не нашел. Тем более в конце я сузил поиск до пары разделов.
Пожалуй теперь я могу более понятно, для большинства, сформулировать свой вопрос:
Главный нюанс переноса сайта на Joomla, это не потерять первое место в Яндексе при запросе "торты на заказ".
Достаточно ли встроенного компонента SEF в J1.7 для решения моей задачи?
Т.е. просто сохранить ссылки в первоначальном виде?
Или же потребуются какие либо еще действия?

*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Смотрите, в 1.7 есть компонент перенаправления ссылок, нужно проверить, отдает он 301 или нет, если отдает, то отлично, составляете список старых ссылок и составляете для них пару с новых ссылок. Сайт скорее всего временно просядет, но в итоге должен вернуться обратно в топ. И скорее всего вам понадобиться еще компонент тэгов, но это зависит от того что есть сейчас и что будет потом. Попробуйте в черновую сделать пару страниц на 1.7, посмотрите как и что работает, будет проще.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Смотрите, в 1.7 есть компонент перенаправления ссылок, нужно проверить, отдает он 301 или нет, если отдает, то отлично, составляете список старых ссылок и составляете для них пару с новых ссылок. Сайт скорее всего временно просядет, но в итоге должен вернуться обратно в топ. И скорее всего вам понадобиться еще компонент тэгов, но это зависит от того что есть сейчас и что будет потом. Попробуйте в черновую сделать пару страниц на 1.7, посмотрите как и что работает, будет проще.
Компонент то есть и 301 он отдает, но одно дело подкорректировать им косяки или перенести десяток страниц...
А вот если сотни страничек - проще прямо в коде проверять и отсылать
*

DragDG

  • Захожу иногда
  • 75
  • 1 / 0
Компонент то есть и 301 он отдает, но одно дело подкорректировать им косяки или перенести десяток страниц...
А вот если сотни страничек - проще прямо в коде проверять и отсылать
Радует что пара десятков страниц.
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Радует что пара десятков страниц.
Тогда воспользуйтесь стандартным компонентом и не нужно ничего изобретать, в нем все просто и интуитивно понятно.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

DragDG

  • Захожу иногда
  • 75
  • 1 / 0
Тогда воспользуйтесь стандартным компонентом и не нужно ничего изобретать, в нем все просто и интуитивно понятно.
правильно я понимаю, что новый сайт на место старого нужно переместить максимально быстро. Т.е. в идеале, делать его на денвере или поддомене и после полной готовности переносить?
Что бы ПС зайдя на сайт в очередной раз нашел все на своих местах.
*

AL_ALEX

  • Глобальный модератор
  • 855
  • 112 / 1
Совершенно верно.
В другом способе и смысла нет, зачем отключать работающий сайт или пытать на его в реальном времени создать новый.
Перенос только после полной готовности нового сайта.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT SEO Meta templates плагин сео-шаблонов для Joomla

Автор sergeytolkachyov

Ответов: 25
Просмотров: 5112
Последний ответ 24.11.2023, 10:24:11
от sergeytolkachyov
Как продвигать сайт! (интернет-магазин)?

Автор Kooll5

Ответов: 31
Просмотров: 7434
Последний ответ 07.02.2023, 13:59:57
от Ратник
Нет позиций в Google Joomla 3

Автор Benderalfa

Ответов: 1
Просмотров: 2929
Последний ответ 20.09.2022, 20:53:56
от darkghost
Расширенные описания страниц в Joomla (микроданные, микроформаты, RDFa, schema.org)

Автор ELLE

Ответов: 151
Просмотров: 112662
Последний ответ 20.11.2021, 18:15:42
от Byzi
Вопрос по отличию SEO MODx и Joomla

Автор vovafit

Ответов: 7
Просмотров: 1863
Последний ответ 20.11.2021, 18:15:09
от Byzi