Export: ListPerson: avoid json_decoding the string '_header'

This commit is contained in:
Julien Fastré 2023-11-27 21:02:39 +01:00
parent 5f441eb5ac
commit 4727a57825
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
2 changed files with 12 additions and 2 deletions

View File

@ -0,0 +1,5 @@
kind: Fixed
body: 'Export: fix list person with custom fields'
time: 2023-11-27T21:01:38.260730706+01:00
custom:
Issue: ""

View File

@ -332,13 +332,18 @@ class ListPerson implements ExportElementValidatedInterface, ListInterface, Grou
if (null === $value) { if (null === $value) {
return ''; return '';
} }
$decoded = json_decode((string) $value, true, 512, JSON_THROW_ON_ERROR);
if ('_header' === $value) { if ('_header' === $value) {
$label = $cfType->getChoices($cf)[$slugChoice]; $label = $cfType->getChoices($cf)[$slugChoice];
return $this->translatableStringHelper->localize($cf->getName()) return $this->translatableStringHelper->localize($cf->getName())
.' | '.$label; .' | '.$label;
}
try {
$decoded = json_decode((string) $value, true, 512, JSON_THROW_ON_ERROR);
} catch (\JsonException $e) {
throw new \RuntimeException(sprintf('unable to decode json: %s, %s', json_last_error(), json_last_error_msg()), $e->getCode(), $e);
} }
if ('_other' === $slugChoice && $cfType->isChecked($cf, $slugChoice, $decoded)) { if ('_other' === $slugChoice && $cfType->isChecked($cf, $slugChoice, $decoded)) {