Source for file personal.php

Documentation is available at personal.php

  1. <?php
  2.  
  3. /**
  4.  * options_personal.php
  5.  *
  6.  * Displays all options relating to personal information
  7.  *
  8.  * @copyright 1999-2014 The SquirrelMail Project Team
  9.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  10.  * @version $Id: personal.php 14420 2014-01-01 20:33:20Z pdontthink $
  11.  * @package squirrelmail
  12.  */
  13.  
  14. /** SquirrelMail required files. */
  15. require_once(SM_PATH 'include/timezones.php');
  16.  
  17. /* Define the group constants for the personal options page. */
  18. define('SMOPT_GRP_CONTACT'0);
  19. define('SMOPT_GRP_REPLY'1);
  20. define('SMOPT_GRP_SIG'2);
  21. define('SMOPT_GRP_TZ'3);
  22.  
  23. /**
  24.  * This function builds an array with all the information about
  25.  * the options available to the user, and returns it. The options
  26.  * are grouped by the groups in which they are displayed.
  27.  * For each option, the following information is stored:
  28.  * - name: the internal (variable) name
  29.  * - caption: the description of the option in the UI
  30.  * - type: one of SMOPT_TYPE_*
  31.  * - refresh: one of SMOPT_REFRESH_*
  32.  * - size: one of SMOPT_SIZE_*
  33.  * - save: the name of a function to call when saving this option
  34.  * @return array all option information
  35.  */
  36.     global $data_dir$username$edit_identity$edit_name,
  37.            $full_name$reply_to$email_address$signature$tzChangeAllowed,
  38.            $timeZone$domain;
  39.  
  40.     /* Set the values of some global variables. */
  41.     $full_name getPref($data_dir$username'full_name');
  42.     $reply_to getPref($data_dir$username'reply_to');
  43.     $email_address  getPref($data_dir$username'email_address',SMPREF_NONE);
  44.     $signature  getSig($data_dir$username'g');
  45.     
  46.     // set email_address to default value, if it is not set in user's preferences
  47.     if ($email_address == SMPREF_NONE{
  48.         if (preg_match("/(.+)@(.+)/",$username)) {
  49.             $email_address $username;
  50.         else {
  51.             $email_address $username '@' $domain ;
  52.         }
  53.     }
  54.  
  55.     /* Build a simple array into which we will build options. */
  56.     $optgrps array();
  57.     $optvals array();
  58.  
  59.     /******************************************************/
  60.     /* LOAD EACH GROUP OF OPTIONS INTO THE OPTIONS ARRAY. */
  61.     /******************************************************/
  62.  
  63.     /*** Load the Contact Information Options into the array ***/
  64.     $optgrps[SMOPT_GRP_CONTACT_("Name and Address Options");
  65.     $optvals[SMOPT_GRP_CONTACTarray();
  66.  
  67.     /* Build a simple array into which we will build options. */
  68.     $optvals array();
  69.  
  70.     if (!isset($edit_identity)) {
  71.         $edit_identity TRUE;
  72.     }
  73.  
  74.     if ($edit_identity || $edit_name{
  75.         $optvals[SMOPT_GRP_CONTACT][array(
  76.             'name'    => 'full_name',
  77.             'caption' => _("Full Name"),
  78.             'type'    => SMOPT_TYPE_STRING,
  79.             'refresh' => SMOPT_REFRESH_NONE,
  80.             'size'    => SMOPT_SIZE_HUGE
  81.         );
  82.     else {
  83.         $optvals[SMOPT_GRP_CONTACT][array(
  84.             'name'    => 'full_name',
  85.             'caption' => _("Full Name"),
  86.             'type'    => SMOPT_TYPE_COMMENT,
  87.             'refresh' => SMOPT_REFRESH_NONE,
  88.             'comment' => $full_name
  89.         );
  90.     }
  91.  
  92.     if ($edit_identity{
  93.         $optvals[SMOPT_GRP_CONTACT][array(
  94.             'name'    => 'email_address',
  95.             'caption' => _("E-mail Address"),
  96.             'type'    => SMOPT_TYPE_STRING,
  97.             'refresh' => SMOPT_REFRESH_NONE,
  98.             'size'    => SMOPT_SIZE_HUGE
  99.         );
  100.     else {
  101.         $optvals[SMOPT_GRP_CONTACT][array(
  102.             'name'    => 'email_address',
  103.             'caption' => _("E-mail Address"),
  104.             'type'    => SMOPT_TYPE_COMMENT,
  105.             'refresh' => SMOPT_REFRESH_NONE,
  106.             'comment' => sm_encode_html_special_chars($email_address)
  107.         );
  108.     }
  109.  
  110.     $optvals[SMOPT_GRP_CONTACT][array(
  111.         'name'    => 'reply_to',
  112.         'caption' => _("Reply To"),
  113.         'type'    => SMOPT_TYPE_STRING,
  114.         'refresh' => SMOPT_REFRESH_NONE,
  115.         'size'    => SMOPT_SIZE_HUGE
  116.     );
  117.  
  118.     $optvals[SMOPT_GRP_CONTACT][array(
  119.         'name'    => 'signature',
  120.         'caption' => _("Signature"),
  121.         'type'    => SMOPT_TYPE_TEXTAREA,
  122.         'refresh' => SMOPT_REFRESH_NONE,
  123.         'size'    => SMOPT_SIZE_MEDIUM,
  124.         'save'    => 'save_option_signature'
  125.     );
  126.  
  127.     if ($edit_identity{
  128.         $identities_link_value '<a href="options_identities.php">'
  129.                                . _("Edit Advanced Identities")
  130.                                . '</a> '
  131.                                . _("(discards changes made on this form so far)");
  132.         $optvals[SMOPT_GRP_CONTACT][array(
  133.             'name'    => 'identities_link',
  134.             'caption' => _("Multiple Identities"),
  135.             'type'    => SMOPT_TYPE_COMMENT,
  136.             'refresh' => SMOPT_REFRESH_NONE,
  137.             'comment' =>  $identities_link_value
  138.         );
  139.     }
  140.  
  141.     if $tzChangeAllowed || function_exists('date_default_timezone_set')) {
  142.         $TZ_ARRAY[SMPREF_NONE_("Same as server");
  143.  
  144.         $aTimeZones sq_get_tz_array();
  145.         unset($message);
  146.         if (empty($aTimeZones)) {
  147.             // check if current timezone is linked to other TZ and update it
  148.             if ($timeZone != SMPREF_NONE && $timeZone != "" &&
  149.                 isset($aTimeZones[$timeZone]['LINK'])) {
  150.                 $timeZone $aTimeZones[$timeZone]['LINK'];
  151.                 // TODO: recheck setting of $timeZone
  152.                 // setPref($data_dir,$username,'timezone',$timeZone);
  153.             }
  154.  
  155.             // sort time zones by name. sq_get_tz_array() returns sorted by key.
  156.             // asort($aTimeZones);
  157.  
  158.             // add all 'TZ' entries to TZ_ARRAY
  159.             foreach ($aTimeZones as $TzKey => $TzData{
  160.                 if (isset($TzData['LINK'])) {
  161.                     // Old display format
  162.                     $TZ_ARRAY[$TzKey$TzKey;
  163.  
  164.                     // US Eastern standard time (America/New_York) - needs asort($aTimeZones)
  165.                     //$TZ_ARRAY[$TzKey] = (isset($TzData['NAME']) ? $TzData['NAME']." ($TzKey)" : "($TzKey)");
  166.  
  167.                     // US Eastern standard time if NAME is present or America/New_York if NAME not present
  168.                     // needs sorting after all data is added or uasort()
  169.                     //$TZ_ARRAY[$TzKey] = (isset($TzData['NAME']) ? $TzData['NAME'] : $TzKey);
  170.  
  171.                     // (America/New_Your) US Eastern standard time
  172.                     //$TZ_ARRAY[$TzKey] = "($TzKey)" . (isset($TzData['NAME']) ? ' '.$TzData['NAME'] : '');
  173.                 }
  174.             }
  175.         else {
  176.             $message _("Error opening timezone config, contact administrator.");
  177.         }
  178.  
  179.         // TODO: make error user friendly
  180.         if (isset($message)) {
  181.             plain_error_message($message);
  182.             exit;
  183.         }
  184.  
  185.         $optgrps[SMOPT_GRP_TZ_("Timezone Options");
  186.         $optvals[SMOPT_GRP_TZarray();
  187.  
  188.         $optvals[SMOPT_GRP_TZ][array(
  189.             'name'    => 'timezone',
  190.             'caption' => _("Your current timezone"),
  191.             'type'    => SMOPT_TYPE_STRLIST,
  192.             'refresh' => SMOPT_REFRESH_NONE,
  193.             'posvals' => $TZ_ARRAY
  194.         );
  195.     }
  196.  
  197.     /*** Load the Reply Citation Options into the array ***/
  198.     $optgrps[SMOPT_GRP_REPLY_("Reply Citation Options");
  199.     $optvals[SMOPT_GRP_REPLYarray();
  200.  
  201.     $optvals[SMOPT_GRP_REPLY][array(
  202.         'name'    => 'reply_citation_style',
  203.         'caption' => _("Reply Citation Style"),
  204.         'type'    => SMOPT_TYPE_STRLIST,
  205.         'refresh' => SMOPT_REFRESH_NONE,
  206.         'posvals' => array(SMPREF_NONE    => _("No Citation"),
  207.                            'author_said'  => _("AUTHOR Wrote"),
  208.                            'date_time_author' => _("On DATE, AUTHOR Wrote"),
  209.                            'quote_who'    => _("Quote Who XML"),
  210.                            'user-defined' => _("User-Defined"))
  211.     );
  212.  
  213.     $optvals[SMOPT_GRP_REPLY][array(
  214.         'name'    => 'reply_citation_start',
  215.         'caption' => _("User-Defined Citation Start"),
  216.         'type'    => SMOPT_TYPE_STRING,
  217.         'refresh' => SMOPT_REFRESH_NONE,
  218.         'size'    => SMOPT_SIZE_MEDIUM
  219.     );
  220.  
  221.     $optvals[SMOPT_GRP_REPLY][array(
  222.         'name'    => 'reply_citation_end',
  223.         'caption' => _("User-Defined Citation End"),
  224.         'type'    => SMOPT_TYPE_STRING,
  225.         'refresh' => SMOPT_REFRESH_NONE,
  226.         'size'    => SMOPT_SIZE_MEDIUM
  227.     );
  228.  
  229.     /*** Load the Signature Options into the array ***/
  230.     $optgrps[SMOPT_GRP_SIG_("Signature Options");
  231.     $optvals[SMOPT_GRP_SIGarray();
  232.  
  233.     $optvals[SMOPT_GRP_SIG][array(
  234.         'name'    => 'use_signature',
  235.         'caption' => _("Use Signature"),
  236.         'type'    => SMOPT_TYPE_BOOLEAN,
  237.         'refresh' => SMOPT_REFRESH_NONE
  238.     );
  239.  
  240.     $optvals[SMOPT_GRP_SIG][array(
  241.         'name'    => 'prefix_sig',
  242.         'caption' => _("Prefix Signature with '-- ' Line"),
  243.         'type'    => SMOPT_TYPE_BOOLEAN,
  244.         'refresh' => SMOPT_REFRESH_NONE
  245.     );
  246.  
  247.     /* Assemble all this together and return it as our result. */
  248.     $result array(
  249.         'grps' => $optgrps,
  250.         'vals' => $optvals
  251.     );
  252.     return ($result);
  253. }
  254.  
  255. /******************************************************************/
  256. /** Define any specialized save functions for this option page. ***/
  257. /******************************************************************/
  258.  
  259. /**
  260.  * Saves the signature option.
  261.  */
  262. function save_option_signature($option{
  263.     global $data_dir$username;
  264.     setSig($data_dir$username'g'$option->new_value);
  265. }

Documentation generated on Sun, 31 Aug 2014 04:19:07 +0200 by phpDocumentor 1.4.3