• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/subtype/menu.php
  • Класс: BitrixLandingSubtypeMenu
  • Вызов: Menu::redrawStructureMenu
static function redrawStructureMenu(BitrixLandingBlock $block): void
{
	$manifest = $block->getManifest();

	return;

	if (empty($manifest['menu']))
	{
		return;
	}

	// collect all pages top level
	$menu = [];
	$inFolders = [];
	$res = Landing::getList([
		'select' => [
			'ID', 'TITLE', 'FOLDER_ID'
		],
		'filter' => [
			'SITE_ID' => $block->getSiteId(),
			'==AREAS.ID' => null
		]
	]);
	while ($row = $res->fetch())
	{
		if ($row['FOLDER_ID'])
		{
			$inFolders[] = $row;
			continue;
		}
		$menu[$row['ID']] = [
			'text' => $row['TITLE'],
			'href' => '#landing' . $row['ID'],
			'target' => '_self',
			'children' => []
		];
	}

	// collect pages on folder
	if ($inFolders)
	{
		foreach ($inFolders as $row)
		{
			if (isset($menu[$row['FOLDER_ID']]))
			{
				$menu[$row['FOLDER_ID']]['children'][] = [
					'text' => $row['TITLE'],
					'href' => '#landing' . $row['ID'],
					'target' => '_self',
					'children' => []
				];
			}
		}
	}

	// save new menu
	foreach ($manifest['menu'] as $selector => $foo)
	{
		$block->updateNodes([
			$selector => [
				array_values($menu)
			]
		]);
	}
	$block->save();
}