• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/itrmenu.php
  • Класс: BitrixImBotItrMenu
  • Вызов: ItrMenu::detectClickedButton
private function detectClickedButton(string $itemId, array $menuItem, array $menuState): ?array
{
	$clickedButton = null;
	if (isset($menuItem['buttons']))
	{
		foreach ($menuItem['buttons'] as $buttonData)
		{
			if ($buttonData['action'] == self::MENU_ACTION_NEXT && $buttonData['action_value'] == $itemId)
			{
				$clickedButton = $buttonData;
				break;
			}
			if ($buttonData['action'] == self::MENU_ACTION_QUEUE)
			{
				if (
					isset($menuState['menu_action'])
					&& !empty($menuState['menu_action'])
					&& isset($buttonData['action_value'])
					&& !empty($buttonData['action_value'])
					&& $menuState['menu_action'] === $buttonData['action_value']
				)
				{
					$clickedButton = $buttonData;
					break;
				}
				if (
					(
						!isset($menuState['menu_action'])
						|| empty($menuState['menu_action'])
					)
					&&
					(
						!isset($buttonData['action_value'])
						|| empty($buttonData['action_value'])
					)
				)
				{
					$clickedButton = $buttonData;
					break;
				}
			}
			elseif ($buttonData['action_value'] == self::MENU_EXIT_ID)
			{
				$clickedButton = $buttonData;
				break;
			}
		}
	}

	return $clickedButton;
}