201 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			201 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * @file
 | 
						|
 * Hooks provided by the Simplenews module.
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * @mainpage Simplenews API documentation.
 | 
						|
 *
 | 
						|
 * Simplenews builds on the following basic concepts.
 | 
						|
 *
 | 
						|
 * @link subscriber Subscribers @endlink subscribe to @link newsletter
 | 
						|
 * newsletters (categories) @endlink. That connection is called
 | 
						|
 * a @link subscription subscription @endlink. Nodes of enabled content types
 | 
						|
 * are @link issue newsletter issues @endlink. These are then sent to the
 | 
						|
 * subscribers of the newsletter the issue is attached to.
 | 
						|
 *
 | 
						|
 * Sending is done by first adding a row for each subscriber to the @link spool
 | 
						|
 * mail spool @endlink.
 | 
						|
 * Then they are processed either immediatly or during cron runs. The actual
 | 
						|
 * sending happens through a @link source source instance @endlink, which is
 | 
						|
 * first instanciated based on the mail spool and then used to generated the
 | 
						|
 * actual mail content.
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * @defgroup subscriber Subscriber
 | 
						|
 *
 | 
						|
 * @todo
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * @defgroup newsletter Newsletter (category)
 | 
						|
 *
 | 
						|
 * @todo
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * @defgroup subscription Subscription
 | 
						|
 *
 | 
						|
 * @todo
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * @defgroup issue Newsletter issue
 | 
						|
 *
 | 
						|
 * @todo
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * @defgroup spool Mail spool
 | 
						|
 *
 | 
						|
 * @todo
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * @defgroup source Source
 | 
						|
 *
 | 
						|
 * @todo
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Return operations to be applied to newsletter issues.
 | 
						|
 *
 | 
						|
 * @ingroup issue
 | 
						|
 */
 | 
						|
function hook_simplenews_issue_operations() {
 | 
						|
  $operations = array(
 | 
						|
    'activate' => array(
 | 
						|
      'label' => t('Send'),
 | 
						|
      'callback' => 'simplenews_issue_send',
 | 
						|
    ),
 | 
						|
  );
 | 
						|
  return $operations;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Return operations to be applied to subscriptions.
 | 
						|
 *
 | 
						|
 * @ingroup issue
 | 
						|
 */
 | 
						|
function hook_simplenews_subscription_operations() {
 | 
						|
  $operations = array(
 | 
						|
    'activate' => array(
 | 
						|
      'label' => t('Activate'),
 | 
						|
      'callback' => 'simplenews_subscription_activate',
 | 
						|
      'callback arguments' => array(SIMPLENEWS_SUBSCRIPTION_ACTIVE),
 | 
						|
    ),
 | 
						|
    'inactivate' => array(
 | 
						|
      'label' => t('Inactivate'),
 | 
						|
      'callback' => 'simplenews_subscription_activate',
 | 
						|
      'callback arguments' => array(SIMPLENEWS_SUBSCRIPTION_INACTIVE),
 | 
						|
    ),
 | 
						|
    'delete' => array(
 | 
						|
      'label' => t('Delete'),
 | 
						|
      'callback' => 'simplenews_subscription_delete_multiple',
 | 
						|
    ),
 | 
						|
  );
 | 
						|
  return $operations;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Act after a newsletter category has been saved.
 | 
						|
 *
 | 
						|
 * @ingroup newsletter
 | 
						|
 */
 | 
						|
function hook_simplenews_category_update($category) {
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Act after a newsletter category has been deleted.
 | 
						|
 *
 | 
						|
 * @ingroup newsletter
 | 
						|
 */
 | 
						|
function hook_simplenews_category_delete($category) {
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Act after a subscriber is updated.
 | 
						|
 *
 | 
						|
 * @ingroup subscriber
 | 
						|
 */
 | 
						|
function hook_simplenews_subscriber_update($subscriber) {
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Act after a new subscriber has been created.
 | 
						|
 *
 | 
						|
 * @ingroup subscriber
 | 
						|
 */
 | 
						|
function hook_simplenews_subscriber_insert($subscriber) {
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Act after a subscriber has been deleted.
 | 
						|
 *
 | 
						|
 * @ingroup subscriber
 | 
						|
 */
 | 
						|
function hook_simplenews_subscriber_delete($subscriber) {
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Invoked if a user is subscribed to a newsletter.
 | 
						|
 *
 | 
						|
 * @param $subscriber
 | 
						|
 *   The subscriber object including all subscriptions of this user.
 | 
						|
 *
 | 
						|
 * @param $subscription
 | 
						|
 *   The subscription object for this specific subscribe action.
 | 
						|
 *
 | 
						|
 * @ingroup subscriber
 | 
						|
 */
 | 
						|
function hook_simplenews_subscribe_user($subscriber, $subscription) {
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Invoked if a user is unsubscribed from a newsletter.
 | 
						|
 *
 | 
						|
 * @param $subscriber
 | 
						|
 *   The subscriber object including all subscriptions of this user.
 | 
						|
 *
 | 
						|
 * @param $subscription
 | 
						|
 *   The subscription object for this specific unsubscribe action.
 | 
						|
 *
 | 
						|
 * @ingroup subscriber
 | 
						|
 */
 | 
						|
function hook_simplenews_unsubscribe_user($subscriber, $subscription) {
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Expose SimplenewsSource cache implementations.
 | 
						|
 *
 | 
						|
 * @return
 | 
						|
 *   An array keyed by the name of the class that provides the implementation,
 | 
						|
 *   the array value consists of another array with the keys label and
 | 
						|
 *   description.
 | 
						|
 *
 | 
						|
 * @ingroup source
 | 
						|
 */
 | 
						|
function hook_simplenews_source_cache_info() {
 | 
						|
  return array(
 | 
						|
    'SimplenewsSourceCacheNone' => array(
 | 
						|
      'label' => t('No caching'),
 | 
						|
      'description' => t('This allows to theme each newsletter separately.'),
 | 
						|
    ),
 | 
						|
    'SimplenewsSourceCacheBuild' => array(
 | 
						|
      'label' => t('Cached content source'),
 | 
						|
      'description' => t('This caches the rendered content to be sent for multiple recipients. It is not possible to use subscriber specific theming but tokens can be used for personalization.'),
 | 
						|
    ),
 | 
						|
  );
 | 
						|
}
 |