Как грамотно установить цель на отправленную веб-форму в 1С-Битрикс?

Нашел на форуме битрикс решение:

1) кастомизируем компонент form.result.new в своё пространство имён
2) в файле component.php добавляем код
if (!empty($_REQUEST["formresult"]) && $_REQUEST['WEB_FORM_ID'] == $arParams['WEB_FORM_ID'])
      {
         $formResult = strtoupper($_REQUEST['formresult']);
         switch ($formResult)
         {
            case 'ADDOK':
               $arResult['FORM_NOTE'] = str_replace("#RESULT_ID#", $RESULT_ID, GetMessage('FORM_NOTE_ADDOK'));
               if($_REQUEST['WEB_FORM_ID'] == "1"){
                  ?><sc ript>yaCounterXXXXXXXX.reachGoal("send_question");</sc ript><?
               } else if($_REQUEST['WEB_FORM_ID'] == "4"){
                  ?><sc ript>$(document).ready(function(){yaCounterXXXXXXXX.reachGoal("send_bron");})</sc ript><?
               }
         }

      }


Я мало знаком с битрикс. И фраза "пространство имён" вызывает у меня затруднения головного мозга )) Я нашел что это (https://dev.1c-bitrix.ru/learning/course/index.php... но вникнуть быстро пока не получается.
Компонент /public_html/bitrix/components/bitrix/form.result.new/ и файл /public_html/bitrix/components/bitrix/form.result.new/component.php я нашел. А вот что значит "кастомизировать в свое пространство имен" - объясните пожалуйста на пальцах (по шагам) что мне нужно делать.

ps: onsubmit в шаблон формы я могу вставить, но такие цели меня не устраивают.
  • Вопрос задан
  • 497 просмотров
Решения вопроса 1
@glagolew059
frontend developer
чтобы кастомизировать компонент нужно добавить его копию в папку:
/local/components/ПРОСТРАНСТВО_ИМЕН/НАЗВАНИЕ_КОМПОНЕНТА/

ПРОСТРАНСТВО_ИМЕН можно указать свое (например namespase), либо не парится и написать bitrix, но тогда все компоненты form.result.new будут выводиться кастомизированными

т.е. вам нужно копировать папку с компонентом /bitrix/components/bitrix/form.result.new/
в папку /local/components/bitrix/form.result.new/
либо в папку /local/components/namespase/form.result.new/ (где namespase ваше пространство имен)

и править файл component.php там, тогда при обновлениях у вас ничего не затрется
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы