Drupal webform template mail.tpl file field
In drupal 7 when I themed my webform mail, I was getting file id instead of the url. After pulling my hair for an hour or so I found out that we have to use file_load() function in drupal 7 and field_file_load() function in drupal 6.
Eg
$imgpath = file_load($value)->uri; $email_message .= "<a href='".file_create_url($imgpath)."'>Download</a>";
Where $value is the file id.
This is the complete code for my webform-mail.tpl file, in case someone needs it.
<?php
/**
* @file
* Customize the e-mails sent by Webform after successful submission.
*
* This file may be renamed "webform-mail-[nid].tpl.php" to target a
* specific webform e-mail on your site. Or you can leave it
* "webform-mail.tpl.php" to affect all webform e-mails on your site.
*
* Available variables:
* - $node: The node object for this webform.
* - $submission: The webform submission.
* - $email: The entire e-mail configuration settings.
* - $user: The current user submitting the form.
* - $ip_address: The IP address of the user submitting the form.
*
* The $email['email'] variable can be used to send different e-mails to different users
* when using the "default" e-mail template.
*/
?>
<?php
$col_left = 175;
$col_right = 475;
$col_tot = $col_left + $col_right;
global $base_url;
if($submission){
print ($email['html'] ? '<table align="center" style="font-family:Arial, Helvetica, sans-serif; font-size:12px; width:'.$col_tot.'px;">' : '');
print ($email['html'] ? '<tbody style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">' : '');
//Title
print ($email['html'] ? '<tr style="font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:bold;">' : '');
print ($email['html'] ? '<td colspan=2 style="font-family:Arial, Helvetica, sans-serif; font-size:18px; font-weight:bold; vertical-align:top;>' : '');
print ($node->title);
print ($email['html'] ? '</td>' : '');
print ($email['html'] ? '</tr>' : '');
//Date
print ($email['html'] ? '<tr style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">' : '');
print ($email['html'] ? '<td style="font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; vertical-align:top; width:'.$col_left.'px;">' : '');
print t('Submission Date').':';
print ($email['html'] ? '</td>' : '');
print ($email['html'] ? '<td style="font-family:Arial, Helvetica, sans-serif; font-size:12px; vertical-align:top; width:'.$col_right.'px;">' : '');
print t('!date', array('!date' => date('Y/m/d, H:i', $submission->submitted)));
print ($email['html'] ? '</td>' : '');
print ($email['html'] ? '</tr>' : '');
//Form Submissions
foreach($node->webform['components'] as $eid => $entry){
if($entry['type']=='fieldset'){
print ($email['html'] ? '<tr style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">' : '');
print ($email['html'] ? '<td colspan=2 style="font-family:Arial, Helvetica, sans-serif; font-size:14px; font-weight:bold; vertical-align:top;"> <br/>' : '');
print $entry['name'];
print ($email['html'] ? '</td>' : '');
print ($email['html'] ? '</tr>' : '');
}
elseif($entry['type']=='file'){
if(isset($submission->data[$eid]['value'][0])&&($submission->data[$eid]['value'][0])){
print ($email['html'] ? '<tr style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">' : '');
print ($email['html'] ? '<td style="font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; vertical-align:top; width:'.$col_left.'px;">' : '');
print $entry['name'].':';
print ($email['html'] ? '</td>' : '');
print ($email['html'] ? '<td style="font-family:Arial, Helvetica, sans-serif; font-size:12px; vertical-align:top; width:'.$col_right.'px;">' : '');
foreach($submission->data[$eid]['value'] as $vid => $value){
$imgpath = file_load($value)->uri;
print "<a href='".file_create_url($imgpath)."'>Download</a>";
}
print ($email['html'] ? '</td>' : '');
print ($email['html'] ? '</tr>' : '');
}
}
else{
if(isset($submission->data[$eid]['value'][0])&&($submission->data[$eid]['value'][0])){
print ($email['html'] ? '<tr style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">' : '');
print ($email['html'] ? '<td style="font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; vertical-align:top; width:'.$col_left.'px;">' : '');
print $entry['name'].':';
print ($email['html'] ? '</td>' : '');
print ($email['html'] ? '<td style="font-family:Arial, Helvetica, sans-serif; font-size:12px; vertical-align:top; width:'.$col_right.'px;">' : '');
foreach($submission->data[$eid]['value'] as $vid => $value){
print nl2br($value);
}
print ($email['html'] ? '</td>' : '');
print ($email['html'] ? '</tr>' : '');
}
}
}
$options = array(
'attributes' => array(
'style' => 'font-family:Arial, Helvetica, sans-serif; font-size:12px;',
),
);
print ($email['html'] ? '<tr style="font-family:Arial, Helvetica, sans-serif; font-size:14px;">' : '');
print ($email['html'] ? '<td colspan=2 align="center" style="font-family:Arial, Helvetica, sans-serif; font-size:14px; font-weight:bold; vertical-align:top;"> <br/>' : '');
print l('View enquiry online',url('node/'. $node->nid .'/submission/'. $submission->sid, array('absolute' => TRUE)), $options);
print ($email['html'] ? '</td>' : '');
print ($email['html'] ? '</tr>' : '');
print ($email['html'] ? '<tr style="font-family:Arial, Helvetica, sans-serif; font-size:14px;">' : '');
print ($email['html'] ? '<td colspan=2 align="center" style="font-family:Arial, Helvetica, sans-serif; font-size:14px; font-weight:bold; vertical-align:top;"> <br/>' : '');
print l('Go to My Drupal Website',$base_url.base_path(), $options);
print ($email['html'] ? '</td>' : '');
print ($email['html'] ? '</tr>' : '');
print ($email['html'] ? '</tbody>' : '');
print ($email['html'] ? '</table>' : '');
}
?>