From: Johan Cwiklinski Date: Sun, 2 May 2021 06:56:37 +0000 (+0200) Subject: Do not render dynamic fields as HTML when not relevant X-Git-Tag: 0.9.5~57 X-Git-Url: https://git.agnieray.net/?a=commitdiff_plain;h=76cf8c133697606a4df0107a6355adfdba050357;p=galette.git Do not render dynamic fields as HTML when not relevant Closes #1545 --- diff --git a/galette/lib/Galette/Features/Replacements.php b/galette/lib/Galette/Features/Replacements.php index a9c802e44..bb4aa0ed9 100644 --- a/galette/lib/Galette/Features/Replacements.php +++ b/galette/lib/Galette/Features/Replacements.php @@ -7,7 +7,7 @@ * * PHP version 5 * - * Copyright © 2020 The Galette Team + * Copyright © 2020-2021 The Galette Team * * This file is part of Galette (http://galette.tuxfamily.org). * @@ -28,7 +28,7 @@ * @package Galette * * @author Johan Cwiklinski - * @copyright 2020 The Galette Team + * @copyright 2020-2021 The Galette Team * @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version * @link http://galette.eu * @since 2020-12-20 @@ -56,7 +56,7 @@ use Slim\Router; * @name Replacements * @package Galette * @author Johan Cwiklinski - * @copyright 2020 The Galette Team + * @copyright 2020-2021 The Galette Team * @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version * @link http://galette.eu * @since 2020-12-20 @@ -64,6 +64,8 @@ use Slim\Router; trait Replacements { + public static $RENDER_TXT = 0; + public static $RENDER_HTML = 1; private $patterns = []; private $replaces = []; private $dynamic_patterns = []; @@ -649,6 +651,8 @@ trait Replacements public function setDynamicFields(string $form_name, array $dynamic_fields, $object): self { $uform_name = strtoupper($form_name); + $render = ($this instanceof PdfModel && ($object->id == null) ? self::$RENDER_HTML : self::$RENDER_TXT); + $dynamic_patterns = $this->getDynamicPatterns($form_name); foreach ($dynamic_patterns as $dynamic_pattern) { $pattern = trim($dynamic_pattern['pattern'], '/'); @@ -681,56 +685,80 @@ trait Replacements $field_value = ''; } - //FIXME: html is only required for pdf, not for emails switch ($field_type) { case DynamicField::TEXT: - $value .= ''; + if ($render == self::$RENDER_HTML) { + $value .= ''; + } else { + $value .= $field_value; + } break; case DynamicField::LINE: - $value .= ''; + if ($render == self::$RENDER_HTML) { + $value .= ''; + } else { + $value .= $field_value; + } break; case DynamicField::CHOICE: $choice_values = $dynamic_fields[$field_id]->getValues(); foreach ($choice_values as $choice_idx => $choice_value) { - $value .= ''; + if ($render == self::$RENDER_HTML) { + $value .= ''; + } else { + $value .= $field_value; + } break; case DynamicField::BOOLEAN: - $value .= ''; + if ($render == self::$RENDER_HTML) { + $value .= ''; + } else { + $value .= $field_value; + } break; } }