Source for file options.php
Documentation is available at options.php
-  * Displays the options page. Pulls from proper user preference files 
-  * and config.php. Displays preferences as selected and other options. 
-  * @copyright 1999-2020 The SquirrelMail Project Team 
-  * @license http://opensource.org/licenses/gpl-license.php GNU Public License 
-  * @version $Id: options.php 14845 2020-01-07 08:09:34Z pdontthink $ 
- /** This is the options page */ 
- define('PAGE_NAME', 'options'); 
-  * Include the SquirrelMail initialization file. 
- require ('../include/init.php');
- /* SquirrelMail required files. */ 
- //include(SM_PATH . 'functions/imap_general.php'); 
- require_once(SM_PATH - .  'functions/options.php');
 
- require_once(SM_PATH - .  'functions/forms.php');
 
- /*********************************/ 
- /*** Build the resultant page. ***/ 
- /*********************************/ 
- define('SMOPT_MODE_DISPLAY', 'display'); 
- define('SMOPT_MODE_SUBMIT', 'submit'); 
- define('SMOPT_MODE_LINK', 'link'); 
- define('SMOPT_PAGE_MAIN', 'main'); 
- define('SMOPT_PAGE_PERSONAL', 'personal'); 
- define('SMOPT_PAGE_DISPLAY', 'display'); 
- define('SMOPT_PAGE_COMPOSE', 'compose'); 
- define('SMOPT_PAGE_ACCESSIBILITY', 'accessibility'); 
- define('SMOPT_PAGE_HIGHLIGHT', 'highlight'); 
- define('SMOPT_PAGE_FOLDER', 'folder'); 
- define('SMOPT_PAGE_ORDER', 'order'); 
-   * Save submitted options and calculate the most 
-   * we need to refresh the page 
-   * @param string $optpage      The name of the page being submitted 
-   * @param array  $optpage_data An array of all the submitted options 
-   * @return int The highest level of screen refresh needed per 
-   *              the options that were changed.  This value will 
-   *              correspond to the SMOPT_REFRESH_* constants found 
-   *              in functions/options.php. 
-     /* Initialize the maximum option refresh level. */ 
-     /* Save each option in each option group. */ 
-     foreach ($optpage_data['options'] as $option_grp) { 
-         foreach ($option_grp['options'] as $option) { 
-             /* Special case: need to make sure emailaddress 
-              * is saved if we use it as a test for ask_user_info */ 
-                 $option->name - ==  'email_address' ) {
 
-             /* Remove Debug Mode Until Needed 
-             echo "name = '$option->name', " 
-                . "value = '$option->value', " 
-                . "new_value = '$option->new_value'\n"; 
- //FIXME: NO HTML IN THE CORE! 
-             if ($option->changed()) { 
-                 $max_refresh - =  max($max_refresh, $option->refresh_level);
 
-     /* Return the max refresh level. */ 
-    /* There will be something here, later. */ 
- /* ---------------------------- main ---------------------------- */ 
- /* get the globals that we may need */ 
- /* end of getting globals */ 
- /* Make sure we have an Option Page set. Default to main. */ 
- if ( !- isset ($optpage)- ||  $optpage- ==  '' ) {
 
- /* Make sure we have an Option Mode set. Default to display. */ 
-  * First, set the load information for each option page. 
- /* Initialize load information variables. */ 
- /* Set the load information for each page. */ 
-         $optpage_name     - =  _("Personal Information");
 
-         $optpage_file     - =  SM_PATH- .  'include/options/personal.php';
 
-         $optpage_loader   - =  'load_optpage_data_personal';
 
-         $optpage_loadhook - =  'optpage_loadhook_personal';
 
-         $optpage_name   - =  _("Display Preferences");
 
-         $optpage_file   - =  SM_PATH- .  'include/options/display.php';
 
-         $optpage_loader - =  'load_optpage_data_display';
 
-         $optpage_loadhook - =  'optpage_loadhook_display';
 
-         $optpage_name   - =  _("Compose Preferences");
 
-         $optpage_file   - =  SM_PATH- .  'include/options/compose.php';
 
-         $optpage_loader - =  'load_optpage_data_compose';
 
-         $optpage_loadhook - =  'optpage_loadhook_compose';
 
-         $optpage_name   - =  _("Accessibility Preferences");
 
-         $optpage_file   - =  SM_PATH- .  'include/options/accessibility.php';
 
-         $optpage_loader - =  'load_optpage_data_accessibility';
 
-         $optpage_loadhook - =  'optpage_loadhook_accessibility';
 
-         $optpage_name   - =  _("Message Highlighting");
 
-         $optpage_file   - =  SM_PATH- .  'include/options/highlight.php';
 
-         $optpage_loader - =  'load_optpage_data_highlight';
 
-         $optpage_loadhook - =  'optpage_loadhook_highlight';
 
-         $optpage_name   - =  _("Folder Preferences");
 
-         $optpage_file   - =  SM_PATH- .  'include/options/folder.php';
 
-         $optpage_loader - =  'load_optpage_data_folder';
 
-         $optpage_loadhook - =  'optpage_loadhook_folder';
 
-         $optpage_name - =  _("Index Order");
 
-         $optpage_file - =  SM_PATH- .  'include/options/order.php';
 
-         $optpage_loader - =  'load_optpage_data_order';
 
-         $optpage_loadhook - =  'optpage_loadhook_order';
 
-     default- :  do_hook('optpage_set_loadinfo', $null);
 
- /**********************************************************/ 
- /*** Second, load the option information for this page. ***/ 
- /**********************************************************/ 
- if ( !@is_file( $optpage_file ) ) { 
-     /* Include the file for this optionpage. */ 
-     require_once($optpage_file); 
-     /* Assemble the data for this option page. */ 
-     $optpage_data - =  $optpage_loader();
 
- /***********************************************************/ 
- /*** Next, process anything that needs to be processed. ***/ 
- /***********************************************************/ 
- // security check before saving anything... 
- //FIXME: what about SMOPT_MODE_LINK?? 
- $optpage_save_error- = array();
 
- if ( - isset ( $optpage_data ) ) {
 
- $optpage_title - =  _("Options");
 
- if (- isset ($optpage_name)- &&  ($optpage_name- !=  '')) {
 
-     $optpage_title - .=  " - $optpage_name";
 
- /*******************************************************************/ 
- /* DO OLD SAVING OF SUBMITTED OPTIONS. THIS WILL BE REMOVED LATER. */ 
- /*******************************************************************/ 
- //FIXME: let's remove these finally in 1.5.2..... but first, are there any plugins using them? 
- /* If in submit mode, select a save hook name and run it. */ 
-     /* Select a save hook name. */ 
-             $save_hook_name - =  'options_personal_save';
 
-             $save_hook_name - =  'options_display_save';
 
-             $save_hook_name - =  'options_compose_save';
 
-             $save_hook_name - =  'options_accessibility_save';
 
-             $save_hook_name - =  'options_folder_save';
 
-             $save_hook_name - =  'options_save';
 
-     /* Run the options save hook. */ 
- /***************************************************************/ 
- /* Apply logic to decide what optpage we want to display next. */ 
- /***************************************************************/ 
- /* If this is the result of an option page being submitted, then */ 
- /* show the main page. Otherwise, show whatever page was called. */ 
-     $optpage_title - =  _("Options");
 
- /***************************************************************/ 
- /* Finally, display whatever page we are supposed to show now. */ 
- /***************************************************************/ 
- displayPageHeader($color, null, (- isset ($optpage_data['xtra'])- ?  $optpage_data['xtra']- :  ''));
 
-  * The main option page has a different layout then the rest of the option 
-  * pages. Therefore, we create it here first, then the others below. 
-     /**********************************************************/ 
-     /* First, display the results of a submission, if needed. */ 
-     /**********************************************************/ 
-         if (!- isset ($frame_top)) {
 
-         if (- isset ($optpage_save_error)- &&  $optpage_save_error- != array()) {
 
- //FIXME: REMOVE HTML FROM CORE 
-             $notice - =  _("Error(s) occurred while saving your options")- .  "<br />\n<ul>\n";
 
-             foreach ($optpage_save_error as $error_message) { 
-                 $notice- .=  '<li><small>'- .  $error_message- .  "</small></li>\n";
 
-             $notice- .=  "</ul>\n"- .  _("Some of your preference changes were not applied.")- .  "\n";
 
-             /* Display a message indicating a successful save. */ 
-             // i18n: The %s represents the name of the option page saving the options 
-             $notice - =  sprintf(_("Successfully Saved Options: %s"), $optpage_name)- .  "<br />\n";
 
-         /* If $max_refresh != SMOPT_REFRESH_NONE, provide a refresh link. */ 
-         if ( !- isset ( $max_refresh ) ) {
 
- //FIXME: REMOVE HTML FROM CORE - when migrating, keep in mind that the javascript below assumes the folder list is in a separate sibling frame under the same parent, and it is called "left" 
-                 $notice - .=  sprintf(_("Folder list should automatically %srefresh%s."), '<a href="../src/left_main.php" target="left">', '</a>')- .  '<br /><script type="text/javascript">'- .  "\n<!--\nparent.left.location = '../src/left_main.php';\n// -->\n</script>\n";
 
-                 $notice - .=  '<a href="../src/left_main.php" target="left">'- .  _("Refresh Folder List")- .  '</a><br />';
 
-         } else if ($max_refresh) { 
- //FIXME: REMOVE HTML FROM CORE - when migrating, keep in mind that the javascript below assumes the parent is the top-most SM frame and is what should be refreshed with webmail.php 
-                 $notice - .=  sprintf(_("This page should automatically %srefresh%s."), '<a href="../src/webmail.php?right_frame=options.php" target="'- .  $frame_top- .  '">', '</a>')- .  '<br /><script type="text/javascript">'- .  "\n<!--\nparent.location = '../src/webmail.php?right_frame=options.php';\n// -->\n</script>\n";
 
-                 $notice - .=  '<a href="../src/webmail.php?right_frame=options.php" target="'- .  $frame_top- .  '">'- .  _("Refresh Page")- .  '</a><br />';
 
-         $oTemplate->assign('note', $notice); 
-         $oTemplate->display('note.tpl'); 
-     /******************************************/ 
-     /* Build our array of Option Page Blocks. */ 
-     /******************************************/ 
-     $optpage_blocks - =  array();
 
-     global $accesskey_options_personal, $accesskey_options_display, 
-            $accesskey_options_highlighting, $accesskey_options_folders, 
-            $accesskey_options_index_order, $accesskey_options_compose, 
-            $accesskey_options_accessibility; 
-     /* Build a section for Personal Options. */ 
-     $optpage_blocks[] - =  array(
 
-         'name'      - =>  _("Personal Information"),
 
-         'desc'      - =>  _("This contains personal information about yourself such as your name, your email address, etc."),
 
-         'accesskey' - =>  $accesskey_options_personal,
 
-     /* Build a section for Display Options. */ 
-     $optpage_blocks[] - =  array(
 
-         'name'      - =>  _("Display Preferences"),
 
-         'desc'      - =>  _("You can change the way that SquirrelMail looks and displays information to you, such as the colors, the language, and other settings."),
 
-         'accesskey' - =>  $accesskey_options_display,
 
-     /* Build a section for Message Highlighting Options. */ 
-     $optpage_blocks[] - =  array(
 
-         'name'      - => _("Message Highlighting"),
 
-         'url'       - =>  'options_highlight.php',
 
-         '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."),
 
-         'accesskey' - =>  $accesskey_options_highlighting,
 
-     /* Build a section for Folder Options. */ 
-     $optpage_blocks[] - =  array(
 
-         'name'      - =>  _("Folder Preferences"),
 
-         'desc'      - =>  _("These settings change the way your folders are displayed and manipulated."),
 
-         'accesskey' - =>  $accesskey_options_folders,
 
-     /* Build a section for Index Order Options. */ 
-     $optpage_blocks[] - =  array(
 
-         'name'      - =>  _("Index Order"),
 
-         'url'       - =>  'options_order.php',
 
-         'desc'      - =>  _("The order of the message index can be rearranged and changed to contain the headers in any order you want."),
 
-         'accesskey' - =>  $accesskey_options_index_order,
 
-     /* Build a section for Compose Options. */ 
-     $optpage_blocks[] - =  array(
 
-         'name'      - =>  _("Compose Preferences"),
 
-         'desc'      - =>  _("Control the behaviour and layout of writing new mail messages, replying to and forwarding messages."),
 
-         'accesskey' - =>  $accesskey_options_compose,
 
-     /* Build a section for Accessibility Options. */ 
-     $optpage_blocks[] - =  array(
 
-         'name'      - =>  _("Accessibility Preferences"),
 
-         'desc'      - =>  _("You can configure features that improve interface usability."),
 
-         'accesskey' - =>  $accesskey_options_accessibility,
 
-     /* Build a section for plugins wanting to register an optionpage. */ 
-     do_hook('optpage_register_block', $null); 
-     /*****************************************************/ 
-     /* Let's sort Javascript Option Pages to the bottom. */ 
-     /*****************************************************/ 
-     $js_optpage_blocks - =  array();
 
-     $reg_optpage_blocks - =  array();
 
-     foreach ($optpage_blocks as $cur_optpage) { 
-         if (!- isset ($cur_optpage['accesskey'])) {
 
-             $cur_optpage['accesskey'] - =  'NONE';
 
-         if (!- isset ($cur_optpage['js'])- ||  !$cur_optpage['js']) {
 
-             $reg_optpage_blocks[] - =  $cur_optpage;
 
-             $js_optpage_blocks[] - =  $cur_optpage;
 
-     $optpage_blocks - =  array_merge($reg_optpage_blocks, $js_optpage_blocks);
 
-     /********************************************/ 
-     /* Now, print out each option page section. */ 
-     /********************************************/ 
-     $oTemplate->assign('page_title', $optpage_title); 
-     $oTemplate->assign('options', $optpage_blocks); 
-     $oTemplate->display('option_groups.tpl'); 
-     do_hook('options_link_and_description', $null); 
- /*************************************************************************/ 
- /* If we are not looking at the main option page, display the page here. */ 
- /*************************************************************************/ 
-     /* Set the bottom_hook_name and submit_name. */ 
-             $bottom_hook_name - =  'options_personal_bottom';
 
-             $submit_name - =  'submit_personal';
 
-             $bottom_hook_name - =  'options_display_bottom';
 
-             $submit_name - =  'submit_display';
 
-             $bottom_hook_name - =  'options_compose_bottom';
 
-             $submit_name - =  'submit_compose';
 
-             $bottom_hook_name - =  'options_accessibility_bottom';
 
-             $submit_name - =  'submit_accessibility';
 
-             $bottom_hook_name - =  'options_highlight_bottom';
 
-             $submit_name - =  'submit_highlight';
 
-             $bottom_hook_name - =  'options_folder_bottom';
 
-             $submit_name - =  'submit_folder';
 
-             $bottom_hook_name - =  'options_order_bottom';
 
-             $submit_name - =  'submit_order';
 
-             $bottom_hook_name - =  'options_generic_bottom';
 
-     echo  addForm('options.php', 'post', 'option_form', '', '', array(), TRUE)
-     // This is the only variable that is needed by *just* the template. 
-     $oTemplate->assign('option_groups', $optpage_data['options']); 
-     global $ask_user_info, $org_name; 
-             &&  getPref($data_dir, $username,'email_address')- ==  "" ) {
-         $oTemplate->assign('topmessage', 
-             sprintf(_("Welcome to %s. Please supply your full name and email address."), $org_name) ); 
-     // These variables are not specifically needed by the template, 
-     // but they are relevant to the page being built, so we'll add 
-     // them in case some plugin is modifying the page, etc.... 
-     $oTemplate->assign('max_refresh', - isset ($max_refresh)- ?  $max_refresh- :  NULL);
 
-     $oTemplate->assign('page_title', $optpage_title); 
-     $oTemplate->assign('optpage', $optpage); 
-     $oTemplate->assign('optpage_name', $optpage_name); 
-     $oTemplate->assign('optmode', $optmode); 
-     $oTemplate->assign('optpage_data', $optpage_data); 
-     $oTemplate->assign('submit_name', $submit_name); 
-     $oTemplate->display('options.tpl'); 
-     $oTemplate->display('form_close.tpl'); 
-     /* If it is not empty, trigger the bottom hook. */ 
-     if ($bottom_hook_name - !=  '') {
 
- $oTemplate->display('footer.tpl'); 
 
	
		Documentation generated on Mon, 13 Jan 2020 04:23:15 +0100 by phpDocumentor 1.4.3