• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/itrmenu.php
  • Класс: BitrixImBotItrMenu
  • Вызов: ItrMenu::getState
public function getState(string $dialogId = null): ?array
{
	if ($dialogId)
	{
		$this->dialogId = $dialogId;
	}

	if ($this->menuState === null)
	{
		$sessData = $this->getDialogSession($this->dialogId)->load();
		if ($sessData && !empty($sessData['MENU_STATE']))
		{
			try
			{
				$menuState = MainWebJson::decode($sessData['MENU_STATE']);
				if (is_array($menuState))
				{
					$this->setState($menuState);
					if (isset($menuState['message_id']))
					{
						$this->setMessageId((int)$menuState['message_id']);
					}
				}
			}
			catch (MainArgumentException $e)
			{
			}
		}
		if ($this->menuState === null)
		{
			$this->menuState = ['message_id' => $this->messageId, 'track' => []];
		}
	}

	return $this->menuState;
}