You are here

function _webform2pdf_filter_values in Webform2PDF 7.3

1 call to _webform2pdf_filter_values()
theme_webform2pdf_content in ./webform2pdf.module

File

./webform2pdf.module, line 486

Code

function _webform2pdf_filter_values($string, $node, $submission) {
  $tokens = array();
  foreach ($node->webform['components'] as $component) {
    if (isset($component['type']) && $component['type'] == 'select') {
      $values = isset($submission->data[$component['cid']]['value']) ? $submission->data[$component['cid']]['value'] : '';
      if (is_array($values)) {
        $items = explode("<nl2br>", preg_replace("/(\r\n)+|(\n|\r)+/", "<nl2br>", $component['extra']['items']));
        $options = array();
        foreach ($items as $item) {
          if (strpos($item, '|') === FALSE) {
            $key = $option = $item;
          }
          else {
            $key = drupal_substr($item, 0, strpos($item, '|'));
            $option = drupal_substr($item, strpos($item, '|') + 1);
          }
          $options[$key] = $option;
        }
        $nl = $all = $nl_all = array();
        foreach ($options as $key => $option) {
          if (in_array($option, $values) || in_array($key, $values)) {
            if (!empty($option)) {
              $nl[] = ' - ' . $option . "<br />\n";
              $all[] = '<u><b><span class="selected">' . $option . '</span></b></u>';
              $nl_all[] = ' [X] ' . $option . "<br />\n";
            }
          }
          else {
            if (!empty($option)) {
              $all[] = $option;
              $nl_all[] = ' [  ] ' . $option . "<br />\n";
            }
          }
        }

        // select_or_other module support
        if (module_exists('select_or_other')) {
          $potential_values = array_merge(array_keys($options), array_values($options));
          $diff = array_diff($values, $potential_values);
          if (count($diff)) {
            foreach ($diff as $value) {
              if (!empty($value)) {
                $nl[] = ' - ' . check_plain($value) . "<br />\n";
                $all[] = '<u><b><span class="selected">' . check_plain($value) . '</span></b></u>';
                $nl_all[] = ' [X] ' . check_plain($value) . "<br />\n";
              }
            }
          }
        }
        $tokens['%label_nl[' . $component['form_key'] . ']'] = $component['name'] . ": <br />\n" . implode('', $nl);
        $tokens['%label_all[' . $component['form_key'] . ']'] = $component['name'] . ': ' . implode(', ', $all);
        $tokens['%label_all_nl[' . $component['form_key'] . ']'] = $component['name'] . ": <br />\n" . implode('', $nl_all);
        $tokens['%nl[' . $component['form_key'] . ']'] = implode('', $nl);
        $tokens['%all[' . $component['form_key'] . ']'] = implode(', ', $all);
        $tokens['%all_nl[' . $component['form_key'] . ']'] = implode('', $nl_all);
      }
      else {
        $tokens['%label_nl[' . $component['form_key'] . ']'] = $tokens['%label_all[' . $component['form_key'] . ']'] = $tokens['%label_all_nl[' . $component['form_key'] . ']'] = $tokens['%nl[' . $component['form_key'] . ']'] = $tokens['%all[' . $component['form_key'] . ']'] = $tokens['%all_nl[' . $component['form_key'] . ']'] = '';
      }
    }
  }
  drupal_alter('webform2pdf_tokens', $tokens, $node, $submission);
  return strtr($string, $tokens);
}