Craft\AmNavService::_buildNav PHP Method

_buildNav() private method

Create the navigation based on parent IDs and order.
private _buildNav ( array $nodes, integer $parentId, integer $level = 1 ) : array
$nodes array
$parentId integer
$level integer
return array
    private function _buildNav($nodes, $parentId = 0, $level = 1)
    {
        // Do we have a maximum level?
        if ($this->_parseEnvironment) {
            $maxLevel = $this->_getParam('maxLevel', false);
            if ($maxLevel !== false && $level > $maxLevel) {
                return false;
            }
        }
        $nav = array();
        foreach ($nodes as $node) {
            if ($node['parentId'] == $parentId) {
                // Do additional stuff if we use this function from the front end
                if ($this->_parseEnvironment) {
                    if ($node['enabled'] || $this->_getParam('overrideStatus', false)) {
                        $node['active'] = $this->_isNodeActive($node);
                        $node['hasActiveChild'] = $this->_isChildActive($nodes, $node['id']);
                        $node['url'] = $this->_parseUrl($node);
                    } else {
                        // Skip this node
                        continue;
                    }
                }
                $node['level'] = $level;
                $children = $this->_buildNav($nodes, $node['id'], $level + 1);
                $node['hasChildren'] = $children ? true : false;
                if ($children) {
                    $node['children'] = $children;
                }
                $nav[] = $node;
            }
        }
        return $nav;
    }