- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/ui/webpack/button.php
- Класс: Bitrix\Crm\UI\Webpack\Button
- Вызов: Button::getHelloData
protected function getHelloData()
{
$widgetOrderList = array(
SiteButton\Manager::ENUM_TYPE_OPEN_LINE,
SiteButton\Manager::ENUM_TYPE_OPEN_LINE . '_livechat',
SiteButton\Manager::ENUM_TYPE_CALLBACK,
SiteButton\Manager::ENUM_TYPE_CRM_FORM,
);
$showWidgetId = '';
$widgetIdList = [];
$widgets = $this->getWidgets();
foreach ($widgets as $widget)
{
$widgetIdList[] = $widget['id'];
}
foreach ($widgetOrderList as $widgetOrderId)
{
if (in_array($widgetOrderId, $widgetIdList))
{
$showWidgetId = $widgetOrderId;
break;
}
}
if (!$showWidgetId && $widgetIdList[0])
{
$showWidgetId = $widgetIdList[0];
}
$buttonData = $this->button->getData();
$settings = is_array($buttonData['SETTINGS']) ? $buttonData['SETTINGS'] : array();
$hello = is_array($settings['HELLO']) ? $settings['HELLO'] : array();
$hello['CONDITIONS'] = is_array($hello['CONDITIONS']) ? $hello['CONDITIONS'] : array();
$conditions = array();
if ($hello['ACTIVE'])
{
foreach ($hello['CONDITIONS'] as $condition)
{
if ($condition['PAGES'] && is_array($condition['PAGES']['LIST']))
{
$condition['PAGES']['LIST'] = array_values($condition['PAGES']['LIST']);
}
$conditions[] = array(
'icon' => $condition['ICON'],
'name' => $condition['NAME'],
'text' => $condition['TEXT'],
'pages' => $condition['PAGES'],
'delay' => $condition['DELAY'],
);
}
if ($hello['MODE'] == 'INCLUDE' && isset($conditions[0]))
{
unset($conditions[0]);
sort($conditions);
}
}
return array(
'delay' => 1,
'showWidgetId' => $showWidgetId,
'conditions' => $conditions
);
}