• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/site.php
  • Класс: BitrixLandingSite
  • Вызов: Site::addLandingToMenu
static function addLandingToMenu(int $siteId, array $data): void
{
	Landing::setEditMode();
	$res = Landing::getList([
		'select' => [
			'ID'
		],
		'filter' => [
			'SITE_ID' => $siteId,
			'!==AREAS.ID' => null
		],
	]);
	while ($row = $res->fetch())
	{
		$landing = Landing::createInstance($row['ID']);
		if ($landing->exist())
		{
			foreach ($landing->getBlocks() as $block)
			{
				$manifest = $block->getManifest();
				if (isset($manifest['menu']))
				{
					foreach ($manifest['menu'] as $menuSelector => $foo)
					{
						$block->updateNodes([
							$menuSelector => [
								[
									'text' => $data['TITLE'],
									'href' => '#landing' . $data['ID']
								]
							]
						], ['appendMenu' => true]);
						$block->save();
						break 2;
					}
				}
			}
		}
	}
}