static function removeAllBounceInformation($bounceID) { $bounceItem = eZBounce::fetch($bounceID); if (!$bounceItem) { return; } $sendItem = eZSendNewsletterItem::fetch($bounceItem->attribute('newslettersenditem_id'), true); if ($sendItem) { $subscription = eZSubscription::fetch($sendItem->attribute('subscription_id')); if ($subscription) { $subscription->setAttribute('bounce_count', 0); $subscription->store(); } $sendItem->setAttribute('bounce_id', 0); $sendItem->store(); $bounceItem->remove(); } else { $bounceItem->remove(); } }
function unsubscribe($address_string, $list_name) { $subscription_list = eZSubscriptionList::fetch($list_name); eZMail::extractEmail($address_string, $email, $name); if ($email) { $subscription = eZSubscription::fetchByEmailSubscriptionListID($email, $subscription_list->attribute('id')); if ($subscription) { if ($subscription->attribute('status') == eZSubscription::StatusApproved) { $subscription->setAttribute('status', eZSubscription::StatusRemovedSelf); $subscription->sync(); return $subscription; } } } return false; }
include_once "lib/ezutils/classes/ezmailtransport.php"; include_once "lib/ezfile/classes/ezfile.php"; include_once eZExtension::baseDirectory() . '/eznewsletter/classes/ezsubscriptionlist.php'; include_once eZExtension::baseDirectory() . '/eznewsletter/classes/ezsubscription.php'; include_once eZExtension::baseDirectory() . '/eznewsletter/classes/eznewsletter.php'; $Module =& $Params['Module']; $tpl = eZTemplate::instance(); $http = eZHTTPTool::instance(); $res = eZTemplateDesignResource::instance(); $res->setKeys(array(array('newsletter_view', 'register_subscription'))); $NewsletterItem = eZSendNewsletterItem::fetchByHash($Params['UserHash']); if (!$NewsletterItem) { return $Module->handleError(3, 'kernel'); } $sub = $NewsletterItem->userData(); $subscription = eZSubscription::fetch($NewsletterItem->attribute('subscription_id')); $tpl->setVariable('NewsletterItem', $NewsletterItem); $tpl->setVariable('UserHash', $Params['UserHash']); $tpl->setVariable('subscriptions', $subscription); if ($http->hasPostVariable('OKButton')) { $subscription->unsubscribe(); $siteini = eZINI::instance(); $sender = $siteini->variable('MailSettings', 'EmailSender'); $mail = new eZMail(); $mail->setReceiver($sub['email']); $mail->setSender($sender); $mail->setSubject(ezpI18n::tr('newsletteraddons', "Your subscription removal")); $hostName = eZSys::hostname(); $mailtpl = eZTemplate::instance(); $mailtpl->setVariable('hostname', $hostName); $mailtpl->setVariable('siteaccess', $GLOBALS['eZCurrentAccess']['name']);
function handleBounce($type, $id, $bounceType) { $previousBounce = eZBounce::fetchObject(eZBounce::definition(), null, array('newslettersenditem_id' => $id, 'bounce_type' => $bounceType), true); if ($previousBounce) { //Update the bounce count for this mailling $previousCount = $previousBounce->attribute('bounce_count'); $previousBounce->setAttribute('bounce_count', ++$previousCount); $previousBounce->setAttribute('bounce_message', $type['bounce_message']); $previousBounce->store(); $sendItem = eZSendNewsletterItem::fetch($id, true); if ($sendItem) { if ($bounceType == EZSOFTBOUNCE && $previousCount < $bounceCountStop) { $sendItem->setAttribute('send_status', eZSendNewsletterItem::SendStatusNone); $sendItem->store(); } $subscriptionObject = eZSubscription::fetch($sendItem->attribute('subscription_id')); if ($subscriptionObject) { $bounce_count = $subscriptionObject->attribute('bounce_count'); $subscriptionObject->setAttribute('bounce_count', ++$bounce_count); $subscriptionObject->store(); } } } else { //We create a new bounce entry $db = eZDB::instance(); $db->begin(); $bounceData = new eZBounce(array()); $bounceData->store(); $bounceData->setAttribute('address', $type['address']); $bounceData->setAttribute('bounce_type', $bounceType); $bounceData->setAttribute('bounce_count', 1); $bounceData->setAttribute('bounce_arrived', $type['bounce_arrived']); $bounceData->setAttribute('newslettersenditem_id', $id); $bounceData->setAttribute('bounce_message', $type['bounce_message']); $bounceData->store(); $db->commit(); //Update the sendnewsletteritem table with reference to this bounce entry $sendItem = eZSendNewsletterItem::fetch($id, true); if ($sendItem) { $current_bounceID = $sendItem->attribute('bounce_id'); if ($current_bounceID == 0) { $sendItem->setAttribute('bounce_id', $bounceData->attribute('id')); $sendItem->store(); } else { eZDebug::writeNotice("Bounce ID already in place", 'check_bounce'); } if ($bounceType == EZSOFTBOUNCE) { $sendItem->setAttribute('send_status', eZSendNewsletterItem::SendStatusNone); $sendItem->store(); } //Set the bounce count for the matching subscription_id directly in the subscription table $subscription_id = $sendItem->attribute('subscription_id'); $subscriptionObject = eZSubscription::fetch($subscription_id); if ($subscriptionObject) { $bounce_count = $subscriptionObject->attribute('bounce_count'); $subscriptionObject->setAttribute('bounce_count', ++$bounce_count); $subscriptionObject->store(); } } } }
$labelMap = array(); foreach (array_keys($data) as $label) { $mapName = 'LabelMap_' . $label; if ($http->hasPostVariable($mapName)) { if ($http->postVariable($mapName) != '0') { $labelMap[$http->postVariable($mapName)] = $label; } } } if ($http->hasPostVariable('RowNum')) { $subscriptionListID = $subscriptionList->attribute('id'); foreach ($http->postVariable('RowNum') as $rowIndex) { if ($data[$labelMap['email']][$rowIndex] != "") { if (!eZSubscription::fetchByEmailSubscriptionListID($data[$labelMap['email']][$rowIndex], $subscriptionListID)) { if (!eZRobinsonListEntry::inList($data[$labelMap['email']][$rowIndex])) { $subscription = eZSubscription::create($subscriptionListID, $data[$labelMap['firstname']][$rowIndex], $data[$labelMap['name']][$rowIndex], $data[$labelMap['mobile']][$rowIndex], $data[$labelMap['email']][$rowIndex]); $subscription->setAttribute('status', eZSubscription::StatusApproved); $subscription->publish(); } } } } } $http->removeSessionVariable('CSVData'); return $Module->redirectToView('subscription_list', array($subscriptionList->attribute('url_alias'))); } } } } $data = array(); if (eZHTTPFile::canFetch('UploadCSVFile')) {
function subscriptionCount() { $count = eZSubscription::count($this->attribute('id')); return $count; }
function subscriptionList() { return eZSubscription::fetchListByEmail($this->attribute('email')); }
// This source file is part of the eZ publish (tm) Open Source Content // Management System. // // ## END COPYRIGHT, LICENSE AND WARRANTY NOTICE ## // /*! \file edit_subscription.php */ $Module = $Params['Module']; $http = eZHTTPTool::instance(); if ($http->hasPostVariable('RemoveSubscriptionButton')) { if (is_array($http->postVariable('SubscriptionIDArray'))) { foreach ($http->postVariable('SubscriptionIDArray') as $subscriptionID) { $userData = eZUserSubscriptionData::fetchById($subscriptionID); $subscriptionList = eZSubscription::fetchListByEmail($userData->attribute('email'), eZSubscription::VersionStatusPublished, array(array(eZSubscription::StatusPending, eZSubscription::StatusApproved, eZSubscription::StatusConfirmed, eZSubscription::StatusRemovedSelf, eZSubscription::StatusRemovedAdmin))); foreach ($subscriptionList as $subscription) { eZSubscription::removeAll($subscription->Attribute('id')); } eZUserSubscriptionData::removeAll($subscriptionID); } } } if ($http->hasPostVariable('searchString') && trim($http->postVariable('searchString')) != "") { $search = trim(strtolower($http->postVariable('searchString'))); $db = eZDB::instance(); $searchSQL = "SELECT email FROM ezsubscriptionuserdata WHERE LOWER(firstname) LIKE '%" . $db->escapeString($search) . "%' or LOWER(name) LIKE '%" . $db->escapeString($search) . "%' or LOWER(email) LIKE '%" . $db->escapeString($search) . "%' group by email LIMIT 50"; $searchResult = $db->arrayQuery($searchSQL); $subscriberList = array(); foreach ($searchResult as $email) { $subscriberList[] = eZUserSubscriptionData::fetch($email['email']); } $countSQL = "SELECT id FROM ezsubscriptionuserdata WHERE LOWER(firstname) LIKE '%" . $db->escapeString($search) . "%' or LOWER(name) LIKE '%" . $db->escapeString($search) . "%' or LOWER(email) LIKE '%" . $db->escapeString($search) . "%' group by email";
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of version 2.0 of the GNU General // 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 subscription_activate.php */ $Module = $Params['Module']; $http = eZHTTPTool::instance(); $subscription = eZSubscription::fetchByHash($Params['Hash']); if (!$subscription) { return $Module->handleError(eZError::KERNEL_NOT_AVAILABLE, 'kernel'); } $subscriptionList = $subscription->attribute('subscription_list'); $res = eZTemplateDesignResource::instance(); $res->setKeys(array(array('newsletter_view', 'subscription_activate'))); $subscription->setAttribute('status', eZSubscription::StatusConfirmed); if ($subscriptionList->attribute('auto_approve_registered')) { $subscription->setAttribute('status', eZSubscription::StatusApproved); } $subscription->store(); $tpl = eZNewsletterTemplateWrapper::templateInit(); $tpl->setVariable('subscription', $subscription); $Result = array(); $Result['content'] = $tpl->fetch("design:eznewsletter/subscription_activate.tpl");
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; }
// MA 02110-1301, USA. // // This source file is part of the eZ publish (tm) Open Source Content // Management System. // // ## END COPYRIGHT, LICENSE AND WARRANTY NOTICE ## // /*! \file edit_subscription.php */ $Module = $Params['Module']; $http = eZHTTPTool::instance(); $warnings = array(); $subscriptionID = $Params['SubscriptionID']; $subscription = eZSubscription::fetchDraft($subscriptionID); if (!$subscription) { $subscription = eZSubscription::create(); } if (!$subscription) { return $Module->handleError(eZError::KERNEL_NOT_AVAILABLE, 'kernel'); } if ($http->hasPostVariable('StoreButton') || $http->hasPostVariable('ProfileButton') || $http->hasPostVariable('BrowseUserButton') || $http->hasPostVariable('UnsetUserButton')) { if (!eZRobinsonListEntry::inList($http->postVariable('Email')) && !eZRobinsonListEntry::inList($http->postVariable('Mobile'))) { if (!eZMail::validate($http->postVariable('Email'))) { $warnings[] = ezpI18n::tr('eznewsletter/newsletter/edit_subscription', 'You must provide a valid email address.'); } else { $subscription->setAttribute('email', $http->postVariable('Email')); } $subscription->setAttribute('firstname', $http->postVariable('Firstname')); $subscription->setAttribute('name', $http->postVariable('Name')); $subscription->setAttribute('mobile', $http->postVariable('Mobile')); $subscription->setAttribute('status', $http->postVariable('Status'));
function &userData() { $retVal = false; $subscription = eZSubscription::fetch($this->attribute('subscription_id')); if ($subscription) { $userSubscription = eZUserSubscriptionData::fetch($subscription->attribute('email')); if (!$userSubscription) { eZDebug::writeError("User subscription not found for: " . $subscription->attribute('email'), 'eZSendNewsletterItem::userData'); return false; } else { $generic_hash = $userSubscription->attribute('hash'); $retVal = array('firstname' => $subscription->attribute('firstname'), 'name' => $subscription->attribute('name'), 'email' => $subscription->attribute('email'), 'mobile' => $subscription->attribute('mobile'), 'output_format' => $subscription->attribute('output_format'), 'userhash' => $this->attribute('hash'), 'generic_userhash' => $generic_hash); } } return $retVal; }
if (!$subscriptionList->siteaccessAllowed()) { return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel'); } $user = false; $currentUser = eZUser::currentUser(); if ($currentUser->isLoggedIn()) { $user = $currentUser; } $warning = false; $success = false; $firstname = ''; $name = ''; $email = ''; if ($http->hasPostVariable('StoreButton')) { if ($user) { $subscription = eZSubscription::fetchByUserSubscriptionListID($user->attribute('contentobject_id'), $subscriptionList->attribute('id')); if (is_object($subscription) and $subscription->attribute('status') != eZSubscription::StatusRemovedSelf) { $warning = ezpI18n::tr('eznewsletter/register_subscription', 'Nous avons déjà pris en compte votre inscription à notre newsletter. Nous vous en remercions.'); $success = true; //$warning = ezpI18n::tr( 'eznewsletter/register_subscription', 'Nous avons déjà pris en compte votre inscription à notre newsletter. Nous vous en remercions' ); } elseif (is_object($subscription) and $subscription->attribute('status') == eZSubscription::StatusRemovedSelf) { $subscription->setAttribute('status', eZSubscription::StatusApproved); $subscription->store(); $warning = ezpI18n::tr('eznewsletter/register_subscription', 'You have renewed your subscription.'); } else { $subscription = $subscriptionList->registerUser($user->attribute('contentobject_id')); } } else { $password = false; if ($subscriptionList->attribute('require_password')) { if ($http->postVariable('Password1') != 'password' && $http->postVariable('Password1') === $http->postVariable('Password2') && strlen(trim($http->postVariable('Password1'))) > 0) {
static function fetchListBySubscriptionListID($subscriptionListID, $condArray = array(), $offset = 0, $limit = 10, $asObject = true) { return eZPersistentObject::fetchObjectList(eZSubscription::definition(), null, array_merge(array('version_status' => eZSubscription::VersionStatusPublished, 'subscriptionlist_id' => $subscriptionListID), $condArray), null, array('limit' => $limit, 'offset' => $offset), $asObject); }
//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); } $tpl->setVariable('hash', $Params['hash']); $tpl->setVariable('userData', $userData); $tpl->setVariable('allowedStatusList', $allowedStatusList); $tpl->setVariable('statusNameMap', eZSubscription::statusNameMap()); $tpl->setVariable('subscriptionList', $subscriptionList); $tpl->setVariable('additionalLists', $additionalLists); $Result = array(); $Result['left_menu'] = 'design:parts/content/eznewsletter_menu.tpl'; $Result['content'] = $tpl->fetch("design:eznewsletter/user_modify.tpl"); $Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('eznewsletter/modify_subscription', 'Activate subscription')));
} if (!$warning) { $tpl = eZNewsletterTemplateWrapper::templateInit(); $tpl->setVariable('subscriptionList', $subscriptionList); $subscription->sendConfirmation(); $Result = array(); $Result['content'] = $tpl->fetch("design:eznewsletter/register_subscription_info.tpl"); $Result['path'] = array(array('url' => false, 'text' => ezi18n('eznewsletter/register_subscription', 'Register subscription'))); return; } } else { if ($http->hasPostVariable('CancelButton')) { $ini = eZINI::instance(); return $Module->redirectTo($ini->variable('SiteSettings', 'DefaultPage')); } } $tpl = eZNewsletterTemplateWrapper::templateInit(); if ($user) { $tpl->setVariable('user', $user); } $tpl->setVariable('firstname', $firstname); $tpl->setVariable('name', $name); $tpl->setVariable('email', $email); $tpl->setVariable('subscriptionList', $subscriptionList); $tpl->setVariable('output_map', eZSubscription::outputFormatNameMap()); if (isset($warning)) { $tpl->setVariable('warning', $warning); } $Result = array(); $Result['content'] = $tpl->fetch("design:eznewsletter/register_subscription.tpl"); $Result['path'] = array(array('url' => false, 'text' => ezi18n('eznewsletter/register_subscription', 'Register subscription')));
function subscriptionByID($id) { return array('result' => eZSubscription::fetch($id)); }
$condArray = array(); if ( !in_array( -1, $statusFilter ) ) { $condArray['status'] = array( $statusFilter ); } //if ( !in_array( -1, $vipFilter ) ) //{ // $condArray['vip'] = array( $vipFilter ); //} */ $condArray = array(); if (!in_array(-1, $statusFilterArray)) { $condArray['status'] = array($statusFilterArray); } $subscriberList = eZSubscription::fetchListBySubscriptionListID($subscriptionList->attribute('id'), $condArray, $offset, $limit); //$viewParameters['statusFilter'] = $userParameters['statusFilter']; $tpl = eZNewsletterTemplateWrapper::templateInit(); $tpl->setVariable('view_parameters', $viewParameters); $tpl->setVariable('statusFilter', $statusFilterArray); $tpl->setVariable('limit', $limit); $tpl->setVariable('subscriptionList', $subscriptionList); $tpl->setVariable('subscriberList', $subscriberList); //$tpl->setVariable( 'vip_map', eZSubscription::vipNameMap() ); $tpl->setVariable('status_map', eZSubscription::statusNameMap()); $tpl->setVariable('loginSteps_map', eZSubscriptionList::loginStepsNameMap()); $tpl->setVariable('subscriptionCount', eZSubscription::count($subscriptionList->attribute('id'), eZSubscription::VersionStatusPublished, $condArray)); $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/subscription_list.tpl"); $Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('eznewsletter/subscription_list', 'Subscription list')));