NestedMenuParser

From Zaori
div container
	div portal
		h3 header
		div body
			ul
				li
				li
				li
	div portal
		h3 header
		div body
			ul
				li
				li
				li

...

div container (not part)
	ul menu
		li menuitem
			span header
			ul submenu
				li ...
		li menuitem
			span link
		li menuitem
			span link

...


* SEARCH
* Navigation
** mainpage|mainpage-description 
** special:allpages|Page index 
** recentchanges-url|recentchanges 
** randompage-url|randompage 
** special:version|Version information
* Other wikis
** compendium-link|Compendium
** test-link|Test wiki
** Numbered versions
*** link|1.19
*** link|1.21
*** link|1.22
* TOOLBOX 
* LANGUAGES

/* parse and print navigation elements as a series of nested lists */
function renderNavigation ( $navigationData, $nestDepth = 2, $doToolbox = false, $doLanguages = false, $doSearch = false ) {
	parse data
	add toolbox, languages, search if needed
	
	print data to appropriate nesting level
}



create new block
$prevline = 0 #indentation level
foreach line
	if indent > $prevline && <= maxdepth
		new block
		$lineisstart = true
		$prevline++
	if indent < $prevline
		$prevline--
		close last block
	do line
close block