![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/EmailBundle/EventListener/ |
<?php namespace Mautic\EmailBundle\EventListener; use Mautic\CoreBundle\Helper\DateTime\DateTimeToken; use Mautic\EmailBundle\EmailEvents; use Mautic\EmailBundle\Event\EmailBuilderEvent; use Mautic\EmailBundle\Event\EmailSendEvent; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Contracts\Translation\TranslatorInterface; class DateTimeTokenSubscriber implements EventSubscriberInterface { public function __construct( private TranslatorInterface $translator, private DateTimeToken $dateTokenHelper ) { } public static function getSubscribedEvents(): array { return [ EmailEvents::EMAIL_ON_BUILD => ['onEmailBuild', 0], EmailEvents::EMAIL_ON_SEND => ['onEmailGenerate', 0], EmailEvents::EMAIL_ON_DISPLAY => ['onEmailDisplay', 0], ]; } public function onEmailBuild(EmailBuilderEvent $event): void { $event->addToken('{today}', $this->translator->trans('mautic.email.token.today')); } public function onEmailDisplay(EmailSendEvent $event): void { $this->onEmailGenerate($event); } public function onEmailGenerate(EmailSendEvent $event): void { $content = $event->getSubject(); $content .= $event->getContent(); $content .= $event->getPlainText(); $content .= implode(' ', $event->getTextHeaders()); $leadArray = $event->getLead(); $contactTimezone = $event->isInternalSend() || !is_array($leadArray) ? null : ($leadArray['timezone'] ?? null); $tokenList = $this->dateTokenHelper->getTokens($content, $contactTimezone); if (count($tokenList)) { $event->addTokens($tokenList); unset($tokenList); } } }