function webform_format_email_address in Webform 7.3
Same name and namespace in other branches
- 6.3 webform.module \webform_format_email_address()
- 7.4 webform.module \webform_format_email_address()
Given an email address and a name, format an e-mail address.
Parameters
$address: The e-mail address.
$name: The name to be used in the formatted address.
$node: The webform node if replacements will be done.
$submission: The webform submission values if replacements will be done.
$encode: Encode the text for use in an e-mail.
$single: Force a single value to be returned, even if a component expands to multiple addresses. This is useful to ensure a single e-mail will be returned for the "From" address.
$format: The e-mail format, defaults to the site-wide setting. May be either "short" or "long".
3 calls to webform_format_email_address()
- webform_emails_form in includes/
webform.emails.inc - Overview form of all components for this webform.
- webform_submission_resend in includes/
webform.submissions.inc - Form to resend specific e-mails associated with a submission.
- webform_submission_send_mail in includes/
webform.submissions.inc - Send related e-mails related to a submission.
File
- ./
webform.module, line 3380 - This module provides a simple way to create forms and questionnaires.
Code
function webform_format_email_address($address, $name, $node = NULL, $submission = NULL, $encode = TRUE, $single = TRUE, $format = NULL) {
if (!isset($format)) {
$format = variable_get('webform_email_address_format', 'long');
}
if ($name == 'default') {
$name = webform_variable_get('webform_default_from_name');
}
elseif (is_numeric($name) && isset($node->webform['components'][$name])) {
if (isset($submission->data[$name]['value'])) {
$name = $submission->data[$name]['value'];
}
else {
$name = t('Value of !component', array(
'!component' => $node->webform['components'][$name]['name'],
));
}
}
if ($address == 'default') {
$address = webform_variable_get('webform_default_from_address');
}
elseif (is_numeric($address) && isset($node->webform['components'][$address])) {
if (isset($submission->data[$address]['value'])) {
$values = $submission->data[$address]['value'];
$address = array();
foreach ($values as $value) {
$address = array_merge($address, explode(',', $value));
}
}
else {
$address = t('Value of "!component"', array(
'!component' => $node->webform['components'][$address]['name'],
));
}
}
// Convert arrays into a single value for From values.
if ($single) {
$address = is_array($address) ? reset($address) : $address;
$name = is_array($name) ? reset($name) : $name;
}
// Address may be an array if a component value was used on checkboxes.
if (is_array($address)) {
foreach ($address as $key => $individual_address) {
$address[$key] = _webform_filter_values($individual_address, $node, $submission, NULL, FALSE, TRUE);
}
}
else {
$address = _webform_filter_values($address, $node, $submission, NULL, FALSE, TRUE);
}
if ($format == 'long' && !empty($name)) {
$name = _webform_filter_values($name, $node, $submission, NULL, FALSE, TRUE);
if ($encode) {
$name = mime_header_encode($name);
}
$name = trim($name);
return '"' . $name . '" <' . $address . '>';
}
else {
return $address;
}
}