# HG changeset patch # User Tom Fredrik "BFG" Klaussen # Date 1348969109 -7200 # Node ID 394b5df43d1ae5b1976a3e117346e49b440f629a # Parent ca75a735651e53ff849931c4d33e6366a7bda79f Fix some formatting. Add more elements to options. Fix bugs which occured if options where forcibly set. diff -r ca75a735651e -r 394b5df43d1a Options.inc --- 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; + } } } } diff -r ca75a735651e -r 394b5df43d1a inputParser.inc --- 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");