Code

* Created "old" branch and moved stuff
[gosa.git] / branches / old / gosa-plugins / mail / personal / mail / sieve / class_sieveElement_Require.inc
diff --git a/branches/old/gosa-plugins/mail/personal/mail/sieve/class_sieveElement_Require.inc b/branches/old/gosa-plugins/mail/personal/mail/sieve/class_sieveElement_Require.inc
new file mode 100644 (file)
index 0000000..a9b6890
--- /dev/null
@@ -0,0 +1,109 @@
+<?php
+
+class sieve_require 
+{
+  var $data = array();
+  var $object_id = -1;
+  var $parent = NULL;  
+  var $skip_save_object =FALSE;
+
+  function sieve_require($data,$object_id,$parent)
+  {
+    $this->parent = $parent;
+    $this->object_id = $object_id;
+    if($data !== NULL){
+
+      for($i = 0 ; $i < count($data['ELEMENTS']) ; $i++){
+        $tmp = sieve_get_strings($data['ELEMENTS'],$i);
+        $i  = $i + $tmp['OFFSET'];
+        foreach($tmp['STRINGS'] as $str){
+          $this->data[]= $str;
+        }
+      }
+    }
+  }
+
+
+  /* Add a new require statement and ensure 
+   *  that it is not specified twice 
+   */
+  function Add_Require($str)
+  {
+    $current = array();
+    foreach($this->data as $dat){
+      $current[] = $dat;
+    }
+    if(!in_array($str,$current)){
+      $this->data[] = $str;
+    }
+    $this->data = array_unique($this->data);
+    $this->skip_save_object = TRUE;
+  }
+
+  function save_object()
+  {
+    if($this->skip_save_object){
+      $this->skip_save_object = FALSE;
+      return;
+    }
+
+    /* Get the values should check for, they are seperated by , */
+    if(isset($_POST['require_'.$this->object_id])){
+      $vls = stripslashes($_POST['require_'.$this->object_id]);
+      $tmp = array();
+
+      $tmp2 = split(",",$vls);
+      foreach($tmp2 as $val){
+        
+        $val = trim($val);
+    
+        if(empty($val)) continue;        
+  
+        $tmp[] = $val;
+      }
+      $this->data = $tmp;
+    }
+  }
+
+  function check()
+  {
+    $msgs = array();
+  
+    if(!count($this->data)){
+      $msgs[] = _("Please specify at least one valid requirement.");
+    }
+    return($msgs);
+  }
+
+  function get_sieve_script_part()
+  {
+    if(count($this->data)){
+    $tmp = sieve_create_strings($this->data);
+    return("require ".$tmp.";\n");
+    }else{
+      return("");
+    }
+  } 
+    
+  function execute()
+  {
+    $Require = "";
+    foreach($this->data as $key){
+      $Require .= $key.", ";
+    }
+    $Require = preg_replace("/,$/","",trim($Require));
+
+    $smarty = get_smarty();
+    $smarty->assign("Require",$Require);
+    $tmp = $this->check();
+    $smarty->assign("LastError",$tmp);
+    $smarty->assign("LastErrorCnt",count($tmp));
+    $smarty->assign("ID", $this->object_id);
+    $object_container = $smarty->fetch(get_template_path("templates/object_container.tpl",TRUE,dirname(__FILE__)));
+    $object= $smarty->fetch(get_template_path("templates/element_require.tpl",TRUE,dirname(__FILE__)));
+    $str = preg_replace("/%%OBJECT_CONTENT%%/",addcslashes($object,"\\"),$object_container);
+    return($str);
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>