• Модуль: imconnector
  • Путь к файлу: ~/bitrix/modules/imconnector/lib/agent.php
  • Класс: BitrixImConnectorAgent
  • Вызов: Agent::agentDisconnectConnectorVK
static function agentDisconnectConnectorVK($step = 0, $line = 0)
{
	$connector = 'vkgroup';
	$statuses = array();
	$maxNumberAttempts = 10;

	$statusesRaw = Status::getInstanceAllLine($connector);

	foreach ($statusesRaw as $status)
	{
		if($status->getActive())
		{
			$statuses[] = $status->getLine();
		}
		else
		{
			Status::delete($connector, (int)$status->getLine());
			Connector::cleanCacheConnector($status->getLine(), Connector::getCacheIdConnector($status->getLine(), $connector));
		}
	}

	if(!empty($statuses))
	{
		if(empty($line) || empty($statuses[$line]))
		{
			$line = reset($statuses);
		}

		$connectorOutput = new Output($connector, $line, true);

		$rawDelete = $connectorOutput->deleteConnector();

		if($rawDelete->isSuccess() || $step > $maxNumberAttempts)
		{
			Status::delete($connector, (int)$line);

			Connector::cleanCacheConnector($line, Connector::getCacheIdConnector($line, $connector));

			$step = 0;
			$line = 0;
		}
		else
		{
			$step++;
		}

		return '\Bitrix\ImConnector\Agent::agentDisconnectConnectorVK(' . $step . ', ' . $line . ');';
	}
}