/**
  *
  * @param integer $listContentobjectId
  * @return array
  */
 static function fetchSubscriptionListCount($listContentObjectId, $listContentObjectVersion, $status)
 {
     $statusId = false;
     switch ($status) {
         case 'pending':
             $statusId = CjwNewsletterSubscription::STATUS_PENDING;
             break;
         case 'confirmed':
             $statusId = CjwNewsletterSubscription::STATUS_CONFIRMED;
             break;
         case 'approved':
             $statusId = CjwNewsletterSubscription::STATUS_APPROVED;
             break;
         case 'removed':
             $statusId = array(CjwNewsletterSubscription::STATUS_REMOVED_ADMIN, CjwNewsletterSubscription::STATUS_REMOVED_SELF);
             break;
         case 'bounced':
             $statusId = array(CjwNewsletterSubscription::STATUS_BOUNCED_SOFT, CjwNewsletterSubscription::STATUS_BOUNCED_HARD);
             break;
         case 'blacklisted':
             $statusId = CjwNewsletterSubscription::STATUS_BLACKLISTED;
             break;
         default:
             // default is approved
             $statusId = CjwNewsletterSubscription::STATUS_APPROVED;
             break;
     }
     $objectCount = 0;
     $listObject = CjwNewsletterList::fetchByListObjectVersion($listContentObjectId, $listContentObjectVersion);
     if (is_object($listObject)) {
         //$objectCount = CjwNewsletterSubscription::fetchSubscriptionListByListIdCount( $listContentobjectId, $statusId );
         $objectCount = $listObject->getSubscriptionObjectCount($statusId);
     } else {
         eZDebug::writeError("CjwNewsletterFunctinCollection::fetchSubscriptionListCount - no object found for ObjectId: {$listContentObjectId} {$Version}: {$listContentObjectVersion}");
     }
     return array('result' => $objectCount);
 }
 /**
  * Return CjwNewsletterList object
  *
  * if the this is a CjwNewsletterSubscription or
  * CjwNewsletterSubscriptionVirtual
  *
  * A Virtual Subscription is connected at minimun to one CjwNewsletterList
  *
  * @return CjwNewsletterList object or false
  */
 function getNewsletterListAttributeContent()
 {
     $object = eZContentObject::fetch($this->attribute('list_contentobject_id'));
     // fetch current version of list
     // list version is not needed for subscriptions!!
     // a subscription is valid for a complete list
     if ($this->attribute('is_virtual')) {
         return CjwNewsletterListVirtual::fetchByListObjectVersion($this->attribute('list_contentobject_id'), 0);
     } else {
         return CjwNewsletterList::fetchByListObjectVersion($this->attribute('list_contentobject_id'), 0);
     }
 }
 /**
  * @see in cronjob create
  *
  * should handle the correct fetch of subscripers static + virtual
  *
  */
 function getSubscriptionObjectArray($subscriptionStatus = CjwNewsletterSubscription::STATUS_APPROVED, $limit = 0, $offset = 0)
 {
     $listContentObjectId = $this->attribute('list_contentobject_id');
     $listContentObjectVersion = $this->attribute('list_contentobject_version');
     $listIsVirtual = $this->attribute('list_is_virtual');
     $subscriptionObjectList = false;
     // static list (CjwNewsletterList) or virtual (CjwNewsletterListVirtual)
     $listObject = CjwNewsletterList::fetchByListObjectVersion($listContentObjectId, $listContentObjectVersion);
     if (is_object($listObject)) {
         $subscriptionObjectList = $listObject->getSubscriptionObjectArray($subscriptionStatus, $limit, $offset);
     }
     return $subscriptionObjectList;
 }