You are here

function webform_civicrm_preprocess_webform_results_submissions in Webform CiviCRM Integration 7.4

Same name and namespace in other branches
  1. 8.5 webform_civicrm.module \webform_civicrm_preprocess_webform_results_submissions()
  2. 7.5 webform_civicrm.module \webform_civicrm_preprocess_webform_results_submissions()
  3. 7.3 webform_civicrm.module \webform_civicrm_preprocess_webform_results_submissions()

Implements hook_preprocess_HOOK(). Add CiviCRM names to webform submission results table.

File

./webform_civicrm.module, line 528
Webform CiviCRM Integration Module: Links webform submissions to contacts in a CiviCRM database. @author Coleman Watts

Code

function webform_civicrm_preprocess_webform_results_submissions(&$vars) {
  if (count($vars['table']['#rows']) && !empty($vars['node']->webform_civicrm) && webform_results_access($vars['node'])) {
    module_load_include('inc', 'webform_civicrm', 'includes/utils');
    $access = user_access('access CiviCRM');
    $temp = $vars['table']['#header'];
    $vars['table']['#header'] = array();

    // Move contact col to position 2
    foreach ($temp as $k => $v) {
      $vars['table']['#header'][] = $v;
      if ($k == 1) {
        $vars['table']['#header'][] = wf_crm_contact_label(1, $vars['node']->webform_civicrm['data']);
      }
    }
    foreach ($vars['table']['#rows'] as &$row) {
      $name = '';

      // Get submission id from url
      preg_match('#/submission/(\\d+)#', $row[4], $preg);
      $sid = $preg[1];
      if (!empty($vars['submissions'][$sid]->civicrm['contact'][1])) {
        $data = $vars['submissions'][$sid]->civicrm;
        $name = $data['contact'][1]['display_name'];
        if ($name !== '' && $access) {
          $name = l($name, 'civicrm/contact/view', array(
            'query' => array(
              'reset' => 1,
              'cid' => $data['contact'][1]['id'],
            ),
            'attributes' => array(
              'title' => t('View CiviCRM contact'),
            ),
            'alias' => TRUE,
          ));
        }
      }
      $temp = $row;
      $row = array();

      // Move name to position 2
      foreach ($temp as $k => $v) {
        $row[] = $v;
        if ($k == 1) {
          $row[] = $name;
        }
      }
    }
  }
}