function _webform2pdf_get_template_vars in Webform2PDF 6
Same name and namespace in other branches
- 6.2 webform2pdf.module \_webform2pdf_get_template_vars()
3 calls to _webform2pdf_get_template_vars()
File
- ./
webform2pdf.module, line 1282
Code
function _webform2pdf_get_template_vars($node, $submission) {
$tokens = array_flip(_webform2pdf_list_template_vars($node));
foreach ($tokens as $key => $token) {
$tokens[$key] = '';
}
foreach ($node->webform['components'] as $component) {
if (!empty($submission->data[$component['cid']]['value'])) {
switch ($component['type']) {
case 'date':
$timestamp = strtotime($submission->data[$component['cid']]['value'][0] . '/' . $submission->data[$component['cid']]['value'][1] . '/' . $submission->data[$component['cid']]['value'][2] . ' GMT');
$format = webform_date_format('medium');
$date = format_date($timestamp, 'custom', $format, 0);
$tokens['%' . $component['form_key']] = $date;
break;
case 'time':
if (!empty($submission->data[$component['cid']]['value'][0])) {
$tokens['%' . $component['form_key']] = $submission->data[$component['cid']]['value'][0] . ':' . $submission->data[$component['cid']]['value'][1];
if (!empty($submission->data[$component['cid']]['value'][2])) {
$tokens['%' . $component['form_key']] .= ' ' . $submission->data[$component['cid']]['value'][2];
}
}
else {
$tokens['%' . $component['form_key']] = '';
}
break;
case 'grid':
$options = array();
$opts = explode("<nl2br>", preg_replace("/(\r\n)+|(\n|\r)+/", "<nl2br>", $component['extra']['options']));
foreach ($opts as $opt) {
list($key, $var) = explode('|', $opt);
if (empty($var)) {
$options[$key] = trim($key);
}
else {
$options[$key] = trim($var);
}
}
$questions = explode("<nl2br>", preg_replace("/(\r\n)+|(\n|\r)+/", "<nl2br>", $component['extra']['questions']));
ksort($submission->data[$component['cid']]['value']);
$t = array();
foreach ($submission->data[$component['cid']]['value'] as $num => $answer) {
$t[] = $questions[$num] . ': ' . $options[$answer];
}
$tokens['%' . $component['form_key']] = implode("<br />\n", $t);
break;
case 'select':
// in the $component:
// if aslist=Y, then standard select + if multiple=Y then Multi-select
// if aslist=N and multiple=Y then checkbox (there is no difference between single, and multivalue)
// if aslist=N and multiple=N then radiobuton (there is no difference between single, and multivalue)
$values = $submission->data[$component['cid']]['value'];
if (is_array($values)) {
$items = explode("<nl2br>", preg_replace("/(\r\n)+|(\n|\r)+/", "<nl2br>", $component['extra']['items']));
$selectNL = $selectAll = $selectAllNL = array();
foreach ($values as $value) {
$selectNL[] = ' - ' . $value . "<br />\n";
}
foreach ($items as $key => $item) {
if (strpos($item, '|')) {
$item = substr($item, 0, strpos($item, '|'));
}
if (in_array($item, $values)) {
$selectAll[] = '<u><b><span class="selected">' . $item . '</span></b></u>';
$selectAllNL[] = ' [X] ' . $item . "<br />\n";
}
else {
$selectAll[] = $item;
$selectAllNL[] = ' [ ] ' . $item . "<br />\n";
}
}
$tokens['%' . $component['form_key']] = implode(', ', $values);
$tokens['%' . $component['form_key'] . '-all'] = implode(', ', $selectAll);
$tokens['%' . $component['form_key'] . '-nl'] = implode('', $selectNL);
$tokens['%' . $component['form_key'] . '-all-nl'] = implode('', $selectAllNL);
}
else {
$tokens['%' . $component['form_key']] = $tokens['%' . $component['form_key'] . '-all'] = $tokens['%' . $component['form_key'] . '-nl'] = $tokens['%' . $component['form_key'] . '-all-nl'] = '';
}
break;
case 'email':
case 'hidden':
case 'textarea':
case 'textfield':
if (!empty($submission->data[$component['cid']]['value'][0])) {
$tokens['%' . $component['form_key']] = $submission->data[$component['cid']]['value'][0];
}
else {
$tokens['%' . $component['form_key']] = '';
}
break;
// markup', 'pagebreak', etc.
default:
// _hook_webform2pdf_get_template_vars call, support of extra types
foreach (module_list() as $module) {
$function = '_' . $module . 'webform2pdf_get_template_vars';
if (function_exists($function)) {
call_user_func($function, $component, $submission, $tokens);
}
}
break;
}
}
}
// node id
$tokens['%nid'] = $node->nid;
// submission id
$tokens['%sid'] = $submission->sid;
// hook_webform2pdf_tokens($tokens, $node, $submission): modify values of $tokens array
drupal_alter('webform2pdf_tokens', $tokens, $node, $submission);
return $tokens;
}