Spaces:
No application file
No application file
| namespace Mautic\CampaignBundle\Service; | |
| use Mautic\CampaignBundle\Entity\Campaign; | |
| use Mautic\CampaignBundle\Entity\CampaignRepository; | |
| use Mautic\CoreBundle\Service\FlashBag; | |
| use Mautic\EmailBundle\Entity\Email; | |
| use Mautic\EmailBundle\Entity\EmailRepository; | |
| use Symfony\Component\Routing\Generator\UrlGeneratorInterface; | |
| class CampaignAuditService | |
| { | |
| public function __construct( | |
| private FlashBag $flashBag, | |
| private UrlGeneratorInterface $urlGenerator, | |
| private CampaignRepository $campaignRepository, | |
| private EmailRepository $emailRepository | |
| ) { | |
| } | |
| public function addWarningForUnpublishedEmails(Campaign $campaign): void | |
| { | |
| $emailIds = $this->campaignRepository->fetchEmailIdsById($campaign->getId()); | |
| $emails = $this->emailRepository->findBy(['id' => $emailIds]); | |
| foreach ($emails as $email) { | |
| if (!$email->isPublished()) { | |
| $this->setEmailWarningFlashMessage($email); | |
| } | |
| } | |
| } | |
| private function setEmailWarningFlashMessage(Email $email): void | |
| { | |
| $this->flashBag->add( | |
| 'mautic.core.notice.campaign.unpublished.email', | |
| [ | |
| '%name%' => $email->getName(), | |
| '%menu_link%' => 'mautic_email_index', | |
| '%url%' => $this->urlGenerator->generate('mautic_email_action', [ | |
| 'objectAction' => 'edit', | |
| 'objectId' => $email->getId(), | |
| ]), | |
| ], | |
| FlashBag::LEVEL_WARNING, | |
| ); | |
| } | |
| } | |