diff --git a/include/sieve/class_sieveElement_Fileinto.inc b/include/sieve/class_sieveElement_Fileinto.inc
index a62e8eeaf2c76cd8826b9969dd06f8ebba17cef6..f357d37d96d961bd4e1ea2065d8468deb9f985b8 100644 (file)
class sieve_fileinto
{
- var $data = array();
+ var $data = "";
var $object_id= -1;
var $options = array();
var $parent = NULL;
$mbs = $this->get_mail_boxes();
if(isset($_POST['fileinto_'.$this->object_id])){
- $mb = $_POST['fileinto_'.$this->object_id];
-
+ $mb = stripslashes($_POST['fileinto_'.$this->object_id]);
/* Depending on the user mode we only accept
* existing mailboxes
$data = array('ELEMENTS' => array(array('class' => "quoted-string" ,"text" => $mbs[key($mbs)])));
}
- /* Set mailbox */
- foreach($data['ELEMENTS'] as $node ){
- if(in_array($node['class'],array("quoted-string","text"))){
- $this->data = preg_replace("/\"/","",$node['text']);
+ /* Load element contents, should normaly be only one string
+ * but if we found more than one, just append the following strings.
+ */
+ 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;
}
}
function execute()
{
$smarty = get_smarty();
- $smarty->assign("Selected",$this->data);
+ $smarty->assign("Selected",htmlentities($this->data));
$smarty->assign("Boxes", $this->get_mail_boxes());
$smarty->assign("User_Mode", $this->user_mode);
$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_fileinto.tpl",TRUE,dirname(__FILE__)));
- $str = preg_replace("/%%OBJECT_CONTENT%%/",$object,$object_container);
+ $str = preg_replace("/%%OBJECT_CONTENT%%/",addcslashes($object,"\\"),$object_container);
return($str);
}