Главная страница / DataLife Engine / Плагины / UniForm — модуль универсальных ajax-форм для DataLife Engine

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

13 декабря 2020, Воскресенье
1 486
6
UniForm — модуль универсальных ajax-форм для DataLife Engine

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

Преимущества
  • Не использует БД. Для работы модуля не требуется дополнительное соединение с БД и он не хранит данные из форм.
  • Скорость работы. За счёт простоты реализации удалось достичь приемлемой скорости работы.
  • Лёгкость настройки и стилизации. Все настройки модуля, оформление email-сообщения и самой формы вынесены в файлы шаблона, а это значит, что вы можете кастомизировать внешний вид не только формы, но и email-сообщения так, как этого требует дизайн.
  • AJAX вызов и отправка форм. Это даёт максимальную защиту от автоматических заполнений и не обременяет пользователя разгадкой каптчи.

Установка
  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
  • Модуль теперь распространяется как плагин 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 - всё прекрасно работает!

Источник
27-04-2023, 16:31: Fix для DLE15+
Комментарии:
{login}

Твой комментарий..

  1. grisa 4 мая 2023 17:12

    установил по инструкции

    отправил письмо было написано

    Спасибо за обращение!

    Если оно потребует ответа — мы свяжемся с вами

    но письмо на моём майле не пришло

    в чём  может быть проблема






    1. byroot Администраторы 4 мая 2023 18:05
      нужно смотреть настройки DLE, если там всё в порядке, то настраивать "Метод отправки почты SMTP": Если функция PHP mail() недоступна, выберите метод SMTP - это в админке в основных настройках, вкладка ПОЧТА.
      1. grisa 4 мая 2023 22:37
        https://i.imgur.com/k5Za4wn.png
        где дальше смотреть помогите пожалуйста
        1. byroot Администраторы 4 мая 2023 22:56
          SMTP нужно настраивать, нагуглить можно настройки smtp для DLE. У меня как то за 10+ лет всегда работал нормально и исправно PHPMil, и не заморачивался никогда настройкой SMTP в DLE.
          1. Grisa 5 мая 2023 02:32
            Поставил и PHPMil и всеоравно не работает
            Можете пожалуйста сделать скрины как настроили на вашем сайте некогда не работал у меня обратная связь
            1. byroot Администраторы 5 мая 2023 03:58
              У меня всё стоит по умолчанию: почта прописана ещё при установке DLE много лет назад, режим отправки - phpmail, больше никаких настроек не было сделано.
              Если не работает phpmail, то с настройкой сервера наверное нужно разбираться, проще всего обратиться в ТП хостера, должны будут помочь в решении этого вопроса, или искать того, кто занимается настройкой сервера по любым проблемам и вопросам касательно этого нелегкого дела.
Модули для создания киносайта и не только на базе DataLife Engine, и многое другое...
Просто блог Евгения Попова, он же - byroot © 2015-2025 | Карта сайта