diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email.php index c7926f5606014216ecbeda3bf6ab7c91171a0554..60228f52f121f243a6ba7d5d5cc738586dffdc58 100644 --- a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email.php +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email.php @@ -1,26 +1,7 @@ <?php -class FreeLunchLabs_MailGun_Model_Resource_Email extends Mage_Core_Model_Resource_Db_Abstract -{ - protected function _construct() - { - $this->_init('freelunchlabs_mailgun/email', 'id'); - } - - public function deleteEmailTrackingLogs($days = false) { - if($days) { - $daysPrior = date("Y-m-d H:i:s", Mage::getModel('core/date')->timestamp(time() - (86400 * $days))); - $where = " WHERE date_sent < '{$daysPrior}'"; - } else { - $where = ""; - } - - $query = "DELETE FROM {$this->getMainTable()}" . $where; - - Mage::getSingleton('core/resource') - ->getConnection('core_write') - ->query($query); - - } - +if (version_compare(Mage::getVersion(), '1.10', '>=')) { + class FreeLunchLabs_MailGun_Model_Resource_Email extends FreeLunchLabs_MailGun_Model_Resource_Email_V2 {} +} else { + class FreeLunchLabs_MailGun_Model_Resource_Email extends FreeLunchLabs_MailGun_Model_Resource_Email_V1 {} } diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection.php index 3e0b54bef884805507689bed2cd7f7e914a7656a..412441ac78bdfdb3bbbf172b875981bdd535facd 100644 --- a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection.php +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection.php @@ -1,38 +1,7 @@ <?php -class FreeLunchLabs_MailGun_Model_Resource_Email_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract -{ - protected function _construct() - { - parent::_construct(); - - $this->_init('freelunchlabs_mailgun/email'); - } - - public function getGridCollection() { - //Fields - $this->addFieldToSelect('id'); - $this->addFieldToSelect('subject'); - $this->addFieldToSelect('email_address'); - $this->addFieldToSelect('mailgun_id'); - $this->addFieldToSelect('date_sent'); - $this->addFieldToSelect('customer_id'); - - //Get latest status - $this->getSelect()->joinLeft( - array('me1' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()), - 'main_table.id = me1.email_id', - 'event_type as current_status' - ); - - $this->getSelect()->joinLeft( - array('me2' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()), - '(main_table.id = me2.email_id AND (me1.timestamp < me2.timestamp OR me1.timestamp = me2.timestamp AND me1.id < me2.id))', - false - ); - - $this->getSelect()->where('me2.id IS NULL'); - - return $this; - } -} \ No newline at end of file +if (version_compare(Mage::getVersion(), '1.10', '>=')) { + class FreeLunchLabs_MailGun_Model_Resource_Email_Collection extends FreeLunchLabs_MailGun_Model_Resource_Email_Collection_V2 {} +} else { + class FreeLunchLabs_MailGun_Model_Resource_Email_Collection extends FreeLunchLabs_MailGun_Model_Resource_Email_Collection_V1 {} +} diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V1.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V1.php new file mode 100644 index 0000000000000000000000000000000000000000..3594b6ebc1abae6124dfe1c716fd997b80b63cbf --- /dev/null +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V1.php @@ -0,0 +1,37 @@ +<?php + +class FreeLunchLabs_MailGun_Model_Resource_Email_Collection_V1 extends Mage_Core_Model_Resource_Db_Collection_Abstract +{ + protected function _construct() { + parent::_construct(); + + $this->_init('freelunchlabs_mailgun/email'); + } + + public function getGridCollection() { + // Fields + $this->addFieldToSelect('id'); + $this->addFieldToSelect('subject'); + $this->addFieldToSelect('email_address'); + $this->addFieldToSelect('mailgun_id'); + $this->addFieldToSelect('date_sent'); + $this->addFieldToSelect('customer_id'); + + // Get latest status + $this->getSelect()->joinLeft( + array('me1' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()), + 'main_table.id = me1.email_id', + 'event_type as current_status' + ); + + $this->getSelect()->joinLeft( + array('me2' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()), + '(main_table.id = me2.email_id AND (me1.timestamp < me2.timestamp OR me1.timestamp = me2.timestamp AND me1.id < me2.id))', + false + ); + + $this->getSelect()->where('me2.id IS NULL'); + + return $this; + } +} diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V2.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V2.php new file mode 100644 index 0000000000000000000000000000000000000000..b297459e45d9f1ca50e5fe76b966c83ea271e6e2 --- /dev/null +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/Collection/V2.php @@ -0,0 +1,37 @@ +<?php + +class FreeLunchLabs_MailGun_Model_Resource_Email_Collection_V2 extends Mage_Core_Model_Mysql4_Collection_Abstract +{ + protected function _construct() { + parent::_construct(); + + $this->_init('freelunchlabs_mailgun/email'); + } + + public function getGridCollection() { + // Fields + $this->addFieldToSelect('id'); + $this->addFieldToSelect('subject'); + $this->addFieldToSelect('email_address'); + $this->addFieldToSelect('mailgun_id'); + $this->addFieldToSelect('date_sent'); + $this->addFieldToSelect('customer_id'); + + // Get latest status + $this->getSelect()->joinLeft( + array('me1' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()), + 'main_table.id = me1.email_id', + 'event_type as current_status' + ); + + $this->getSelect()->joinLeft( + array('me2' => Mage::getResourceModel('freelunchlabs_mailgun/event')->getMainTable()), + '(main_table.id = me2.email_id AND (me1.timestamp < me2.timestamp OR me1.timestamp = me2.timestamp AND me1.id < me2.id))', + false + ); + + $this->getSelect()->where('me2.id IS NULL'); + + return $this; + } +} diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V1.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V1.php new file mode 100644 index 0000000000000000000000000000000000000000..1de4748b4edd75cea397e12a94fed35d1268fd1b --- /dev/null +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V1.php @@ -0,0 +1,23 @@ +<?php + +class FreeLunchLabs_MailGun_Model_Resource_Email_V1 extends Mage_Core_Model_Resource_Db_Abstract +{ + protected function _construct() { + $this->_init('freelunchlabs_mailgun/email', 'id'); + } + + public function deleteEmailTrackingLogs($days = false) { + if ($days) { + $daysPrior = date("Y-m-d H:i:s", Mage::getModel('core/date')->timestamp(time() - (86400 * $days))); + $where = " WHERE date_sent < '{$daysPrior}'"; + } else { + $where = ""; + } + + $query = "DELETE FROM {$this->getMainTable()}" . $where; + + Mage::getSingleton('core/resource') + ->getConnection('core_write') + ->query($query); + } +} diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V2.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V2.php new file mode 100644 index 0000000000000000000000000000000000000000..2ff4c0656683e92aedd4725d789ba1985251a903 --- /dev/null +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Email/V2.php @@ -0,0 +1,23 @@ +<?php + +class FreeLunchLabs_MailGun_Model_Resource_Email_V2 extends Mage_Core_Model_Mysql4_Abstract +{ + protected function _construct() { + $this->_init('freelunchlabs_mailgun/email', 'id'); + } + + public function deleteEmailTrackingLogs($days = false) { + if ($days) { + $daysPrior = date("Y-m-d H:i:s", Mage::getModel('core/date')->timestamp(time() - (86400 * $days))); + $where = " WHERE date_sent < '{$daysPrior}'"; + } else { + $where = ""; + } + + $query = "DELETE FROM {$this->getMainTable()}" . $where; + + Mage::getSingleton('core/resource') + ->getConnection('core_write') + ->query($query); + } +} diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event.php index 8296cd27750212370ee27d24592cb9f192118525..34eaebf42c3a637e4bb10d580e0391f97ccd70c3 100644 --- a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event.php +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event.php @@ -1,10 +1,7 @@ <?php -class FreeLunchLabs_MailGun_Model_Resource_Event extends Mage_Core_Model_Resource_Db_Abstract -{ - protected function _construct() - { - $this->_init('freelunchlabs_mailgun/event', 'id'); - } - +if (version_compare(Mage::getVersion(), '1.10', '>=')) { + class FreeLunchLabs_MailGun_Model_Resource_Event extends FreeLunchLabs_MailGun_Model_Resource_Event_V2 {} +} else { + class FreeLunchLabs_MailGun_Model_Resource_Event extends FreeLunchLabs_MailGun_Model_Resource_Event_V1 {} } diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection.php index 3e0cf8682b08f0d3f32ff880c1480bd52a83d491..6cc28785b78c9c8ec72c12341b1ae0566e3158fc 100644 --- a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection.php +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection.php @@ -1,11 +1,7 @@ <?php -class FreeLunchLabs_MailGun_Model_Resource_Event_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract -{ - protected function _construct() - { - parent::_construct(); - - $this->_init('freelunchlabs_mailgun/event'); - } -} \ No newline at end of file +if (version_compare(Mage::getVersion(), '1.10', '>=')) { + class FreeLunchLabs_MailGun_Model_Resource_Event_Collection extends FreeLunchLabs_MailGun_Model_Resource_Event_Collection_V2 {} +} else { + class FreeLunchLabs_MailGun_Model_Resource_Event_Collection extends FreeLunchLabs_MailGun_Model_Resource_Event_Collection_V1 {} +} diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V1.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V1.php new file mode 100644 index 0000000000000000000000000000000000000000..8749a8141d1901e5ea335412d560a29e34549c21 --- /dev/null +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V1.php @@ -0,0 +1,10 @@ +<?php + +class FreeLunchLabs_MailGun_Model_Resource_Event_Collection_V1 extends Mage_Core_Model_Resource_Db_Collection_Abstract +{ + protected function _construct() { + parent::_construct(); + + $this->_init('freelunchlabs_mailgun/event'); + } +} diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V2.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V2.php new file mode 100644 index 0000000000000000000000000000000000000000..7b452e770bbcb3f47b87138d7dd934fac170d697 --- /dev/null +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/Collection/V2.php @@ -0,0 +1,10 @@ +<?php + +class FreeLunchLabs_MailGun_Model_Resource_Event_Collection_V2 extends Mage_Core_Model_Mysql4_Collection_Abstract +{ + protected function _construct() { + parent::_construct(); + + $this->_init('freelunchlabs_mailgun/event'); + } +} diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V1.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V1.php new file mode 100644 index 0000000000000000000000000000000000000000..43a2c72467ce5f77e448d7f46e914d70339c59f9 --- /dev/null +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V1.php @@ -0,0 +1,8 @@ +<?php + +class FreeLunchLabs_MailGun_Model_Resource_Event_V1 extends Mage_Core_Model_Resource_Db_Abstract +{ + protected function _construct() { + $this->_init('freelunchlabs_mailgun/event', 'id'); + } +} diff --git a/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V2.php b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V2.php new file mode 100644 index 0000000000000000000000000000000000000000..e08c902a8aee98385d473000d102cd686475d968 --- /dev/null +++ b/app/code/community/FreeLunchLabs/MailGun/Model/Resource/Event/V2.php @@ -0,0 +1,8 @@ +<?php + +class FreeLunchLabs_MailGun_Model_Resource_Event_V2 extends Mage_Core_Model_Mysql4_Abstract +{ + protected function _construct() { + $this->_init('freelunchlabs_mailgun/event', 'id'); + } +}