Skip to content

Commit bdcd189

Browse files
committed
9.2.2
- **FlexRepeater-Decode mit Richtext stabilisiert** - `MFormRepeaterHelper::decode()` behandelt Inhalte mit `<br>` (z. B. aus TinyMCE/CKE5) jetzt korrekt. Das JSON wird zuerst unverändert decodiert; die `<br>`-Normalisierung greift nur noch als Fallback für durch `nl2br()` veränderten REX-Output. Dadurch liefern Repeater mit mehrzeiligem Richtext nicht mehr fälschlich ein leeres Array.
1 parent f1517eb commit bdcd189

3 files changed

Lines changed: 14 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# MForm - REDAXO Addon für Modul-Input-Formulare
22

3+
## Version 9.2.2
4+
5+
### Behoben
6+
7+
- **FlexRepeater-Decode mit Richtext stabilisiert** - `MFormRepeaterHelper::decode()` behandelt Inhalte mit `<br>` (z. B. aus TinyMCE/CKE5) jetzt korrekt. Das JSON wird zuerst unverändert decodiert; die `<br>`-Normalisierung greift nur noch als Fallback für durch `nl2br()` veränderten REX-Output. Dadurch liefern Repeater mit mehrzeiligem Richtext nicht mehr fälschlich ein leeres Array.
8+
39
## Version 9.1.4
410

511
### Neu

lib/MForm/Repeater/MFormRepeaterHelper.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,11 +287,15 @@ public static function decode(int|string $source): array
287287
}
288288

289289
$normalizedValue = html_entity_decode($rexValue, ENT_QUOTES | ENT_HTML5, 'UTF-8');
290-
// Default-Rex-Output kann JSON durch nl2br() mit <br>-Tags anreichern.
291-
$normalizedValue = preg_replace('/<br\s*\/?>/i', "\n", $normalizedValue) ?? $normalizedValue;
292-
293290
$decoded = json_decode($normalizedValue, true);
294291

292+
// Fallback fuer Default-Rex-Output: nl2br() kann JSON ausserhalb von Strings mit <br>-Tags anreichern.
293+
// Wichtig: Erst nach einem fehlgeschlagenen Decode ersetzen, damit legitime <br>-Tags im Feldinhalt erhalten bleiben.
294+
if (!is_array($decoded)) {
295+
$fallbackValue = preg_replace('/<br\s*\/?>/i', "\n", $normalizedValue) ?? $normalizedValue;
296+
$decoded = json_decode($fallbackValue, true);
297+
}
298+
295299
if (!is_array($decoded)) {
296300
return [];
297301
}

package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package: mform
2-
version: '9.2.1'
2+
version: '9.2.2'
33
name: MForm
44
author: Friends Of REDAXO
55
supportpage: https://github.com/FriendsOfREDAXO/mform

0 commit comments

Comments
 (0)