UniForm — модуль универсальных ajax-форм для DataLife Engine

DLE-UniForm — модуль универсальных ajax-форм для DataLife Engine от ПафНутиЙ (для замены стандартной формы обратной связи). Преимущества
- Не использует БД. Для работы модуля не требуется дополнительное соединение с БД и он не хранит данные из форм.
- Скорость работы. За счёт простоты реализации удалось достичь приемлемой скорости работы.
- Лёгкость настройки и стилизации. Все настройки модуля, оформление email-сообщения и самой формы вынесены в файлы шаблона, а это значит, что вы можете кастомизировать внешний вид не только формы, но и email-сообщения так, как этого требует дизайн.
- AJAX вызов и отправка форм. Это даёт максимальную защиту от автоматических заполнений и не обременяет пользователя разгадкой каптчи.
Установка
- Устанавливаем как обычный плагин, файл uniform_plugin.zip содержит всё необходимое для автоматической установки.
- Открыть файл /templates/Default/main.tpl
Добавить стили:<!-- DLE UniForm --> <link rel="stylesheet" href="/engine/classes/min/index.php?charset=utf-8&f={THEME}/uniform/css/uniform.css&200" /> <!-- /DLE UniForm -->
Добавить скрипты:<!-- DLE UniForm --> <script src="/engine/classes/min/index.php?charset=utf-8&f={THEME}/uniform/js/jquery.magnificpopup.min.js,{THEME}/uniform/js/jquery.ladda.min.js,{THEME}/uniform/js/jquery.form.min.js,{THEME}/uniform/js/uniform.js&200"></script> <!-- /DLE UniForm -->
- В нужном месте вставить код для вывода формы в модальном окне
<span class="uf-btn" data-uniform='{"formConfig": "feedback"}'> Обратная связь </span>
или для вывода инлайн-формы<div data-uniform-inline='{"formConfig": "inline"}'> <div class="uf-inline-loading"></div> </div>
Настройка
Атрибут data-uniform должен содержать корректный JSON-объект, содержащий ключ formConfig.
В качестве значения принимается существующее имя папки, содержащие корректно настроенную конфигурацию модуля (смотрите любой из конфигов, идущих в комплекте с модулем).
Конфиги, идущие в комплекте с модулем
attachments
callback
customheader
feedback
inline
newsauthor
test
Автор: ПафНутиЙ
Версия DLE: 13.x и выше
Кодировка: utf-8
Актуальная версия на гитхабе
Изменения версии 2.0.0
- Модуль теперь распространяется как плагин DLE
- Убрана совместимость со старыми версиями DLE, не поддерживающими плагины
- Переработан синтаксис передачи параметров формы
uniform_plugin.zip
[59.49 Kb] (cкачиваний: 51)
Для DLE 15+:
Исправление работы отправки писем для DLE 15.x и 16.x
Открыть файл www/engine/modules/uniform/uniform.php
найти строку:
// Если данные передаются постом — надо бы их обработать
require_once ENGINE_DIR . '/classes/parse.class.php';
$parse = new ParseFilter();
и ВЫШЕ поставить:
include_once (DLEPlugins::Check(ENGINE_DIR . '/classes/htmlpurifier/HTMLPurifier.standalone.php'));
В файле engine/modules/uniform/uniform.php найти:
$tpl->copy_template = str_replace("{uf_field_{$k}}", $val, $tpl->copy_template);
заменить на:
$tpl->copy_template = str_replace("{uf_field_{$k}}", ".$val.", $tpl->copy_template);
Переменная $val должна быть типом string в любом случае, иначе отправка формы без аттача не происходит...
Теперь, даже если не прикреплять файлы к сообщению, то отправка происходит нормально.
Протестировал на DLE 16.0 и PHP 8.2 - всё прекрасно работает!
Источник
Похожие статьи:
Комментарии: