Меню

Dle обратная связь настройка email



Dle обратная связь настройка email

Программирование. Продвижение SEO. Работа с CMS. 1С Предприятие.

Новое поле в форме обратной связи DLE

DLE: Добавляем свое поле в форму обратной связи

Опубликовано 1 Декабрь, 2012

Добрый день. Сегодня речь пойдет о форме обратной связи в DLE. Она очень простая и требует чтобы гость обязательно указал электронную почту. Это не совсем удобно.

Сегодня я расскажу на примере одно из сайтов как я решал данную задачку.

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

Делается это все за 5 минут.

Новое поле которое будем добавлять — телефон, имя переменной «n_telephon»

Файлы в движке

Нас будут интересовать три файла
1. feedback.tpl — шаблон обратной связи
2. engine\modules\feedback.php — отправка сообщения без AJAX
3. engine\ajax\feedback.php — Отправка с использованием AJAX

Изменения в движке и шаблоне

1. Открываем админку, переходим в раздел «Шаблоны Email сообщений«. Переходим на шаблон «Настройка E-Mail сообщения, которое отсылается через форму обратной связи«. Добавляем поле с телефоном в наш шаблон.
Скрин:

2. Открываем файл шаблона обратной связи feedback.tpl
Ищем

3. Вносим изменения в файл engine\ajax\feedback.php
Ищем

Снимаем ограничение при котором гость не может отправить сообщение с пустым полем EMAIL
Ищем

В этом же файле ищем строчки где обрабатывается наш шаблон:
Ищем

Скрин формы обратной связи Сети мебельных магазинов ДОМИНО.

Вот и все изменения в движке и шаблоны.

ps: Будут вопросы пишите или комментируйте.

ДОПОЛНЕНИЯ ОТ ПОЛЬЗОВАТЕЛЕЙ

1. Ответ прислал Игорь К.

Спасибо, всё работает.

Для удобства можно ещё укоротить в .tpl файле формы вводимый номер с 35-ти значного maxlength=»35″ на maxlength=»13″.

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

И в website.lng добавил ‘feed_err_8′=> «Вы не указали свой номер телефона.»,

2. Еще одно дополнение. Которое меня попросили сделать. Написав о проблеме в скайпе.

Суть проблемы была в том, что пользователь вместо телефона передавал текст, но кодировка была кракозябрами.

Решение было найдено достаточно простое. Достаточно добавить строку

На этом все. Пишите и комментируйте .

33 Комментариев “ DLE: Добавляем свое поле в форму обратной связи ”

Делал все по инструкции один в один версия движка 11.0. Первое письмо прошло и все, остальные приходят но уже вместо телефона написано <%n_telephon%>. Все перепроверил ввел по новому и так и сяк а оно все равно телефон не присылает. Пришлось вернуться на старую схему

В новой версии надо по новой разбираться. Я уже давно не занимался разработкой на DLE/

Я особо не заморачивался с этими формами и проверку тоже не включал на правильность, особо не специалист копаться в кодах, хотя надо будет заняться. В общем как я вышел из положения. Создал две формы скопировал feedbak.php из модулей и переименовал в order.php. В файле order изменил использование теми с feedbak.tpl на order.tpl который тоже в общем-то тупо скопировал (это все один и тот же файл с разным названием) . Так получилось две независимых формы одна «обратная связь» вторая «оформить заявку». Ну а с добавлением поля вообще все просто. Есть поле «тема» в шаблоне оно мне по факту не нужно и я его изменил просто переименовав на телефон. Ну да если мне кто-то отправит кракозябры ну что ж не перезвоню ему и технику не сделаю не велика потеря ). Нормальный человек который нуждается в ремонте думаю напишет правильный телефон )

Поправочка при всех этих манипуляциях еще добавлял маленький кусочек кода в engine.php для обработки order.php

case «order» :
include_once ENGINE_DIR . ‘/modules/order.php’;
break;

здравствуйте я отправит писмо через обратный связь. и открит почта администраторa email строка пустой.спасибо

Спасибо большое за хак!

Но если пользователь вводит текст в созданное поле, в тексте письма оно выводится кракозябрами.

$n_telephon = iconv(«UTF-8», «CP1251», $n_telephon); — НЕ ПОМОГАЕТ!

Источник

Как изменить форму обратной связи в DLE

Форма обратной связи в CMS DLE (DataLife Engine) весьма проста. В ней есть всего три поля — Имя отправителя и Е-мейл отправителя, причем для незарегистрированных посетителей эти поля обязательны для заполнения, плюс есть большое окошко, собственно, для самого сообщения. Вернее, их пять, еще поля Кому и Тема, но это несущественно.

Читайте также:  Настройка интерфейса в унф

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

Теоретически, конечно, можно было сделать для этого отдельную форму на статической странице. Но, как-всегда, хотелось приложить минимальные усилия.

В итоге все заработало хорошо.

А у меня возникла мысль, если это нужно было мне, значит и еще кому-то понадобится. Вот и пишу этот пост.

Итак, есть стандартная форма связи, надо добавить поле «Телефон».

Форма обратной связи Форма обратной связи

1. Первым делом открываем файл feedback.tpl, который находится в папке с вашим шаблоном. То есть путь такой:

Где site_name.com — имя вашего сайта, shablon_name — имя вашего шаблона.

Ищем почти в самом начале следующий фрагмент кода:

Источник

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

Не подходит стандартная форма обратной связи? Нужна возможность использовать свои поля? Нужна защита от ботов и лёгкая настройка без использования БД? Тогда этот модуль для Вас!

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

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

Требования к установке

Установка

  • Скачать актуальную версию модуля
  • Распаковать содержимое папки DLE-UniForm-X.X.X (X.X.X — номер актуальной версии модуля) в корень сайта.
  • В браузере запустить установку модуля по адресу: ваш_сайт/dle_module_install.php?module=uniform
  • Следовать инструкциям

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

Форма обратной связи

Форма обратной связи, с ошибками

Сообщение об успешной отправке сообщения из формы обратной связи

Форма заказа звонка

Форма заказа звонка, в процессе отправки

Email, с заказом звонка

Тестовая форма с примером обработки результатов отправки формы

Настройка

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

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

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

  • nocache — Отключение кеширования модуля.
  • debug — Дебаг. Выводится распечатка конфига, массива данных, переданных через $_POST и массива данных, отправляемых на email.
  • required — Обязательные поля. Указываются имена полей, обязательных для заполнения.
  • hidden — Разрешенные скрытые поля. Такие поля передаются из атрибута data-uf-settings кнопки открытия формы. Например, если к кнопке открытия формы прописать и при этом в конфиге будет вот такая запись: то поле field2 не будет выведено в форму. Это сделано для безопасности работы модуля.
  • sendmail — Отправлять email при заполнения формы?
  • emails — Адреса почты, на которые необходимо отправлять уведомление. Необходимо прописать один или несколько email-адресов, через запятую.
  • selectFields — Поля типа select. Необходимо перечислить через запятую имена всех полей, являющихся селектами.
  • checkboxFields — Поля типа checkbox. Необходимо перечислить через запятую имена всех полей, являющихся чекбоксами.
  • radioFields — Поля типа radio. Необходимо перечислить через запятую имена всех полей, являющихся радиокнопками.
  • sendAsPlain — Отправлять сообщение как простой текст.
  • sendToAuthor — Отправить письмо автору новости, если есть newsId (есть поле с name=»newsId») и если автор разрешил получение писем с сайта.
  • sendToSender — Отправлять письмо так же на email, указанный в поле email.
  • allowAttachments — Разрешить прикрепление файлов.
  • maxFileSize — Максимальный размер загружаемого файла (в килобайтах).
  • allowedFileTypes — Разрешенные типы файлов, перечисляем расширения через запятую, без точек и пробелов.
  • Теги шаблонов

    Список тегов, поддерживаемых в шаблоне form.tpl.
    Вместо X следует прописывать имя инпута, селекта, чекбокса или радиокнопки. Имена не должны дублироваться.

    • — Служебный комментарий. Текст, заключенный в такие теги, не будет выведен в браузер.
    • [error]текст[/error] — выводит текст, если форма содержит ошибки заполнения.
    • [success]текст[/success] — выводит текст, если форма удачно отправлена.
    • [form]текст[/form] — выводит текст, если форма только что открыта, или отправлена с ошибками.
    • [debug][/debug] — выводит дебаг.
    • [uf_token_error]текст[/uf_token_error] — выводит текст, если происходит попытка межсайтовой подделки запроса (CSRF Attack) или если конфиг формы изменился во время заполнения формы.
    • [uf_email_error]текст[/uf_email_error] — выводит текст, если поле имеет имя email, является обязательным и не проходит валидацию (наличие символа @ и точки).
    • [uf_default_value]текст[/uf_default_value] — выводит текст, если форма открыта впервые.
    • — выводит данные, переданные в форму из текстовых полей в случаи ошибочного заполнения.
    • [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] — Тема письма.
    • — выводит все поля, переданные из формы в удобном, для последующей вставке в шаблон, виде.
    • [uf_field_X]текст[/uf_field_X] — выводит текст, если текстовое пол X заполнено.
    • — выводит данные, переданные в форму из текстового поля X.
    • [not_X]текст[/not_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.
    • — выводит дату отправки сообщения из формы, отформатированную в соответсвии с настройками DLE.
    • — выводит URL страницы, с которой было отправлено сообщение.
    • [news_id][/news_id] — ID новости (если есть поле с name=»newsId»).
    • [news_autor][/news_autor] — Логин автора новости (если есть поле с name=»newsId»).
    • [news_title][/news_title] — Заголовок новости (если есть поле с name=»newsId»).
    • [news_email][/news_email] — Email автора новости (если есть поле с name=»newsId»).
    • — Выводит название сайта из настроек DLE.
    • — Выводит адрес сайта из настроек DLE.
    • — Выводит краткое название сайта из настроек DLE.
    • [user_name][/user_name] — Выводит логин пользователя, отправившего сообщение.
    • [user_fullname][/user_fullname] — Выводит полное имя пользователя, отправившего сообщение.
    • [user_email][/user_email] — Выводит email пользователя, отправившего сообщение.
    • [user_foto][/user_foto] — Выводит ссылку на аватар пользователя, отправившего сообщение.
    • [user_land][/user_land] — Выводит то, что пользователь, отправивший сообщение, написал в поле «Место жительства».
    • [to_sender] текст [/to_sender] — Выводит текст для отправителя, если указан параметр sendToSender
    • [not_to_sender] текст [/not_to_sender] — Выводит текст для получателей письма, отличных от отправителя, если указан параметр sendToSender

    Добавлено в v1.2

    Улучшения и исправления

    • Теперь если в форме есть заполненное поле с `name=»header»`, такое поле будет автоматически подставлено в тему письма.
    • Исправлена ошибка на DLE 10.5+ с невозможностью указать email отправителя из формы.
    • Исправлена ошибка с экранированием кавычек в письме.
    • Если пользователь авторизован, то тег при открытии формы автоматически заменится на его email.
    • Убран тег т.к. он оказался нерабочим.
    • Исправлено некорректное поведение тега .
    • Добавлен новый параметр конфигурации sendAsPlain — Отправлять сообщение как простой текст. Теперь можно отправлять письма как простые текстовые сообщения, без обработки html.
    • Добавлен новый параметр конфигурации sendToAuthor — Отправить письмо автору новости, если есть поле с name=»newsId» и если автор разрешил получение писем с сайта.
    • Реализована возможность отправлять в письме данные из новости. Для этого необходимо передать в форму поле newsId. Пример шаблона в папке newsauthor.
    • Реализована возможность отправки сообщения на email автора новости. Для этого необходимо передать в форму поле newsId и в конфиге прописать sendToAuthor = y. Пример шаблона в папке newsauthor.

    Новые теги для email-сообщений

    • [news_id][/news_id] — ID новости (если есть поле с name=»newsId»).
    • [news_autor][/news_autor] — Логин автора новости (если есть поле с name=»newsId»).
    • [news_title][/news_title] — Заголовок новости (если есть поле с name=»newsId»).
    • [news_email][/news_email] — Email автора новости (если есть поле с name=»newsId»).
    • — Выводит название сайта из настроек DLE.
    • — Выводит адрес сайта из настроек DLE.
    • — Выводит краткое название сайта из настроек DLE.
    • [user_name][/user_name] — Выводит логин пользователя, отправившего сообщение.
    • [user_fullname][/user_fullname] — Выводит полное имя пользователя, отправившего сообщение.
    • [user_email][/user_email] — Выводит email пользователя, отправившего сообщение.
    • [user_foto][/user_foto] — Выводит ссылку на аватар пользователя, отправившего сообщение.
    • [user_land][/user_land] — Выводит то, что пользователь, отправивший сообщение, написал в поле «Место жительства».

    Добавлено в v1.3

    • Новый, удобный установщик модуля.
    • Добавлена возможность пикреплять файлы к сообщению в форме. Для этого необходимо в конфиге указать параметр allowAttachments, а так же параметры maxFileSize (максимальный размер прикрепляемого файла) и allowedFileTypes (доступные типы файлов) при необходимости. Готовый шаблон для прикрепления файлов к сообщению — attachments.
    • Добавлен новый параметр конфигурации sendToSender. Если этот параметр задан, то письмо будет отправлено на email-адрес, указанный в поле email. Так же проверяется валидность этого адреса.
    • В шаблон email-сообщения добавлены новые теги, обрабатываемые в сообщении и в поле заголовке письма, когда активирован параметр sendToSender.
      [to_sender] текст для отправителя [/to_sender]
      [not_to_sender] текст для других получателей [/not_to_sender]
    • Добавлены почти все поля из профиля пользователя в шаблон email.
    • Добавлен вывод допполей из профиля пользователя в шаблон email.
    • Ко всем тегам в шаблонах email-сообщения добавлены противоположные теги [not_X], выводящие текст между ними, когда соответствующий тег пуст.
    • Исправлена ошибка, когда пользователю разрешено менять шаблон сайта, а шаблон формы берётся из шаблона, установленного по умолчанию в системе.
    • Улучшения и оптимизация кода.
    • Теперь минимально-допустимая версия php — 5.4.

    Добавлено в v1.4

    • Обновлён установщик
    • Добавлен новый параметр parseSendMail, добавляющий возможность производить манипуляции над данными перед отправкой email. В параметр передаётся путь к php файлу, без расширения, отностительно папки engine/modules. Например можно добавить в шаблон email-сообщения новые теги [footer]
      [/footer]. Для этого в конфиге прописываем parseSendMail = addFooter, создаём файл engine/modules/addFooter.php со следующим содержимым:

    Для вывода формы непосредственно на странице достаточно прописать в нужном месте шаблона (начиная с версии 1.1):

    Для Отправки сообщения автору новости необходимо прописать в шаблон краткой или полной новости (начиная с версии 1.2):

    Ответы на частые вопросы

    [Q]: Почему ничего не работает?
    [A]: C вероятностью в 80% у вас дважды подключена бибилиотека jQuery (20% — проверьте шаги по инструкции).

    [Q]: Сделано всё по инструкции, но модальное окно не открывается.
    [A]: У вас дважды подключена библиотека jQuery. Имейте ввиду, что в DLE уже есть jquery и подключать её отдельно не нужно.

    [Q]: Библиотека jQyery подключена 1 раз (я проверил все скринты на странице в браузере, а не в файле шаблона), но окно всё равно не открывается.
    [A]: Вполне вероятно, что вы перенесли js в конец страницы, а скрипты модуля подключаете в начало. Перенесите скрипты модуля в конец страницы.

    Источник

    Adblock
    detector