X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Foptions_identities.php;h=db9b053156771249b81718be802717ee620082b1;hp=37e5f5f62e19bdde9ee5ab88063e7467cc31d381;hb=2be6e3fc90746bcafa7a200b599e6d48409b5e43;hpb=895905c0f766ea03e85deab260b4bb1522dd0e3c diff --git a/src/options_identities.php b/src/options_identities.php index 37e5f5f6..db9b0531 100644 --- a/src/options_identities.php +++ b/src/options_identities.php @@ -1,344 +1,224 @@ -
- - -
- - - - - -
- -

- - - - - - - - - - - - - - - - -
-
- -
- -
- - -$row) { + // we only need to extract the action and the identity we are + // altering + + foreach($row as $iKey=>$data) { + $identid = $iKey; + } + + $doaction = $action; + } + + $identities = sqfixidentities( $newidentities , $identid , $action ); + save_identities($identities); } -function CheckForDelete() -{ - global $username, $data_dir, $full_name, $email_address, $reply_to; - - $i = 1; - $name = 'form_for_' . $i; - global $$name; - while (isset($$name)) - { - $name = 'delete_' . $i; - global $$name; - if (isset($$name)) { - return true; - } - - $i ++; - $name = 'form_for_' . $i; - global $$name; - } - return false; +if (!empty($return)) { + header('Location: ' . get_location() . '/options_personal.php'); + exit; } -function CheckAndDoPromote() -{ - global $username, $data_dir, $full_name, $email_address, $reply_to; - - $i = 1; - $name = 'form_for_' . $i; - global $$name; - while (isset($$name)) - { - $name = 'promote_' . $i; - global $$name; - if (isset($$name) && $i > 1) { - do_hook('options_identities_renumber', $i, $i - 1); - - $nameA = 'full_name' . $i; - $nameB = 'full_name' . ($i - 1); - global $$nameA, $$nameB; - $temp = $$nameA; - $$nameA = $$nameB; - $$nameB = $temp; - - $nameA = 'email_address' . $i; - $nameB = 'email_address' . ($i - 1); - global $$nameA, $$nameB; - $temp = $$nameA; - $$nameA = $$nameB; - $$nameB = $temp; - - $nameA = 'reply_to' . $i; - $nameB = 'reply_to' . ($i - 1); - global $$nameA, $$nameB; - $temp = $$nameA; - $$nameA = $$nameB; - $$nameB = $temp; - - return true; - } - - $i ++; - $name = 'form_for_' . $i; - global $$name; - } - return false; +displayPageHeader($color, 'None'); + +/* since 1.1.3 */ +do_hook('options_identities_top'); + +$td_str = ''; +$td_str .= '

' . "\n"; +$td_str .= '' . "\n"; +$cnt = count($identities); +foreach( $identities as $iKey=>$ident ) { + + if ($iKey == 0) { + $hdr_str = _("Default Identity"); + } else { + $hdr_str = sprintf( _("Alternate Identity %d"), $iKey); + } + + $td_str .= ShowIdentityInfo( $hdr_str, $ident, $iKey ); + } -function LoadInfo(&$n, &$e, &$r, $post) -{ - global $username, $data_dir; +$td_str .= ShowIdentityInfo( _("Add a New Identity"), array('full_name'=>'','email_address'=>'','reply_to'=>'','signature'=>''), $cnt); +$td_str .= '
' . "\n"; +$td_str .= '
'; + +echo '
' . "\n" . + html_tag('table', "\n" . + html_tag('tr', "\n" . + html_tag('td' , "\n" . + '' . _("Options") . ' - ' . _("Advanced Identities") . '
' . + html_tag('table', "\n" . + html_tag('tr', "\n" . + html_tag('td', "\n" . + html_tag('table' , "\n" . + html_tag('tr' , "\n" . + html_tag('td', "\n" . $td_str ,'','', 'style="text-align:center;"') + ), + '', '', 'width="80%" cellpadding="2" cellspacing="0" border="0"' ) , + 'center', $color[4]) + ), + '', '', 'width="100%" border="0" cellpadding="1" cellspacing="1"' )) , + 'center', $color[0]), + 'center', '', 'width="95%" border="0" cellpadding="2" cellspacing="0"' ) . ''; + +/** + * Returns html formated identity form fields + * + * Contains options_identities_buttons and option_identities_table hooks. + * Before 1.4.5/1.5.1 hooks were placed in ShowTableInfo() function. + * In 1.1.3-1.4.1 they were called in do_hook function with two or + * three arguments. Since 1.4.1 hooks are called in concat_hook_function. + * Arguments are moved to array. + * + * options_identities_buttons hook uses array with two keys. First array key is + * boolean variable used to indicate empty identity field. Second array key + * is integer variable used to indicate identity number + * + * options_identities_table hook uses array with three keys. First array key is + * a string containing background color style CSS (1.4.1-1.4.4/1.5.0 uses only + * html color code). Second array key is boolean variable used to indicate empty + * identity field. Third array key is integer variable used to indicate identity + * number + * @param string $title Name displayed in header row + * @param array $identity Identity information + * @param integer $id identity ID + * @return string html formatted table rows with form fields for identity management + * @since 1.5.1 and 1.4.5 (was called ShowTableInfo() in 1.1.3-1.4.4 and 1.5.0) + */ +function ShowIdentityInfo($title, $identity, $id ) { + global $color; + + if (empty($identity['full_name']) && empty($identity['email_address']) && empty($identity['reply_to']) && empty($identity['signature'])) { + $bg = ''; + $empty = true; + } else { + $bg = ' style="background-color:' . $color[0] . ';"'; + $empty = false; + } + + $name = 'newidentities[%d][%s]'; + + + $return_str = ''; + + $return_str .= '' . "\n"; + $return_str .= ' ' . $title . ' '. "\n"; + $return_str .= '' . "\n"; + $return_str .= sti_input( _("Full Name") , sprintf($name, $id, 'full_name'), $identity['full_name'], $bg); + $return_str .= sti_input( _("E-Mail Address") , sprintf($name, $id, 'email_address'), $identity['email_address'], $bg); + $return_str .= sti_input( _("Reply To"), sprintf($name, $id, 'reply_to'), $identity['reply_to'], $bg); + $return_str .= sti_textarea( _("Signature"), sprintf($name, $id, 'signature'), $identity['signature'], $bg); + $return_str .= concat_hook_function('options_identities_table', array($bg, $empty, $id)); + $return_str .= ' ' . "\n"; + $return_str .= '   ' . "\n"; + $return_str .= ' ' . "\n"; + $return_str .= ' ' . "\n"; + + if (!$empty && $id > 0) { + $return_str .= ' ' . "\n"; + $return_str .= ' ' . "\n"; + + if ($id > 1) { + $return_str .= ' ' . "\n"; + } + + } + + $return_str .= concat_hook_function('options_identities_buttons', array($empty, $id)); + $return_str .= ' ' . "\n"; + $return_str .= '' . "\n"; + $return_str .= '' . "\n"; + $return_str .= '   ' . "\n"; + $return_str .= ''; + + return $return_str; - $n = getPref($data_dir, $username, 'full_name' . $post); - $e = getPref($data_dir, $username, 'email_address' . $post); - $r = getPref($data_dir, $username, 'reply_to' . $post); +} + +/** + * Creates html formated table row with input field + * @param string $title Name displayed next to input field + * @param string $name Name of input field + * @param string $data Default value of input field (data is sanitized with htmlspecialchars) + * @param string $bgcolor html attributes added to row element (tr) + * @return string html formated table row with text input field + * @since 1.2.0 (arguments differ since 1.4.5/1.5.1) + * @todo check right-to-left language issues + * @access private + */ +function sti_input( $title, $name, $data, $bgcolor ) { + $str = ''; + $str .= '\n"; + $str .= ' ' . $title . ' ' . "\n"; + $str .= ' ' . "\n"; + $str .= ''; + + return $str; - if ($n != '' || $e != '' || $r != '') - return true; } -function ShowTableInfo($full_name, $email_address, $reply_to, $post) -{ - global $color; - - $OtherBG = ' bgcolor="' . $color[0] . '"'; - if ($full_name == '' && $email_address == '' && $reply_to == '') - $OtherBG = ''; - - if ($full_name == '' && $email_address == '' && $reply_to == '') - $isEmptySection = true; - else - $isEmptySection = false; - -?> - > - - : - - - - - - > - - : - - - - - - > - - : - - - - - - - > -   - - '; - if (! $isEmptySection && $post != '') { -?> - "> - "> - 1) { -?> - "> - - - - -   - -\n"; + $str .= ' ' . $title . ' ' . "\n"; + $str .= ' ' . "\n"; + $str .= ''; + + return $str; + } + ?> \ No newline at end of file