Code

Udpated tree class
[gosa.git] / include / sieve / class_My_Tree.inc
index 412bccb87fd4de4de50d0cb4f3fdc6c82240af2d..361fa3f916518e1ee9567a1958e66a42104095b3 100644 (file)
@@ -54,6 +54,9 @@ class My_Tree extends Tree
 
     $this -> dump_ = "";
     $ends = array();
+    if(!count($this->pap)){
+#      $this->pap[] = new sieve_comment(NULL,preg_replace("/[^0-9]/","",microtime()),$this);
+    }
     foreach($this->pap as $key => $object){
       if(is_object($object)){
         $end = $this->get_block_end($key);
@@ -223,6 +226,11 @@ class My_Tree extends Tree
   /* Remove the object at the given position */
   function remove_object($key_id)
   {
+    if(count($this->pap) == 1){
+      print_red(_("Can't remove last element."));
+      return;
+    }
+
     $class = get_class($this->pap[$key_id]);
     if(in_array($class,array("sieve_if","sieve_elsif","sieve_else"))){
       $block_start= $key_id;
@@ -524,6 +532,7 @@ class My_Tree extends Tree
         if(!$include_self){
           $key_id ++;
         }
+        $include_self = FALSE;
         $current_class  = get_class($test[$key_id]);
         if(in_array($current_class, $allowed_to_add_after)){
           return($key_id);
@@ -562,16 +571,10 @@ class My_Tree extends Tree
         }
         $tmp2 = $part->get_sieve_script_part();
 
-        if(get_class($part) == "sieve_reject"){
-          $tmp.=$tmp2;
-        }else{
-
-          $tmp3 = split("\n",$tmp2);
-          foreach($tmp3 as $str){
-            $str2 = trim($str);
-            #if(empty($str2)) continue;
-            $tmp.= $buffer.$str."\n";
-          }
+        $tmp3 = split("\n",$tmp2);
+        foreach($tmp3 as $str){
+          $str2 = trim($str);
+          $tmp.= $buffer.$str."\n";
         }
         if(get_class($part) == "sieve_block_start"){
           $buffer .= SIEVE_INDENT_TAB;
@@ -579,7 +582,7 @@ class My_Tree extends Tree
       }
     }
     if(!preg_match("/Generated by GOsa - Gonicus System Administrator/",$tmp)){
-      $tmp = "#Generated by GOsa - Gonicus System Administrator \n ".$tmp;
+#      $tmp = "#Generated by GOsa - Gonicus System Administrator \n ".$tmp;
     }
     return($tmp);
   }