public function NewsletterSubscriberController::save in Newsletter 7.2
Same name and namespace in other branches
- 7 includes/newsletter.subscriber.controller.inc \NewsletterSubscriberController::save()
Saves a new newsletter subscriber in database.
Parameters
$subscriber: The full subscriber object to save.
$transaction: An optional transaction object.
Return value
SAVED_NEW or SAVED_UPDATED depending on the operation performed..
Overrides EntityAPIController::save
File
- modules/
subscriber/ includes/ newsletter_subscriber.controller.inc, line 48 - Controller class definition file for newsletter_subscriber entity.
Class
- NewsletterSubscriberController
- Newsletter Subscriber Controller
Code
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);
}