From 772509f32045e23e867b3520f04072301f040252 Mon Sep 17 00:00:00 2001
From: Pierre Habouzit
Date: Thu, 11 Sep 2003 11:58:42 +0000
Subject: [PATCH] css default modifications bd context switching
---
philter/philter/css/default.css | 16 +++-----
philter/philter/include/filter.inc.php | 7 +++-
philter/philter/include/form_emails.inc.php | 26 +++++++++++-
philter/philter/include/form_filter.inc.php | 14 +++++++
philter/philter/include/philter.inc.php | 3 +-
philter/philter/include/plugin.inc.php | 6 +--
philter/philter/include/rule.inc.php | 18 ++++----
philter/philter/index.php | 64 ++++++++++++++++-------------
philter/philter/install.d/header.inc.php | 2 +
philter/philter/locales/philter.en.inc.php | 2 +
philter/philter/locales/philter.fr.inc.php | 2 +
11 files changed, 106 insertions(+), 54 deletions(-)
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();
?>
-
+
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',
--
2.1.4