You are here

function views_rss_handler_field_user_mail::render in Views RSS 6.2

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($values) {
  if ($this->options['rss_format'] == 'with_name') {

    // Try to load full user object based on email address.
    $value = $values->{$this->field_alias};
    if ($account = user_load(array(
      'mail' => $value,
    ))) {
      $value = $account->mail . ' (' . $account->name . ')';
    }

    // XML element array in format_xml_elements() format.
    $rss_element = array(
      'key' => 'author',
      'value' => $value,
    );

    // Make sure that element value is XML-safe.
    views_rss_htmlspecialchars($rss_element);

    // Prepare and store raw-rendered values in view results,
    // the same way as values from standard field formatters are added.
    if (isset($this->view->row_index)) {
      $rendered = array(
        '#item' => $values->{$this->field_alias},
        '#markup' => format_xml_elements(array(
          $rss_element,
        )),
        '#rss_element' => $rss_element,
        '#settings' => $this->options,
      );
      $row_index = $this->view->row_index;
      $field_name = 'field_' . $this->field;
      $this->view->result[$row_index]->{$field_name}[0] = array(
        'rendered' => $rendered,
        'raw' => $values->{$this->field_alias},
      );
    }

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

  // Standard Views render().
  return parent::render($values);
}