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);
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);
-
- while($t = mysql_fetch_assoc($sql))
- $this->matches[] = $philter->config['match_plugins'][$t['pid']]->sql_to_data($t);
+ $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))
+ $this->matches[] = $philter->config['match_plugins'][$t['pid']]->sql_to_data($t);
+ else
+ while($t = mysql_fetch_assoc($sql))
+ $this->matches[] = $philter->config['global_plugins'][$t['pid']]->sql_to_data($t);
}
function move_to($_new_rank, $_uid, $_rid) {
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;
+ $tmp = array();
+
+ foreach($this->matches as $match)
+ $tmp[] = $philter->config['match_plugins'][$match[0]]->to_string($match);
+
+ $connector = ($this->all ? ' && ' : ' || ');
+ $res = "if( ".implode($connector, $tmp)." )\n"
+ . "{\n";
+
+ foreach($this->actions as $action)
+ $res .= $philter->config['action_plugins'][$action[0]]->to_string($action);
+
+ if($this->block)
+ $res .= " exit\n";
+
+ return $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) {
$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)
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) . ']';
}
$actions = array();
foreach($this->actions as $data) {
+ ksort($data);
$data = array_map('to_js_str', $data);
$actions[] = '[' . implode(',', $data) . ']';
}