- Модуль теперь распространяется как плагин DLE
- Убрана совместимость со старыми версиями DLE, не поддерживающими плагины
- Переработан синтаксис передачи параметров формы
- Исправлена ошибка совместимости с DLE13 (fixed #73)
- Добавлена совместимость с DLE 13
- Обновлён dle_starter_kit до актуаьной версии
- Обновлён установщик доя версии 1.0.2 (fix #47)
- Добавлен новый параметр
parseSendMail
, добавляющий возможность производить манипуляции над данными перед отправкой email. В параметр передаётся путь к php файлу, без расширения, отностительно папки engine/modules. Например можно добавить в шаблон email-сообщения новые теги [footer]{footer}[/footer]
. Для этого в конфиге прописываем parseSendMail = addFooter
, создаём файл engine/modules/addFooter.php
со следующим содержимым:
<?php
if ($arSendMail['select1'] === 'val1') {
$mailTpl->set('[footer]', '');
$mailTpl->set('[/footer]', '');
$mailTpl->set('{footer}', $arSendMail['select1']);
} else {
$mailTpl->set_block("'\\[footer\\](.*?)\\[\\/footer\\]'si", '');
}
- Идея с "колбэками", реализована, дальше будем добавлять по потребностям (fix #40) (fix #50).
- Новый, удобный установщик модуля.
- Улучшения и оптимизация кода.
- Добавлены почти все поля из профиля пользователя в шаблон email (fixed #20).
- Добавлен вывод допполей из профиля пользователя в шаблон email (fixed #22).
- Ко всем тегам шаблонам email-сообщения добавлены противоположные теги
[not_xxx]
выводящие текст между ними, когда соответствующий тег {xxx}
пуст.
- Исправлена ошибка, когда пользователю разрешено менять шаблон сайта, а форма подтягивается из шаблона, установленного по умолчанию в системе (fixed #32).
- Добавлен новый параметр конфигурации
sendToSender
. Если этот параметр задан, то письмо будет отправлено на email-адрес, указанный в поле email. Так же проверяется валидность этого адреса. (fixed #28)
- В шаблон email-сообщения добавлены новые теги, обрабатываемые в сообщении и в поле заголовке письма, когда активирован параметр
sendToSender
.
[to_sender] текст для отправителя [/to_sender]
[not_to_sender] текст для других получателей [/not_to_sender]
- Теперь если в форме есть заполненное поле с
name="header"
, такое поле будет автоматически подставлено в тему письма. #12
- Теперь можно отправлять письма как простые текстовые #11
- Исправлена ошибка на DLE 10.5+ #14
- Исправлена ошибка #10
- Если пользователь авторизован, тег
{uf_field_email}
при открытии формы автоматически заменится на его email.
- Убран тег
{send_date='формат_даты'}
т.к. он оказался нерабочим.
- Исправлено некорректное поведение тега
{send_date}
.
- Добавлен новый параметр конфигурации
sendAsPlain
— Отправлять сообщение как простой текст.
- Добавлен новый параметр конфигурации
sendToAuthor
— Отправить письмо автору новости, если есть поле с name="newsId"
и если автор разрешил получение писем с сайта.
- Реализована возможность отправлять в письме данные из новости. Для этого необходимо передать в форму поле
newsId
. Пример шаблона в папке newsauthor. В шаблоне email-сообщения можно использовать следующие теги:
[news_id]{news_id}[/news_id]
— ID новости.
[news_autor]{news_autor}[/news_autor]
— Логин автора.
[news_title]{news_title}[/news_title]
— Заголовок новости.
[news_email]{news_email}[/news_email]
— Email автора.
- Реализована возможность отправки сообщения на email автора новости. Для этого необходимо передать в форму поле
newsId
и в конфиге прописать sendToAuthor = y
. Пример шаблона в папке newsauthor.
- Добавлены новые теги для использования в шаблоне email сообщения.
{site_home_title}
— Выводит название сайта из настроек DLE.
{site_http_home_url}
— Выводит адрес сайта из настроек DLE.
{site_short_title}
— Выводит краткое название сайта из настроек DLE.
[user_name]{user_name}[/user_name]
— Выводит логин пользователя, отправившего сообщение.
[user_fullname]{user_fullname}[/user_fullname]
— Выводит полное имя пользователя, отправившего сообщение.
[user_email]{user_email}[/user_email]
— Выводит email пользователя, отправившего сообщение.
[user_foto]{user_foto}[/user_foto]
— Выводит ссылку на аватар пользователя, отправившего сообщение.
[user_land]{user_land}[/user_land]
— Выводит то, что пользователь, отправивший сообщение, написал в поле "Место жительства".
- Добавлены теги для вывода даты отправки сообщения в email. Теги работают в шаблоне email.tpl. Использование:
{send_date}
или {send_date=D.m.Y}
.
- Добавлена возможность вывода формы инлайново. Форма подгружается по-прежнему на ajax, но выводится сразу после загрузки страницы. Подробности в шаблоне inline
- Добавлен тег
{current_page}
для вывода URL страницы, с которой была вызвана форма. Используется только в шаблоне email.tpl.
- Изменён принцип хранения шаблонов модуля. Теперь все шаблоны каждой из форм хранятся в папке, заданной через конфиг (formConfig), в переменной templateFolder.
Например шаблон формы обратной связи (feedback) выглядит так:
{THEME}/uniform/
└── feedback/
├── config.tpl - файл конфига
├── email.tpl - файл email-сообщения
└── form.tpl - файл вывода формы
- Добавлены теги для вывода контента формы по условию, в зависимости от значения, переданного в форме. Подробное описание в файле Default/uniform/test/form.tpl
- Добавлены теги для вывода данных в email-сообщение по условию, в зависимости от значения, переданного в форме. Подробное описание в файле Default/uniform/callback/email.tpl
- Изменена обработка контента шаблона email-сообщения, теперь символ переноса строки (
\n
) не заменяется на <br>
в тексте шаблона, а только в тексте пришедших полей.
- В шаблон email-сообщения добавлены теги квадратных скобках для вывода информации, заключенной в них только в том случаи, если поле заполнено. Например для вывода поля с имененм name можно прописать так:
- В шаблоне email-сообщения теперь можно использовать тег
{all_mail_fields}
для вывода всех полей, которые приходят из формы. Очень удобно для последующего детального составления шаблона. Можно просто скопировать нужные теги и вставить в шаблон.
Пример для формы заказа звонка:
[phone]{phone}[/phone] : 456-789
[name]{name}[/name] : Иван
[calltime]{calltime}[/calltime] : anytime
- Добавлена обработка селектов, теперь при неудачной отправке формы значение селекта сохранится. Для этого добавлены новые теги, выводящие текст в них, если option был выбран. Составление тега происходит по следующей схеме:
[uf_select_name селекта_value элемента]
Пример:
<select name="calltime" class="uf-input">
<option value="anytime" [uf_select_calltime_anytime]selected[/uf_select_calltime_anytime]>в любое время</option>
<option value="9-12" [uf_select_calltime_9-12]selected[/uf_select_calltime_9-12]>c 9:00 до 12:00</option>
<option value="12-15" [uf_select_calltime_12-15]selected[/uf_select_calltime_12-15]>c 12:00 до 15:00</option>
<option value="15-18" [uf_select_calltime_15-18]selected[/uf_select_calltime_15-18]>c 15:00 до 18:00</option>
</select>
- Добавлена обработка чекбоксов, теперь при неудачной отправке формы отмеченные чекбоксы сохранятся. Для этого добавлены новые теги, выводящие текст в них, если чекбокс был отмечен. Составление тега происходит по следующей схеме:
[uf_checkbox_name чекбокса_value чекбокса]
Пример:
<input type="checkbox" name="checkboxName[]" value="one" [uf_checkbox_checkboxName_one]checked[/uf_checkbox_checkboxName_one]> Чекбокс 1
<input type="checkbox" name="checkboxName[]" value="two" [uf_checkbox_checkboxName_two]checked[/uf_checkbox_checkboxName_two]> Чекбокс 2
<input type="checkbox" name="checkboxName[]" value="tree" [uf_checkbox_checkboxName_tree]checked[/uf_checkbox_checkboxName_tree]> Чекбокс 3
- Добавлена обработка радиокнопок, теперь при неудачной отправке формы отмеченные радиокнопки сохранятся. Для этого добавлены новые теги, выводящие текст в них, если радиокнопка была отмечена. Составление тега происходит по следующей схеме:
[uf_radio_name радиокнопки_value радиокнопки]
Пример:
<input type="radio" name="sendTo[]" value="one" [uf_radio_sendTo_one]checked[/uf_radio_sendTo_one]> Радиокнопка 1
<input type="radio" name="sendTo[]" value="two" [uf_radio_sendTo_two]checked[/uf_radio_sendTo_two]> Радиокнопка 2
<input type="radio" name="sendTo[]" value="tree" [uf_radio_sendTo_tree]checked[/uf_radio_sendTo_tree]> Радиокнопка 3
- Добавлены новые теги
[uf_default_value]текст[/uf_default_value]
, выводящие текст между ними, если форма только что открыта. Такие теги полезны, если требуется изначально сделать выбранным какой либо пункт селекта, или чекбокс, или добавить в поле свой текст, который не должен переписывать собой данные при неудачной отправке формы.
- Исправлена ошибка, из-за которой пи первом ткрытии формы не обрабатывались теги ошибки заполнения email:
[uf_email_error][/uf_email_error]
.
- Добавлен новый тег
{* любой текст *}
для возможности оставлять комментарии в шаблонах, которые не должны попадать на сайт. (аналог комментариев в php).