ddSendFeedback

Snippet
  • Версия: 1.11
  • Выпущено:
  • Метки: General
  • Использует:
    • PHP >= 5.4
    • MODXEvo >= 1.1
    • MODXEvo.library.ddTools >= 0.16
Скачать 638 скачиваний

Описание

Сниппет для отправки сообщений обратной связи от пользователей на необходимый email. Удобно использовать при отправке через ajax. Особенности:

  • Отправка писем от email, указанного пользователем, а не от системного email (см. параметр from_formField);
  • Получение адреса почты, на который нужно отправлять из поля (или TV) документа (см. параметры email_docField и email_docId);
  • Поддержка вложений файлов в email (см. параметр filesFields).

К примеру, отправка обратной связи на этом сайте реализована при помощи этого сниппета.

Список изменений

  • Внимание! Требуется MODXEvo ≥ 1.1.
  • Внимание! Требуется MODXEvo.library.ddTools ≥ 0.16.
  • Добавлена поддержка указания шаблона письма без чанка, через префикс @CODE:.
  • Пустые плэйсхолдеры удаляются из шаблона письма перед финальным парсингом (в котором запускаются снипппеты и т. п.).

Документация

Из каждой пары параметров email / email_docField и tpl / text необходимо передавать лишь один.

Возвращает строку в формате JSON — объект со следующими полями:

{
	// Статус отправки (true или false).
	status: true,
	// Заголовок сообщения (из параметра «result_titleSuccess» / «result_titleFail» 
	// в соответствии со статусом отправки).
	title: "title",
	// Сообщение (из параметра «result_messageSuccess» / «result_messageFail» 
	// в соответствии со статусом отправки).
	message: "message"
}

Описание параметров

Название Описание Допустимые значения Значение по умолчанию
email * Адреса почты, на которые необходимо отправить сообщение. Каждому отправляется своя копия, чтобы в списке получателей не мусорить {string_commaSeparated}
email_docField Имя поля документа (или TV), значение которого необходимо получить (содержащего адрес почты). {string}
email_docId ID документа, значение поля которого нужно получить (содержащего адрес почты). {integer}
tpl * Шаблон письма (имя чанка или текст через префикс @CODE:).

Доступные плэйсхолдеры: [+docId+] — id документа, с которого был сделан запрос и все переменные из массива $_POST. Для генерации ссылки на документ, с которого был отправлен запрос используйте http://code.divandesign.ru/[~[+docId+]~] (http://code.divandesign.ru/ здесь необходим, т.к. ссылки в письмах должны быть абсолютными).
{string_chunkName|string}
tpl_placeholders Дополнительные данные в виде query string которые будут переданы в шаблон письма «tpl».

Например: «pladeholder1=value1&pagetitle=My awesome pagetitle!». Массивы также поддерживаются:

  • «some[a]=one&some[b]=two» => «[+some.a+]», «[+some.b+]»;
  • «some[]=one&some[]=two» => «[+some.0+]», «[some.1]».
{string_queryString}
text Текст сообщения, если передан, шаблоны игнорируются. Удобно использовать при запуске сниппета через $modx->runSnippets(). {string}
subject Тема письма. {string} 'Обратная связь'
from От кого письмо (email отправителя). {string} 'info@divandesign.biz'
from_formField Элемент массива $_POST с email отправителя. Если задано (и значение не пустое), то параметр «from» игнорируется. {string}
filesFields Имена тегов input из которых необходимо брать файлы для отправки, разделённые через запятую. Используется, в случае если в запросе передаются ещё и файлы (массив $_FILES). {string_commaSeparated}
result_titleSuccess Заголовок, который будет возвращён, если отправка письма прошла успешно (поле «title» результирующего JSON). {string} 'Заявка успешно отправлена'
result_titleFail Заголовок, который будет возвращён, если отправка письма по какой-то причине не удалась (поле «title» результирующего JSON). {string} 'Непредвиденная ошибка =('
result_messageSuccess Сообщение, которое будет возвращено, если отправка письма прошла успешно (поле «message» результирующего JSON). {string} 'Наш специалист свяжется с вами в ближайшее время.'
result_messageFail Сообщение, которое будет возвращено, если отправка письма по какой-то причине не удалась (поле «message» результирующего JSON). {string} 'Во время отправки заявки что-то произошло.< br />Пожалуйста, попробуйте чуть позже.'