Rule::to_string
[old-projects.git] / philter / philter / include / rule.inc.php
index 9123b29..1e361be 100644 (file)
@@ -47,12 +47,13 @@ class Rule {
 
     function sql_get_actions($_uid, $_rid) {
         global $philter;
-
+        /*
         $left_joins = "";
         foreach($philter->config['action_plugins'] as $plug)
             $left_joins .= $plug->sql_get();
-        
-        $sql = mysql_query("SELECT * FROM actions WHERE actions.uid='$_uid' AND actions.rid='$_rid' ".$left_joins);
+        */
+        $bd = bd()."actions";
+        $sql = mysql_query("SELECT * FROM $bd WHERE $bd.uid='$_uid' AND $bd.rid='$_rid'");
         
         while($t = mysql_fetch_assoc($sql))
             $this->actions[] = $philter->config['action_plugins'][$t['pid']]->sql_to_data($t);
@@ -60,12 +61,15 @@ class Rule {
 
     function sql_get_matches($_uid, $_rid) {
         global $philter;
-        
+       
+        /*
         $left_joins = "";
         foreach($philter->config['match_plugins'] as $plug)
             $left_joins .= $plug->sql_get();
+        */
         
-        $sql = mysql_query("SELECT * FROM matches WHERE matches.uid='$_uid' AND matches.rid='$_rid' ".$left_joins);
+        $bd = bd()."matches";
+        $sql = mysql_query("SELECT * FROM $bd WHERE $bd.uid='$_uid' AND $bd.rid='$_rid'");
        
         if($_rid)
             while($t = mysql_fetch_assoc($sql))
@@ -79,23 +83,32 @@ class Rule {
         if($this->rank == $_new_rank)
             return;
         $this->rank = $_new_rank;
-        mysql_query("UPDATE rules SET rank='$_new_rank' WHERE uid='$_uid' AND rid='$_rid'");
+        mysql_query("UPDATE ".bd()."rules SET rank='$_new_rank' WHERE uid='$_uid' AND rid='$_rid'");
     }
 
     function to_string() {
-        return "";
+        global $philter;
+        $res = ":0 c\n";
+        foreach($this->matches as $match)
+            $res .= $philter->['config']['match_plugins'][$match[0]]->to_string($match);
+        $res.= "{\n";
+        foreach($this->actions as $action)
+            $res .= $philter->['config']['actioh_plugins'][$action[0]]->to_string($action);
+        $res.= "}\n\n";
     }
 
     function sql_clean($_uid, $_rid) {
         global $philter;
 
-        mysql_query("DELETE FROM rules WHERE uid='$_uid' AND rid='$_rid'");
-        mysql_query("DELETE FROM actions WHERE uid='$_uid' AND rid='$_rid'");
-        mysql_query("DELETE FROM matches WHERE uid='$_uid' AND rid='$_rid'");
+        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) {
@@ -108,7 +121,7 @@ class Rule {
 
         $this->sql_clean($_uid,$_rid);
 
-        mysql_query("INSERT INTO rules SET uid='$_uid',rid='$_rid',rank='{$this->rank}',flags='$flags',name='{$this->name}'");
+        mysql_query("INSERT INTO ".bd()."rules SET uid='$_uid',rid='$_rid',rank='{$this->rank}',flags='$flags',name='{$this->name}'");
 
         if($_rid) {
             foreach($this->matches as $match)
@@ -123,8 +136,8 @@ class Rule {
 
     function to_js() {
         $matches = array();
-        ksort($this->matches);
         foreach($this->matches as $data) {
+            ksort($data);
             $data = array_map('to_js_str', $data);
             $matches[] = '[' . implode(',', $data) . ']';
         }
@@ -132,6 +145,7 @@ class Rule {
 
         $actions = array();
         foreach($this->actions as $data) {
+            ksort($data);
             $data = array_map('to_js_str', $data);
             $actions[] = '[' . implode(',', $data) . ']';
         }