* Loads preferences from the $username.pref file used by almost
* every other script in the source directory and alswhere.
*
- * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @copyright © 1999-2007 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
* FIXME: PHP CGI (at least on IIS 5.1) does not set 'SCRIPT_FILENAME' and
* code does not handle magic_quotes_gpc=on.
*/
-if ((isset($_SERVER['SCRIPT_FILENAME']) && $_SERVER['SCRIPT_FILENAME'] == __FILE__) ||
- (isset($HTTP_SERVER_SERVER['SCRIPT_FILENAME']) && $HTTP_SERVER_SERVER['SCRIPT_FILENAME'] == __FILE__) ) {
+if (isset($_SERVER['SCRIPT_FILENAME']) && $_SERVER['SCRIPT_FILENAME'] == __FILE__) {
header("Location: ../src/login.php");
die();
}
$sDefaultTemplateID = Template::get_default_template_set();
$sTemplateID = getPref($data_dir, $username, 'sTemplateID', $sDefaultTemplateID);
-// check user prefs template selection against templates actually available
-//
-$found_templateset = false;
-for ($i = 0; $i < count($aTemplateSet); ++$i){
- if ($aTemplateSet[$i]['ID'] == $sTemplateID) {
- $found_templateset = true;
- break;
- }
-}
-// FIXME: do we need/want to check here for actual presence of template sets?
-// selected template not available, fall back to default template
+// load user theme
//
-if (!$found_templateset) $sTemplateID = $sDefaultTemplateID;
-
-// Load user theme
$chosen_theme = getPref($data_dir, $username, 'chosen_theme');
-$found_theme = false;
$chosen_theme_path = empty($chosen_theme) ?
- $chosen_theme_path = 'u_'.$user_themes[$user_theme_default]['PATH'] :
+ $chosen_theme_path = $user_themes[$user_theme_default]['PATH'] :
$chosen_theme;
-// Make sure the chosen theme is a legitimate one.
-// need to adjust $chosen_theme path with SM_PATH
-$chosen_theme_path = preg_replace("/(\.\.\/){1,}/", SM_PATH, $chosen_theme_path);
-$k = 0;
-while (!$found_theme && $k < count($user_themes)) {
- if ('u_'.$user_themes[$k]['PATH'] == $chosen_theme_path)
- $found_theme = true;
- $k++;
-}
-/**
- * $oTemplate is not instantiated when this is called, so we need to devise
- * a method of fething a list of tempalte-provided alt stylesheets to validate
- * against. For now, we assume that it is always found.
- *
- * FIXME: fix this.
-PL: See include/init.php commit from 2 days ago, Template class should be
- loaded before this file is, so the commented-out code below will probably
- work
-SB: Nope, still get errors.
- */
-#$template_themes = $oTemplate->get_alternative_stylesheets();
-#while (!$found_theme && (list($path, $name) = each($template_themes))) {
-# if ('t_'.$path == $chosen_theme_path)
-# $found_theme = true;
-#}
-if (substr($chosen_theme, 0, 2) == 't_')
- $found_theme = true;
-
-if (!$found_theme || $chosen_theme == 'none') {
- $chosen_theme_path = NULL;
-}
-
-/* PL: Steve, is this commented out because it is part of the old system being removed?
- Let's just remove it then... no?
-
- SB: Holding on to incase I need to reference later. Will remove eventually. :)
-
-$theme = ( !isset($theme) ? array() : $theme );
-$color = ( !isset($color) ? array() : $color );
-
-$chosen_theme = getPref($data_dir, $username, 'chosen_theme');
-$found_theme = false;
-
-// need to adjust $chosen_theme path with SM_PATH
-$chosen_theme = preg_replace("/(\.\.\/){1,}/", SM_PATH, $chosen_theme);
-
-for ($i = 0; $i < count($theme); ++$i){
- if ($theme[$i]['PATH'] == $chosen_theme) {
- $found_theme = true;
- break;
- }
-}
-
-$chosen_theme = (!$found_theme ? '' : $chosen_theme);
-
-if (isset($chosen_theme) && $found_theme && (file_exists($chosen_theme))) {
- @include_once($chosen_theme);
-} else {
- if (isset($theme) && isset($theme[$theme_default]) && file_exists($theme[$theme_default]['PATH'])) {
- @include_once($theme[$theme_default]['PATH']);
- $chosen_theme = $theme[$theme_default]['PATH'];
- }
-}
-
-*/
// user's icon theme, if using icons
$icon_theme = getPref($data_dir, $username, 'icon_theme');
$default_icon_theme = $icon_themes[$icon_theme_def]['PATH'];
+$fallback_icon_theme = $icon_themes[$icon_theme_fallback]['PATH'];
$found_theme = false;
// Make sure the chosen icon theme is a legitimate one.
$icon_theme = $default_icon_theme;
}
-/*
- * NOTE: The $icon_theme_path var should contain the path to the icon
- * theme to use. If the admin has disabled icons, or the user has
- * set the icon theme to "None," no icons will be used.
- */
-$icon_theme_path = (!$use_icons || $icon_theme=='none') ? NULL : ($icon_theme == 'template' ? Template::calculate_template_images_directory($sTemplateID) : $icon_theme);
// show (or not) flag and unflag buttons on mailbox list screen
$show_flag_buttons = getPref($data_dir, $username, 'show_flag_buttons', SMPREF_ON );
$left_refresh = getPref($data_dir, $username, 'left_refresh', 600 );
$left_refresh = strtolower($left_refresh);
-/* Load up the Signature file */
-$signature_abs = $signature = getSig($data_dir, $username, 'g');
-
/* Message Highlighting Rules */
$message_highlight_list = array();
$show_html_default =
getPref($data_dir, $username, 'show_html_default', SMPREF_ON);
+$addrsrch_fullname =
+ getPref($data_dir, $username, 'addrsrch_fullname', SMPREF_ON);
+
$enable_forward_as_attachment =
getPref($data_dir, $username, 'enable_forward_as_attachment', SMPREF_ON);
$compact_paginator = getPref($data_dir, $username, 'compact_paginator', SMPREF_OFF);
$page_selector_max = getPref($data_dir, $username, 'page_selector_max', 10);
+/* Abook page selector options */
+$abook_show_num = getPref($data_dir, $username, 'abook_show_num', 15 );
+$abook_page_selector = getPref($data_dir, $username, 'abook_page_selector', SMPREF_ON);
+$abook_compact_paginator = getPref($data_dir, $username, 'abook_compact_paginator', SMPREF_OFF);
+$abook_page_selector_max = getPref($data_dir, $username, 'abook_page_selector_max', 5);
+
/* SqClock now in the core */
$date_format = getPref($data_dir, $username, 'date_format', 3);
$hour_format = getPref($data_dir, $username, 'hour_format', SMPREF_TIME_12HR);
getPref($data_dir, $username, 'show_only_subscribed_folders', SMPREF_ON);
-$forward_cc = getPref($data_dir, $username, 'forward_cc', SMPREF_OFF);
-
/* How are mailbox select lists displayed: 0. full names, 1. indented (default),
* 3. delimited) */
-$mailbox_select_style = getPref($data_dir, $username, 'mailbox_select_style', SMPREF_ON);
+$mailbox_select_style = getPref($data_dir, $username, 'mailbox_select_style', SMPREF_MAILBOX_SELECT_INDENTED);
/* Allow user to customize, and display the full date, instead of day, or time based
on time distance from date of message */
+$custom_date_format = getPref($data_dir, $username, 'custom_date_format', '');
$show_full_date = getPref($data_dir, $username, 'show_full_date', SMPREF_OFF);
/* Allow user to customize length of from field */
$use_smtp_tls = false;
}
-do_hook('loading_prefs');
+
+// allow plugins to override user prefs
+//
+do_hook('loading_prefs', $null);
+
+
+// check user prefs template selection against templates actually available
+//
+$found_templateset = false;
+for ($i = 0; $i < count($aTemplateSet); ++$i){
+ if ($aTemplateSet[$i]['ID'] == $sTemplateID) {
+ $found_templateset = true;
+ break;
+ }
+}
+
+// FIXME: do we need/want to check here for actual presence of template sets?
+// selected template not available, fall back to default template
+//
+if (!$found_templateset) $sTemplateID = $sDefaultTemplateID;
+
+// need to build this object now because it is used below to validate
+// user css theme choice
+//
+$oTemplate = Template::construct_template($sTemplateID);
+
+
+// Make sure the chosen theme is a legitimate one.
+//
+// need to adjust $chosen_theme path with SM_PATH
+$chosen_theme_path = preg_replace("/(\.\.\/){1,}/", SM_PATH, $chosen_theme_path);
+$found_theme = false;
+while (!$found_theme && (list($index, $data) = each($user_themes))) {
+ if ($data['PATH'] == $chosen_theme_path)
+ $found_theme = true;
+}
+
+if (!$found_theme) {
+ $template_themes = $oTemplate->get_alternative_stylesheets(true);
+ while (!$found_theme && (list($path, $name) = each($template_themes))) {
+ if ($path == $chosen_theme_path)
+ $found_theme = true;
+ }
+}
+
+if (!$found_theme || $chosen_theme == 'none') {
+ $chosen_theme_path = NULL;
+}
+
+
+/*
+ * NOTE: The $icon_theme_path var should contain the path to the icon
+ * theme to use. If the admin has disabled icons, or the user has
+ * set the icon theme to "None," no icons will be used.
+ */
+$icon_theme_path = (!$use_icons || $icon_theme=='none') ? NULL : ($icon_theme == 'template' ? SM_PATH . Template::calculate_template_images_directory($sTemplateID) : $icon_theme);
+$default_icon_theme_path = (!$use_icons || $default_icon_theme=='none') ? NULL : ($default_icon_theme == 'template' ? SM_PATH . Template::calculate_template_images_directory($sTemplateID) : $default_icon_theme);
+$fallback_icon_theme_path = (!$use_icons || $fallback_icon_theme=='none') ? NULL : ($fallback_icon_theme == 'template' ? SM_PATH . Template::calculate_template_images_directory($sTemplateID) : $fallback_icon_theme);
+
+/* Load up the Signature file */
+$signature_abs = $signature = getSig($data_dir, $username, 'g');
+