コード例 #1
0
 function subscribeTempEmails($key, $topics_ids)
 {
     global $application;
     $tables = Subscriptions::getTables();
     $stable = 'subscription_temp';
     $scolumns =& $tables[$stable]['columns'];
     $itable = 'subscription_email';
     $icolumns =& $tables[$itable]['columns'];
     foreach ($topics_ids as $topic_id) {
         unset($squery);
         $squery = new DB_Select($stable);
         $squery->addSelectField($topic_id);
         $squery->addSelectField($scolumns['email_id']);
         $squery->Where($scolumns['action_key'], DB_EQ, DBQuery::quoteValue($key));
         unset($iquery);
         $iquery = new DB_Insert_Select($itable);
         $iquery->setModifiers(DB_IGNORE);
         $iquery->setInsertFields(array('topic_id', 'email_id'));
         $iquery->setSelectQuery($squery);
         $application->db->getDB_Result($iquery);
     }
 }
コード例 #2
0
 function prepareSendMessage3($letter_id)
 {
     global $application;
     $delivery_num = $this->getNextNum();
     $topics_ids = modApiFunc('Subscriptions', 'getLetterTopics', $letter_id);
     if (!$topics_ids) {
         return;
     }
     $this->createUnsubscribeKeys($letter_id, $delivery_num, $topics_ids);
     $this->_currentMessage = $this->getMessageInfo($letter_id);
     // copy emails to temp table
     $ntables = $this->getTables();
     $stables = modApiFunc('Subscriptions', 'getTables');
     $itable = 'newsletter_temp';
     $icolumns = $ntables[$itable]['columns'];
     $utable = 'newsletter_unsubscribe';
     $ucolumns = $ntables[$utable]['columns'];
     $atable = 'email_address';
     $acolumns = $stables[$atable]['columns'];
     $iquery = new DB_Insert_Select($itable);
     $iquery->setModifiers(DB_IGNORE);
     $iquery->setInsertFields(array('recipient_num', 'recipient_value', 'key_unsubscribe', 'lng'));
     $squery = new DB_Select($atable);
     $squery->addSelectField($delivery_num);
     $squery->addSelectField($acolumns['email']);
     $squery->addSelectField($ucolumns['key_unsubscribe']);
     $squery->addSelectField($acolumns['lng']);
     $squery->addInnerJoin($atable, $acolumns['email_id'], DB_EQ, $ucolumns['email_id']);
     $squery->WhereValue($ucolumns['delivery_num'], DB_EQ, $delivery_num);
     $squery->SelectOrder($ucolumns['email_id'], 'ASC');
     $iquery->setSelectQuery($squery);
     $application->db->getDB_Result($iquery);
     $this->_totalRecipients = $this->countTempEmails($delivery_num);
     $this->_sentCountTotal = 0;
     $result = array('Errors' => array($application->db->_getSQL($iquery)), 'Warnings' => array(), 'TotalCount' => $this->_totalRecipients, 'Num' => $delivery_num);
     return $result;
 }