*/ /** * Dieses File enthaelt Hilfsklassen zur Anzeige des CMS-Menues * * mit drawSubmenu($id) wird das enstprechende Menue gezeichnet. */ require_once(dirname(__FILE__).'/../include/functions.inc.php'); require_once(dirname(__FILE__).'/../include/content.class.php'); /** * Zeichnet einen Menueeintrag aus dem CMS System * * @param $content_id */ function drawSubmenu($content_id) { global $sprache; $content = new content(); $sprache = getSprache(); $arr = $content->getMenueArray($content_id, $sprache, true); foreach ($arr as $row) { drawEntry($row); } } /** * Prueft ob der Menueeintrag Submenues hat * * @param $item Menue Array * @return boolean */ function EntryHasChilds($item) { foreach($item as $row) { if(is_array($row) && isset($row['name'])) return true; } return false; } /** * Zeichnet den Menueeintrag samt Untermenues * @param $item Menue Array */ function drawEntry($item) { if(EntryHasChilds($item)) { echo '   '; if($item['template']=='include') IncludeMenuAddon($item['content_id']); elseif($item['template']=='redirect') Redirect($item['content_id'], $item['name']); else DrawLink($item['link'], 'content', $item['name'], $item['content_id']); echo ' '; foreach($item as $row) { if(is_array($row) && isset($row['name'])) { drawEntry($row); } } echo '
'; } else { echo '   '; if($item['template']=='include') IncludeMenuAddon($item['content_id']); elseif($item['template']=='redirect') Redirect($item['content_id'], $item['name']); else DrawLink($item['link'],'content',$item['name']); echo ' '; } } /** * Zeichnet einen normalen Menue Link * @param $link URL * @param $target Target * @param $name Anzeigename * @param $content_id Wenn die Content_id uebergeben wird, oeffnet der Klick das Submenu */ function DrawLink($link, $target, $name, $content_id=null) { if($target=='') $target='content'; if(!is_null($content_id)) $class = 'class="MenuItem" onClick="js_toggle_container(\'Content'.$content_id.'\');"'; else $class='class="Item"'; echo 'menu item '.$name.''; } /** * Redirects sind Links Seiten ausserhalb des CMS * die URL kann Variablen enthalten. Diese werden hier ersetzt. * Danach wird der Link angezeigt. * * @param $content_id ContentID des Redirects * @param $name Anzeigename des Links */ function Redirect($content_id, $name) { global $sprache; $content = new content(); $content->getContent($content_id, $sprache, null, true, true); $xml = new DOMDocument(); if($content->content!='') { $xml->loadXML($content->content); } if($xml->getElementsByTagName('url')->item(0)) $url = $xml->getElementsByTagName('url')->item(0)->nodeValue; else $url=''; //Variablen Ersetzen foreach($_REQUEST as $key=>$value) { $url = str_replace('$'.$key,addslashes($value),$url); } if($xml->getElementsByTagName('target')->item(0)) $target = $xml->getElementsByTagName('target')->item(0)->nodeValue; else $target=''; DrawLink($url, $target, $name); } /** * Bei Content mit Include Templates wird * das entsprechende Menu-Addon geladen und inkludiert * * @param $content_id */ function IncludeMenuAddon($content_id) { global $sprache; $content = new content(); $content->getContent($content_id, $sprache, null, true, true); $xml = new DOMDocument(); if($content->content!='') { $xml->loadXML($content->content); } if($xml->getElementsByTagName('url')->item(0)) $url = $xml->getElementsByTagName('url')->item(0)->nodeValue; else $url=''; if($url!='') { DrawLink('#open','_self',$content->titel,$content_id); echo '
'; include(dirname(__FILE__).'/menu/'.$url); echo '
'; } }