Code

Heimdal stuff not needed. It's too insecure to read m-keys by php.
[gosa.git] / include / sieve / class_sieveElement_Comment.inc
index 197b3211a9f1ea262280551fb4fedba996400736..deaa4f3120ba68ca16e18555117fdbb33c32b929 100644 (file)
@@ -9,20 +9,37 @@ class sieve_comment
 
   function get_sieve_script_part()
   {
-    return($this->data."\n");
+    $str = "\n/*".$this->data."*/";
+    return($str);
   } 
     
   function sieve_comment($data,$object_id)
   {
     $this->object_id = $object_id;
 
-    if($data == NULL){
+    if($data === NULL){
       $data = array('ELEMENTS' => array(array('class' => "quoted-string" ,"text" => "/*"._("Your comment here")."*/")));
     }
 
     foreach($data['ELEMENTS'] as $node){
-       $this->data .= $node['text'];
+
+      $text = $node['text'];
+  
+      /* Convert \t to spaces  */ 
+      $text = preg_replace("#\t#","    ",$text);
+      
+      /* Remove comment indicator '#' but keep spaces */
+      $text = preg_replace("/^([ ]*)\#/","\\1",$text);
+     
+      /* Remove comment indicator '/ *' */ 
+      $text = preg_replace("#\/\*#","",$text);
+      
+      /* Remove comment indicator '* /' */ 
+      $text = preg_replace("#\*\/#","",$text);
+
+      $this->data .= $text."\n";
     }
+    $this->data = rtrim($this->data)."\n";
   }
 
   function check()
@@ -34,7 +51,8 @@ class sieve_comment
   {
     if(isset($_POST['comment_'.$this->object_id])){
       $cm = stripslashes( $_POST['comment_'.$this->object_id]);
-      $this->data = "/*".$cm."*/";
+      $cm = preg_replace("/\*\//","* /",$cm);
+      $this->data = $cm;
     }
   
     if(isset($_POST['toggle_small_'.$this->object_id])){
@@ -50,24 +68,15 @@ class sieve_comment
     $object_container = $smarty->fetch(get_template_path("templates/object_container.tpl",TRUE,dirname(__FILE__)));
     $Comment = $this->data;
 
-    /* Remove comment tags */
-    if(preg_match("/^#/",$Comment)){
-      $Comment = preg_replace("/^#/","",$Comment);
-    }elseif(preg_match("#\/\*#",$Comment)){
-      $Comment = preg_replace("#^\/\*#","",$Comment);
-      $Comment = preg_replace("#\*\/$#","",$Comment);
-    }
-
     if($this->small){
-      $Comment = nl2br($Comment);
+      $Comment = nl2br(preg_replace("/ /"," ",$Comment));
     }
  
     /* Create html object */ 
-    $smarty = get_smarty();
     $smarty->assign("Comment",$Comment);
     $smarty->assign("ID",$this->object_id);
     $object = $smarty->fetch(get_template_path("templates/element_comment.tpl",TRUE,dirname(__FILE__)));    
-    $str = preg_replace("/%%OBJECT_CONTENT%%/",$object,$object_container);
+    $str = preg_replace("/%%OBJECT_CONTENT%%/",addcslashes($object,"\\"),$object_container);
     return($str);
   }
 }