From: Pierre Habouzit Date: Thu, 11 Sep 2003 11:58:42 +0000 (+0000) Subject: css default modifications X-Git-Tag: procmail~34 X-Git-Url: http://git.polytechnique.org/?p=old-projects.git;a=commitdiff_plain;h=772509f32045e23e867b3520f04072301f040252 css default modifications bd context switching --- diff --git a/philter/philter/css/default.css b/philter/philter/css/default.css index 9d1b45b..305819e 100644 --- a/philter/philter/css/default.css +++ b/philter/philter/css/default.css @@ -9,10 +9,14 @@ body { color: black; background-color: white; + width: 800px; + margin-left: auto; + margin-right: auto; } table { border: 1px solid #dddddd; + background-color: #eeeeee; } table th { @@ -20,16 +24,6 @@ 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 { @@ -56,6 +50,8 @@ div.rubrique { 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 $ diff --git a/philter/philter/include/filter.inc.php b/philter/philter/include/filter.inc.php index e5b2188..4e362f4 100644 --- a/philter/philter/include/filter.inc.php +++ b/philter/philter/include/filter.inc.php @@ -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); @@ -53,7 +56,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() { diff --git a/philter/philter/include/form_emails.inc.php b/philter/philter/include/form_emails.inc.php index 9ffda48..323d406 100644 --- a/philter/philter/include/form_emails.inc.php +++ b/philter/philter/include/form_emails.inc.php @@ -1,3 +1,27 @@ +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 "

".$philter->error()."

\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']); + } +} +?>
to_form(); ?>
-
+
' name='set_adv' />
diff --git a/philter/philter/include/form_filter.inc.php b/philter/philter/include/form_filter.inc.php index 0c84863..03c9584 100644 --- a/philter/philter/include/form_filter.inc.php +++ b/philter/philter/include/form_filter.inc.php @@ -1,3 +1,10 @@ +handle_form()) + echo "

".$philter->error()."

\n"; + +require("include/js_factory.inc.php"); +?>
+ +
+ ' name="filter_valid" /> + ' name="filter_cancel" /> +
+
+ diff --git a/philter/philter/include/philter.inc.php b/philter/philter/include/philter.inc.php index 74ef94d..3b89bff 100644 --- a/philter/philter/include/philter.inc.php +++ b/philter/philter/include/philter.inc.php @@ -11,6 +11,7 @@ require_once("include/core.inc.php"); 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. @@ -36,9 +37,9 @@ class 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 diff --git a/philter/philter/include/plugin.inc.php b/philter/philter/include/plugin.inc.php index 1f3bdfc..6d4f237 100644 --- a/philter/philter/include/plugin.inc.php +++ b/philter/philter/include/plugin.inc.php @@ -66,7 +66,7 @@ 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]}'"); + mysql_query("INSERT INTO ".bd()."actions SET uid='$_uid',rid='$_rid',pid='{$_data[0]}',data='{$_data[1]}'"); } } @@ -82,9 +82,9 @@ class MatchPlugin extends Plugin { 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 diff --git a/philter/philter/include/rule.inc.php b/philter/philter/include/rule.inc.php index 9123b29..402b198 100644 --- a/philter/philter/include/rule.inc.php +++ b/philter/philter/include/rule.inc.php @@ -51,8 +51,9 @@ class 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); @@ -65,7 +66,8 @@ class Rule { 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)) @@ -79,7 +81,7 @@ 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() { @@ -89,9 +91,9 @@ class Rule { 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) @@ -108,7 +110,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) diff --git a/philter/philter/index.php b/philter/philter/index.php index e8022de..0754965 100644 --- a/philter/philter/index.php +++ b/philter/philter/index.php @@ -11,40 +11,46 @@ require("include/header.inc.php"); 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 "

".$philter->error()."

\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 "

".$philter->error()."

\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"); diff --git a/philter/philter/install.d/header.inc.php b/philter/philter/install.d/header.inc.php index ff0863a..0e3fa79 100644 --- a/philter/philter/install.d/header.inc.php +++ b/philter/philter/install.d/header.inc.php @@ -16,6 +16,8 @@ function is_auth() { return false; } +session_start(); + ?> diff --git a/philter/philter/locales/philter.en.inc.php b/philter/philter/locales/philter.en.inc.php index 4149a5a..a3aa215 100644 --- a/philter/philter/locales/philter.en.inc.php +++ b/philter/philter/locales/philter.en.inc.php @@ -30,6 +30,8 @@ $philter->config['i18n'] = Array( 'filter_adv_txt' => 'Click here to have access to the advanced filtering options. Be careful : 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', diff --git a/philter/philter/locales/philter.fr.inc.php b/philter/philter/locales/philter.fr.inc.php index c4f2c5b..2612eb3 100644 --- a/philter/philter/locales/philter.fr.inc.php +++ b/philter/philter/locales/philter.fr.inc.php @@ -40,6 +40,8 @@ $philter->config['i18n'] = Array( ici et en cliquant sur Ajouter.

', '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. attention : cette fonctionnalité est réservée à des utilisateurs avancés, et peut être la source de perte de mails',