Frontend\Core\Engine\TemplateModifiers::getSubNavigation PHP Method

getSubNavigation() public static method

NOTE: When supplying more than 1 ID to exclude, the single quotes around the dash-separated list are mandatory.
public static getSubNavigation ( string $type = 'page', integer $pageId, integer $startDepth = 1, integer $endDepth = null, string $excludeIds = null, string $template = '/Core/Layout/Templates/Navigation.html.twig' ) : string
$type string The type of navigation, possible values are: page, footer.
$pageId integer The parent wherefore the navigation should be build.
$startDepth integer The depth to start from.
$endDepth integer The maximum depth that has to be build.
$excludeIds string Which pageIds should be excluded (split them by -).
$template string The template that will be used.
return string
    public static function getSubNavigation($type = 'page', $pageId = 0, $startDepth = 1, $endDepth = null, $excludeIds = null, $template = '/Core/Layout/Templates/Navigation.html.twig')
    {
        // build excludeIds
        if ($excludeIds !== null) {
            $excludeIds = (array) explode('-', $excludeIds);
        }
        // get info about the given page
        $pageInfo = Navigation::getPageInfo($pageId);
        // validate page info
        if ($pageInfo === false) {
            return '';
        }
        // split URL into chunks
        $chunks = (array) explode('/', $pageInfo['full_url']);
        // remove language chunk
        $hasMultiLanguages = FrontendModel::getContainer()->getParameter('site.multilanguage');
        $chunks = $hasMultiLanguages ? (array) array_slice($chunks, 2) : (array) array_slice($chunks, 1);
        if (count($chunks) == 0) {
            $chunks[0] = '';
        }
        // init var
        $parentURL = '';
        // build url
        for ($i = 0; $i < $startDepth - 1; ++$i) {
            $parentURL .= $chunks[$i] . '/';
        }
        // get parent ID
        $parentID = Navigation::getPageId($parentURL);
        try {
            // get HTML
            $return = (string) Navigation::getNavigationHTML($type, $parentID, $endDepth, $excludeIds, (string) $template);
        } catch (Exception $e) {
            return '';
        }
        // return the var
        if ($return != '') {
            return $return;
        }
        // fallback
        return;
    }