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

11

Приветствую!

Столкнулся с необходимостью добавить в стандартную форму обратной связи два дополнительных поля: Телефон и Адрес

Решил поделиться инструкцией вероятно кому-нибудь пригодится:

1) Находим в каталоге wa-system/view файл: waViewHelper.class.php

2) В этом файле находим функцию public function sendEmail($to, &$errors)

3) Далее в блоке:

 $body = _ws('Name').': '.htmlspecialchars($this->post('name'))."<br>\n".
        _ws('Email').': '.htmlspecialchars($email)."<br><br>\n".$body;

вставляем поля телефона и адреса:

 $body = _ws('Name').': '.htmlspecialchars($this->post('name'))."<br>\n".
	_ws('Phone').': '.htmlspecialchars($this->post('phone'))."<br>\n".
	_ws('Address').': '.htmlspecialchars($this->post('address'))."<br>\n".
        _ws('Email').': '.htmlspecialchars($email)."<br><br>\n".$body;

Если необходимо после этого блока можно сделать проверку на заполнение.

4. Заходим в режиме администратора и редактируем блок обратной связи (у меня он называется: site.send_email_form)

5) В нужном месте вставляем:

  <div class="wa-field">
    <div class="wa-name">[s`Phone`]:</div>
    <div class="wa-value"><input name="phone" type="text" value="{$wa->post("phone")|escape}"></div>
  </div>
  <div class="wa-field">
    <div class="wa-name">[s`Address`]:</div>
    <div class="wa-value"><input name="address" type="text" value="{$wa->post("address")|escape}"></div>
  </div>

как показано ниже:

6) Результат:






18 комментариев

  • +2
    Zhak Zhak 18 августа 2017 12:12 #

    Вот так выглядит на сайте:

    • +1
      Владислав Томилин Владислав Томилин 16 октября 2017 12:44 #

      Добрый день! Подскажите мне пожалуйста куда зайти, что бы посмотреть файлы в wa-system/view/ ?

      • +1
        Zhak Zhak 16 октября 2017 14:14 #

        Здравствуйте, !

        На хостинге в каталоге где установлен Webasyst, находите подкаталог wa-system

      • +2
        Zhak Zhak 21 августа 2017 14:18 #

        Решил добавить:

        Кому необходимо добавить поля и в модальной форма (Всплывающем окне)

        1) в шаблонах сайта находим index.html в нем ищем блок вывода модальной формы обратной связи (у меня в самом конце)

        для ориентира находим строку:

        <div class="modal fade" id="feedbackModal" tabindex="-1" role="dialog" aria-labelledby="feedbackLabel" aria-hidden="true">


        2) Добавляем дополнительное поле телефона и если надо текст:


        <span class="tag"><div</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"margin-bottom-10"</span><span class="tag">></span><span class="pln">
        </span><span class="tag"><p</span><span class="pln"> </span><span class="atn">style</span><span class="pun">=</span><span class="atv">"</span><span class="pln">font</span><span class="pun">-</span><span class="pln">size</span><span class="pun">:</span><span class="pln"> </span><span class="pun">х-</span><span class="pln">small</span><span class="pun">;</span><span class="pln"> color</span><span class="pun">:</span><span class="pln"> </span><span class="com">#585F69</span><span class="atv">"</span><span class="tag">><b></span><span class="pln"> Укажите номер телефона для оперативного ответа на Ваш вопрос.</span><span class="tag"></b></p></span><span class="pln">
        </span><span class="tag"></div></span><span class="pln">                       
        </span><span class="tag"><div</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"form-group"</span><span class="tag">></span><span class="pln">
        </span><span class="tag"><div</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"input-group"</span><span class="tag">></span><span class="pln">
        </span><span class="tag"><span</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"input-group-addon"</span><span class="tag">><i</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"fa fa-phone fa-fw"</span><span class="tag">></i></span></span><span class="pln">
        </span><span class="tag"><input</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"phone"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text"</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"{$wa-></span><span class="pln">post("phone")|escape}" class="form-control" placeholder="[s`Phone`]">
        </span><span class="tag"></div></span><span class="pln">
        </span><span class="tag"></div></span><span class="pln">          </span>


        И получаем результат:


      • +1
        Дмитрий Юрьевич Дмитрий Юрьевич 13 сентября 2017 09:13 #

        Спасибо большое! А при обновлении она не слетает?

      • +1

        При обновлении будет слетать! Костыльное решение...

      • +2
        Zhak Zhak 13 сентября 2017 13:28 #

        Я не волшебник, а только учусь!

        Да, при обновлении слетит, но восстановить не сложно - 5 минут работы. Зато бесплатно, может быть не очень эстетично, зато дешево, надежно и практично. И платить 3000 руб. не надо если нужно изменить всего одну форму.

        А вообще-то я некому это решение не навязываю - может кому пригодиться, а там "кошка бросила котят, пусть страдают чем хотят"

        • +4
          Дмитрий Юрьевич Дмитрий Юрьевич 13 сентября 2017 13:44 #

          Zhak спасибо что выложили решение, если будет еще что-то, то обязательно выкладывайте))
          Я просто не пойму почему бы разработчикам не дописать кусок кода в движок.
          Делать кучу махинаций - костыли, хелперы или платить 3к за две строчки кода.
          Движок отличный, для ИМ идеальный, но эти мелочи убивают.

        • +2
          colornumbers colornumbers 27 сентября 2017 05:16 #

          скажите а как вместо обычного поля добавить функцию прикрепления файла к письму, ну всмысле type="file"/ Чтобы с формой отправлялся и приложенный файл

        • +1
          Zhak Zhak 25 ноября 2018 21:27 #

          Прошло уже огромное кол-во обновлений ни разу не слетело.

        • +1
          Дмитрий Юрьевич Дмитрий Юрьевич 13 сентября 2017 14:16 #

          Уважаемые разработчики может подскажете как написать хелпер, данные брать с файла waViewHelper.class.php? и как его выводить?

        • +1
          Евгений Голов Евгений Голов 27 октября 2017 12:27 #

          А что делать если нет доступа к waViewHelper.class.php?

          Сайт в облаке.

        • +2
          Андрей Какурин Андрей Какурин 21 ноября 2017 07:17 #

          Тоже самое, но средствами javascript. Подходит для сайтов в облаке и не слетает при обновлении.



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

          Чтобы добавить комментарий, зарегистрируйтесь или войдите