Browse Source

add the new ImageService

Olivier Massot 1 year ago
parent
commit
e734b9fbb6

+ 72 - 0
ot_templating/Classes/ViewHelpers/GetImageUrlViewHelper.php

@@ -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);
+    }
+
+}

+ 1 - 1
ot_templating/Resources/Private/Partials/Modern/Menu.html

@@ -25,7 +25,7 @@
                                     <f:then>
                                         <a href="{ot:rootPage.getUri()}" title="{settings.structureName}">
                                             <img id="logo_img"
-                                                 src="{ot:image.getSrcById(fileId: settings.structureLogoId, size: 'sm')}"
+                                                 src="{ot:getImageUrl(fileId: settings.structureLogoId, size: 'sm')}"
                                                  alt="{settings.structureName}"/>
                                         </a>
                                     </f:then>