Пример #1
0
 /**
  * @param int        $campaignId
  * @param int        $startTime
  * @param int        $startId
  * @param int        $endId
  * @param null|array $additionalData
  *
  * @return bool
  * @throws \Exception
  */
 public static function pushCampaign($campaignId, $startTime = null, $startId = null, $endId = null, $additionalData = null)
 {
     if ($startTime === null) {
         $startTime = time();
         $startTime -= $startTime % 60;
     }
     $campaign = new Campaign($campaignId);
     $campaign->reload();
     if (!$campaign->processors) {
         throw new \Exception('Cannot queue a Campaign with no Processors');
     }
     $lastTime = $campaign->lastSent;
     if ($lastTime != $startTime) {
         $campaign->lastSent = $startTime;
         $campaign->saveChanges();
         $message = new ProcessMessage();
         $message->setData('campaignId', $campaignId);
         $message->setData('startedAt', $startTime);
         $message->setData('lastSent', $lastTime);
         $message->setData('startId', $startId);
         $message->setData('endId', $endId);
         if ($additionalData) {
             $message->setData('additionalData', $additionalData);
         }
         \Queue::setDefaultQueueProvider("campaignqueue");
         \Queue::push(new StdQueue('defero_campaigns'), serialize($message));
         \Log::info('Queued Campaign ' . $campaignId);
         return true;
     }
     \Log::info('Campaign ' . $campaignId . ' already queued' . ' ~ ' . $lastTime . ' ' . $startTime);
     return false;
 }
Пример #2
0
    /**
     * @return int
     */
    public function execute()
    {
        /*$campaignContact = new CampaignContact();
            $campaignContact->campaignId = rand(1,9);
            $campaignContact->language = array_rand(
              ["en" => "en", "es" => "es", "de" => "de",]
            );
            $campaignContact->contactId = rand(1,9);
            $campaignContact->saveChanges();
        
        
            return 0;*/
        $contact = new Contact();
        $contact->name = "John Smith";
        $contact->description = "John the test monkey";
        $contact->email = "*****@*****.**";
        $contact->jobTitle = "Test Monkey";
        $contact->reference = "johnsmith";
        $contact->signature = '
Kind Regards

John Smith
Test Monkey
Cubex Tester
0123-456-789';
        $contact->saveChanges();
        $campaign = new Campaign();
        $campaign->reference = "testcampaign:" . FileSystem::readRandomCharacters(3);
        $campaign->name = "Test Campaign";
        $campaign->description = "A test created with sample data";
        $campaign->active = true;
        $campaign->contactId = $contact->id();
        $campaign->type = CampaignType::ACTION;
        $campaign->saveChanges();
        $message = $campaign->message();
        $message->setLanguage('en');
        $message->subject = "This is my subject";
        $message->plainText = "Hello {{name}}. how are you today?";
        $message->saveAsNew();
        $message->setLanguage('es');
        $message->subject = "Este es mi tema";
        $message->plainText = "Hola {{name}}. ¿Cómo estás hoy?";
        $message->saveAsNew();
        $message->setLanguage('de');
        $message->subject = "Dies ist mein Thema";
        $message->plainText = "Hallo {{name}}. Wie geht es Ihnen heute?";
        $message->saveAsNew();
    }
Пример #3
0
 public function add()
 {
     $this->_throwIfNotSet("reference");
     $this->_throwIfNotSet("description");
     $this->_throwIfNotSet("name");
     $this->_throwIfNotSet("type");
     $this->_throwIfNotSet("sendType");
     $type = strtoupper($this->type);
     $sendType = strtoupper($this->sendType);
     $campaign = new Campaign();
     $campaign->reference = $this->reference;
     $campaign->description = $this->description;
     $campaign->name = $this->name;
     $campaign->type = CampaignType::$type();
     $campaign->sendType = SendType::$sendType();
     $campaign->contactId = $this->contactId ?: 0;
     $campaign->active = $this->active ?: 1;
     $campaign->saveChanges();
     echo "Added campaign id {$campaign->id()} ({$campaign->name})";
 }
Пример #4
0
 public function ajaxReorder()
 {
     if (!$this->request()->postVariables()) {
         $response = ['result' => false];
         $response = new Response($response);
         $response->addHeader('Content-Type', 'application/json');
         return $response;
     }
     foreach ($this->request()->postVariables('order') as $order => $cid) {
         $campaign = new Campaign($cid);
         $campaign->sortOrder = $order;
         $campaign->saveChanges();
     }
     $response = ['result' => true];
     $response = new Response($response);
     $response->addHeader('Content-Type', 'application/json');
     return $response;
 }
Пример #5
0
 public function renderTranslate()
 {
     $campaign = new Campaign($this->getInt('id'));
     $message = $campaign->message();
     $message->reload();
     $subject = $this->translateString($message->subject);
     $plainText = $this->translateString($message->plainText);
     $language = $this->getStr('hl');
     $htmlContent = $message->htmlContent;
     while ($this->translateBlock($htmlContent)) {
     }
     $message->setLanguage($language);
     $message->reload();
     $message->subject = $subject;
     $message->plainText = $plainText;
     $message->htmlContent = $htmlContent;
     $message->saveChanges();
     if ($campaign->availableLanguages == null) {
         $campaign->availableLanguages = [$language => $language];
     } else {
         $availableLanguages = (array) $campaign->availableLanguages;
         $availableLanguages[$language] = $language;
         $campaign->availableLanguages = $availableLanguages;
     }
     $campaign->saveChanges();
     return Redirect::to('/campaigns/' . $this->getStr('id') . '/message/' . $this->getStr('hl'));
 }