Script::getCrmButtonWidgetShower

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Script
  4. getCrmButtonWidgetShower
  • Модуль: 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");
		}
	';
}

Добавить комментарий