]> git.mxchange.org Git - friendica.git/blobdiff - include/template_processor.php
migrate more notifications
[friendica.git] / include / template_processor.php
index 459ffb2d11ab426a8f94bacb4dca50094d687727..25f7703a2192cfe4b41a76c958c35514bb75fe45 100644 (file)
                
                private function _preg_error(){
                        switch(preg_last_error()){
-                           case PREG_INTERNAL_ERROR: die('PREG_INTERNAL_ERROR'); break;
-                           case PREG_BACKTRACK_LIMIT_ERROR: die('PREG_BACKTRACK_LIMIT_ERROR'); break;
-                           case PREG_RECURSION_LIMIT_ERROR: die('PREG_RECURSION_LIMIT_ERROR'); break;
-                           case PREG_BAD_UTF8_ERROR: die('PREG_BAD_UTF8_ERROR'); break;
-                           case PREG_BAD_UTF8_OFFSET_ERROR: die('PREG_BAD_UTF8_OFFSET_ERROR'); break;
+                           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;
                            default:
                                        //die("Unknown preg error.");
                                        return;
                        }
+                       echo "<hr><pre>";
+                       debug_print_backtrace();
+                       die();
                }
                
                private function _build_replace($r, $prefix){
@@ -31,8 +34,6 @@
                                foreach ($r as $k => $v ) {
                                        if (is_array($v))
                                                $this->_build_replace($v, "$prefix$k.");
-                                       if (is_object($v))
-                                               $this->_build_replace($v->getKeys(), "$prefix$k.");
                                        
                                        $this->search[] =  $prefix . $k;
                                        $this->replace[] = $v;
                        return $s;
                }
 
-               private function _get_lang(){
-                       if ($this->lang!=null) return $this->lang;
-                       
-                       $a = get_app();
-                       $this->lang=array();
-                       foreach ($a->strings as $k=>$v){
-                               $k =  preg_replace("/[^a-z0-9-]/", "", str_replace(" ","-", strtolower($k)));
-                               $this->lang[$k] = $v;
-                       }
-                       return $this->lang;
-               }
-
-               
+       
                public function replace($s, $r) {
-                       if (!x($r,'$lang')){
-                               $r['$lang'] = &$this->_get_lang();
-                       }
                        $this->r = $r;
                        $this->search = array();
                        $this->replace = array();
+
                        $this->_build_replace($r, "");
+                       
                        #$s = str_replace(array("\n","\r"),array("§n§","§r§"),$s);
                        $s = $this->_build_nodes($s);
+
                        $s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s);
                        if ($s==Null) $this->_preg_error();
                        
                        // remove comments block
                        $s = preg_replace('/{#[^#]*#}/', "" , $s);
-                                               
                        // replace strings recursively (limit to 10 loops)
                        $os = ""; $count=0;
                        while($os!=$s && $count<10){
                                $os=$s; $count++;
                                $s = str_replace($this->search,$this->replace, $s);
                        }
-                       return $s;
+                       return template_unescape($s);
                }
        }
        
        $t = new Template;
+
+
+
+
+function template_escape($s) {
+
+       return str_replace(array('$','{{'),array('!_Doll^Ars1Az_!','!_DoubLe^BraceS4Rw_!'),$s);
+
+
+}
+
+function template_unescape($s) {
+
+       return str_replace(array('!_Doll^Ars1Az_!','!_DoubLe^BraceS4Rw_!'),array('$','{{'),$s);
+
+
+
+}