Esempio n. 1
0
 /**
  * Compile events for the lead timeline
  *
  * @param LeadTimelineEvent $event
  */
 public function onTimelineGenerate(LeadTimelineEvent $event)
 {
     // Set available event types
     $eventTypeKey = 'campaign.event';
     $eventTypeName = $this->translator->trans('mautic.campaign.triggered');
     $event->addEventType($eventTypeKey, $eventTypeName);
     // Decide if those events are filtered
     if (!$event->isApplicable($eventTypeKey)) {
         return;
     }
     $lead = $event->getLead();
     /** @var \Mautic\CampaignBundle\Entity\LeadEventLogRepository $logRepository */
     $logRepository = $this->em->getRepository('MauticCampaignBundle:LeadEventLog');
     $logs = $logRepository->getLeadLogs($lead->getId(), $event->getQueryOptions());
     $eventSettings = $this->campaignModel->getEvents();
     // Add total number to counter
     $event->addToCounter($eventTypeKey, $logs);
     if (!$event->isEngagementCount()) {
         foreach ($logs['results'] as $log) {
             // Hide this from the time line all together
             if (!empty($log['metadata']['failed'])) {
                 $event->subtractFromCounter($eventTypeKey);
                 continue;
             }
             $template = !empty($eventSettings['action'][$log['type']]['timelineTemplate']) ? $eventSettings['action'][$log['type']]['timelineTemplate'] : 'MauticCampaignBundle:SubscribedEvents\\Timeline:index.html.php';
             $event->addEvent(['event' => $eventTypeKey, 'eventLabel' => ['label' => $log['event_name'] . ' / ' . $log['campaign_name'], 'href' => $this->router->generate('mautic_campaign_action', ['objectAction' => 'view', 'objectId' => $log['campaign_id']])], 'eventType' => $eventTypeName, 'timestamp' => $log['dateTriggered'], 'extra' => ['log' => $log], 'contentTemplate' => $template, 'icon' => 'fa-clock-o']);
         }
     }
 }