/**
* 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-2007 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @version $Id$
+ * @package squirrelmail
+ * @subpackage prefs
*/
-/* Path for SquirrelMail required files. */
-define('SM_PATH','../');
+/** This is the options_highlight page */
+define('PAGE_NAME', 'options_highlight');
+
+/**
+ * Include the SquirrelMail initialization file.
+ */
+require('../include/init.php');
-/* SquirrelMail required files. */
-require_once(SM_PATH . 'include/validate.php');
-require_once(SM_PATH . 'functions/display_messages.php');
-require_once(SM_PATH . 'functions/imap.php');
-require_once(SM_PATH . 'functions/array.php');
-require_once(SM_PATH . 'functions/plugin.php');
-require_once(SM_PATH . 'functions/strings.php');
-require_once(SM_PATH . 'functions/html.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 "<option value=\"$val\"";
if ( $sel )
- echo ' selected';
+ echo ' selected="selected"';
echo ">$tit</option>\n";
}
$message_highlight_list = array();
}
-if ($action == 'delete' && isset($theid)) {
- removePref($data_dir, $username, "highlight$theid");
- header( "Location: $SCRIPT_NAME" );
+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 = str_replace(',', ' ', $identname);
+
if ($color_type == 1) $newcolor = $newcolor_choose;
elseif ($color_type == 2) $newcolor = $newcolor_input;
else $newcolor = $color_type;
- $newcolor = str_replace(',', '', $newcolor);
$newcolor = str_replace('#', '', $newcolor);
$newcolor = str_replace('"', '', $newcolor);
$newcolor = str_replace('\'', '', $newcolor);
$value = str_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;
+ 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');
-
-echo
-html_tag( 'table', "\n" .
- html_tag( 'tr', "\n" .
- html_tag( 'td', '<center><b>' . _("Options") . ' - ' . _("Message Highlighting") . '</b></center>', 'left')
- ),
- 'center', $color[9], 'width="95% border="0" cellpadding="1" cellspacing="0"' ) . "<br>\n" .
-html_tag( 'table', '', '', '', 'width="100% border="0" cellpadding="1" cellspacing="0"' ) .
- html_tag( 'tr' ) . "\n" .
- html_tag( 'td', '', 'left' );
-
-echo '<center>[<a href="options_highlight.php?action=add">' . _("New") . '</a>]'.
- ' - [<a href="options.php">'._("Done").'</a>]</center><br>'."\n";
-if (count($message_highlight_list) >= 1) {
- echo html_tag( 'table', '', 'center', '', 'width="80% border="0" cellpadding="3" cellspacing="0"' ) . "\n";
- for ($i=0; $i < count($message_highlight_list); $i++) {
- $match_type = '';
- switch ($message_highlight_list[$i]['match_type'] ) {
+displayPageHeader($color);
+
+/**
+ * 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' :
- $match_type = _("From");
- break;
+ $a['MatchField'] = _("From");
+ break;
case 'to' :
- $match_type = _("To");
- break;
+ $a['MatchField'] = _("To");
+ break;
case 'cc' :
- $match_type = _("Cc");
- break;
+ $a['MatchField'] = _("Cc");
+ break;
case 'to_cc' :
- $match_type = _("To or Cc");
- break;
+ $a['MatchField'] = _("To or Cc");
+ break;
case 'subject' :
- $match_type = _("subject");
- break;
- }
-
- echo html_tag( 'tr',
- html_tag( 'td',
- '<small>[<a href="options_highlight.php?action=edit&theid=' . $i . '">' .
- _("Edit") .
- '</a>] [<a href="options_highlight.php?action=delete&theid='.
- $i . '">' . _("Delete") . '</a>]</small>' ,
- 'left', $color[4], 'width="20%" nowrap' ) .
- html_tag( 'td',
- htmlspecialchars($message_highlight_list[$i]['name']) ,
- 'left' ) .
- html_tag( 'td',
- $match_type . ' = ' .
- htmlspecialchars($message_highlight_list[$i]['value']) ,
- 'left' ) ,
- '', $message_highlight_list[$i]['color'] ) . "\n";
+ $a['MatchField'] = _("subject");
+ break;
}
- echo "</table>\n".
- "<br>\n";
-} else {
- echo '<center>' . _("No highlighting is defined") . "</center><br>\n".
- "<br>\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';
$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'])) {
- $current_color = $message_highlight_list[$theid]['color'];
- }
- else {
- $current_color = '63aa7f';
+ }
}
+ $pre_defined_color = 0;
for($x = 0; $x < 5; $x++) {
for($y = 0; $y < 19; $y++) {
$gridindex = "$y,$x";
$gridcolor = $new_color_list[$gridindex];
- if ($gridcolor == $current_color) {
+ if ($gridcolor == $color) {
$pre_defined_color = 1;
break;
}
}
}
- if (!isset($message_highlight_list[$theid]['color']))
- $selected_choose = ' checked';
+ if (isset($theid) && !isset($message_highlight_list[$theid]['color']))
+ $selected_choose = TRUE;
else if ($pre_defined_color)
- $selected_predefined = ' checked';
+ $selected_predefined = TRUE;
else if ($selected_choose == '')
- $selected_input = ' checked';
-
- echo '<form name="f" action="options_highlight.php">' . "\n";
- echo '<input type="hidden" value="save" name="action">' . "\n";
- echo '<input type="hidden" value="'.$theid.'" name="theid">' . "\n";
- echo html_tag( 'table', '', 'center', '', 'width="80%" cellpadding="3" cellspacing="0" border="0"' ) . "\n";
- echo html_tag( 'tr', '', '', $color[0] ) . "\n";
- echo html_tag( 'td', '', 'right', '', 'nowrap' ) . "<b>\n";
- echo _("Identifying name") . ":";
- echo ' </b></td>' . "\n";
- echo html_tag( 'td', '', 'left' ) . "\n";
- if (isset($message_highlight_list[$theid]['name']))
- $disp = $message_highlight_list[$theid]['name'];
- else
- $disp = '';
- $disp = htmlspecialchars($disp);
- echo " <input type=\"text\" value=\"".$disp."\" name=\"identname\">";
- echo " </td>\n";
- echo " </tr>\n";
- echo html_tag( 'tr', html_tag( 'td', '<small><small> </small></small>', 'left' ) ) ."\n";
- echo html_tag( 'tr', '', '', $color[0] ) . "\n";
- echo html_tag( 'td', '<b>'. _("Color") . ':</b>', 'right' );
- echo html_tag( 'td', '', 'left' );
- echo " <input type=\"radio\" name=color_type value=1$selected_choose> <select name=newcolor_choose>\n";
- echo " <option value=\"$color_list[0]\"$selected0>" . _("Dark Blue") . "\n";
- echo " <option value=\"$color_list[1]\"$selected1>" . _("Dark Green") . "\n";
- echo " <option value=\"$color_list[2]\"$selected2>" . _("Dark Yellow") . "\n";
- echo " <option value=\"$color_list[3]\"$selected3>" . _("Dark Cyan") . "\n";
- echo " <option value=\"$color_list[4]\"$selected4>" . _("Dark Magenta") . "\n";
- echo " <option value=\"$color_list[5]\"$selected5>" . _("Light Blue") . "\n";
- echo " <option value=\"$color_list[6]\"$selected6>" . _("Light Green") . "\n";
- echo " <option value=\"$color_list[7]\"$selected7>" . _("Light Yellow") . "\n";
- echo " <option value=\"$color_list[8]\"$selected8>" . _("Light Cyan") . "\n";
- echo " <option value=\"$color_list[9]\"$selected9>" . _("Light Magenta") . "\n";
- echo " <option value=\"$color_list[10]\"$selected10>" . _("Dark Gray") . "\n";
- echo " <option value=\"$color_list[11]\"$selected11>" . _("Medium Gray") . "\n";
- echo " <option value=\"$color_list[12]\"$selected12>" . _("Light Gray") . "\n";
- echo " <option value=\"$color_list[13]\"$selected13>" . _("White") . "\n";
- echo " </select><br>\n";
- echo " <input type=\"radio\" name=color_type value=2$selected_input> ". _("Other:") ."<input type=\"text\" value=\"";
- if ($selected_input) echo $message_highlight_list[$theid]["color"];
- echo '" name="newcolor_input" size="7"> '._("Ex: 63aa7f")."<br>\n";
- echo " </td>\n";
- echo " </tr>\n";
-
- # Show grid of color choices
- echo html_tag( 'tr', '', '', $color[0] ) . "\n";
- echo html_tag( 'td', '', 'left', '', 'colspan="2"' );
- echo html_tag( 'table', '', 'center', '', 'border=0 cellpadding="2" cellspacing="1"' ) . "\n";
-
- for($x = 0; $x < 5; $x++) {
- echo html_tag( 'tr' ) . "\n";
- for($y = 0; $y < 19; $y++) {
- $gridindex = "$y,$x";
- $gridcolor = $new_color_list[$gridindex];
- $selected = ($gridcolor == $current_color) ? ' checked' : '' ;
- echo html_tag( 'td', '<input type="radio" name="color_type" value="#' . $gridcolor .'"' . $selected . '>', 'left', $gridcolor, 'colspan="2"' );
- }
- echo "</tr>\n";
+ $selected_input = TRUE;
+
+ $oTemplate->assign('rule_name', $name);
+ $oTemplate->assign('rule_value', $value);
+ $oTemplate->assign('rule_field', $field);
+ $oTemplate->assign('rule_color', $color);
+ $oTemplate->assign('color_radio', ($selected_choose ? 1 : ($selected_input ? 2 : 0)));
+ $oTemplate->assign('color_input', ($selected_input ? $color : ''));
+
+ echo addForm('options_highlight.php', 'post', 'f').
+ addHidden('action', 'save');
+ if($action == 'edit') {
+ echo addHidden('theid', (isset($theid)?$theid:''));
}
- echo "</table>\n";
- echo "</td></tr>\n";
-
- echo html_tag( 'tr', html_tag( 'td', '<small><small> </small></small>', 'left' ) ) . "\n";
- echo html_tag( 'tr', '', '', $color[0] ) . "\n";
- echo html_tag( 'td', '', 'center', '', 'colspan="2"' ) . "\n";
- echo " <select name=match_type>\n";
- oh_opt( 'from',
- ($message_highlight_list[$theid]['match_type'] == 'from'),
- _("From") );
- oh_opt( 'to',
- ($message_highlight_list[$theid]['match_type'] == 'to'),
- _("To") );
- oh_opt( 'cc',
- ($message_highlight_list[$theid]['match_type'] == 'cc'),
- _("Cc") );
- oh_opt( 'to_cc',
- ($message_highlight_list[$theid]['match_type'] == 'to_cc'),
- _("To or Cc") );
- oh_opt( 'subject',
- ($message_highlight_list[$theid]['match_type'] == 'subject'),
- _("Subject") );
- echo " </select>\n";
- echo '<b>' . _("Matches") . ':</b> ';
- if (isset($message_highlight_list[$theid]['value']))
- $disp = $message_highlight_list[$theid]['value'];
- else
- $disp = '';
- $disp = htmlspecialchars($disp);
- echo ' <input type="text" value="' . $disp .
- '" name="value" size=40>';
- echo " </td>\n";
- echo " </tr>\n";
- echo "</table>\n";
- echo '<center><input type="submit" value="' . _("Submit") . "\"></center>\n";
+
+ $oTemplate->display('options_highlight_addedit.tpl');
+
echo "</form>\n";
}
-do_hook('options_highlight_bottom');
-?>
-</body></html>
+do_hook('options_highlight_bottom', $null);
+
+$oTemplate->display('footer.tpl');