Пример #1
0
 /**
  * @param EmailSendEvent $event
  */
 public function onEmailGenerate(EmailSendEvent $event)
 {
     $content = $event->getContent();
     $plainText = $event->getPlainText();
     $clickthrough = $event->shouldAppendClickthrough() ? $event->generateClickthrough() : [];
     $this->emailIsInternalSend = $event->isInternalSend();
     $this->emailEntity = $event->getEmail();
     $tokens = $this->tokenHelper->findPageTokens($content . $plainText, $clickthrough);
     $event->addTokens($tokens);
 }
Пример #2
0
 /**
  * PreParse the twitter message and replace placeholders with values.
  *
  * @param $tweet
  * @param $lead
  *
  * @return mixed
  */
 protected function parseTweetText($tweet, $lead)
 {
     $tweetHandle = $lead['twitter'];
     $tokens = ['{twitter_handle}' => strpos($tweetHandle, '@') !== false ? $tweetHandle : "@{$tweetHandle}"];
     $tokens = array_merge($tokens, TokenHelper::findLeadTokens($tweet, $lead), $this->pageTokenHelper->findPageTokens($tweet, $this->clickthrough), $this->assetTokenHelper->findAssetTokens($tweet, $this->clickthrough));
     list($tweet, $trackables) = $this->trackableModel->parseContentForTrackables($tweet, $tokens, 'social_twitter', -1);
     /**
      * @var string $token
      * @var Trackable $trackable
      */
     foreach ($trackables as $token => $trackable) {
         $tokens[$token] = $this->trackableModel->generateTrackableUrl($trackable, $this->clickthrough);
     }
     return str_replace(array_keys($tokens), array_values($tokens), $tweet);
 }
Пример #3
0
 /**
  * @param TokenReplacementEvent $event
  */
 public function onTokenReplacement(TokenReplacementEvent $event)
 {
     /** @var Lead $lead */
     $lead = $event->getLead();
     $content = $event->getContent();
     $clickthrough = $event->getClickthrough();
     if ($content) {
         $tokens = array_merge(TokenHelper::findLeadTokens($content, $lead->getProfileFields()), $this->pageTokenHelper->findPageTokens($content, $clickthrough), $this->assetTokenHelper->findAssetTokens($content, $clickthrough));
         list($content, $trackables) = $this->trackableModel->parseContentForTrackables($content, $tokens, 'sms', $clickthrough['channel'][1]);
         /**
          * @var string
          * @var Trackable $trackable
          */
         foreach ($trackables as $token => $trackable) {
             $tokens[$token] = $this->trackableModel->generateTrackableUrl($trackable, $clickthrough, true);
         }
         $content = str_replace(array_keys($tokens), array_values($tokens), $content);
         $event->setContent($content);
     }
 }