/** * @param FrontendController $fec * @param $navEntries * @param $activeRouteID * @param null $parentNavID * @return array */ private function generateNavigationReal($fec, $navEntries, $activeRouteID, $parentNavID = null) { $navArr = array(); foreach ($navEntries as $n) { if ($n->parent_navigation_entry_IDFK != $parentNavID) { continue; } if ($n->route_IDFK == $activeRouteID) { $this->getActiveRoutes($fec->getDB(), $n->ID, $n->navigation_IDFK, $fec->getLocaleHandler()->getLanguage()); } $n->subNav = $this->generateNavigationReal($fec, $navEntries, $activeRouteID, $n->ID); $navArr[] = $n; } return $navArr; }
/** * @param FrontendController $fec * @param $navEntries * @param $activeRouteID * @param null $parentNavID * @return array */ private function generateNavigationReal($fec, $navEntries, $activeRouteID, $parentNavID = null) { $navArr = array(); foreach ($navEntries as $n) { if ($n->parent_navigation_entry_IDFK != $parentNavID) { continue; } if ($activeRouteID !== null && $n->route_IDFK == $activeRouteID) { $this->getActiveRoutes($fec->getDB(), $n->ID, $n->navigation_IDFK, $fec->getLocaleHandler()->getLanguage()); } // Call HOOK HERE! $n->subNav = array(); $subNavLoadedEvent = new SubNavLoadedEvent($n, in_array($n->route_IDFK, $this->activeRoutes), $this->activeRoutes, $this->settings); $fec->getEventDispatcher()->dispatch($this->identifier . '.beforeSubNavLoaded', $subNavLoadedEvent); $n->subNav += $this->generateNavigationReal($fec, $navEntries, $activeRouteID, $n->ID); $fec->getEventDispatcher()->dispatch($this->identifier . '.afterSubNavLoaded', $subNavLoadedEvent); $n->active = in_array($n->route_IDFK, $this->activeRoutes); $navArr[] = $n; } return $navArr; }