* @package Vhs * @subpackage ViewHelpers\Extension */ abstract class AbstractExtensionViewHelper extends AbstractViewHelper { /** * @return void */ public function initializeArguments() { $this->registerArgument('extensionName', 'string', 'Name, in UpperCamelCase, of the extension to be checked', FALSE, NULL, TRUE); } /** * @return string */ protected function getExtensionKey() { $extensionName = $this->getExtensionName(); return GeneralUtility::camelCaseToLowerCaseUnderscored($extensionName); } /** * @throws \RuntimeException * @return mixed */ protected function getExtensionName() { if (TRUE === isset($this->arguments['extensionName']) && FALSE === empty($this->arguments['extensionName'])) { return $this->arguments['extensionName']; } $request = $this->controllerContext->getRequest(); $extensionName = $request->getControllerExtensionName(); if (TRUE === empty($extensionName)) { throw new \RuntimeException('Unable to read extension name from ControllerContext and value not manually specified', 1364167519); } return $extensionName; } }