From ac7ba173cdf3c5a90666ebd4dc15ae21cea99ed5 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Mon, 22 Jan 2024 20:12:29 +0200 Subject: [PATCH] htmlizer fix iterate and test --- application/Espo/Core/Htmlizer/Htmlizer.php | 5 +++++ tests/unit/Espo/Core/Htmlizer/HtmlizerTest.php | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/application/Espo/Core/Htmlizer/Htmlizer.php b/application/Espo/Core/Htmlizer/Htmlizer.php index a5dd8641a4..9c8fd3a3b5 100644 --- a/application/Espo/Core/Htmlizer/Htmlizer.php +++ b/application/Espo/Core/Htmlizer/Htmlizer.php @@ -919,6 +919,11 @@ class Htmlizer $newTemplate = str_replace('', '{{/each}}', $newTemplate); + $from = strpos($newTemplate,'') + 6; + $to = strrpos($newTemplate, '') - strlen($newTemplate); + + $newTemplate = substr($newTemplate, $from, $to); + return preg_replace('//', '{{#each $1}}', $newTemplate) ?? ''; } diff --git a/tests/unit/Espo/Core/Htmlizer/HtmlizerTest.php b/tests/unit/Espo/Core/Htmlizer/HtmlizerTest.php index 38c3f00197..eb0e6f2f8b 100644 --- a/tests/unit/Espo/Core/Htmlizer/HtmlizerTest.php +++ b/tests/unit/Espo/Core/Htmlizer/HtmlizerTest.php @@ -223,4 +223,22 @@ class HtmlizerTest extends TestCase $html = $this->htmlizer->render($entity, $template); $this->assertEquals('test', $html); } + + public function testIterate(): void + { + /** @noinspection HtmlUnknownAttribute */ + $template = ""; + + $html = $this->htmlizer->render(null, $template, null, [ + 'items' => [ + ['name' => '1'], + ['name' => '2'], + ], + ]); + + /** @noinspection HtmlUnknownAttribute */ + $expected = ""; + + $this->assertEquals($expected, $html); + } }