From 9851f94ef7bc26a94022fa0ff6c3d4aca07aa4ea Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 21 Jul 2009 14:32:58 -0400
Subject: [PATCH] Fixed: FS#806 - Mailfilter & Folders names w/ spaces

---
 interface/web/mail/mail_user_filter_edit.php |   88 ++++++++++++++++++++++++-------------------
 1 files changed, 49 insertions(+), 39 deletions(-)

diff --git a/interface/web/mail/mail_user_filter_edit.php b/interface/web/mail/mail_user_filter_edit.php
index 27c0613..89f4b4f 100644
--- a/interface/web/mail/mail_user_filter_edit.php
+++ b/interface/web/mail/mail_user_filter_edit.php
@@ -113,49 +113,59 @@
 		
 		$content = '';
 		$content .= '### BEGIN FILTER_ID:'.$this->id."\n";
-		
-		if($this->dataRecord["active"] == 'y') {
-		
-			if($this->dataRecord["action"] == 'move') {
-		
+
+		$TargetNoQuotes = $this->dataRecord["target"];
+		$TargetQuotes = "\"$TargetNoQuotes\"";
+
+		$TestChDirNoQuotes = '$DEFAULT/.'.$TargetNoQuotes;
+		$TestChDirQuotes = "\"$TestChDirNoQuotes\"";
+
+		$MailDirMakeNoQuotes = $TargetQuotes.' $DEFAULT';
+
+		$EchoTargetFinal = $TargetNoQuotes;
+
+
+		if($this->dataRecord["action"] == 'move') {
+
 			$content .= "
-`test -e ".'$DEFAULT/.'.$this->dataRecord["target"]."`
-if ( ".'$RETURNCODE'." != 0 )
+`test -e ".$TestChDirQuotes." && exit 1 || exit 0`
+if ( ".'$RETURNCODE'." != 1 )
 {
-  `maildirmake -f ".$this->dataRecord["target"].' $DEFAULT'."`
-  `chmod -R 0700 ".'$DEFAULT/'.$this->dataRecord["target"]."`
-  `echo INBOX.".$this->dataRecord["target"]." >> ".'$DEFAULT'."/courierimapsubscribed`
+	`maildirmake -f $MailDirMakeNoQuotes`
+	`chmod -R 0700 ".$TestChDirQuotes."`
+	`echo \"INBOX.$EchoTargetFinal\" >> ".'$DEFAULT'."/courierimapsubscribed`
 }
-";		
-			}
-		
-			$content .= "if (/^".$this->dataRecord["source"].":";
-		
-			$searchterm = preg_quote($this->dataRecord["searchterm"]);
-		
-			if($this->dataRecord["op"] == 'contains') {
-				$content .= ".*".$searchterm."/:h)\n";
-			} elseif ($this->dataRecord["op"] == 'is') {
-				$content .= $searchterm."$/:h)\n";
-			} elseif ($this->dataRecord["op"] == 'begins') {
-				$content .= $searchterm."/:h)\n";
-			} elseif ($this->dataRecord["op"] == 'ends') {
-				$content .= ".*".$searchterm."$/:h)\n";
-			}
-		
-			$content .= "{\n";
-			$content .= "exception {\n";
-		
-			if($this->dataRecord["action"] == 'move') {
-				$content .= 'to $DEFAULT/.'.$this->dataRecord["target"]."/\n";
-			} else {
-				$content .= "to /dev/null\n";
-			}
-		
-			$content .= "}\n";
-			$content .= "}\n";
-		
+";
 		}
+
+		$content .= "if (/^".$this->dataRecord["source"].":";
+
+		$searchterm = preg_quote($this->dataRecord["searchterm"]);
+
+		if($this->dataRecord["op"] == 'contains') {
+			$content .= ".*".$searchterm."/:h)\n";
+		} elseif ($this->dataRecord["op"] == 'is') {
+			$content .= $searchterm."$/:h)\n";
+		} elseif ($this->dataRecord["op"] == 'begins') {
+			$content .= $searchterm."/:h)\n";
+		} elseif ($this->dataRecord["op"] == 'ends') {
+			$content .= ".*".$searchterm."$/:h)\n";
+		}
+
+		$content .= "{\n";
+		$content .= "exception {\n";
+
+		if($this->dataRecord["action"] == 'move') {
+			$content .= 'ID' . "$this->id" . 'EndFolder = "$DEFAULT/.' . $this->dataRecord['target'] . '/"' . "\n";
+			$content .= "to ". '$ID' . "$this->id" . 'EndFolder' . "\n";
+		} else {
+			$content .= "to /dev/null\n";
+		}
+
+		$content .= "}\n";
+		$content .= "}\n";
+		
+		//}
 		
 		$content .= '### END FILTER_ID:'.$this->id."\n";
 		

--
Gitblit v1.9.1