Mercurial > SimpleWebPresenter
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 5:18aafb1a8986 | 6:6c0162497d56 |
|---|---|
| 1 <?php | 1 <?php |
| 2 define(DEBUG,0); | |
| 3 if (DEBUG) { | |
| 4 error_reporting(E_ALL); | |
| 5 ini_set("display_errors", 1); | |
| 6 } | |
| 7 | |
| 8 | |
| 2 include 'php/cache_check.inc'; | 9 include 'php/cache_check.inc'; |
| 3 include 'php/accept-language.inc'; | 10 include 'php/accept-language.inc'; |
| 4 include 'php/filters.inc'; | 11 include 'php/filters.inc'; |
| 5 include 'php/common-functions.inc'; | 12 include 'php/common-functions.inc'; |
| 6 | 13 |
| 26 } | 33 } |
| 27 | 34 |
| 28 $title="Dummy title"; | 35 $title="Dummy title"; |
| 29 | 36 |
| 30 $config=loadFile("${lang}/${name}.xml"); | 37 $config=loadFile("${lang}/${name}.xml"); |
| 31 | |
| 32 function getElementByTagName($obj, $name) { | |
| 33 $elems=$obj->getElementsByTagName($name); | |
| 34 if ($elems->length != 1) { | |
| 35 exit; | |
| 36 } | |
| 37 $elem=$elems->item(0); | |
| 38 return $elem; | |
| 39 } | |
| 40 | 38 |
| 41 $confFile="${lang}/${name}.xml"; | 39 $confFile="${lang}/${name}.xml"; |
| 42 if (!file_exists($confFile)) { | 40 if (!file_exists($confFile)) { |
| 43 errorPage("Resource not available"); | 41 errorPage("Resource not available"); |
| 44 } | 42 } |
| 73 </head> | 71 </head> |
| 74 <body> | 72 <body> |
| 75 <div id="container"> | 73 <div id="container"> |
| 76 '; | 74 '; |
| 77 | 75 |
| 78 foreach ( $files as $file) { | 76 function getParam($param) { |
| 77 $param_type=$param->getAttribute("type"); | |
| 78 $param_value; | |
| 79 if (!$param_type) | |
| 80 $param_type="scalar"; | |
| 81 | |
| 82 if($param_type == "scalar") { | |
| 83 $param_subst=$param->getAttribute("subst"); | |
| 84 $param_value=$param->getAttribute("value"); | |
| 85 if ($param_subst) { | |
| 86 /* | |
| 87 $param_value=preg_replace("/name/", $name, $param_subst); | |
| 88 $param_value=preg_replace('/lang/', $lang, $param_value); | |
| 89 */ | |
| 90 } | |
| 91 } | |
| 92 elseif($param_type == "array") { | |
| 93 $params=$param->getElementsByTagName("param"); | |
| 94 $param_value=array(); | |
| 95 foreach ($param->childNodes as $param) { | |
| 96 if ($param->nodeType == XML_ELEMENT_NODE) | |
| 97 { | |
| 98 array_push($param_value, getParam($param)); | |
| 99 } | |
| 100 } | |
| 101 } | |
| 102 return $param_value; | |
| 103 } | |
| 104 | |
| 105 foreach ($files as $file) { | |
| 79 $src=$file->getAttribute("src"); | 106 $src=$file->getAttribute("src"); |
| 80 $file_content=loadFile("${lang}/${src}"); | 107 $file_content=loadFile("${lang}/${src}"); |
| 81 if(floatval($file_content)<0) { | 108 if(floatval($file_content)<0) { |
| 82 errorPage("Resource not found '${lang}/${src}'"); | 109 errorPage("Resource not found '${lang}/${src}'"); |
| 83 } | 110 } |
| 85 $filters=$file->getElementsByTagName("filter"); | 112 $filters=$file->getElementsByTagName("filter"); |
| 86 foreach($filters as $filter) { | 113 foreach($filters as $filter) { |
| 87 $func=$filter->getAttribute("function"); | 114 $func=$filter->getAttribute("function"); |
| 88 $params=$filter->getElementsByTagName("param"); | 115 $params=$filter->getElementsByTagName("param"); |
| 89 $callString="\$file_content=${func}(\$file_content"; | 116 $callString="\$file_content=${func}(\$file_content"; |
| 90 foreach ($params as $param) { | 117 $param_values=array(); |
| 91 $param_subst=$param->getAttribute("subst"); | 118 $i=0; |
| 92 $param_value=$param->getAttribute("value"); | 119 foreach ($filter->childNodes as $param) { |
| 93 if ($param_subst) { | 120 if ($param->nodeType == XML_ELEMENT_NODE) |
| 94 $param_value=preg_replace("/name/", $name, $param_subst); | 121 { |
| 95 $param_value=preg_replace('/lang/', $lang, $param_value); | 122 $param_value[$i]=getParam($param); |
| 96 } | 123 $callString.=",\$param_value[$i]"; |
| 97 $callString.=",\"${param_value}\""; | 124 $i++; |
| 125 } | |
| 98 } | 126 } |
| 99 $callString.=");"; | 127 $callString.=");"; |
| 100 eval($callString); | 128 eval($callString); |
| 101 } | 129 } |
| 102 $out.= $file_content; | 130 $out.= $file_content; |
