/**
* Generates an address block.
*
* @param string $name the addressee name
* @param array $lines the lines of address information
* @param array $phone the list of phone numbers - passed as $key => $value, where:
* - $key is the phone type could be 'Res', 'Off', 'Cell', 'Fax'
* - $value is the phone number
* @param array $email the list of email addresses - passed as $key => $value, where:
* - $key is the email type could be 'Res', 'Off'
* - $value is the email address
* @param array $options html options for the address
* @param string $phoneLabel the prefix label for each phone - defaults to '(P)'
* @param string $emailLabel the prefix label for each email - defaults to '(E)'
*
* Example(s):
* ~~~
* echo Html::address(
* 'Twitter, Inc.',
* ['795 Folsom Ave, Suite 600', 'San Francisco, CA 94107'],
* ['Res' => '(123) 456-7890', 'Off'=> '(456) 789-0123'],
* ['Res' => '*****@*****.**', 'Off' => '*****@*****.**']
* );
* $address = Html::address(
* 'Twitter, Inc.',
* ['795 Folsom Ave, Suite 600', 'San Francisco, CA 94107'],
* ['Res' => '(123) 456-7890', 'Off'=> '(456) 789-0123'],
* ['Res' => '*****@*****.**', 'Off' => '*****@*****.**'],
* Html::icon('phone'),
* Html::icon('envelope')
* );
* echo Html::well($address, Html::SIZE_TINY);
* ~~~
*
* @see http://getbootstrap.com/css/#type-addresses
*/
public static function address($name, $lines = [], $phone = [], $email = [], $options = [], $phoneLabel = '(P)', $emailLabel = '(E)')
{
Enum::initI18N();
$addresses = '';
if (!empty($lines)) {
$addresses = implode('<br>', $lines) . "<br>\n";
}
$phones = '';
foreach ($phone as $type => $number) {
if (is_numeric($type)) {
// no keys were passed to the phone array
$type = static::tag('abbr', $phoneLabel, ['title' => Yii::t('kvenum', 'Phone')]) . ': ';
} else {
$type = static::tag('abbr', $phoneLabel . ' ' . $type, ['title' => Yii::t('kvenum', 'Phone')]) . ': ';
}
$phones .= "{$type}{$number}<br>\n";
}
$emails = '';
foreach ($email as $type => $addr) {
if (is_numeric($type)) {
// no keys were passed to the email array
$type = Html::tag('abbr', $emailLabel, ['title' => Yii::t('kvenum', 'Email')]) . ': ';
} else {
$type = Html::tag('abbr', $emailLabel . ' ' . $type, ['title' => Yii::t('kvenum', 'Email')]) . ': ';
}
$emails .= $type . static::mailto($addr, $addr) . "<br>\n";
}
return static::tag('address', "<strong>{$name}</strong><br>\n" . $addresses . $phones . $emails, $options);
}