public function isValid() { $this->errors = array(); if (!preg_match(Client::$EMAIL_REGEX, $this->email)) { $this->setError(BOOKING_DETAILS_EMAIL_INVALID); } else { $sub = NewsletterSubscription::fetchFromDbForEmail($this->email); if ($sub != null && $sub->id != $this->id) { $this->setError("Subscription with email: " . $this->email . " already exists"); } } return sizeof($this->errors) == 0; }
include "includes/language.php"; global $systemConfiguration; global $logger; unset($_SESSION['bookingDetails']); $logger->LogInfo(__FILE__); $logger->LogDebug("Script is starting ..."); $errorMessage = ""; $successMessage = ""; if (sizeof($_POST) > 0) { $logger->LogInfo("Processing newsletter subscription ..."); $systemConfiguration->assertReferer(); if (isset($_POST['email'])) { $emailAddress = trim($_POST['email']); $logger->LogDebug("Email address for newsletter was specified."); $logger->LogDebug($emailAddress); $subscription = NewsletterSubscription::fetchFromDbForEmail($emailAddress); if ($subscription == null) { $subscription = new NewsletterSubscription(); } $subscription->email = $emailAddress; $subscription->isActive = true; $logger->LogDebug("Saving subscription ..."); if ($subscription->save()) { $logger->LogDebug("Saving is successful."); $successMessage = HOME_BOX_BOTTOM_LEFT_SUCCESS; } else { $logger->LogError("Saving FAILED!"); $logger->LogError($subscription->errors); $errorMessage = BOOKING_DETAILS_EMAIL_INVALID; } }