diff --git a/include/sieve/class_sieveElement_Vacation.inc b/include/sieve/class_sieveElement_Vacation.inc
index 6854b1862e5c74ff4c4e6a261770444bf3e17217..43c7546377215877efee4065959c00d61d3a8980 100644 (file)
var $from = "";
var $mime = "";
var $handle = "";
- var $reason = "";
+ var $reason = "\"I am not available, currently.\"";
var $addresses= array();
var $object_id= -1;
var $Expert = FALSE;
+ var $parent = NULL;
- function sieve_vacation($data,$object_id)
+ function sieve_vacation($data,$object_id,$parent)
{
-
+ $this->parent = $parent;
$this->object_id = $object_id;
+ $this->parent->add_require("vacation");
+
/* Usage: vacation [":days" number] [":subject" string]
[":from" string] [":addresses" string-list]
[":mime"] [":handle" string] <reason: string> */
$known_attrs = array(":days",":subject",":from",":mime",":handle");
/* skip if empty */
- if(($data == NULL) || !is_array($data)) return;
+ if(($data === NULL) || !is_array($data)) return;
/* Walk through elements */
- for($i = 0 ; $i < count($data['ELEMENTS']) ; $i ++){
+ $p= count($data['ELEMENTS']);
+ for ($i= 0; $i < $p; $i++){
/* get current element */
$node = $data['ELEMENTS'][$i];
}
}
}else{
- $this->addresses[] = $data['ELEMENTS'][$i]['text'] ;
+ $this->addresses[] = preg_replace("/\"/i","",$data['ELEMENTS'][$i]['text']);
}
}
foreach($strs as $str){
$data .= $str;
}
- $this->reason = $data;//preg_replace("/\"/","",$data);
+ $this->reason = $data;
}
}
}
if($this->mime){
$str.= ":mime ".sieve_create_strings($this->mime);
}
- $str .= "\n ".sieve_create_strings($this->reason);
+
+ /* Append reason and ensure that this will be
+ * handled as multiline text element
+ * by adding a "\n" new line
+ */
+ $str .= "\n ".sieve_create_strings($this->reason."\n");
return($str." ; \n");
}
{
/* Get release date */
if(isset($_POST['vacation_release_'.$this->object_id])){
- $this->days = $_POST['vacation_release_'.$this->object_id];
+ $this->days = stripslashes($_POST['vacation_release_'.$this->object_id]);
}
/* Check if we want to toggle the expert mode */
$tmp = array();
$tmp2 = split(",",$vr);
foreach($tmp2 as $val){
- $ad = trim(preg_replace("/\"/","",$val));
+ $ad = trim($val);
if(!empty($ad)){
- $tmp[] = "\"".$ad."\"";
+ $tmp[] = $ad;
}
}
$this->addresses = $tmp;
/* Get reason */
if(isset($_POST['vacation_reason_'.$this->object_id])){
$vr = stripslashes ($_POST['vacation_reason_'.$this->object_id]);
- $this->reason = "\"".trim(preg_replace("/\"/","",$vr))."\"";
+ $this->reason = trim($vr);
}
}
$msgs = array();
$err = FALSE;
foreach($this->addresses as $addr){
- if(!is_email(preg_replace("/\"/","",$addr))){
+ if(!is_email($addr)){
$err = true;
}
}
if($err){
- $msgs[] = _("Alternative sender addresse must be valid email addresses.");
+ $msgs[] = _("Alternative sender address must be a valid email addresses.");
}
return($msgs);
}
$object_container = $smarty->fetch(get_template_path("templates/object_container.tpl",TRUE,dirname(__FILE__)));
$object= $smarty->fetch(get_template_path("templates/element_vacation.tpl",TRUE,dirname(__FILE__)));
- $str = preg_replace("/%%OBJECT_CONTENT%%/",$object,$object_container);
+ $str = preg_replace("/%%OBJECT_CONTENT%%/",addcslashes($object,"\\"),$object_container);
return($str);
}
}