]> git.mxchange.org Git - friendica.git/blobdiff - include/template_processor.php
Typo in notifier.
[friendica.git] / include / template_processor.php
old mode 100755 (executable)
new mode 100644 (file)
index 8671587..4088dda
                var $debug=false;
                
                private function _preg_error(){
+                       
                        switch(preg_last_error()){
                            case PREG_INTERNAL_ERROR: echo('PREG_INTERNAL_ERROR'); break;
                            case PREG_BACKTRACK_LIMIT_ERROR: echo('PREG_BACKTRACK_LIMIT_ERROR'); break;
                            case PREG_RECURSION_LIMIT_ERROR: echo('PREG_RECURSION_LIMIT_ERROR'); break;
                            case PREG_BAD_UTF8_ERROR: echo('PREG_BAD_UTF8_ERROR'); break;
-                           case PREG_BAD_UTF8_OFFSET_ERROR: echo('PREG_BAD_UTF8_OFFSET_ERROR'); break;
+// This is only valid for php > 5.3, not certain how to code around it for unit tests
+//                         case PREG_BAD_UTF8_OFFSET_ERROR: echo('PREG_BAD_UTF8_OFFSET_ERROR'); break;
                            default:
                                        //die("Unknown preg error.");
                                        return;
@@ -61,7 +63,7 @@
                                if ($b[0]=="$") $b =  $this->_get_var($b);
                                $val = ($a == $b);
                        } else if (strpos($args[2],"!=")>0){
-                               list($a,$b) = explode("!=",$args[2]);
+                               list($a,$b) = array_map("trim", explode("!=",$args[2]));
                                $a = $this->_get_var($a);
                                if ($b[0]=="$") $b =  $this->_get_var($b);
                                $val = ($a != $b);
                 */
                private function _replcb_for($args){
                        $m = array_map('trim', explode(" as ", $args[2]));
-                       list($keyname, $varname) = explode("=>",$m[1]);
-                       if (is_null($varname)) { $varname=$keyname; $keyname=""; }
+                       $x = explode("=>",$m[1]);
+                       if (count($x) == 1) {
+                               $varname = $x[0];
+                               $keyname = "";
+                       } else {
+                               list($keyname, $varname) = $x;
+                       }
                        if ($m[0]=="" || $varname=="" || is_null($varname)) die("template error: 'for ".$m[0]." as ".$varname."'") ;
                        //$vals = $this->r[$m[0]];
                        $vals = $this->_get_var($m[0]);
@@ -91,7 +98,7 @@
                                $this->_push_stack();
                                $r = $this->r;
                                $r[$varname] = $v;
-                               if ($keyname!='') $r[$keyname] = $k;
+                               if ($keyname!='') $r[$keyname] = (($k === 0) ? '0' : $k);
                                $ret .=  $this->replace($args[3], $r);
                                $this->_pop_stack();
                        }
                        return $ret;
                        
                }
+               
+               /**
+                * DEBUG node
+                * 
+                * {{ debug $var [$var [$var [...]]] }}{{ enddebug }}
+                * 
+                * replace node with <pre>var_dump($var, $var, ...);</pre>
+                */
+               private function _replcb_debug($args){
+                       $vars = array_map('trim', explode(" ",$args[2]));
+                       $vars[] = $args[1];
+
+                       $ret = "<pre>";
+                       foreach ($vars as $var){
+                               $ret .= htmlspecialchars(var_export( $this->_get_var($var), true ));
+                               $ret .= "\n";
+                       }
+                       $ret .= "</pre>";
+                       return $ret;
+               }
 
                private function _replcb_node($m) {
                        $node = $this->nodes[$m[1]];
                                $os=$s; $count++;
                                $s = $this->var_replace($s);
                        }
-                       return template_unescape($s);
+                       return $s;
                }
        }