|
@@ -0,0 +1,72 @@
|
|
|
|
|
+<?php
|
|
|
|
|
+
|
|
|
|
|
+namespace Opentalent\OtTemplating\ViewHelpers;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+use Closure;
|
|
|
|
|
+use Opentalent\OtCore\Service\OpentalentImageService;
|
|
|
|
|
+use Opentalent\OtCore\Website\OtPageRepository;
|
|
|
|
|
+use Opentalent\OtCore\ViewHelpers\OtAbstractViewHelper;
|
|
|
|
|
+use Opentalent\OtTemplating\ViewHelpers\RootPage\GetIdViewHelper;
|
|
|
|
|
+use TYPO3\CMS\Core\Utility\GeneralUtility;
|
|
|
|
|
+use TYPO3\CMS\Extbase\Object\ObjectManager;
|
|
|
|
|
+use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
|
|
|
|
|
+use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * Returns the url of the requested image
|
|
|
|
|
+ *
|
|
|
|
|
+ * {namespace ot=Opentalent\OtTemplating\ViewHelpers}
|
|
|
|
|
+ *
|
|
|
|
|
+ * {ot:getImageUrl(fileId: 123, size: 'md')}
|
|
|
|
|
+ *
|
|
|
|
|
+ * @see ot_core/Classes/Service/OpentalentImageService.php
|
|
|
|
|
+ * @package Opentalent\OtTemplating\ViewHelpers
|
|
|
|
|
+ */
|
|
|
|
|
+class GetImageUrlViewHelper extends OtAbstractViewHelper
|
|
|
|
|
+{
|
|
|
|
|
+ public OpentalentImageService $opentalentImageService;
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param OpentalentImageService $opentalentImageService
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ public function injectOpentalentImageService(OpentalentImageService $opentalentImageService)
|
|
|
|
|
+ {
|
|
|
|
|
+ $this->opentalentImageService = $opentalentImageService;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * -- This method is expected by Fluid --
|
|
|
|
|
+ * Declares the viewhelper's parameters
|
|
|
|
|
+ */
|
|
|
|
|
+ public function initializeArguments()
|
|
|
|
|
+ {
|
|
|
|
|
+ $this->registerArgument(
|
|
|
|
|
+ 'fileId',
|
|
|
|
|
+ 'int',
|
|
|
|
|
+ 'The id of the File object',
|
|
|
|
|
+ true
|
|
|
|
|
+ );
|
|
|
|
|
+ $this->registerArgument(
|
|
|
|
|
+ 'size',
|
|
|
|
|
+ 'string',
|
|
|
|
|
+ 'The expected size (sm, md, or lg)',
|
|
|
|
|
+ false,
|
|
|
|
|
+ 'md'
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * -- This method is expected by Fluid --
|
|
|
|
|
+ * Renders the content as html
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return string Rendered tag
|
|
|
|
|
+ */
|
|
|
|
|
+ public function render() {
|
|
|
|
|
+ $fileId = $this->arguments['fileId'];
|
|
|
|
|
+ $size = $this->arguments['size'];
|
|
|
|
|
+ return $this->opentalentImageService->getImageUrl($fileId, $size);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+}
|