function execute($process, $event) { $user = eZUser::currentUser(); if ($user->isLoggedIn()) { return eZWorkflowType::STATUS_ACCEPTED; } $http = eZHTTPTool::instance(); // Get current content object ID. $parameters = $process->attribute('parameter_list'); $nodeID = $parameters['node_id']; $node = eZContentObjectTreeNode::fetch($nodeID); if (!$node) { return eZWorkflowType::STATUS_REJECTED; } $objectID = $node->attribute('contentobject_id'); // Get newsletter hash $uri = $GLOBALS['eZRequestedURI']; $userParameters = $uri->userParameters(); $hash = isset($userParameters['hash']) ? $userParameters['hash'] : false; $sendItem = eZSendNewsletterItem::fetchByHash($hash); if ($http->hasSessionVariable('NewsletterNodeIDArray')) { $globalNodeIDList = $http->sessionVariable('NewsletterNodeIDArray'); if (in_array($nodeID, $http->sessionVariable('NewsletterNodeIDArray'))) { $sendID = $http->sessionVariable('NewletterNodeMap_' . $nodeID); $sendItem = eZSendNewsletterItem::fetch($sendID); $sendItem->addObjectRead($objectID); return eZWorkflowType::STATUS_ACCEPTED; } } // Get send item, and check that is contains the object id. if (!$sendItem) { return eZWorkflowType::STATUS_REJECTED; } $sendItemIDList = $sendItem->attribute('newsletter_related_object_list'); if (!$sendItemIDList || !in_array($objectID, $sendItemIDList)) { return eZWorkflowType::STATUS_REJECTED; } $sendNodeIDArray = array(); // Set session variables foreach ($sendItemIDList as $sendObjectID) { $sendObject = eZContentObject::fetch($sendObjectID); if ($sendObject) { foreach ($sendObject->assignedNodes(false) as $nodeArray) { $http->setSessionVariable('NewletterNodeMap_' . $nodeArray['node_id'], $sendItem->attribute('id')); $sendNodeIDArray[] = $nodeArray['node_id']; } } } $globalNodeIDList = array_unique(array_merge($globalNodeIDList, $sendNodeIDArray)); $http->setSessionVariable('NewsletterNodeIDArray', $globalNodeIDList); // Add object read $sendItem->addObjectRead($objectID); return eZWorkflowType::STATUS_ACCEPTED; }
<?php include_once 'kernel/common/eztemplatedesignresource.php'; include_once 'kernel/common/template.php'; include_once "lib/ezutils/classes/ezmail.php"; 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);
// Further contact information is available at http://ez.no/company/contact/. // // The "GNU General Public License" (GPL) is available at // http://www.gnu.org/copyleft/gpl.html. // // Contact licence@ez.no if any conditions of this licencing isn't clear to // you. // $Module = $Params['Module']; $http = eZHTTPTool::instance(); $sendItemHash = $Params['sendItemHash']; $objectID = $Params['objectID']; $newsletterNodeID = $Params['newsletterNodeID']; $newsletterINI = eZINI::instance('eznewsletter.ini'); // Fetch newsletter and send item $sendItem = eZSendNewsletterItem::fetchByHash($sendItemHash); if (!$sendItem) { return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel'); } $newsletter = $sendItem->attribute('newsletter'); if (!$newsletter) { return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel'); } $newsletterObjectID = $newsletter->attribute('contentobject_id'); if (!$newsletterObjectID) { return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel'); } // Count newsletter read $sendItem->addObjectRead($newsletterObjectID); // Get send item, and check that is contains the object id. if (!$sendItem) {