Ключи интерполяции для настройки текстовых и системных шаблонов электронной почты

:bookmark: Это руководство предоставляет подробный обзор ключей интерполяции, используемых для настройки текста и шаблонов системных писем в Discourse.

:person_raising_hand: Требуемый уровень доступа пользователя: Администратор

При настройке текста в Discourse или настройке конкретных шаблонов электронной почты вы могли заметить, что в некоторых шаблонах доступны переменные-заполнители.

В Discourse их называют ключами интерполяции.

Понимание ключей интерполяции

Ключи интерполяции — это заполнители, доступные в определённых шаблонах Discourse. Они позволяют вставлять динамический контент в ваши текстовые и почтовые шаблоны.

Пример ключей интерполяции для шаблона письма «Создан учётная запись»:

Эти ключи, такие как %{username} или %{site_name}, будут заменены фактическими данными при отправке письма.

Как правило, эти заполнители можно перемещать внутри шаблона, к которому они относятся, но они доступны только в этом шаблоне и не могут быть перемещены в другие шаблоны, поскольку все они поддерживаются серверным кодом, привязанным к соответствующему шаблону.

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

Дополнительные ключи интерполяции

Системное сообщение «Добро пожаловать пользователю»

Для шаблонов system_messages.welcome_user можно добавить следующие дополнительные ключи:

  • username: Имя пользователя
  • name: Полное имя пользователя
  • name_or_username: Либо полное имя пользователя, либо его имя пользователя

Эти значения предоставляются классом SystemMessage во время выполнения (см. system_message.rb для соответствующего кода Discourse).

Письма с уведомлениями пользователям

Для user_notifications и связанных шаблонов электронной почты (включая unsubscribe_mailing_list и unsubscribe_link) доступно множество дополнительных ключей, таких как topic_title, username, site_name, url, unsubscribe_url и другие.

Для получения полного и актуального списка всех разрешённых пользовательских ключей интерполяции и групп шаблонов, к которым они применяются, обратитесь к константе ALLOWED_CUSTOM_INTERPOLATION_KEYS в исходном коде Discourse для translation_override.rb.

9 лайков

Это неверно. В настоящее время это работает только для system_messages.welcome_user, но мы могли бы расширить функциональность на все остальные ключи. Это подходит для pr-welcome.

4 лайка

Спасибо, что указали на это, в руководстве это уже исправлено.

2 лайка

Привет!

Как я могу изменить значение для некоторых из этих ключей интерполяции? Например, %{search_answer}

Спасибо!

Привет!
Сообщается, что этот ключ недействителен:

P.S.
Я заменяю в тексте, а не в электронной почте (имеет ли это значение)? Спасибо!

Я не думаю, что они глобальные и бесплатные для использования везде.

1 лайк

Спасибо @Jagster! Я использую их в настройке текста, так что, исходя из поста в теме, это должно работать?

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

Конечно, плагины могут многое, но в данном случае это не работает из коробки.

И дисклеймер: я просто ещё один конечный пользователь, и я тоже могу ошибаться ужасно. Но я вполне уверен, что прав — именно поэтому ваша попытка не сработала :man_shrugging:

Хорошо, большое спасибо за вашу поддержку. Похоже, это не работает даже при использовании в шаблоне письма:

Мой прогноз: в шаблонах вида «Пользователь сделал…» можно использовать %{username}, а в остальных шаблонах это не поддерживается.

Но мы увидим завтра, когда все гуру проснутся.