You are here

newsletter_list.module in Newsletter 7.2

File

modules/list/newsletter_list.module
View source
<?php

/**
 * @file
 *
 */

/**
 * Implements hook_menu().
 */
function newsletter_list_menu() {
  $items = array();
  $items['admin/config/media/newsletter/lists'] = array(
    'title' => 'Lists',
    'description' => 'Administer newsletter lists.',
    'access arguments' => array(
      'administer newsletter lists',
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'newsletter_list',
    ),
    'file' => 'includes/newsletter_list.admin.inc',
    'weight' => 2,
  );
  $items['admin/config/media/newsletter/lists/add'] = array(
    'title' => 'Add new list',
    'page callback' => 'newsletter_list_add',
    'description' => 'Add new newsletter list.',
    'access arguments' => array(
      'administer newsletter lists',
    ),
    'type' => MENU_LOCAL_ACTION,
    'file' => 'includes/newsletter_list.admin.inc',
  );
  $items['admin/config/media/newsletter/lists/delete/%newsletter_list'] = array(
    'title' => 'Delete newsletter list',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'newsletter_list_delete',
      6,
    ),
    'access arguments' => array(
      'administer newsletters',
    ),
    'type' => MENU_CALLBACK,
    'file' => 'includes/newsletter_list.admin.inc',
  );
  $items['admin/config/media/newsletter/lists/edit/%newsletter_list'] = array(
    'title' => 'Edit newsletter list',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'newsletter_list_edit',
      6,
    ),
    'access arguments' => array(
      'administer newsletter lists',
    ),
    'file' => 'includes/newsletter_list.admin.inc',
    'type' => MENU_CALLBACK,
  );
  return $items;
}

/**
 * Implements hook_permission().
 */
function newsletter_list_permission() {
  $permissions = array();
  $permissions['administer newsletter lists'] = array(
    'title' => t('Administer newsletter lists'),
    'description' => t('Access the newsletter lists administration pages.'),
  );
  return $permissions;
}

/**
 * Implements hook_entity_info().
 */
function newsletter_list_entity_info() {
  $entities = array(
    'newsletter_list' => array(
      'label' => t('Newsletter list'),
      'plural label' => t('Newsletter lists'),
      'description' => t('A newsletter list.'),
      'controller class' => 'NewsletterListController',
      'base table' => 'newsletter_list',
      'fieldable' => TRUE,
      'entity keys' => array(
        'id' => 'list_id',
        'label' => 'title',
      ),
      'bundles' => array(
        'newsletter_list' => array(
          'label' => t('Newsletter list'),
        ),
      ),
    ),
  );
  return $entities;
}

/**
 * Implements hook_views_api().
 */
function newsletter_list_views_api() {
  return array(
    'api' => 3,
    'path' => drupal_get_path('module', 'newsletter_list') . '/includes/views',
  );
}

/**
 * Loads a newsletter list by ID.
 */
function newsletter_list_load($nlid) {
  if (empty($nlid)) {
    return FALSE;
  }
  $lists = newsletter_list_load_multiple(array(
    $nlid,
  ), array());
  return $lists ? reset($lists) : FALSE;
}

/**
 * Loads multiple lists by ID or based on a set of matching conditions.
 *
 * @see entity_load()
 *
 * @param $nlids
 *   An array of list IDs.
 * @param $conditions
 *   Deprecated. use EntityFieldQuery instead.
 * @param $reset
 *   Whether to reset the internal list loading cache.
 *
 * @return
 *   An array of newsletter list objects indexed by nsid.
 */
function newsletter_list_load_multiple($nlids = array(), $conditions = array(), $reset = FALSE) {
  if (empty($nlids) && empty($conditions)) {
    return array();
  }
  return entity_load('newsletter_list', $nlids, $conditions, $reset);
}

/**
 * Saves a newsletter list.
 *
 * @param $list
 *   The full newsletter list object to save.
 *
 * @return
 *   SAVED_NEW or SAVED_UPDATED depending on the operation performed.
 */
function newsletter_list_save($list) {
  return entity_get_controller('newsletter_list')
    ->save($list);
}

Functions

Namesort descending Description
newsletter_list_entity_info Implements hook_entity_info().
newsletter_list_load Loads a newsletter list by ID.
newsletter_list_load_multiple Loads multiple lists by ID or based on a set of matching conditions.
newsletter_list_menu Implements hook_menu().
newsletter_list_permission Implements hook_permission().
newsletter_list_save Saves a newsletter list.
newsletter_list_views_api Implements hook_views_api().