Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 1927 Просмотров
*

Rufina

  • Новичок
  • 4
  • 0 / 0
Добрый день.

Пожалуйста, помогите решить проблему.

Сайт на J4.2.5, русский языковой пакет от 8 ноября 2022 г.

После регистрации нового пользователя, админу на емейл приходит письмо буквально такого вида:

Здравствуйте!

На сайте {SITENAME} зарегистрировался новый пользователь.

Имя: {NAME}
Логин: {USERNAME}

Вместо тегов {SITENAME} и т.п. значения не подставляются. Прочитала, что это связано с файлами переводов, вот пост https://issues.joomla.org/tracker/joomla-cms/35660. Сообщение давнишнее - от 2021 года

В И-нете упоминаний такой проблемы практически нет... А у меня она есть. Как можно решить проблему своими силами?
*

Kostelano

  • Давно я тут
  • 525
  • 51 / 1
На скорую руку не удалось найти плагин, который так или иначе влиял бы на такое поведение, поскольку, как указали постом выше, проблем с локализацией нет. Я получил аналогичное корректное сообщение на почту.

Проблема повторяется всегда или возможно сбой произошел 1 раз?

Ничего не меняя, попробуйте воспользоваться отправкой тестового сообщения из общих настроек сайта (Система - Общие настройки, вкладка Сервер, кнопка Отправить тестовое сообщение внизу страницы) - так мы сможем понять глобальная ли проблема или локальная для com_users.
*

Rufina

  • Новичок
  • 4
  • 0 / 0
Ничего не меняя, попробуйте воспользоваться отправкой тестового сообщения из общих настроек сайта (Система - Общие настройки, вкладка Сервер, кнопка Отправить тестовое сообщение внизу страницы) - так мы сможем понять глобальная ли проблема или локальная для com_users.

Тестовое сообщение пришло правильно!! Вместо {SITENAME} подставлено его значение.
*

Rufina

  • Новичок
  • 4
  • 0 / 0
Проблема повторяется всегда или возможно сбой произошел 1 раз?

Нет, не один раз. Сколько бы я не регистрировала пользователя, всегда сообщение именно в таком виде приходит
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Отправка письма происходит в RegistrationModel
components/com_users/src/Model/RegistrationModel.php#L554

Код
$mailer = new MailTemplate('com_users.registration.admin.new_notification', $app->getLanguage()->getTag());
$mailer->addTemplateData($data);
$mailer->addRecipient($row->email);
$return = $mailer->send();

Перед отправкой MailTemplate
https://github.com/joomla/joomla-cms/blob/4.2-dev/libraries/src/Mail/MailTemplate.php#L227
заменяет теги, которые были установлены через $mailer->addTemplateData($data)

Например, были установлены данные:
Код
$data['fromname'] = $app->get('fromname');
$data['mailfrom'] = $app->get('mailfrom');
$data['sitename'] = $app->get('sitename');
$data['siteurl'] = Uri::base();

В шаблоне письма MailTemplate будет искать теги {FROMNAME}, {MAILFROM}, {SITENAME}, {SITEURL} и заменит их соответствующими значениями.

Почему-то этого не происходит.
*

Kostelano

  • Давно я тут
  • 525
  • 51 / 1
Нет, не один раз. Сколько бы я не регистрировала пользователя, всегда сообщение именно в таком виде приходит.

Стороннего компонента, связанного с пользователями/профилями/регистрацией нет?
*

Rufina

  • Новичок
  • 4
  • 0 / 0
Спасибо всем огромное!!

Размещая этот пост я не сказала главного - у меня установлен VM4 и при регистрации происходит перенаправление с регистрации J на регистрацию VM.
Отключив перенаправление в VM я убедилась, что с регистрацией J все в порядке и сообщения корректные.

А проблема VM находится здесь /administrator/components/com_virtuemart/models/user.php

public function register не использует класс MailTemplate.
И опять же использование емейл шаблонов, как я поняла, нельзя отключить (чтобы работало по-старому). Пришлось в VM модель user.php внести изменения - сделать отправку уведомлений с помощью класса MailTemplate.

Еще раз, огромное спасибо, ребята!


Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться