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.="&amp;";
-	 	 $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 .= "&amp;";
+    $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}&amp;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;