function fetchSubscriptionListCount()
 {
     return array('result' => eZSubscriptionList::count());
 }
        $tpl = eZNewsletterTemplateWrapper::templateInit();
        $Result = array();
        $Result['left_menu'] = 'design:parts/content/eznewsletter_menu.tpl';
        $Result['content'] = $tpl->fetch("design:ezsubscribe/no_subscription.tpl");
        $Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('eznewsletter/modify_subscription', 'No subscription')));
        return $Result;
    } else {
        $subscriptionList = eZSubscription::fetchListByEmail($userData->attribute('email'), eZSubscription::VersionStatusPublished, array(array(eZSubscription::StatusPending, eZSubscription::StatusApproved, eZSubscription::StatusConfirmed, eZSubscription::StatusRemovedSelf, eZSubscription::StatusRemovedAdmin)));
        $allowedStatusList = array(eZSubscription::StatusApproved, eZSubscription::StatusPending, eZSubscription::StatusConfirmed, eZSubscription::StatusRemovedSelf, eZSubscription::StatusRemovedAdmin);
    }
}
//get new data
//all subscriptions
$found = false;
$additionalLists = array();
$allSubscriptionList = eZSubscriptionList::fetchList(0, 100);
foreach ($allSubscriptionList as $addList) {
    foreach ($subscriptionList as $userList) {
        if ($addList->attribute('id') === $userList->attribute('subscriptionlist_id')) {
            $found = true;
        }
    }
    if (!$found) {
        $additionalLists[] = $addList;
    }
    $found = false;
}
//$tpl = templateInit();
//$tpl->setVariable( 'user', $user );
if (isset($warning)) {
    $tpl->setVariable('warning', $warning);
if (isset($Params['BrowseSelected']) && $Params['BrowseSelected'] == 'article') {
    if ($http->hasPostVariable('SelectedObjectIDArray')) {
        $articlePoolNodeID = $http->postVariable('SelectedObjectIDArray');
        if (isset($articlePoolNodeID) && !$http->hasPostVariable('BrowseCancelButton')) {
            $newsletterType->setAttribute('article_pool_object_id', $articlePoolNodeID[0]);
            $newsletterType->store();
        }
    }
} else {
    if (isset($Params['BrowseSelected']) && $Params['BrowseSelected'] == 'inbox') {
        if ($http->hasPostVariable('SelectedObjectIDArray')) {
            $inboxNodeID = $http->postVariable('SelectedObjectIDArray');
            if (isset($inboxNodeID) && !$http->hasPostVariable('BrowseCancelButton')) {
                $newsletterType->setAttribute('inbox_id', $inboxNodeID[0]);
                $newsletterType->store();
            }
        }
    }
}
$tpl = eZNewsletterTemplateWrapper::templateInit();
$tpl->setVariable('warning', $warning);
$tpl->setVariable('newsletter_type', $newsletterType);
$tpl->setVariable('contentclass_list', eZNewsletterType::unserializeArray($newsletterType->attribute('contentclass_list')));
$tpl->setVariable('selected_designs', eZNewsletterType::unserializeArray($newsletterType->attribute('allowed_designs')));
// countAll(eZSendNewsletterItem::definition()) ) ) erzeugt einen sql fehler
$tpl->setVariable('subscription_list_array', eZSubscriptionList::fetchList(0, eZSubscriptionList::countAll(eZSubscriptionList::StatusPublished)));
$Result = array();
$Result['newsletter_menu'] = 'design:parts/content/newsletter_menu.tpl';
$Result['left_menu'] = 'design:parts/content/eznewsletter_menu.tpl';
$Result['content'] = $tpl->fetch("design:{$extension}/edit_newslettertype.tpl");
$Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('eznewsletter/edit_newslettertype', 'Edit newsletter type')));
//   Public License along with this program; if not, write to the Free
//   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
//   MA 02110-1301, USA.
//
//
// ## END COPYRIGHT, LICENSE AND WARRANTY NOTICE ##
//
/*! \file register_subscription.php
*/
include_once 'kernel/common/eztemplatedesignresource.php';
include_once 'kernel/common/template.php';
include_once eZExtension::baseDirectory() . '/eznewsletter/classes/ezsubscriptionlist.php';
include_once eZExtension::baseDirectory() . '/eznewsletter/classes/ezsubscription.php';
$Module =& $Params['Module'];
$http =& eZHTTPTool::instance();
$subscriptionList = eZSubscriptionList::fetch($Params['SubscriptionListID']);
$res =& eZTemplateDesignResource::instance();
$res->setKeys(array(array('newsletter_view', 'register_subscription')));
if (!$subscriptionList) {
    return $Module->handleError(3, 'kernel');
}
$http->setSessionVariable("register_subscription", $subscriptionList->attribute('id'));
$user = false;
$currentUser = eZUser::currentUser();
if ($currentUser->isLoggedIn()) {
    $user = $currentUser;
}
if (!$user) {
    eZDebug::writeError('Missing parameter Object ID.', "Translation management");
    return $Module->handleError(1, 'kernel');
}
    $selectName = 'related' . $count;
    $deleteName = 'DeleteRelatedObject_' . $count;
    if ($http->hasPostVariable($postName)) {
        return eZContentBrowse::browse(array('action_name' => 'ArticlePoolBrowse', 'keys' => array(), 'description_template' => "design:{$extension}/browse_article_pool.tpl", 'from_page' => 'newsletter/edit_subscription_list/' . $subscriptionListID . '/' . $selectName), $Module);
    }
    if ($http->hasPostVariable($deleteName)) {
        $subscriptionList->setAttribute($attributeName, 0);
        $subscriptionList->store();
    }
    if (isset($Params['BrowseSelected']) && $Params['BrowseSelected'] == $selectName) {
        if ($http->hasPostVariable('SelectedObjectIDArray')) {
            $relatedObjectID = $http->postVariable('SelectedObjectIDArray');
            if (isset($relatedObjectID) && !$http->hasPostVariable('BrowseCancelButton')) {
                $subscriptionList->setAttribute($attributeName, $relatedObjectID[0]);
                $subscriptionList->store();
            }
        }
    }
}
$tpl = eZNewsletterTemplateWrapper::templateInit();
$tpl->setVariable('warning', $warning);
$tpl->setVariable('subscriptionList', $subscriptionList);
$tpl->setVariable('loginSteps_map', eZSubscriptionList::loginStepsNameMap());
$Result = array();
$Result['newsletter_menu'] = 'design:parts/content/robinson_menu.tpl';
$Result['left_menu'] = 'design:parts/content/eznewsletter_menu.tpl';
$Result['content'] = $tpl->fetch("design:eznewsletter/edit_subscription_list.tpl");
$Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('eznewsletter/edit_subscription_list', 'Subscription lists')));
?>

function sendConfirmation($email, $subscription, $subscribe)
{
    //send mail
    $res = eZTemplateDesignResource::instance();
    $ini = eZINI::instance();
    $hostname = eZSys::hostname();
    if ($subscribe) {
        $template = 'design:eznewsletter/sendout/subscription.tpl';
    } else {
        $template = 'design:eznewsletter/sendout/unsubscription.tpl';
    }
    $tpl = eZNewsletterTemplateWrapper::templateInit();
    $tpl->setVariable('userData', eZUserSubscriptionData::fetch($email));
    $tpl->setVariable('hostname', $hostname);
    $tpl->setVariable('subscription', $subscription);
    $subscriptionList = eZSubscriptionList::fetch($subscription->attribute('subscriptionlist_id'), eZSubscriptionList::StatusPublished, true, true);
    $tpl->setVariable('subscriptionList', $subscriptionList);
    $templateResult = $tpl->fetch($template);
    if ($tpl->hasVariable('subject')) {
        $subject = $tpl->variable('subject');
    }
    $mail = new eZMail();
    $mail->setSender($ini->variable('MailSettings', 'EmailSender'));
    $mail->setReceiver($email);
    $mail->setBody($templateResult);
    $mail->setSubject($subject);
    eZMailTransport::send($mail);
}
 function fetchSubscriptionListCount($useFilter)
 {
     return array('result' => eZSubscriptionList::countAll(eZSubscriptionList::StatusPublished, $useFilter));
 }
 function objectAttributeContent($contentObjectAttribute)
 {
     newsletterlistType::storeSession($contentObjectAttribute);
     $return = array();
     $lists = eZSubscriptionList::fetchList();
     $userID = $contentObjectAttribute->attribute('contentobject_id');
     $selection = unserialize($contentObjectAttribute->attribute("data_text"));
     $subscriptions = eZPersistentObject::fetchObjectList(eZSubscription::definition(), null, array('user_id' => $userID, 'version_status' => eZSubscription::VersionStatusPublished), true);
     foreach ($lists as $list) {
         $attribute_filter = array(array('newsletter_group/newsletter_id', '=', $list->attribute('url')));
         $treeParameters = array('OnlyTranslated' => true, 'AttributeFilter' => $attribute_filter, 'ClassFilterType' => 'include', 'ClassFilterArray' => array('newsletter_group'), 'IgnoreVisibility' => false, 'MainNodeOnly' => true);
         $listitem = array();
         $listitem['list'] = $list;
         if (in_array($list->attribute('id'), $selection['register'])) {
             $listitem['selected'] = true;
         } elseif (in_array($list->attribute('id'), $selection['unregister'])) {
             $listitem['selected'] = false;
         }
         $nodesList = eZContentObjectTreeNode::fetch(2)->subTree($treeParameters);
         foreach ($subscriptions as $subscription) {
             $listitem['disabled'] = false;
             if ($subscription->attribute('subscriptionlist_id') == $list->attribute('id')) {
                 $listitem['subscription'] = $subscription;
                 if ($listitem['subscription']->attribute('status') == eZSubscription::StatusPending or $listitem['subscription']->attribute('status') == eZSubscription::StatusConfirmed or $listitem['subscription']->attribute('status') == eZSubscription::StatusRemovedAdmin) {
                     $listitem['disabled'] = true;
                 }
                 if (!array_key_exists('selected', $listitem)) {
                     if ($listitem['subscription']->attribute('status') == eZSubscription::StatusApproved) {
                         $listitem['selected'] = true;
                     } else {
                         $listitem['selected'] = false;
                     }
                 }
                 break;
             }
         }
         if (isset($nodesList[0]) and is_object($nodesList[0])) {
             $listitem['node'] = $nodesList[0];
         }
         if (count($listitem) > 0) {
             $return['list'][] = $listitem;
         }
         unset($listitem);
     }
     if ($selection['show_newsletter_tab']) {
         $return['show_newsletter_tab'] = true;
     } else {
         $return['show_newsletter_tab'] = false;
     }
     return $return;
 }
 function attribute($attr, $noFunction = false)
 {
     $retVal = null;
     switch ($attr) {
         case 'related_object_1':
         case 'related_object_2':
         case 'related_object_3':
             // #DEPRECATED#
             $retVal = eZContentObject::fetch($this->attribute('related_object_id_' . substr($attr, -1, 1)));
             break;
         case 'inbox_object':
             if ($this->attribute('inbox_id')) {
                 $retVal = eZContentObject::fetch($this->attribute('inbox_id'));
             }
             break;
         case 'subscription_id_list':
             $list = eZNewsletterTypeSubscription::fetchList($this->attribute('id'), false, $this->attribute('status'));
             if ($list) {
                 $retVal = array();
                 foreach ($list as $subItem) {
                     $retVal[] = $subItem->attribute('subscription_id');
                 }
             }
             break;
         case 'default_subscription_list':
             $subscriptionListLink = eZSubscriptionList::fetch($this->attribute('defaultsubscriptionlist_id'));
             if (!$retVal) {
                 $subscriptionList = $this->attribute('subscription_list');
                 if (0 < count($subscriptionList)) {
                     $subscriptionListLink = $subscriptionList[0];
                 }
             }
             if ($subscriptionListLink) {
                 $retVal = $subscriptionListLink->attribute('subscription_object');
             }
             break;
         default:
             $retVal = eZPersistentObject::attribute($attr);
             break;
     }
     return $retVal;
 }
*/
$Module = $Params['Module'];
$http = eZHTTPTool::instance();
if ($http->hasPostVariable('CreateSubscriptionListButton')) {
    $subscriptionList = eZSubscriptionList::create();
    return $Module->redirectToView('edit_subscription_list', array($subscriptionList->attribute('id')));
} else {
    if ($http->hasPostVariable('RemoveSubscriptionListButton')) {
        if (is_array($http->postVariable('SubscriptionListIDArray'))) {
            foreach ($http->postVariable('SubscriptionListIDArray') as $subscriptionID) {
                eZSubscriptionList::removeAll($subscriptionID);
            }
        }
    }
}
$userParameters = $Params['UserParameters'];
$offset = isset($userParameters['offset']) ? $userParameters['offset'] : 0;
$limitKey = isset($userParameters['limit']) ? $userParameters['limit'] : '1';
$limitList = array('1' => 10, '2' => 25, '3' => 50);
$limit = isset($limitList[$limitKey]) ? $limitList[$limitKey] : 1;
$viewParameters = array('offset' => $offset, 'limit' => $limitKey);
$subscriptionListArray = eZSubscriptionList::fetchList($offset, $limit, true, eZSubscriptionList::StatusPublished, true);
$tpl = eZNewsletterTemplateWrapper::templateInit();
$tpl->setVariable('view_parameters', $viewParameters);
$tpl->setVariable('limit', $limit);
$tpl->setVariable('subscriptionlist_array', $subscriptionListArray);
$Result = array();
$Result['newsletter_menu'] = 'design:parts/content/robinson_menu.tpl';
$Result['left_menu'] = 'design:parts/content/eznewsletter_menu.tpl';
$Result['content'] = $tpl->fetch("design:eznewsletter/list_subscriptions.tpl");
$Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('eznewsletter/list_subscriptions', 'Subscription lists')));
 function subscriptionObject()
 {
     $retVal = eZSubscriptionList::fetch($this->attribute('subscription_id'), $this->attribute('status'), true, true);
     return $retVal;
 }
include_once 'kernel/common/eztemplatedesignresource.php';
include_once 'kernel/common/template.php';
include_once eZExtension::baseDirectory() . '/eznewsletter/classes/ezsubscriptionlist.php';
include_once eZExtension::baseDirectory() . '/eznewsletter/classes/ezsubscription.php';
include_once eZExtension::baseDirectory() . '/eznewsletter/classes/eznewsletteraddons.php';
$Module =& $Params['Module'];
$http =& eZHTTPTool::instance();
if ($http->hasSessionVariable('LastPostVars')) {
    $_POST = $http->sessionVariable('LastPostVars');
    $http->removeSessionVariable('LastPostVars');
}
$http->setSessionVariable("register_subscription", array());
$http->setSessionVariable("unregister_subscription", array());
if ($Module->hasActionParameter('ChoosenSubscriptions')) {
    foreach ($Module->actionParameter('ChoosenSubscriptions') as $sub) {
        $subscriptionList = eZSubscriptionList::fetch($sub);
        if (!$subscriptionList) {
            eZDebug::writeError('ID "' . $sub . '" not found.', "");
            return $Module->handleError(3, 'kernel');
        }
        $subscriptions[] = $subscriptionList->attribute('id');
        if ($Module->isCurrentAction('Add')) {
            $http->removeSessionVariable("unregister_subscription");
            $http->setSessionVariable("register_subscription", $subscriptions);
        }
        if ($Module->isCurrentAction('Remove')) {
            $http->removeSessionVariable("register_subscription");
            $http->setSessionVariable("unregister_subscription", $subscriptions);
        }
    }
}
 function subscriptionList()
 {
     return eZSubscriptionList::fetch($this->attribute('subscriptionlist_id'), eZSubscriptionList::StatusPublished, true, true);
 }
 static function countAll($status = eZSubscriptionList::StatusPublished, $useFilter = false)
 {
     $custom_conds = null;
     if ($useFilter) {
         $currentAccessArray = $GLOBALS['eZCurrentAccess'];
         $custom_conds = 'AND allowed_siteaccesses LIKE \'%' . $currentAccessArray['name'] . '%\'';
     }
     $rows = eZPersistentObject::fetchObjectList(eZSubscriptionList::definition(), array(), array('status' => $status), null, null, false, null, array(array('operation' => 'count( id )', 'name' => 'count')), null, $custom_conds);
     return $rows[0]['count'];
 }