gunnar: server/kolab-webadmin/kolab-webadmin/lib/KolabAdmin/Sieve/Segment Delivery.php, 1.3, 1.4

cvs at kolab.org cvs at kolab.org
Thu Apr 1 15:38:21 CEST 2010


Author: gunnar

Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/lib/KolabAdmin/Sieve/Segment
In directory doto:/tmp/cvs-serv16540/kolab-webadmin/lib/KolabAdmin/Sieve/Segment

Modified Files:
	Delivery.php 
Log Message:
Complete the handling of the folder delivery segment.

Index: Delivery.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/lib/KolabAdmin/Sieve/Segment/Delivery.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Delivery.php	1 Apr 2010 09:12:30 -0000	1.3
+++ Delivery.php	1 Apr 2010 13:38:19 -0000	1.4
@@ -30,11 +30,32 @@
 extends KolabAdmin_Sieve_Segment
 {
     /**
+     * The segment type
+     *
+     * @var string
+     */
+    protected $type = 'delivery';
+
+    /**
      * The folder to deliver mails to.
      *
      * @var string
      */
-    private $_delivery_folder;
+    private $_delivery_folder = 'Inbox';
+
+    /**
+     * Constructor.
+     *
+     * @param string $script The current script segment
+     */
+    public function __construct($script = '')
+    {
+        $this->template = 'if allof (%s' . "\r\n" .
+            'header :contains ["X-Kolab-Scheduling-Message"] ["FALSE"]) {' . "\r\n" .
+            'fileinto "INBOX/%s";' . "\r\n" .
+            '}' . "\r\n";
+        parent::__construct($script);
+    }
 
     /**
      * Retrieve the delivery folder this script will deliver to.
@@ -56,5 +77,25 @@
     public function setDeliveryFolder($folder)
     {
         $this->_delivery_folder = $folder;
+    }
+
+    public function getArguments()
+    {
+        return array(
+            ($this->isActive()) ? 'true, ## delivery enabled' : 'false, ## delivery disabled',
+            $this->getDeliveryFolder()
+        );
+    }
+
+    public function parseArguments($script)
+    {
+        $this->parseDeliveryFolder($script);
+    }
+
+    public function parseDeliveryFolder($script)
+    {
+        if (preg_match("/fileinto \"INBOX\/([^\"]*)\";/", $script, $regs)) {
+            $this->setDeliveryFolder($regs[1]);
+        }
     }
 }





More information about the commits mailing list