* @package squirrelmail
*/
-/** SquirrelMail required files. */
-require_once(SM_PATH . 'include/validate.php');
-require_once(SM_PATH . 'functions/plugin.php');
-require_once(SM_PATH . 'functions/constants.php');
+/**
+ * do not allow to call this file directly
+ * 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__) ) {
+ header("Location: ../src/login.php");
+ die();
+}
if( ! sqgetGlobalVar('username', $username, SQ_SESSION) ) {
$username = '';
}
-
+// TODO Get rid of "none" strings when NULL or false should be used, i hate them i hate them i hate them!!!.
$custom_css = getPref($data_dir, $username, 'custom_css', 'none' );
+
+// template set setup
+//
+$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
+//
+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;
+
+// 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++;
+}
+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 */
+// 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){
break;
}
}
-$chosen_theme = (!$found_theme ? '' : $chosen_theme);
-/**
-* This theme as a failsafe if no themes were found. It makes
-* no sense to cause the whole thing to exit just because themes
-* were not found. This is the absolute last resort.
-* Moved here to provide 'sane' defaults for incomplete themes.
-*/
-$color[0] = '#DCDCDC'; /* light gray TitleBar */
-$color[1] = '#800000'; /* red */
-$color[2] = '#CC0000'; /* light red Warning/Error Messages */
-$color[3] = '#A0B8C8'; /* green-blue Left Bar Background */
-$color[4] = '#FFFFFF'; /* white Normal Background */
-$color[5] = '#FFFFCC'; /* light yellow Table Headers */
-$color[6] = '#000000'; /* black Text on left bar */
-$color[7] = '#0000CC'; /* blue Links */
-$color[8] = '#000000'; /* black Normal text */
-$color[9] = '#ABABAB'; /* mid-gray Darker version of #0 */
-$color[10] = '#666666'; /* dark gray Darker version of #9 */
-$color[11] = '#770000'; /* dark red Special Folders color */
-$color[12] = '#EDEDED';
-$color[15] = '#002266'; /* (dark blue) Unselectable folders */
+$chosen_theme = (!$found_theme ? '' : $chosen_theme);
if (isset($chosen_theme) && $found_theme && (file_exists($chosen_theme))) {
@include_once($chosen_theme);
}
}
+*/
-if (!defined('download_php')) {
- sqsession_register($theme_css, 'theme_css');
+// user's icon theme, if using icons
+$icon_theme = getPref($data_dir, $username, 'icon_theme');
+$default_icon_theme = $icon_themes[$icon_theme_def]['PATH'];
+$found_theme = false;
+
+// Make sure the chosen icon theme is a legitimate one.
+// need to adjust $icon_theme path with SM_PATH
+$icon_theme = preg_replace("/(\.\.\/){1,}/", SM_PATH, $icon_theme);
+$k = 0;
+while (!$found_theme && $k < count($icon_themes)) {
+ if ($icon_themes[$k]['PATH'] == $icon_theme)
+ $found_theme = true;
+ $k++;
+}
+if (!$found_theme) {
+ $icon_theme = $default_icon_theme;
}
-// user's icon theme, if using icons
-$icon_theme = getPref($data_dir, $username, 'icon_theme', 'none' );
+/*
+ * 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_OFF );
+$show_flag_buttons = getPref($data_dir, $username, 'show_flag_buttons', SMPREF_ON );
/* Load the user's special folder preferences */
$move_to_sent =
setPref($data_dir, $username, 'index_order', serialize($index_order));
}
-
-
if (!isset($default_mailbox_pref)) {
$show_num = (isset($show_num)) ? $show_num : 15;
getPref($data_dir, $username, 'alt_index_colors', SMPREF_ON );
$fancy_index_highlite =
- getPref($data_dir, $username, 'fancy_index_highlite', SMPREF_OFF );
+ getPref($data_dir, $username, 'fancy_index_highlite', SMPREF_ON );
/* Folder List Display Format */
$location_of_bar =
if (! isset($default_fontsize)) $default_fontsize=SMPREF_NONE;
$chosen_fontsize = getPref($data_dir, $username, 'chosen_fontsize', $default_fontsize);
-do_hook('loading_prefs');
+/**
+ * Controls translation of special folders
+ * @since 1.5.2
+ */
+$translate_special_folders = getPref($data_dir, $username, 'translate_special_folders', SMPREF_OFF);
+/**
+ * Controls display of message copy options
+ * @since 1.5.2
+ */
+$show_copy_buttons = getPref($data_dir, $username, 'show_copy_buttons', SMPREF_OFF);
+
+/** Put in a safety net for authentication here, in case a naughty admin didn't run conf.pl when they upgraded */
+
+// TODO Get rid of "none" strings when NULL should be used, i hate them i hate them i hate them!!!.
+if (! isset($smtp_auth_mech)) {
+ $smtp_auth_mech = 'none';
+}
+
+if (! isset($imap_auth_mech)) {
+ $imap_auth_mech = 'login';
+}
+
+if (! isset($use_imap_tls)) {
+ $use_imap_tls = false;
+}
-?>
\ No newline at end of file
+if (! isset($use_smtp_tls)) {
+ $use_smtp_tls = false;
+}
+
+do_hook('loading_prefs');