- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/script.php
- Класс: Bitrix\Crm\WebForm\Script
- Вызов: Script::getCrmButtonWidgetShower
static function getCrmButtonWidgetShower($formId, $lang = null, array $options = [])
{
if (Manager::isEmbeddingEnabled($formId))
{
$id = 'b24-site-button-form-' . $formId;
return "b24form.App.get('$id').show();";
}
$formData = FormTable::getRowById($formId);
$sec = $formData['SECURITY_CODE'];
$isCallbackForm = $formData['IS_CALLBACK_FORM'] == 'Y';
if (!$lang)
{
$lang = Application::getInstance()->getContext()->getLanguage();
}
$url = self::getDomain() . '/bitrix/js/crm/form_loader.js';
$options += [
"borders" => false,
"logo" => false
];
$options = Json::encode($options);
return '
(function(w,d,u,b){w[\'Bitrix24FormObject\']=b;w[b] = w[b] || function(){arguments[0].ref=u;
(w[b].forms=w[b].forms||[]).push(arguments[0])};
if(w[b][\'forms\']) return;
s=d.createElement(\'script\');r=1*new Date();s.async=1;s.src=u+\'?\'+r;
h=d.getElementsByTagName(\'script\')[0];h.parentNode.insertBefore(s,h);
})(window,document,\'' . $url . '\',\'b24form\');
(function(w,b){
params = {
"id":"' . $formId . '","lang":"' . $lang .'","sec":"' . $sec . '","type":"inline_widget",
"node": document.getElementById("bx24_form_inline_loader_container_' . $formId . '"),
"isCallbackForm": ' . ($isCallbackForm ? 'true' : 'false') . ',
"options": ' . $options . ',
"handlers": {
"init": function (form){
BX.SiteButton.onWidgetFormInit(form);
},
"keyboard": function (form, keyCode){
if (keyCode == 27) BX.SiteButton.wm.hide();
}
},
"ref": "' . $url . '"
};
if(w[\'Bitrix24FormLoader\'] && !Bitrix24FormLoader.isFormExisted(params))
{
Bitrix24FormLoader.preLoad(params);
}
else
{
w[b](params);
}
})(window,\'b24form\');
bx24FormCont=document.getElementById("bx24_form_container_' . $formId . '");
if (bx24FormCont)
{
BX.SiteButton.classes.add(bx24FormCont, "open-sidebar");
}
';
}