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");