- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/block.php
- Класс: BitrixLandingBlock
- Вызов: Block::getMenuHtml
protected function getMenuHtml($data, $manifestNode, $level = 'root')
{
if (!is_array($data) || !isset($manifestNode[$level]))
{
return '';
}
$htmlContent = '';
$rootSelector = $manifestNode[$level];
if (
isset($rootSelector['ulClassName']) &&
isset($rootSelector['liClassName']) &&
isset($rootSelector['aClassName']) &&
is_string($rootSelector['ulClassName']) &&
is_string($rootSelector['liClassName']) &&
is_string($rootSelector['aClassName'])
)
{
foreach ($data as $menuItem)
{
if (
isset($menuItem['text']) && is_string($menuItem['text']) &&
isset($menuItem['href']) && is_string($menuItem['href'])
)
{
if ($menuItem['href'] === 'page:#landing0')
{
$res = Landing::addByTemplate(
$this->getSiteId(),
AssetsPreProcessingTheme::getNewPageTemplate($this->getSiteId()),
[
'TITLE' => $menuItem['text']
]
);
if ($res->isSuccess())
{
$menuItem['href'] = '#landing' . $res->getId();
}
}
if (isset($menuItem['target']) && is_string($menuItem['target']))
{
$target = $menuItem['target'];
}
else
{
$target = '_self';
}
$htmlContent .= '';
$htmlContent .= '';
$htmlContent .= htmlspecialcharsbx($menuItem['text']);
$htmlContent .= '';
if (isset($menuItem['children']))
{
$htmlContent .= $this->getMenuHtml(
$menuItem['children'],
$manifestNode,
'children'
);
}
$htmlContent .= '';
}
}
if ($htmlContent)
{
$htmlContent = '
';
}
else if ($level == 'root')
{
$htmlContent = '
';
}
}
return $htmlContent;
}