Программирование. Продвижение 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: Будут вопросы пишите или комментируйте.
ДОПОЛНЕНИЯ ОТ ПОЛЬЗОВАТЕЛЕЙ
Спасибо, всё работает.
И ещё я добавил проверку обязательности ввода номера. После
И в website.lng добавил ‘feed_err_8′=> «Вы не указали свой номер телефона.»,
2. Еще одно дополнение. Которое меня попросили сделать. Написав о проблеме в скайпе.
Суть проблемы была в том, что пользователь вместо телефона передавал текст, но кодировка была кракозябрами.
Решение было найдено достаточно простое. Достаточно добавить строку
33 Комментариев “ DLE: Добавляем свое поле в форму обратной связи ”
Делал все по инструкции один в один версия движка 11.0. Первое письмо прошло и все, остальные приходят но уже вместо телефона написано <%n_telephon%>. Все перепроверил ввел по новому и так и сяк а оно все равно телефон не присылает. Пришлось вернуться на старую схему
В новой версии надо по новой разбираться. Я уже давно не занимался разработкой на DLE/
Поправочка при всех этих манипуляциях еще добавлял маленький кусочек кода в engine.php для обработки order.php
здравствуйте я отправит писмо через обратный связь. и открит почта администраторa email строка пустой.спасибо
Спасибо большое за хак!
Но если пользователь вводит текст в созданное поле, в тексте письма оно выводится кракозябрами.
UniForm — модуль универсальных ajax-форм для DataLife Engine
Краткая информация о модуле (хаке)
Не подходит стандартная форма обратной связи? Нужна возможность использовать свои поля? Нужна защита от ботов и лёгкая настройка без использования БД? Тогда этот модуль для Вас!
Преимущества
Установка
Скриншоты форм, поставляемых в комплекте с модулем
Форма обратной связи
Форма обратной связи, с ошибками
Сообщение об успешной отправке сообщения из формы обратной связи
Форма заказа звонка
Форма заказа звонка, в процессе отправки
Email, с заказом звонка
Тестовая форма с примером обработки результатов отправки формы
Настройка
Параметры, доступные в файле конфигурации (config.tpl):
Урок номер 4 Оформляем обратную связь, потерянный пароль, страницу оффлайн, статистику и инфо.
1. Оформляем форму обратной связи feedback.tpl
Открываем файл feedback.tpl
Внутри видим код. где находится форма обратной связи? Это таблица внутри талицы. дежавю? да-да, об этом мы говрили в уроке номер 3, когда оформляли форму добавления комментариев.
Вот код из этого файла:
Код1:
[not-logged]
Ваше имя:
E-Mail:
[/not-logged]
Заголовок:
Получатель:
Сообщение:
Код безопасности:
Введите код:
В самом верху вместо «Обратная Связь», вы можете вставить любой текст, это заголовок формы обратной связи, можно вставить допустим «Контакты» и т.д.
Где же здесь таблица с орфмой обратной связи? Вот она:
Код2:
[not-logged]
Ваше имя:
E-Mail:
[/not-logged]
Заголовок:
Получатель:
Сообщение:
Код безопасности:
Введите код:
давайте посмотрим на содержимое таблицы:
Ваше имя и код ниже
E-Mail и код ниже
Заголовок и код далее
Сообщение и код ниже
это форма в которую мы вводим текст сообщения
Введите код и строка ниже
Выводит поле в которое вы вводите код подтверждения.
Это путь и свойства кнопки отправить.
За основу я взял форму с addcomments.tpl и comments.tpl
Вот что у меня в итоге получилось:
Код3:
/pics/6.gif» rowSpan=3>
[not-logged]
Ваше имя:
E-Mail:
[/not-logged]
Заголовок:
Получатель:
Сообщение:
Код безопасности:
Введите код:
/pics/9.gif»>
Скриншот:
2. Оформляем форму восстановления пароля lostpassword.tpl
очень простенькая форма, вот исходный код :
Код4:
Код безопасности:
Введите код:
код 5:
Код безопасности:
Введите код:
Посмотрим пристальнее на нее:
Ваш логин или E-Mail на сайте и сразу же ниже строка с формой
— выводит код безопасности
— выводит форму ввода кода безопасности.
— кнопка Отправить, с прописанными свойствами.
Я взял код из feedback.tpl, удалил оттуда таблицу с формой обратной связи и вставил форму восстановления пароля, вот что получилось код 5.
Код 6:
/pics/6.gif» rowSpan=3>
/pics/9.gif»>
Скриншот:
3. Оформляем страницу оффлайн offline.tpl
Тут уж проще некуда, открываем offline.tpl, вот код из него :
Самый обычный html код, никакой специфики нет, сюда вы можете вставить все что душа пожелает, например
Уважаемые посетители в связи с проведением технических работ сайт был временно отключен.
Приносим вам свои извинения.
4. Оформляем инфо info.tpl
Окрываем файл info.tpl, вот код из него:
код 7
давайте рассмотрим что здесь есть:
— выводит заголовок сообщения
— выводит текст сообщения, ЭТО НЕ ОБЯЗАТЕЛЬНО СООБЩЕНИЕ О ОШИБКЕ, допустим сообщение о успешно добавленной новости это тоже info.tpl
я взял Код 6, удалил оттуда таблицу с кодом формы восстановления пароля и вставил нужные нам теги, вот что получилось:
Код8:
/pics/6.gif» rowSpan=3>
/pics/9.gif»>
Скриншот:
5. Оформляем статистику stats.tpl
Открываем файл, вот его исходный код, 2 таблицы (графику убрал для наглядности)
1 таблица это именно статистика 2 таблица это топ авторов сайта
Код9:
Общая статистика по сайту
Общий размер базы данных:
Общее количество новостей: Из них опубликовано: Опубликовано на главной:
Зарегистрировано пользователей: Из них было забанено:
Десятка лучших авторов на сайте
рассмотрим теги и их предназначение:
1 таблица статистика
2 таблица топ авторов сайта
Заголовок любой
— выводит топ авторов сайта в указаное место (там где этот тег вставлен)
Код9:
<
/pics/6.gif» rowSpan=3>
Общий размер базы данных:
Общее количество новостей: Из них опубликовано: Опубликовано на главной:
Зарегистрировано пользователей: Из них было забанено:
/pics/9.gif»>
/pics/6.gif» rowSpan=3>
/pics/9.gif»>
теперь берем этот код и вставляем его вместо оригинального.
Как вы видите все изменения касаются в основном центральной ячейки таблиц, одни данные меняются на другие, меняются заголовки, причем большинство работы (когда оформление уже готово, а в нашем случае это так) заключается в копировании и вставке+изменнии Заголовков.
скриншот(некоторые данные скрыты по просьбе пользователей):
UniForm — модуль универсальных ajax-форм для DataLife Engine
Не подходит стандартная форма обратной связи? Нужна возможность использовать свои поля? Нужна защита от ботов и лёгкая настройка без использования БД? Тогда этот модуль для Вас!
Преимущества
Требования к установке
Установка
Скриншоты форм, поставляемых в комплекте с модулем
Форма обратной связи
Форма обратной связи, с ошибками
Сообщение об успешной отправке сообщения из формы обратной связи
Форма заказа звонка
Форма заказа звонка, в процессе отправки
Email, с заказом звонка
Тестовая форма с примером обработки результатов отправки формы
Настройка
Параметры, доступные в файле конфигурации (config.tpl):
Теги шаблонов
Добавлено в v1.2
Улучшения и исправления
Новые теги для email-сообщений
Добавлено в v1.3
Добавлено в v1.4
Для вывода формы непосредственно на странице достаточно прописать в нужном месте шаблона (начиная с версии 1.1):
Для Отправки сообщения автору новости необходимо прописать в шаблон краткой или полной новости (начиная с версии 1.2):
Ответы на частые вопросы
[Q]: Сделано всё по инструкции, но модальное окно не открывается. [A]: У вас дважды подключена библиотека jQuery. Имейте ввиду, что в DLE уже есть jquery и подключать её отдельно не нужно.
[Q]: Библиотека jQyery подключена 1 раз (я проверил все скринты на странице в браузере, а не в файле шаблона), но окно всё равно не открывается. [A]: Вполне вероятно, что вы перенесли js в конец страницы, а скрипты модуля подключаете в начало. Перенесите скрипты модуля в конец страницы.
Скрипт модального окна DLE Форма обратной связи на jQuery AJAX для UTF-8 и Windows-1251. После долгих просьб автор решил поделиться со всеми скриптом универсальной формы Обратной связи на AJAX со встроенной проверкой полей формы на валидность и подойдет для любого сайта на любом движке, или даже на чистом html.
Реализация формы модуль dle обратной связи на AJAX таким образом, когда ссылка на нее присутствует на каждой странице сайта и всегда в зоне видимости, очень удобна, а посетителям не придется долго её искать. Так же в эту форму можно добавить любые ваши контактные данные, например, ICQ, телефон или skype, в общем, все что захотите.
Установка модуль обратной связи универсальный скрипт Feedback AJAX для DLE Обратной связи
1. Скачиваем архив с версии UTF-8 и Windows-1251 2. Залить на сервер можно как угодно но я делал так. Путь: engine/modules/other/ (папку other создаем сами) 3. Закидаем туда папку feedback_form 4. В шаблоне main.tpl между тегами head и head вставляем следующий код:
Не забывает указать свой домен
5. В шаблоне main.tpl ПОСЛЕ открывающего тега
вставляем следующий код:
6. В шаблоне main.tpl ПЕРЕД закрывающим тегом
вставляем следующий код:
Не забывает указать свой адрес src=»http://ваш-домен/
*Очень важный момент если в адресной строке написано ваш-домен, а адреса к файлам www.ваш-домен/бла-бла форма будет отправлять письма но будет уведомлять об ошибке.
* Еще одно, если у вас уже подключена библиотека jQuery (а в большинстве случаев это так), то второй раз подключать ее нельзя. В таком случае в коде выше надо убрать строку:
Не забывает указать свой домен
7.Открываем файл jquery_feedback_form.js и находим там следующий код:
Как минимум нам надо изменить для переменной url путь к директории на вашем сервере. Если заливали по другому.
8. Открываем файл feedback_form.php и находим там следующий код:
Форма обратной связи с капчей уже не рулит, потому что данный скрипт работает только при включенном jаvascript, а у ботов он выключен, соответственно пользователям никакую капчу вводить не придется, а у вас не будет спама. После установки у вас может возникнуть проблема с кодировкой, поэтому проследите, что вы скачали подходящий архив (я специально подготовил две версии для скачивания). Сохраняйте файлы после редактирования в правильной кодировке (в большинстве случаев принудительно указывать кодировку не придется, но мало ли). На вопрос «А как сделать чтобы это было справа, а не слева?» отвечаю сразу — исходники открыты, колупайте на здоровье! Да, эта форма обратной связи не поддерживает аттачи. Но я считаю, что этого и не надо. Пока все, но я буду добавлять сюда интересные вопросы из ваших комментариев, чтобы другие их больше не задавали 😉
Feedback AJAX модуль обратной связи dle «Автор:» alaev info Подготовил к использованию для DLE :
Данный вариант без PHP файла feedback_form.php, после установки проверьте нет ли проблем в регистрацией или авторизацией пользователей на дле 9.7 (если у вас всплывающая панель).
Для кодировки UTF-8:
contactable.zip [11,69 Kb] (cкачиваний: 551) Для кодировки windows-1251:
contactable_cp1251.zip [11,63 Kb] (cкачиваний: 312) 1. Скачиваем архив в нужной кодировке и распаковываем.
2. Вносим изменения в файлы mail.php и jquery.contactable.js (см. ниже).
3. Папку contactable и все ее содержимое закидываем на сервер в папку вашей темы оформления (шаблона), т.е. /templates/ваш_стиль/. При этом файл mail.php из этой папки заливаем в /engine/modules/.
4. В шаблоне main.tpl между тегами вставляем следующий код:
5. В шаблоне main.tpl ПОСЛЕ открывающего тега вставляем следующий код:
6. В шаблоне main.tpl ПЕРЕД закрывающим тегом вставляем следующий код:
Очень важный момент! Если уже подключена библиотека jQuery (а в большинстве случаев это так), то второй раз подключать ее нельзя. В таком случае в коде выше надо убрать строку:
Иначе могут возникнуть конфликты — или форма не заработает, может «развалиться».
7. Сохраняем файл шаблона. Обновляем любую страницу и начинаем тестировать форму обратной связи!
Перед тем как заливать файлы из архива к себе на сервер (третий шаг установки), надо внести в них некоторые правки.
1. Открываем файл jquery.contactable.js и находим там следующий код:
Как минимум надо изменить для переменной url путь на указанный: ‘/engine/modules/mail.php’. Остальные переменные можете изменять по своему усмотрению.
2. Открываем файл mail.php и находим там следующий код:
Здесь вам необходимо прописать свой контактный e-mail, на который будут сыпаться письма. То есть заменяем admin@site.ru на свой ящик.
3. По желанию можете изменять внешний вид самой формы, ее цвета и т.д., все css-стили хранятся в файле contactable.css
Рекомендуем скачать универсальный скрипт Feedback AJAX для DLE Обратной связи