Mercurial > SimpleWebPresenter
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 |
