Public Member Functions | |
__construct () | |
load ($subscriberId) | |
setMessagesScope ($scope) | |
loadByEmail ($subscriberEmail) | |
loadByCustomer (Mage_Customer_Model_Customer $customer) | |
save (Mage_Newsletter_Model_Subscriber $subscriber) | |
delete ($subscriberId) | |
received (Mage_Newsletter_Model_Subscriber $subscriber, Mage_Newsletter_Model_Queue $queue) | |
Protected Member Functions | |
_generateRandomCode () | |
_prepareSave (Mage_Newsletter_Model_Subscriber $subscriber) | |
Protected Attributes | |
$_read | |
$_write | |
$_subscriberTable | |
$_subscriberLinkTable | |
$_messagesScope = 'newsletter/session' |
Definition at line 34 of file Subscriber.php.
__construct | ( | ) |
Constructor
Set read and write connection, get tablename from config
Definition at line 76 of file Subscriber.php.
00077 { 00078 $this->_subscriberTable = Mage::getSingleton('core/resource')->getTableName("newsletter/subscriber"); 00079 $this->_subscriberLinkTable = Mage::getSingleton('core/resource')->getTableName("newsletter/queue_link"); 00080 $this->_read = Mage::getSingleton('core/resource')->getConnection('newsletter_read'); 00081 $this->_write = Mage::getSingleton('core/resource')->getConnection('newsletter_write'); 00082 }
_generateRandomCode | ( | ) | [protected] |
Generates random code for subscription confirmation
Definition at line 196 of file Subscriber.php.
_prepareSave | ( | Mage_Newsletter_Model_Subscriber $ | subscriber | ) | [protected] |
Preapares data for saving of subscriber
Mage_Newsletter_Model_Subscriber | $subscriber |
Definition at line 207 of file Subscriber.php.
00208 { 00209 $data = array(); 00210 $data['customer_id'] = $subscriber->getCustomerId(); 00211 $data['store_id'] = $subscriber->getStoreId() ? $subscriber->getStoreId() : 0; 00212 $data['subscriber_status'] = $subscriber->getStatus(); 00213 $data['subscriber_email'] = $subscriber->getEmail(); 00214 $data['subscriber_confirm_code'] = $subscriber->getCode(); 00215 00216 if($subscriber->getIsStatusChanged()) { 00217 $data['change_status_at'] = Mage::getSingleton('core/date')->gmtDate(); 00218 } 00219 00220 $validators = array('subscriber_email' => 'EmailAddress'); 00221 $filters = array(); 00222 $input = new Zend_Filter_Input($filters, $validators, $data); 00223 $session = Mage::getSingleton($this->_messagesScope); 00224 if ($input->hasInvalid() || $input->hasMissing()) { 00225 foreach ($input->getMessages() as $message) { 00226 if(is_array($message)) { 00227 foreach( $message as $error ) { 00228 $session->addError($error); 00229 } 00230 } else { 00231 $session->addError($message); 00232 } 00233 } 00234 Mage::throwException(Mage::helper('newsletter')->__('Form was filled incorrectly')); 00235 } 00236 00237 return $data; 00238 }
delete | ( | $ | subscriberId | ) |
Delete subscriber from DB
int | $subscriberId |
Definition at line 245 of file Subscriber.php.
00246 { 00247 if(!(int)$subscriberId) { 00248 Mage::throwException(Mage::helper('newsletter')->__('Invalid subscriber ID')); 00249 } 00250 00251 $this->_write->beginTransaction(); 00252 try { 00253 $this->_write->delete($this->_subscriberTable, 00254 $this->_write->quoteInto('subscriber_id=?', $subscriberId)); 00255 $this->_write->commit(); 00256 } 00257 catch (Exception $e) { 00258 $this->_write->rollBack(); 00259 Mage::throwException(Mage::helper('newsletter')->__('Cannot delete subscriber')); 00260 } 00261 }
load | ( | $ | subscriberId | ) |
Load subscriber from DB
int | $subscriberId |
Definition at line 90 of file Subscriber.php.
00091 { 00092 $select = $this->_read->select() 00093 ->from($this->_subscriberTable) 00094 ->where('subscriber_id=?',$subscriberId); 00095 00096 return $this->_read->fetchRow($select); 00097 }
loadByCustomer | ( | Mage_Customer_Model_Customer $ | customer | ) |
Load subscriber by customer
Mage_Customer_Model_Customer | $customer |
Definition at line 138 of file Subscriber.php.
00139 { 00140 $select = $this->_read->select() 00141 ->from($this->_subscriberTable) 00142 ->where('customer_id=?',$customer->getId()); 00143 00144 $result = $this->_read->fetchRow($select); 00145 00146 if ($result) { 00147 return $result; 00148 } 00149 00150 $select = $this->_read->select() 00151 ->from($this->_subscriberTable) 00152 ->where('subscriber_email=?',$customer->getEmail()); 00153 00154 $result = $this->_read->fetchRow($select); 00155 00156 if ($result) { 00157 return $result; 00158 } 00159 00160 return array(); 00161 }
loadByEmail | ( | $ | subscriberEmail | ) |
Load subscriber from DB by email
string | $subscriberEmail |
Definition at line 115 of file Subscriber.php.
00116 { 00117 $select = $this->_read->select() 00118 ->from($this->_subscriberTable) 00119 ->where('subscriber_email=?',$subscriberEmail); 00120 00121 $result = $this->_read->fetchRow($select); 00122 00123 if(!$result) { 00124 return array(); 00125 } 00126 00127 return $result; 00128 }
received | ( | Mage_Newsletter_Model_Subscriber $ | subscriber, | |
Mage_Newsletter_Model_Queue $ | queue | |||
) |
Definition at line 263 of file Subscriber.php.
00264 { 00265 $this->_write->beginTransaction(); 00266 try { 00267 $data['letter_sent_at'] = now(); 00268 $this->_write->update($this->_subscriberLinkTable, 00269 $data, 00270 array($this->_write->quoteInto('subscriber_id=?', $subscriber->getId()), 00271 $this->_write->quoteInto('queue_id=?', $queue->getId()))); 00272 $this->_write->commit(); 00273 } 00274 catch (Exception $e) { 00275 $this->_write->rollBack(); 00276 Mage::throwException(Mage::helper('newsletter')->__('Cannot mark as received subscriber')); 00277 } 00278 return $this; 00279 }
save | ( | Mage_Newsletter_Model_Subscriber $ | subscriber | ) |
Save subscriber info from it model.
Mage_Newsletter_Model_Subscriber | $subscriber |
Definition at line 169 of file Subscriber.php.
00170 { 00171 $this->_write->beginTransaction(); 00172 try { 00173 $data = $this->_prepareSave($subscriber); 00174 if ($subscriber->getId()) { 00175 $this->_write->update($this->_subscriberTable, $data, 00176 $this->_write->quoteInto('subscriber_id=?',$subscriber->getId())); 00177 } else { 00178 $this->_write->insert($this->_subscriberTable, $data); 00179 $subscriber->setId($this->_write->lastInsertId($this->_subscriberTable)); 00180 } 00181 $this->_write->commit(); 00182 } 00183 catch(Exception $e) { 00184 $this->_write->rollBack(); 00185 Mage::throwException(Mage::helper('newsletter')->__('Cannot save your subscription: %s', $e->getMessage())); 00186 } 00187 00188 return $subscriber; 00189 }
setMessagesScope | ( | $ | scope | ) |
$_messagesScope = 'newsletter/session' [protected] |
Definition at line 69 of file Subscriber.php.
$_read [protected] |
Definition at line 41 of file Subscriber.php.
$_subscriberLinkTable [protected] |
Definition at line 62 of file Subscriber.php.
$_subscriberTable [protected] |
Definition at line 55 of file Subscriber.php.
$_write [protected] |
Definition at line 48 of file Subscriber.php.