class NewsletterSubscriberController in Newsletter 7.2
Same name and namespace in other branches
- 7 includes/newsletter.subscriber.controller.inc \NewsletterSubscriberController
Newsletter Subscriber Controller
Hierarchy
- class \DrupalDefaultEntityController implements DrupalEntityControllerInterface
- class \EntityAPIController implements EntityAPIControllerRevisionableInterface
Expanded class hierarchy of NewsletterSubscriberController
1 string reference to 'NewsletterSubscriberController'
- newsletter_subscriber_entity_info in modules/
subscriber/ newsletter_subscriber.module - Implements hook_entity_info().
File
- modules/
subscriber/ includes/ newsletter_subscriber.controller.inc, line 11 - Controller class definition file for newsletter_subscriber entity.
View source
class NewsletterSubscriberController extends EntityAPIController {
/**
* Create a default subscriber.
*
* @param array $values
* An array of values to set, keyed by property name.
* @return
* A subscriber object with all default fields initialized.
*/
public function create(array $values = array()) {
$values += array(
'subscriber_id' => '',
'is_new' => TRUE,
'mail' => '',
'uid' => NULL,
'status' => 0,
);
// If there is only one subscriber type, use this as default.
$types = array_keys($this->entityInfo['bundles']);
if (count($types) == 1 && !isset($values['type'])) {
$values[$this->entityInfo['bundle keys']['bundle']] = reset($types);
}
return parent::create($values);
}
/**
* Saves a new newsletter subscriber in database.
*
* @param $subscriber
* The full subscriber object to save.
* @param $transaction
* An optional transaction object.
*
* @return
* SAVED_NEW or SAVED_UPDATED depending on the operation performed..
*/
public function save($subscriber, DatabaseTransaction $transaction = NULL) {
if (isset($subscriber->uid) && is_numeric($subscriber->uid)) {
// Make sure that user's email is same with subscriber's,
// so we can safely assume that this subscriber is same with user.
$user = user_load($subscriber->uid);
$subscriber->uid = isset($user->mail) && $subscriber->mail == $user->mail ? $user->uid : NULL;
}
else {
// Try to find a user with this email and automatically assign
// to this subscriber
$user = user_load_by_mail($subscriber->mail);
$subscriber->uid = $user ? $user->uid : NULL;
}
if (empty($subscriber->subscriber_id) || !empty($subscriber->is_new)) {
$subscriber->created = REQUEST_TIME;
$subscriber->ip = ip_address();
$subscriber->hash = drupal_hmac_base64(REQUEST_TIME . $subscriber->mail, drupal_get_hash_salt() . $subscriber->ip);
$subscriber->confirmation_timestamp = $subscriber->status ? REQUEST_TIME : 0;
}
$subscriber->changed = REQUEST_TIME;
return parent::save($subscriber, $transaction);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DrupalDefaultEntityController:: |
protected | property | Whether this entity type should use the static cache. | |
DrupalDefaultEntityController:: |
protected | property | Static cache of entities, keyed by entity ID. | |
DrupalDefaultEntityController:: |
protected | property | Array of information about the entity. | |
DrupalDefaultEntityController:: |
protected | property | Entity type for this controller instance. | |
DrupalDefaultEntityController:: |
protected | property | Additional arguments to pass to hook_TYPE_load(). | |
DrupalDefaultEntityController:: |
protected | property | Name of the entity's ID field in the entity database table. | |
DrupalDefaultEntityController:: |
protected | property | Name of entity's revision database table field, if it supports revisions. | |
DrupalDefaultEntityController:: |
protected | property | The table that stores revisions, if the entity supports revisions. | |
DrupalDefaultEntityController:: |
protected | function | Attaches data to entities upon loading. | 4 |
DrupalDefaultEntityController:: |
protected | function | Gets entities from the static cache. | 1 |
DrupalDefaultEntityController:: |
protected | function | Stores entities in the static entity cache. | |
DrupalDefaultEntityController:: |
protected | function | Ensures integer entity IDs are valid. | |
DrupalDefaultEntityController:: |
protected | function | Callback for array_filter that removes non-integer IDs. | |
EntityAPIController:: |
protected | property | ||
EntityAPIController:: |
protected | property | ||
EntityAPIController:: |
protected | property | ||
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
|
EntityAPIController:: |
protected | function |
Overrides DrupalDefaultEntityController::buildQuery(). Overrides DrupalDefaultEntityController:: |
1 |
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
1 |
EntityAPIController:: |
public | function |
Implements EntityAPIControllerRevisionableInterface::deleteRevision(). Overrides EntityAPIControllerRevisionableInterface:: |
|
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
1 |
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
|
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
1 |
EntityAPIController:: |
public | function |
Overridden. Overrides DrupalDefaultEntityController:: |
1 |
EntityAPIController:: |
public | function | Builds and executes the query for loading. | |
EntityAPIController:: |
protected | function | Renders a single entity property. | |
EntityAPIController:: |
public | function |
Overrides DrupalDefaultEntityController::resetCache(). Overrides DrupalDefaultEntityController:: |
1 |
EntityAPIController:: |
protected | function | Saves an entity revision. | |
EntityAPIController:: |
public | function |
Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface:: |
1 |
EntityAPIController:: |
public | function |
Overridden. Overrides DrupalDefaultEntityController:: |
1 |
NewsletterSubscriberController:: |
public | function |
Create a default subscriber. Overrides EntityAPIController:: |
|
NewsletterSubscriberController:: |
public | function |
Saves a new newsletter subscriber in database. Overrides EntityAPIController:: |