Mercurial > SimpleWebPresenter
diff index.php @ 6:6c0162497d56
Improved error reporting, and support for multilevel params.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Fri, 20 May 2011 22:28:03 +0200 |
| parents | 18aafb1a8986 |
| children | 350a8c63bd14 |
line wrap: on
line diff
--- a/index.php Fri May 20 13:25:53 2011 +0200 +++ b/index.php Fri May 20 22:28:03 2011 +0200 @@ -1,4 +1,11 @@ <?php +define(DEBUG,0); +if (DEBUG) { + error_reporting(E_ALL); + ini_set("display_errors", 1); +} + + include 'php/cache_check.inc'; include 'php/accept-language.inc'; include 'php/filters.inc'; @@ -29,15 +36,6 @@ $config=loadFile("${lang}/${name}.xml"); -function getElementByTagName($obj, $name) { - $elems=$obj->getElementsByTagName($name); - if ($elems->length != 1) { - exit; - } - $elem=$elems->item(0); - return $elem; -} - $confFile="${lang}/${name}.xml"; if (!file_exists($confFile)) { errorPage("Resource not available"); @@ -75,7 +73,36 @@ <div id="container"> '; -foreach ( $files as $file) { +function getParam($param) { + $param_type=$param->getAttribute("type"); + $param_value; + if (!$param_type) + $param_type="scalar"; + + if($param_type == "scalar") { + $param_subst=$param->getAttribute("subst"); + $param_value=$param->getAttribute("value"); + if ($param_subst) { + /* + $param_value=preg_replace("/name/", $name, $param_subst); + $param_value=preg_replace('/lang/', $lang, $param_value); + */ + } + } + elseif($param_type == "array") { + $params=$param->getElementsByTagName("param"); + $param_value=array(); + foreach ($param->childNodes as $param) { + if ($param->nodeType == XML_ELEMENT_NODE) + { + array_push($param_value, getParam($param)); + } + } + } + return $param_value; +} + +foreach ($files as $file) { $src=$file->getAttribute("src"); $file_content=loadFile("${lang}/${src}"); if(floatval($file_content)<0) { @@ -87,14 +114,15 @@ $func=$filter->getAttribute("function"); $params=$filter->getElementsByTagName("param"); $callString="\$file_content=${func}(\$file_content"; - foreach ($params as $param) { - $param_subst=$param->getAttribute("subst"); - $param_value=$param->getAttribute("value"); - if ($param_subst) { - $param_value=preg_replace("/name/", $name, $param_subst); - $param_value=preg_replace('/lang/', $lang, $param_value); - } - $callString.=",\"${param_value}\""; + $param_values=array(); + $i=0; + foreach ($filter->childNodes as $param) { + if ($param->nodeType == XML_ELEMENT_NODE) + { + $param_value[$i]=getParam($param); + $callString.=",\$param_value[$i]"; + $i++; + } } $callString.=");"; eval($callString);
