Как изменить форму обратной связи в DLE
dorofeeva 22-05-2013, 15:49 32 623 Уроки по CMS / Уроки по DLEФорма обратной связи в CMS DLE (DataLife Engine) весьма проста. В ней есть всего три поля - Имя отправителя и Е-мейл отправителя, причем для незарегистрированных посетителей эти поля обязательны для заполнения, плюс есть большое окошко, собственно, для самого сообщения. Вернее, их пять, еще поля Кому и Тема, но это несущественно.
Недавно у меня возникла срочная потребность изменить форму обратной связи. Добавить в нее несколько дополнительных полей и убрать проверку на заполнение поля с е-мейлом. Это потребовалось для того, чтобы сделать форму для предварительной отправки заказа с сайта. Посетитель сайта пишет сообщение администратору, указывает свой номер телефона, а уж затем менеджеры связываются по телефону и принимают заказ.
Теоретически, конечно, можно было сделать для этого отдельную форму на статической странице. Но, как-всегда, хотелось приложить минимальные усилия.
В итоге все заработало хорошо.
А у меня возникла мысль, если это нужно было мне, значит и еще кому-то понадобится. Вот и пишу этот пост.
Итак, есть стандартная форма связи, надо добавить поле "Телефон".
1. Первым делом открываем файл feedback.tpl, который находится в папке с вашим шаблоном. То есть путь такой:
http://site_name.com/templates/shablon_name/feedback.tpl
Где site_name.com - имя вашего сайта, shablon_name - имя вашего шаблона.
Ищем почти в самом начале следующий фрагмент кода:
Это поля для ввода имени и почты для незарегистрированных пользователей.
Телефон должны вводить все - и незарегистрированные, и зарегистрированные, поэтому поле для ввода телефона разместим сразу же под этим фрагментом, сразу же под [/not-logged].
Вот так это должно выглядеть в целом:
nom_tel - это имя нашего нового поля.
2. Мы должны добавить его в шаблон вывода сообщений. Идем в админпанель, открываем пункт "Шаблоны E-Mail сообщений". Среди всех шаблонов находим "Настройка E-Mail сообщения, которое отсылается через форму обратной связи".
3. Вносим изменения в файл feedback.php.
Тут есть два варианта:
engine\modules\feedback.php – отправка сообщения без AJAX
engine\ajax\feedback.php – отправка с использованием AJAX
Как отправляются сообщения у Вас я не знаю, у меня без AJAX. Поэтому мне пришлось редактировать файл из папки modules.
Пробуйте редактировать один файл, не сработает - другой.
Не забудьте перед тем как редактировать, на всякий случай сделать копии!
Ищем код:
Вставляем ниже:
Ищем код:
Вставляем ниже:
Ищем код:
Вставляем ниже:
Для того, чтобы сделать поле е-мейл необязательным:
Ищем код:
$stop .= $lang['feed_err_2'];
}
Перед закрывающей фигурной скобкой вставляем:
Вот и все! Пользуйтесь.
Дополнение.
Если нужно сделать так, чтобы все сообщения шли только администратору сайта, можно удалить строку Кому из формы обратной связи.
Для этого в файле feedback.tpl вместо строчек:
Вставьте строку: