форма обратной связи битрикс добавить поле
Форма обратной связи битрикс добавить поле
Часто приходится использовать форму обратной связи в редакии «Старт». Можно сделать свою без всяких компонентов, а просто кодом, но иногда достаточно использовать стандартную форму обратной связи, добавив или изменив нужные поля.
Данный материал описывает добавление одного поля в форму из страндартного комлекта Битрикса «Старт».
Сначала нужно создать свое пространство имен, чтобы обновления не затирали наши изменения, нужно стараться это делать обязательно.
1. Создаем в /bitrix/components/ свою папку, например, /devfix/.
2. В вновь созданную папку /devfix/ копируем из папки /bitrix/components/bitrix/ папку /main.feedback/.
3. Далее создаем папку /devfix/ для шаблонов с новым пространством имен в /bitrix/templates/ваш_шаблон/components/.
4. Создаем в ней папку шаблона /main.feedback/ и копируем в нее все файлы отсюда /components/devfix/main.feedback/templates/.default.
5. Правим файл template.php уже из папки /components/devfix/main.feedback/templates/main.feedback/, добавляя в него одно поле, например, «Удобное время для звонка». За основу берем поле «Имя».
На его основе создаем еще одно, прописываме новые значения и вставляем где нужно, наприме сразу по полем имя и у нас получтся следующее:
. Выше код мы не трогали.
. Ниже код мы не трогали.
6. Изменяем файл /bitrix/templates/ваш_шаблог/components/devfix/main.feedback/forma/lang/ru/template.php добавили одну строку с MFT_TIME
7. Теперь самое сложное, это оставшаяся кастомизация компонента в /bitrix/components/devfix/main.feedback/component.php. Тут я приведу сразу готовый код измененного стандатного файла. Везде где есть слово time или TIME, это то, что добавилось в нем.
$arResult[«TIME»] = htmlspecialcharsEx($_SESSION[«MF_TIME»]);
>
>
if($arParams[«USE_CAPTCHA»] == «Y»)
$arResult[«capCode»] = htmlspecialchars($APPLICATION->CaptchaGetCode());
$this->IncludeComponentTemplate();
?>
8. Изменяем языковой файл /bitrix/components/devfix/main.feedback/lang/ru/.parameters.php, опять же добавили лишь одну строку с TIME.
Вам было отправлено сообщение через форму обратной связи
Автор: #AUTHOR#
E-mail автора: #AUTHOR_EMAIL#
Удобное время для звонка: #TIME#
Текст сообщения:
#TEXT#
Сообщение сгенерировано автоматически.
Если я ничего не упустил, то теперь все должно получиться и работать.
Форма обратной связи
Здравствуйте
Поставили передо мной задание, сделать форму обратной связи.
Полез я в компоненты, и нашел форму, но все бы хорошо, если она бы не была, такая маленькая (мало полей).
И тут я полез в инструкции и документации, онлайн уроки.
Одни предлагают делать инфоблоками и цеплять событие.
Другие, через «Веб формы», и ставить птичку «отправлять по Email».
Вот я полез туда, создал форму, но не получилось поставить условия. Пример на рисунке.
Тема обращения
radiobutton Проблема с регистрацией
radiobutton Обратная связь с администрацией форума
radiobutton Реклама
radiobutton С миру по нитке
radiobutton Партнерство
radiobutton Другое (поле для другой темы type=text)
Можно бы было прикрутить сюда javacript, который при срабативании пункт «Другое», включал тестовое поле. Изначально оно hidden или не активне. Это как пример.
Но снова.. код битрикса
ShowInputCaption(«new_field_47315»,»»[IMG]?>
ShowInput(‘new_field_47315’)?>
ShowInputCaption(«new_field_37817»,»»[IMG]?>
ShowInput(‘new_field_37817’)?>
И что с ним делать? где искать файл с формой?
Можно сказать что битрикс не гибкий, и справляется только с простыми заданиями. А если что то более сложное, уже все, в документации нет, приходиться сюда писать.
Пока оставил так как есть, если в поле ввести данные и выбрать допустим «Реклама», на пошту придет тема: «Реклама» и «Значения из поля».
Как в шаблоне написать, что когда выбрано другое, то тема Другое и значения «вот такое». Щас у меня два поля вместе. Тоисть Тема: «поле теми» «поле другое».
Мне нравится форма, если убрать в настройках «игнорировать свой шаблон», но там внизу 3 кнопки, а как оставить только одну? где искать этот файл? не в инстукции, не в документации не сказано. А если заказщик хочет только вот так и все, что тогда?
Также проблема с выводом на экран сообщения, выводит стандартно «Спасибо, ваша заявка принята».
И выводит при упрощенном режиме.
Куда такое годится? погуглил и нашел языковый пакет, изменил, работает, но при обновлении битрикса, оно все полетит, и нужно будет снова ручками. (по крайней мере так писали).
Я только учусь, и может чего-то не знаю. Или это нормально, что есть только база, а все остальное сиди пиши. Так подскажите где искать. Напишите решение проблемы. Может погорячился.
Так же проблема с регистрацией, чтобы добавить еще поля, нужно редактировать компонент, шаблон, а потом еще будут проблемы.
Тем об обратной связи было много, но я не нашел ответ на свой вопрос.
Установил компонент, Расширенная форма обратной связи. Но там нет гибкости.
Приходится искать, читать, разбираться. Нужна онлайн поддержка битрикса.
Как редактировать форму обратной связи на битрикс?(Добавление полей в форме обратной связи на битриксе).
Как редактировать форму обратной связи на битрикс?(Добавление полей в форме обратной связи на битриксе)
Часто приходится использовать форму обратной связи в редакии «Старт». Можно сделать свою без всяких компонентов, а просто кодом, но иногда достаточно использовать стандартную форму обратной связи, добавив или изменив нужные поля.
Данный материал описывает добавление одного поля в форму из страндартного комлекта Битрикса «Старт».
Сначала нужно создать свое пространство имен, чтобы обновления не затирали наши изменения, нужно стараться это делать обязательно.
1. Создаем в /bitrix/components/ свою папку, например, /dapit/.
2. В вновь созданную папку /dapit/ копируем из папки /bitrix/components/bitrix/ папку /main.feedback/.
3. Далее создаем папку /dapit/ для шаблонов с новым пространством имен в /bitrix/templates/ваш_шаблон/components/.
4. Создаем в ней папку шаблона /main.feedback/ и копируем в нее все файлы отсюда /components/dapit/main.feedback/templates/.default.
5. Правим файл template.php уже из папки /components/dapit/main.feedback/templates/main.feedback/, добавляя в него одно поле, например, «Удобное время для звонка». За основу берем поле «Имя».
На его основе создаем еще одно, прописываме новые значения и вставляем где нужно, наприме сразу по полем имя и у нас получтся следующее:
……Выше код мы не трогали……
……Ниже код мы не трогали……
6. Изменяем файл /bitrix/templates/ваш_шаблог/components/dapit/main.feedback/forma/lang/ru/template.php добавили одну строку с MFT_TIME
7. Теперь самое сложное, это оставшаяся кастомизация компонента в /bitrix/components/dapit/main.feedback/component.php. Тут я приведу сразу готовый код измененного стандатного файла. Везде где есть слово time или TIME, это то, что добавилось в нем.
$arResult[«TIME»] = htmlspecialcharsEx($_SESSION[«MF_TIME»]);
>
>
if($arParams[«USE_CAPTCHA»] == «Y»)
$arResult[«capCode»] = htmlspecialchars($APPLICATION->CaptchaGetCode());
$this->IncludeComponentTemplate();
?>
8. Изменяем языковой файл /bitrix/components/dapit/main.feedback/lang/ru/.parameters.php, опять же добавили лишь одну строку с TIME.
9. Напоследок заходим в Административной части Настройки —> Настройки продукта —> Почтовые события —> Почтовые шаблоны в «Отправка сообщения через форму обратной связи» и вставляем там наше поле TIME:
Информационное сообщение сайта #SITE_NAME#
——————————————
Вам было отправлено сообщение через форму обратной связи
Автор: #AUTHOR#
E-mail автора: #AUTHOR_EMAIL#
Удобное время для звонка: #TIME#
Текст сообщения:
#TEXT#
Сообщение сгенерировано автоматически.
Если я ничего не упустил, то теперь все должно получиться и работать.
Форма обратной связи
Описание main.feedback
Компонент выводит форму для отправки сообщения с сайта на E-mail. Компонент является стандартным и входит в дистрибутив модуля.
Для работы формы не требуется модуль Почта.
Компонент относится к Главному модулю.
Параметры
Поле | Параметр | Описание |
Основные параметры | ||
---|---|---|
Использовать защиту от автоматических сообщений (CAPTCHA) для неавторизованных пользователей | USE_CAPTCHA | [Y|N] При отмеченной опции для неавторизованных пользователей будет использоваться CAPTCHA при создании сообщений. |
Сообщение, выводимое пользователю после отправки | OK_TEXT | Задается текст сообщения, выводимый пользователю после отправки. |
E-mail, на который будет отправлено письмо | EMAIL_TO | Задается E-mail, на который будет отправлено письмо (будет отображен в форме для отправки сообщений в поле Ваш E-mail). |
Обязательные поля для заполнения | REQUIRED_FIELDS | Указываются поля формы, которые будут обязательными для заполнения. |
Почтовые шаблоны для отправки письма | EVENT_MESSAGE_ID | Указывается почтовый шаблон, на основе которого будут отправляться письма. |
Если компонент размещён на сайте, настроен, но сообщения не приходят, необходимо:
Пример вызова
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Создание контактной формы по канонам БМ
Форма обратной связи — один из самых част встречающихся элементов на сайте и сейчас я хочу рассказать о том как сделать её на основе компонента, при этом не используя встроенный в битрикс модуля «Веб-формы» т.к. он доступен только начиная с лицензии «Стандарт», а подавляющее большинство сайтов не имеющих отношения к Интернет-торговле делаются на редакции «Старт». Так же мы учтём в форме один маленький лайфхак который я узнал на курсе Бизнес молодость ЦЕХ, который мне посчастливилось проходить летом 2019-го года. И так, поехали.
Подготовка компонента
Чтобы сэкономить время, предлагаю установить один прикольный модуль «Мастер создания компонента», он позволит быстро и без лишних телодвижений создать простой макет нашего компонента формы обратной связи. Устанавливаем компонент через страницу на маркетплейсе или через админку.
Для нашего компонента я выбрал следующие базовые настройки:
Почему пустой скрипт? Т.к. функциональность формы крайне простая мы будем описывать бизнес логику формы в файлах component_epilog.php или доп.файлах ajax.php в папке шаблона компонента. А сам компонент emptyscript послушит каркасом для ряда простых форм.
Опции шаблона компонента следующие:
Мы будем использовать jQuery Ajax для обработки формы, а так же будем хранить стили компонента прямо в папке шаблона. В итоге настройки для мастера будут должны получиться примерно такими:
Нажимаем «Создать», ждём пару секунд, готово! Компонент успешно создан! Можете поблагодарить автора компонента донатом, он действительно экономит кучу времени. Давайте создадим какой-нибудь раздел на сайте и разместим нашу заготовку.
Перейдём к описанию самой формы.
Шаблон формы обратной связи
Допустим вы фрилансер, вебмастер, у вас есть свой landing-page и вы хотите подвесить туда форму обратной связи. Как будет выглядеть наш шаблон? Какую информацию будем собирать о клиенте? Предлагаю собрать следующее:
Основываясь на этом списке, делаем форму:
Первые три поля обязательны, т.к. нам нужна эта информация чтобы дозвониться до клиента и обсудить проект, а если не дозвонились то отправить адресованное ему письмо с коммерческим предложением (КП) и т.д. в котором нужно обратиться по имени. Поля «Сайт» и «Описание проблемы или задачи» позволят вам лучше подготовиться к обработки заявки, сделать более адресное КП.
Блок «Как с вами связаться» очень важен. Есть категория клиентов которая не любит звонки им гораздо удобнее провести первичный контакт с исполнителем через WhatsApp или электронную почту. Этот блок позволяет узнать предпочтение клиента и связаться с ним, наиболее удобным для него способом.
И конечно же «Согласие с политикой конфиденциальности». Согласно закону 152-ФЗ «О персональных данных», вы как владелец веб-сайта обязаны запросить подобное согласие от клиента если собираете его персональные данные (имя, телефон и т.п.). Кстати быстро сгенерировать страницу для сайта с описание политики конфиденциальности поможет этот сервис.
С внешним видом определились, давайте верстать!
Для валидации используем стандартный HTML5, однако при желании можно подключить jQuery Validate или аналогичный плагин.
Большая часть стилей, это стандартный Bootstrap 4, однако для некоторых элементов формы стиля я всё же приведу (это scss):
И стили для чекбоксов блока «Как нам с вами связаться?»:
Мы будем подставлять в него ответ сервера и показывать пользователю popup.
Подключаем проверку Google
Перейдите на страницу Google reCaptcha (у вас должен быть аккаунт на Google), нажмите кнопку «Создать» и введите следующие настройки:
Указываем тип капчи «Я не робот»:
После сохранения настроек, вы получите пару ключей, а именно «Ключ сайта» и «Секретный ключ»:
Их лучше сразу сохранить в константах сайта. Обычно это файл init.php или отдельный файл constants.php подключаемый в начале init.php.
Добавим блок капчи в вёрстку формы, вот так (можно вставить его перед согласием с политикой конфиденциальности):
Так же необходимо подключить js скрипта api Goolge reCaptcha, делается это в файле header.php шаблона сайта:
Проверка ввода капчи
Для верификации ввода капчи нам потребуется дополнительный php класс ReCaptcha, его можно найти на GitHub. Скачиваем и подключаем его в наш компонент. Т.к. для обработки формы я собираюсь использовать ajax.php подключим этот класс туда (ajax.php это доп.файл в лежащий в папке с шаблоном компонента и отвечающий за серверную обработку запроса с формы).
Давайте добавим JavaScript обработчик нашей форме, чтобы удостовериться что всё работает:
Подробнее о том как работать с jQuery Ajax можно прочитать в этой статье. Проверим работу капчи:
Шаблон письма
Шаблон письма до безобразия прост, в нём мы отразим только самую необходимую информацию:
Осталось дополнить наш ajax.php чтобы в случае успешной проверки капчи он отправлял данные на почту:
Метод CEvent::Send() отвечает за отправку письма, число 10 в параметрах метода — это идентификатор почтового шаблона который мы подготовили ранее, у вам он может отличаться. Если вы всё сделали правильно, в результате вам на почту будет приходить такое вот письмо:
Как видите для менеджера выделен предпочтительный способ связи с клиентом, это одна из фишек БМ, вы будете связываться с потенциальным покупателем максимально комфортным для него способом, что повысит его лояльность и возможно конверсию.
Заключение
На первый взгляд внедрение такого функционала может показаться сложным, но если всё разложить на последовательные логические шаги и использовать пару спец.инструментов задача становится значительно проще! Если у вас остались вопросы — пишите их в комментариях. Желаю удачи!