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

Скачать Дополнительное поле в форме обратной связи
Недавно искали:

joriks

Житель
Регистрация
28.09.14
Сообщения
38
Реакции
32
Проверял на 2.3.3

Добавляем дополнительное поле в форме обратной связи, например телефон или номер заказа, вся информация видна в админке.

Начнем с правки файла feedback.tpl вашего шаблона в папке /design/ваш_шаблон/html.
В форме вставляем нужное вам поле, в нашем случае поле номер телефона:
после
PHP:
<label>Email</label>
<input data-format="email" data-notice="Введите email" value="{$email|escape}" name="email" maxlength="255" type="text"/>
вставляем
PHP:
<label>Номер телефона</label>
<input format=".+" notice="Введите номер телефона" value="{$phone|escape}" name="phone" maxlength="255" type="text"/>
Если нужно сделать данное поле обязательным, чуть выше поправим код вывода ошибок:
PHP:
<div class="message_error">{if $error=='captcha'}
Неверно введена капча
{elseif $error=='empty_name'}
Введите имя
{elseif $error=='empty_email'}
Введите email
{elseif $error=='empty_phone'}
Введите номер телефона
{elseif $error=='empty_text'}
Введите сообщение
{/if}</div>
Далее правим файл FeedbackView.php в папке /view/
после
PHP:
$feedback->email        = $this->request->post('email');
вставляем
PHP:
$feedback->phone        = $this->request->post('phone');
далее, в этом же файле, после
PHP:
$this->design->assign('email', $feedback->email);
вставляем
PHP:
$this->design->assign('telephone', $feedback->phone);
и после
PHP:
elseif(empty($feedback->email))
                $this->design->assign('error', 'empty_email');
вставляем
PHP:
elseif(empty($feedback->phone))
                $this->design->assign('error', 'empty_ phone');
Теперь сделаем маленькое изменение в таблице базы данных s_feedbacks, вставим пустую строку phone с параметрами: varchar(20), Null Нет.
Код:
ALTER TABLE `s_feedbacks` ADD `phone` VARCHAR( 20 ) NOT NULL ;
Теперь переходим к админке.

Для нормальной работы дизайна админки в simpla/design/css/style.css добавляем:
Код:
div.comment_tel{
font-size: 12px;
color: #000000;
padding-bottom:5px;
}
Далее в файле feedbacks.tpl, папки /simpla/design/html/ вставляем код:
после
PHP:
<div class='comment_name'>
<a href="mailto:{$feedback->name|escape}<{$feedback->email|escape}>?subject=Вопрос от пользователя {$feedback->name|escape}">{$feedback->name|escape}</a>
</div>
добавляем
PHP:
<div class="comment_tel">Телефон: {$feedback->phone|escape}</div>
Для того чтобы заработало поле вывода номера телефона в админке, редактируем файл Feedbacks.php в папке /api
меняем
PHP:
$query = $this->db->placehold("SELECT f.id, f.name, f.email, f.ip, f.message, f.date FROM __feedbacks f WHERE id=? LIMIT 1", intval($id));
на
PHP:
$query = $this->db->placehold("SELECT f.id, f.name, f.email, f.ip, f.phone, f.message, f.date FROM __feedbacks f WHERE id=? LIMIT 1", intval($id));
далее, в этом же файле, меняем
PHP:
$query = $this->db->placehold("SELECT f.id, f.name, f.email, f.ip, f.message, f.date
                                                                                FROM __feedbacks f WHERE 1 $keyword_filter ORDER BY f.id $sort $sql_limit");
на
PHP:
$query = $this->db->placehold("SELECT f.id, f.name, f.email, f.ip, f.phone, f.message, f.date
                                                                                FROM __feedbacks f WHERE 1 $keyword_filter ORDER BY f.id $sort $sql_limit");
Теперь у нас есть поле ввода номера телефона и отображается в админке. Теперь, чтобы приходило письмо админу с номером телефона нужно в файле simpla/design/html/email_feedback_admin.tpl после
PHP:
<tr>
    <td style='padding:6px; width:170; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;'>
      Email
    </td>
    <td style='padding:6px; width:330; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;'>
      <a href='mailto:{$feedback->email|escape}?subject={$settings->site_name}'>{$feedback->email|escape}</a>
    </td>
  </tr>
вставить
PHP:
<tr>
    <td style='padding:6px; width:170; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;'>
      Номер телефона:
    </td>
    <td style='padding:6px; width:330; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;'>
       {$feedback->phone|escape}</a>
    </td>
  </tr>
Все! По аналогии можно вывести другие параметры, например номер заказа и т.д.
 
Назад
Сверху Снизу