- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/controller/form.php
- Класс: Bitrix\Crm\Controller\Form
- Вызов: Form::getEmbedAction
public function getEmbedAction($formId) { if (!$this->getFormAccess()) { $this->addError(new Main\Error('Access denied.', self::ERROR_CODE_FORM_READ_ACCESS_DENIED)); return ['error' => ['status' => 'access denied', 'code' => self::ERROR_CODE_FORM_READ_ACCESS_DENIED]]; } if ($this->shouldVerifyPhone() && !$this->isPhoneVerified($formId)) { $this->addError(new Main\Error('Phone doesn\'t verified', self::ERROR_CODE_PHONE_NOT_VERIFIED, ['id' => $formId])); return []; } $form = new WebForm\Form($formId); $formData = $form->get(); $views = $formData['FORM_SETTINGS']['VIEWS']; $dict = $this->getDictForEmbed(); $viewOptions = $this->buildViewOptions(WebForm\Options::getViewOptions(), $dict); $scripts = WebForm\Script::getListContext($formData, []); // embed codes $pubLink = WebForm\Script::getUrlContext($formData); // public form link $previewLink = strtr(WebForm\Script::getPublicFormPath(), [ '#id#' => $formData['ID'], '#form_id#' => $formData['ID'], '#form_code#' => $formData['CODE'], '#form_sec#' => $formData['SECURITY_CODE'], ]); $previewLink = WebForm\Script::getDomain() . $previewLink . '?view=preview&preview=#preview#'; return [ 'dict' => [ 'viewOptions' => $dict, ], 'embed' => [ 'scripts' => array_change_key_case($scripts, CASE_LOWER), 'pubLink' => $pubLink, 'previewLink' => $previewLink, 'viewValues' => array_change_key_case($views, CASE_LOWER), 'viewOptions' => array_change_key_case($viewOptions, CASE_LOWER), 'helpCenterUrl' => self::getHelpCenterUrl(self::EMBED_HELP_CENTER_ID), 'helpCenterId' => self::EMBED_HELP_CENTER_ID, ], ]; }