_navData = $navData; $this->_node = $this->_tpl->createDocumentFragment(); $navKeys = array_keys($navData); $firstKey = $navKeys[0]; $this->_firstKey = $firstKey; $this->_prefix = renderNavigationClass:: getNavigationPrefix(); $node = renderNavigationClass:: getNavigationNode($this->_firstKey); if ($node !== false) { $this->_node->appendChild($node); } return $this->_node; } private function getNavigationPrefix() { foreach ($this->_navData[$this->_firstKey][0] as $key => $value) { if (strpos($key, '_') !== false) { return substr($key, 0, strpos($key, '_') + 1); } else { return ''; } } return ''; } private function getNavigationNode($navStart) { if (!isset ($this->_navData[$navStart]) || count($this->_navData [$navStart]) == 0) { return false; } $newNode = $this->_tpl->createElement('ul'); foreach ($this->_navData [$navStart] AS $key => $value) { if ($this->_textsFromConfig) { if (array_key_exists($value [$this->_prefix . 'navId'], $this->_website)) { $navTitle = $this->_website[$value [$this->_prefix . 'navId']]['names']; } else { $navTitle = $this->_langArray ['navi']['site_' . $value [$this->_prefix . 'navId']]; } } else { $navTitle = $value[$this->_prefix . 'navName']; } if ($this->_modrewrite) { $navHref = $value[$this->_prefix . 'navLink']; } else { $navHref = (!isset ($value[$this->_prefix . 'navType']) || (isset ($value[$this->_prefix . 'navType']) && $value[$this->_prefix . 'navType'] === 'html')) ? $value [$this->_prefix . 'navTarget'] : 'javascript:void( 0 );'; } $newLi = $this->_tpl->createElement('li'); $newHref = $this->_tpl->createElement('a'); if (in_array($value[$this->_prefix . 'navId'], $this->_navpath)) { $newHref->setAttributeNode(new DOMAttr ('class', 'active')); } $newHref->appendChild(new DOMText ($navTitle)); $newHref->setAttributeNode(new DOMAttr ('href', $navHref)); if (isset ($value[$this->_prefix . 'navType']) && $value[$this->_prefix . 'navType'] === 'js') { $newHref->setAttributeNode(new DOMAttr ('onclick', $value[$this->_prefix . 'navTarget'])); } $newLi->appendChild($newHref); $sub_node = renderNavigationClass:: getNavigationNode($value[$this->_prefix . 'navId']); if ($sub_node !== false) { $newLi->appendChild($sub_node); } $newNode->appendChild($newLi); } unset ($this->_navData [$navStart]); return $newNode; } }