cfec51a9b59e0ac714d52cca2fe8e9008921b221
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);
84 setPref($data_dir, $username, 'pf_subtle_link', $new_pf_subtle_link);
85 setPref($data_dir, $username, 'pf_cleandisplay', $new_pf_cleandisplay);
87 $js_autodetect_results = (isset($new_js_autodetect_results) ?
$new_js_autodetect_results : SMPREF_JS_OFF
);
88 if ($new_javascript_setting == SMPREF_JS_AUTODETECT
) {
89 if ($js_autodetect_results == SMPREF_JS_ON
) {
90 setPref($data_dir, $username, 'javascript_on', SMPREF_JS_ON
);
92 setPref($data_dir, $username, 'javascript_on', SMPREF_JS_OFF
);
95 setPref($data_dir, $username, 'javascript_on', $new_javascript_setting);
98 do_hook('options_display_save');
100 echo '<br><b>'._("Successfully saved display preferences!").'</b><br>';
101 echo '<a href="../src/webmail.php?right_frame=options.php" target=_top>' . _("Refresh Page") . '</a><br>';
102 } else if (isset($submit_folder)) {
103 /* Save trash folder preferences. */
104 if ($new_trash_folder != SMPREF_NONE
) {
105 setPref($data_dir, $username, 'move_to_trash', SMPREF_ON
);
106 setPref($data_dir, $username, 'trash_folder', $new_trash_folder);
108 setPref($data_dir, $username, 'move_to_trash', SMPREF_OFF
);
109 setPref($data_dir, $username, 'trash_folder', SMPREF_NONE
);
112 /* Save sent folder preferences. */
113 if ($new_sent_folder != SMPREF_NONE
) {
114 setPref($data_dir, $username, 'move_to_sent', SMPREF_ON
);
115 setPref($data_dir, $username, 'sent_folder', $new_sent_folder);
117 setPref($data_dir, $username, 'move_to_sent', SMPREF_OFF
);
118 setPref($data_dir, $username, 'sent_folder', SMPREF_NONE
);
121 /* Save draft folder preferences. */
122 if ($new_draft_folder != SMPREF_NONE
) {
123 setPref($data_dir, $username, 'save_as_draft', SMPREF_ON
);
124 setPref($data_dir, $username, 'draft_folder', $new_draft_folder);
126 setPref($data_dir, $username, 'save_as_draft', SMPREF_OFF
);
127 setPref($data_dir, $username, 'draft_folder', SMPREF_NONE
);
130 /* Save folder prefix preferences. */
131 if (isset($folderprefix)) {
132 setPref($data_dir, $username, 'folder_prefix', $folderprefix);
134 setPref($data_dir, $username, 'folder_prefix', '');
137 setPref($data_dir, $username, 'location_of_bar', $new_location_of_bar);
138 setPref($data_dir, $username, 'left_size', $new_left_size);
139 setPref($data_dir, $username, 'left_refresh', $new_left_refresh);
140 setPref($data_dir, $username, 'unseen_notify', $new_unseen_notify);
141 setPref($data_dir, $username, 'unseen_type', $new_unseen_type);
142 setPref($data_dir, $username, 'collapse_folders', $new_collapse_folders);
143 setPref($data_dir, $username, 'date_format', $new_date_format);
144 setPref($data_dir, $username, 'hour_format', $new_hour_format);
146 do_hook('options_folders_save');
147 echo '<br><b>'._("Successfully saved folder preferences!").'</b><br>';
148 echo '<a href="../src/left_main.php" target=left>' . _("Refresh Folder List") . '</a><br>';
150 do_hook('options_save');
153 /****************************************/
154 /* Now build our array of option pages. */
155 /****************************************/
157 /* Build a section for Personal Options. */
158 $optionpages[] = array(
159 'name' => _("Personal Information"),
160 'url' => 'options_personal.php',
161 'desc' => _("This contains personal information about yourself such as your name, your email address, etc."),
165 /* Build a section for Display Options. */
166 $optionpages[] = array(
167 'name' => _("Display Preferences"),
168 'url' => 'options_display.php',
169 'desc' => _("You can change the way that SquirrelMail looks and displays information to you, such as the colors, the language, and other settings."),
173 /* Build a section for Message Highlighting Options. */
174 $optionpages[] = array(
175 'name' =>_("Message Highlighting"),
176 'url' => 'options_highlight.php',
177 '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."),
181 /* Build a section for Folder Options. */
182 $optionpages[] = array(
183 'name' => _("Folder Preferences"),
184 'url' => 'options_folder.php',
185 'desc' => _("These settings change the way your folders are displayed and manipulated."),
189 /* Build a section for Index Order Options. */
190 $optionpages[] = array(
191 'name' => _("Index Order"),
192 'url' => 'options_order.php',
193 'desc' => _("The order of the message index can be rearanged and changed to contain the headers in any order you want."),
196 /* Build a section for plugins wanting to register an optionpage. */
197 do_hook('options_register');
199 /*****************************************************/
200 /* Let's sort Javascript Option Pages to the bottom. */
201 /*****************************************************/
202 $js_optionpages = array();
203 $reg_optionpages = array();
204 foreach ($optionpages as $optpage) {
205 if (!$optpage['js']) {
206 $reg_optionpages[] = $optpage;
207 } else if ($javascript_on == SMPREF_JS_ON
) {
208 $js_optionpages[] = $optpage;
211 $optionpages = array_merge($reg_optionpages, $js_optionpages);
213 /********************************************/
214 /* Now, print out each option page section. */
215 /********************************************/
216 $first_optpage = false;
217 echo "<table bgcolor=\"$color[4]\" width=\"100%\" cellpadding=0 cellspacing=5 border=0>" .
218 '<tr><td valign="top">' .
219 '<table width="100%" cellpadding="3" cellspacing="0" border="0">';
220 foreach ($optionpages as $next_optpage) {
221 if ($first_optpage == false) {
222 $first_optpage = $next_optpage;
224 print_optionpages_row($first_optpage, $next_optpage);
225 $first_optpage = false;
229 if ($first_optpage != false) {
230 print_optionpages_row($first_optpage);
237 do_hook('options_link_and_description');
250 /*******************************************************************/
251 /* Please be warned. The code below this point sucks. This is just */
252 /* my first implementation to make the option rows work for both */
253 /* Javascript and non-Javascript option chunks. */
255 /* Please, someone make these better for me. All three functions */
256 /* below REALLY do close to the same thing. */
258 /* This code would be GREATLY improved by a templating system. */
259 /* Don't try to implement that now, however. That will come later. */
260 /*******************************************************************/
262 /*******************************************************************/
263 /* Actually, now that I think about it, don't do anything with */
264 /* this code yet. There is ACTUALLY supposed to be a difference */
265 /* between the three functions that write the option rows. I just */
266 /* have not yet gotten to integrating that yet. */
267 /*******************************************************************/
270 * This function prints out an option page row.
272 function print_optionpages_row($leftopt, $rightopt = false) {
276 "<td valign=top bgcolor=\"$color[9]\" width=\"50%\">" .
277 '<a href="' . $leftopt['url'] . '">' . $leftopt['name'] . '</a>'.
279 "<td valign=top bgcolor=\"$color[4]\"> </td>";
281 echo "<td valign=top bgcolor=\"$color[9]\" width=\"50%\">" .
282 '<a href="' . $rightopt['url'] . '">' . $rightopt['name'] . '</a>' .
285 echo "<td valign=top bgcolor=\"$color[4]\" width=\"50%\"> </td>";
290 "<td valign=top bgcolor=\"$color[0]\">" .
293 "<td valign=top bgcolor=\"$color[4]\"> </td>";
295 echo "<td valign=top bgcolor=\"$color[0]\">" .
299 echo "<td valign=top bgcolor=\"$color[4]\"> </td>";