Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 13 |
RSSEnclosureFormatter | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 13 |
viewElements | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 13 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\file\Plugin\Field\FieldFormatter\RSSEnclosureFormatter. | |
*/ | |
namespace Drupal\file\Plugin\Field\FieldFormatter; | |
use Drupal\Core\Field\FieldItemListInterface; | |
/** | |
* Plugin implementation of the 'file_rss_enclosure' formatter. | |
* | |
* @FieldFormatter( | |
* id = "file_rss_enclosure", | |
* label = @Translation("RSS enclosure"), | |
* field_types = { | |
* "file" | |
* } | |
* ) | |
*/ | |
class RSSEnclosureFormatter extends FileFormatterBase { | |
/** | |
* {@inheritdoc} | |
*/ | |
public function viewElements(FieldItemListInterface $items, $langcode) { | |
$entity = $items->getEntity(); | |
// Add the first file as an enclosure to the RSS item. RSS allows only one | |
// enclosure per item. See: http://en.wikipedia.org/wiki/RSS_enclosure | |
foreach ($this->getEntitiesToView($items, $langcode) as $delta => $file) { | |
$entity->rss_elements[] = array( | |
'key' => 'enclosure', | |
'attributes' => array( | |
// In RSS feeds, it is necessary to use absolute URLs. The 'url.site' | |
// cache context is already associated with RSS feed responses, so it | |
// does not need to be specified here. | |
'url' => file_create_url($file->getFileUri()), | |
'length' => $file->getSize(), | |
'type' => $file->getMimeType(), | |
), | |
); | |
} | |
return []; | |
} | |
} |