9 function GetAppConfig($Cu, $filename) {
11 if (empty($Cu) || empty($filename)) {
12 throw new Exception(
"Missing Parameters");
15 $appfile =
"/home/" . strtolower($Cu) .
"/public_html/{$filename}";
16 if (!file_exists($appfile) || !is_readable($appfile)) {
17 throw new Exception(
"Appconfig $appfile not found");
20 $appconfig = file_get_contents($appfile);
22 # file needs to be stored as valid XML, including HTMLEntity encoding of 26 }
catch (Exception $e) {
45 function GetAppMenu($Cu, $filename) {
47 $appconfig = GetAppConfig($Cu, $filename);
48 $apparray = unserialize_xml($appconfig,
'xmlclean');
49 $appmenu = HCU_array_key_value(
'menu',$apparray);
51 $rawmenu = substr($appconfig,0,stripos($appconfig,
'</menu>'));
52 $rawmenu = substr($rawmenu,stripos($appconfig,
'<menu>')+6);
59 function unserialize_xml($input, $callback =
null, $recurse =
false)
70 $data = ((!$recurse) && is_string($input))? simplexml_load_string($input): $input;
72 if ($data instanceof SimpleXMLElement) $data = (array) $data;
74 if (is_array($data))
foreach ($data as &$item) $item = unserialize_xml($item, $callback,
true);
76 return (!is_array($data) && is_callable($callback))? call_user_func($callback, $data): $data;
79 function xmlclean($data) {
80 return htmlentities($data, ENT_NOQUOTES | ENT_XML1,
'UTF-8', FALSE);