a7b9a08f4aa3dab329cdd6e4517d586005f56735
5 * Copyright (c) 1999-2001 The SquirrelMail Development Team
6 * Licensed under the GNU GPL. For full terms see the file COPYING.
8 * Displays the options page. Pulls from proper user preference files
9 * and config.php. Displays preferences as selected and other options.
14 require_once('../src/validate.php');
15 require_once('../functions/display_messages.php');
16 require_once('../functions/imap.php');
17 require_once('../functions/array.php');
19 ereg ("(^.*/)[^/]+/[^/]+$", $PHP_SELF, $regs);
22 if (isset($language)) {
23 setcookie('squirrelmail_language', $language, time()+
2592000, $base_uri);
24 $squirrelmail_language = $language;
27 displayPageHeader($color, _("None"));
32 <table bgcolor
="<?php echo $color[0] ?>" width
="95%" align
="center" cellpadding
="2" cellspacing
="0" border
="0">
33 <tr
><td align
="center">
34 <b
><?php
echo _("Options") ?
></b
><br
>
36 <table width
="100%" border
="0" cellpadding
="5" cellspacing
="0">
37 <tr
><td bgcolor
="<?php echo $color[4] ?>" align
="center">
40 if (isset($submit_personal)) {
41 /* Save personal information. */
42 setPref($data_dir, $username, 'full_name', $new_full_name);
43 setPref($data_dir, $username, 'email_address', $new_email_address);
44 setPref($data_dir, $username, 'reply_to', $new_reply_to);
45 setPref($data_dir, $username, 'reply_citation_style', $new_reply_citation_style);
46 setPref($data_dir, $username, 'reply_citation_start', $new_reply_citation_start);
47 setPref($data_dir, $username, 'reply_citation_end', $new_reply_citation_end);
48 setPref($data_dir, $username, 'use_signature', $new_use_signature);
49 setPref($data_dir, $username, 'prefix_sig', $new_prefix_sig);
50 setSig($data_dir, $username, $new_signature_abs);
52 do_hook('options_personal_save');
54 echo '<br><b>'._("Successfully saved personal information!").'</b><br>';
55 } else if (isset($submit_display)) {
56 /* Do checking to make sure $new_theme is in the array. */
57 $theme_in_array = false;
58 for ($i=0; $i < count($theme); $i++
) {
59 if ($theme[$i]['PATH'] == $new_chosen_theme) {
60 $theme_in_array = true;
64 if (!$theme_in_array) {
65 $new_chosen_theme = '';
68 /* Save display preferences. */
69 setPref($data_dir, $username, 'chosen_theme', $new_chosen_theme);
70 setPref($data_dir, $username, 'language', $new_language);
71 setPref($data_dir, $username, 'use_javascript_addr_book', $new_use_javascript_addr_book);
72 setPref($data_dir, $username, 'javascript_setting', $new_javascript_setting);
73 setPref($data_dir, $username, 'show_num', $new_show_num);
74 setPref($data_dir, $username, 'wrap_at', $new_wrap_at);
75 setPref($data_dir, $username, 'editor_size', $new_editor_size);
76 setPref($data_dir, $username, 'location_of_buttons', $new_location_of_buttons);
77 setPref($data_dir, $username, 'alt_index_colors', $new_alt_index_colors);
78 setPref($data_dir, $username, 'show_html_default', $new_show_html_default);
79 setPref($data_dir, $username, 'include_self_reply_all', $new_include_self_reply_all);
80 setPref($data_dir, $username, 'page_selector', $new_page_selector);
81 setPref($data_dir, $username, 'page_selector_max', $new_page_selector_max);
82 setPref($data_dir, $username, 'show_xmailer_default', $new_show_xmailer_default);
83 setPref($data_dir, $username, 'attachment_common_show_images', $new_attachment_common_show_images);
85 $js_autodetect_results = (isset($new_js_autodetect_results) ?
$new_js_autodetect_results : SMPREF_JS_OFF
);
86 if ($new_javascript_setting == SMPREF_JS_AUTODETECT
) {
87 if ($js_autodetect_results == SMPREF_JS_ON
) {
88 setPref($data_dir, $username, 'javascript_on', SMPREF_JS_ON
);
90 setPref($data_dir, $username, 'javascript_on', SMPREF_JS_OFF
);
93 setPref($data_dir, $username, 'javascript_on', $new_javascript_setting);
96 do_hook('options_display_save');
98 echo '<br><b>'._("Successfully saved display preferences!").'</b><br>';
99 echo '<a href="../src/webmail.php?right_frame=options.php" target=_top>' . _("Refresh Page") . '</a><br>';
100 } else if (isset($submit_folder)) {
101 /* Save trash folder preferences. */
102 if ($new_trash_folder != SMPREF_NONE
) {
103 setPref($data_dir, $username, 'move_to_trash', SMPREF_ON
);
104 setPref($data_dir, $username, 'trash_folder', $new_trash_folder);
106 setPref($data_dir, $username, 'move_to_trash', SMPREF_OFF
);
107 setPref($data_dir, $username, 'trash_folder', SMPREF_NONE
);
110 /* Save sent folder preferences. */
111 if ($new_sent_folder != SMPREF_NONE
) {
112 setPref($data_dir, $username, 'move_to_sent', SMPREF_ON
);
113 setPref($data_dir, $username, 'sent_folder', $new_sent_folder);
115 setPref($data_dir, $username, 'move_to_sent', SMPREF_OFF
);
116 setPref($data_dir, $username, 'sent_folder', SMPREF_NONE
);
119 /* Save draft folder preferences. */
120 if ($new_draft_folder != SMPREF_NONE
) {
121 setPref($data_dir, $username, 'save_as_draft', SMPREF_ON
);
122 setPref($data_dir, $username, 'draft_folder', $new_draft_folder);
124 setPref($data_dir, $username, 'save_as_draft', SMPREF_OFF
);
125 setPref($data_dir, $username, 'draft_folder', SMPREF_NONE
);
128 /* Save folder prefix preferences. */
129 if (isset($folderprefix)) {
130 setPref($data_dir, $username, 'folder_prefix', $folderprefix);
132 setPref($data_dir, $username, 'folder_prefix', '');
135 setPref($data_dir, $username, 'location_of_bar', $new_location_of_bar);
136 setPref($data_dir, $username, 'left_size', $new_left_size);
137 setPref($data_dir, $username, 'left_refresh', $new_left_refresh);
138 setPref($data_dir, $username, 'unseen_notify', $new_unseen_notify);
139 setPref($data_dir, $username, 'unseen_type', $new_unseen_type);
140 setPref($data_dir, $username, 'collapse_folders', $new_collapse_folders);
141 setPref($data_dir, $username, 'date_format', $new_date_format);
142 setPref($data_dir, $username, 'hour_format', $new_hour_format);
144 do_hook('options_folders_save');
145 echo '<br><b>'._("Successfully saved folder preferences!").'</b><br>';
146 echo '<a href="../src/left_main.php" target=left>' . _("Refresh Folder List") . '</a><br>';
148 do_hook('options_save');
151 /****************************************/
152 /* Now build our array of option pages. */
153 /****************************************/
155 /* Build a section for Personal Options. */
156 $optionpages[] = array(
157 'name' => _("Personal Information"),
158 'url' => 'options_personal.php',
159 'desc' => _("This contains personal information about yourself such as your name, your email address, etc."),
163 /* Build a section for Display Options. */
164 $optionpages[] = array(
165 'name' => _("Display Preferences"),
166 'url' => 'options_display.php',
167 'desc' => _("You can change the way that SquirrelMail looks and displays information to you, such as the colors, the language, and other settings."),
171 /* Build a section for Message Highlighting Options. */
172 $optionpages[] = array(
173 'name' =>_("Message Highlighting"),
174 'url' => 'options_highlight.php',
175 '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."),
179 /* Build a section for Folder Options. */
180 $optionpages[] = array(
181 'name' => _("Folder Preferences"),
182 'url' => 'options_folder.php',
183 'desc' => _("These settings change the way your folders are displayed and manipulated."),
187 /* Build a section for Index Order Options. */
188 $optionpages[] = array(
189 'name' => _("Index Order"),
190 'url' => 'options_order.php',
191 'desc' => _("The order of the message index can be rearanged and changed to contain the headers in any order you want."),
194 /* Build a section for plugins wanting to register an optionpage. */
195 do_hook('options_register');
197 /*****************************************************/
198 /* Let's sort Javascript Option Pages to the bottom. */
199 /*****************************************************/
200 $js_optionpages = array();
201 $reg_optionpages = array();
202 foreach ($optionpages as $optpage) {
203 if (!$optpage['js']) {
204 $reg_optionpages[] = $optpage;
205 } else if ($javascript_on == SMPREF_JS_ON
) {
206 $js_optionpages[] = $optpage;
209 $optionpages = array_merge($reg_optionpages, $js_optionpages);
211 /********************************************/
212 /* Now, print out each option page section. */
213 /********************************************/
214 $first_optpage = false;
215 foreach ($optionpages as $next_optpage) {
216 if ($first_optpage == false) {
217 $first_optpage = $next_optpage;
219 print_optionpages_row($first_optpage, $next_optpage);
220 $first_optpage = false;
224 if ($first_optpage != false) {
225 print_optionpages_row($first_optpage);
228 do_hook('options_link_and_description');
241 /*******************************************************************/
242 /* Please be warned. The code below this point sucks. This is just */
243 /* my first implementation to make the option rows work for both */
244 /* Javascript and non-Javascript option chunks. */
246 /* Please, someone make these better for me. All three functions */
247 /* below REALLY do close to the same thing. */
249 /* This code would be GREATLY improved by a templating system. */
250 /* Don't try to implement that now, however. That will come later. */
251 /*******************************************************************/
253 /*******************************************************************/
254 /* Actually, now that I think about it, don't do anything with */
255 /* this code yet. There is ACTUALLY supposed to be a difference */
256 /* between the three functions that write the option rows. I just */
257 /* have not yet gotten to integrating that yet. */
258 /*******************************************************************/
261 * This function prints out an option page row.
263 function print_optionpages_row($leftopt, $rightopt = false) {
266 echo "<table bgcolor=\"$color[4]\" width=\"100%\" cellpadding=0 cellspacing=5 border=0>" .
267 '<tr><td valign="top">' .
268 '<table width="100%" cellpadding="3" cellspacing="0" border="0">' .
270 "<td valign=top bgcolor=\"$color[9]\" width=\"50%\">" .
271 '<a href="' . $leftopt['url'] . '">' . $leftopt['name'] . '</a>'.
273 "<td valign=top bgcolor=\"$color[4]\"> </td>";
275 echo "<td valign=top bgcolor=\"$color[9]\" width=\"50%\">" .
276 '<a href="' . $rightopt['url'] . '">' . $rightopt['name'] . '</a>' .
279 echo "<td valign=top bgcolor=\"$color[4]\" width=\"50%\"> </td>";
284 "<td valign=top bgcolor=\"$color[0]\">" .
287 "<td valign=top bgcolor=\"$color[4]\"> </td>";
289 echo "<td valign=top bgcolor=\"$color[0]\">" .
293 echo "<td valign=top bgcolor=\"$color[4]\"> </td>";