• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/bot/contextmenu.php
  • Класс: BitrixImBotContextMenu
  • Вызов: ContextMenu::addItem
public function addItem($params)
{
	$button = Array();
	if (isset($button['BOT_ID']) && intval($button['BOT_ID']) > 0)
	{
		$button['BOT_ID'] = intval($button['BOT_ID']);
	}
	else
	{
		$button['BOT_ID'] = $this->botId;
	}
	if (!isset($params['TEXT']) || trim($params['TEXT']) == '')
	{
		return false;
	}

	if (isset($params['LINK']) && preg_match('#^(?:/|https?://)#', $params['LINK']))
	{
		$button['LINK'] = htmlspecialcharsbx($params['LINK']);
	}
	else if (isset($params['FUNCTION']))
	{
		$button['FUNCTION'] = htmlspecialcharsbx($params['FUNCTION']);
	}
	else if (isset($params['APP_ID']))
	{
		$button['APP_ID'] = intval($params['APP_ID']);
		if (isset($params['APP_PARAMS']) && trim($params['APP_PARAMS']) <> '')
		{
			$button['APP_PARAMS'] = $params['APP_PARAMS'];
		}
	}
	else if (
		isset($params['ACTION'])
		&& in_array($params['ACTION'], ['PUT', 'SEND', 'COPY', 'CALL', 'DIALOG'])
		&& trim($params['ACTION_VALUE']) <> ''
	)
	{
		$button['ACTION'] = $params['ACTION'];
		$button['ACTION_VALUE'] = $params['ACTION_VALUE'];
	}
	else if ($this->botId > 0 && isset($params['COMMAND']) && trim($params['COMMAND']) <> '')
	{
		$button['COMMAND'] = mb_substr($params['COMMAND'], 0, 1) == '/'? mb_substr($params['COMMAND'], 1) : $params['COMMAND'];
		$button['COMMAND_PARAMS'] = isset($params['COMMAND_PARAMS']) && trim($params['COMMAND_PARAMS']) <> ''? $params['COMMAND_PARAMS']: '';
	}
	else
	{
		return false;
	}

	$button['TEXT'] = htmlspecialcharsbx(trim($params['TEXT']));

	$button['CONTEXT'] = isset($params['CONTEXT']) && in_array($params['CONTEXT'], ['MOBILE', 'DESKTOP']) ? $params['CONTEXT'] : 'ALL';

	$button['DISABLED'] = (isset($params['DISABLED']) && $params['DISABLED'] == 'Y') ? 'Y' : 'N';

	$this->items[] = $button;

	return false;
}