• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/session.php
  • Класс: BitrixImOpenLinesSession
  • Вызов: Session::execAutoAction
public function execAutoAction($params): void
{
	if (
		$this->action === self::ACTION_CLOSED
		&& $this->config['ACTIVE'] === 'N'
	)
	{
		Im::addMessage([
			'TO_CHAT_ID' => $this->session['CHAT_ID'],
			'MESSAGE' => Loc::getMessage('IMOL_SESSION_LINE_IS_CLOSED'),
			'SYSTEM' => 'Y',
		]);
	}

	if (
		$this->config['AGREEMENT_MESSAGE'] === 'Y'
		&& $this->chat->isNowCreated()
		&& $this->isEnableSendSystemMessage()
	)
	{
		$addAgreementMessage = true;
		if (Connector::isLiveChat($this->session['SOURCE']))
		{
			$parsedUserCode = SessionCommon::parseUserCode($this->session['USER_CODE']);
			$addAgreementMessage = !Consent::getByContext(
				(int)$this->config['AGREEMENT_ID'],
				'imopenlines/livechat',
				$parsedUserCode['EXTERNAL_CHAT_ID']
			);
		}

		if ($addAgreementMessage)
		{
			$mess = Loc::loadLanguageFile(__FILE__, $this->config['LANGUAGE_ID']);
			Im::addMessage([
				'TO_CHAT_ID' => $this->session['CHAT_ID'],
				'MESSAGE' => str_replace(
					['#LINK_START#', '#LINK_END#'],
					['[URL=' . Common::getAgreementLink($this->config['AGREEMENT_ID'], $this->config['LANGUAGE_ID']) . ']', '[/URL]'],
					$mess['IMOL_SESSION_AGREEMENT_MESSAGE']
				),
				'SYSTEM' => 'Y',
				'IMPORTANT_CONNECTOR' => 'Y',
				'NO_SESSION_OL' => 'Y',
				'PARAMS' => [
					'CLASS'=> 'bx-messenger-content-item-ol-output',
				]
			]);
			Im::addMessage([
				'TO_CHAT_ID' => $this->session['CHAT_ID'],
				'MESSAGE' => Loc::getMessage('IMOL_SESSION_AGREEMENT_MESSAGE_OPERATOR'),
				'SYSTEM' => 'Y',
				'PARAMS' => [
					'CLASS' => 'bx-messenger-content-item-ol-attention',
				]
			]);
		}
	}
}