X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fvcard.php;h=df93af005a6ec3c07a3396add1cbb37ba70775e9;hp=2560fe6210c2c53d1ca520aef29e7609ae124000;hb=47ccfad452e8d345542d09e59112cac317cffed8;hpb=76911253eb850bacde3d86c8cb7b4af072e67ebe diff --git a/src/vcard.php b/src/vcard.php index 2560fe62..df93af00 100644 --- a/src/vcard.php +++ b/src/vcard.php @@ -3,61 +3,60 @@ /** * vcard.php * - * Copyright (c) 1999-2003 The SquirrelMail Project Team - * Licensed under the GNU GPL. For full terms see the file COPYING. - * * This file shows an attched vcard * - * $Id$ + * @copyright © 1999-2006 The SquirrelMail Project Team + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id$ + * @package squirrelmail */ -/* Path for SquirrelMail required files. */ +/** + * Path for SquirrelMail required files. + * @ignore + */ Define('SM_PATH','../'); /* SquirrelMail required files. */ require_once(SM_PATH . 'include/validate.php'); -require_once(SM_PATH . 'functions/date.php'); -require_once(SM_PATH . 'functions/page_header.php'); require_once(SM_PATH . 'functions/mime.php'); -require_once(SM_PATH . 'include/load_prefs.php'); +require_once(SM_PATH . 'functions/url_parser.php'); /* globals */ -$key = $_COOKIE['key']; -$username = $_SESSION['username']; -$onetimepad = $_SESSION['onetimepad']; -$mailbox = decodeHeader($_GET['mailbox']); -$passed_id = (int) $_GET['passed_id']; -$ent_id = $_GET['ent_id']; -$passed_ent_id = $_GET['passed_ent_id']; -$startMessage = (int) $_GET['startMessage']; +sqgetGlobalVar('username', $username, SQ_SESSION); +sqgetGlobalVar('key', $key, SQ_COOKIE); +sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION); + +sqgetGlobalVar('passed_id', $passed_id, SQ_GET); +sqgetGlobalVar('mailbox', $mailbox, SQ_GET); +sqgetGlobalVar('ent_id', $ent_id, SQ_GET); +sqgetGlobalVar('startMessage', $startMessage, SQ_GET); /* end globals */ $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0); sqimap_mailbox_select($imapConnection, $mailbox); - displayPageHeader($color, 'None'); -echo '
' . "\n" . - ' +
' . - '
' . - _("Viewing a Business Card") . " - "; +echo '
' . "\n" . + ''; +echo ''. _("View message") . '' . + ''; $message = sqimap_get_message($imapConnection, $passed_id, $mailbox); $entity_vcard = getEntity($message,$ent_id); -$vcard = mime_fetch_body ($imapConnection, $passed_id, $ent_id); +$vcard = mime_fetch_body($imapConnection, $passed_id, $ent_id); $vcard = decodeBody($vcard, $entity_vcard->header->encoding); $vcard = explode ("\n",$vcard); foreach ($vcard as $l) { @@ -69,7 +68,7 @@ foreach ($vcard as $l) { if ($attr == 'quoted-printable') $v = quoted_printable_decode($v); else - $k .= ';' . $attr; + $k .= ';' . strtolower($attr); } $v = str_replace(';', "\n", $v); @@ -78,14 +77,22 @@ foreach ($vcard as $l) { if ($vcard_nice['version'] == '2.1') { // get firstname and lastname for sm addressbook - $vcard_nice["firstname"] = substr($vcard_nice["n"], - strpos($vcard_nice["n"], "\n") + 1, strlen($vcard_nice["n"])); - $vcard_nice["lastname"] = substr($vcard_nice["n"], 0, - strpos($vcard_nice["n"], "\n")); + $vcard_nice['firstname'] = substr($vcard_nice['n'], + strpos($vcard_nice['n'], "\n") + 1, strlen($vcard_nice['n'])); + $vcard_nice['lastname'] = substr($vcard_nice['n'], 0, + strpos($vcard_nice['n'], "\n")); + // workaround for Outlook, should be fixed in a better way, + // maybe in new 'vCard' class. + if (isset($vcard_nice['email;pref;internet'])) { + $vcard_nice['email;internet'] = $vcard_nice['email;pref;internet']; + } } else { - echo '\n"; + echo '\n"; + $vcard_nice['firstname'] = ''; + $vcard_nice['lastname'] = ''; } foreach ($vcard_nice as $k => $v) { @@ -97,7 +104,7 @@ foreach ($vcard_nice as $k => $v) { $ShowValues = array( 'fn' => _("Name"), 'title' => _("Title"), - 'email;internet' => _("Email"), + 'email;internet' => _("E-mail"), 'url' => _("Web Page"), 'org' => _("Organization / Department"), 'adr' => _("Address"), @@ -107,111 +114,132 @@ $ShowValues = array( 'tel;fax' => _("Fax"), 'note' => _("Note")); -echo ' + +
' . + _("Viewing a Business Card") . " - "; + $msg_url = 'read_body.php?mailbox='.urlencode($mailbox). - '&startMessage='.$startMessage. - '&passed_id='.$passed_id; + '&startMessage='.urlencode($startMessage). + '&passed_id='.urlencode($passed_id); $msg_url = set_url_var($msg_url, 'ent_id', 0); -echo ''. _("View message") . ''; - -echo '
vCard Version ' . $vcard_nice['version'] . - ' is not supported. Some information might not be converted ' . - "correctly.
' . + sprintf(_("vCard Version %s is not supported. Some information might not be converted correctly."), + htmlspecialchars($vcard_nice['version'])) . + "

' . - '' . "\n"; +echo '

' . + '' . "\n"; -if (isset($vcard_safe['email;internet'])) { $vcard_safe['email;internet'] = '' . $vcard_safe['email;internet'] . - ''; +if (isset($vcard_safe['email;internet'])) { + $vcard_safe['email;internet'] = makeComposeLink('src/compose.php?send_to='.urlencode($vcard_safe['email;internet']), + $vcard_safe['email;internet']); } + if (isset($vcard_safe['url'])) { - $vcard_safe['url'] = '' . - $vcard_safe['url'] . ''; + $vcard_safe['url'] = '' . + $vcard_safe['url'] . ''; } foreach ($ShowValues as $k => $v) { if (isset($vcard_safe[$k]) && $vcard_safe[$k]) { - echo "\n"; + echo "\n"; } } -echo '
$v:" . $vcard_safe[$k] . - "
$v:" . + $vcard_safe[$k] . "
' . - '
' . - '
' . - '' . - '' . - '' . - '
' . - '
' . - _("Add to Addressbook") . - '
' . - '
' . - '' . - '' . - '' . - '
Nickname:
Note Field Contains:' . - '
+
+
+ + +' . - '
+
+
+
+ + +' . + '' . + '' . - '' . - '
: +rfc822_header; + $from_name = $header->getAddr_s('from'); + + echo '
' . _("E-mail address") . ':' . + addInput('addaddr[email]', + getEmail(decodeHeader($from_name)), '20'); +} + +echo '
' . _("Additional info") . ':'; +$opts = array(); if (isset($vcard_nice['url'])) { - echo '\n"; + $opts[$vcard_nice['url']] = _("Web Page"); } if (isset($vcard_nice['adr'])) { - echo '\n"; + $opts[$vcard_nice['adr']] = _("Address"); } if (isset($vcard_nice['title'])) { - echo '\n"; + $opts[$vcard_nice['title']] = _("Title"); } if (isset($vcard_nice['org'])) { - echo '\n"; + $opts[$vcard_nice['org']] = _("Organization / Department"); } if (isset($vcard_nice['title'])) { - echo '\n"; + $opts[$vcard_nice['title'].'; '.$vcard_nice['org']] = _("Title & Org. / Dept."); } if (isset($vcard_nice['tel;work'])) { - echo '\n"; + $opts[$vcard_nice['tel;work']] = _("Work Phone"); } if (isset($vcard_nice['tel;home'])) { - echo '\n"; + $opts[$vcard_nice['tel;home']] = _("Home Phone"); } if (isset($vcard_nice['tel;cell'])) { - echo '\n"; + $opts[$vcard_nice['tel;cell']] = _("Cellular Phone"); } if (isset($vcard_nice['tel;fax'])) { - echo '\n"; + $opts[$vcard_nice['tel;fax']] = _("Fax"); } if (isset($vcard_nice['note'])) { - echo '\n"; -} -echo '' . - '
' . - '' . - '' . - '' . - '' . - '
' . - '' . - '
' . - '' . - _("Download this as a file") . '' . - '
' . - - '' . - '
' . - '
' . - ''; + $opts[$vcard_nice['note']] = _("Note"); +} + +/* + * If the vcard comes with nothing but name and e-mail address, the user gets + * the chance to type some additional info. If there's more info in the card, + * the user gets to choose what will be added as additional info. + */ +if (count($opts) == 0) { + echo addInput('addaddr[label]', '', '20'); +} else { + echo addSelect('addaddr[label]', $opts, '', TRUE); +} + +?> +

+ +
+ +
+' . + _("Download this as a file") . ''; ?> +
+ +
+
+ \ No newline at end of file