$navItem) { if ($navID == $siteID && $depth === false) { self::$activeNavID = $navItem['navID']; self::$title = $navItem['navTitle']; self::$headline = $navItem['navHeadline']; self::initKeyVisual($navItem['navKeyVisual']); self::initContent($navItem['navContent']); self::buildNavigationPath(); break; } } } /** * @param string $navKeyVisual */ protected static function initKeyVisual($navKeyVisual) { if (is_null($navKeyVisual)) { return; } if (is_array(json_decode($navKeyVisual, true))) { self::$keyVisual = json_decode($navKeyVisual, true); } } /** * @param string $navContents */ protected static function initContent($navContents) { if (is_null($navContents)) { return; } if (is_array(json_decode($navContents, true))) { self::$contents = json_decode($navContents, true); } } protected static function buildNavigationPath() { $navStart = $navStartPath[] = self::$activeNavID; while ($navStart !== '0' && !is_null($navStart)) { $navStart = $navStartPath[] = self::$data[$navStart]['navStart']; } array_pop($navStartPath); self::$navigationPath = array_reverse($navStartPath); } protected static function initFrontend(array $routeParts) { $navStart = 0; foreach ($routeParts as $navLink) { foreach (self::$data as $navID => $navItem) { if ($navItem['navStart'] == $navStart && $navItem['navLink'] == $navLink) { $navStart = $navItem['navID']; self::$navigationPath[] = self::$activeNavID = $navItem['navID']; self::$title = $navItem['navTitle']; self::initKeyVisual($navItem['navKeyVisual']); self::$headline = $navItem['navHeadline']; self::initContent($navItem['navContent']); } } } } /** * @return array */ public static function getNavigationPath() { return self::$navigationPath; } /** * @return int */ public static function getActiveNavID() { return self::$activeNavID; } /** * @return string */ public static function getTitle() { return self::$title; } /** * @return array */ public static function getKeyVisual() { return self::$keyVisual; } /** * @return string */ public static function getHeadline() { return self::$headline; } /** * @return array */ public static function getContents() { return self::$contents; } /** * @return array */ public static function getData() { return self::$data; } }