Mercurial > SimpleWebPresenter
changeset 33:511b6514823f
Remove more globals.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Thu, 04 Oct 2012 21:05:11 +0200 |
| parents | 7b19be62ea94 |
| children | ca76d31b7d48 |
| files | Options.inc common-functions.inc filters.inc index.php inputParser.inc |
| diffstat | 5 files changed, 121 insertions(+), 90 deletions(-) [+] |
line wrap: on
line diff
--- a/Options.inc Thu Oct 04 19:46:11 2012 +0200 +++ b/Options.inc Thu Oct 04 21:05:11 2012 +0200 @@ -7,6 +7,7 @@ private $acceptedLanguages = array(); private $inputDefaults = array(); private $cache; + private $urlParams; function getDefaultLang() { @@ -23,6 +24,16 @@ $this->lang = $lang; } + function setUrlParams($urlParams) + { + $this->urlParams = $urlParams; + } + + function getUrlParams() + { + return $this->urlParams; + } + function setName($name) { $this->name = $name;
--- a/common-functions.inc Thu Oct 04 19:46:11 2012 +0200 +++ b/common-functions.inc Thu Oct 04 21:05:11 2012 +0200 @@ -3,71 +3,71 @@ function loadFile($sFilename, $sCharset = 'UTF-8') { - if (floatval(phpversion()) >= 4.3) { - if (!file_exists($sFilename)) return -3; - $sData = file_get_contents($sFilename); - } else { - if (!file_exists($sFilename)) return -3; - $rHandle = fopen($sFilename, 'r'); - if (!$rHandle) return -2; - - $sData = ''; - while(!feof($rHandle)) - $sData .= fread($rHandle, filesize($sFilename)); - fclose($rHandle); + if (floatval(phpversion()) >= 4.3) { + if (!file_exists($sFilename)) + return -3; + $sData = file_get_contents($sFilename); + } + else { + if (!file_exists($sFilename)) + return -3; + $rHandle = fopen($sFilename, 'r'); + if (!$rHandle) + return -2; + + $sData = ''; + while(!feof($rHandle)) + $sData .= fread($rHandle, filesize($sFilename)); + fclose($rHandle); + } + if ($sEncoding = mb_detect_encoding($sData, 'auto', true) != $sCharset) { + if ($sEncoding != 1) { + $sData = mb_convert_encoding($sData, $sCharset, $sEncoding); } - if ($sEncoding = mb_detect_encoding($sData, 'auto', true) != $sCharset) { - if ($sEncoding != 1) { - $sData = mb_convert_encoding($sData, $sCharset, $sEncoding); - } - } - return $sData; + } + return $sData; } -function errorPage($errorText, $errorCode=403) +function errorPage($errorText, $errorCode = 403) { header(StatusCodes::httpHeaderFor($errorCode)); print "<div id=\"page\"><h1>${errorText}</h1></div>"; exit; } -function genUrl($keys=array()) { - $out="?"; - $first=1; - $URL_PARAMS=$GLOBALS['URL_PARAMS']; - $new_params=array(); - foreach($URL_PARAMS as $param) { - $new_params[$param]=$GLOBALS[$param]; - } - foreach($keys as $param => $val) { - $new_params[$param]=$val; - } - foreach($new_params as $param => $val) { - if($first) - $first=0; - else - $out.="&"; - $out.=urlencode($param).'='.urlencode($val); - } - return $out; +function genUrl($urlParams, $keys = array()) { + $out = "?"; + $first = 1; + $new_params = $urlParams; + foreach($keys as $param => $val) { + $new_params[$param] = $val; + } + foreach($new_params as $param => $val) { + if($first) + $first = 0; + else + $out .= "&"; + $out .= urlencode($param) . '=' . urlencode($val); + } + return $out; } function getElementByTagName($obj, $name) { - $elems=$obj->getElementsByTagName($name); + $elems = $obj->getElementsByTagName($name); if ($elems->length != 1) { exit; } - $elem=$elems->item(0); + $elem = $elems->item(0); return $elem; } function getXmlContent($node) { - $text=$node->ownerDocument->saveXml($node); - $pattern="/^<".$node->tagName."[^>]*>/is"; - $text=preg_replace($pattern, '' , $text); - $pattern='/<\/'.$node->tagName.'[^>]*>$/is'; - $text=preg_replace($pattern, '' , $text); + $text = $node->ownerDocument->saveXml($node); + $pattern = "/^<" . $node->tagName."[^>]*>/is"; + $text = preg_replace($pattern, '' , $text); + $pattern = '/<\/' . $node->tagName . '[^>]*>$/is'; + $text = preg_replace($pattern, '' , $text); return $text; }
--- a/filters.inc Thu Oct 04 19:46:11 2012 +0200 +++ b/filters.inc Thu Oct 04 21:05:11 2012 +0200 @@ -1,52 +1,69 @@ <?php -function activeNav($input) +function activeNav($input, $options) { - $name=$GLOBALS['name']; - $lang=$GLOBALS['lang']; - $pattern = "/<li id=\"${name}\"\s?([^>]*)>/is"; - $replacement = "<li id=\"${name}\" class=\"active\" $1>"; - $output= preg_replace($pattern, $replacement, $input); + $name = $GLOBALS['name']; + $lang = $GLOBALS['lang']; + $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=\"%URL-$1%\">\$3</a></li>"; + + $opt = 'array('; + $start = True; - $pattern = '/<li id="([^"]+)"\s?([^>]*)>(.*?)<\/li>/is'; - $replacement = "<li id=\"\$1\" \$2><a href=\"%URL-$1%\">\$3</a></li>"; - $output=preg_replace_callback($pattern, + foreach($options->getUrlParams() as $param) { + $value = $GLOBALS[$param]; + if ($start) { + $start = False; + $opt .= "\"${param}\" => \"${value}\""; + } + else { + $opt .= ", \"${param}\" => \"${value}\""; + } + } + $opt .= ')'; + + $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>";' + 'return "<li id=\"$matches[1]\" $matches[2]><a href=\"" . genUrl(' . $opt . ', array("name" => $matches[1])) . "\">$matches[3]</a></li>";' ), $output); - return $output; + return $output; } -function addLangBar($input, $languages) { - $name=$GLOBALS['name']; - $lang=$GLOBALS['lang']; -// $languages = array("no","en"); - $langbar='<ul id="language-select">'; +function addLangBar($input, $languages) +{ + $name=$GLOBALS['name']; + $lang=$GLOBALS['lang']; + // $languages = array("no","en"); + $langbar='<ul id="language-select">'; - foreach($languages as $l) { - $active=($l == $lang)?0:1; - $langbar.= " + foreach($languages as $l) { + $active = ($l == $lang) ? 0 : 1; + $langbar.= " <li class=\"${l}\">"; - if ($active) - $langbar.='<a href="'.genUrl(array( 'lang' => $l)).'">'; + if ($active) + $langbar .= '<a href="'.genUrl(array( 'lang' => $l)) . '">'; - $langbar.= " + $langbar .= " <img src=\"http://dev.bfginvest.no/php/flag.php?lang=${l}&active=${active}\" width=\"20\" height=\"16\" alt=\"Norsk versjon - inaktiv\" title=\"Norsk\"/>"; - if ($active) - $langbar.="</a>"; + if ($active) + $langbar .= "</a>"; - $langbar.= " + $langbar .= " </li> "; + + } + $langbar.='</ul>'; + $pattern = '/<ul id="language-select"\/>/'; + $replacement = $langbar; + $output = preg_replace($pattern, $replacement, $input); - } - $langbar.='</ul>'; - $pattern = '/<ul id="language-select"\/>/'; - $replacement = $langbar; - $output=preg_replace($pattern, $replacement, $input); - - return $output; + return $output; } ?> \ No newline at end of file
--- a/index.php Thu Oct 04 19:46:11 2012 +0200 +++ b/index.php Thu Oct 04 21:05:11 2012 +0200 @@ -1,7 +1,7 @@ <?php -define(DEBUG,0); -define(MAX_RECURSE,50); -define(CACHING,1); +define(DEBUG, 0); +define(MAX_RECURSE, 50); +define(CACHING, 1); /* var_dump($_SERVER); @@ -24,14 +24,15 @@ $cache->includeOnce('php/filters.inc'); $cache->includeOnce('php/inputParser.inc'); -$URL_PARAMS = array('name', 'lang'); - $master = new DOMDocument(); $master->load("master.xml"); $options = new Options($master); $options->setCache($cache); +$options->setUrlParams(array('name', 'lang')); +//$URL_PARAMS = array('name', 'lang'); + $lang = $_GET['lang']; if($lang) { $options->setLang($lang);
--- a/inputParser.inc Thu Oct 04 19:46:11 2012 +0200 +++ b/inputParser.inc Thu Oct 04 21:05:11 2012 +0200 @@ -151,20 +151,22 @@ $filters=$file->getElementsByTagName("filter"); foreach($filters as $filter) { - $func=$filter->getAttribute("function"); - $params=$filter->getElementsByTagName("param"); - $callString="\$file_content=${func}(\$file_content"; - $param_values=array(); - $i=0; + $func = $filter->getAttribute("function"); + $params = $filter->getElementsByTagName("param"); + $callString = "\$file_content = ${func}(\$file_content, \$options"; + $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]"; + $param_value[$i] = getParam($param); + $callString .= ",\$param_value[$i]"; $i++; } } - $callString.=");"; + $callString .= ");"; + //print $callString; + //exit; eval($callString); } $out.= $file_content;
