public static function fetchNewsletterRecipientsCount($object_id, $status = array()) { $conds = array('jaj_newsletter_recipients_list.contentobject_id' => $object_id); if (is_string($status)) { $status = array($status); } if (is_array($status)) { $status = array_intersect(jajNewsletterSubscription::states(), $status); } if (count($status)) { $conds['jaj_newsletter_subscription.state'] = array($status); } $field = 'jaj_newsletter_subscription.email'; $custom_fields = array(array('operation' => 'COUNT( DISTINCT ' . $field . ' )', 'name' => 'row_count')); $custom_tables = array('jaj_newsletter_subscription_list', 'jaj_newsletter_recipients_list'); $custom_conds = ' AND jaj_newsletter_subscription.subscription_list_id = jaj_newsletter_subscription_list.id' . ' AND jaj_newsletter_recipients_list.subscription_list_id = jaj_newsletter_subscription_list.id'; $rows = eZPersistentObject::fetchObjectList(jajNewsletterSubscription::definition(), array(), $conds, array(), null, false, false, $custom_fields, $custom_tables, $custom_conds); return array('result' => $rows[0]['row_count']); }
} switch (eZPreferences::value('admin_jaj_newsletter_subscription_list_limit')) { case '25': $limit = 25; break; case '50': $limit = 50; break; default: $limit = 10; break; } $offset = $Params['Offset']; $tpl = eZTemplate::factory(); $ViewState = $Params['ViewState']; $SubscriptionStates = jajNewsletterSubscription::states(); if (!in_array($ViewState, $SubscriptionStates)) { $ViewState = $SubscriptionStates[0]; } for ($i = 0; $i < count($SubscriptionStates); $i++) { $id = $SubscriptionStates[$i]; $SubscriptionStates[$i] = array('id' => $id, 'name' => ucwords($id), 'count' => $list->fetchSubscribersCount($id), 'selected' => $id == $ViewState, 'first' => $i == 0); if ($id == $ViewState) { $ItemCount = $SubscriptionStates[$i]['count']; } } $subscribers = $list->fetchSubscribersByState($ViewState, $limit, $offset); $viewParameters = array('offset' => $offset); $tpl->setVariable('view_state', $ViewState); $tpl->setVariable('list', $list); $tpl->setVariable('subscriber_states', $SubscriptionStates);