In-Portal Developers Guide

This is a wiki-based Developers Guide for In-Portal Open Source CMS. The purpose of this guide is to provide advanced users, web developers and programmers with documentation on how to expand, customize and improve the functionality and the code the In-Portal software. Please consider contributing to our documentation writing effort.

K4:Отсылка почтового извещения

From In-Portal Developers Guide

Jump to: navigation, search
m (категория)
Current revision (16:18, 28 February 2009) (view source)
m (1 версия)
 

Current revision

Система почтовых извещений Система почтовых извещений
Статьи в этой категории
  • Отсылка почтового извещения

Для отсылки сообщений по электронной почте в K4 используется механизм почтовых извещений (email events). Все отправленные почтовые извещения попадают в журнал отправленных почтовых извещений ("Summary & Logs -> Email Log"). Этот журнал позволяет администраторам сайта понять что, когда и кому было отослано системой.

Contents

Создание почтового извещения

Новое почтовое извещение создаётся посредством добавления записи в таблицу Events. В проектах, основанных на Platform все почтовые извещения принадлежат модулю "Proj-CMS" и отсылаются только с Front-End. Исходя из выше сказанного добавление нового почтового извещения сводиться к выполнению следующего sql запроса:

INSERT INTO Events VALUES (DEFAULT, 'EVENT.NAME', DEFAULT, 1, 0, 'Proj-CMS', 'la_event_event.name', 0);

Далее требуется пойти в секцию "Configuration -> Regional" и для каждого требуемого языка сделать:

  • начать редактирование языка;
  • пойти на вкладку "Email Events";
  • найти добавленное ранее почтовое извещение;
  • ввести начальное содержание почтового извещения.
Image:Tipbox Icon.gif Все выше описанные шаги требуется выполнить только 1 раз.

В дальнейшем текст данного почтового извещения можно будет изменить в секции "Content Management -> E-mails" (только для Platform). Для изменения почтовых сообщений и фраз можно также воспользоваться ранее упомянутой секцией "Configuration -> Regional", т.к. она предоставляет более гибкий интерфейс по сравнению с ранее упомянутой секцией.

Отсылка почтового извещения

Для отсылки ранее созданного почтового извещения существуют 2 метода объекта $this->Application:

  • EmailEventUser - отсылает почтовое извещение указанному пользователю (только извещения с типом Front-End);
  • EmailEventAdmin - отсылает почтовое извещение администратору сайта (только извещения с типом Admin).

Оба выше перечисленных метода принимают 3 параметра:

название описание
$email_event_name (string) Название почтового извещения, которое будет послано.
$to_user_id (int) ID пользователя, которому будет послано извещение (учитывается только для извещений с типом Front-End).
$send_params (array) Дополнительные параметры, позволяющие изменять отправителя и получателя почтового извещения в независимости от настроек почтового извещения и указанного ID пользователя. Значения всех указанные в этом массиве параметров будут в дальнейшем доступны в тексте почтового извещения через тэг m_Param (param_name - это ключ в данном массиве):
<inp2:m_Param name="param_name"/>

При помощи следующих дополнительных параметров можно менять отправителя и получателя почтового извещения:

  • from_name - имя отправителя (если не передано, то будет взято из Site_Name);
  • from_email - адрес электронной почты отправителя (если не передан, то будет взят из Smtp_AdminMailFrom);
  • to_name - имя получателя (если не передано, то будет получено из записи указанного пользователя);
  • to_email - адрес электронной почты получателя (если не передан, то будет получен из записи указанного пользователя).
Image:Tipbox Icon.gif В данном массиве также допускается передача пользовательских параметров.

Использование FCKEditor

Если для ввода текста почтового извещения используется FCKEditor, то он стирает все не HTML тэги из текста почтового извещения. FCKEditor научить нельзя, поэтому для решения данной проблемы нужно использовать тэги замещения, описанные выше.

Если текст почтового извещения будет содержать HTML тэги, то рекомендуется следующее:

  • создать физический шаблон, напр. "test.tpl";
  • оформить содержание данного шаблона так, чтобы оно удовлетворяло поставленному заданию;
  • подготовить массив тэгов замещения, состоящий из всех "<inp2:" тэгов данного шаблона;
  • заменить все тэги в шаблоне на их эквиваленты из массива с тэгами замещения;
  • вставить ранее подготовленный массив из тэгов замещения в базу данных;
  • скопировать получившееся содержание шаблона в поле для ввода текста почтового извещения.

См. также