// check if we have correct input if (empty($guid)) { register_error(elgg_echo("newsletter:unsubscribe:error:input")); forward(); } $entity = get_entity($guid); if (!elgg_instanceof($entity, "site") && !elgg_instanceof($entity, "group")) { forward(); } if (!empty($user_guid)) { $recipient = $user_guid; } else { $recipient = $email; } // validate validation code if ($code && !newsletter_validate_unsubscribe_code($entity, $recipient, $code)) { register_error(elgg_echo("newsletter:unsubscribe:error:code")); forward(); } // breadcrumb elgg_push_breadcrumb(elgg_echo("newsletter:breadcrumb:site"), "newsletter/site"); if (elgg_instanceof($entity, "group")) { elgg_push_breadcrumb($entity->name, "newsletter/group/" . $entity->getGUID()); } elgg_push_breadcrumb(elgg_echo("newsletter:unsubscribe")); // build page elements $title_text = elgg_echo("newsletter:unsubscribe:title"); $form = elgg_view_form("newsletter/unsubscribe", array(), array("entity" => $entity, "recipient" => $recipient, "code" => $code)); // build page $page_data = elgg_view_layout("content", array("title" => $title_text, "content" => $form, "filter" => "")); // draw page
<?php /** * Unsubscribe the provided recipient from the newsletter(s) * */ $guid = (int) get_input("guid"); $recipient = get_input("recipient"); $all = (int) get_input("all"); $code = get_input("code"); $entity_guid = (int) get_input("entity_guid"); $forward_url = REFERER; if (!empty($entity_guid) && !empty($recipient)) { $entity = get_entity($entity_guid); if (!empty($entity) && (empty($code) || newsletter_validate_unsubscribe_code($entity, $recipient, $code))) { $recipient_error = false; // what to unsubscribe if (!empty($guid)) { // unsubscribe one newsletter if (is_numeric($recipient) && ($user = get_user($recipient))) { if (newsletter_unsubscribe_user($user, $entity)) { $forward_url = ""; system_message(elgg_echo("newsletter:action:unsubscribe:success:entity", array($entity->name))); } else { register_error(elgg_echo("newsletter:action:unsubscribe:error:entity", array($entity->name))); } } elseif (newsletter_is_email_address($recipient)) { if (newsletter_unsubscribe_email($recipient, $entity)) { $forward_url = ""; system_message(elgg_echo("newsletter:action:unsubscribe:success:entity", array($entity->name))); } else {