- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/controller/form.php
- Класс: Bitrix\Crm\Controller\Form
- Вызов: Form::assignWidgetToFormAction
public function assignWidgetToFormAction(int $formId, int $buttonId, string $assigned)
{
if (!$this->getFormAccess(true))
{
$this->addError(new Main\Error('Access denied.', self::ERROR_CODE_FORM_WRITE_ACCESS_DENIED));
return ['error' => ['status' => 'access denied', 'code' => self::ERROR_CODE_FORM_WRITE_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 [];
}
if (!$this->getSiteButtonAccess(true))
{
$this->addError(new Main\Error('Access denied.', self::ERROR_CODE_WIDGET_WRITE_ACCESS_DENIED));
return ['error' => ['status' => 'access denied', 'code' => self::ERROR_CODE_WIDGET_WRITE_ACCESS_DENIED]];
}
$isAssigned = $assigned === 'Y';
$form = new WebForm\Form($formId);
$formType = self::getFormType($form);
$button = new Crm\SiteButton\Button($buttonId);
if ($isAssigned)
{
$result = $button->setToForm($formId, $formType, true, true);
}
else
{
$result = $button->unsetFromForm($formId, $formType, true);
}
if (! $result)
{
$this->addError(new Main\Error('CRM_FORM_ASSIGN_GENERAL_ERROR'));
}
Crm\SiteButton\Manager::updateScriptCache($buttonId);
return [
'assigned' => $isAssigned,
'formId' => $formId,
'formName' => $form->getName(),
'formType' => $formType,
'buttonId' => $buttonId,
];
}