newsletter_subscriber.pages.inc in Newsletter 7.2
Menu callbacks and forms for the frontend part of newsletter_subscriber module.
File
modules/subscriber/includes/newsletter_subscriber.pages.incView source
<?php
/**
* @file
* Menu callbacks and forms for the frontend part of newsletter_subscriber module.
*/
/**
* Page callback: Build the manage subscriptions form for visitors.
*
* @param $subscriber
* The full subscriber object.
*
* @see newsletter_subscriber_manage_subscriptions_form_submit()
* @see newsletter_subscriber_menu()
*/
function newsletter_subscriber_manage_subscriptions($subscriber = NULL) {
global $user;
if ($subscriber === NULL) {
// Visitor is in the subscribe page.
// Create new subscriber and assign user's mail if registerd.
$values = array(
'uid' => $user->uid ? $user->uid : NULL,
'mail' => isset($_GET['mail']) ? check_plain($_GET['mail']) : @$user->mail,
);
$subscriber = newsletter_subscriber_create($values);
}
module_load_include('inc', 'newsletter_subscriber', 'includes/newsletter_subscriber.admin');
$form = drupal_get_form('newsletter_subscriber_form', $subscriber);
// Make text more user friendly for visitors instead of admins.
$form['actions']['submit']['#value'] = !empty($subscriber->is_new) ? t('Subscribe') : t('Update subscriptions');
// Remove cancel link.
unset($form['actions']['cancel']);
return $form;
}
/**
* Page callback: Set the status of the subscriber to active.
*
* Used to confirm that a visitor owns the subscription e-mail so we can start
* sending newsletters there safely.
*
* @param $subscriber
* A fully loaded subscriber object.
*
* @return
* A render array for a page containing a list of content.
*
* @see newsletter_subscriber_menu()
*/
function newsletter_subscriber_confirm($subscriber) {
if ($subscriber && !$subscriber->status) {
$subscriber->status = 1;
$subscriber->confirmation_timestamp = REQUEST_TIME;
newsletter_subscriber_save($subscriber);
if (variable_get('newsletter_send_welcome', FALSE)) {
newsletter_create()
->sendBasic(2, $subscriber->mail);
}
drupal_set_message(t('You have successfully confirmed your subscription!'));
}
drupal_set_message(t('The hash you provided is invalid or you have already confirmed your subscription'), 'warning');
drupal_goto('<front>');
}
/**
* Form constructor for the confirmation of a subscriber unsubscription.
*
* @param $subscriber
* The subscriber object to unsubscribe/delete.
*
* @see newsletter_unsubscribe_submit()
* @see newsletter_subscriber_menu()
* @ingroup forms
*/
function newsletter_subscriber_unsubscribe($form, &$form_state, $subscriber) {
if ($subscriber) {
$form_state['newsletter_subscriber'] = $subscriber;
return confirm_form($form, t('Are you sure you want to unsubscribe from our newsletters?'), '<front>');
}
drupal_set_message(t('The hash you provided is invalid or outdated'), 'warning');
$form_state['redirect'] = '<front>';
}
/**
* Form submission handler for newsletter_subscriber_unsubscribe().
*/
function newsletter_subscriber_unsubscribe_submit($form, &$form_state) {
$subscriber = $form_state['newsletter_subscriber'];
if (variable_get('newsletter_send_unsubscribe', FALSE)) {
newsletter_create()
->sendBasic(3, $subscriber->email);
}
newsletter_subscriber_delete($subscriber);
drupal_set_message(t('You have successfully unsubscribed from our newsletter'));
$form_state['redirect'] = '<front>';
}
Functions
Name | Description |
---|---|
newsletter_subscriber_confirm | Page callback: Set the status of the subscriber to active. |
newsletter_subscriber_manage_subscriptions | Page callback: Build the manage subscriptions form for visitors. |
newsletter_subscriber_unsubscribe | Form constructor for the confirmation of a subscriber unsubscription. |
newsletter_subscriber_unsubscribe_submit | Form submission handler for newsletter_subscriber_unsubscribe(). |