/** * 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; }