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

mvb

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
WAMP Server 5, Joomla! 1.5, все установки по умолчанию. Сервер свой.

Не работает функция ,SendMail например, при регистрации пользователя пишет "Невозможно инициализировать функцию отправки почты". Что-то слышал про Mercury, но где взять и что с ним делать не нашел :)
*

mvb

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

Настраиваем параметры:

Способ отправки почты                     SMTP server
Адрес отправителя                           Тут пишем адрес саппорта сайта, например segonya@pisem.net
Имя отправителя                              Произвольно
Путь к Sendmail                                Ничего не меняем, не наш случай
Использовать SMTP-авторизацию       Пишем ДА
SMTP логин                                    Логин, под которым заходите на свой почтовый сервер (обычно полный адрес, например
                                                      segonya@pisem.net)
SMTP пароль                                  Пароль
Адрес SMTP-сервера                         smtp-сервер (например, mail.pochta.ru), нужно смотреть в справке по конкретному серверу
*

bober

  • Новичок
  • 1
  • 0 / 0
да, у меня тоже в таком случае все работает. но меня смущает что тогда в файле configuration.php будет просто и ясно прописаны логин и пасс к мылу админа и пасс к БД..
*

mahp

  • Захожу иногда
  • 127
  • 4 / 0
  • mahp
Настраиваем параметры:

Способ отправки почты                     PHP mail function
Адрес отправителя                           mahp@1111.2222.ru Тут пишу своё мыло созданное в СиПанели хостинга
Имя отправителя                             Произвольно, пишу адрес сайта
Путь к Sendmail                              У меня по умолчанию  /usr/sbin/sendmail   но можно уточнить у хостера
Порт    25
Использовать SMTP-авторизацию       У меня работает и ДА и НЕТ  ?
SMTP логин                                   Логин созданной в СиПанели почты, см. выше. У меня стоит mahp, но работает и с полным адресом  ?
SMTP пароль                                  Пароль что указали при создании упомянутого выше почтового аккаунта
Адрес SMTP-сервера                        выдаёт хостер при регистрации хостинга. У меня что-то  91.164.170.32 (изменил циферки немного)

Да, в настройка почты СиПанели указал чтобы всю почту с адреса mahp@1111.2222.ru перенаправляли на мою Яндекс почту.

Хостер http://best-hoster.ru

Парни нашел решение проблема "Использовать Flash-загрузчик"- его надо отключить и все работает нормаль с PHP mail function  ,если он включен выдает ошибку Невозможно инициализировать функцию отправки почты
*

Beonet

  • Новичок
  • 4
  • 0 / 0
Я вчера весь вечер промучился с настройкой почты, перепробовал все возможные варианты. Помог "звонок другу" (службе техподдержки). Оказывается что в Majordomo для новых аккаунтов функция отправки почты по умолчанию отключена. Они включили и у меня сразу всё заработало.
*

komponent

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
послушал ваш совет, да ошибку выдавать перестало, но письма чего то не приходят :(
*

Beonet

  • Новичок
  • 4
  • 0 / 0
А техподднржка что говорит?
У меня такие настройки:
Способ отправки почты                     PHP mail function
Адрес отправителя                           beonet@сайт.ru Тут пишу своё мыло созданное в СиПанели хостинга
Имя отправителя                              Любое
Путь к Sendmail                                /usr/sbin/sendmail
Использовать SMTP-авторизацию       да
SMTP Security                                  нет
Порт                                               25
SMTP логин                                     beonet@сайт.ru
SMTP пароль                                   Пароль что указали при создании упомянутого выше почтового аккаунта
Адрес SMTP-сервера                        smtp.сайт.ru
*

lamanzh

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Придется поднять старую темку.

Отправка почты через AcyMailing, а также регистрация пользователей, все работает.

Использую JForms, при попытке отправить сообщение через форму выдается ошибка: Невозможно инициализировать функцию отправки почты.

Joomla 1.5.22

В чем может быть проблема?
*

demane

  • Осваиваюсь на форуме
  • 21
  • 1 / 0
Доброго всем время суток. Столкнулся с подобной проблемой:

при регистрации нового пользователя выдает сообщение "Невозможно инициализировать функцию отправки почты."

но при этом письмо приходит пользователю в обоих случаях :

1. Когда все эти поля заполнены (по уже изученным постам)
Способ отправки почты    
Адрес отправителя    
Имя отправителя    
Путь к Sendmail    
Использовать SMTP-авторизацию     Нет  Да
SMTP Security    
SMTP порт    
SMTP логин    
SMTP пароль    
Адрес SMTP-сервера

2. И даже когда эти поля не заполнены (по умолчанию после инсталляции движка на хост)

Адрес отправителя на mail.ru

Причем, странно, на другом проекте все то же самое и настройки идентичны - но там все нормально.

Версия PHP визде 5.3
*

JomTime

  • Захожу иногда
  • 126
  • 3 / 2
  • Joom
Спасибо большое за подробность! еслиб не вы я ещё нидели 2 мучился бы!
*

ilunga

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Парни нашел решение проблема "Использовать Flash-загрузчик"- его надо отключить и все работает
попробовал, проблема ОСТАЛАСЬ.
*

tigra-uki

  • Давно я тут
  • 565
  • 11 / 0
  • Joom'лiстка
попробовал, проблема ОСТАЛАСЬ.
да, у меня, увы, это тоже не помогло решить проблему.

Указанный вначале способ с SMTP, а не PHP mail function работает.
Слишком сконцентрированное внимание необходимо разбавлять действием.
*

LolyCryu

  • Новичок
  • 5
  • 0 / 0
Не претендуя на истину в последней инстанции, публикую решение, которое у меня заработало.
С самого начала. В панели администрирования входим в раздел "Общие настройки", закладка сервер. В правом нижнем углу находятся параметры отвечающие за почту.

Настраиваем параметры:

Способ отправки почты                     SMTP server
Адрес отправителя                           Тут пишем адрес саппорта сайта, например segonya@pisem.net
Имя отправителя                              Произвольно
Путь к Sendmail                                Ничего не меняем, не наш случай
Использовать SMTP-авторизацию       Пишем ДА
SMTP логин                                    Логин, под которым заходите на свой почтовый сервер (обычно полный адрес, например
                                                      segonya@pisem.net)
SMTP пароль                                  Пароль
Адрес SMTP-сервера                         smtp-сервер (например, mail.pochta.ru), нужно смотреть в справке по конкретному серверу

Спасибо Автору mvb! После того, как испробовала практически все описанные здесь варианты, помог именно этот.
Правда не с первого раза. Этому я так поняла помешало то, что (далее цитата из техподдержки хостера):
"У Вас на www домене в качестве email администратора был указан почтовый ящик с сервиса mail.ru, прописал Ваш info@сайт.kz, пожалуйста проверьте отправку почты из формы и сообщите о результате."
Желаю удачи! Кстати на соседней ветке http://joomlaforum.ru/index.php?topic=224681.0 есть хорошая ссылка по настройке отправляемых Joomla сообщений.
Вот она: http://takprostotak.ru/joomla/kak-nastroit-otpravku-pochty-v-joomla-i-virtuemart-kakoj-variant-vybrat-smtp-ili-mail.html
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JFolder::create: Невозможно создать каталог Внимание! - Не удалось переместить файл

Автор sayber

Ответов: 30
Просмотров: 67678
Последний ответ 14.07.2017, 12:05:37
от araiguma
Mobile Joomla Невозможно скопировать выбранный файл

Автор Elimelech

Ответов: 0
Просмотров: 1827
Последний ответ 20.07.2016, 11:30:05
от Elimelech
!!! Невозможно найти установочный пакет !!!

Автор M0NG0L

Ответов: 12
Просмотров: 28260
Последний ответ 13.06.2016, 04:00:21
от kabban
Оповещение об успешной отправки формы

Автор DizainerGazeti

Ответов: 2
Просмотров: 1508
Последний ответ 23.11.2015, 16:35:29
от DizainerGazeti
Выдает ошибку "Невозможно найти установочный пакет"

Автор riabina2

Ответов: 13
Просмотров: 2791
Последний ответ 19.11.2015, 12:03:51
от Ragivort