/** * Synchronize the status of the subscriber with Rapidmail * @param <type> $subscriber */ public function syncSubscriber($subscriber) { // There is a new Subscriber if ($subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE) { // Create a new address in Rapidmail if (!Mage::helper('rapidmail')->checkRecipientExists($subscriber->getEmail())) { // Load for Customer or guest Mage::helper('rapidmail')->callRegisterMailForSubscriber($subscriber); } else { $subscriber->setRapidmailStatus(Narfstudios_Rapidmail_Model_Status::STATUS_NEW); $subscriber->save(); } } // Already exists so just activate it if ($subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) { if (!Mage::helper('rapidmail')->checkRecipientExists($subscriber->getEmail())) { Mage::helper('rapidmail')->callRegisterMailForSubscriber($subscriber); } Mage::helper('rapidmail')->activateMail($subscriber->getEmail()); } // If he should be deactivated delete the subscriber if ($subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED) { if (Mage::helper('rapidmail')->checkRecipientExists($subscriber->getEmail())) { Mage::helper('rapidmail')->unregisterMail($subscriber->getEmail()); } else { $subscriber->setRapidmailStatus(Narfstudios_Rapidmail_Model_Status::STATUS_DELETED); $subscriber->save(); } } }
/** * Populate the form values from Opus_Account instance. * @param <type> $account */ public function populateFromAccount($account) { $this->getElement('username')->setValue(strtolower($account->getLogin())); $this->getElement('firstname')->setValue($account->getFirstName()); $this->getElement('lastname')->setValue($account->getLastName()); $this->getElement('email')->setValue($account->getEmail()); $roles = $account->getRole(); $this->setSelectedRoles($roles); $adminRoleElement = $this->getElement('roleadministrator'); if (Zend_Auth::getInstance()->getIdentity() === strtolower($account->getLogin())) { $adminRoleElement->setAttrib('disabled', true); } }