You are here

function domain_views_handler_field_domain_sitename::render in Domain Access 6.2

File

domain_views/includes/domain_views_handler_field_domain_sitename.inc, line 128
Interface between domain_views.module and views.module.

Class

domain_views_handler_field_domain_sitename
Field handler to provide simple renderer that allows linking to a domain.

Code

function render($values) {

  // Special case handling when returning multiple sitenames per record.
  // This only happens when list all domains is selected in options.
  // Determine the node path, if any.
  $nid = NULL;
  if (isset($this->aliases['nid']) && isset($values->{$this->aliases['nid']})) {
    $nid = $values->{$this->aliases['nid']};
  }
  else {
    if (isset($values->nid)) {
      $nid = $values->nid;
    }
    elseif (isset($values->node_nid)) {
      $nid = $values->node_nid;
      $values->nid = $nid;
    }
  }
  $node_path = '';
  if (!empty($nid)) {
    $node_path = drupal_get_path_alias('node/' . $nid);
  }
  $link_options = array(
    'absolute' => TRUE,
  );

  // Now write the links.
  if (isset($values->nid) && isset($this->field_values[$values->nid]) && is_array($this->field_values[$values->nid])) {
    $field = $this->content_field;
    $options = $this->options;
    $items = array();
    foreach ($this->field_values[$values->nid] as $domain_id => $item) {
      if (!empty($item)) {
        $link = $item;
        if (!empty($options['link_to_original_domain'])) {
          $domain = domain_lookup($domain_id);
          $link = l($item, $domain['path'] . $node_path, $link_options);
        }
        if (!empty($options['link_to_default_domain'])) {
          $domain = domain_default();
          $link = l($item, $domain['path'] . $node_path, $link_options);
        }
        $items[] = $link;
      }
    }
    if (count($items) > 1) {
      return theme('domain_views_view_multiple_field', $items, $field, $values);
    }
    else {
      if (count($items) == 1) {
        return $items[0];
      }
      else {
        return '';
      }
    }
  }
  else {
    return $this
      ->render_link(check_plain($values->{$this->field_alias}), $values);
  }
}