DigitalPianism_CampaignMonitor - Version 0.7.6

Version Notes

- Bug fixes regarding errors and sessions.
- Remove unused variables.
- PHPDoc.

Download this release

Release Info

Developer Digital Pianism
Extension DigitalPianism_CampaignMonitor
Version 0.7.6
Comparing to
See all releases


Code changes from version 0.7.5 to 0.7.6

Files changed (18) hide show
  1. app/code/community/DigitalPianism/CampaignMonitor/Block/Adminhtml/System/Config/Form/Field/Auth.php +8 -0
  2. app/code/community/DigitalPianism/CampaignMonitor/Block/Adminhtml/System/Config/Form/Field/Refreshtoken.php +8 -0
  3. app/code/community/DigitalPianism/CampaignMonitor/Block/Adminhtml/System/Config/Source/Authtype.php +4 -0
  4. app/code/community/DigitalPianism/CampaignMonitor/Block/Linkedattributes.php +13 -1
  5. app/code/community/DigitalPianism/CampaignMonitor/Helper/Data.php +27 -6
  6. app/code/community/DigitalPianism/CampaignMonitor/Model/Auth.php +19 -3
  7. app/code/community/DigitalPianism/CampaignMonitor/Model/Checkout/Observer.php +8 -27
  8. app/code/community/DigitalPianism/CampaignMonitor/Model/Checkout/Type/Onepage.php +8 -0
  9. app/code/community/DigitalPianism/CampaignMonitor/Model/Customer/Observer.php +13 -4
  10. app/code/community/DigitalPianism/CampaignMonitor/Model/System/Config/Source/Authtype.php +7 -0
  11. app/code/community/DigitalPianism/CampaignMonitor/controllers/AdminhookController.php +6 -3
  12. app/code/community/DigitalPianism/CampaignMonitor/controllers/Adminhtml/AuthController.php +15 -3
  13. app/code/community/DigitalPianism/CampaignMonitor/controllers/AuthController.php +4 -0
  14. app/code/community/DigitalPianism/CampaignMonitor/controllers/HookController.php +5 -2
  15. app/code/community/DigitalPianism/CampaignMonitor/controllers/Newsletter/SubscriberController.php +7 -3
  16. app/code/community/DigitalPianism/CampaignMonitor/controllers/UnsubscribeController.php +8 -4
  17. app/code/community/DigitalPianism/CampaignMonitor/etc/config.xml +1 -1
  18. package.xml +7 -7
app/code/community/DigitalPianism/CampaignMonitor/Block/Adminhtml/System/Config/Form/Field/Auth.php CHANGED
@@ -1,9 +1,17 @@
1
  <?php
 
 
 
 
2
  class DigitalPianism_CampaignMonitor_Block_Adminhtml_System_Config_Form_Field_Auth extends Mage_Adminhtml_Block_System_Config_Form_Field
3
  {
4
  // Template to the button
5
  protected $_template = "digitalpianism/campaignmonitor/system/config/form/field/auth.phtml";
6
 
 
 
 
 
7
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
8
  {
9
  return $this->_toHtml();
1
  <?php
2
+
3
+ /**
4
+ * Class DigitalPianism_CampaignMonitor_Block_Adminhtml_System_Config_Form_Field_Auth
5
+ */
6
  class DigitalPianism_CampaignMonitor_Block_Adminhtml_System_Config_Form_Field_Auth extends Mage_Adminhtml_Block_System_Config_Form_Field
7
  {
8
  // Template to the button
9
  protected $_template = "digitalpianism/campaignmonitor/system/config/form/field/auth.phtml";
10
 
11
+ /**
12
+ * @param Varien_Data_Form_Element_Abstract $element
13
+ * @return string
14
+ */
15
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
16
  {
17
  return $this->_toHtml();
app/code/community/DigitalPianism/CampaignMonitor/Block/Adminhtml/System/Config/Form/Field/Refreshtoken.php CHANGED
@@ -1,9 +1,17 @@
1
  <?php
 
 
 
 
2
  class DigitalPianism_CampaignMonitor_Block_Adminhtml_System_Config_Form_Field_Refreshtoken extends Mage_Adminhtml_Block_System_Config_Form_Field
3
  {
4
  // Template to the button
5
  protected $_template = "digitalpianism/campaignmonitor/system/config/form/field/refreshtoken.phtml";
6
 
 
 
 
 
7
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
8
  {
9
  return $this->_toHtml();
1
  <?php
2
+
3
+ /**
4
+ * Class DigitalPianism_CampaignMonitor_Block_Adminhtml_System_Config_Form_Field_Refreshtoken
5
+ */
6
  class DigitalPianism_CampaignMonitor_Block_Adminhtml_System_Config_Form_Field_Refreshtoken extends Mage_Adminhtml_Block_System_Config_Form_Field
7
  {
8
  // Template to the button
9
  protected $_template = "digitalpianism/campaignmonitor/system/config/form/field/refreshtoken.phtml";
10
 
11
+ /**
12
+ * @param Varien_Data_Form_Element_Abstract $element
13
+ * @return string
14
+ */
15
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
16
  {
17
  return $this->_toHtml();
app/code/community/DigitalPianism/CampaignMonitor/Block/Adminhtml/System/Config/Source/Authtype.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  class DigitalPianism_CampaignMonitor_Block_Adminhtml_System_Config_Source_Authtype extends Mage_Adminhtml_Block_System_Config_Form_Field
3
  {
4
  /**
1
  <?php
2
+
3
+ /**
4
+ * Class DigitalPianism_CampaignMonitor_Block_Adminhtml_System_Config_Source_Authtype
5
+ */
6
  class DigitalPianism_CampaignMonitor_Block_Adminhtml_System_Config_Source_Authtype extends Mage_Adminhtml_Block_System_Config_Form_Field
7
  {
8
  /**
app/code/community/DigitalPianism/CampaignMonitor/Block/Linkedattributes.php CHANGED
@@ -1,8 +1,15 @@
1
- <?php
 
 
 
 
2
  class DigitalPianism_CampaignMonitor_Block_Linkedattributes extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
3
  {
4
  protected $magentoOptions;
5
 
 
 
 
6
  public function __construct()
7
  {
8
  $this->addColumn('magento', array(
@@ -73,6 +80,11 @@ class DigitalPianism_CampaignMonitor_Block_Linkedattributes extends Mage_Adminht
73
  $this->magentoOptions['DIGITALPIANISM-shipping-country_id'] = 'Shipping Address: Country';
74
  }
75
 
 
 
 
 
 
76
  protected function _renderCellTemplate($columnName)
77
  {
78
  if (empty($this->_columns[$columnName])) {
1
+ <?php
2
+
3
+ /**
4
+ * Class DigitalPianism_CampaignMonitor_Block_Linkedattributes
5
+ */
6
  class DigitalPianism_CampaignMonitor_Block_Linkedattributes extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
7
  {
8
  protected $magentoOptions;
9
 
10
+ /**
11
+ *
12
+ */
13
  public function __construct()
14
  {
15
  $this->addColumn('magento', array(
80
  $this->magentoOptions['DIGITALPIANISM-shipping-country_id'] = 'Shipping Address: Country';
81
  }
82
 
83
+ /**
84
+ * @param string $columnName
85
+ * @return string
86
+ * @throws Exception
87
+ */
88
  protected function _renderCellTemplate($columnName)
89
  {
90
  if (empty($this->_columns[$columnName])) {
app/code/community/DigitalPianism/CampaignMonitor/Helper/Data.php CHANGED
@@ -2,6 +2,9 @@
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_lists.php";
3
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_general.php";
4
 
 
 
 
5
  class DigitalPianism_CampaignMonitor_Helper_Data extends Mage_Core_Helper_Abstract
6
  {
7
  const CAMPAIGNMONITOR_CONFIG_DATA_KEY = 'newsletter/campaignmonitor/campaignmonitor_data';
@@ -21,7 +24,10 @@ class DigitalPianism_CampaignMonitor_Helper_Data extends Mage_Core_Helper_Abstra
21
  /*
22
  * Check if the auth type is OAuth
23
  */
24
- public function isOAuth()
 
 
 
25
  {
26
  if (Mage::getStoreConfig('newsletter/campaignmonitor/authentication_type') == "oauth") return true;
27
  else return false;
@@ -30,7 +36,10 @@ class DigitalPianism_CampaignMonitor_Helper_Data extends Mage_Core_Helper_Abstra
30
  /*
31
  * Retrieve the API Key
32
  */
33
- public function getApiKey()
 
 
 
34
  {
35
  return trim(Mage::getStoreConfig('newsletter/campaignmonitor/api_key'));
36
  }
@@ -38,7 +47,10 @@ class DigitalPianism_CampaignMonitor_Helper_Data extends Mage_Core_Helper_Abstra
38
  /*
39
  * Retrieve the List ID
40
  */
41
- public function getListId()
 
 
 
42
  {
43
  return trim(Mage::getStoreConfig('newsletter/campaignmonitor/list_id'));
44
  }
@@ -46,7 +58,10 @@ class DigitalPianism_CampaignMonitor_Helper_Data extends Mage_Core_Helper_Abstra
46
  /*
47
  * Retrieve the Client ID
48
  */
49
- public function getClientId()
 
 
 
50
  {
51
  return trim(Mage::getStoreConfig('newsletter/campaignmonitor/client_id'));
52
  }
@@ -54,13 +69,20 @@ class DigitalPianism_CampaignMonitor_Helper_Data extends Mage_Core_Helper_Abstra
54
  /*
55
  * Retrieve the Client Secret
56
  */
57
- public function getClientSecret()
 
 
 
58
  {
59
  return trim(Mage::getStoreConfig('newsletter/campaignmonitor/client_secret'));
60
  }
61
 
62
  // get array of linked attributes from the config settings and
63
  // populate it
 
 
 
 
64
  public static function generateCustomFields($customer)
65
  {
66
  $linkedAttributes = @unserialize(Mage::getStoreConfig('newsletter/campaignmonitor/m_to_cm_attributes',
@@ -101,7 +123,6 @@ class DigitalPianism_CampaignMonitor_Helper_Data extends Mage_Core_Helper_Abstra
101
  }
102
  else if(strncmp('DIGITALPIANISM', $magentoAtt, 6) == 0)
103
  {
104
- $d = false;
105
  // 15 == strlen('DIGITALPIANISM-billing-')
106
  if(strncmp('DIGITALPIANISM-billing', $magentoAtt, 14) == 0)
107
  {
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_lists.php";
3
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_general.php";
4
 
5
+ /**
6
+ * Class DigitalPianism_CampaignMonitor_Helper_Data
7
+ */
8
  class DigitalPianism_CampaignMonitor_Helper_Data extends Mage_Core_Helper_Abstract
9
  {
10
  const CAMPAIGNMONITOR_CONFIG_DATA_KEY = 'newsletter/campaignmonitor/campaignmonitor_data';
24
  /*
25
  * Check if the auth type is OAuth
26
  */
27
+ /**
28
+ * @return bool
29
+ */
30
+ public function isOAuth()
31
  {
32
  if (Mage::getStoreConfig('newsletter/campaignmonitor/authentication_type') == "oauth") return true;
33
  else return false;
36
  /*
37
  * Retrieve the API Key
38
  */
39
+ /**
40
+ * @return string
41
+ */
42
+ public function getApiKey()
43
  {
44
  return trim(Mage::getStoreConfig('newsletter/campaignmonitor/api_key'));
45
  }
47
  /*
48
  * Retrieve the List ID
49
  */
50
+ /**
51
+ * @return string
52
+ */
53
+ public function getListId()
54
  {
55
  return trim(Mage::getStoreConfig('newsletter/campaignmonitor/list_id'));
56
  }
58
  /*
59
  * Retrieve the Client ID
60
  */
61
+ /**
62
+ * @return string
63
+ */
64
+ public function getClientId()
65
  {
66
  return trim(Mage::getStoreConfig('newsletter/campaignmonitor/client_id'));
67
  }
69
  /*
70
  * Retrieve the Client Secret
71
  */
72
+ /**
73
+ * @return string
74
+ */
75
+ public function getClientSecret()
76
  {
77
  return trim(Mage::getStoreConfig('newsletter/campaignmonitor/client_secret'));
78
  }
79
 
80
  // get array of linked attributes from the config settings and
81
  // populate it
82
+ /**
83
+ * @param $customer
84
+ * @return array
85
+ */
86
  public static function generateCustomFields($customer)
87
  {
88
  $linkedAttributes = @unserialize(Mage::getStoreConfig('newsletter/campaignmonitor/m_to_cm_attributes',
123
  }
124
  else if(strncmp('DIGITALPIANISM', $magentoAtt, 6) == 0)
125
  {
 
126
  // 15 == strlen('DIGITALPIANISM-billing-')
127
  if(strncmp('DIGITALPIANISM-billing', $magentoAtt, 14) == 0)
128
  {
app/code/community/DigitalPianism/CampaignMonitor/Model/Auth.php CHANGED
@@ -1,9 +1,16 @@
1
  <?php
 
 
 
 
2
  class DigitalPianism_CampaignMonitor_Model_Auth
3
  {
4
  const CAMPAIGNMONITOR_SESSION_DATA_KEY = 'campaignmonitor_session_data';
5
  const CAMPAIGNMONITOR_CONFIG_DATA_KEY = 'newsletter/campaignmonitor/campaignmonitor_data';
6
-
 
 
 
7
  public function getUserData()
8
  {
9
  /** @var $session Mage_Core_Model_Session */
@@ -19,18 +26,27 @@ class DigitalPianism_CampaignMonitor_Model_Auth
19
  return $info;
20
  }
21
 
 
 
 
22
  public function isValid()
23
  {
24
  $configDataKey = self::CAMPAIGNMONITOR_CONFIG_DATA_KEY;
25
  return (!!$this->getUserData() || Mage::getStoreConfig($configDataKey, 0));
26
  }
27
 
 
 
 
28
  public function getAccessToken()
29
  {
30
  return $this->getUserData()->access_token;
31
  }
32
-
33
- public function getRefreshToken()
 
 
 
34
  {
35
  return $this->getUserData()->refresh_token;
36
  }
1
  <?php
2
+
3
+ /**
4
+ * Class DigitalPianism_CampaignMonitor_Model_Auth
5
+ */
6
  class DigitalPianism_CampaignMonitor_Model_Auth
7
  {
8
  const CAMPAIGNMONITOR_SESSION_DATA_KEY = 'campaignmonitor_session_data';
9
  const CAMPAIGNMONITOR_CONFIG_DATA_KEY = 'newsletter/campaignmonitor/campaignmonitor_data';
10
+
11
+ /**
12
+ * @return mixed
13
+ */
14
  public function getUserData()
15
  {
16
  /** @var $session Mage_Core_Model_Session */
26
  return $info;
27
  }
28
 
29
+ /**
30
+ * @return bool
31
+ */
32
  public function isValid()
33
  {
34
  $configDataKey = self::CAMPAIGNMONITOR_CONFIG_DATA_KEY;
35
  return (!!$this->getUserData() || Mage::getStoreConfig($configDataKey, 0));
36
  }
37
 
38
+ /**
39
+ * @return mixed
40
+ */
41
  public function getAccessToken()
42
  {
43
  return $this->getUserData()->access_token;
44
  }
45
+
46
+ /**
47
+ * @return mixed
48
+ */
49
+ public function getRefreshToken()
50
  {
51
  return $this->getUserData()->refresh_token;
52
  }
app/code/community/DigitalPianism/CampaignMonitor/Model/Checkout/Observer.php CHANGED
@@ -1,8 +1,15 @@
1
  <?php
2
  // TODO MAPPING
3
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
 
 
 
 
4
  class DigitalPianism_CampaignMonitor_Model_Checkout_Observer
5
  {
 
 
 
6
  public function subscribeCustomer($observer)
7
  {
8
  // Check if the checkbox has been ticked using the sessions
@@ -15,7 +22,6 @@ class DigitalPianism_CampaignMonitor_Model_Checkout_Observer
15
  // if (!$order->getCustomerIsGuest()) return;
16
  // Mage::helper('campaignmonitor')->log('passed');
17
 
18
- $customer = $quote->getCustomer();
19
  $session = Mage::getSingleton('core/session');
20
 
21
  // Get the email using during checking out
@@ -39,20 +45,6 @@ class DigitalPianism_CampaignMonitor_Model_Checkout_Observer
39
 
40
  $listID = Mage::helper('campaignmonitor')->getListId();
41
  $apiKey = Mage::helper('campaignmonitor')->getApiKey();
42
-
43
- // Variables
44
- $firstname = "";
45
- $lastname = "";
46
- $mobile = "";
47
- $state = "";
48
- $postcode = "";
49
- $mobilesubscription = "";
50
- $jobinterest = "";
51
- $preferred_store = "";
52
- $promocode = "";
53
- $periodicity = "";
54
- $dob = "";
55
- $subscriptiondate = date("Y-m-d");
56
 
57
  // Check if already susbcribed
58
  try {
@@ -119,17 +111,6 @@ class DigitalPianism_CampaignMonitor_Model_Checkout_Observer
119
  // We generate the Magento fields
120
  $fullname = $quote->getBillingAddress()->getName();
121
  $fullname = trim($fullname);
122
- $names = explode(" ", $fullname, 2);
123
- if (!empty($names) && isset($names[0]) && isset($names[1]))
124
- {
125
- $firstname = (string) $names[0];
126
- $lastname = (string) $names[1];
127
- }
128
- else
129
- {
130
- $firstname = $fullname;
131
- $lastname = "";
132
- }
133
  $customFields[] = array("Key" => "fullname", "Value" => $fullname);
134
 
135
  // Check the checkout method (logged in, register or guest)
@@ -156,7 +137,7 @@ class DigitalPianism_CampaignMonitor_Model_Checkout_Observer
156
  Mage::helper('campaignmonitor')->refreshToken();
157
  }
158
  // Make the call again
159
- $result = $client->add(array(
160
  "EmailAddress" => $email,
161
  "Name" => $fullname,
162
  "CustomFields" => $customFields,
1
  <?php
2
  // TODO MAPPING
3
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
4
+
5
+ /**
6
+ * Class DigitalPianism_CampaignMonitor_Model_Checkout_Observer
7
+ */
8
  class DigitalPianism_CampaignMonitor_Model_Checkout_Observer
9
  {
10
+ /**
11
+ * @param $observer
12
+ */
13
  public function subscribeCustomer($observer)
14
  {
15
  // Check if the checkbox has been ticked using the sessions
22
  // if (!$order->getCustomerIsGuest()) return;
23
  // Mage::helper('campaignmonitor')->log('passed');
24
 
 
25
  $session = Mage::getSingleton('core/session');
26
 
27
  // Get the email using during checking out
45
 
46
  $listID = Mage::helper('campaignmonitor')->getListId();
47
  $apiKey = Mage::helper('campaignmonitor')->getApiKey();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
 
49
  // Check if already susbcribed
50
  try {
111
  // We generate the Magento fields
112
  $fullname = $quote->getBillingAddress()->getName();
113
  $fullname = trim($fullname);
 
 
 
 
 
 
 
 
 
 
 
114
  $customFields[] = array("Key" => "fullname", "Value" => $fullname);
115
 
116
  // Check the checkout method (logged in, register or guest)
137
  Mage::helper('campaignmonitor')->refreshToken();
138
  }
139
  // Make the call again
140
+ $client->add(array(
141
  "EmailAddress" => $email,
142
  "Name" => $fullname,
143
  "CustomFields" => $customFields,
app/code/community/DigitalPianism/CampaignMonitor/Model/Checkout/Type/Onepage.php CHANGED
@@ -1,7 +1,15 @@
1
  <?php
2
 
 
 
 
3
  class DigitalPianism_CampaignMonitor_Model_Checkout_Type_Onepage extends Mage_Checkout_Model_Type_Onepage
4
  {
 
 
 
 
 
5
  public function saveBilling($data, $customerAddressId)
6
  {
7
  if (isset($data['is_subscribed']) && !empty($data['is_subscribed']))
1
  <?php
2
 
3
+ /**
4
+ * Class DigitalPianism_CampaignMonitor_Model_Checkout_Type_Onepage
5
+ */
6
  class DigitalPianism_CampaignMonitor_Model_Checkout_Type_Onepage extends Mage_Checkout_Model_Type_Onepage
7
  {
8
+ /**
9
+ * @param array $data
10
+ * @param int $customerAddressId
11
+ * @return Mage_Checkout_Model_Type_Onepage
12
+ */
13
  public function saveBilling($data, $customerAddressId)
14
  {
15
  if (isset($data['is_subscribed']) && !empty($data['is_subscribed']))
app/code/community/DigitalPianism/CampaignMonitor/Model/Customer/Observer.php CHANGED
@@ -1,8 +1,14 @@
1
  <?php
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
3
 
 
 
 
4
  class DigitalPianism_CampaignMonitor_Model_Customer_Observer
5
  {
 
 
 
6
  public function check_subscription_status($observer)
7
  {
8
 
@@ -77,7 +83,7 @@ class DigitalPianism_CampaignMonitor_Model_Customer_Observer
77
  Mage::helper('campaignmonitor')->refreshToken();
78
  }
79
  // Make the call again
80
- $result = $client->unsubscribe($oldEmail);
81
  }
82
  }
83
  catch(Exception $e)
@@ -106,7 +112,7 @@ class DigitalPianism_CampaignMonitor_Model_Customer_Observer
106
  Mage::helper('campaignmonitor')->refreshToken();
107
  }
108
  // Make the call again
109
- $result = $client->add(array(
110
  "EmailAddress" => $newEmail,
111
  "Name" => $name,
112
  "CustomFields" => $customFields,
@@ -134,7 +140,7 @@ class DigitalPianism_CampaignMonitor_Model_Customer_Observer
134
  Mage::helper('campaignmonitor')->refreshToken();
135
  }
136
  // Make the call again
137
- $result = $client->unsubscribe($oldEmail);
138
  }
139
  }
140
  catch(Exception $e)
@@ -146,6 +152,9 @@ class DigitalPianism_CampaignMonitor_Model_Customer_Observer
146
  }
147
  }
148
 
 
 
 
149
  public function customer_deleted($observer)
150
  {
151
  $event = $observer->getEvent();
@@ -184,7 +193,7 @@ class DigitalPianism_CampaignMonitor_Model_Customer_Observer
184
  Mage::helper('campaignmonitor')->refreshToken();
185
  }
186
  // Make the call again
187
- $result = $client->unsubscribe($email);
188
  }
189
  }
190
  catch(Exception $e)
1
  <?php
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
3
 
4
+ /**
5
+ * Class DigitalPianism_CampaignMonitor_Model_Customer_Observer
6
+ */
7
  class DigitalPianism_CampaignMonitor_Model_Customer_Observer
8
  {
9
+ /**
10
+ * @param $observer
11
+ */
12
  public function check_subscription_status($observer)
13
  {
14
 
83
  Mage::helper('campaignmonitor')->refreshToken();
84
  }
85
  // Make the call again
86
+ $client->unsubscribe($oldEmail);
87
  }
88
  }
89
  catch(Exception $e)
112
  Mage::helper('campaignmonitor')->refreshToken();
113
  }
114
  // Make the call again
115
+ $client->add(array(
116
  "EmailAddress" => $newEmail,
117
  "Name" => $name,
118
  "CustomFields" => $customFields,
140
  Mage::helper('campaignmonitor')->refreshToken();
141
  }
142
  // Make the call again
143
+ $client->unsubscribe($oldEmail);
144
  }
145
  }
146
  catch(Exception $e)
152
  }
153
  }
154
 
155
+ /**
156
+ * @param $observer
157
+ */
158
  public function customer_deleted($observer)
159
  {
160
  $event = $observer->getEvent();
193
  Mage::helper('campaignmonitor')->refreshToken();
194
  }
195
  // Make the call again
196
+ $client->unsubscribe($email);
197
  }
198
  }
199
  catch(Exception $e)
app/code/community/DigitalPianism/CampaignMonitor/Model/System/Config/Source/Authtype.php CHANGED
@@ -1,6 +1,13 @@
1
  <?php
 
 
 
 
2
  class DigitalPianism_CampaignMonitor_Model_System_Config_Source_Authtype
3
  {
 
 
 
4
  public function toOptionArray()
5
  {
6
  return array(
1
  <?php
2
+
3
+ /**
4
+ * Class DigitalPianism_CampaignMonitor_Model_System_Config_Source_Authtype
5
+ */
6
  class DigitalPianism_CampaignMonitor_Model_System_Config_Source_Authtype
7
  {
8
+ /**
9
+ * @return array
10
+ */
11
  public function toOptionArray()
12
  {
13
  return array(
app/code/community/DigitalPianism/CampaignMonitor/controllers/AdminhookController.php CHANGED
@@ -2,10 +2,14 @@
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
3
  include_once Mage::getModuleDir('controllers','Mage_Newsletter').DS."SubscriberController.php";
4
 
 
 
 
5
  class DigitalPianism_CampaignMonitor_ManageController extends Mage_Newsletter_SubscriberController
6
  {
7
  public function massUnsubscribeAction()
8
  {
 
9
  Mage::helper('campaignmonitor')->log("massUnsubscribeAction");
10
 
11
  $subscribersIds = $this->getRequest()->getParam('subscriber');
@@ -60,7 +64,7 @@ class DigitalPianism_CampaignMonitor_ManageController extends Mage_Newsletter_Su
60
  Mage::helper('campaignmonitor')->refreshToken();
61
  }
62
  // Make the call again
63
- $result = $client->unsubscribe($email);
64
  }
65
  }
66
  catch (Exception $e)
@@ -77,5 +81,4 @@ class DigitalPianism_CampaignMonitor_ManageController extends Mage_Newsletter_Su
77
 
78
  parent::massUnsubscribeAction();
79
  }
80
- }
81
- ?>
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
3
  include_once Mage::getModuleDir('controllers','Mage_Newsletter').DS."SubscriberController.php";
4
 
5
+ /**
6
+ * Class DigitalPianism_CampaignMonitor_ManageController
7
+ */
8
  class DigitalPianism_CampaignMonitor_ManageController extends Mage_Newsletter_SubscriberController
9
  {
10
  public function massUnsubscribeAction()
11
  {
12
+ $session = Mage::getSingleton('core/session');
13
  Mage::helper('campaignmonitor')->log("massUnsubscribeAction");
14
 
15
  $subscribersIds = $this->getRequest()->getParam('subscriber');
64
  Mage::helper('campaignmonitor')->refreshToken();
65
  }
66
  // Make the call again
67
+ $client->unsubscribe($email);
68
  }
69
  }
70
  catch (Exception $e)
81
 
82
  parent::massUnsubscribeAction();
83
  }
84
+ }
 
app/code/community/DigitalPianism/CampaignMonitor/controllers/Adminhtml/AuthController.php CHANGED
@@ -1,6 +1,9 @@
1
  <?php
2
  require_once MAGENTO_ROOT . "/lib/createsend/csrest_general.php";
3
 
 
 
 
4
  class DigitalPianism_CampaignMonitor_Adminhtml_AuthController extends Mage_Adminhtml_Controller_Action
5
  {
6
 
@@ -32,7 +35,7 @@ class DigitalPianism_CampaignMonitor_Adminhtml_AuthController extends Mage_Admin
32
  public function callbackAction()
33
  {
34
  $code = $this->getRequest()->getParam('code');
35
- $state = $this->getRequest()->getParam('state');
36
  $response = $this->_getAccessToken($code);
37
  if ($response)
38
  {
@@ -44,13 +47,17 @@ class DigitalPianism_CampaignMonitor_Adminhtml_AuthController extends Mage_Admin
44
  }
45
  else
46
  {
47
- // Error
48
  }
49
 
50
  $redirectUrl = Mage::helper('campaignmonitor')->getAdminConfigSectionUrl();
51
  $this->_redirectUrl($redirectUrl);
52
  }
53
 
 
 
 
 
54
  protected function _getAccessToken($code)
55
  {
56
  $result = CS_REST_General::exchange_token(
@@ -61,10 +68,11 @@ class DigitalPianism_CampaignMonitor_Adminhtml_AuthController extends Mage_Admin
61
  );
62
 
63
  if ($result->was_successful()) {
 
64
  $access_token = $result->response->access_token;
65
  $expires_in = $result->response->expires_in;
66
  $refresh_token = $result->response->refresh_token;
67
-
68
  return $result->response;
69
  } else {
70
  echo 'An error occurred:\n';
@@ -89,6 +97,10 @@ class DigitalPianism_CampaignMonitor_Adminhtml_AuthController extends Mage_Admin
89
  return $url;
90
  }
91
 
 
 
 
 
92
  protected function _getAuthRedirectUri()
93
  {
94
  return str_replace('http://','https://',Mage::app()->getStore(1)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK)."campaignmonitor/auth/index");
1
  <?php
2
  require_once MAGENTO_ROOT . "/lib/createsend/csrest_general.php";
3
 
4
+ /**
5
+ * Class DigitalPianism_CampaignMonitor_Adminhtml_AuthController
6
+ */
7
  class DigitalPianism_CampaignMonitor_Adminhtml_AuthController extends Mage_Adminhtml_Controller_Action
8
  {
9
 
35
  public function callbackAction()
36
  {
37
  $code = $this->getRequest()->getParam('code');
38
+ //$state = $this->getRequest()->getParam('state');
39
  $response = $this->_getAccessToken($code);
40
  if ($response)
41
  {
47
  }
48
  else
49
  {
50
+ Mage::helper('campaignmonitor')->log("There has been an error during the callback action to retrieve the access token");
51
  }
52
 
53
  $redirectUrl = Mage::helper('campaignmonitor')->getAdminConfigSectionUrl();
54
  $this->_redirectUrl($redirectUrl);
55
  }
56
 
57
+ /**
58
+ * @param $code
59
+ * @return bool|mixed
60
+ */
61
  protected function _getAccessToken($code)
62
  {
63
  $result = CS_REST_General::exchange_token(
68
  );
69
 
70
  if ($result->was_successful()) {
71
+ /*
72
  $access_token = $result->response->access_token;
73
  $expires_in = $result->response->expires_in;
74
  $refresh_token = $result->response->refresh_token;
75
+ */
76
  return $result->response;
77
  } else {
78
  echo 'An error occurred:\n';
97
  return $url;
98
  }
99
 
100
+ /**
101
+ * @return mixed
102
+ * @throws Mage_Core_Exception
103
+ */
104
  protected function _getAuthRedirectUri()
105
  {
106
  return str_replace('http://','https://',Mage::app()->getStore(1)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK)."campaignmonitor/auth/index");
app/code/community/DigitalPianism/CampaignMonitor/controllers/AuthController.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  class DigitalPianism_CampaignMonitor_AuthController extends Mage_Core_Controller_Front_Action
3
  {
4
  // Frontend redirect URI for the CM OAuth authentication
1
  <?php
2
+
3
+ /**
4
+ * Class DigitalPianism_CampaignMonitor_AuthController
5
+ */
6
  class DigitalPianism_CampaignMonitor_AuthController extends Mage_Core_Controller_Front_Action
7
  {
8
  // Frontend redirect URI for the CM OAuth authentication
app/code/community/DigitalPianism/CampaignMonitor/controllers/HookController.php CHANGED
@@ -2,6 +2,9 @@
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
3
  include_once Mage::getModuleDir('controllers','Mage_Newsletter').DS."SubscriberController.php";
4
 
 
 
 
5
  class DigitalPianism_CampaignMonitor_HookController extends Mage_Newsletter_SubscriberController
6
  {
7
  public function newAction()
@@ -68,7 +71,7 @@ class DigitalPianism_CampaignMonitor_HookController extends Mage_Newsletter_Subs
68
  Mage::helper('campaignmonitor')->refreshToken();
69
  }
70
  // Make the call again
71
- $result = $client->add(array(
72
  "EmailAddress" => $email,
73
  "Name" => $name,
74
  "CustomFields" => $customFields,
@@ -102,7 +105,7 @@ class DigitalPianism_CampaignMonitor_HookController extends Mage_Newsletter_Subs
102
  Mage::helper('campaignmonitor')->refreshToken();
103
  }
104
  // Make the call again
105
- $result = $client->add(array(
106
  "EmailAddress" => $email,
107
  "Name" => "(Guest)",
108
  "Resubscribe" => true // if the subscriber is already unsubscried - subscribe again!
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
3
  include_once Mage::getModuleDir('controllers','Mage_Newsletter').DS."SubscriberController.php";
4
 
5
+ /**
6
+ * Class DigitalPianism_CampaignMonitor_HookController
7
+ */
8
  class DigitalPianism_CampaignMonitor_HookController extends Mage_Newsletter_SubscriberController
9
  {
10
  public function newAction()
71
  Mage::helper('campaignmonitor')->refreshToken();
72
  }
73
  // Make the call again
74
+ $client->add(array(
75
  "EmailAddress" => $email,
76
  "Name" => $name,
77
  "CustomFields" => $customFields,
105
  Mage::helper('campaignmonitor')->refreshToken();
106
  }
107
  // Make the call again
108
+ $client->add(array(
109
  "EmailAddress" => $email,
110
  "Name" => "(Guest)",
111
  "Resubscribe" => true // if the subscriber is already unsubscried - subscribe again!
app/code/community/DigitalPianism/CampaignMonitor/controllers/Newsletter/SubscriberController.php CHANGED
@@ -2,12 +2,17 @@
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
3
  require_once 'Mage/Adminhtml/controllers/Newsletter/SubscriberController.php';
4
 
 
 
 
5
  class DigitalPianism_CampaignMonitor_Newsletter_SubscriberController extends Mage_Adminhtml_Newsletter_SubscriberController
6
  {
7
  public function massUnsubscribeAction()
8
  {
9
  Mage::helper('campaignmonitor')->log("massUnsubscribeAction");
10
 
 
 
11
  $subscribersIds = $this->getRequest()->getParam('subscriber');
12
  if (!is_array($subscribersIds)) {
13
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('newsletter')->__('Please select subscriber(s)'));
@@ -60,7 +65,7 @@ class DigitalPianism_CampaignMonitor_Newsletter_SubscriberController extends Mag
60
  Mage::helper('campaignmonitor')->refreshToken();
61
  }
62
  // Make the call again
63
- $result = $client->unsubscribe($email);
64
  }
65
  }
66
  catch (Exception $e)
@@ -77,5 +82,4 @@ class DigitalPianism_CampaignMonitor_Newsletter_SubscriberController extends Mag
77
 
78
  parent::massUnsubscribeAction();
79
  }
80
- }
81
- ?>
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
3
  require_once 'Mage/Adminhtml/controllers/Newsletter/SubscriberController.php';
4
 
5
+ /**
6
+ * Class DigitalPianism_CampaignMonitor_Newsletter_SubscriberController
7
+ */
8
  class DigitalPianism_CampaignMonitor_Newsletter_SubscriberController extends Mage_Adminhtml_Newsletter_SubscriberController
9
  {
10
  public function massUnsubscribeAction()
11
  {
12
  Mage::helper('campaignmonitor')->log("massUnsubscribeAction");
13
 
14
+ $session = Mage::getSingleton('core/session');
15
+
16
  $subscribersIds = $this->getRequest()->getParam('subscriber');
17
  if (!is_array($subscribersIds)) {
18
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('newsletter')->__('Please select subscriber(s)'));
65
  Mage::helper('campaignmonitor')->refreshToken();
66
  }
67
  // Make the call again
68
+ $client->unsubscribe($email);
69
  }
70
  }
71
  catch (Exception $e)
82
 
83
  parent::massUnsubscribeAction();
84
  }
85
+ }
 
app/code/community/DigitalPianism/CampaignMonitor/controllers/UnsubscribeController.php CHANGED
@@ -1,10 +1,15 @@
1
  <?php
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
3
 
 
 
 
4
  class DigitalPianism_CampaignMonitor_UnsubscribeController extends Mage_Core_Controller_Front_Action
5
  {
6
  public function indexAction()
7
  {
 
 
8
  // Don't do anything if we didn't get the email parameter
9
  if(isset($_GET['email']))
10
  {
@@ -88,7 +93,7 @@ class DigitalPianism_CampaignMonitor_UnsubscribeController extends Mage_Core_Con
88
 
89
  if($result->was_successful())
90
  {
91
- $collection = Mage::getModel('newsletter/subscriber')
92
  ->loadByEmail($email)
93
  ->unsubscribe();
94
  Mage::getSingleton('customer/session')->addSuccess($this->__('You were successfully unsubscribed'));
@@ -113,7 +118,7 @@ class DigitalPianism_CampaignMonitor_UnsubscribeController extends Mage_Core_Con
113
  // 4 = Unconfirmed
114
  if ($subscriberStatus != 3)
115
  {
116
- $unsubscribe = Mage::getModel('newsletter/subscriber')
117
  ->loadByEmail($email)
118
  ->unsubscribe();
119
  Mage::getSingleton('customer/session')->addSuccess($this->__('You were successfully unsubscribed'));
@@ -142,5 +147,4 @@ class DigitalPianism_CampaignMonitor_UnsubscribeController extends Mage_Core_Con
142
  }
143
  $this->_redirect('/');
144
  }
145
- }
146
- ?>
1
  <?php
2
  include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
3
 
4
+ /**
5
+ * Class DigitalPianism_CampaignMonitor_UnsubscribeController
6
+ */
7
  class DigitalPianism_CampaignMonitor_UnsubscribeController extends Mage_Core_Controller_Front_Action
8
  {
9
  public function indexAction()
10
  {
11
+ $session = Mage::getSingleton('core/session');
12
+
13
  // Don't do anything if we didn't get the email parameter
14
  if(isset($_GET['email']))
15
  {
93
 
94
  if($result->was_successful())
95
  {
96
+ Mage::getModel('newsletter/subscriber')
97
  ->loadByEmail($email)
98
  ->unsubscribe();
99
  Mage::getSingleton('customer/session')->addSuccess($this->__('You were successfully unsubscribed'));
118
  // 4 = Unconfirmed
119
  if ($subscriberStatus != 3)
120
  {
121
+ Mage::getModel('newsletter/subscriber')
122
  ->loadByEmail($email)
123
  ->unsubscribe();
124
  Mage::getSingleton('customer/session')->addSuccess($this->__('You were successfully unsubscribed'));
147
  }
148
  $this->_redirect('/');
149
  }
150
+ }
 
app/code/community/DigitalPianism/CampaignMonitor/etc/config.xml CHANGED
@@ -3,7 +3,7 @@
3
 
4
  <modules>
5
  <DigitalPianism_CampaignMonitor>
6
- <version>0.7.5</version>
7
  </DigitalPianism_CampaignMonitor>
8
  </modules>
9
 
3
 
4
  <modules>
5
  <DigitalPianism_CampaignMonitor>
6
+ <version>0.7.6</version>
7
  </DigitalPianism_CampaignMonitor>
8
  </modules>
9
 
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>DigitalPianism_CampaignMonitor</name>
4
- <version>0.7.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
@@ -12,13 +12,13 @@
12
  &lt;p&gt;Campaign Monitor is built for designers who can create great looking emails for themselves and their clients, but need software to send each campaign, track the results and manage their subscribers." www.campaignmonitor.com&lt;/p&gt;&#xD;
13
  &#xD;
14
  &lt;p&gt;This extension integrates Magento with the Campaign Monitor mailing list manager. Users are added to a specified Campaign Monitor email list when they subscribe to the newsletter in Magento, and removed when they unsubscribe. Users are also marked as unsubscribed in Magento when they click an unsubscribe link in a Campaign Monitor email.&lt;/p&gt;</description>
15
- <notes>- Fix bugs with the unsubscribe controller&#xD;
16
- - Fix bug with the backend mass unsubscribe controller&#xD;
17
- - Next release will include a subscribe on checkout feature.</notes>
18
  <authors><author><name>Digital Pianism</name><user>digitalpianism</user><email>contact@digital-pianism.com</email></author></authors>
19
- <date>2014-10-23</date>
20
- <time>10:34:30</time>
21
- <contents><target name="magecommunity"><dir name="DigitalPianism"><dir name="CampaignMonitor"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Auth.php" hash="a95501d852759b07a4f5f5e24743a0e7"/><file name="Refreshtoken.php" hash="8053f23d810219471e581e071bef96c6"/></dir></dir><dir name="Source"><file name="Authtype.php" hash="087491d524ceb6c74470673fca8e612d"/></dir></dir></dir></dir><file name="Linkedattributes.php" hash="3c5d00f9352fa53fbd36243c0d87db6e"/></dir><dir name="Helper"><file name="Data.php" hash="4dd651073df9534bb4a094021d515def"/></dir><dir name="Model"><file name="Auth.php" hash="5f21e27b1b71d778ff49e3e46ab95bd5"/><dir name="Checkout"><file name="Observer.php" hash="4b76c6b2431baed187095b7a1b0e608f"/><dir name="Type"><file name="Onepage.php" hash="32cdc82ead13d07a1d23121b5f0dd995"/></dir></dir><dir name="Customer"><file name="Observer.php" hash="2b6cb4bfdfb63b2e611d5dea60fa667b"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Authtype.php" hash="2bba7379821e48b18d78327d02868b54"/></dir></dir></dir></dir><dir name="controllers"><file name="AdminhookController.php" hash="0598814f0cd09e4fd200520c94f9bad6"/><dir name="Adminhtml"><file name="AuthController.php" hash="fa7a2bbd67293a8145da6acfef5b9ec4"/></dir><file name="AuthController.php" hash="10c1c99b9c4a36455eceddbecee68b26"/><file name="HookController.php" hash="4e93ea76a5eb65bfbc40ef073578f091"/><dir name="Newsletter"><file name="SubscriberController.php" hash="6498dc9c8608370d0ed4103d8067d173"/></dir><file name="UnsubscribeController.php" hash="3060b2242988d3bfbb799d46cb9501c2"/></dir><dir name="etc"><file name="config.xml" hash="4547ae30686b8164e025c845bd34d80a"/><file name="system.xml" hash="bf9b3e5c5f5c622ca69db63664b2bb77"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="DigitalPianism_CampaignMonitor.xml" hash="6044d29d2b2e7d0689315376e3c27acd"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="digitalpianism"><dir name="campaignmonitor"><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="array_dropdown.phtml" hash="ac84db9b1e8b342337a478ecba62e0b1"/><file name="auth.phtml" hash="ec611006cadbb39caff40e5115b78586"/><file name="refreshtoken.phtml" hash="1d43c3e66c3c89a1d857b328eae6997f"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="digitalpianism"><file name="campaignmonitor.xml" hash="d01714d890051c5d01c82ad9624fcba6"/></dir></dir><dir name="template"><dir name="digitalpianism"><dir name="campaignmonitor"><dir name="persistent"><dir name="checkout"><file name="billing.phtml" hash="64b8515cd7eab3136d64ec5a0f2328d2"/><dir name="onepage"><file name="checkoutnewsletter.phtml" hash="ae24dcbc1ee1bcc353533f5ea7c7d572"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="lib"><dir name="createsend"><file name="HISTORY.md" hash="ab283bd0126e8c10edf6da099c80a661"/><file name="LICENSE" hash="e4306d4b6c77f2db816ec4aed73a13c7"/><file name="README.md" hash="90a7855700d85e14211baf5399810a3d"/><file name="RELEASE.md" hash="5efce8234607beab27bf466b23fc4535"/><dir name="class"><file name="base_classes.php" hash="8a3f82c1204d7de080d2f3d15cb70ea9"/><file name="cacert.pem" hash="c29d362201b1bd232898d2b658811db2"/><file name="log.php" hash="11ff6a9006a6386c1cd8880cd3c0f41b"/><file name="serialisation.php" hash="3eb39437970e8787f0ef9ac292b688e6"/><file name="services_json.php" hash="c9e9ef0d35d7d34f9d216344da27915d"/><file name="transport.php" hash="da2967846daf164a70e649c9f2ee0094"/></dir><file name="composer.json" hash="eccad7521596b5fe0d81af51ab2f16a1"/><file name="composer.lock" hash="e64bca0a5accd8086e4e49bf41aa8629"/><file name="csrest_administrators.php" hash="72480342a46e8d82fd44096b4818f090"/><file name="csrest_campaigns.php" hash="38e2c429abaaa4609d30f28622e5fc3f"/><file name="csrest_clients.php" hash="df11ce1c1fd5fd43980db42cb83a6fa3"/><file name="csrest_general.php" hash="b8d1de7d1e435231955cdf8bc0311632"/><file name="csrest_lists.php" hash="42904680a424977d7c6f3211cf0d7a9c"/><file name="csrest_people.php" hash="ff2a14af7e171a11d73bef3d4995f512"/><file name="csrest_segments.php" hash="bac0e031058e7e08ae97906738cc65fc"/><file name="csrest_subscribers.php" hash="b5ad794e2cc2f65a278a8aa9de4af7d7"/><file name="csrest_templates.php" hash="4c94511a505a868eef2f8109ca3c35d6"/><dir name="samples"><dir name="campaign"><file name="create.php" hash="af4016e1b3539b3710d4b8e05bc7001b"/><file name="create_from_template.php" hash="4868b7f363abebc3d9fe9f561e59a743"/><file name="delete.php" hash="b96c2421084e77c241ea270894719aff"/><file name="get_bounces.php" hash="3bd2b2faa8d4b99bf7b9d682ce7402d3"/><file name="get_clicks.php" hash="92209680bdd73ecf3f94ecd1c33374ce"/><file name="get_email_client_usage.php" hash="fcf3a316f03460f26b6f12bcb20c17b0"/><file name="get_lists_and_segments.php" hash="e7d07e56924abfbd2d390b468d2df14b"/><file name="get_opens.php" hash="e155bf6a72a26fd34997d9024bd9911c"/><file name="get_recipients.php" hash="488f76fba7f7e2dc0680abefe5fe1fb5"/><file name="get_spam.php" hash="35c0beea84a51e3e447546f6b11ba754"/><file name="get_summary.php" hash="85ee04ac9adc616aa41d5a02824e6f7c"/><file name="get_unsubscribes.php" hash="af39956e9f46d9ecd1e78fff830f87b0"/><file name="send.php" hash="9e33ed7bd15e246929f52847f93827ce"/><file name="send_preview.php" hash="4eb7bff25251b00915791b96b20ee2ab"/><file name="unschedule.php" hash="83f0374d69eee6ae284c7fe27fdb65d7"/></dir><dir name="client"><file name="create.php" hash="8fbadcd57df2246a8447d3a3b9843d64"/><file name="delete.php" hash="a7a9945427a64737981c4a3a5c047d97"/><file name="get.php" hash="0b53f225d317d3d97bb0f3bafe83cf53"/><file name="get_campaigns.php" hash="242ed8ed7338a502751ead210283cb04"/><file name="get_drafts.php" hash="2efeea55251ec1e7e7c7767820dd28f1"/><file name="get_lists.php" hash="97ffa5cd9ccc765ae79baff0f50ece64"/><file name="get_lists_for_email.php" hash="a402b11a7b93dc6992dc69998a0ebf80"/><file name="get_scheduled.php" hash="163d89985d5fdc29d9f3a5d50787fd81"/><file name="get_segments.php" hash="9acd7c148db84fd03d825a6eaebd0b88"/><file name="get_suppressionlist.php" hash="2ae6c31510338b307f93d49369c964d1"/><file name="get_templates.php" hash="756789c223be6664b3517b79063f5143"/><file name="set_basics.php" hash="839bc9f656d26caf7335b2a4f4336ae8"/><file name="set_monthly_billing.php" hash="7f4ff840e6fe78932f9bc72e68c282da"/><file name="set_payg_billing.php" hash="2f67604445e8807a70a9e28759f3bb55"/><file name="suppress.php" hash="f78f0ddb442c9dfc53865c00ee57d266"/><file name="transfer_credits.php" hash="3fe8a12cef59a2d126d8ed7437563ec8"/><file name="unsuppress.php" hash="3442665090da89c2f5d91f6b69c18ade"/></dir><file name="get_apikey.php" hash="36f399338a612b2771ed3c53058d1d6f"/><file name="get_billing_details.php" hash="bfe297ec441b25eaa6155e283b4c0bf7"/><file name="get_clients.php" hash="521e3174750e8c41236c1c4fae5ae8f4"/><file name="get_countries.php" hash="6a71a585ef76eedec4589ecc303415f5"/><file name="get_systemdate.php" hash="7b5eeae853d164667140fb3c99a5b8ff"/><file name="get_timezones.php" hash="f756ab9b392af894320defe0f7f7296d"/><dir name="list"><file name="activate_webhook.php" hash="ca496e62c78429fa745f624738b80ce7"/><file name="create.php" hash="16a635a4de9ec820b08a7f30319534bd"/><file name="create_custom_field.php" hash="59ad0fe4d6b2038ceeda7681e4515dd0"/><file name="create_webhook.php" hash="d968c28b19521f6d3c5e6852c5c13806"/><file name="deactivate_webhook.php" hash="68478920fca13c0c1f98a450be8cb3c2"/><file name="delete.php" hash="12f035403835a63c7a0c1ba4704b3e46"/><file name="delete_custom_field.php" hash="f5031a6eac6ba776b54ac22a79c023b5"/><file name="delete_webhook.php" hash="080320b7e078ce0e33586e4c6a944172"/><file name="get.php" hash="25dcb3de68cd41792ec88d7d937217e8"/><file name="get_active_subscribers.php" hash="afcee93bc1b922a99c9e19f48894417b"/><file name="get_bounced_subscribers.php" hash="2fa45e557cca0d93924a6415fbc302d5"/><file name="get_custom_fields.php" hash="ddcaf8ee644474bb77d597894f8e501e"/><file name="get_deleted_subscribers.php" hash="400adee5529e1e0f16ff7b64b09e8bca"/><file name="get_segments.php" hash="1ddba11f0968d2d7e7109e14140e7663"/><file name="get_stats.php" hash="74ab2cf477a5049505f1959c3e9e272c"/><file name="get_unconfirmed_subscribers.php" hash="e6062d83308ccc7648d8c17200d5f277"/><file name="get_unsubscribed_subscribers.php" hash="366d5bbd88a4028b664be59420a1a0aa"/><file name="get_webhooks.php" hash="bbcb6401f2a1d3268f25405b3cbe4598"/><file name="list_webhook_receiver.php" hash="12ca45146c050f341423f80acbe688aa"/><file name="test_webhook.php" hash="22bf2bdf4c277bc86300d43018e4926e"/><file name="update.php" hash="acb1f015b02b9d66da6d286843def237"/><file name="update_custom_field.php" hash="8b5f33bc803fa29fb0a44847a0d399ec"/><file name="update_field_options.php" hash="809ed63991f1e799ee2c2b70f3c692f4"/></dir><dir name="segment"><file name="add_rule.php" hash="3ed9335f70c354cf068a176eb6dd8f6f"/><file name="clear_rules.php" hash="da68802f93c3c25a60fcf1a2b7603273"/><file name="create.php" hash="4f12c0099e9edc42ab55acfd80239ecd"/><file name="delete.php" hash="9079d2812da34ce862f9543513eb7efc"/><file name="get.php" hash="f4e65cd88d02dc5fa0c2d9d7d1a444e6"/><file name="get_subscribers.php" hash="a580a7c33025bd516cae2e8b87cc10dd"/><file name="update.php" hash="cb37cd60257eb361f80f69dfa830ab94"/></dir><dir name="subscriber"><file name="add.php" hash="f266ce4459f71665e29d25bb5181ba76"/><file name="delete.php" hash="08325db91e593b855749bc5d9381f5e3"/><file name="get.php" hash="e4d4cda7ed515df7ab7e81c72906601d"/><file name="get_history.php" hash="445b5dfc75fec5433986655437f5f608"/><file name="import.php" hash="119de43ee1e4b31ce2b710ad4507a25f"/><file name="unsubscribe.php" hash="7896a14a7bbb69a8b4d1db9ead52053f"/><file name="update.php" hash="4a62f2b72d31cb168258738483366707"/></dir><dir name="template"><file name="create.php" hash="0ed844ae8d5fc1025902a7fcfb8a949b"/><file name="delete.php" hash="ddd8cbab53644e863d5f0d4807e03719"/><file name="get.php" hash="3d5147086b92c85e7b0289ba065f9434"/><file name="update.php" hash="0854c3686f1339434cb6fb12897f801f"/></dir></dir><dir name="tests"><file name="all_tests.php" hash="3fafbd947aa885d9056ed62e832ca61b"/><dir name="class_tests"><file name="response_tests.php" hash="ae5b4f541ac5bcba7a9417544d2156a9"/><file name="transport_test.php" hash="3033343417f283136c43d0bab77ac355"/></dir><file name="csrest_administrators_test.php" hash="77830067da14a226bfdc86b445f68f30"/><file name="csrest_campaigns_test.php" hash="ce68576c81c314dbdeba2b229903d865"/><file name="csrest_clients_test.php" hash="d3023b37bc3ebf222171606a100532d5"/><file name="csrest_lists_test.php" hash="533753c96477cad7598382c94e9a8937"/><file name="csrest_people_test.php" hash="72269f3d21caaf5648684da44b0ad319"/><file name="csrest_segments_test.php" hash="33f275bcab02eacb32299d6fc63e1b7c"/><file name="csrest_subscribers_test.php" hash="8b6ec2dade2d5b59d8f27f7e32df049f"/><file name="csrest_template_test.php" hash="3645fc50d5e43da11fa1a2b496b692c4"/><file name="csrest_test.php" hash="de298e06f8b584018f8e6b1d14000f32"/><dir name="responses"><file name="active_subscribers.json" hash="414033ce6952d88c0edd3c7b04d4f14e"/><file name="add_subscriber.json" hash="236507977b97832343c87955243068ad"/><file name="apikey.json" hash="4ca4132cc99f80bfc3d4a029a77a7a6e"/><file name="bounced_subscribers.json" hash="78c52687485c30c0fb031eb82e472fb3"/><file name="campaign_bounces.json" hash="55471525555dacee6ca1eb9ed5826cea"/><file name="campaign_clicks.json" hash="57d3357f4a0d8b55042a80e6d984e1ea"/><file name="campaign_listsandsegments.json" hash="a0d21dda2042a25b1266036b5d945f0c"/><file name="campaign_opens.json" hash="50c3052eebc922dfd0293498b5374ef0"/><file name="campaign_recipients.json" hash="be59c57f1f497669260f5124c13d109e"/><file name="campaign_spam.json" hash="48fa85397d6d8da1a685a94c404d14a9"/><file name="campaign_summary.json" hash="248d074230990e424dedb26afac895eb"/><file name="campaign_unsubscribes.json" hash="87d6b967ec28f8b3cd7845acc3ba0a16"/><file name="campaigns.json" hash="3b160d6e1a5de3e6163f2fffa502e4cb"/><file name="client_details.json" hash="964787a45923035cdd7330d4af13dfd9"/><file name="clients.json" hash="b243ae5d2f1b0686a6f45bbc262b1ad5"/><file name="countries.json" hash="7baa975380541216a7829128d4d7fb5b"/><file name="create_campaign.json" hash="61079127bd26d95434347f30803a85b2"/><file name="create_client.json" hash="0b5ea68aeecf1f61c8a00fb5d2b89104"/><file name="create_custom_field.json" hash="49b9878fd944fa8ea2f283a3d0b6576b"/><file name="create_list.json" hash="33b7d284c287fa44edb649234bc2ac6b"/><file name="create_list_webhook.json" hash="8a1c9ea0268a3a58d8f8fdaa4f159519"/><file name="create_segment.json" hash="6183146c3898ae281ea640e40fb5b3b0"/><file name="create_template.json" hash="9b1fcc1ae0925bd552cb23e364d48cca"/><file name="custom_api_error.json" hash="6be6c0df48a411fc54a5abf1d8502690"/><file name="custom_fields.json" hash="fe40aa43df15068516cdc6b7d9e2148c"/><file name="deleted_subscribers.json" hash="176235e9b24405ed329cc40a9ac5d1cd"/><file name="drafts.json" hash="8b36d3bf66ebb683b6926fcef95ae106"/><file name="import_subscribers.json" hash="3c7c7d85d510224197dc597d3a6cf585"/><file name="import_subscribers_partial_success.json" hash="4e1ff5c7b33a77d709530a31f544a22d"/><file name="list_details.json" hash="09d06afb7cd013e74fe615ddfd5a6799"/><file name="list_stats.json" hash="b8cd04e30e5e30862f005208997655de"/><file name="list_webhooks.json" hash="93194d66734e07372cac1b5c9c04f2b5"/><file name="lists.json" hash="0b7f8013e3e93a105a7a7d8c156daf4d"/><file name="listsforemail.json" hash="c7eb2e23b02883e0a0f9a9b2ca9bc94a"/><file name="scheduled.json" hash="d7c9df96fbfa5bafb1e1cfc0643123b7"/><file name="segment_details.json" hash="9ec00f104a565fc723270e3ceb91d509"/><file name="segment_subscribers.json" hash="cf5cec4bc4e7970315ea929a0bd29ecd"/><file name="segments.json" hash="d2d9265fd87ed661cd65c9c96b31a2f0"/><file name="subscriber_details.json" hash="1c5733a762560ed1dc27449edea3c27f"/><file name="subscriber_history.json" hash="93d3efaa0f0373156146e9f3060ca855"/><file name="suppressionlist.json" hash="13fff3aeddf64804cf8d9232b79ab45b"/><file name="systemdate.json" hash="5f2f368919effd4c7d36bc11d42d8198"/><file name="template_details.json" hash="81fa02e23c0a9c00c55730956a2868b0"/><file name="templates.json" hash="64aca93871da82620071a26c818da4ce"/><file name="timezones.json" hash="ff9bbd7171fe05f5bace2fc8087953d0"/><file name="unsubscribed_subscribers.json" hash="0f7cec268e4241426a5c7dcc33ba99eb"/></dir></dir><file name=".gitignore" hash="1416491a3a84679680a343e7adf1f20d"/><file name=".travis.yml" hash="3f3c6ec40583a10d8ec8dfa89a2010e8"/></dir></dir></target></contents>
22
  <compatible/>
23
  <dependencies><required><php><min>4.1.0</min><max>6.0.0</max></php></required></dependencies>
24
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>DigitalPianism_CampaignMonitor</name>
4
+ <version>0.7.6</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
12
  &lt;p&gt;Campaign Monitor is built for designers who can create great looking emails for themselves and their clients, but need software to send each campaign, track the results and manage their subscribers." www.campaignmonitor.com&lt;/p&gt;&#xD;
13
  &#xD;
14
  &lt;p&gt;This extension integrates Magento with the Campaign Monitor mailing list manager. Users are added to a specified Campaign Monitor email list when they subscribe to the newsletter in Magento, and removed when they unsubscribe. Users are also marked as unsubscribed in Magento when they click an unsubscribe link in a Campaign Monitor email.&lt;/p&gt;</description>
15
+ <notes>- Bug fixes regarding errors and sessions.&#xD;
16
+ - Remove unused variables.&#xD;
17
+ - PHPDoc.</notes>
18
  <authors><author><name>Digital Pianism</name><user>digitalpianism</user><email>contact@digital-pianism.com</email></author></authors>
19
+ <date>2014-12-19</date>
20
+ <time>11:29:20</time>
21
+ <contents><target name="magecommunity"><dir name="DigitalPianism"><dir name="CampaignMonitor"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Auth.php" hash="03f5ad4c1afcc1949a77c82e4754d7eb"/><file name="Refreshtoken.php" hash="c3f7c8e3f26fa6342b5c2e4b8f6f4af2"/></dir></dir><dir name="Source"><file name="Authtype.php" hash="b8b4ba474b60f65d782b0103824366d8"/></dir></dir></dir></dir><file name="Linkedattributes.php" hash="d340c35fb2706d231dd5ffc5b7029f4c"/></dir><dir name="Helper"><file name="Data.php" hash="470de2a5ba28f6ae77436fe5f460b9b2"/></dir><dir name="Model"><file name="Auth.php" hash="dcd007ea3d972044fee5996735f1d046"/><dir name="Checkout"><file name="Observer.php" hash="861ede2ace71e1dbaea2becdf8cca605"/><dir name="Type"><file name="Onepage.php" hash="a41a043ff4e754394a5397c6e7fdcf31"/></dir></dir><dir name="Customer"><file name="Observer.php" hash="09ae364c8fc3f1f60cae2b55eb13a8ee"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Authtype.php" hash="81eb0bb400f23662bbf7f9ad8f4e44db"/></dir></dir></dir></dir><dir name="controllers"><file name="AdminhookController.php" hash="8d25dd0cfceaf877d8c4c704b011f768"/><dir name="Adminhtml"><file name="AuthController.php" hash="d761d513746139714b0ad7d2c222daef"/></dir><file name="AuthController.php" hash="9cffffa9ff747b207319fb3b59ca36ea"/><file name="HookController.php" hash="d622ed64cd935c3e9d473186b0707d89"/><dir name="Newsletter"><file name="SubscriberController.php" hash="4f3e3bc385c871c9eb5546d845e186cf"/></dir><file name="UnsubscribeController.php" hash="1fee87e2057b8e1c09f87a2244833cdb"/></dir><dir name="etc"><file name="config.xml" hash="24b90ddd0f94a38587cfb2321f4a06d0"/><file name="system.xml" hash="bf9b3e5c5f5c622ca69db63664b2bb77"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="DigitalPianism_CampaignMonitor.xml" hash="6044d29d2b2e7d0689315376e3c27acd"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="digitalpianism"><dir name="campaignmonitor"><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="array_dropdown.phtml" hash="ac84db9b1e8b342337a478ecba62e0b1"/><file name="auth.phtml" hash="ec611006cadbb39caff40e5115b78586"/><file name="refreshtoken.phtml" hash="1d43c3e66c3c89a1d857b328eae6997f"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="digitalpianism"><file name="campaignmonitor.xml" hash="d01714d890051c5d01c82ad9624fcba6"/></dir></dir><dir name="template"><dir name="digitalpianism"><dir name="campaignmonitor"><dir name="persistent"><dir name="checkout"><file name="billing.phtml" hash="64b8515cd7eab3136d64ec5a0f2328d2"/><dir name="onepage"><file name="checkoutnewsletter.phtml" hash="ae24dcbc1ee1bcc353533f5ea7c7d572"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="lib"><dir name="createsend"><file name="HISTORY.md" hash="ab283bd0126e8c10edf6da099c80a661"/><file name="LICENSE" hash="e4306d4b6c77f2db816ec4aed73a13c7"/><file name="README.md" hash="90a7855700d85e14211baf5399810a3d"/><file name="RELEASE.md" hash="5efce8234607beab27bf466b23fc4535"/><dir name="class"><file name="base_classes.php" hash="8a3f82c1204d7de080d2f3d15cb70ea9"/><file name="cacert.pem" hash="c29d362201b1bd232898d2b658811db2"/><file name="log.php" hash="11ff6a9006a6386c1cd8880cd3c0f41b"/><file name="serialisation.php" hash="3eb39437970e8787f0ef9ac292b688e6"/><file name="services_json.php" hash="c9e9ef0d35d7d34f9d216344da27915d"/><file name="transport.php" hash="da2967846daf164a70e649c9f2ee0094"/></dir><file name="composer.json" hash="eccad7521596b5fe0d81af51ab2f16a1"/><file name="composer.lock" hash="e64bca0a5accd8086e4e49bf41aa8629"/><file name="csrest_administrators.php" hash="72480342a46e8d82fd44096b4818f090"/><file name="csrest_campaigns.php" hash="38e2c429abaaa4609d30f28622e5fc3f"/><file name="csrest_clients.php" hash="df11ce1c1fd5fd43980db42cb83a6fa3"/><file name="csrest_general.php" hash="b8d1de7d1e435231955cdf8bc0311632"/><file name="csrest_lists.php" hash="42904680a424977d7c6f3211cf0d7a9c"/><file name="csrest_people.php" hash="ff2a14af7e171a11d73bef3d4995f512"/><file name="csrest_segments.php" hash="bac0e031058e7e08ae97906738cc65fc"/><file name="csrest_subscribers.php" hash="b5ad794e2cc2f65a278a8aa9de4af7d7"/><file name="csrest_templates.php" hash="4c94511a505a868eef2f8109ca3c35d6"/><dir name="samples"><dir name="campaign"><file name="create.php" hash="af4016e1b3539b3710d4b8e05bc7001b"/><file name="create_from_template.php" hash="4868b7f363abebc3d9fe9f561e59a743"/><file name="delete.php" hash="b96c2421084e77c241ea270894719aff"/><file name="get_bounces.php" hash="3bd2b2faa8d4b99bf7b9d682ce7402d3"/><file name="get_clicks.php" hash="92209680bdd73ecf3f94ecd1c33374ce"/><file name="get_email_client_usage.php" hash="fcf3a316f03460f26b6f12bcb20c17b0"/><file name="get_lists_and_segments.php" hash="e7d07e56924abfbd2d390b468d2df14b"/><file name="get_opens.php" hash="e155bf6a72a26fd34997d9024bd9911c"/><file name="get_recipients.php" hash="488f76fba7f7e2dc0680abefe5fe1fb5"/><file name="get_spam.php" hash="35c0beea84a51e3e447546f6b11ba754"/><file name="get_summary.php" hash="85ee04ac9adc616aa41d5a02824e6f7c"/><file name="get_unsubscribes.php" hash="af39956e9f46d9ecd1e78fff830f87b0"/><file name="send.php" hash="9e33ed7bd15e246929f52847f93827ce"/><file name="send_preview.php" hash="4eb7bff25251b00915791b96b20ee2ab"/><file name="unschedule.php" hash="83f0374d69eee6ae284c7fe27fdb65d7"/></dir><dir name="client"><file name="create.php" hash="8fbadcd57df2246a8447d3a3b9843d64"/><file name="delete.php" hash="a7a9945427a64737981c4a3a5c047d97"/><file name="get.php" hash="0b53f225d317d3d97bb0f3bafe83cf53"/><file name="get_campaigns.php" hash="242ed8ed7338a502751ead210283cb04"/><file name="get_drafts.php" hash="2efeea55251ec1e7e7c7767820dd28f1"/><file name="get_lists.php" hash="97ffa5cd9ccc765ae79baff0f50ece64"/><file name="get_lists_for_email.php" hash="a402b11a7b93dc6992dc69998a0ebf80"/><file name="get_scheduled.php" hash="163d89985d5fdc29d9f3a5d50787fd81"/><file name="get_segments.php" hash="9acd7c148db84fd03d825a6eaebd0b88"/><file name="get_suppressionlist.php" hash="2ae6c31510338b307f93d49369c964d1"/><file name="get_templates.php" hash="756789c223be6664b3517b79063f5143"/><file name="set_basics.php" hash="839bc9f656d26caf7335b2a4f4336ae8"/><file name="set_monthly_billing.php" hash="7f4ff840e6fe78932f9bc72e68c282da"/><file name="set_payg_billing.php" hash="2f67604445e8807a70a9e28759f3bb55"/><file name="suppress.php" hash="f78f0ddb442c9dfc53865c00ee57d266"/><file name="transfer_credits.php" hash="3fe8a12cef59a2d126d8ed7437563ec8"/><file name="unsuppress.php" hash="3442665090da89c2f5d91f6b69c18ade"/></dir><file name="get_apikey.php" hash="36f399338a612b2771ed3c53058d1d6f"/><file name="get_billing_details.php" hash="bfe297ec441b25eaa6155e283b4c0bf7"/><file name="get_clients.php" hash="521e3174750e8c41236c1c4fae5ae8f4"/><file name="get_countries.php" hash="6a71a585ef76eedec4589ecc303415f5"/><file name="get_systemdate.php" hash="7b5eeae853d164667140fb3c99a5b8ff"/><file name="get_timezones.php" hash="f756ab9b392af894320defe0f7f7296d"/><dir name="list"><file name="activate_webhook.php" hash="ca496e62c78429fa745f624738b80ce7"/><file name="create.php" hash="16a635a4de9ec820b08a7f30319534bd"/><file name="create_custom_field.php" hash="59ad0fe4d6b2038ceeda7681e4515dd0"/><file name="create_webhook.php" hash="d968c28b19521f6d3c5e6852c5c13806"/><file name="deactivate_webhook.php" hash="68478920fca13c0c1f98a450be8cb3c2"/><file name="delete.php" hash="12f035403835a63c7a0c1ba4704b3e46"/><file name="delete_custom_field.php" hash="f5031a6eac6ba776b54ac22a79c023b5"/><file name="delete_webhook.php" hash="080320b7e078ce0e33586e4c6a944172"/><file name="get.php" hash="25dcb3de68cd41792ec88d7d937217e8"/><file name="get_active_subscribers.php" hash="afcee93bc1b922a99c9e19f48894417b"/><file name="get_bounced_subscribers.php" hash="2fa45e557cca0d93924a6415fbc302d5"/><file name="get_custom_fields.php" hash="ddcaf8ee644474bb77d597894f8e501e"/><file name="get_deleted_subscribers.php" hash="400adee5529e1e0f16ff7b64b09e8bca"/><file name="get_segments.php" hash="1ddba11f0968d2d7e7109e14140e7663"/><file name="get_stats.php" hash="74ab2cf477a5049505f1959c3e9e272c"/><file name="get_unconfirmed_subscribers.php" hash="e6062d83308ccc7648d8c17200d5f277"/><file name="get_unsubscribed_subscribers.php" hash="366d5bbd88a4028b664be59420a1a0aa"/><file name="get_webhooks.php" hash="bbcb6401f2a1d3268f25405b3cbe4598"/><file name="list_webhook_receiver.php" hash="12ca45146c050f341423f80acbe688aa"/><file name="test_webhook.php" hash="22bf2bdf4c277bc86300d43018e4926e"/><file name="update.php" hash="acb1f015b02b9d66da6d286843def237"/><file name="update_custom_field.php" hash="8b5f33bc803fa29fb0a44847a0d399ec"/><file name="update_field_options.php" hash="809ed63991f1e799ee2c2b70f3c692f4"/></dir><dir name="segment"><file name="add_rule.php" hash="3ed9335f70c354cf068a176eb6dd8f6f"/><file name="clear_rules.php" hash="da68802f93c3c25a60fcf1a2b7603273"/><file name="create.php" hash="4f12c0099e9edc42ab55acfd80239ecd"/><file name="delete.php" hash="9079d2812da34ce862f9543513eb7efc"/><file name="get.php" hash="f4e65cd88d02dc5fa0c2d9d7d1a444e6"/><file name="get_subscribers.php" hash="a580a7c33025bd516cae2e8b87cc10dd"/><file name="update.php" hash="cb37cd60257eb361f80f69dfa830ab94"/></dir><dir name="subscriber"><file name="add.php" hash="f266ce4459f71665e29d25bb5181ba76"/><file name="delete.php" hash="08325db91e593b855749bc5d9381f5e3"/><file name="get.php" hash="e4d4cda7ed515df7ab7e81c72906601d"/><file name="get_history.php" hash="445b5dfc75fec5433986655437f5f608"/><file name="import.php" hash="119de43ee1e4b31ce2b710ad4507a25f"/><file name="unsubscribe.php" hash="7896a14a7bbb69a8b4d1db9ead52053f"/><file name="update.php" hash="4a62f2b72d31cb168258738483366707"/></dir><dir name="template"><file name="create.php" hash="0ed844ae8d5fc1025902a7fcfb8a949b"/><file name="delete.php" hash="ddd8cbab53644e863d5f0d4807e03719"/><file name="get.php" hash="3d5147086b92c85e7b0289ba065f9434"/><file name="update.php" hash="0854c3686f1339434cb6fb12897f801f"/></dir></dir><dir name="tests"><file name="all_tests.php" hash="3fafbd947aa885d9056ed62e832ca61b"/><dir name="class_tests"><file name="response_tests.php" hash="ae5b4f541ac5bcba7a9417544d2156a9"/><file name="transport_test.php" hash="3033343417f283136c43d0bab77ac355"/></dir><file name="csrest_administrators_test.php" hash="77830067da14a226bfdc86b445f68f30"/><file name="csrest_campaigns_test.php" hash="ce68576c81c314dbdeba2b229903d865"/><file name="csrest_clients_test.php" hash="d3023b37bc3ebf222171606a100532d5"/><file name="csrest_lists_test.php" hash="533753c96477cad7598382c94e9a8937"/><file name="csrest_people_test.php" hash="72269f3d21caaf5648684da44b0ad319"/><file name="csrest_segments_test.php" hash="33f275bcab02eacb32299d6fc63e1b7c"/><file name="csrest_subscribers_test.php" hash="8b6ec2dade2d5b59d8f27f7e32df049f"/><file name="csrest_template_test.php" hash="3645fc50d5e43da11fa1a2b496b692c4"/><file name="csrest_test.php" hash="de298e06f8b584018f8e6b1d14000f32"/><dir name="responses"><file name="active_subscribers.json" hash="414033ce6952d88c0edd3c7b04d4f14e"/><file name="add_subscriber.json" hash="236507977b97832343c87955243068ad"/><file name="apikey.json" hash="4ca4132cc99f80bfc3d4a029a77a7a6e"/><file name="bounced_subscribers.json" hash="78c52687485c30c0fb031eb82e472fb3"/><file name="campaign_bounces.json" hash="55471525555dacee6ca1eb9ed5826cea"/><file name="campaign_clicks.json" hash="57d3357f4a0d8b55042a80e6d984e1ea"/><file name="campaign_listsandsegments.json" hash="a0d21dda2042a25b1266036b5d945f0c"/><file name="campaign_opens.json" hash="50c3052eebc922dfd0293498b5374ef0"/><file name="campaign_recipients.json" hash="be59c57f1f497669260f5124c13d109e"/><file name="campaign_spam.json" hash="48fa85397d6d8da1a685a94c404d14a9"/><file name="campaign_summary.json" hash="248d074230990e424dedb26afac895eb"/><file name="campaign_unsubscribes.json" hash="87d6b967ec28f8b3cd7845acc3ba0a16"/><file name="campaigns.json" hash="3b160d6e1a5de3e6163f2fffa502e4cb"/><file name="client_details.json" hash="964787a45923035cdd7330d4af13dfd9"/><file name="clients.json" hash="b243ae5d2f1b0686a6f45bbc262b1ad5"/><file name="countries.json" hash="7baa975380541216a7829128d4d7fb5b"/><file name="create_campaign.json" hash="61079127bd26d95434347f30803a85b2"/><file name="create_client.json" hash="0b5ea68aeecf1f61c8a00fb5d2b89104"/><file name="create_custom_field.json" hash="49b9878fd944fa8ea2f283a3d0b6576b"/><file name="create_list.json" hash="33b7d284c287fa44edb649234bc2ac6b"/><file name="create_list_webhook.json" hash="8a1c9ea0268a3a58d8f8fdaa4f159519"/><file name="create_segment.json" hash="6183146c3898ae281ea640e40fb5b3b0"/><file name="create_template.json" hash="9b1fcc1ae0925bd552cb23e364d48cca"/><file name="custom_api_error.json" hash="6be6c0df48a411fc54a5abf1d8502690"/><file name="custom_fields.json" hash="fe40aa43df15068516cdc6b7d9e2148c"/><file name="deleted_subscribers.json" hash="176235e9b24405ed329cc40a9ac5d1cd"/><file name="drafts.json" hash="8b36d3bf66ebb683b6926fcef95ae106"/><file name="import_subscribers.json" hash="3c7c7d85d510224197dc597d3a6cf585"/><file name="import_subscribers_partial_success.json" hash="4e1ff5c7b33a77d709530a31f544a22d"/><file name="list_details.json" hash="09d06afb7cd013e74fe615ddfd5a6799"/><file name="list_stats.json" hash="b8cd04e30e5e30862f005208997655de"/><file name="list_webhooks.json" hash="93194d66734e07372cac1b5c9c04f2b5"/><file name="lists.json" hash="0b7f8013e3e93a105a7a7d8c156daf4d"/><file name="listsforemail.json" hash="c7eb2e23b02883e0a0f9a9b2ca9bc94a"/><file name="scheduled.json" hash="d7c9df96fbfa5bafb1e1cfc0643123b7"/><file name="segment_details.json" hash="9ec00f104a565fc723270e3ceb91d509"/><file name="segment_subscribers.json" hash="cf5cec4bc4e7970315ea929a0bd29ecd"/><file name="segments.json" hash="d2d9265fd87ed661cd65c9c96b31a2f0"/><file name="subscriber_details.json" hash="1c5733a762560ed1dc27449edea3c27f"/><file name="subscriber_history.json" hash="93d3efaa0f0373156146e9f3060ca855"/><file name="suppressionlist.json" hash="13fff3aeddf64804cf8d9232b79ab45b"/><file name="systemdate.json" hash="5f2f368919effd4c7d36bc11d42d8198"/><file name="template_details.json" hash="81fa02e23c0a9c00c55730956a2868b0"/><file name="templates.json" hash="64aca93871da82620071a26c818da4ce"/><file name="timezones.json" hash="ff9bbd7171fe05f5bace2fc8087953d0"/><file name="unsubscribed_subscribers.json" hash="0f7cec268e4241426a5c7dcc33ba99eb"/></dir></dir><file name=".gitignore" hash="1416491a3a84679680a343e7adf1f20d"/><file name=".travis.yml" hash="3f3c6ec40583a10d8ec8dfa89a2010e8"/></dir></dir></target></contents>
22
  <compatible/>
23
  <dependencies><required><php><min>4.1.0</min><max>6.0.0</max></php></required></dependencies>
24
  </package>