tbrehm
2009-07-21 9851f94ef7bc26a94022fa0ff6c3d4aca07aa4ea
Fixed: FS#806 - Mailfilter & Folders names w/ spaces
1 files modified
88 ■■■■■ changed files
interface/web/mail/mail_user_filter_edit.php 88 ●●●●● patch | view | raw | blame | history
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";