|
30 | 30 | $defaultConfig = $configurationService->getDefaultConfiguration(); |
31 | 31 |
|
32 | 32 | $data = ArrayUtility::replaceBooleanValues($_POST); |
33 | | -$action = isset($data['type']) ? $data['type'] : null; |
| 33 | +$action = $data['type'] ?? null; |
34 | 34 |
|
35 | 35 | // Reset |
36 | 36 | if ($action === 'reset') { |
|
257 | 257 | // Collage json config |
258 | 258 | $newConfig['collage']['limit'] = $newConfig['collage']['limit'] ?? $defaultConfig['collage']['limit']; |
259 | 259 | if ($newConfig['collage']['enabled']) { |
260 | | - $collageConfigFilePath = Collage::getCollageConfigPath($newConfig['collage']['layout'], $newConfig['collage']['orientation']); |
261 | | - |
262 | | - if ($collageConfigFilePath !== null) { |
263 | | - $collageJson = json_decode((string)file_get_contents($collageConfigFilePath), true); |
264 | | - |
265 | | - if (is_array($collageJson)) { |
266 | | - if (isset($collageJson['layout']) && !empty($collageJson['layout'])) { |
267 | | - $layoutConfigArray = $collageJson['layout']; |
268 | | - |
269 | | - if (array_key_exists('placeholder', $collageJson)) { |
270 | | - $newConfig['collage']['placeholder'] = $collageJson['placeholder']; |
271 | | - } |
272 | | - if (array_key_exists('placeholderposition', $collageJson)) { |
273 | | - $newConfig['collage']['placeholderposition'] = $collageJson['placeholderposition']; |
274 | | - } |
275 | | - if (array_key_exists('placeholderpath', $collageJson)) { |
276 | | - $newConfig['collage']['placeholderpath'] = $collageJson['placeholderpath']; |
277 | | - } |
278 | | - } else { |
279 | | - $layoutConfigArray = $collageJson; |
280 | | - } |
281 | | - |
282 | | - // Calculate collage limit |
283 | | - if (str_starts_with($newConfig['collage']['layout'], '2x')) { |
284 | | - $newConfig['collage']['limit'] = (int) ceil(count($layoutConfigArray) / 2); |
285 | | - } else { |
286 | | - $newConfig['collage']['limit'] = count($layoutConfigArray); |
287 | | - } |
288 | | - |
289 | | - // If there is a collage placeholder whithin the correct range (0 < placeholderposition <= collage limit), we need to decrease the collage limit by 1 |
290 | | - if ($newConfig['collage']['placeholder']) { |
291 | | - $collagePlaceholderPosition = (int) $newConfig['collage']['placeholderposition']; |
292 | | - if ($collagePlaceholderPosition > 0 && $collagePlaceholderPosition <= $newConfig['collage']['limit']) { |
293 | | - $newConfig['collage']['limit'] = $newConfig['collage']['limit'] - 1; |
294 | | - } else { |
295 | | - $newConfig['collage']['placeholder'] = false; |
296 | | - $logger->debug('Placeholder position not in range. Placeholder disabled.'); |
297 | | - } |
298 | | - |
299 | | - if ($newConfig['collage']['placeholderpath'] === '') { |
300 | | - $newConfig['collage']['placeholder'] = false; |
301 | | - $logger->debug('Collage Placeholder is empty. Collage Placeholder disabled.'); |
302 | | - } |
303 | | - } |
304 | | - } else { |
305 | | - $newConfig['collage']['enabled'] = false; |
306 | | - $logger->debug('No valid collage json found. Collage disabled.'); |
307 | | - } |
308 | | - } |
| 260 | + $limitData = Collage::calculateLimit($newConfig['collage'], $logger); |
| 261 | + $newConfig['collage']['limit'] = $limitData['limit']; |
| 262 | + $newConfig['collage']['placeholder'] = $limitData['placeholderEnabled']; |
309 | 263 | if ($newConfig['collage']['limit'] < 1) { |
310 | 264 | $newConfig['collage']['enabled'] = false; |
311 | | - $newConfig['collage']['limit'] = $defaultConfig['collage']['limit']; |
312 | | - $logger->debug('Invalid collage limit, must be 1 or greater. Collage disabled.'); |
313 | 265 | } |
314 | 266 | } |
315 | 267 |
|
|
0 commit comments