diff --git a/Classes/ViewHelpers/Item/EnclosureViewHelper.php b/Classes/ViewHelpers/Item/EnclosureViewHelper.php new file mode 100644 index 0000000..db42bc9 --- /dev/null +++ b/Classes/ViewHelpers/Item/EnclosureViewHelper.php @@ -0,0 +1,49 @@ +registerArgument('attribute', 'string', 'The attribute to be obtained', true, 'url'); + $this->registerArgument('key', 'int', 'The enclosure item key. Starts with 0.', false, 0); + } + + public function render() { + $attribute = $this->arguments['attribute']; + if (!in_array($attribute, ['url', 'length', 'type'], true)) { + $message = sprintf('Attribute "%s" is no valid enclosure attribute.', $attribute); + throw new \InvalidArgumentException($message, 1500032671); + } + /** @var SimplePie_Item $item */ + $item = $this->templateVariableContainer->get('item'); + /** @var SimplePie_Enclosure $enclosure */ + $enclosure = $item->get_enclosure($this->arguments['key']); + if ($enclosure) { + switch ($this->arguments['attribute']) { + case 'url': + return $enclosure->get_link(); + case 'length': + return $enclosure->get_length(); + case 'type': + return $enclosure->get_type(); + default: + return ''; + } + } + return ''; + } +}