View source
<?php
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;
}
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;
}
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;
}
function newsletter_list_views_api() {
return array(
'api' => 3,
'path' => drupal_get_path('module', 'newsletter_list') . '/includes/views',
);
}
function newsletter_list_load($nlid) {
if (empty($nlid)) {
return FALSE;
}
$lists = newsletter_list_load_multiple(array(
$nlid,
), array());
return $lists ? reset($lists) : FALSE;
}
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);
}
function newsletter_list_save($list) {
return entity_get_controller('newsletter_list')
->save($list);
}