Browse code

[Change] Change addImageToTemplate to FigureBuilder

Sebastian Zoglowek authored on15/01/2023 16:55:01
Showing1 changed files
... ...
@@ -73,6 +73,7 @@ class Member extends Frontend
73 73
             return;
74 74
         }
75 75
 
76
+        // ToDo: remove $_SESSION when contao 4.13 support ends (Contao ^5.* is not possible with Contao 4.* support)
76 77
         $file = $_SESSION['FILES']['avatar'];
77 78
         $maxlength_kb = $this->getMaximumUploadSize();
78 79
         $maxlength_kb_readable = $this->getReadableSize($maxlength_kb);
... ...
@@ -118,7 +119,7 @@ class Member extends Frontend
118 119
         }
119 120
 
120 121
         $objFile = new File($file['name']);
121
-        $uploadTypes = StringUtil::trimsplit(',', \Config::get('validImageTypes'));
122
+        $uploadTypes = StringUtil::trimsplit(',', Config::get('validImageTypes'));
122 123
 
123 124
         // File type is not allowed
124 125
         if (!\in_array($objFile->extension, $uploadTypes))
... ...
@@ -238,7 +239,7 @@ class Member extends Frontend
238 239
     /**
239 240
      * Return the maximum upload file size in bytes
240 241
      */
241
-    protected function getMaximumUploadSize(): string
242
+    protected function getMaximumUploadSize()
242 243
     {
243 244
         if ($this->maxlength > 0)
244 245
         {
... ...
@@ -251,7 +252,7 @@ class Member extends Frontend
251 252
     /**
252 253
      * Parses an avatar to the template
253 254
      */
254
-    public static function parseMemberAvatar(?MemberModel $objMember, &$objTemplate, ?string $strImgSize): void
255
+    public static function parseMemberAvatar(?MemberModel $objMember, &$objTemplate, ?string $imgSize): void
255 256
     {
256 257
         $objTemplate->addImage= true;
257 258
 
... ...
@@ -261,7 +262,7 @@ class Member extends Frontend
261 262
         $projectDir = System::getContainer()->getParameter('kernel.project_dir');
262 263
 
263 264
         // Check if member avatar exists
264
-        if (null === $objMember || null === $objMember->avatar || null === ($objFile = FilesModel::findByUuid($objMember->avatar)) || !\is_file($projectDir.'/'.$objFile->path))
265
+        if (null === $objMember || null === $objMember->avatar || null === ($objFile = FilesModel::findByUuid($objMember->avatar)) || !\is_file($projectDir.'/'. $objFile->path))
265 266
         {
266 267
             $objFile = !!($uuidDefault = Config::get('defaultAvatar')) ? FilesModel::findByUuid($uuidDefault) : null;
267 268
         }
... ...
@@ -273,16 +274,19 @@ class Member extends Frontend
273 274
         }
274 275
 
275 276
         $objTemplate->addFallbackImage = false;
277
+        $imgSize = $imgSize ?? null;
276 278
 
277
-        $arrData = ['singleSRC'=>$objFile->path];
279
+        $figureBuilder = System::getContainer()
280
+            ->get('contao.image.studio')
281
+            ->createFigureBuilder()
282
+            ->from($objFile->path)
283
+            ->setSize($imgSize)
284
+        ;
278 285
 
279
-        if (null !== $strImgSize)
286
+        if (null !== ($figure = $figureBuilder->buildIfResourceExists()))
280 287
         {
281
-            $arrData['size'] = $strImgSize;
288
+            $figure->applyLegacyTemplateData($objTemplate);
282 289
         }
283
-
284
-        //ToDo: Change to FigureBuilder in the future
285
-        $objTemplate->addImageToTemplate($objTemplate, $arrData, null, null, $objFile);
286 290
     }
287 291
 
288 292
     /**