You are here

function domain_views_handler_field_domain_access_sitename::render in Domain Views 7

Render the field.

Parameters

array $values: The values retrieved from the database.

Overrides views_handler_field::render

File

includes/domain_views_handler_field_domain_access_sitename.inc, line 127
Interface between domain_views.module and views.module.

Class

domain_views_handler_field_domain_access_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($values->domain_nid)) {
    $nid = $values->domain_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($this->field_values[$values->domain_nid])) {
    $options = $this->options;
    $items = array();
    foreach ($this->field_values[$values->domain_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);
    }
    elseif (count($items) == 1) {
      return $items[0];
    }
    else {
      return '';
    }
  }
  else {

    // TODO: fix alias handling here.
    return $this
      ->render_link($values->domain_access_domain_id, $values);
  }
}