Блог Евгения Попова :: Программы :: DataLife Engine

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


DLE-UniForm — модуль универсальных ajax-форм для DataLife Engine от ПафНутиЙ (для замены стандартной формы обратной связи).

Преимущества

Установка
  1. Устанавливаем как обычный плагин, файл uniform_plugin.zip содержит всё необходимое для автоматической установки.
  2. Открыть файл /templates/Default/main.tpl
    Добавить стили:
    <!-- DLE UniForm -->
    <link rel="stylesheet" href="/engine/classes/min/index.php?charset=utf-8&amp;f={THEME}/uniform/css/uniform.css&amp;200" />
    <!-- /DLE UniForm -->

    Добавить скрипты:
    <!-- DLE UniForm -->
    <script src="/engine/classes/min/index.php?charset=utf-8&amp;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&amp;200"></script>
    <!-- /DLE UniForm -->

  3. В нужном месте вставить код для вывода формы в модальном окне
    <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

[attachment=117:uniform_plugin.zip]

Для 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 - всё прекрасно работает!

Источник
Перейти на сайт (скачивать файлы можно только на сайте)