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;