LandingTable::getLandingMap

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. LandingTable
  4. getLandingMap
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/internals/landing.php
  • Класс: Bitrix\Crm\WebForm\Internals\LandingTable
  • Вызов: LandingTable::getLandingMap
static function getLandingMap($cache = true)
{
	static $rows = null;

	if (!Integration\Landing\FormLanding::getInstance()->canUse())
	{
		$rows = [];
	}

	if ($rows === null || !$cache)
	{
		$rows = FormTable::getDefaultTypeList([
			'select' => ['FORM_ID' => 'ID', 'LANDING_ID' => 'LANDING.LANDING_ID'],
			'order' => ['FORM_ID' => 'ASC'],
			'cache' => ['ttl' => 3600],
		])->fetchAll();

		$rows = array_combine(
			array_column($rows, 'FORM_ID'),
			array_column($rows, 'LANDING_ID')
		);

		if (empty($rows))
		{
			$generate = true;
		}
		else
		{
			$generate = count(array_filter(
				$rows,
				function ($landingId)
				{
					return !$landingId;
				}
			)) > 0;
		}

		$rows = array_filter(
			$rows,
			function ($landingId)
			{
				return !!$landingId;
			}
		);

		if ($cache && $generate)
		{
			if (static::generateLandings())
			{
				$rows = static::getLandingMap(false);
			}
		}
	}

	return $rows;
}

Добавить комментарий