Mercurial > SimpleWebPresenter
changeset 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 | ca75a735651e |
| children | 647b72603b7d |
| files | Options.inc inputParser.inc |
| diffstat | 2 files changed, 38 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/Options.inc Sun Sep 30 03:36:02 2012 +0200 +++ b/Options.inc Sun Sep 30 03:38:29 2012 +0200 @@ -5,6 +5,7 @@ private $lang; private $name; private $acceptedLanguages = array(); + private $inputDefaults = array(); function getDefaultLang() { @@ -31,6 +32,16 @@ return $this->name; } + function getAcceptedLanguages() + { + return $this->acceptedLanguages; + } + + function getInputDefault($key) + { + return $this->inputDefaults[$key]; + } + function __construct($baseDocument) { $params = $baseDocument->getElementsByTagName("param"); @@ -52,6 +63,11 @@ $parent = $param->parentNode; $parent->removeChild($param); } + elseif ($param->getAttribute("type") == "input") { + $id = $param->getAttribute("id"); + $default = $param->getAttribute("default"); + $this->inputDefaults[$id] = $default; + } } } }
--- a/inputParser.inc Sun Sep 30 03:36:02 2012 +0200 +++ b/inputParser.inc Sun Sep 30 03:38:29 2012 +0200 @@ -31,46 +31,51 @@ function getInput($master, $param, $options) { - $out=''; + $out = ''; $lang = $options->getLang(); - $name=$param->getAttribute("id"); + $name = $param->getAttribute("id"); $conf = $options->getName(); if (!$conf) $conf = $param->getAttribute("default"); - $fname = "${lang}/${conf}.xml"; - cache_time($fname); - $config = loadFile($fname); - - $confFile="${lang}/${conf}.xml"; + $confFile = "${lang}/${conf}.xml"; if (!file_exists($confFile)) { errorPage("Resource not available"); } + cache_time($confFile); $doc = new DOMDocument(); $doc->load($confFile); - $includes=$doc->getElementsByTagName("include"); - $recurse=0; + $toplevel = $doc->getElementsByTagName("toplevel"); + + if(! $toplevel->length) { + errorPage("Resource '${conf}' is not available", 500); + } + + $includes = $doc->getElementsByTagName("include"); + $recurse = 0; while($includes->length>0) { - if(++$recurse>MAX_RECURSE) { + if(++$recurse > MAX_RECURSE) { errorPage('Recursion limit exceeded', 500); } foreach ($includes as $include) { - $src=$include->getAttribute("src"); + $src = $include->getAttribute("src"); $subdoc = new DOMDocument(); - $subdoc->load("${lang}/${src}"); - $parent=$include->parentNode; - $xml=getElementByTagName($subdoc,"xml"); + $subfile = "${lang}/${src}"; + $subdoc->load("$subfile"); + cache_time($subfile); + $parent = $include->parentNode; + $xml = getElementByTagName($subdoc,"xml"); foreach($xml->childNodes as $child) { - $text=$subdoc->saveXml($child); - $clonedChild=$doc->importNode($child,true); + $text = $subdoc->saveXml($child); + $clonedChild = $doc->importNode($child,true); $parent->insertBefore($clonedChild,$include); } $parent->removeChild($include); } - $includes=$doc->getElementsByTagName("include"); + $includes = $doc->getElementsByTagName("include"); } $head=getElementByTagName($doc,"head");
