![]() 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/NotificationBundle/EventListener/ |
<?php namespace Mautic\NotificationBundle\EventListener; use Mautic\ChannelBundle\ChannelEvents; use Mautic\ChannelBundle\Event\ChannelEvent; use Mautic\ChannelBundle\Model\MessageModel; use Mautic\NotificationBundle\Form\Type\NotificationListType; use Mautic\PluginBundle\Helper\IntegrationHelper; use Mautic\ReportBundle\Model\ReportModel; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class ChannelSubscriber implements EventSubscriberInterface { public function __construct( private IntegrationHelper $integrationHelper ) { } public static function getSubscribedEvents(): array { return [ ChannelEvents::ADD_CHANNEL => ['onAddChannel', 70], ]; } public function onAddChannel(ChannelEvent $event): void { $integration = $this->integrationHelper->getIntegrationObject('OneSignal'); if ($integration && $integration->getIntegrationSettings()->getIsPublished()) { $event->addChannel( 'notification', [ MessageModel::CHANNEL_FEATURE => [ 'campaignAction' => CampaignSubscriber::EVENT_ACTION_SEND_NOTIFICATION, 'campaignDecisionsSupported' => [ 'page.pagehit', 'asset.download', 'form.submit', ], 'lookupFormType' => NotificationListType::class, 'repository' => \Mautic\NotificationBundle\Entity\Notification::class, 'lookupOptions' => [ 'mobile' => false, 'desktop' => true, ], ], ReportModel::CHANNEL_FEATURE => [ 'table' => 'push_notifications', ], ] ); $supportedFeatures = $integration->getSupportedFeatures(); if (in_array('mobile', $supportedFeatures)) { $event->addChannel( 'mobile_notification', [ MessageModel::CHANNEL_FEATURE => [ 'campaignAction' => CampaignSubscriber::EVENT_ACTION_SEND_MOBILE_NOTIFICATION, 'campaignDecisionsSupported' => [ 'page.pagehit', 'asset.download', 'form.submit', ], 'lookupFormType' => NotificationListType::class, 'repository' => \Mautic\NotificationBundle\Entity\Notification::class, 'lookupOptions' => [ 'mobile' => true, 'desktop' => false, ], ], ] ); } } } }