to_header_string was a bad idea...
[old-projects.git] / philter / philter / include / plugin.inc.php
index 066b8e8..71894c3 100644 (file)
@@ -26,9 +26,8 @@ class Plugin {
     /** gives the LEFT JOIN to add to the sql request to have all this plugin datas
      * @return  the LEFT JOIN string, "" if irrelevant
      */
-    function sql_get() { return ""; }
-
-    function sql_clean($_uid, $_rid) { }
+    // function sql_get() { return ""; }
+    // function sql_clean($_uid, $_rid) { }
     
     /** stores the data to the mysql database
      * @param   $_uid   the id of the filter
@@ -43,10 +42,10 @@ class Plugin {
      * @return  an array with the shorter datas
      */
     function sql_to_data(&$sql) {
-        $res = array();
-        $res[] = $sql['pid'];
-        $res[] = $sql['data'];
-        return $res;
+        if(preg_match('/^a:\d+:\{.*\}$/',  $sql['data']))
+            return unserialize($sql['data']);
+        else
+            return array($sql['pid'], $sql['data']);
     }
 
     /** gives the procmailrc instruction of the data associated with this Plugin
@@ -66,7 +65,11 @@ class ActionPlugin extends Plugin {
     function ActionPlugin() { $this->Plugin(); }
     
     function sql_store($_uid, $_rid, $_data) {
-        mysql_query("INSERT INTO actions SET uid='$_uid',rid='$_rid',pid='{$_data[0]}',data='{$_data[1]}'");
+        if(count($_data) == 2)
+            $data = $_data[1];
+        else
+            $data =  serialize($_data);
+        mysql_query("INSERT INTO ".bd()."actions SET uid='$_uid',rid='$_rid',pid='{$_data[0]}',data='$data'");
     }
 }
 
@@ -81,10 +84,14 @@ class MatchPlugin extends Plugin {
     }
 
     function sql_store($_uid, $_rid, $_data) {
+        if(count($_data) == 2)
+            $data = $_data[1];
+        else
+            $data =  serialize($_data);
         if($this->global)
-            mysql_query("INSERT INTO actions SET uid='$_uid',rid='0',pid='{$_data[0]}',data='{$_data[1]}'");
+            mysql_query("INSERT INTO ".bd()."matches SET uid='$_uid',rid='0',pid='{$_data[0]}',data='$data'");
         else
-            mysql_query("INSERT INTO actions SET uid='$_uid',rid='$_rid',pid='{$_data[0]}',data='{$_data[1]}'");
+            mysql_query("INSERT INTO ".bd()."matches SET uid='$_uid',rid='$_rid',pid='{$_data[0]}',data='$data'");
     }
 
     /** true if the plugin is used as global rule