body {
color: black;
background-color: white;
+ width: 800px;
+ margin-left: auto;
+ margin-right: auto;
}
table {
border: 1px solid #dddddd;
+ background-color: #eeeeee;
}
table th {
color: white;
}
-table table th {
- background-color: #0000b0;
- color: white;
-}
-
-table table table th {
- background-color: #0000d0;
- color: white;
-}
-
/********** BICOL **********/
table.bicol tr {
border-top: 1px solid #000080;
border-bottom: 1px solid #000080;
background: #cccccc;
+ margin-top: 2em;
+ margin-bottom: 2em;
}
/********************************************************************************
* $id: header.inc.php,v 1.2 2003/08/03 16:02:41 madcoder exp $
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);
$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() {
+<?php
+if(count($_POST)) { // a FORM has been submitted
+ if(isset($_POST['global'])) { // FORM global
+ foreach($philter->config['global_plugins'] as $id=>$g_plugin)
+ if(isset($_POST['global'][$id]))
+ $filter->set_global_data($id,$_POST['global'][$id]);
+ $filter->rules[0]->sql_store(get_user_id(),0);
+ }
+ if(isset($_POST['emails'])) // FORM emails
+ if(!$mail_pool->handle_form())
+ echo "<p style=\"color:red;\">".$philter->error()."</p>\n";
+
+ if(!empty($_POST['order']['action'])) // FORM order
+ if($_POST['order']['action']=='submit') {
+ foreach($filter->rules as $id=>$rule)
+ if(isset($_POST['order'][$id]))
+ $filter->rules[$id]->move_to($_POST['order'][$id], $filter->uid, $id);
+ uasort($filter->rules, 'rule_cmp');
+ } elseif($_POST['order']['action']=='delete' && !empty($_POST['order']['select'])) {
+ $filter->delete_rule($_POST['order']['select']);
+ $_POST['order']['select'] = min(count($filter->rules),$_POST['order']['select']);
+ }
+}
+?>
<div class="rubrique"><?php i18n('global_title'); ?></div>
<?php
i18n('global_help');
?>
<div class="rubrique"><?php i18n('filter_adv'); ?></div>
<?php i18n('filter_adv_txt'); ?>
-<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
+<form action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post">
<center>
<input type="submit" value='<?php i18n('filter_adv') ?>' name='set_adv' />
</center>
+<?php
+if(!empty($_POST['rule']))
+ if(!$filter->handle_form())
+ echo "<p style=\"color:red;\">".$philter->error()."</p>\n";
+
+require("include/js_factory.inc.php");
+?>
<br />
<div class="rubrique"><?php i18n('filter_title'); ?></div>
<?php
</tr>
</table>
+<form action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post">
+<center>
+ <input type="submit" value='<?php i18n('filter_valid') ?>' name="filter_valid" />
+ <input type="submit" value='<?php i18n('filter_cancel') ?>' name="filter_cancel" />
+</center>
+</form>
+
<script type="text/javascript">
createRuleForm();
</script>
function i18n($_index) { global $philter; echo $philter->i18n($_index); }
function _i18n($_index) { global $philter; return $philter->i18n($_index); }
+function bd() { global $philter; return ($philter->is_advanced() ? 'tmp_' : ''); }
/** Philter base configuration class
* This is the base class of Philter.
$this->err = "";
}
+ function is_advanced() { return isset($_SESSION['philter_adv']); }
function set_advanced() { $_SESSION['philter_adv'] = true; }
function del_advanced() { unset($_SESSION['philter_adv']); }
- function is_advanced() { return isset($_SESSION['philter_adv']); }
/** returns the i18n string
* @param $_index the index of the string
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]}'");
+ mysql_query("INSERT INTO ".bd()."actions SET uid='$_uid',rid='$_rid',pid='{$_data[0]}',data='{$_data[1]}'");
}
}
function sql_store($_uid, $_rid, $_data) {
if($this->global)
- mysql_query("INSERT INTO matches 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[1]}'");
else
- mysql_query("INSERT INTO matches 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[1]}'");
}
/** true if the plugin is used as global rule
$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' ".$left_joins);
while($t = mysql_fetch_assoc($sql))
$this->actions[] = $philter->config['action_plugins'][$t['pid']]->sql_to_data($t);
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' ".$left_joins);
if($_rid)
while($t = mysql_fetch_assoc($sql))
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() {
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)
$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)
require("include/philter.inc.php");
require("include/config.inc.php");
-if(isset($_POST['set_adv']))
+function clean_tmp($_uid) {
+ mysql_query("DELETE FROM tmp_rules WHERE uid='$_uid'");
+ mysql_query("DELETE FROM tmp_actions WHERE uid='$_uid'");
+ mysql_query("DELETE FROM tmp_matches WHERE uid='$_uid'");
+}
+
+function to_tmp($_uid) {
+ clean_tmp($_uid);
+ mysql_query("INSERT INTO tmp_rules SELECT * FROM rules WHERE uid='$_uid'");
+ mysql_query("INSERT INTO tmp_actions SELECT * FROM actions WHERE uid='$_uid'");
+ mysql_query("INSERT INTO tmp_matches SELECT * FROM matches WHERE uid='$_uid'");
+}
+
+function to_main($_uid) {
+ mysql_query("DELETE FROM tmp_rules WHERE uid='$_uid'");
+ mysql_query("DELETE FROM tmp_actions WHERE uid='$_uid'");
+ mysql_query("DELETE FROM tmp_matches WHERE uid='$_uid'");
+ mysql_query("INSERT INTO rules SELECT * FROM tmp_rules WHERE uid='$_uid'");
+ mysql_query("INSERT INTO actions SELECT * FROM tmp_actions WHERE uid='$_uid'");
+ mysql_query("INSERT INTO matches SELECT * FROM tmp_matches WHERE uid='$_uid'");
+ clean_tmp($_uid);
+}
+
+if(isset($_POST['set_adv']) && !$philter->is_advanced()) {
$philter->set_advanced();
+ to_tmp(get_user_id());
+}
-$mail_pool = new EmailPool(get_user_id());
-$filter = new Filter(get_user_id());
+if(isset($_POST['filter_valid']) && $philter->is_advanced()) {
+ $philter->del_advanced();
+ to_main(get_user_id());
+}
-if(count($_POST)) { // a FORM has been submitted
- if(isset($_POST['global'])) { // FORM global
- foreach($philter->config['global_plugins'] as $id=>$g_plugin)
- if(isset($_POST['global'][$id]))
- $filter->set_global_data($id,$_POST['global'][$id]);
- $filter->rules[0]->sql_store(get_user_id(),0);
- }
- if(isset($_POST['emails'])) // FORM emails
- if(!$mail_pool->handle_form())
- echo "<p style=\"color:red;\">".$philter->error()."</p>\n";
-
- if(!empty($_POST['order']['action'])) // FORM order
- if($_POST['order']['action']=='submit') {
- foreach($filter->rules as $id=>$rule)
- if(isset($_POST['order'][$id]))
- $filter->rules[$id]->move_to($_POST['order'][$id], $filter->uid, $id);
- uasort($filter->rules, 'rule_cmp');
- } elseif($_POST['order']['action']=='delete' && !empty($_POST['order']['select'])) {
- $filter->delete_rule($_POST['order']['select']);
- $_POST['order']['select'] = min(count($filter->rules),$_POST['order']['select']);
- }
-
- if(!empty($_POST['rule'])) // FORM rule
- if(!$filter->handle_form())
- echo "<p style=\"color:red;\">".$philter->error()."</p>\n";
+if(isset($_POST['filter_cancel']) && $philter->is_advanced()) {
+ $philter->del_advanced();
+ clean_tmp(get_user_id());
}
-require("include/js_factory.inc.php");
+$mail_pool = new EmailPool(get_user_id());
+$filter = new Filter(get_user_id());
if($philter->is_advanced())
require("include/form_filter.inc.php");
return false;
}
+session_start();
+
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
'filter_adv_txt' => 'Click here to have access to the advanced filtering options. <strong>Be
careful :</strong> thie functionnality is designed for advanced users and could lead to
mail losses',
+ 'filter_valid' => 'Validate',
+ 'filter_cancel' => 'Cancel',
'filter_title' => 'Individuals Rules',
'filter_list_title' => 'Filter List',
'filter_err_empty' => 'You cannot add an empty rule',
ici et en cliquant sur Ajouter.</p>',
'filter_adv' => 'Interface avancée',
+ 'filter_valid' => 'Valider',
+ 'filter_cancel' => 'Annuler',
'filter_adv_txt' => 'Clique sur le bouton suivant pour avoir accès aux options avancées de
filtrage de mails. <strong>attention :</strong> cette fonctionnalité est réservée à des
utilisateurs avancés, et peut être la source de perte de mails',