procmail generation TODO: implement each plugin. plugins : forward, header,
[old-projects.git] / philter / philter / include / filter.inc.php
index e5b2188..088d212 100644 (file)
@@ -12,12 +12,15 @@ class Filter {
     var $rules;
     /** user id */
     var $uid;
+    /** tmp.bd or not */
+    var $bd;
     
     function Filter($_uid) {
+        global $philter;
         $this->uid = $_uid;
         $this->rules = array();
 
-        $sql = mysql_query("SELECT rank,rid,flags,name FROM rules WHERE uid='$_uid' ORDER BY rank");
+        $sql = mysql_query("SELECT rank,rid,flags,name FROM ".bd()."rules WHERE uid='$_uid' ORDER BY rank");
         while(list($_rank,$_rid,$_flags,$_name) = mysql_fetch_row($sql)) {
             $this->rules[$_rid] = new Rule($_rank,$_flags,$_name);
             $this->rules[$_rid]->sql_get_matches($_uid,$_rid);
@@ -45,7 +48,25 @@ class Filter {
     }
     
     function to_string() {
-        return "";
+        global $mail_pool,$philter;
+        $res = ":0 f\n"
+            .  "|formail -I'X-Philter-Or'\n"
+            .  "\n";
+
+        foreach($this->rules as $id=>$rule)
+            if($id)
+                $res .= $rule->to_string();
+            else
+                foreach($rule->matches as $id=>$match)
+                    $res .= $philter->config['global_plugins'][$match[0]]->to_string($match);
+
+        $res .= ":0\n"
+             .  "!";
+        foreach($mail_pool->emails as $mail)
+            if($mail->is_active())
+                $res .= ' '.$mail->email;
+        
+        return $res."\n";
     }
 
     function delete_rule($_rid) {
@@ -53,7 +74,7 @@ class Filter {
         $this->rules[$_rid]->sql_clean($this->uid, $_rid);
         unset($this->rules[$_rid]);
 
-        mysql_query("UPDATE rules SET rank=rank-1 WHERE uid='{$this->uid}' and rank>$rk");
+        mysql_query("UPDATE ".bd()."rules SET rank=rank-1 WHERE uid='{$this->uid}' and rank>$rk");
     }
 
     function new_rule_id() {