/** * @param EmailSendEvent $event * * @return void */ public function onEmailGenerate(EmailSendEvent $event) { $content = $event->getContent(); $source = $event->getSource(); $email = $event->getEmail(); $clickthrough = array(); if (!$event->isInternalSend()) { $clickthrough = array('source' => $source, 'email' => $email != null ? $email->getId() : null, 'stat' => $event->getIdHash()); $lead = $event->getLead(); if ($lead !== null) { $clickthrough['lead'] = $lead['id']; } } $tokens = $this->generateUrlTokens($content, $clickthrough, $email === null ? 0 : $email->getId(), $email, $event); $event->addTokens($tokens); }
/** * @param EmailSendEvent $event * * @return void */ public function onEmailGenerate(EmailSendEvent $event) { $content = $event->getContent(); $plainText = $event->getPlainText(); $source = $event->getSource(); $email = $event->getEmail(); $clickthrough = array('source' => $source, 'email' => $email != null ? $email->getId() : null, 'stat' => $event->getIdHash()); $lead = $event->getLead(); if ($lead !== null) { $clickthrough['lead'] = $lead['id']; } $this->emailIsInternalSend = $event->isInternalSend(); $this->emailEntity = $event->getEmail(); // Generate page tokens first so they are available to convert to trackables $tokens = array_merge($this->generatePageTokens($content . $plainText, $event->shouldAppendClickthrough() ? $clickthrough : array()), $this->generateExternalLinkTokens($content . $plainText, $clickthrough)); $event->addTokens($tokens); // Convert links to trackables if there is an email entity if (!$event->isInternalSend() && null !== $email) { $event->addTokens($this->generateEmailTokens($clickthrough, $event)); } }