Mercurial > SimpleWebPresenter
changeset 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 |
| files | cache_check.inc common-functions.inc filters.inc index.php |
| diffstat | 4 files changed, 71 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/cache_check.inc Fri May 20 13:25:53 2011 +0200 +++ b/cache_check.inc Fri May 20 22:28:03 2011 +0200 @@ -1,6 +1,11 @@ <?php +if (DEBUG) + var_dump($_SERVER); + +$HTTP_IF_MODIFIED_SINCE=$_SERVER['HTTP_IF_MODIFIED_SINCE']; $if_modified_since = preg_replace('/;.*$/', '', $HTTP_IF_MODIFIED_SINCE); +$SCRIPT_FILENAME=$_SERVER['SCRIPT_FILENAME']; $mtime = filemtime($SCRIPT_FILENAME); $gmdate_mod = gmdate('D, d M Y H:i:s', $mtime) . ' GMT';
--- a/common-functions.inc Fri May 20 13:25:53 2011 +0200 +++ b/common-functions.inc Fri May 20 22:28:03 2011 +0200 @@ -51,4 +51,13 @@ } return $out; } + +function getElementByTagName($obj, $name) { + $elems=$obj->getElementsByTagName($name); + if ($elems->length != 1) { + exit; + } + $elem=$elems->item(0); + return $elem; +} ?> \ No newline at end of file
--- a/filters.inc Fri May 20 13:25:53 2011 +0200 +++ b/filters.inc Fri May 20 22:28:03 2011 +0200 @@ -6,18 +6,23 @@ $pattern = "/<li id=\"${name}\"\s?([^>]*)>/is"; $replacement = "<li id=\"${name}\" class=\"active\" $1>"; $output= preg_replace($pattern, $replacement, $input); - + $pattern = '/<li id="([^"]+)"\s?([^>]*)>(.*?)<\/li>/is'; - $replacement = "<li id=\"\$1\" \$2><a href=\"".genUrl(array( "name" => "$1" ))."\">\$3</a></li>"; - $output=preg_replace($pattern, $replacement, $output); + $replacement = "<li id=\"\$1\" \$2><a href=\"%URL-$1%\">\$3</a></li>"; + $output=preg_replace_callback($pattern, + create_function( + '$matches', + 'return "<li id=\"$matches[1]\" $matches[2]><a href=\"".genUrl(array("name" => $matches[1]))."\">$matches[3]</a></li>";' + ), + $output); return $output; } -function addLangBar($input) { +function addLangBar($input, $languages) { $name=$GLOBALS['name']; $lang=$GLOBALS['lang']; - $languages = array("no","en"); +// $languages = array("no","en"); $langbar='<ul id="language-select">'; foreach($languages as $l) { @@ -25,7 +30,7 @@ $langbar.= " <li class=\"${l}\">"; if ($active) - $langbar.='<a href="'.genUrl(array( lang => $l)).'">'; + $langbar.='<a href="'.genUrl(array( 'lang' => $l)).'">'; $langbar.= " <img src=\"http://dev.bfginvest.no/php/flag.php?lang=${l}&active=${active}\" width=\"20\" height=\"16\" alt=\"Norsk versjon - inaktiv\" title=\"Norsk\"/>";
--- 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);
