/**
* options.php
*
- * Copyright (c) 1999-2003 The SquirrelMail Project Team
+ * Copyright (c) 1999-2005 The SquirrelMail Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
*
* Displays the options page. Pulls from proper user preference files
* and config.php. Displays preferences as selected and other options.
*
- * $Id$
+ * @version $Id$
* @package squirrelmail
*/
-/** Path for SquirrelMail required files. */
+/**
+ * Path for SquirrelMail required files.
+ * @ignore
+ */
define('SM_PATH','../');
/* SquirrelMail required files. */
require_once(SM_PATH . 'functions/options.php');
require_once(SM_PATH . 'functions/strings.php');
require_once(SM_PATH . 'functions/html.php');
+require_once(SM_PATH . 'functions/forms.php');
/*********************************/
/*** Build the resultant page. ***/
define('SMOPT_PAGE_MAIN', 'main');
define('SMOPT_PAGE_PERSONAL', 'personal');
define('SMOPT_PAGE_DISPLAY', 'display');
+define('SMOPT_PAGE_COMPOSE', 'compose');
define('SMOPT_PAGE_HIGHLIGHT', 'highlight');
define('SMOPT_PAGE_FOLDER', 'folder');
define('SMOPT_PAGE_ORDER', 'order');
echo "name = '$option->name', "
. "value = '$option->value', "
. "new_value = '$option->new_value'\n";
- echo "<br>";
+ echo "<br />";
*/
if ($option->changed()) {
$option->save();
}
/*
- * First, set the load information for each option page.
+ * First, set the load information for each option page.
*/
/* Initialize load information variables. */
/* Set the load information for each page. */
switch ($optpage) {
- case SMOPT_PAGE_MAIN:
+ case SMOPT_PAGE_MAIN:
break;
case SMOPT_PAGE_PERSONAL:
$optpage_name = _("Personal Information");
$optpage_loader = 'load_optpage_data_display';
$optpage_loadhook = 'optpage_loadhook_display';
break;
+ case SMOPT_PAGE_COMPOSE:
+ $optpage_name = _("Compose Preferences");
+ $optpage_file = SM_PATH . 'include/options/compose.php';
+ $optpage_loader = 'load_optpage_data_compose';
+ $optpage_loadhook = 'optpage_loadhook_compose';
+ break;
case SMOPT_PAGE_HIGHLIGHT:
$optpage_name = _("Message Highlighting");
$optpage_file = SM_PATH . 'include/options/highlight.php';
$optpage = SMOPT_PAGE_MAIN;
} else if ($optpage != SMOPT_PAGE_MAIN ) {
/* Include the file for this optionpage. */
-
+
require_once($optpage_file);
/* Assemble the data for this option page. */
/*** Next, process anything that needs to be processed. ***/
/***********************************************************/
+$optpage_save_error=array();
+
if ( isset( $optpage_data ) ) {
switch ($optmode) {
case SMOPT_MODE_SUBMIT:
case SMOPT_PAGE_FOLDER:
$save_hook_name = 'options_folder_save';
break;
- default:
+ default:
$save_hook_name = 'options_save';
break;
}
echo html_tag( 'table', '', 'center', $color[0], 'width="95%" cellpadding="1" cellspacing="0" border="0"' ) . "\n" .
html_tag( 'tr' ) . "\n" .
html_tag( 'td', '', 'center' ) .
- "<b>$optpage_title</b><br>\n".
+ "<b>$optpage_title</b><br />\n".
html_tag( 'table', '', '', '', 'width="100%" cellpadding="5" cellspacing="0" border="0"' ) . "\n" .
html_tag( 'tr' ) . "\n" .
html_tag( 'td', '', 'center', $color[4] ) . "\n";
if (!isset($frame_top)) {
$frame_top = '_top';
}
- /* Display a message indicating a successful save. */
- echo '<b>' . _("Successfully Saved Options") . ": $optpage_name</b><br>\n";
+
+ if (isset($optpage_save_error) && $optpage_save_error!=array()) {
+ echo "<font color=\"$color[2]\"><b>" . _("Error(s) occurred while saving your options") . "</b></font><br />\n";
+ echo "<ul>\n";
+ foreach ($optpage_save_error as $error_message) {
+ echo '<li><small>' . $error_message . "</small></li>\n";
+ }
+ echo "</ul>\n";
+ echo '<b>' . _("Some of your preference changes were not applied.") . "</b><br />\n";
+ } else {
+ /* Display a message indicating a successful save. */
+ echo '<b>' . _("Successfully Saved Options") . ": $optpage_name</b><br />\n";
+ }
/* If $max_refresh != SMOPT_REFRESH_NONE, provide a refresh link. */
if ( !isset( $max_refresh ) ) {
} else if ($max_refresh == SMOPT_REFRESH_FOLDERLIST) {
- if ($use_frames)
- echo '<a href="../src/left_main.php" target="left">' . _("Refresh Folder List") . '</a><br>';
- else
- echo '<a href="../src/options.php">' . _("Refresh Folder List") . '</a><br>';
+ echo '<a href="../src/left_main.php" target="left">' . _("Refresh Folder List") . '</a><br />';
} else if ($max_refresh) {
- echo '<a href="../src/webmail.php?right_frame=options.php" target="' . $frame_top . '">' . _("Refresh Page") . '</a><br>';
+ echo '<a href="../src/webmail.php?right_frame=options.php" target="' . $frame_top . '">' . _("Refresh Page") . '</a><br />';
}
}
/******************************************/
$optpage_blocks[] = array(
'name' =>_("Message Highlighting"),
'url' => 'options_highlight.php',
- 'desc' =>_("Based upon given criteria, incoming messages can have different background colors in the message list. This helps to easily distinguish who the messages are from, especially for mailing lists."),
+ 'desc' =>_("Based upon given criteria, incoming messages can have different background colors in the message list. This helps to easily distinguish who the messages are from, especially for mailing lists."),
'js' => false
);
'desc' => _("The order of the message index can be rearranged and changed to contain the headers in any order you want."),
'js' => false
);
+
+ /* Build a section for Compose Options. */
+ $optpage_blocks[] = array(
+ 'name' => _("Compose Preferences"),
+ 'url' => 'options.php?optpage=' . SMOPT_PAGE_COMPOSE,
+ 'desc' => _("Control the behaviour and layout of writing new mail messages, replying to and forwarding messages."),
+ 'js' => false
+ );
/* Build a section for plugins wanting to register an optionpage. */
do_hook('optpage_register_block');
/* If we are not looking at the main option page, display the page here. */
/*************************************************************************/
} else {
- echo '<form name="f" action="options.php" method="post"><br>' . "\n"
+ echo addForm('options.php', 'post', 'f')
. create_optpage_element($optpage)
. create_optmode_element(SMOPT_MODE_SUBMIT)
- . html_tag( 'table', '', '', '', 'width="100%" cellpadding="2" cellspacing="0" border="0"' ) . "\n"
- . html_tag( 'tr' ) . "\n"
- . html_tag( 'td', '', 'left' ) . "\n";
+ . html_tag( 'table', '', '', '', 'width="100%" cellpadding="2" cellspacing="0" border="0"' ) . "\n";
/* Output the option groups for this page. */
print_option_groups($optpage_data['options']);
/* If it is not empty, trigger the inside hook. */
if ($inside_hook_name != '') {
- do_hook($inside_hook_name);
+ do_hook($inside_hook_name);
}
/* Spit out a submit button. */
OptionSubmit($submit_name);
- echo '</td></tr></table></form>';
+ echo '</table></form>';
/* If it is not empty, trigger the bottom hook. */
if ($bottom_hook_name != '') {
- do_hook($bottom_hook_name);
+ do_hook($bottom_hook_name);
}
}
-
-echo '</td></tr>' .
- '</table>'.
- '</td></tr>'.
- '</table>';
-
-noframes_bottom();
-
-
-?>
\ No newline at end of file
+?>
+</td></tr>
+</table>
+</td></tr>
+</table>
+</body></html>