_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 ''; } } } 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; } } ?>