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-2015 The SquirrelMail Project Team
  9.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  10.  * @version $Id: personal.php 14508 2015-06-20 11:53:28Z pdontthink $
  11.  * @package squirrelmail
  12.  */
  13.  
  14. /** SquirrelMail required files. */
  15. require_once(SM_PATH 'functions/imap.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$edit_reply_to,
  37.            $full_name$reply_to$email_address$signature$tzChangeAllowed,
  38.            $color;
  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');
  44.     $signature  getSig($data_dir$username'g');
  45.  
  46.     /* Build a simple array into which we will build options. */
  47.     $optgrps array();
  48.     $optvals array();
  49.  
  50.     /******************************************************/
  51.     /* LOAD EACH GROUP OF OPTIONS INTO THE OPTIONS ARRAY. */
  52.     /******************************************************/
  53.  
  54.     /*** Load the Contact Information Options into the array ***/
  55.     $optgrps[SMOPT_GRP_CONTACT_("Name and Address Options");
  56.     $optvals[SMOPT_GRP_CONTACTarray();
  57.  
  58.     /* Build a simple array into which we will build options. */
  59.     $optvals array();
  60.  
  61.     if (!isset($edit_identity)) {
  62.         $edit_identity TRUE;
  63.     }
  64.  
  65.     if ($edit_identity || $edit_name{
  66.         $optvals[SMOPT_GRP_CONTACT][array(
  67.             'name'    => 'full_name',
  68.             'caption' => _("Full Name"),
  69.             'type'    => SMOPT_TYPE_STRING,
  70.             'refresh' => SMOPT_REFRESH_NONE,
  71.             'size'    => SMOPT_SIZE_HUGE
  72.         );
  73.     else {
  74.         $optvals[SMOPT_GRP_CONTACT][array(
  75.             'name'    => 'full_name',
  76.             'caption' => _("Full Name"),
  77.             'type'    => SMOPT_TYPE_COMMENT,
  78.             'refresh' => SMOPT_REFRESH_NONE,
  79.             'comment' => $full_name
  80.         );
  81.     }
  82.  
  83.     if ($edit_identity{
  84.         $optvals[SMOPT_GRP_CONTACT][array(
  85.             'name'    => 'email_address',
  86.             'caption' => _("E-mail Address"),
  87.             'type'    => SMOPT_TYPE_STRING,
  88.             'refresh' => SMOPT_REFRESH_NONE,
  89.             'size'    => SMOPT_SIZE_HUGE
  90.         );
  91.     else {
  92.         $optvals[SMOPT_GRP_CONTACT][array(
  93.             'name'    => 'email_address',
  94.             'caption' => _("E-mail Address"),
  95.             'type'    => SMOPT_TYPE_COMMENT,
  96.             'refresh' => SMOPT_REFRESH_NONE,
  97.             'comment' => $email_address
  98.         );
  99.     }
  100.  
  101.     if ($edit_identity || $edit_reply_to{
  102.         $optvals[SMOPT_GRP_CONTACT][array(
  103.             'name'    => 'reply_to',
  104.             'caption' => _("Reply To"),
  105.             'type'    => SMOPT_TYPE_STRING,
  106.             'refresh' => SMOPT_REFRESH_NONE,
  107.             'size'    => SMOPT_SIZE_HUGE
  108.         );
  109.     else {
  110. //TODO: For many users, this is redundant to the email address above, especially if not editable -- so here instead of a comment, we could just hide it... in fact, that's what we'll do, but keep this code for posterity in case someone decides we shouldn't do this
  111. /*
  112.         $optvals[SMOPT_GRP_CONTACT][] = array(
  113.             'name'    => 'reply_to',
  114.             'caption' => _("Reply To"),
  115.             'type'    => SMOPT_TYPE_COMMENT,
  116.             'refresh' => SMOPT_REFRESH_NONE,
  117.             'comment' => $reply_to,
  118.         );
  119. */
  120.     }
  121.  
  122.     $optvals[SMOPT_GRP_CONTACT][array(
  123.         'name'    => 'signature',
  124.         'caption' => _("Signature"),
  125.         'type'    => SMOPT_TYPE_TEXTAREA,
  126.         'refresh' => SMOPT_REFRESH_NONE,
  127.         'size'    => SMOPT_SIZE_MEDIUM,
  128.         'save'    => 'save_option_signature'
  129.     );
  130.  
  131.     if ($edit_identity{
  132.         $identities_link_value '<a href="options_identities.php">'
  133.                                . _("Edit Advanced Identities")
  134.                                . '</a> '
  135.                                . _("(discards changes made on this form so far)");
  136.         $optvals[SMOPT_GRP_CONTACT][array(
  137.             'name'    => 'identities_link',
  138.             'caption' => _("Multiple Identities"),
  139.             'type'    => SMOPT_TYPE_COMMENT,
  140.             'refresh' => SMOPT_REFRESH_NONE,
  141.             'comment' =>  $identities_link_value
  142.         );
  143.     }
  144.  
  145.     if $tzChangeAllowed || function_exists('date_default_timezone_set')) {
  146.         $TZ_ARRAY[SMPREF_NONE_("Same as server");
  147.         $tzfile SM_PATH 'locale/timezones.cfg';
  148.         if ((!is_readable($tzfile)) or (!$fd fopen($tzfile,'r'))) {
  149.             $message _("Error opening timezone config, contact administrator.");
  150.         }
  151.  
  152.         // TODO: make error user friendly
  153.         if (isset($message)) {
  154.             plain_error_message($message$color);
  155.             exit;
  156.         }
  157.         while (!feof ($fd)) {
  158.             $zone fgets($fd1024);
  159.             if$zone {
  160.                 $zone trim($zone);
  161.                 $TZ_ARRAY[$zone$zone;
  162.             }
  163.         }
  164.         fclose ($fd);
  165.  
  166.         $optgrps[SMOPT_GRP_TZ_("Timezone Options");
  167.         $optvals[SMOPT_GRP_TZarray();
  168.  
  169.         $optvals[SMOPT_GRP_TZ][array(
  170.             'name'    => 'timezone',
  171.             'caption' => _("Your current timezone"),
  172.             'type'    => SMOPT_TYPE_STRLIST,
  173.             'refresh' => SMOPT_REFRESH_NONE,
  174.             'posvals' => $TZ_ARRAY
  175.         );
  176.     }
  177.  
  178.     /*** Load the Reply Citation Options into the array ***/
  179.     $optgrps[SMOPT_GRP_REPLY_("Reply Citation Options");
  180.     $optvals[SMOPT_GRP_REPLYarray();
  181.  
  182.     $optvals[SMOPT_GRP_REPLY][array(
  183.         'name'    => 'reply_citation_style',
  184.         'caption' => _("Reply Citation Style"),
  185.         'type'    => SMOPT_TYPE_STRLIST,
  186.         'refresh' => SMOPT_REFRESH_NONE,
  187.         'posvals' => array(SMPREF_NONE    => _("No Citation"),
  188.                            'author_said'  => _("AUTHOR Wrote"),
  189.                            'date_time_author' => _("On DATE, AUTHOR Wrote"),
  190.                            'quote_who'    => _("Quote Who XML"),
  191.                            'user-defined' => _("User-Defined"))
  192.     );
  193.  
  194.     $optvals[SMOPT_GRP_REPLY][array(
  195.         'name'    => 'reply_citation_start',
  196.         'caption' => _("User-Defined Citation Start"),
  197.         'type'    => SMOPT_TYPE_STRING,
  198.         'refresh' => SMOPT_REFRESH_NONE,
  199.         'size'    => SMOPT_SIZE_MEDIUM
  200.     );
  201.  
  202.     $optvals[SMOPT_GRP_REPLY][array(
  203.         'name'    => 'reply_citation_end',
  204.         'caption' => _("User-Defined Citation End"),
  205.         'type'    => SMOPT_TYPE_STRING,
  206.         'refresh' => SMOPT_REFRESH_NONE,
  207.         'size'    => SMOPT_SIZE_MEDIUM
  208.     );
  209.  
  210.     /*** Load the Signature Options into the array ***/
  211.     $optgrps[SMOPT_GRP_SIG_("Signature Options");
  212.     $optvals[SMOPT_GRP_SIGarray();
  213.  
  214.     $optvals[SMOPT_GRP_SIG][array(
  215.         'name'    => 'use_signature',
  216.         'caption' => _("Use Signature"),
  217.         'type'    => SMOPT_TYPE_BOOLEAN,
  218.         'refresh' => SMOPT_REFRESH_NONE
  219.     );
  220.  
  221.     $optvals[SMOPT_GRP_SIG][array(
  222.         'name'    => 'prefix_sig',
  223.         'caption' => _("Prefix Signature with '-- ' Line"),
  224.         'type'    => SMOPT_TYPE_BOOLEAN,
  225.         'refresh' => SMOPT_REFRESH_NONE
  226.     );
  227.  
  228.     /* Assemble all this together and return it as our result. */
  229.     $result array(
  230.         'grps' => $optgrps,
  231.         'vals' => $optvals
  232.     );
  233.     return ($result);
  234. }
  235.  
  236. /******************************************************************/
  237. /** Define any specialized save functions for this option page. ***/
  238. /******************************************************************/
  239.  
  240. /**
  241.  * Saves the signature option.
  242.  */
  243. function save_option_signature($option{
  244.     global $data_dir$username;
  245.     setSig($data_dir$username'g'$option->new_value);
  246. }

Documentation generated on Sat, 05 Sep 2015 04:21:30 +0200 by phpDocumentor 1.4.3