From abf74c512f6eb3499336282449d9c6f38dfcbd97 Mon Sep 17 00:00:00 2001 From: RobinDev Date: Fri, 19 Aug 2022 21:23:16 +0200 Subject: [PATCH] =?UTF-8?q?[Core]=C2=A0Better=20phoneNumber=20&=20email=20?= =?UTF-8?q?content=20filter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/Component/EntityFilter/Filter/Email.php | 8 ++++++-- .../src/Component/EntityFilter/Filter/PhoneNumber.php | 8 ++++---- .../core/src/templates/component/encoded_mail.html.twig | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/core/src/Component/EntityFilter/Filter/Email.php b/packages/core/src/Component/EntityFilter/Filter/Email.php index 3e465e849..5ee406762 100644 --- a/packages/core/src/Component/EntityFilter/Filter/Email.php +++ b/packages/core/src/Component/EntityFilter/Filter/Email.php @@ -19,13 +19,17 @@ public function apply($propertyValue): string public function convertEmail(string $body): string { - $rgx = '/ ([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}) /i'; + $rgx = '/ ([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})( |\.<\/|\. |$)/i'; \Safe\preg_match_all($rgx, $body, $matches); $nbrMatch = \count($matches[0]); for ($k = 0; $k < $nbrMatch; ++$k) { - $body = ' '.str_replace($matches[0][$k], $this->renderEncodedMail($matches[1][$k]), $body).' '; + $body = str_replace( + $matches[0][$k], + ' '.$this->renderEncodedMail($matches[1][$k]).$matches[2][$k], + $body + ); } return $body; diff --git a/packages/core/src/Component/EntityFilter/Filter/PhoneNumber.php b/packages/core/src/Component/EntityFilter/Filter/PhoneNumber.php index 3250fd4d5..76b71a2a1 100644 --- a/packages/core/src/Component/EntityFilter/Filter/PhoneNumber.php +++ b/packages/core/src/Component/EntityFilter/Filter/PhoneNumber.php @@ -19,15 +19,15 @@ public function apply($propertyValue): string private function convertPhoneNumber(string $body): string { - $rgx = '/ (?:(?:\+|00)33|0)\s*[1-9](?:[\s.-]*\d{2}){4} /iU'; + $rgx = '/ (?:(?:\+|00)33|0)\s*[1-9](?:[\s.-]*\d{2}){4}(?P |\.<\/|\. |$)/iU'; \Safe\preg_match_all($rgx, $body, $matches); if (! isset($matches[0])) { return $body; } - - foreach ($matches[0] as $m) { - $body = str_replace($m, $this->renderPhoneNumber($m), $body); + dump($matches); + foreach ($matches[0] as $k => $m) { + $body = str_replace($m, ' '.$this->renderPhoneNumber(trim($m)).$matches['after'][$k], $body); } return $body; diff --git a/packages/core/src/templates/component/encoded_mail.html.twig b/packages/core/src/templates/component/encoded_mail.html.twig index 011558b8c..166e48f78 100644 --- a/packages/core/src/templates/component/encoded_mail.html.twig +++ b/packages/core/src/templates/component/encoded_mail.html.twig @@ -1 +1 @@ -{{ mail_readable|raw }} +{{ mail_readable|raw }}