Пример #1
0
 /**
  * fetch all active subscriptions with current import id
  * and set status to remove by admin
  * @return array subscriptions => nl_user_id
  */
 public function removeActiveSubscriptionsByAdmin()
 {
     $count = CjwNewsletterSubscription::fetchSubscriptionListByImportIdAndStatusCount($this->attribute('id'), CjwNewsletterSubscription::STATUS_APPROVED);
     CjwNewsletterLog::writeNotice("CjwNewsletterImport::removeActiveSubscriptionsByAdmin", 'import', 'start', array('import_id' => $this->attribute('id'), 'active_subscriptions' => $count, 'current_user' => eZUser::currentUserID()));
     // count active subscriptions for import id
     $removeSubscriptionArray = array();
     $limit = 100;
     $loops = ceil($count / $limit);
     // get active subscriptions partly
     for ($i = 0; $i < $loops; $i++) {
         // get active subscriptions
         $subscriptionObjectList = CjwNewsletterSubscription::fetchSubscriptionListByImportIdAndStatus($this->attribute('id'), CjwNewsletterSubscription::STATUS_APPROVED, $limit);
         foreach ($subscriptionObjectList as $subscription) {
             $subscription->removeByAdmin();
             $removeSubscriptionArray[$subscription->attribute('id')] = $subscription->attribute('newsletter_user_id');
         }
     }
     $count = CjwNewsletterSubscription::fetchSubscriptionListByImportIdAndStatusCount($this->attribute('id'), CjwNewsletterSubscription::STATUS_APPROVED);
     CjwNewsletterLog::writeNotice("CjwNewsletterImport::removeActiveSubscriptionsByAdmin", 'import', 'end', array('import_id' => $this->attribute('id'), 'subscriptions_remove_count' => count($removeSubscriptionArray), 'current_user' => eZUser::currentUserID()));
     return $removeSubscriptionArray;
 }