You are here

function views_rss_yandex_realty_field_formatter_view in Views RSS: Yandex Elements 7

Implements hook_field_formatter_view().

File

views_rss_yandex_realty/views_rss_yandex_realty.field.inc, line 72
Field formatters for Views RSS: Yandex Realty module.

Code

function views_rss_yandex_realty_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = NULL;
  foreach ($items as $delta => $item) {

    // Inside a view item may contain NULL data. In that case, just return.
    if (($field['type'] == 'file' || $field['type'] == 'image') && empty($item['fid']) || $field['type'] == 'media' && empty($item['file']->fid) || $field['type'] == 'text' && empty($item['safe_value']) || $field['type'] == 'link_field' && empty($item['url'])) {
      unset($items[$delta]);
      continue;
    }

    // Get full image URL based on provided image style.
    if ($field['type'] == 'image' && !empty($display['settings']['image_style']) && ($image_style = image_style_load($display['settings']['image_style']))) {
      $uri = image_style_url($display['settings']['image_style'], $item['uri']);
    }
    elseif ($field['type'] == 'media') {
      $uri = file_create_url($item['file']->uri);
    }
    elseif ($field['type'] == 'text' || $field['type'] == 'link_field') {
      $uri = $field['type'] == 'text' ? $item['safe_value'] : $item['url'];
    }
    else {
      $uri = file_create_url($item['uri']);
    }

    // XML element array in format_xml_elements() format.
    $rss_element = array(
      'key' => 'image',
      'value' => $uri,
    );
    $element[$delta] = array(
      '#item' => $item,
      '#markup' => format_xml_elements(array(
        $rss_element,
      )),
      '#rss_element' => $rss_element,
    );
  }
  return $element;
}