Не нравятся результаты поиска? Попробуйте другой поиск!

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


     13.05.2015    Модули для DLE    3924    56

Краткая информация о модуле (хаке)

Автор: ПафНутиЙ
Версия DLE: 10.x
Цена: Бесплатно
Не подходит стандартная форма обратной связи? Нужна возможность использовать свои поля? Нужна защита от ботов и лёгкая настройка без использования БД? Тогда этот модуль для Вас!

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


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


Установка


  • Скачать актуальную версию модуля
  • Распаковать содержимое папки upload в корень сайта.
  • Открыть {THEME}/main.tpl и в нужном месте, перед закрывающим тегом
    </head>
    вставить подключение стилей и скриптов модуля:
    <!-- DLE UniForm -->
    <link rel="stylesheet" href="/engine/classes/min/index.php?charset=utf-8&amp;f={THEME}/uniform/css/uniform.css&amp;01" />
    <script type="text/javascript" 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;01"></script>
    <!-- /DLE UniForm -->

  • Далее в нужном шаблоне, в нужном месте вставить кнопку вызова ajax-окна формы:
    <span class="uf-btn" data-uf-open="/engine/ajax/uniform/uniform.php" data-uf-settings='{"formConfig": "feedback"}'>Обратная связь</span>

    где feedback — Папка с шаблонами формы.
  • Готово! Остаётся нажать на кнопочку.


Скриншоты форм, поставляемых в комплекте с модулем



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


Форма обратной связи, с ошибками
UniForm — модуль универсальных ajax-форм для DataLife Engine


Сообщение об успешной отправке сообщения из формы обратной связи
UniForm — модуль универсальных ajax-форм для DataLife Engine


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


Форма заказа звонка, в процессе отправки
UniForm — модуль универсальных ajax-форм для DataLife Engine


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


Тестовая форма с примером обработки результатов отправки формы
UniForm — модуль универсальных ajax-форм для DataLife Engine


Настройка


  • Описание и примеры конфигурации вызова модуля можно найти в файлах, с именем config.tpl.
  • Описание и примеры параметров формы можно найти в файле {THEME}/uniform/test/form.tpl.
  • Описание и примеры параметров email-сообщения можно найти в файле {THEME}/uniform/callback/email.tpl.


Параметры, доступные в файле конфигурации (config.tpl):


  • templateFolder — Папка с шаблонами формы формы. Указывается подпапка, в папке uniform текущего шаблона сайта, в которой должны лежать файлы config.tpl, form.tpl и email.tpl. Например шаблон формы обратной связи (feedback) выглядит так:
    {THEME}/uniform/
    └── feedback/
        ├── config.tpl - файл конфига
        ├── email.tpl - файл email-сообщения
        └── form.tpl - файл вывода формы

  • nocache — Отключение кеширования модуля.
  • debug — Дебаг. Выводится распечатка конфига, массива данных, переданных через $_POST и массива данных, отправляемых на email.
  • required — Обязательные поля. Указываются имена полей, обязательных для заполнения.
  • hidden — Разрешенные скрытые поля. Такие поля передаются из атрибута data-uf-settings кнопки открытия формы. Например, если к кнопке открытия формы прописать
    data-uf-settings='{"formConfig": "feedback", "fields":{"field1": "value1", "field2": "value2", "field3": "value3"}}'
    и при этом в конфиге будет вот такая запись:
    hidden = field1,field3
    то поле field2 не будет выведено в форму. Это сделано для безопасности работы модуля.
  • sendmail — Отправлять email при заполнения формы?
  • emails — Адреса почты, на которые необходимо отправлять уведомление. Необходимо прописать один или несколько email-адресов, через запятую.
  • selectFields — Поля типа select. Необходимо перечислить через запятую имена всех полей, являющихся селектами.
  • checkboxFields — Поля типа checkbox. Необходимо перечислить через запятую имена всех полей, являющихся чекбоксами.
  • radioFields — Поля типа radio. Необходимо перечислить через запятую имена всех полей, являющихся радиокнопками.


Теги шаблонов


Список тегов, поддерживаемых в шаблоне form.tpl.
Вместо X следует прописывать имя инпута, селекта, чекбокса или радиокнопки. Имена не должны дублироваться.
  • {* текст *} — Служебный комментарий. Текст, заключенный в такие теги, не будет выведен в браузер.
  • [error]текст[/error] — выводит текст, если форма содержит ошибки заполнения.
  • [success]текст[/success] — выводит текст, если форма удачно отправлена.
  • [form]текст[/form] — выводит текст, если форма только что открыта, или отправлена с ошибками.
  • [debug]{debug}[/debug] — выводит дебаг.
  • [uf_token_error]текст[/uf_token_error] — выводит текст, если происходит попытка межсайтовой подделки запроса (CSRF Attack) или если конфиг формы изменился во время заполнения формы.
  • [uf_email_error]текст[/uf_email_error] — выводит текст, если поле имеет имя email, является обязательным и не проходит валидацию (наличие символа @ и точки).
  • [uf_default_value]текст[/uf_default_value] — выводит текст, если форма открыта впервые.
  • {uf_filed_X} — выводит данные, переданные в форму из текстовых полей в случаи ошибочного заполнения.
  • [uf_field_X="Y"]текст[/uf_field_X] — Выводит текст, если в текстовое поле X передано значение Y.
  • [uf_error_X]текст[/uf_error_X] — выводит текст, если текстовое поле содержит ошибку.
  • [uf_select_X="Y"]текст[/uf_select_X] — Выводит текст, если в селекте X отмечен пункт со значением Y.
  • [uf_select_X_Y]selected[/uf_select_X_Y] — Выводит текст, если в селекте X отмечен пункт со значением Y. Является вариацией предыдущего тега.
  • [uf_checkbox_X="Y"]текст[/uf_checkbox_X] — Выводит текст, если отмечен чекбокс с именем X, содержащий значение Y.
  • [uf_checkbox_X_Y]checked[/uf_checkbox_X_Y] — Выводит текст, если отмечен чекбокс с именем X, содержащий значение Y. Является вариацией предыдущего тега.
  • [uf_radio_X="Y"]текст[/uf_radio_X] — Выводит текст, если отмечена радиокнопка с именем X, содержащая значение Y.
  • [uf_radio_X_Y]checked[/uf_radio_X_Y] — Выводит текст, если отмечена радиокнопка с именем X, содержащая значение Y. Является вариацией предыдущего тега.


Список тегов, поддерживаемых в шаблоне email.tpl.
Вместо X следует прописывать имя инпута, селекта, чекбокса или радиокнопки. Имена не должны дублироваться.
  • {* текст *} — Служебный комментарий. Текст, заключенный в такие теги, не будет выведен в сообщении.
  • [header]текст[/header] — Тема письма.
  • {all_mail_fields} — выводит все поля, переданные из формы в удобном, для последующей вставке в шаблон, виде.
  • [uf_field_X]текст[/uf_field_X] — выводит текст, если текстовое пол X заполнено.
  • {X} — выводит данные, переданные в форму из текстового поля X.
  • [uf_field_X="Y"]текст[/uf_field_X] — Выводит текст, если в текстовое поле X передано значение Y.
  • [uf_select_X="Y"]текст[/uf_select_X] — Выводит текст, если в селекте X отмечен пункт со значением Y.
  • [uf_checkbox_X="Y"]текст[/uf_checkbox_X] — Выводит текст, если отмечен чекбокс с именем X, содержащий значение Y.
  • [uf_radio_X="Y"]текст[/uf_radio_X] — Выводит текст, если отмечена радиокнопка с именем X, содержащая значение Y.

Комментарии пользователей (56)

vadims
10

373 | 63

vadims - 13 мая 2015 23:06 - Юзер

Как всегда, Павел на высоте!
Супер! Странно что бесплатно, ибо модуль хорош!

В темах, бесплатных модулях, авторы могли бы писать свои кошельки. Думаю из 100 скачавших человек 1-2 точно хотели бы отблагодарить "на пиво".

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 14 мая 2015 09:20 - Админ

Цитата: vadims
Супер! Странно что бесплатно, ибо модуль хорош!

Пока бесплатно.

Цитата: vadims
В темах, бесплатных модулях, авторы могли бы писать свои кошельки. Думаю из 100 скачавших человек 1-2 точно хотели бы отблагодарить "на пиво".

Тот, кто считает нужным кинуть "на пиво или кофе" — как показывает практика отблагодарит без лишних вопросов.
Поэтому я нигде и не публикую особо такую информацию, она для подавляющего большинства лишняя.

Каков вопрос - таков и ответ. Просто помните об этом.

lutskboy
3

550 | 104

lutskboy - 15 мая 2015 17:34 - Юзер

Не плохо сделано. И оформлено красиво. Поставил, по тестировал. А если учесть что бесплатный, то просто супер.
Только не могу понять зачем использовался jquery form plugin, если можно serialize(). Или там еще можно и файлы прицепить?

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 15 мая 2015 17:49 - Админ

В первую очередь потому что скрипт умеет постить файлы.
Ну и конечноже потому что плагин использовать проще и эффективнее, чем писать свой велосипед с колбэкапи и прочими плюшками.
Примерно по той же причине используется magnificpopup.

Каков вопрос - таков и ответ. Просто помните об этом.

monach
46 | 13

monach - 25 мая 2015 23:59 - Юзер

ПафНутиЙ,Как вывести форму не в модальном окне, а сразу на страницу, в любом месте сайта. Мне нужно чтобы форму не нужно было вызывать при нажатии, а чтобы она была видна постоянно.

serg91100
3

242 | 37

serg91100 - 28 мая 2015 15:30 - Юзер

Аналогичный вопрос как и у monach

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 28 мая 2015 15:47 - Админ

monach,
serg91100,
В процессе https://github.com/dle-modules/DLE-UniForm/issues/2

Каков вопрос - таков и ответ. Просто помните об этом.

Yamakasi
5

198 | 105

Yamakasi - 3 июня 2015 17:37 - Юзер

блин какая вещь))) сколько то людей это ждало))))
а там когда отправка идёт, оно указывает с какой странице было отправлено то? и ещё куда идёт на почту или в админку куда то падает?

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 3 июня 2015 20:40 - Админ

Текущую страницу можно подсунуть в скрытое поле через js.
Отправка идёт только на email, на сайте ничего не сохраняется.

Каков вопрос - таков и ответ. Просто помните об этом.

Yamakasi
5

198 | 105

Yamakasi - 3 июня 2015 21:59 - Юзер

ПафНутиЙ, Да я Ваш ответ такой читал уже на гетхабе...

User_3218
1

32 | 3

User_3218 - 20 июня 2015 08:50 - Юзер


Подскажите, пожалуйста, как изменить кодировку? Выводятся кракозябры!
На сайте - кодировка "windows-1251".

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 20 июня 2015 12:38 - Админ

Просто перекодируйте файлы модуля в кодировку своего сайта. (информацию по этому поводу вам выдаст гугл в первой строке поиска)

Каков вопрос - таков и ответ. Просто помните об этом.

User_3218
1

32 | 3

User_3218 - 20 июня 2015 17:00 - Юзер

Огромное спасибо!

pashavanholt
27 | 8

pashavanholt - 24 июня 2015 08:20 - Юзер

ПафНутиЙ,
Павел
Можете более подробно подсказать как и что сделать. А то не получается.

Спасибо!

serg91100
3

242 | 37

serg91100 - 24 июня 2015 09:39 - Юзер

Откройте файлы в notepad++ и преобразуйте кодировку в нужную Вам. Там делов на минуты 3

pashavanholt
27 | 8

pashavanholt - 24 июня 2015 08:21 - Юзер

Сделать перекодировку

serg91100
3

242 | 37

serg91100 - 24 июня 2015 09:39 - Юзер

Павел, хотел узнать как дела с выводом формы без поп апа. Можете порадовать?)

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 25 июня 2015 21:39 - Админ

пока нет, не добрался ещё до обновления модуля.

Каков вопрос - таков и ответ. Просто помните об этом.

pashavanholt
27 | 8

pashavanholt - 24 июня 2015 10:05 - Юзер

Цитата: serg91100
notepad++

Отлично спасибо за помощь друг

igoryk
5

igoryk - 25 июня 2015 11:29 - Юзер

а как в форму вставить календарь для выбора даты?

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 25 июня 2015 16:39 - Админ

пробовали эти теги?
<input type="time">
<input type="date">
<input type="month">
<input type="week">
<input type="datetime">
<input type="datetime-local">

Каков вопрос - таков и ответ. Просто помните об этом.

igoryk
5

igoryk - 25 июня 2015 21:15 - Юзер

спасибо - буду разбираться

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 25 июня 2015 21:37 - Админ

Отпишитесь о результатах, я не тестировал на таких инпутах модуль. Если будут ошибки - пишите сразу на гитхаб

Каков вопрос - таков и ответ. Просто помните об этом.

igoryk
5

igoryk - 25 июня 2015 21:52 - Юзер

как разберусь - отпишусь, если не разберусь - тоже напишу :)

ravchik
66

375 | 123

ravchik - 14 июля 2015 16:08 - Юзер

Здравствуйте.
Возможно ли указать отправителя самому, а не брать емайл админа из конфига DLE?

P.S.: в письме нет даты отправки, хотя в файле шаблона емайл код есть
<br><b>Дата отправки: </b> {send_date=D.m.Y} | {send_date}

Dix77
1

Dix77 - 18 июля 2015 16:31 - Юзер


при не правильном вводе информации окно обновляется и все что было написано становится кракозябрами. как решить эту проблему?

serg91100
3

242 | 37

serg91100 - 23 июля 2015 13:55 - Юзер

Как впихнуть в письмо название страницы или хотя бы ссылку на нее!? Это для заказа товара

serg91100
3

242 | 37

serg91100 - 23 июля 2015 15:46 - Юзер

Решил. Как вывести inline без кнопки с вызовом окна!?

billing
2

28 | 2

billing - 24 июля 2015 14:41 - Юзер

Судя по https://github.com/dle-modules/DLE-UniForm/blob/master/CHANGELOG.md TC все правки внес.
ТС, спасибо, полезная штука.

serg91100
3

242 | 37

serg91100 - 24 июля 2015 14:43 - Юзер

Но какой тег впихнуть для вывода inline формы, я не понимаю)

Grawick
1

27 | 3

Grawick - 24 августа 2015 12:19 - Юзер

Доброго времени суток. Не подскажите как совместить UniForm и {AJAX FULL-STORY}.
У меня {AJAX FULL-STORY} работает на magnific popup и UniForm тоже на нем оказывается. При подключении UniForm не работает {AJAX FULL-STORY}.
Как быть, не подскажите ?

Grawick
1

27 | 3

Grawick - 24 августа 2015 12:34 - Юзер

Вроде разобрался. Поменял
<script type="text/javascript" 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;01"></script>

На
<script type="text/javascript" src="/engine/classes/min/index.php?charset=utf-8&amp;f={THEME}/js/libs.js,{THEME}/uniform/js/jquery.ladda.min.js,{THEME}/uniform/js/jquery.form.min.js,{THEME}/uniform/js/uniform.js&amp;01"></script>

со стандартного файла на свой где была установлена magnific popup. Отключил CSS для UniForm которые только для magnific popup и все заработало, Надеюсь помог кому-нибудь ))

samo733792
30 | 3

samo733792 - 24 сентября 2015 19:27 - Юзер

У меня вопрос: Сайт мой на двух языках http://www.smartland.am/ и http://www.smartland.am/ru/, установил модуль на обеих движках, все работает нормально кроме одного: если открыть окно сообщении то язык правильный, но ошибки показывает на армянском, к примеру если не написать mail или же сообщение, так же на армянском пишет сообщение об успешном отправке письма.
В чем может быть проблема и как мне настроить модуль правильно?

Djinn
2

79 | 4

Djinn - 3 ноября 2015 02:54 - Юзер

Спасибо за отличный модуль!
Есть три вопроса:
1. Можно ли как то вывести одну форму для звонка в одной категории и другую такую же но с другим названием в другой категории?
2. Как добавить поле для сообщения в форму для звонка?
3. Или как добавлять необходимые поля для заполнения?

91vbox
4

91vbox - 20 ноября 2015 09:55 - Юзер

А как вывести кнопку на статистической странице?

razrushutel
3

42 | 8

razrushutel - 4 декабря 2015 13:24 - Юзер

Добрый день! Подскажите как сделать чтобы письмо приходило не от сервера, а от того емайла который вписал юзер?

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 4 декабря 2015 19:38 - Админ

Определение логики отправки email уведомления находится тут

Каков вопрос - таков и ответ. Просто помните об этом.

razrushutel
3

42 | 8

razrushutel - 4 декабря 2015 20:07 - Юзер

так юзеры не зарегистрированы(

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 4 декабря 2015 20:17 - Админ

это ничего не меняет.

Каков вопрос - таков и ответ. Просто помните об этом.

razrushutel
3

42 | 8

razrushutel - 4 декабря 2015 20:18 - Юзер

ПафНутиЙ,
Спасибо буду пробовать)

samo733792
30 | 3

samo733792 - 22 декабря 2015 21:58 - Юзер

Привет всем, если помните у меня сайт на двух языках: http://www.smartland.am/ и http://www.smartland.am/ru/, на корневом сайте все нормально, но вот на русском какая-то ошибка сессии при отправке письма, язык меняется на армянский и когда еще раз нажимаю на отправить то уже отправляются 2 письма (только после второго отправления).

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 22 декабря 2015 23:58 - Админ

Нужно более детально разбираться, пишите на email, потребуется ftp и админка, помочь смогу только платно.

Каков вопрос - таков и ответ. Просто помните об этом.

samo733792
30 | 3

samo733792 - 23 декабря 2015 00:09 - Юзер

Я конечно уважаю ваш труд, но это разве не баг модуля?
Я говорю вам о его недостатках а вы просите деньги.
С радостью бы, но сейчас у меня большие проблемы с финансами.

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 23 декабря 2015 00:13 - Админ

Баг при нестандартном функционале? Не думаю.
Если воспроизведёте ошибку на стандартном функционале — это будет баг, и он естественно будет исправлен.
Или вам просто бесплатного модуля не достаточно, нужно ещё и бесплатное решение ваших проблем?

Каков вопрос - таков и ответ. Просто помните об этом.

samo733792
30 | 3

samo733792 - 23 декабря 2015 00:21 - Юзер

Извиняюсь, не подумал о не стандартной ситуации. Я написал вам.

Константин
13 | 4

Константин - 30 декабря 2015 12:29 - Юзер

было бы вообще супер если бы при отправке какой нибудь формы, мод брал в шаблон отправки письма еще и заголовок статьи с ссылкой на статью...

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 30 декабря 2015 12:39 - Админ

Напишите тиккет, поставлю в работу.

Каков вопрос - таков и ответ. Просто помните об этом.

Константин
13 | 4

Константин - 30 декабря 2015 16:00 - Юзер

2 мысли свои написал... воплотите будет супер...

Константин
13 | 4

Константин - 10 января 2016 14:55 - Юзер

супер обнова) респект и уважуха)) доберусь до компа отправлю благодарность)

timurtt
48 | 25

timurtt - 30 декабря 2015 20:32 - Юзер

И еще возможность отправки файлов, бы????

aebot
43

aebot - 26 июня 2016 09:48 - Юзер

Скажите пожалуйста по настройке отправки автору новости. В инструкции написано необходимо что бы было поле с name="newsId", но куда его прописывать? По умолчанию почему то приходит на почту администратора. Шаблон newsauthor.

На почту приходят письма с необработанными тегами
Здравствуйте {news_autor}!

На сайте "" к вашей новости {news_title} было отправлено сообщение через форму обратной связи.

использую стандартные шаблоны

aebot
43

aebot - 26 июня 2016 10:02 - Юзер

Проблема решена
<span class="uf-btn" data-uf-open="/engine/ajax/uniform/uniform.php" data-uf-settings='{"formConfig": "newsauthor", "fields": {"newsId": "{news-id}"}}'>Связь с автором новости</span>

mavne215
44 | 10

mavne215 - 15 августа 2016 20:27 - Юзер

Как вывести форму не в модальном окне, а сразу на страницу??

Sokolov
92 | 9

Sokolov - 19 октября 2016 16:22 - Юзер

Плохо что нет модуля в нужной кодировке, подскажите какие файлы надо перекодировать? А то их там уж очень много. И подскажите, из-за кодировки может не работать модуль? Отправляю письма через - "обратная связь", а они в никуда уходят.

websot
2

61 | 10

websot - 28 октября 2016 10:59 - Юзер

Все файлы, которые имеют кодировку windows-1251/cp1251

websot
2

61 | 10

websot - 28 октября 2016 11:06 - Юзер

Для версии 11.1 работать будет Павел?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте