You are here

public function webform_handler_field_submission_link::render in Webform 7.4

Same name and namespace in other branches
  1. 6.3 views/webform_handler_field_submission_link.inc \webform_handler_field_submission_link::render()
  2. 7.3 views/webform_handler_field_submission_link.inc \webform_handler_field_submission_link::render()

Render the field.

Parameters

array $values: The values retrieved from the database.

Overrides views_handler_field::render

File

views/webform_handler_field_submission_link.inc, line 65

Class

webform_handler_field_submission_link
Views handler to display links to a submission.

Code

public function render($values) {
  $sid = $values->{$this->aliases['sid']};
  $nid = $values->{$this->aliases['nid']};
  $serial = $values->{$this->aliases['serial']};
  $is_draft = $values->{$this->aliases['is_draft']};
  $text = str_ireplace('[serial]', $serial . ($is_draft ? ' (' . t('draft') . ')' : ''), $this->options['text']);
  switch ($this->link_type) {
    case 'view':
      $text = !empty($text) ? $text : t('view');
      $link = l($text, "node/{$nid}/submission/{$sid}");
      break;
    case 'edit':
      $text = !empty($text) ? $text : t('edit');
      $link = l($text, "node/{$nid}/submission/{$sid}/edit");
      break;
    case 'delete':
      $text = !empty($text) ? $text : t('delete');
      $path = drupal_get_path_alias($_GET['q']);
      $link = l($text, "node/{$nid}/submission/{$sid}/delete", array(
        'query' => array(
          'destination' => $path,
        ),
      ));
      break;
    default:
      return;
  }
  if ($this->options['access_check']) {
    module_load_include('inc', 'webform', 'includes/webform.submissions');
    $node = node_load($nid);
    $submission = webform_get_submission($nid, $sid);
    if (!webform_submission_access($node, $submission, $this->link_type)) {
      return;
    }
  }
  return $link;
}