XmlSource = $XmlSource; $this->Width = $Width; $this->Height = $Height; $this->SubWidth = $SubWidth; $this->SubHeight = $SubHeight; $this->BackgroundON = $BackgroundON; $this->BackgroundOVER = $BackgroundOVER; $this->ItemBorderColor = $ItemBorderColor; $this->ItemShadowColor = $ItemShadowColor; $this->Border = $Border; $this->Shadow = $Shadow; $this->Direction = $Direction; $this->RootDirectory = $RootDirectory; $this->Instance = $Instance; } /*! @function Show @abstract Prepares output info @result string - menu output code */ function Show() { $items = $this->GetItems(); if (!$items) { $result = 'FlexMenu.PHP Error: XML source structure is corrupted. Please check.'; } else { $itemOffset = ($this->Direction == 1) ? "height".$this->Instance."-1,0" : "0,width".$this->Instance."-1"; //$levelOffset = ($this->Direction == 1) ? "0,width".$this->Instance."-1" : "height".$this->Instance."-1,0"; $levelOffset = ($this->Direction == 1) ? "0,width".$this->Instance."-1,0" : "height".$this->Instance."-1,0"; $result = ' '; } return $result; } /*! @function ParseColor @abstract Convert decimal or string color to hex @param $Color string - Color name @result string - hex value of color */ function ParseColor($Color) { $colorArray = array('aliceblue' => 'f0f8ff', 'antiquewhite' => 'faebd7', 'aqua' => '00ffff', 'aquamarine' => '7fffd4', 'azure' => 'f0ffff', 'beige' => 'f5f5dc', 'bisque' => 'ffe4c4', 'black' => '000000', 'blanchedalmond' => 'ffebcd', 'blue' => '0000ff', 'blueviolet' => '8a2be2', 'brown' => 'a52a2a', 'burlywood' => 'deb887', 'cadetblue' => '5f9ea0', 'chartreuse' => '7fff00', 'chocolate' => 'd2691e', 'coral' => 'ff7f50', 'cornflowerblue' => '6495ed', 'cornsilk' => 'fff8dc', 'crimson' => 'dc143c', 'cyan' => '00ffff', 'darkblue' => '00008b', 'darkcyan' => '008b8b', 'darkgoldenrod' => 'b8860b', 'darkgray' => 'a9a9a9', 'darkgreen' => '006400', 'darkkhaki' => 'bdb76b', 'darkmagenta' => '8b008b', 'darkolivegreen' => '556b2f', 'darkorange' => 'ff8c00', 'darkorchid' => '9932cc', 'darkred' => '8b0000', 'darksalmon' => 'e9967a', 'darkseagreen' => '8fbc8f', 'darkslateblue' => '483d8b', 'darkslategray' => '2f4f4f', 'darkturquoise' => '00ced1', 'darkviolet' => '9400d3', 'deeppink' => 'ff1493', 'deepskyblue' => '00bfff', 'dimgray' => '696969', 'dodgerblue' => '1e90ff', 'firebrick' => 'b22222', 'floralwhite' => 'fffaf0', 'forestgreen' => '228b22', 'fuchsia' => 'ff00ff', 'gainsboro' => 'dcdcdc', 'ghostwhite' => 'f8f8ff', 'gold' => 'ffd700', 'green' => '008000', 'greenyellow' => 'adff2f', 'honeydew' => 'f0fff0', 'hotpink' => 'ff69b4', 'indianred' => 'cd5c5c', 'indigo' => '4b0082', 'ivory' => 'fffff0', 'khaki' => 'f0e68c', 'lavender' => 'e6e6fa', 'lavenerblush' => 'fff0f5', 'lawngreen' => '7cfc00', 'lemonchiffon' => 'fffacd', 'lightblue' => 'add8e6', 'lightcoral' => 'f08080', 'lightcyan' => 'e0ffff', 'lightgoldenrodyellow' => 'fafad2', 'lightgreen' => '90ee90', 'lightgrey' => 'd3d3d3', 'lightpink' => 'ffb6c1', 'lightseagreen' => '20b2aa', 'lightskyblue' => '87cefa', 'lightslategray' => '778899', 'lightsteelblue' => 'b0c4de', 'lightyellow' => 'ffffe0', 'lime' => '00ff00', 'limegreen' => '32cd32', 'linen' => 'faf0e6', 'magenta' => 'ff00ff', 'maroon' => '800000', 'mediumaquamarine' => '66cdaa', 'mediumblue' => '0000cd', 'mediumorchid' => 'ba55d3', 'mediumpurple' => '9370db', 'mediumseagreen' => '3cb371', 'mediumslateblue' => '7b68ee', 'mediumspringgreen' => '00fa9a', 'mediumturquoise' => '48d1cc', 'mediumvioletred' => 'c71585', 'midnightblue' => '191970', 'mintcream' => 'f5fffa', 'mistyrose' => 'ffe4e1', 'moccasin' => 'ffe4b5', 'navajowhite' => 'ffdead','navy' => '000080','oldlace' => 'fdf5e6', 'olive' => '808000','olivedrab' => '6b8e23','orange' => 'ffa500', 'orangered' => 'ff4500','orchid' => 'da70d6','palegoldenrod' => 'eee8aa', 'palegreen' => '98fb98','paleturquoise' => 'afeeee','palevioletred' => 'db7093', 'papayawhip' => 'ffefd5','peachpuff' => 'ffdab9','peru' => 'cd853f', 'pink' => 'ffc0cb','plum' => 'dda0dd','powderblue' => 'b0e0e6', 'purple' => '800080','red' => 'ff0000','rosybrown' => 'bc8f8f', 'royalblue' => '4169e1','saddlebrown' => '8b4513','salmon' => 'fa8072', 'sandybrown' => 'faa460','seagreen' => '2e8b57','seashell' => 'fff5ee', 'sienna' => 'a0522d','silver' => 'c0c0c0','skyblue' => '87ceeb', 'slateblue' => '6a5acd','slategray' => '708090','snow' => 'fffafa', 'springgreen' => '00ff7f','steelblue' => '4682b4','tan' => 'd2b48c', 'teal' => '008080','thistle' => 'd8bfd8','tomato' => 'ff6347', 'turquoise' => '40e0d0','violet' => 'ee82ee','wheat' => 'f5deb3', 'white' => 'ffffff','whitesmoke' => 'f5f5f5','yellow' => 'ffff00', 'yellowgreen' => '9acd32'); $Color = str_replace("#", "", $Color); if (!is_numeric($Color)) { $Color2 = $colorArray[strtolower($Color)]; if ($Color2) { $Color = $Color2; } else { $hexDigitArray = array("A", "B", "C", "D", "E", "F"); for ($i=0;$iXmlSource,0); if (!is_array($data)) { $items = ""; } else { $root_id = $data[0]["meta"]["rootidx"]; $root_nodes = $data[$root_id]["children"]; foreach($root_nodes as $node) { $level = 1; $this->ProcessMenuItem($data[$node], &$level, &$items, $data); } } return $items; } /*! @function ProcessMenuItem @abstract Prepares current menu items info @param $node array - Current node array @param $level integer - Current menu level @param $items string - JS code for menu @param $data array - Array with menu data */ function ProcessMenuItem($node, &$level, &$items, $data) { global $nukeurl; $attributes = $node["attributes"]; if ($attributes["caption"]) { //replace wrong character as xml parser is not able to parse unicode correctly $umlaute_false = array("Ä","ä","Ö","ö","Ü","ü","ß","ê","á","€","„","‘","é","è"); $umlaute_true = array("Ä","ä","Ö","ö","Ü","ü","ß","â","á","€",""",""","é","è"); $caption = str_replace($umlaute_false, $umlaute_true, $attributes["caption"]); /*If (strlen($caption) > 25){ $caption = substr($caption, 0, 25) . " ..."; }*/ $level ++; $link = ""; $target = ""; if (isset($attributes["link"])) if (substr(addslashes($attributes["link"]),0,7) == "http://") { $link = ', url:"'.addslashes($attributes["link"]).'"'; }else{ $link = ', url:" ' . $nukeurl .'/'.addslashes($attributes["link"]).'"'; } if (isset($attributes["target"])) $target = ', target:"'.addslashes($attributes["target"]).'"'; //$items .= ','.$this->SetOffset($level).'{code:"'.addslashes($attributes["caption"]).'"'.$link.$target; $items .= ','.$this->SetOffset($level).'{code:"'.addslashes($caption).'"'.$link.$target; if (is_array($node["children"])) { $offset = ($level > 2) ? "subwidth".$this->Instance."-1" : "0"; $items .= ",\r\n".$this->SetOffset($level)."sub:[\r\n\t".$this->SetOffset($level).'{"size":[subheight'.$this->Instance.',subwidth'.$this->Instance.'], "itemoff":[subheight'.$this->Instance.'-1,0], "leveloff":[0,'.$offset.'], "style":STYLE'.$this->Instance.'}'; foreach($node["children"] as $subnode) { $this->ProcessMenuItem($data[$subnode], &$level, &$items, $data); } $items .= "]"; } $items .= "}\n"; $level --; } } /*! @function SetOffset @abstract Makes offset depends on menu level @param $level integer - Menu level @result string - Formatted string with TAB symbols */ function SetOffset($level) { $offset = str_pad("",$level,"\t"); return $offset; } } ?>
Start

Startbild