You are here

function views_rss_handler_field_user_mail::render_link in Views RSS 7.2

Overrides views_handler_field_user_mail::render_link

File

views/views_rss_handler_field_user_mail.inc, line 37
Field handler to provide additional control for the email field.

Class

views_rss_handler_field_user_mail
@file Field handler to provide additional control for the email field.

Code

function render_link($data, $values) {
  if ($this->options['rss_format'] == 'with_name') {

    // Try to load full user object based on email address.
    $value = $data;
    if ($account = user_load_by_mail($data)) {
      $value = $account->mail . ' (' . $account->name . ')';
    }

    // Basic XML element details.
    $rss_element = array(
      'key' => 'author',
      'value' => $value,
    );

    // Prepare and store raw-rendered values in view results,
    // the same way as values from standard field formatters are added.
    $rendered = array(
      '#item' => $data,
      '#markup' => format_xml_elements(array(
        $rss_element,
      )),
      '#rss_element' => $rss_element,
      '#settings' => $this->options,
    );

    // Store raw-rendered values in view results, the same way
    // as values from standard field formatters are added.
    $row_index = $this->view->row_index;
    $field_name = 'field_' . $this->field;
    $this->view->result[$row_index]->{$field_name}[0] = array(
      'rendered' => $rendered,
      'raw' => $data,
    );

    // Return formatted XML element.
    return format_xml_elements(array(
      $rss_element,
    ));
  }

  // Standard Views render_link().
  return parent::render_link($data, $values);
}