Авторизация на сайте

Последнее из портфолио

Как с нами связаться

  • 8 953 242 0439
  • +7 953 242 0439
  • ws-aprel@ya.ru
  • *******
  • Россия, г. Горячий Ключ
» » » Как изменить форму обратной связи в DLE

Как изменить форму обратной связи в 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]
<tr>
<td width="120">Ваше имя:</td>
<td><input type="text" maxlength="35" name="name" class="f_input" /></td>
</tr>
<tr>
<td>E-Mail:</td>
<td><input type="text" maxlength="35" name="email" class="f_input" /></td>
</tr>
[/not-logged]

Это поля для ввода имени и почты для незарегистрированных пользователей.

Телефон должны вводить все - и незарегистрированные, и зарегистрированные, поэтому поле для ввода телефона разместим сразу же под этим фрагментом, сразу же под [/not-logged].

<tr>
<td>Контактный телефон:</td>
<td><input type="text" maxlength="55" name="nom_tel" class="f_input" /></td>
</tr>

Вот так это должно выглядеть в целом:

редактирование feedback.tplредактирование feedback.tpl


nom_tel - это имя нашего нового поля. 


2. Мы должны добавить его в шаблон вывода сообщений. Идем в админпанель, открываем пункт "Шаблоны E-Mail сообщений". Среди всех шаблонов находим "Настройка E-Mail сообщения, которое отсылается через форму обратной связи". 

 

Шаблон вывода сообщенийШаблон вывода сообщений

 

3. Вносим изменения в файл feedback.php.

Тут есть два варианта:

engine\modules\feedback.php – отправка сообщения без AJAX

engine\ajax\feedback.php – отправка с использованием AJAX

Как отправляются сообщения у Вас я не знаю, у меня без AJAX. Поэтому мне пришлось редактировать файл из папки modules.

Пробуйте редактировать один файл, не сработает - другой.

Не забудьте перед тем как редактировать, на всякий случай сделать копии!


Ищем код:

$email = $member_id['email'];

Вставляем ниже:

$nom_tel = strip_tags( stripslashes( $_POST['nom_tel'] ));


Ищем код:

$name = strip_tags( stripslashes( $_POST['name'] ) );

Вставляем ниже:

$nom_tel = strip_tags( stripslashes( $_POST['nom_tel'] ));


Ищем код:

$row['template'] = stripslashes( $row['template'] );

Вставляем ниже:

$row['template'] = str_replace( "{%nom_tel%}", $nom_tel, $row['template'] );


Для того, чтобы сделать поле е-мейл необязательным:

Ищем код:

if( empty($email) OR dle_strlen($email, $config['charset']) > 50 OR @count(explode("@", $email)) != 2) {
$stop .= $lang['feed_err_2'];
}

Перед закрывающей фигурной скобкой вставляем:

$email=$email.'Не указан';

Вот и все! Пользуйтесь.

 

Дополнение.

Если нужно сделать так, чтобы все сообщения шли только администратору сайта, можно удалить строку Кому из формы обратной связи.

Для этого в файле feedback.tpl вместо строчек:

 

<tr>
<td class="label">
Кому:<span class="impot">*</span>
</td>
<td>{recipient}</td>
</tr>

 

Вставьте строку:

 

<input type="hidden" name="recip" value="1" />

 

Похожие новости

  • Установка WordPress на хостинг
  • Создание «плавающих» фреймов
  • Сколько ссылок нужно, чтобы получить ТИЦ 10
  • Урок 3. Горизонтальные линии и бегущая строка
  • Что такое DLE?

  • Комментарии (2)

    1. avatar
      0
      #1 Александр
      Есть вопросы
    2. avatar
      0
      #2 Артём
      Ожидаю звонка на телефон

    Добавить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent
    Кликните на изображение чтобы обновить код, если он неразборчив