comparison inputParser.inc @ 29:394b5df43d1a

Fix some formatting. Add more elements to options. Fix bugs which occured if options where forcibly set.
author Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
date Sun, 30 Sep 2012 03:38:29 +0200
parents d8c7b328899e
children 7b19be62ea94
comparison
equal deleted inserted replaced
28:ca75a735651e 29:394b5df43d1a
29 return $param_value; 29 return $param_value;
30 } 30 }
31 31
32 function getInput($master, $param, $options) 32 function getInput($master, $param, $options)
33 { 33 {
34 $out=''; 34 $out = '';
35 35
36 $lang = $options->getLang(); 36 $lang = $options->getLang();
37 $name=$param->getAttribute("id"); 37 $name = $param->getAttribute("id");
38 $conf = $options->getName(); 38 $conf = $options->getName();
39 if (!$conf) 39 if (!$conf)
40 $conf = $param->getAttribute("default"); 40 $conf = $param->getAttribute("default");
41 41
42 $fname = "${lang}/${conf}.xml"; 42 $confFile = "${lang}/${conf}.xml";
43 cache_time($fname);
44 $config = loadFile($fname);
45
46 $confFile="${lang}/${conf}.xml";
47 if (!file_exists($confFile)) { 43 if (!file_exists($confFile)) {
48 errorPage("Resource not available"); 44 errorPage("Resource not available");
49 } 45 }
46 cache_time($confFile);
50 $doc = new DOMDocument(); 47 $doc = new DOMDocument();
51 $doc->load($confFile); 48 $doc->load($confFile);
52 49
53 $includes=$doc->getElementsByTagName("include"); 50 $toplevel = $doc->getElementsByTagName("toplevel");
54 $recurse=0; 51
52 if(! $toplevel->length) {
53 errorPage("Resource '${conf}' is not available", 500);
54 }
55
56 $includes = $doc->getElementsByTagName("include");
57 $recurse = 0;
55 58
56 while($includes->length>0) { 59 while($includes->length>0) {
57 if(++$recurse>MAX_RECURSE) { 60 if(++$recurse > MAX_RECURSE) {
58 errorPage('Recursion limit exceeded', 500); 61 errorPage('Recursion limit exceeded', 500);
59 } 62 }
60 foreach ($includes as $include) { 63 foreach ($includes as $include) {
61 $src=$include->getAttribute("src"); 64 $src = $include->getAttribute("src");
62 $subdoc = new DOMDocument(); 65 $subdoc = new DOMDocument();
63 $subdoc->load("${lang}/${src}"); 66 $subfile = "${lang}/${src}";
64 $parent=$include->parentNode; 67 $subdoc->load("$subfile");
65 $xml=getElementByTagName($subdoc,"xml"); 68 cache_time($subfile);
69 $parent = $include->parentNode;
70 $xml = getElementByTagName($subdoc,"xml");
66 foreach($xml->childNodes as $child) { 71 foreach($xml->childNodes as $child) {
67 $text=$subdoc->saveXml($child); 72 $text = $subdoc->saveXml($child);
68 $clonedChild=$doc->importNode($child,true); 73 $clonedChild = $doc->importNode($child,true);
69 $parent->insertBefore($clonedChild,$include); 74 $parent->insertBefore($clonedChild,$include);
70 } 75 }
71 $parent->removeChild($include); 76 $parent->removeChild($include);
72 } 77 }
73 $includes=$doc->getElementsByTagName("include"); 78 $includes = $doc->getElementsByTagName("include");
74 } 79 }
75 80
76 $head=getElementByTagName($doc,"head"); 81 $head=getElementByTagName($doc,"head");
77 $title=$head->getAttribute("title"); 82 $title=$head->getAttribute("title");
78 83