- Модуль: 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,
],
];
}