|
|
/* SquirrelMail required files. */ | /* SquirrelMail required files. */ |
require_once(SM_PATH . 'include/validate.php'); | require_once(SM_PATH . 'include/validate.php'); |
require_once(SM_PATH . 'functions/global.php'); |
include_once(SM_PATH . 'functions/global.php'); |
require_once(SM_PATH . 'functions/display_messages.php'); |
include_once(SM_PATH . 'functions/display_messages.php'); |
require_once(SM_PATH . 'functions/html.php'); |
include_once(SM_PATH . 'functions/html.php'); |
|
include_once(SM_PATH . 'functions/identity.php'); |
/* POST data var names are dynamic because |
|
of the possible multiple idents so lets get |
|
them all |
|
*/ |
|
if (!empty($_POST)) { |
|
extract($_POST); |
|
} |
|
/* got 'em all */ |
|
if (isset($return)) { |
if (!sqgetGlobalVar('identities', $identities, SQ_SESSION)) { |
SaveUpdateFunction(); |
$identities = get_identities(); |
header('Location: options_personal.php'); |
|
exit(); |
|
} | } |
displayPageHeader($color, 'None'); |
sqgetGlobalVar('newidentities', $newidentities, SQ_POST); |
|
sqgetGlobalVar('smaction', $smaction, SQ_POST); |
|
sqgetGlobalVar('return', $return, SQ_POST); |
$Info = do_hook('options_identities_process', 0); |
// First lets see if there are any actions to perform // |
if ($Info[1]) { |
if (!empty($smaction) && is_array($smaction)) { |
SaveUpdateFunction(); |
|
|
$doaction = ''; |
|
$identid = 0; |
|
foreach($smaction as $action=>$row) { |
|
// we only need to extract the action and the identity we are |
|
// altering |
|
|
|
foreach($row as $key=>$data) { |
|
$identid = $key; |
} | } |
if (CheckAndDoDefault() || CheckAndDoPromote()) { |
$doaction = $action; |
SaveUpdateFunction(); |
|
} | } |
if (isset($update) || CheckForDelete()) { |
|
SaveUpdateFunction(); |
$identities = sqfixidentities( $newidentities , $identid , $action ); |
|
save_identities($identities); |
} | } |
|
if (!empty($return)) { |
|
header('Location: ' . get_location() . '/options_personal.php'); |
|
exit; |
|
} |
|
|
|
displayPageHeader($color, 'None'); |
|
|
do_hook('options_identities_top'); | do_hook('options_identities_top'); |
LoadInfo($full_name, $email_address, $reply_to, $signature, ''); |
|
$td_str = ''; | $td_str = ''; |
$td_str .= '<form name="f" action="options_identities.php" method="post"><br />'; |
$td_str .= '<form name="f" action="options_identities.php" method="post"><br />' . "\n"; |
$td_str .= ShowTableInfo($full_name, $email_address, $reply_to, $signature, ''); |
$td_str .= '<table border="0" cellspacing="0" cellpadding="0" width="100%">' . "\n"; |
|
$cnt = count($identities); |
|
foreach( $identities as $key=>$ident ) { |
|
|
|
if ($key == 0) { |
|
$hdr_str = _("Default Identity"); |
|
} else { |
|
$hdr_str = sprintf( _("Alternate Identity %d"), $key); |
|
} |
|
|
|
$td_str .= ShowIdentityInfo( $hdr_str, $ident, $key ); |
$num = 1; |
|
while (LoadInfo($full_name, $email_address, $reply_to, $signature, $num)) { |
|
$td_str .= html_tag( 'tr', |
|
html_tag( 'th', sprintf (_("Alternate Identity %d"), $num), 'center', '', 'colspan="2"' ) , |
|
'', $color[9]); |
|
$td_str .= ShowTableInfo($full_name, $email_address, $reply_to, $signature, $num); |
|
$num ++; |
|
} | } |
echo '<br />' . |
$td_str .= ShowIdentityInfo( _("Add a New Identity"), array('full_name'=>'','email_address'=>'','reply_to'=>'','signature'=>''), $cnt); |
|
$td_str .= '</table>' . "\n"; |
|
$td_str .= '</form>'; |
|
|
|
echo '<br /> ' . "\n" . |
html_tag( 'table', "\n" . | html_tag( 'table', "\n" . |
html_tag( 'tr', "\n" . | html_tag( 'tr', "\n" . |
html_tag( 'td', "\n" . | html_tag( 'td', "\n" . |
|
|
html_tag( 'td', "\n" . | html_tag( 'td', "\n" . |
html_tag( 'table', "\n" . | html_tag( 'table', "\n" . |
html_tag( 'tr', "\n" . | html_tag( 'tr', "\n" . |
html_tag( 'th', _("Default Identity"), 'center', '', 'colspan="2"' ) , |
html_tag('td', "\n" . $td_str ,'','', 'style="text-align:center;"') |
'', $color[9]) . "\n" . |
), |
$td_str . "\n" . |
|
html_tag( 'tr', |
|
html_tag( 'th', _("Add a New Identity") . ShowTableInfo('', '', '', '', $num), 'center', '', 'colspan="2"' ) , |
|
'', $color[9]) , |
|
'', '', 'width="80%" cellpadding="2" cellspacing="0" border="0"' ) , | '', '', 'width="80%" cellpadding="2" cellspacing="0" border="0"' ) , |
'center', $color[4] ) | 'center', $color[4] ) |
) , | ) , |
'', '', 'width="100%" border="0" cellpadding="1" cellspacing="1"' ) , |
'', '', 'width="100%" border="0" cellpadding="1" cellspacing="1"' )) , |
'center', $color[0] ) |
'center', $color[0]), |
) , |
'center', '', 'width="95%" border="0" cellpadding="2" cellspacing="0"' ) . '</body></html>'; |
'center', '', 'width="95%" border="0" cellpadding="2" cellspacing="0"' ) . |
|
'</body></html>'; |
function ShowIdentityInfo($title, $identity, $id ) { |
function SaveUpdateFunction() { |
global $color; |
global $username, $data_dir, $full_name, $email_address, $reply_to, $signature; |
|
$i = 1; |
if (empty($identity['full_name']) && empty($identity['email_address']) && empty($identity['reply_to']) && empty($identity['signature'])) { |
$fakeI = 1; |
$bg = ''; |
$name = 'form_for_' . $i; |
$empty = true; |
global $$name; |
|
while (isset($$name)) |
|
{ |
|
$name = 'delete_' . $i; |
|
global $$name; |
|
if (isset($$name)) { |
|
$fakeI --; |
|
} else { | } else { |
do_hook('options_identities_renumber', $i, $fakeI); |
$bg = ' style="background-color:' . $color[0] . ';"'; |
$filled = 0; |
$empty = false; |
|
|
$name = 'full_name' . $i; |
|
global $$name; |
|
if ($$name != '') |
|
$filled ++; |
|
setPref($data_dir, $username, 'full_name' . $fakeI, $$name); |
|
|
|
$name = 'email_address' . $i; |
|
global $$name; |
|
if ($$name != '') |
|
$filled ++; |
|
setPref($data_dir, $username, 'email_address' . $fakeI, $$name); |
|
|
|
$name = 'reply_to' . $i; |
|
global $$name; |
|
if ($$name != '') |
|
$filled ++; |
|
setPref($data_dir, $username, 'reply_to' . $fakeI, $$name); |
|
|
|
$name = 'signature' . $i; |
|
global $$name; |
|
if ($$name != '') |
|
$filled ++; |
|
setSig($data_dir, $username, $fakeI, $$name); |
|
|
|
if ($filled == 0) |
|
$fakeI --; |
|
} |
|
|
|
$fakeI ++; |
|
$i ++; |
|
$name = 'form_for_' . $i; |
|
global $$name; |
|
} | } |
setPref($data_dir, $username, 'identities', $fakeI); |
$name = 'newidentities[%d][%s]'; |
while ($fakeI != $i) |
$return_str = ''; |
{ |
|
removePref($data_dir, $username, 'full_name' . $fakeI); |
|
removePref($data_dir, $username, 'email_address' . $fakeI); |
|
removePref($data_dir, $username, 'reply_to' . $fakeI); |
|
setSig($data_dir, $username, $fakeI, ""); |
|
$fakeI ++; |
|
} |
|
|
|
setPref($data_dir, $username, 'full_name', $full_name); |
|
setPref($data_dir, $username, 'email_address', $email_address); |
|
setPref($data_dir, $username, 'reply_to', $reply_to); |
|
setSig($data_dir, $username, "g", $signature); |
|
|
|
} |
|
|
|
function CheckAndDoDefault() { |
|
global $username, $data_dir, $full_name, $email_address, $reply_to, $signature; |
|
|
|
$i = 1; |
|
$name = 'form_for_' . $i; |
|
global $$name; |
|
while (isset($$name)) |
|
{ |
|
$name = 'make_default_' . $i; |
|
global $$name; |
|
if (isset($$name)) { |
|
do_hook('options_identities_renumber', $i, 'default'); |
|
global $full_name, $email_address, $reply_to, $signature; |
|
|
|
$name = 'full_name' . $i; |
|
global $$name; |
|
$temp = $full_name; |
|
$full_name = $$name; |
|
$$name = $temp; |
|
$name = 'email_address' . $i; |
|
global $$name; |
|
$temp = $email_address; |
|
$email_address = $$name; |
|
$$name = $temp; |
|
$name = 'reply_to' . $i; |
$return_str .= '<tr>' . "\n"; |
global $$name; |
$return_str .= ' <th style="text-align:center;background-color:' . $color[9] . ';" colspan="2">' . $title . '</th> '. "\n"; |
$temp = $reply_to; |
$return_str .= '</tr>' . "\n"; |
$reply_to = $$name; |
$return_str .= sti_input( _("Full Name") , sprintf($name, $id, 'full_name'), $identity['full_name'], $bg); |
$$name = $temp; |
$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 .= '<tr' . $bg . '> ' . "\n"; |
|
$return_str .= ' <td> </td>' . "\n"; |
|
$return_str .= ' <td>' . "\n"; |
|
$return_str .= ' <input type="submit" name="smaction[save][' . $id . ']" value="' . _("Save / Update") . '" />' . "\n"; |
$name = 'signature' . $i; |
if (!$empty && $id > 0) { |
global $$name; |
$return_str .= ' <input type="submit" name="smaction[makedefault][' . $id . ']" value="' . _("Make Default") . '" />' . "\n"; |
$temp = $signature; |
$return_str .= ' <input type="submit" name="smaction[delete]['.$id.']" value="' . _("Delete") . '" />' . "\n"; |
$signature = $$name; |
|
$$name = $temp; |
|
|
if ($id > 1) { |
return true; |
$return_str .= ' <input type="submit" name="smaction[move]['.$id.']" value="' . _("Move Up") . '" />' . "\n"; |
} | } |
$i ++; |
|
$name = 'form_for_' . $i; |
|
global $$name; |
|
} |
|
return FALSE; |
|
} | } |
function CheckForDelete() { |
$return_str .= concat_hook_function('options_identities_buttons', array($empty, $id)); |
global $username, $data_dir, $full_name, $email_address, $reply_to, $signature; |
$return_str .= ' </td>' . "\n"; |
|
$return_str .= '</tr>' . "\n"; |
|
$return_str .= '<tr>' . "\n"; |
|
$return_str .= ' <td colspan="2"> </td>' . "\n"; |
|
$return_str .= '</tr>'; |
$i = 1; |
return $return_str; |
$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; |
function sti_input( $title, $name, $data, $bgcolor ) { |
} |
$str = ''; |
|
$str .= '<tr' . $bgcolor . ">\n"; |
function CheckAndDoPromote() { |
$str .= ' <td style="white-space: nowrap;text-align:right;">' . $title . ' </td>' . "\n"; |
global $username, $data_dir, $full_name, $email_address, $reply_to; |
$str .= ' <td> <input type="text" name="' . $name . '" size="50" value="'. htmlspecialchars($data) . '"> </td>' . "\n"; |
|
$str .= '</tr>'; |
$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; |
return $str; |
$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; |
|
|
|
$nameA = 'signature' . $i; |
|
$nameB = 'signature' . ($i - 1); |
|
global $$nameA, $$nameB; |
|
$temp = $$nameA; |
|
$$nameA = $$nameB; |
|
$$nameB = $temp; |
|
|
|
return true; |
|
} | } |
$i ++; |
function sti_textarea( $title, $name, $data, $bgcolor ) { |
$name = 'form_for_' . $i; |
$str = ''; |
global $$name; |
$str .= '<tr' . $bgcolor . ">\n"; |
} |
$str .= ' <td style="white-space: nowrap;text-align:right;">' . $title . ' </td>' . "\n"; |
return false; |
$str .= ' <td> <textarea name="' . $name . '" cols="50" rows="5">'. htmlspecialchars($data) . '</textarea> </td>' . "\n"; |
} |
$str .= '</tr>'; |
function LoadInfo(&$n, &$e, &$r, &$s, $post) { |
return $str; |
global $username, $data_dir; |
|
|
|
$n = getPref($data_dir, $username, 'full_name' . $post); |
|
$e = getPref($data_dir, $username, 'email_address' . $post); |
|
$r = getPref($data_dir, $username, 'reply_to' . $post); |
|
if ($post == '') |
|
$post = 'g'; |
|
$s = getSig($data_dir,$username,$post); |
|
|
|
if ($n != '' || $e != '' || $r != '' || $s != '') |
|
return true; |
|
} |
|
function sti_input( $title, $hd, $data, $post, $bg ) { |
|
$return_val = html_tag( 'tr', |
|
html_tag( 'td', $title . ':', 'right', '', 'nowrap' ) . |
|
html_tag( 'td', '<input size="50" type="text" value="' . htmlspecialchars($data) . '" name="' . $hd . $post . '" />' , 'left' ) , |
|
'', $bg ); |
|
return ($return_val); |
|
} | } |
function sti_textarea( $title, $hd, $data, $post, $bg ) { |
|
$return_val = html_tag( 'tr', |
|
html_tag( 'td', $title . ':', 'right', '', 'nowrap' ) . |
|
html_tag( 'td', '<textarea cols="50" rows="5" name="' . $hd . $post . '">' . htmlspecialchars($data) . '</textarea>' , 'left' ) , |
|
'', $bg ); |
|
return ($return_val); |
|
} |
|
|
|
function ShowTableInfo($full_name, $email_address, $reply_to, $signature, $post) { |
|
global $color; |
|
|
|
$OtherBG = $color[0]; |
|
if ($full_name == '' && $email_address == '' && $reply_to == '' && $signature == '') |
|
$OtherBG = ''; |
|
|
|
if ($full_name == '' && $email_address == '' && $reply_to == '' && $signature == '') |
|
$isEmptySection = true; |
|
else |
|
$isEmptySection = false; |
|
|
|
$return_val = ''; |
|
$return_val .= sti_input( _("Full Name"), 'full_name', $full_name, $post, $OtherBG ); |
|
$return_val .= sti_input( _("E-Mail Address"), 'email_address', $email_address, $post, $OtherBG ); |
|
$return_val .= sti_input( _("Reply To"), 'reply_to', $reply_to, $post, $OtherBG ); |
|
$return_val .= sti_textarea( _("Signature"), 'signature', $signature, $post, $OtherBG ); |
|
|
|
$return_val .= concat_hook_function('options_identities_table', array($OtherBG, $isEmptySection, $post)); |
|
$return_val .= html_tag( 'tr', '', '', $OtherBG); |
|
$return_val .= html_tag( 'td', ' ', 'left' ); |
|
$return_val .= html_tag( 'td', '', 'left' ); |
|
$return_val .= '<input type="hidden" name="form_for_'. $post .'" value="1" />'; |
|
$return_val .= '<input type="submit" name="update" value="' . _("Save / Update") . '" />'; |
|
|
|
|
|
if (! $isEmptySection && $post != '') { |
|
$return_val .= '<input type="submit" name="make_default_' . $post . '" value="'. |
|
_("Make Default") . '" />'. |
|
'<input type="submit" name="delete_' . $post . '" value="'. |
|
_("Delete") . '" />'; |
|
} |
|
if (! $isEmptySection && $post != '' && $post > 1) { |
|
$return_val .= '<input type="submit" name="promote_' . $post . '" value="'. |
|
_("Move Up") . '" />'; |
|
} |
|
$return_val .= concat_hook_function('options_identities_buttons', array($isEmptySection, $post)); |
|
$return_val .= '</td></tr>'. |
|
html_tag( 'tr', html_tag( 'td', ' ', 'left', '', 'colspan="2"' )); |
|
|
|
return ($return_val); |
|
} |
|
?> | ?> |