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); + } }