to_string basis
[old-projects.git] / philter / philter / include / rule.inc.php
index 41514b4..dbb7b26 100644 (file)
@@ -87,7 +87,38 @@ class Rule {
     }
 
     function to_string() {
-        return "";
+        global $philter;
+        
+        $res = $this->block  ? ":0\n" : ":0 c\n";
+
+        if($this->all) {
+            foreach($this->matches as $match)
+                $res .= $philter->config['match_plugins'][$match[0]]->to_string($match);
+        } else {
+            $i = 0; $res = '';
+            foreach($this->matches as $match) {
+                $res .= (empty($i) ? ":0 f\n" : ":0 fE");
+                $res .= $philter->config['match_plugins'][$match[0]]->to_string($match);
+                $res .= "| formail -I'X-Philter-Or: yes'\n";
+                $i++;
+            }
+
+            $res.= "\n"
+                .  ":0 f\n"
+                .  "* ^X-Philter-Or: yes\n"
+                .  "| formail -I'X-Philter-Or'\n"
+                .  "\n"
+                .  ($this->block ? ":0\n" : ":0 c\n");
+        }
+        
+        $res.= "{\n";
+        foreach($this->actions as $action)
+            $res .= $philter->config['action_plugins'][$action[0]]->to_string($action);
+        $res.= "    :0\n"
+            .  "    /dev/null\n"
+            .  "}\n\n";
+
+        return $res;
     }
 
     function sql_clean($_uid, $_rid) {
@@ -96,10 +127,12 @@ class Rule {
         mysql_query("DELETE FROM ".bd()."rules WHERE uid='$_uid' AND rid='$_rid'");
         mysql_query("DELETE FROM ".bd()."actions WHERE uid='$_uid' AND rid='$_rid'");
         mysql_query("DELETE FROM ".bd()."matches WHERE uid='$_uid' AND rid='$_rid'");
+        /*
         foreach($philter->config['action_plugins'] as $plug)
             $plug->sql_clean($_uid, $_rid);
         foreach($philter->config['match_plugins'] as $plug)
             $plug->sql_clean($_uid, $_rid);
+        */
     }
     
     function sql_store($_uid, $_rid) {