![]() 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/PageBundle/EventListener/ |
<?php namespace Mautic\PageBundle\EventListener; use Mautic\CoreBundle\Helper\DateTime\DateTimeToken; use Mautic\CoreBundle\Security\Permissions\CorePermissions; use Mautic\LeadBundle\Tracker\ContactTracker; use Mautic\PageBundle\Event\PageBuilderEvent; use Mautic\PageBundle\Event\PageDisplayEvent; use Mautic\PageBundle\PageEvents; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Contracts\Translation\TranslatorInterface; class DateTimeTokenSubscriber implements EventSubscriberInterface { public function __construct( private TranslatorInterface $translator, private DateTimeToken $dateTokenHelper, private CorePermissions $security, private ContactTracker $contactTracker ) { } public static function getSubscribedEvents(): array { return [ PageEvents::PAGE_ON_BUILD => ['onPageBuild', 0], PageEvents::PAGE_ON_DISPLAY => ['onPageDisplay', 0], ]; } public function onPageBuild(PageBuilderEvent $event): void { $event->addToken('{today}', $this->translator->trans('mautic.email.token.today')); } public function onPageDisplay(PageDisplayEvent $event): void { $content = $event->getContent(); $contact = $this->security->isAnonymous() ? $this->contactTracker->getContact() : null; $tokenList = $this->dateTokenHelper->getTokens($content, $contact ? $contact->getTimezone() : null); $event->setContent(str_replace(array_keys($tokenList), $tokenList, $content)); } }