// 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'); }
// /*! \file user_settings.php */ $Module = $Params['Module']; $http = eZHTTPTool::instance(); $tpl = eZNewsletterTemplateWrapper::templateInit(); if ($http->hasPostVariable('CreateSubscriptionButton')) { $tpl->setVariable('newUser', true); } if ($http->hasPostVariable('AddSubscription')) { if ($http->hasVariable('original_email')) { $userData = eZUserSubscriptionData::fetch($http->postVariable('original_email')); if ($userData) { if ($http->hasVariable('AddSubscriptionID')) { foreach ($http->postVariable('AddSubscriptionID') as $subscriptionID) { $subscriptionList = eZSubscriptionList::fetch($subscriptionID, eZSubscriptionList::StatusPublished, true, true); if ($subscriptionList) { $subscription = $subscriptionList->registerSubscription($userData->attribute('firstname'), $userData->attribute('name'), $userData->attribute('mobile'), $userData->attribute('email'), false); $subscription->setAttribute('status', eZSubscription::StatusApproved); $subscription->store(); } } } } } } if ($http->hasPostVariable('UpdateSubscriptions')) { if ($http->hasVariable('original_email') && $http->postVariable('original_email') != "") { $userData = eZUserSubscriptionData::fetch($http->postVariable('original_email')); $allowedStatusList = array(eZSubscription::StatusApproved, eZSubscription::StatusPending, eZSubscription::StatusConfirmed, eZSubscription::StatusRemovedSelf, eZSubscription::StatusRemovedAdmin); $subscriptionList = eZSubscription::fetchListByEmail($userData->attribute('email'), eZSubscription::VersionStatusPublished, array(array(eZSubscription::StatusPending, eZSubscription::StatusApproved, eZSubscription::StatusConfirmed, eZSubscription::StatusRemovedSelf, eZSubscription::StatusRemovedAdmin)));
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; }
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 onPublish($attribute, $contentObject, $publishedNodes) { $http = eZHTTPTool::instance(); $userID = $attribute->attribute('contentobject_id'); $data = unserialize($attribute->attribute('data_text')); $avialable = array_merge($data['unregister'], $data['register']); foreach ($avialable as $id) { $subscription = eZSubscription::fetchByUserSubscriptionListID($userID, $id); if (isset($subscription) and $subscription->attribute('status') == eZSubscription::StatusApproved and in_array($id, $data['unregister'])) { $subscription->unsubscribe(); } elseif (isset($subscription) and $subscription->attribute('status') == eZSubscription::StatusRemovedSelf and in_array($id, $data['register'])) { $subscription->setAttribute('status', eZSubscription::StatusApproved); $subscription->sync(); } elseif (!isset($subscription) and in_array($id, $data['register'])) { $list = eZSubscriptionList::fetch($id, eZSubscriptionList::StatusPublished, true, true); if ($list) { $subscription = $list->registerUser($userID); } } if ($subscription) { $version = eZContentObjectVersion::fetchVersion($attribute->attribute('version'), $attribute->attribute('contentobject_id')); $user = eZUser::fetch($attribute->attribute('contentobject_id')); $userData = eZUserSubscriptionData::fetch($user->attribute('email')); $dm = $version->attribute('data_map'); if (!$userData) { $userData = eZUserSubscriptionData::create('', '', '', $user->attribute('email')); } if ($user->attribute('email')) { $userData->updateAttribute('email', $user->attribute('email')); $userData->store(); } if (isset($dm['last_name'])) { $userData->setAttribute('name', $dm['last_name']->attribute('data_text')); $userData->store(); } if (isset($dm['first_name'])) { $userData->setAttribute('firstname', $dm['first_name']->attribute('data_text')); $userData->store(); } if (isset($dm['mobile'])) { $userData->setAttribute('mobile', $dm['mobile']->attribute('data_text')); $userData->store(); } } } $http->removeSessionVariable('register_subscription'); $http->removeSessionVariable('unregister_subscription'); }
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 fetchDraft($id, $asObject = true) { $subscriptionList = eZSubscriptionList::fetch($id, eZSubscriptionList::StatusDraft, $asObject); if (!$subscriptionList) { $subscriptionList = eZSubscriptionList::fetch($id, eZSubscriptionList::StatusPublished, $asObject); if ($subscriptionList) { $subscriptionList->setAttribute('status', eZSubscriptionList::StatusDraft); $subscriptionList->store(); } } if (!$subscriptionList) { return false; } return $subscriptionList; }