, dreipunktnull * * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is * free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * The GNU General Public License can be found at * http://www.gnu.org/copyleft/gpl.html. * * This script is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; class NightsOptionsViewHelper extends AbstractViewHelper { public function initializeArguments() { parent::initializeArguments(); $this->registerArgument('options', 'array', 'The options'); $this->registerArgument('daytrip', 'bool', 'Is daytrip or not', false, false); } /** * @param array $arguments * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * @return mixed */ public function render() { if ($this->arguments['daytrip']) { return 'Tageweise buchbar'; } $options = $this->arguments['options']; if ($options === null) { return ''; } sort($options); $optionsCount = count($options); $lastOption = array_pop($options); $output = ''; if ($optionsCount > 2) { $output .= implode(', ' , $options) . ' oder ' . $lastOption; } elseif ($optionsCount === 2) { $output .= reset($options) . ' oder ' . $lastOption; } else { $output = $lastOption; } $output .= (int) $lastOption > 1 ? ' Nächte' : ' Nacht'; return $output; } }