Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mage_Newsletter - DOC block update #765

Merged
merged 3 commits into from
Jun 12, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions app/code/core/Mage/Newsletter/Block/Subscribe.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,18 @@

class Mage_Newsletter_Block_Subscribe extends Mage_Core_Block_Template
{
/**
* @return string
*/
public function getSuccessMessage()
{
$message = Mage::getSingleton('newsletter/session')->getSuccess();
return $message;
}

/**
* @return string
*/
public function getErrorMessage()
{
$message = Mage::getSingleton('newsletter/session')->getError();
Expand Down
3 changes: 1 addition & 2 deletions app/code/core/Mage/Newsletter/Helper/Data.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,12 +73,11 @@ public function getUnsubscribeUrl($subscriber)
/**
* Retrieve Template processor for Newsletter template
*
* @return Varien_Filter_Template
* @return false|Mage_Core_Model_Abstract|Varien_Filter_Template
*/
public function getTemplateProcessor()
{
$model = (string)Mage::getConfig()->getNode(self::XML_PATH_TEMPLATE_FILTER);
return Mage::getModel($model);
}
}

15 changes: 11 additions & 4 deletions app/code/core/Mage/Newsletter/Model/Observer.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@
*/
class Mage_Newsletter_Model_Observer
{
public function subscribeCustomer($observer)
/**
* @param Varien_Event_Observer $observer
* @return $this
*/
public function subscribeCustomer(Varien_Event_Observer $observer)
{
$customer = $observer->getEvent()->getCustomer();
if (($customer instanceof Mage_Customer_Model_Customer)) {
Expand All @@ -43,19 +47,22 @@ public function subscribeCustomer($observer)
/**
* Customer delete handler
*
* @param Varien_Object $observer
* @param Varien_Event_Observer $observer
* @return $this
*/
public function customerDeleted($observer)
public function customerDeleted(Varien_Event_Observer $observer)
{
$subscriber = Mage::getModel('newsletter/subscriber')
->loadByEmail($observer->getEvent()->getCustomer()->getEmail());
if($subscriber->getId()) {
if ($subscriber->getId()) {
$subscriber->delete();
}
return $this;
}

/**
* @param Varien_Event_Observer $schedule
*/
public function scheduledSend($schedule)
{
$countOfQueue = 3;
Expand Down
25 changes: 14 additions & 11 deletions app/code/core/Mage/Newsletter/Model/Problem.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,18 @@
*
* @method Mage_Newsletter_Model_Resource_Problem _getResource()
* @method Mage_Newsletter_Model_Resource_Problem getResource()
* @method int getSubscriberId()
* @method Mage_Newsletter_Model_Problem setSubscriberId(int $value)
* @method int getCustomerId()
* @method $this setCustomerName(string $value)
* @method $this setCustomerFirstName(string $value)
* @method $this setCustomerLastName(string $value)
* @method int getQueueId()
* @method Mage_Newsletter_Model_Problem setQueueId(int $value)
* @method $this setQueueId(int $value)
* @method int getProblemErrorCode()
* @method Mage_Newsletter_Model_Problem setProblemErrorCode(int $value)
* @method $this setProblemErrorCode(int $value)
* @method string getProblemErrorText()
* @method Mage_Newsletter_Model_Problem setProblemErrorText(string $value)
* @method $this setProblemErrorText(string $value)
* @method int getSubscriberId()
* @method $this setSubscriberId(int $value)
*
* @category Mage
* @package Mage_Newsletter
Expand All @@ -46,10 +50,10 @@ class Mage_Newsletter_Model_Problem extends Mage_Core_Model_Abstract
{
/**
* Current Subscriber
*
*
* @var Mage_Newsletter_Model_Subscriber
*/
protected $_subscriber = null;
protected $_subscriber = null;

/**
* Initialize Newsletter Problem Model
Expand Down Expand Up @@ -103,11 +107,11 @@ public function addErrorData(Exception $e)
*/
public function getSubscriber()
{
if(!$this->getSubscriberId()) {
if (!$this->getSubscriberId()) {
return null;
}

if(is_null($this->_subscriber)) {
if (is_null($this->_subscriber)) {
$this->_subscriber = Mage::getModel('newsletter/subscriber')
->load($this->getSubscriberId());
}
Expand All @@ -122,12 +126,11 @@ public function getSubscriber()
*/
public function unsubscribe()
{
if($this->getSubscriber()) {
if ($this->getSubscriber()) {
$this->getSubscriber()->setSubscriberStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED)
->setIsStatusChanged(true)
->save();
}
return $this;
}

}
53 changes: 26 additions & 27 deletions app/code/core/Mage/Newsletter/Model/Queue.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,26 +29,28 @@
*
* @method Mage_Newsletter_Model_Resource_Queue _getResource()
* @method Mage_Newsletter_Model_Resource_Queue getResource()
* @method Mage_Newsletter_Model_Resource_Queue_Collection getCollection()
*
* @method int getTemplateId()
* @method Mage_Newsletter_Model_Queue setTemplateId(int $value)
* @method $this setTemplateId(int $value)
* @method int getNewsletterType()
* @method Mage_Newsletter_Model_Queue setNewsletterType(int $value)
* @method $this setNewsletterType(int $value)
* @method string getNewsletterText()
* @method Mage_Newsletter_Model_Queue setNewsletterText(string $value)
* @method $this setNewsletterText(string $value)
* @method string getNewsletterStyles()
* @method Mage_Newsletter_Model_Queue setNewsletterStyles(string $value)
* @method $this setNewsletterStyles(string $value)
* @method string getNewsletterSubject()
* @method Mage_Newsletter_Model_Queue setNewsletterSubject(string $value)
* @method $this setNewsletterSubject(string $value)
* @method string getNewsletterSenderName()
* @method Mage_Newsletter_Model_Queue setNewsletterSenderName(string $value)
* @method $this setNewsletterSenderName(string $value)
* @method string getNewsletterSenderEmail()
* @method Mage_Newsletter_Model_Queue setNewsletterSenderEmail(string $value)
* @method $this setNewsletterSenderEmail(string $value)
* @method int getQueueStatus()
* @method Mage_Newsletter_Model_Queue setQueueStatus(int $value)
* @method $this setQueueStatus(int $value)
* @method string getQueueStartAt()
* @method Mage_Newsletter_Model_Queue setQueueStartAt(string $value)
* @method $this setQueueStartAt(string $value)
* @method string getQueueFinishAt()
* @method Mage_Newsletter_Model_Queue setQueueFinishAt(string $value)
* @method $this setQueueFinishAt(string $value)
*
* @category Mage
* @package Mage_Newsletter
Expand All @@ -65,7 +67,7 @@ class Mage_Newsletter_Model_Queue extends Mage_Core_Model_Template

/**
* Subscribers collection
* @var Varien_Data_Collection_Db
* @var Mage_Newsletter_Model_Resource_Subscriber_Collection
*/
protected $_subscribersCollection = null;

Expand Down Expand Up @@ -118,7 +120,7 @@ public function isNew()
/**
* Returns subscribers collection for this queue
*
* @return Varien_Data_Collection_Db
* @return Mage_Newsletter_Model_Resource_Subscriber_Collection
*/
public function getSubscribersCollection()
{
Expand Down Expand Up @@ -155,7 +157,7 @@ public function addTemplateData($data)
*/
public function setQueueStartAtByString($startAt)
{
if(is_null($startAt) || $startAt == '') {
if (is_null($startAt) || $startAt == '') {
$this->setQueueStartAt(null);
} else {
$locale = Mage::app()->getLocale();
Expand All @@ -164,7 +166,7 @@ public function setQueueStartAtByString($startAt)
$this->setQueueStartAt(Mage::getModel('core/date')->gmtDate(null, $time));
}
return $this;
}
}

/**
* Send messages to subscribers for this queue
Expand All @@ -173,9 +175,9 @@ public function setQueueStartAtByString($startAt)
* @param array $additionalVariables
* @return $this
*/
public function sendPerSubscriber($count=20, array $additionalVariables=array())
public function sendPerSubscriber($count = 20, array $additionalVariables = array())
{
if($this->getQueueStatus()!=self::STATUS_SENDING
if ($this->getQueueStatus()!=self::STATUS_SENDING
&& ($this->getQueueStatus()!=self::STATUS_NEVER && $this->getQueueStartAt())
) {
return $this;
Expand All @@ -186,15 +188,13 @@ public function sendPerSubscriber($count=20, array $additionalVariables=array())
return $this;
}

/** @var Mage_Newsletter_Model_Resource_Subscriber_Collection $collection */
$collection = $this->getSubscribersCollection()
->useOnlyUnsent()
->showCustomerInfo()
->setPageSize($count)
->setCurPage(1)
->load();

/** @var Mage_Core_Model_Email_Template $sender */
$sender = Mage::getModel('core/email_template');
$sender->setSenderName($this->getNewsletterSenderName())
->setSenderEmail($this->getNewsletterSenderEmail())
Expand All @@ -204,15 +204,16 @@ public function sendPerSubscriber($count=20, array $additionalVariables=array())
->setTemplateStyles($this->getNewsletterStyles())
->setTemplateFilter(Mage::helper('newsletter')->getTemplateProcessor());

foreach($collection->getItems() as $item) {
/** @var Mage_Newsletter_Model_Subscriber $item */
foreach ($collection->getItems() as $item) {
$email = $item->getSubscriberEmail();
$name = $item->getSubscriberFullName();

$sender->emulateDesign($item->getStoreId());
$successSend = $sender->send($email, $name, array('subscriber' => $item));
$sender->revertDesign();

if($successSend) {
if ($successSend) {
$item->received($this);
} else {
$problem = Mage::getModel('newsletter/problem');
Expand All @@ -225,7 +226,7 @@ public function sendPerSubscriber($count=20, array $additionalVariables=array())
}
}

if(count($collection->getItems()) < $count-1 || count($collection->getItems()) == 0) {
if (count($collection->getItems()) < $count-1 || count($collection->getItems()) == 0) {
$this->_finishQueue();
}
return $this;
Expand Down Expand Up @@ -288,7 +289,6 @@ public function setSaveTemplateFlag($value)
/**
* Getter for save template flag.
*
* @param void
* @return boolean
* @deprecated since 1.4.0.1
*/
Expand All @@ -312,7 +312,6 @@ public function setSaveStoresFlag($value)
/**
* Getter for save stores flag.
*
* @param void
* @return boolean
*/
public function getSaveStoresFlag()
Expand All @@ -323,7 +322,7 @@ public function getSaveStoresFlag()
/**
* Setter for stores of queue.
*
* @param array
* @param array $storesIds
* @return $this
*/
public function setStores(array $storesIds)
Expand All @@ -340,7 +339,7 @@ public function setStores(array $storesIds)
*/
public function getStores()
{
if(!$this->_stores) {
if (!$this->_stores) {
$this->_stores = $this->_getResource()->getStores($this);
}

Expand All @@ -366,8 +365,8 @@ public function getTemplate()
*
* @return int|string
*/
public function getType(){
public function getType()
{
return $this->getNewsletterType();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,17 @@
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/


/**
* Newsletter problems collection
*
* @category Mage
* @package Mage_Newsletter
* @author Magento Core Team <core@magentocommerce.com>
*
* @method Mage_Newsletter_Model_Problem[] getItems()
* @method Mage_Newsletter_Model_Problem[] getItemsByColumnValue(string $column, string $value)
* @method $this setCustomerFirstName(string $value)
* @method $this setCustomerLastName(string $value)
*/
class Mage_Newsletter_Model_Resource_Problem_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
{
Expand Down Expand Up @@ -64,7 +68,8 @@ protected function _construct()
*/
public function addSubscriberInfo()
{
$this->getSelect()->joinLeft(array('subscriber'=>$this->getTable('newsletter/subscriber')),
$this->getSelect()->joinLeft(
array('subscriber'=>$this->getTable('newsletter/subscriber')),
'main_table.subscriber_id = subscriber.subscriber_id',
array('subscriber_email','customer_id','subscriber_status')
);
Expand All @@ -81,11 +86,14 @@ public function addSubscriberInfo()
*/
public function addQueueInfo()
{
$this->getSelect()->joinLeft(array('queue'=>$this->getTable('newsletter/queue')),
$this->getSelect()->joinLeft(
array('queue'=>$this->getTable('newsletter/queue')),
'main_table.queue_id = queue.queue_id',
array('queue_start_at', 'queue_finish_at')
)
->joinLeft(array('template'=>$this->getTable('newsletter/template')), 'queue.template_id = template.template_id',
->joinLeft(
array('template'=>$this->getTable('newsletter/template')),
'queue.template_id = template.template_id',
array('template_subject','template_code','template_sender_name','template_sender_email')
);
return $this;
Expand Down
9 changes: 4 additions & 5 deletions app/code/core/Mage/Newsletter/Model/Resource/Queue.php
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,7 @@ public function addSubscribersToQueue(Mage_Newsletter_Model_Queue $queue, array
$adapter->insert($this->getTable('newsletter/queue_link'), $data);
}
$adapter->commit();
}
catch (Exception $e) {
} catch (Exception $e) {
$adapter->rollBack();
}
}
Expand All @@ -103,8 +102,7 @@ public function removeSubscribersFromQueue(Mage_Newsletter_Model_Queue $queue)
);

$adapter->commit();
}
catch (Exception $e) {
} catch (Exception $e) {
$adapter->rollBack();
}
}
Expand Down Expand Up @@ -147,6 +145,7 @@ public function setStores(Mage_Newsletter_Model_Queue $queue)

$subscriberIds = array();

/** @var Mage_Newsletter_Model_Subscriber $subscriber */
foreach ($subscribers as $subscriber) {
$subscriberIds[] = $subscriber->getId();
}
Expand Down Expand Up @@ -180,7 +179,7 @@ public function getStores(Mage_Newsletter_Model_Queue $queue)
/**
* Saving template after saving queue action
*
* @param Mage_Core_Model_Abstract $queue
* @param Mage_Core_Model_Abstract|Mage_Newsletter_Model_Queue $queue
* @return $this
*/
protected function _afterSave(Mage_Core_Model_Abstract $queue)
Expand Down
Loading