- Модуль: 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;
}