X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Foptions_highlight.php;h=b71784e847db82233e4fdfa006e41ea1faf046cc;hb=de4d58cb7fdcda16e5129a26db1a6a3d46d6594f;hp=0775e2e848b5a24ca6607387ae79e5344b52c56e;hpb=7c0060c9682434994d0d99d1e48b99a0fa4df84a;p=squirrelmail.git
diff --git a/src/options_highlight.php b/src/options_highlight.php
index 0775e2e8..b71784e8 100644
--- a/src/options_highlight.php
+++ b/src/options_highlight.php
@@ -3,24 +3,39 @@
/**
* options_highlight.php
*
- * Copyright (c) 1999-2002 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
* Displays message highlighting options
*
- * $Id$
+ * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @version $Id$
+ * @package squirrelmail
+ * @subpackage prefs
*/
-require_once('../src/validate.php');
-require_once('../functions/display_messages.php');
-require_once('../functions/imap.php');
-require_once('../functions/array.php');
-require_once('../functions/plugin.php');
+/**
+ * Include the SquirrelMail initialization file.
+ */
+require('../include/init.php');
+
+// include_once(SM_PATH . 'functions/imap.php');
+require_once(SM_PATH . 'functions/forms.php');
+
+/* get globals */
+sqGetGlobalVar('action', $action);
+sqGetGlobalVar('theid', $theid);
+sqGetGlobalVar('identname', $identname);
+sqGetGlobalVar('newcolor_choose', $newcolor_choose);
+sqGetGlobalVar('newcolor_input', $newcolor_input);
+sqGetGlobalVar('color_type', $color_type);
+sqGetGlobalVar('match_type', $match_type);
+sqGetGlobalVar('value', $value);
+
+/* end of get globals */
function oh_opt( $val, $sel, $tit ) {
echo "\n";
}
@@ -31,67 +46,112 @@ if (! isset($message_highlight_list)) {
$message_highlight_list = array();
}
-if ($action == 'delete' && isset($theid)) {
- removePref($data_dir, $username, "highlight$theid");
- header( "Location: $PHP_SELF" );
+if (isset($theid) && ($action == 'delete') ||
+ ($action == 'up') ||
+ ($action == 'down')) {
+ $new_rules = array();
+ switch($action) {
+ case('delete'):
+ foreach($message_highlight_list as $rid => $rule) {
+ if($rid != $theid) {
+ $new_rules[] = $rule;
+ }
+ }
+ break;
+ case('down'):
+ $theid++;
+ case('up'):
+ foreach($message_highlight_list as $rid => $rule) {
+ if($rid == $theid) {
+ $temp_rule = $new_rules[$rid-1];
+ $new_rules[$rid-1] = $rule;
+ $new_rules[$rid] = $temp_rule;
+ } else {
+ $new_rules[$rid] = $rule;
+ }
+ }
+ break;
+ default:
+ $new_rules = $message_highlight_list;
+ break;
+ }
+ $message_highlight_list = $new_rules;
+
+ setPref($data_dir, $username, 'hililist', serialize($message_highlight_list));
+
+ header( 'Location: ' .get_location(). '/options_highlight.php' );
exit;
} else if ($action == 'save') {
- if (!$theid) $theid = 0;
- $identname = ereg_replace(',', ' ', $identname);
+
if ($color_type == 1) $newcolor = $newcolor_choose;
elseif ($color_type == 2) $newcolor = $newcolor_input;
else $newcolor = $color_type;
- $newcolor = ereg_replace(',', '', $newcolor);
- $newcolor = ereg_replace('#', '', $newcolor);
- $newcolor = ereg_replace('"', '', $newcolor);
- $newcolor = ereg_replace('\'', '', $newcolor);
- $value = ereg_replace(',', ' ', $value);
-
- setPref($data_dir, $username, "highlight$theid", $identname.','.$newcolor.','.$value.','.$match_type);
- $message_highlight_list[$theid]['name'] = $identname;
- $message_highlight_list[$theid]['color'] = $newcolor;
- $message_highlight_list[$theid]['value'] = $value;
- $message_highlight_list[$theid]['match_type'] = $match_type;
+ $newcolor = str_replace('#', '', $newcolor);
+ $newcolor = str_replace('"', '', $newcolor);
+ $newcolor = str_replace('\'', '', $newcolor);
+ $value = str_replace(',', ' ', $value);
+
+ if(isset($theid)) {
+ $message_highlight_list[$theid] =
+ array( 'name' => $identname, 'color' => $newcolor,
+ 'value' => $value, 'match_type' => $match_type );
+ } else {
+ $message_highlight_list[] =
+ array( 'name' => $identname, 'color' => $newcolor,
+ 'value' => $value, 'match_type' => $match_type );
+ }
+
+ setPref($data_dir, $username, 'hililist', serialize($message_highlight_list));
}
displayPageHeader($color, 'None');
-?>
-
-
-[' . _("New") . ']'.
- ' - ['._("Done").']
'."\n";
-if (count($message_highlight_list) >= 1) {
- echo ''."\n";
- for ($i=0; $i < count($message_highlight_list); $i++) {
- echo ''.
- "".
- "[".
- _("Edit") .
- '] [' . _("Delete") . ']'.
- ' | '.
- htmlspecialchars($message_highlight_list[$i]['name']) .
- ' | '.
- $message_highlight_list[$i]['match_type'] . ' = ' .
- htmlspecialchars($message_highlight_list[$i]['value']).
- ' |
';
+/**
+ * Display the current rule list
+ */
+$rules = array();
+foreach($message_highlight_list as $index=>$rule) {
+ $a = array();
+
+ $a['Name'] = htmlspecialchars($rule['name']);
+ $a['Color'] = $rule['color'];
+ $a['MatchField'] = '';
+ $a['MatchValue'] = htmlspecialchars($rule['value']);
+ switch ($rule['match_type']) {
+ case 'from' :
+ $a['MatchField'] = _("From");
+ break;
+ case 'to' :
+ $a['MatchField'] = _("To");
+ break;
+ case 'cc' :
+ $a['MatchField'] = _("Cc");
+ break;
+ case 'to_cc' :
+ $a['MatchField'] = _("To or Cc");
+ break;
+ case 'subject' :
+ $a['MatchField'] = _("subject");
+ break;
}
- echo "
\n".
- "
\n";
-} else {
- echo '' . _("No highlighting is defined") . "
\n".
- "
\n";
+
+ $rules[$index] = $a;
}
+
+$oTemplate->assign('current_rules', $rules);
+
+$oTemplate->assign('add_rule', 'options_highlight.php?action=add');
+$oTemplate->assign('edit_rule', 'options_highlight.php?action=edit&theid=');
+$oTemplate->assign('delete_rule', 'options_highlight.php?action=delete&theid=');
+$oTemplate->assign('move_up', 'options_highlight.php?action=up&theid=');
+$oTemplate->assign('move_down', 'options_highlight.php?action=down&theid=');
+
+$oTemplate->display('options_highlight_list.tpl');
+
+/**
+ * Optionally, display the add/edit dialog
+ */
if ($action == 'edit' || $action == 'add') {
- if (!isset($theid))
- {
- $theid = count($message_highlight_list);
- $message_highlight_list[$theid] = array();
- }
$color_list[0] = '4444aa';
$color_list[1] = '44aa44';
@@ -229,123 +289,61 @@ if ($action == 'edit' || $action == 'add') {
$new_color_list["18,3"] = 'ff33ff';
$new_color_list["18,4"] = 'ff00ff';
- $selected_input = '';
- $selected_choose = '';
+ $selected_input = FALSE;
+ $selected_choose = FALSE;
+ $selected_predefined = FALSE;
- for ($i=0; $i < 14; $i++) {
- ${"selected".$i} = '';
- }
- if (isset($message_highlight_list[$theid]['color'])) {
+ $name = $action=='edit' && isset($theid) && isset($message_highlight_list[$theid]['name']) ? $message_highlight_list[$theid]['name'] : '';
+ $field = $action=='edit' && isset($theid) && isset($message_highlight_list[$theid]['match_type']) ? $message_highlight_list[$theid]['match_type'] : '';
+ $value = $action=='edit' && isset($theid) && isset($message_highlight_list[$theid]['value']) ? $message_highlight_list[$theid]['value'] : '';
+ $color = $action=='edit' && isset($theid) && isset($message_highlight_list[$theid]['color']) ? $message_highlight_list[$theid]['color'] : '';
+
+ if ($action == 'edit' && isset($theid) && isset($message_highlight_list[$theid]['color'])) {
for ($i=0; $i < 14; $i++) {
if ($color_list[$i] == $message_highlight_list[$theid]['color']) {
- $selected_choose = ' checked';
- ${"selected".$i} = ' selected';
- continue;
+ $selected_choose = TRUE;
+ continue;
}
+ }
}
- }
- if (!isset($message_highlight_list[$theid]['color']))
- $selected_choose = ' checked';
- else if ($selected_choose == '')
- $selected_input = ' checked';
-
- echo '\n";
}
do_hook('options_highlight_bottom');
-?>
-