X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=include%2Fload_prefs.php;h=35d19d4674d73f133699d694d1170378cb5db053;hp=787e33f942d9fa4c28bd570bada3b7de8fa300ea;hb=1f2f93e6751d2c1b957aa7d197269b5c49df5d72;hpb=b31ae96036029db7062a17deaf2016764ba8e503 diff --git a/include/load_prefs.php b/include/load_prefs.php index 787e33f9..35d19d46 100644 --- a/include/load_prefs.php +++ b/include/load_prefs.php @@ -6,7 +6,7 @@ * 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 @@ -17,8 +17,7 @@ * 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(); } @@ -33,98 +32,25 @@ $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; - } +if (PAGE_NAME == 'squirrelmail_rpc') { + $sTemplateID = Template::get_rpc_template_set(); +} else { + $sTemplateID = getPref($data_dir, $username, 'sTemplateID', $sDefaultTemplateID); } -// 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 +// 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 - */ -#$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. @@ -140,12 +66,6 @@ if (!$found_theme) { $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 ); @@ -241,9 +161,6 @@ $reply_focus = getPref($data_dir, $username, 'reply_focus', ''); $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(); @@ -343,6 +260,9 @@ $collapse_folders = $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); @@ -362,6 +282,12 @@ $page_selector = getPref($data_dir, $username, 'page_selector', 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); @@ -401,14 +327,13 @@ $show_only_subscribed_folders = 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 */ @@ -461,4 +386,72 @@ if (! isset($use_smtp_tls)) { $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; +if (PAGE_NAME == 'squirrelmail_rpc') { + // RPC skins have no in-memory list + if (is_dir(SM_PATH . Template::calculate_template_file_directory($sTemplateID))) { + $found_templateset = true; + } +} else { + 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'); +