RSSCategoryFormatter.php

Contains \Drupal\taxonomy\Plugin\field\formatter\RSSCategoryFormatter.

Namespace

Drupal\taxonomy\Plugin\field\formatter

File

drupal/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/field/formatter/RSSCategoryFormatter.php
View source
<?php

/**
 * @file
 * Contains \Drupal\taxonomy\Plugin\field\formatter\RSSCategoryFormatter.
 */
namespace Drupal\taxonomy\Plugin\field\formatter;

use Drupal\field\Annotation\FieldFormatter;
use Drupal\Core\Annotation\Translation;
use Drupal\Core\Entity\EntityInterface;
use Drupal\field\Plugin\Type\Formatter\FormatterBase;
use Drupal\taxonomy\Plugin\field\formatter\TaxonomyFormatterBase;

/**
 * Plugin implementation of the 'taxonomy_term_reference_rss_category' formatter.
 *
 * @FieldFormatter(
 *   id = "taxonomy_term_reference_rss_category",
 *   module = "taxonomy",
 *   label = @Translation("RSS category"),
 *   field_types = {
 *     "taxonomy_term_reference"
 *   }
 * )
 */
class RSSCategoryFormatter extends TaxonomyFormatterBase {

  /**
   * {@inheritdoc}
   */
  public function viewElements(EntityInterface $entity, $langcode, array $items) {

    // Terms whose tid is 'autocreate' do not exist yet and $item['entity'] is
    // not set. Theme such terms as just their name.
    foreach ($items as $item) {
      if ($item['tid']) {
        $value = $item['entity']
          ->label();
        $uri = $item['entity']
          ->uri();
        $uri['options']['absolute'] = TRUE;
        $domain = url($uri['path'], $uri['options']);
      }
      else {
        $value = $item['entity']
          ->label();
        $domain = '';
      }
      $entity->rss_elements[] = array(
        'key' => 'category',
        'value' => $value,
        'attributes' => array(
          'domain' => $domain,
        ),
      );
    }
  }

}

Classes

Namesort descending Description
RSSCategoryFormatter Plugin implementation of the 'taxonomy_term_reference_rss_category' formatter.