8.09.13, 11:10
0 комментарий
  DLE Хаки

Добавляем свои поля в обратную связь DLE

И так наша задача добавить свои поля в обратную связь.
Очень важно при подключении обратной связи на главной (Инструкция немного другая!)
Так же в инструкции будет убрано обязательное поле Е-майл для гостей. Для правок понадобиться 5 минут и такие файлы:

1. feedback.tpl – шаблон обратной связи
2. enginemodulesfeedback.php – отправка сообщения без AJAX
3. engineajaxfeedback.php – Отправка с использованием AJAX

И так приступим:

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

Скрин:

Добавляем свои поля в обратную связь DLE


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

<tr>
    <td>E-Mail:</td>
    <td><input type="text" maxlength="35" name="email" class="f_input" /></td>
</tr>
[/not-logged]


Ниже добавляем:

<tr>
    <td>Телефон:</td>
    <td><input type="text" maxlength="35" name="n_telephon" class="f_input" /></td>
    </tr>


3. Вносим изменения в файл enginemodulesfeedback.php
Ищем:

$email = $member_id['email'];


Ниже добавляем:

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


Ищем

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


Ниже добавляем:

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



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

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


Ниже добавляем:

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


Результат должен быть таким:

Добавляем свои поля в обратную связь DLE


Для убирания ограничения на е-майл нужно сделать такую правку:
Находим:

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


Заменяем на:

if( empty($email) OR dle_strlen($email, $config['charset']) > 50 OR @count(explode("@", $email)) != 2) {
    //$stop .= $lang['feed_err_2'];
    $email=$email.'Не указан';
}


Добавляем проверку на заполненность поля телефон:
После:

if( empty( $name ) OR dle_strlen($name, $config['charset']) > 100 ) {
$stop .= $lang['feed_err_1'];
}


Вставить:

if( empty( $n_telephon) OR dle_strlen($n_telephon, $config['charset']) > 13 ) {
$stop .= $lang['feed_err_88'];
}


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

Где число 13 означает что номер телефона не превышает 13 символов/знаков.

Это лишь пример того как добавить дополнительное поле в обратной связи, Вы же можете их добавить не ограниченное количество в приделах разумного.
Так вы можете добавить любое поле.

Автор: Acid

Напишите своё мнение