Contactlab_Modules - Version 2.5.4

Version Notes

- Fixed created_at
- Fixed abandoned cart prices
- Create checks for SFTP connection

Download this release

Release Info

Developer ContactLab
Extension Contactlab_Modules
Version 2.5.4
Comparing to
See all releases


Code changes from version 2.5.3 to 2.5.4

app/code/community/Contactlab/.DS_Store DELETED
Binary file
app/code/community/Contactlab/Commons/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Contactlab_Commons>
5
- <version>1.1.3</version>
6
  <description>Magento/ContactLab Common functions.</description>
7
  </Contactlab_Commons>
8
  </modules>
@@ -144,7 +144,7 @@
144
  <global>
145
  <!--days_of_old_tasks>3</days_of_old_tasks>
146
  <debug>0</debug-->
147
- <platform_version>2.5.3</platform_version>
148
  </global>
149
  <connection>
150
  <!--type>1</type>
2
  <config>
3
  <modules>
4
  <Contactlab_Commons>
5
+ <version>1.1.4</version>
6
  <description>Magento/ContactLab Common functions.</description>
7
  </Contactlab_Commons>
8
  </modules>
144
  <global>
145
  <!--days_of_old_tasks>3</days_of_old_tasks>
146
  <debug>0</debug-->
147
+ <platform_version>2.5.4</platform_version>
148
  </global>
149
  <connection>
150
  <!--type>1</type>
app/code/community/Contactlab/Commons/sql/contactlab_commons_setup/upgrade-0.8.13-0.8.14.php CHANGED
@@ -5,7 +5,7 @@ $installer->startSetup();
5
 
6
  $installer->run("
7
  ALTER TABLE {$installer->getTable("contactlab_commons/task")}
8
- CHANGE `task_data` `task_data` mediumtext comment 'Task internal data';
9
  ");
10
 
11
  $installer->endSetup();
5
 
6
  $installer->run("
7
  ALTER TABLE {$installer->getTable("contactlab_commons/task")}
8
+ CHANGE `task_data` `task_data` blob comment 'Task internal data';
9
  ");
10
 
11
  $installer->endSetup();
app/code/community/Contactlab/Subscribers/Model/Checks/SftpSubscriberExporter.php ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Created by PhpStorm.
5
+ * User: andreag
6
+ * Date: 06/10/15
7
+ * Time: 9.30
8
+ */
9
+ class Contactlab_Subscribers_Model_Checks_SftpSubscriberExporter extends Contactlab_Subscribers_Model_Checks_AbstractCheck
10
+ {
11
+
12
+ /**
13
+ * Start check.
14
+ * @return String
15
+ */
16
+ protected function doCheck()
17
+ {
18
+ return $this->_getCheckSFTP()
19
+ ? $this->success(sprintf("SFTP test ok"))
20
+ : $this->error(sprintf("SFTP test error"));
21
+ }
22
+
23
+ /**
24
+ * Get code.
25
+ * @return String
26
+ */
27
+ public function getCode()
28
+ {
29
+ return "sftp";
30
+ }
31
+
32
+ /**
33
+ * Get description.
34
+ * @return String
35
+ */
36
+ public function getDescription()
37
+ {
38
+ return "SFTP Subscriber Exporter test";
39
+ }
40
+
41
+ /**
42
+ * Get position.
43
+ * @return int
44
+ */
45
+ public function getPosition()
46
+ {
47
+ return 190;
48
+ }
49
+
50
+ /**
51
+ * Check wsdl.
52
+ */
53
+ private function _getCheckSFTP()
54
+ {
55
+ $path = Mage::getBaseDir('var').'/contactlab/export/';
56
+ if(!is_dir($path))
57
+ {
58
+ mkdir($path, 0755, true);
59
+ }
60
+ $filename = $path.'CheckSFTP.txt';
61
+ $fh = fopen($filename,'w');
62
+ fwrite($fh, $this->getCode(),1024);
63
+ fclose($fh);
64
+ $return = $this->_putFile($filename);
65
+ unlink($filename);
66
+ return $return;
67
+ }
68
+
69
+ /**
70
+ * Put file to sftp.
71
+ *
72
+ * @param string $filename
73
+ * @return void
74
+ */
75
+ private function _putFile($filename)
76
+ {
77
+ if($sftp = $this->getSFTPConnection())
78
+ {
79
+ $remoteFile = $this->_getRelativePath() . '/' . basename($filename);
80
+ $sftp->delete($remoteFile);
81
+ $sftp->put($remoteFile, $filename, NET_SFTP_LOCAL_FILE);
82
+ $return = $this->_checkUploadedFile($filename, $remoteFile, $sftp);
83
+ $sftp->delete($remoteFile);
84
+ $sftp->_disconnect(0);
85
+ }
86
+ else
87
+ {
88
+ $return = false;
89
+ }
90
+ return $return;
91
+ }
92
+
93
+ /**
94
+ * Get delivery method.
95
+ *
96
+ * @return string
97
+ */
98
+ private function _getRelativePath() {
99
+ return Mage::getStoreConfig("contactlab_commons/connection/export_remote_path");
100
+ }
101
+
102
+ /**
103
+ * Get SFTP connection.
104
+ * @return Contactlab_Commons_Model_Ssh_Net_SFTP
105
+ * @throws Zend_Exception
106
+ */
107
+ public function getSFTPConnection()
108
+ {
109
+ $sftp = new Contactlab_Commons_Model_Ssh_Net_SFTP(
110
+ Mage::getStoreConfig("contactlab_commons/connection/remote_server")
111
+ );
112
+ if (!$sftp->login(
113
+ Mage::getStoreConfig("contactlab_commons/connection/sftp_username"),
114
+ Mage::getStoreConfig("contactlab_commons/connection/sftp_password")
115
+ )
116
+ )
117
+ {
118
+ return false;
119
+ }
120
+ return $sftp;
121
+ }
122
+
123
+ /**
124
+ * Check uploaded file existence.
125
+ *
126
+ * @param string $localFile
127
+ * @param string $remoteFile
128
+ * @param Contactlab_Commons_Model_Ssh_Net_SFTP $sftp
129
+ * @return void
130
+ */
131
+ private function _checkUploadedFile($localFile, $remoteFile, Contactlab_Commons_Model_Ssh_Net_SFTP $sftp)
132
+ {
133
+ $localFileSize = filesize($localFile);
134
+ $remoteStat = $sftp->lstat($remoteFile);
135
+ $return = true;
136
+ if (!$remoteStat) {
137
+ $return = false;
138
+ }
139
+ if ($this->hasTask()) {
140
+ $this->getTask()->addEvent("Remote file info: " . print_r($remoteStat, true));
141
+ }
142
+
143
+ $remoteFileSize = $remoteStat['size'];
144
+ if ($localFileSize != $remoteFileSize) {
145
+ $return = false;
146
+ }
147
+ return $return;
148
+ }
149
+
150
+
151
+
152
+ }
app/code/community/Contactlab/Subscribers/Model/Checks/SftpXmlDeliveryCheck.php ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Created by PhpStorm.
5
+ * User: andreag
6
+ * Date: 06/10/15
7
+ * Time: 9.30
8
+ */
9
+ class Contactlab_Subscribers_Model_Checks_SftpXmlDeliveryCheck extends Contactlab_Subscribers_Model_Checks_AbstractCheck
10
+ {
11
+
12
+ /**
13
+ * Start check.
14
+ * @return String
15
+ */
16
+ protected function doCheck()
17
+ {
18
+ return $this->_getCheckSFTP()
19
+ ? $this->success(sprintf("SFTP test ok"))
20
+ : $this->error(sprintf("SFTP test error"));
21
+ }
22
+
23
+ /**
24
+ * Get code.
25
+ * @return String
26
+ */
27
+ public function getCode()
28
+ {
29
+ return "sftp";
30
+ }
31
+
32
+ /**
33
+ * Get description.
34
+ * @return String
35
+ */
36
+ public function getDescription()
37
+ {
38
+ return "SFTP XmlDelivery test";
39
+ }
40
+
41
+ /**
42
+ * Get position.
43
+ * @return int
44
+ */
45
+ public function getPosition()
46
+ {
47
+ return 190;
48
+ }
49
+
50
+ /**
51
+ * Check wsdl.
52
+ */
53
+ private function _getCheckSFTP()
54
+ {
55
+ $path = Mage::getBaseDir('var').'/contactlab/export/';
56
+ if(!is_dir($path))
57
+ {
58
+ mkdir($path, 0755, true);
59
+ }
60
+ $filename = $path.'CheckSFTP.txt';
61
+ $fh = fopen($filename,'w');
62
+ fwrite($fh, $this->getCode(),1024);
63
+ fclose($fh);
64
+ $return = $this->_putFile($filename);
65
+ unlink($filename);
66
+ return $return;
67
+ }
68
+
69
+ /**
70
+ * Put file to sftp.
71
+ *
72
+ * @param string $filename
73
+ * @return void
74
+ */
75
+ private function _putFile($filename)
76
+ {
77
+ if($sftp = $this->getSFTPConnection())
78
+ {
79
+ $remoteFile = $this->_getRelativePath() . '/' . basename($filename);
80
+ $sftp->delete($remoteFile);
81
+ $sftp->put($remoteFile, $filename, NET_SFTP_LOCAL_FILE);
82
+ $return = $this->_checkUploadedFile($filename, $remoteFile, $sftp);
83
+ $sftp->delete($remoteFile);
84
+ $sftp->_disconnect(0);
85
+ }
86
+ else
87
+ {
88
+ $return = false;
89
+ }
90
+ return $return;
91
+ }
92
+
93
+ /**
94
+ * Get delivery method.
95
+ *
96
+ * @return string
97
+ */
98
+ private function _getRelativePath() {
99
+ return Mage::getStoreConfig("contactlab_template/queue/export_remote_path");
100
+ }
101
+
102
+ /**
103
+ * Get SFTP connection.
104
+ * @return Contactlab_Commons_Model_Ssh_Net_SFTP
105
+ * @throws Zend_Exception
106
+ */
107
+ public function getSFTPConnection()
108
+ {
109
+ $sftp = new Contactlab_Commons_Model_Ssh_Net_SFTP(
110
+ Mage::getStoreConfig("contactlab_commons/connection/remote_server")
111
+ );
112
+ if (!$sftp->login(
113
+ Mage::getStoreConfig("contactlab_commons/connection/sftp_username"),
114
+ Mage::getStoreConfig("contactlab_commons/connection/sftp_password")
115
+ )
116
+ )
117
+ {
118
+ return false;
119
+ }
120
+ return $sftp;
121
+ }
122
+
123
+ /**
124
+ * Check uploaded file existence.
125
+ *
126
+ * @param string $localFile
127
+ * @param string $remoteFile
128
+ * @param Contactlab_Commons_Model_Ssh_Net_SFTP $sftp
129
+ * @return void
130
+ */
131
+ private function _checkUploadedFile($localFile, $remoteFile, Contactlab_Commons_Model_Ssh_Net_SFTP $sftp)
132
+ {
133
+ $localFileSize = filesize($localFile);
134
+ $remoteStat = $sftp->lstat($remoteFile);
135
+ $return = true;
136
+ if (!$remoteStat) {
137
+ $return = false;
138
+ }
139
+ if ($this->hasTask()) {
140
+ $this->getTask()->addEvent("Remote file info: " . print_r($remoteStat, true));
141
+ }
142
+
143
+ $remoteFileSize = $remoteStat['size'];
144
+ if ($localFileSize != $remoteFileSize) {
145
+ $return = false;
146
+ }
147
+ return $return;
148
+ }
149
+
150
+
151
+
152
+ }
app/code/community/Contactlab/Subscribers/Model/Exporter/Copy of Subscribers.php DELETED
@@ -1,1180 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Export subscribers.
5
- * @property string limiter
6
- * @property bool found
7
- * @property int customers
8
- * @property int newsletterSubscribers
9
- * @property int deleted
10
- * @property mixed exportPolicy
11
- * @property Contactlab_Subscribers_Helper_Exporter helper
12
- * @property Mage_Core_Model_Resource $resource
13
- * @property string ukQuery
14
- * @property array customerAttributes
15
- * @property array addressAttributes
16
- * @property Mage_Customer_Model_Customer customerModel
17
- * @property Mage_Customer_Model_Address addressModel
18
- * @property array statsAttributesMap
19
- * @property array stores
20
- * @property array fAttributesMap
21
- * @property array fAddressAttributes
22
- * @property array deletedEntities
23
- */
24
- class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commons_Model_Exporter_Abstract {
25
-
26
- public final function export()
27
- {
28
-
29
- $filenameFormat = Mage::getStoreConfig("contactlab_commons/connection/export_local_path")
30
- . '/' . $this->getFileName();
31
-
32
- $filename = $this->_formatFileName($filenameFormat);
33
-
34
-
35
-
36
- Mage::helper("contactlab_commons")->logNotice("Exporting locally to $filename");
37
-
38
- $path = dirname($filename);
39
-
40
- if (is_dir($path) && !is_writable($path)) {
41
- Mage::helper("contactlab_commons")->logAlert("$path is not writeable");
42
- throw new Zend_Exception("$path is not writeable");
43
- }
44
- if (is_file($filename) && !is_writable($filename)) {
45
- Mage::helper("contactlab_commons")->logAlert("$filename is not writeable");
46
- throw new Zend_Exception("$filename is not writeable");
47
- }
48
- if (($this->gz = gzopen($filename, 'w9')) === false) {
49
- Mage::helper("contactlab_commons")->logAlert("Could not export to $filename");
50
- throw new Zend_Exception("Could not export to $filename");
51
- }
52
-
53
- gzwrite($this->gz, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<dataroot>\n");
54
- $this->writeXml();
55
- gzwrite($this->gz, "</dataroot>\n");
56
- gzclose($this->gz);
57
- /*
58
- if ($this->_useRemoteServer()) {
59
- $this->_putFile(realpath($filename), basename($realFilename));
60
- sleep(2);
61
- unlink(realpath($filename));
62
- }
63
- $this->afterFileCopy();
64
- */
65
- return "Export done";
66
- }
67
-
68
-
69
-
70
- /**
71
- * Get xml object.
72
- */
73
- protected function writeXml() {
74
-
75
- $this->limiter = '###';
76
- $this->found = false;
77
-
78
- $this->customers = 0;
79
- $this->newsletterSubscribers = 0;
80
- $this->deleted = 0;
81
-
82
- //$this->exportPolicy = Mage::getStoreConfig('contactlab_subscribers/global/export_policy');
83
- $this->exportPolicy = Mage::getStoreConfig('contactlab_subscribers/global/export_policy');
84
- $this->helper = Mage::helper("contactlab_subscribers/exporter");
85
- $this->resource = Mage::getSingleton('core/resource');
86
-
87
- $this->ukQuery = "";
88
-
89
-
90
- Mage::helper("contactlab_commons")->enableDbProfiler();
91
-
92
- if ($this->_mustResetExportDates()) {
93
- $this->_resetExportDates();
94
- }
95
-
96
- $this->customerAttributes = $this->helper->getAttributesCodesForEntityType('customer');
97
- $this->addressAttributes = $this->helper->getAttributesCodesForEntityType('customer_address');
98
-
99
- $this->customerModel = Mage::getModel('customer/customer');
100
- $this->addressModel = Mage::getModel('customer/address');
101
-
102
- $this->statsAttributesMap = $this->helper->getStatsAttributesMap();
103
- $this->stores = $this->_loadStores();
104
-
105
- // Define customer collection
106
- $attribute_map = array(
107
- 'prefix' => 'prefix',
108
- 'firstname' => 'firstname',
109
- 'middlename' => 'middlename',
110
- 'lastname' => 'lastname',
111
- 'suffix' => 'suffix',
112
- 'dob' => 'dob',
113
- 'gender' => 'gender',
114
- 'email' => 'email',
115
- 'created_at' => 'created_at',
116
- /**
117
- * Adding new fields from extended newsletter subscription form
118
- */
119
- 'privacy' => 'privacy',
120
- 'mobilephone' => 'mobilephone',
121
- 'notes' => 'notes',
122
- 'custom_1' => 'custom_1',
123
- 'custom_2' => 'custom_2',
124
- 'customer_group_id' => 'customer_group_id',
125
- 'customer_group_name' => 'customer_group_name'
126
- );
127
-
128
- $tMapTransporter = Mage::getModel('contactlab_subscribers/exporter_subscribers_mapTransporter_attribute');
129
- $tMapTransporter->setMap($attribute_map);
130
- $tMapTransporter->setIsMod(false);
131
-
132
- Mage::dispatchEvent("contactlab_export_attributesmap",array(
133
- 'map_transporter' => $tMapTransporter
134
- ));
135
-
136
- if ($tMapTransporter->isMod()){
137
- $attribute_map = $tMapTransporter->getMap();
138
- }
139
-
140
-
141
-
142
- $address_attribute_map = array(
143
- 'country_id' => 'country_id',
144
- 'country' => 'country',
145
- 'region_id' => 'region_id',
146
- 'region' => 'region',
147
- 'postcode' => 'postcode',
148
- 'city' => 'city',
149
- 'street' => 'street',
150
- 'telephone' => 'telephone',
151
- 'fax' => 'fax',
152
- 'company' => 'company',
153
- );
154
-
155
- $tMapTransporter = Mage::getModel('contactlab_subscribers/exporter_subscribers_mapTransporter_address');
156
- $tMapTransporter->setMap($address_attribute_map);
157
- $tMapTransporter->setIsMod(false);
158
-
159
- Mage::dispatchEvent("contactlab_export_AddressesAttributesMap",array(
160
- 'map_transporter' => $tMapTransporter
161
- ));
162
-
163
- if ($tMapTransporter->isMod()){
164
- $address_attribute_map = $tMapTransporter->getMap();
165
- }
166
-
167
- $attributesCustomer = $this->helper->getAttributesForEntityType('customer',
168
- array_keys($attribute_map));
169
- $this->fAttributesMap = array_flip($attribute_map);
170
- $this->fAddressAttributes = array_flip($address_attribute_map);
171
-
172
- $counter = 0;
173
- $start = microtime(true);
174
- $max = $this->_createCounterSubscribersInCustomersCollection()->getSize();
175
- ////$this->getTask()->setMaxValue($max);
176
- Mage::helper("contactlab_commons")->logNotice(sprintf("Counting time: %0.4f", microtime(true) - $start));
177
-
178
- $customKeys = array();
179
- for ($ic = 1; $ic < 8; ++$ic) {
180
- if (Mage::getStoreConfigFlag("contactlab_subscribers/custom_fields/enable_field_" . $ic)) {
181
- $customKeys[] = Mage::getStoreConfig("contactlab_subscribers/custom_fields/field_" . $ic);
182
- }
183
- }
184
-
185
- $start = microtime(true);
186
-
187
- $limit = 50000;
188
- $page = 1;
189
- $preFilled = array_fill_keys(array_values($this->fAttributesMap), '');
190
- $this->_addAddressFields($preFilled);
191
- while (true) {
192
- $subscribersInCustomers = $this->_createSubscribersInCustomersCollection($attributesCustomer);
193
- $subscribersInCustomers->getSelect()->limitPage($page, $limit);
194
- Mage::helper("contactlab_commons")->logDebug($subscribersInCustomers->getSelect()->assemble());
195
- $found = false;
196
-
197
-
198
- while ($item = $subscribersInCustomers->fetchItem()) {
199
- $toFill = array();
200
- $found = true;
201
- $counter++;
202
- $toFill['is_customer'] = 1;
203
- if (!$item->hasData('uk')) {
204
- $msg = sprintf("FATAL ERROR, %s subscriber has no UK record!", $item->getData('email'));
205
- ////$this->getTask()->addEvent($msg, true);
206
- throw new Exception($msg);
207
- }
208
- $toFill['entity_id'] = $item->getData('uk');
209
-
210
- $toFill = array_merge($toFill, $preFilled);
211
- $toFill['email'] = $item->getData('email');
212
- $this->_setAttributeKeys($toFill, $item);
213
- $this->_setAddressesAttributeKeys($toFill, $item);
214
-
215
- $this->_fillStoreAttributes($toFill, $item);
216
- foreach ($this->statsAttributesMap as $k => $v) {
217
- $toFill[$k] = $item->getData($v);
218
- }
219
- $this->_fillCustomerGroupAttributes($toFill, $item);
220
- $this->_manageCustomerClsFlag($toFill, $item);
221
- /** Custom rispetto alla versione originale del modulo */
222
- $this->customizeInfoCustomer($toFill, $item);
223
-
224
- foreach ($customKeys as $icKey) {
225
- if (empty($icKey)) {
226
- continue;
227
- }
228
- $icValue = $item->getData($icKey);
229
- if (isset($toFill[$icKey]) && empty($toFill[$icKey]) && !empty($icValue)) {
230
- $toFill[$icKey] = $icValue;
231
- }
232
- }
233
-
234
- $this->found = true;
235
- $this->customers++;
236
- $writer = new XMLWriter();
237
- $writer->openMemory();
238
- $writer->setIndent(true);
239
- $writer->startElement("RECORD");
240
- $writer->writeAttribute('ACTION', 'U');
241
- foreach ($toFill as $k => $v) {
242
-
243
- if (empty($k)) {
244
- continue;
245
- }
246
- if ($k !== $this->getSubscribedFlagName()) {
247
- $k = strtoupper($this->getOutputTagName($k));
248
- }
249
- $writer->writeElement($k, $v);
250
- }
251
- $writer->endElement();
252
-
253
- gzwrite($this->gz, $writer->outputMemory());
254
-
255
- if ($counter % 2000 == 0) {
256
- Mage::helper("contactlab_commons")->logNotice(sprintf("Exporting %6s / %-6s", $counter, $max));
257
- //$this->getTask()->setProgressValue($counter);
258
- }
259
- }
260
- $this->_setUkIsExported();
261
- if (!$found) {
262
- break;
263
- }
264
- $page++;
265
- }
266
- Mage::helper("contactlab_commons")->logNotice(sprintf("Loop time: %0.4f", microtime(true) - $start));
267
-
268
- $this->_addNotCustomerRecords();
269
- $this->_addDeletedRecords();
270
-
271
- $this->_setUkIsExported();
272
-
273
- Mage::helper("contactlab_commons")->flushDbProfiler();
274
- if (!$this->found) {
275
- ////$this->getTask()->addEvent("No record exported or deleted");
276
- } else {
277
- if ($this->customers > 0) {
278
- ////$this->getTask()->addEvent(sprintf("%d customers exported", $this->customers));
279
- }
280
- if ($this->newsletterSubscribers > 0) {
281
- ////$this->getTask()->addEvent(sprintf("%d newsletter subscribers exported", $this->newsletterSubscribers));
282
- }
283
- if ($this->deleted > 0) {
284
- ////$this->getTask()->addEvent(sprintf("%d record deleted", $this->deleted));
285
- }
286
- }
287
- }
288
-
289
- /**
290
- * Create subscribers in customers collection.
291
- * @param Mage_Eav_Model_Resource_Entity_Attribute_Collection $attributesCustomer
292
- * @return Mage_Customer_Model_Resource_Customer_Collection
293
- */
294
- private function _createSubscribersInCustomersCollection(
295
- Mage_Eav_Model_Resource_Entity_Attribute_Collection $attributesCustomer)
296
- {
297
- /**
298
- * @var $subscribersInCustomers Mage_Customer_Model_Resource_Customer_Collection
299
- */
300
- $rv = Mage::getModel('customer/customer')->getCollection();
301
- // $w = 'subscriber_status = ' . Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
302
- // $w = $this->_manageExportPolicySql($w, array(
303
- // 'e#1' => 'updated_at',
304
- // 'e#2' => 'created_at',
305
- // $this->resource->getTableName('newsletter_subscriber') => 'last_updated_at'
306
- // ));
307
-
308
-
309
- // if (!$this->_mustExportNotSubscribed()) {
310
- // $rv->getSelect()
311
- // ->where('e.entity_id in (select customer_id from ' . $this->resource->getTableName('newsletter_subscriber')
312
- // . ' where ' . $w . ')');
313
- // }
314
-
315
- // Fills array of types with attributes id array
316
- foreach ($this->helper->fillBackendTypesFromArray($attributesCustomer) as $backendType => $ids) {
317
- $alias = 'ce' . $backendType;
318
- $w = 'e.entity_id = ' . $alias . '.entity_id and length(' . $alias . '.value) > 0 and '
319
- . $alias . '.attribute_id IN (' . implode(',', $ids) . ')';
320
- $rv->getSelect()->joinLeft(
321
- array(
322
- $alias => $this->resource->getTableName('customer_entity_' . $backendType)),
323
- $w, array($backendType . '_value' => new Zend_Db_Expr('GROUP_CONCAT(DISTINCT CONCAT('
324
- . $alias . ".attribute_id, '_', " .$alias. ".value) SEPARATOR '" . $this->limiter . "')")));
325
- }
326
-
327
- // Stats
328
- $this->_addStatsToSelect($rv);
329
- $this->_addAddressesToSelect($rv);
330
- $this->_addCustomerGroupToSelect($rv);
331
- $this->_manageExportPolicy($rv,
332
- array(
333
- 'e' => array('created_at', 'updated_at'),
334
- $this->resource->getTableName('newsletter_subscriber') => 'last_updated_at',
335
- ));
336
- $this->_addCustomerExportCollection($rv);
337
- $this->_addSubscriberFields($rv);
338
-
339
- $rv->getSelect()->group('e.entity_id');
340
-
341
- return $rv;
342
- }
343
-
344
- /**
345
- * Create count subscribers in customers collection.
346
- * @return Mage_Customer_Model_Resource_Customer_Collection
347
- */
348
- private function _createCounterSubscribersInCustomersCollection()
349
- {
350
- /**
351
- * @var $subscribersInCustomers Mage_Customer_Model_Resource_Customer_Collection
352
- */
353
- $rv = Mage::getModel('customer/customer')->getCollection();
354
- // $w = 'subscriber_status = ' . Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
355
- // $w = $this->_manageExportPolicySql($w, array(
356
- // 'e#1' => 'updated_at',
357
- // 'e#2' => 'created_at',
358
- // $this->resource->getTableName('newsletter_subscriber') => 'last_updated_at'
359
- // ));
360
-
361
- // if (!$this->_mustExportNotSubscribed()) {
362
- // $rv->getSelect()
363
- // ->where('e.entity_id in (select customer_id from ' . $this->resource->getTableName('newsletter_subscriber')
364
- // . ' where ' . $w . ')');
365
- // }
366
-
367
- $this->_manageExportPolicy($rv,
368
- array(
369
- 'e' => array('created_at', 'updated_at'),
370
- $this->resource->getTableName('newsletter_subscriber') => 'last_updated_at',
371
- ));
372
- $this->_addCustomerExportCollection($rv);
373
- return $rv;
374
- }
375
-
376
- /**
377
- * Called after the export.
378
- */
379
- public function afterFileCopy() {
380
- $this->helper->soapCallAfterExport($this->getTask());
381
- }
382
-
383
- /** Not customer records. */
384
- private function _addNotCustomerRecords() {
385
- Mage::helper("contactlab_commons")->logDebug("_addNotCustomerRecords");
386
- $preFilled = array_fill_keys(array_values($this->fAttributesMap), '');
387
- $this->_addAddressFields($preFilled);
388
- $subscribersNotInCustomers = $this->_createSubscribersNotInCustomers();
389
- $customKeys = array();
390
- for ($ic = 1; $ic < 8; ++$ic) {
391
- if (Mage::getStoreConfigFlag("contactlab_subscribers/custom_fields/enable_field_" . $ic)) {
392
- $customKeys[] = Mage::getStoreConfig("contactlab_subscribers/custom_fields/field_" . $ic);
393
- }
394
- }
395
- $counter = 0;
396
- $max = $subscribersNotInCustomers->getSize();
397
- ////$this->getTask()->setMaxValue($max);
398
-
399
- $limit = 200000;
400
- $page = 1;
401
- while (true) {
402
- $subscribersNotInCustomers = $this->_createSubscribersNotInCustomers();
403
- $subscribersNotInCustomers->getSelect()->limitPage($page, $limit);
404
- Mage::helper("contactlab_commons")->logDebug($subscribersNotInCustomers->getSelect()->assemble());
405
- $found = false;
406
-
407
- while ($item = $subscribersNotInCustomers->fetchItem()) {
408
- $counter++;
409
- $found = true;
410
- $toFill1 = array();
411
-
412
- $toFill1['is_customer'] = 0;
413
- if (!$item->hasData('uk')) {
414
- $msg = sprintf("FATAL ERROR, %s customer has no UK record!", $item->getData('subscriber_email'));
415
- //$this->getTask()->addEvent($msg, true);
416
- throw new Exception($msg);
417
- }
418
- $toFill1['entity_id'] = $item->getData('uk');
419
-
420
- $toFill = array_merge($toFill1, $preFilled);
421
- $toFill['email'] = $item->getData('subscriber_email');
422
- $this->_manageNewsletterClsFlag($toFill, $item);
423
- $this->_fillStoreAttributes($toFill, $item);
424
- $this->_fillNewsletterAttributes($toFill, $item);
425
- /** Custom rispetto alla versione originale del modulo */
426
- $this->customizeInfoSubscriber($toFill, $item);
427
-
428
- foreach ($customKeys as $icKey) {
429
- if (empty($icKey)) {
430
- continue;
431
- }
432
- $icValue = $item->getData($icKey);
433
- if (isset($toFill[$icKey]) && empty($toFill[$icKey]) && !empty($icValue)) {
434
- $toFill[$icKey] = $icValue;
435
- }
436
- }
437
-
438
- $this->found = true;
439
- $this->newsletterSubscribers++;
440
- $writer = new XMLWriter();
441
- $writer->openMemory();
442
- $writer->setIndent(true);
443
- $writer->startElement("RECORD");
444
- $writer->writeAttribute('ACTION', 'U');
445
- foreach ($toFill as $k => $v) {
446
- if (empty($k)) {
447
- continue;
448
- }
449
- if ($k !== $this->getSubscribedFlagName()) {
450
- $k = strtoupper($this->getOutputTagName($k));
451
- }
452
- $writer->writeElement($k, $v);
453
- }
454
- $writer->endElement();
455
- gzwrite($this->gz, $writer->outputMemory());
456
- if ($counter % 2000 == 0) {
457
- Mage::helper("contactlab_commons")->logNotice(sprintf("Exporting %6s / %-6s", $counter, $max));
458
- //$this->getTask()->setProgressValue($counter);
459
- }
460
- }
461
- $this->_setUkIsExported();
462
- if (!$found) {
463
- break;
464
- }
465
- $page++;
466
- }
467
- }
468
-
469
-
470
- /**
471
- * Create subscribers not in customers.
472
- * @return Contactlab_Template_Model_Resource_Newsletter_Subscriber_Collection
473
- */
474
- private function _createSubscribersNotInCustomers()
475
- {
476
- /** @var $rv Contactlab_Template_Model_Resource_Newsletter_Subscriber_Collection */
477
- $rv = Mage::getModel('contactlab_subscribers/uk')->getCollection();
478
- $rv->addFieldToSelect(
479
- array('uk' => 'entity_id', 'is_exported' => 'is_exported')
480
- );
481
- $this->_addSubscriberFields($rv, 'main_table');
482
- $rv->getSelect()->joinLeft(
483
- array('native_nl' => $this->resource->getTableName('newsletter/subscriber')),
484
- 'native_nl.subscriber_id = main_table.subscriber_id');
485
- $this->_manageExportPolicy($rv,
486
- array('native_nl' => 'last_updated_at'));
487
- if (!$this->_mustExportNotSubscribed()) {
488
- $rv->addFieldToFilter('native_nl.subscriber_status', Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED);
489
- }
490
- $rv->getSelect()->where('main_table.customer_id is null or main_table.customer_id = 0');
491
- return $rv;
492
- }
493
-
494
-
495
- /**
496
- * Add delete records.
497
- */
498
- private function _addDeletedRecords() {
499
- /** @var $deletedEntities Contactlab_Commons_Model_Resource_Deleted_Collection */
500
- $deletedEntities = Mage::getModel('contactlab_commons/deleted')
501
- ->getCollection()
502
- ->addFieldToFilter('task_id', array('null' => true));
503
-
504
- $counter = 0;
505
- // FIXME TODO count vs getSize
506
- $max = $deletedEntities->count();
507
-
508
- Mage::helper("contactlab_commons")->logDebug($deletedEntities->getSelect()->assemble());
509
- $this->deletedEntities = array();
510
- $preFilled = array_fill_keys(array_keys($this->fAttributesMap), '');
511
- $this->_addAddressFields($preFilled);
512
-
513
- /** @var $deletedEntity Contactlab_Commons_Model_Deleted */
514
- while ($deletedEntity = $deletedEntities->fetchItem()) {
515
- $counter++;
516
- $toFill1 = array();
517
-
518
- $this->found = true;
519
- $this->deleted++;
520
-
521
- $toFill1['is_customer'] = $deletedEntity->getIsCustomer();
522
- $toFill1['entity_id'] = $deletedEntity->getEntityId();
523
- $toFill = array_merge($toFill1, $preFilled);
524
- $toFill['email'] = $deletedEntity->getEmail();
525
- /** Custom rispetto alla versione originale del modulo */
526
- $this->customizeInfoDeleted($toFill, $deletedEntity);
527
-
528
-
529
- $writer = new XMLWriter();
530
- $writer->openMemory();
531
- $writer->setIndent(true);
532
- $writer->startElement("RECORD");
533
- $writer->writeAttribute('ACTION', 'D');
534
- foreach ($toFill as $k => $v) {
535
- if ($k !== $this->getSubscribedFlagName()) {
536
- $k = strtoupper($k);
537
- }
538
- $writer->writeElement($k, $v);
539
- }
540
- $writer->endElement();
541
- gzwrite($this->gz, $writer->outputMemory());
542
- /*
543
- $deletedEntity->setTaskId($this->getTask()->getTaskId())->save();
544
- if ($counter % 500 == 0) {
545
- Mage::helper("contactlab_commons")->logNotice(sprintf("Exporting deleted %6s / %-6s", $counter, $max));
546
- }
547
- */
548
- }
549
- }
550
-
551
- /**
552
- * Set addresses attribute keys.
553
- * @param array $toFill
554
- * @param Varien_Object $data
555
- */
556
- private function _setAddressesAttributeKeys(array &$toFill, Varien_Object $data) {
557
- $this->_setAddressAttributeKeys($toFill, $data, "shipping");
558
- $this->_setAddressAttributeKeys($toFill, $data, "billing");
559
- }
560
-
561
- /**
562
- * Do export address with type.
563
- * @param string $addressType
564
- * @return bool
565
- */
566
- private function _mustExportAddress($addressType) {
567
- return Mage::getStoreConfigFlag("contactlab_subscribers/global/export_" . $addressType . "_address");
568
- }
569
-
570
- /**
571
- * Set address attribute keys.
572
- * @param array $toFill
573
- * @param Varien_Object $data
574
- * @param $addressType
575
- */
576
- private function _setAddressAttributeKeys(array &$toFill, Varien_Object $data, $addressType) {
577
- if (!$this->_mustExportAddress($addressType)) {
578
- return;
579
- }
580
- $entityTypes = array('int', 'varchar', 'text', 'decimal', 'datetime');
581
- foreach ($entityTypes as $type) {
582
- if (!array_key_exists($addressType . '_' . $type . '_value', $data->getData())) {
583
- return;
584
- }
585
- $values = explode($this->limiter, $data->getData($addressType . '_' . $type . '_value'));
586
- foreach ($values as $key) {
587
- $pos = strpos($key, '_');
588
- if ($pos === false) {
589
- continue;
590
- }
591
- $k = substr($key, 0, $pos);
592
- $v = substr($key, $pos + 1);
593
- if (!array_key_exists($k, $this->addressAttributes)) {
594
- continue;
595
- }
596
- $toFill[$addressType . '_' . $this->fAddressAttributes[$this->addressAttributes[$k]]] =
597
- $this->helper->decode($this->addressModel, 'address', $this->addressAttributes[$k], $v);
598
- }
599
- }
600
- }
601
-
602
- /**
603
- * Set attribute keys.
604
- * @param array $toFill
605
- * @param Varien_Object $data
606
- */
607
- private function _setAttributeKeys(array &$toFill, Varien_Object $data) {
608
- $entityTypes = array('int', 'varchar', 'text', 'decimal', 'datetime');
609
- foreach ($entityTypes as $type) {
610
- if (!array_key_exists($type . '_value', $data->getData())) {
611
- continue;
612
- }
613
- $values = explode($this->limiter, $data->getData($type . '_value'));
614
- foreach ($values as $key) {
615
- $pos = strpos($key, '_');
616
- if ($pos === false) {
617
- continue;
618
- }
619
- $k = substr($key, 0, $pos);
620
- $v = substr($key, $pos + 1);
621
- if (!array_key_exists($k, $this->customerAttributes)) {
622
- continue;
623
- }
624
- // use flipped array for cstm attributes
625
- //$flip = array_flip($this->fAttributesMap);
626
- //$toFill[$this->fAttributesMap[$this->customerAttributes[$k]]] =
627
- // $toFill[$flip[$this->customerAttributes[$k]]] =
628
- $toFill[$this->customerAttributes[$k]] =
629
- $this->helper->decode($this->customerModel, 'customer', $this->customerAttributes[$k], $v);
630
- }
631
- }
632
-
633
- }
634
-
635
- /**
636
- * Add store, group and website attributes.
637
- * @param array $toFill
638
- * @param Varien_Object $item
639
- */
640
- private function _fillStoreAttributes(array &$toFill, Varien_Object $item) {
641
- $store = $this->stores[$item->getData('store_id')];
642
- foreach (array('store_id', 'store_name', 'website_id', 'website_name',
643
- 'group_id', 'group_name', 'lang') as $k) {
644
- $toFill[$k] = $store[$k];
645
- }
646
- }
647
-
648
- private function _fillCustomerGroupAttributes(array &$toFill, Varien_Object $item)
649
- {
650
- $toFill['customer_group_id'] = $item->getData('customer_group_id');
651
- $toFill['customer_group_name'] = $item->getData('customer_group_name');
652
- //FIX
653
- $toFill['created_at'] = $item->getData('created_at');
654
- }
655
-
656
- /**
657
- * Fill Newsletter attributes fields.
658
- * @param array $toFill
659
- * @param Varien_Object $item
660
- */
661
- private function _fillNewsletterAttributes(array &$toFill, Varien_Object $item)
662
- {
663
- foreach ($this->helper->getSubscriberToCustomerAttributeMap() as $k => $v) {
664
- if (!$this->_doManageAddressAttribute($v)) {
665
- continue;
666
- }
667
- $toFill[$v] = $item->getData($k);
668
- }
669
- }
670
-
671
- /**
672
- * Add stats to collection.
673
- * @param Varien_Data_Collection_Db $collection
674
- */
675
- private function _addStatsToSelect(Varien_Data_Collection_Db $collection) {
676
- $collection->getSelect()->joinLeft(
677
- array('stats' => $this->resource->getTableName('contactlab_subscribers/stats')),
678
- 'stats.customer_id = e.entity_id', $this->statsAttributesMap);
679
- }
680
-
681
- /**
682
- * Add customer export to collection.
683
- * @param Varien_Data_Collection_Db $collection
684
- */
685
- private function _addCustomerExportCollection(Varien_Data_Collection_Db $collection) {
686
- if (!$this->_mustExportNotSubscribed()) {
687
- $w = 'subscriber_status = ' . Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
688
- $w = $this->_manageExportPolicySql($w, array(
689
- 'e#1' => 'updated_at',
690
- 'e#2' => 'created_at',
691
- $this->resource->getTableName('newsletter_subscriber') => 'last_updated_at'
692
- ));
693
-
694
- $collection->getSelect()->joinInner(
695
- array('newsletter_subscriber' => $this->resource->getTableName('newsletter/subscriber')),
696
- 'newsletter_subscriber.customer_id = e.entity_id AND ' . $w,
697
- array('subscriber_status' => 'subscriber_status'));
698
- }else{
699
- $collection->getSelect()->joinLeft(
700
- array('newsletter_subscriber' => $this->resource->getTableName('newsletter/subscriber')),
701
- 'newsletter_subscriber.customer_id = e.entity_id',
702
- array('subscriber_status' => 'subscriber_status'));
703
- }
704
-
705
- $collection->getSelect()->joinLeft(
706
- array('uk' => $this->resource->getTableName('contactlab_subscribers/uk')),
707
- 'uk.customer_id = e.entity_id',
708
- array('uk' => 'entity_id', 'is_exported' => 'is_exported'));
709
- }
710
-
711
- /**
712
- * Add newsletter subscriber export to collection.
713
- * @param Varien_Data_Collection_Db $collection
714
- */
715
- private function _addNewsletterSubscriberExportCollection(Varien_Data_Collection_Db $collection) {
716
- $collection->getSelect()->joinLeft(
717
- array('uk' => $this->resource->getTableName('contactlab_subscribers/uk')),
718
- 'uk.subscriber_id = main_table.subscriber_id',
719
- array('uk' => 'entity_id', 'is_exported' => 'is_exported'));
720
- }
721
-
722
- /**
723
- * Add export policy to sql statement.
724
- * @param Varien_Data_Collection_Db $collection
725
- * @param array $fields
726
- */
727
- private function _manageExportPolicy(Varien_Data_Collection_Db $collection,
728
- array $fields) {
729
- if ($this->exportPolicy != '2') {
730
- // Ok, will export everything
731
- return;
732
- }
733
- $lastExport = Mage::getStoreConfig('contactlab_subscribers/global/last_export');
734
- if (empty($lastExport)) {
735
- // Ok, will export everything, no last import saved.
736
- return;
737
- }
738
- $clause = '';
739
- //$lastExport = Mage::getModel("core/date")->gmtDate(null, $lastExport);
740
-
741
- foreach ($fields as $table => $field) {
742
- if (!is_array($field)) {
743
- $field = array($field);
744
- }
745
- foreach ($field as $item) {
746
- if (!empty($clause)) {
747
- $clause .= ' or ';
748
- }
749
- $clause .= sprintf("%s.%s >= '%s'", $table, $item, $lastExport);
750
- if (preg_match("/.*newsletter_subscriber.*/", $table)) {
751
- $clause .= sprintf(" or (%s.%s is null and %s.subscriber_id is not null)", $table, $item, $table);
752
- } else {
753
- $clause .= sprintf(" or %s.%s is null", $table, $item);
754
- }
755
- }
756
- }
757
- $collection->getSelect()->where($clause);
758
- }
759
-
760
- /**
761
- * Add export policy to sql statement.
762
- * @param string $w
763
- * @param array $fields
764
- * @return string
765
- */
766
- private function _manageExportPolicySql($w, array $fields) {
767
- if ($this->exportPolicy != '2') {
768
- // Ok, will export everything
769
- return $w;
770
- }
771
- $lastExport = Mage::getStoreConfig('contactlab_subscribers/global/last_export');
772
- if (empty($lastExport)) {
773
- // Ok, will export everything, no last import saved.
774
- return $w;
775
- }
776
- // $lastExport = Mage::getModel("core/date")->gmtDate(null, $lastExport);
777
-
778
- $w .= ' and (';
779
- $first = true;
780
- foreach ($fields as $table => $field) {
781
- $table = preg_replace('|#.*|', '', $table);
782
- if (!is_array($field)) {
783
- $field = array($field);
784
- }
785
- if (!$first) {
786
- $w .= ' and ';
787
- }
788
- foreach ($field as $item) {
789
- $w .= sprintf("%s.%s >= '%s'", $table, $item, $lastExport);
790
- if (preg_match("/.*newsletter_subscriber.*/", $table)) {
791
- $w .= sprintf(" or (%s.%s is null and %s.subscriber_id is not null)", $table, $item, $table);
792
- } else {
793
- $w .= sprintf(" or %s.%s is null", $table, $item);
794
- }
795
- }
796
- $first = false;
797
- }
798
- $w .= ')';
799
- return $w;
800
- }
801
-
802
- /**
803
- * Add addresses to select
804
- * @param Varien_Data_Collection_Db $collection
805
- */
806
- private function _addAddressesToSelect(Varien_Data_Collection_Db $collection) {
807
- $this->_addAddressToSelect($collection, "shipping");
808
- $this->_addAddressToSelect($collection, "billing");
809
- }
810
-
811
- /**
812
- * Add address to select.
813
- * @param Varien_Data_Collection_Db $collection
814
- * @param string $type
815
- */
816
- private function _addAddressToSelect(Varien_Data_Collection_Db $collection, $type) {
817
- if (!Mage::getStoreConfigFlag("contactlab_subscribers/global/export_" . $type . "_address")) {
818
- return;
819
- }
820
- $collection->getSelect()->joinLeft(
821
- array($type . '_addr' => $this->resource->getTableName('customer_entity_int')),
822
- $type . '_addr.entity_id = e.entity_id and ' . $type . '_addr.attribute_id = '
823
- . $this->helper->getAttributeId('customer', 'default_' . $type),
824
- array('default_' . $type => 'value'));
825
-
826
- // Fills array of types with attributes id array
827
- $attributesAddress = $this->helper->getAttributesForEntityType('customer_address',
828
- array_values($this->helper->getAddressesAttributesMap()));
829
- foreach ($this->helper->fillBackendTypesFromArray($attributesAddress) as $backendType => $ids) {
830
- $alias = 'ce' . $type . $backendType;
831
- $w = $type . '_addr.value = ' . $alias . '.entity_id and length(' . $alias . '.value) > 0 and '
832
- . $alias . '.attribute_id IN (' . implode(',', $ids) . ')';
833
- $collection->getSelect()->joinLeft(
834
- array(
835
- $alias => $this->resource->getTableName('customer_address_entity_' . $backendType)),
836
- $w, array($type . '_' . $backendType . '_value' => new Zend_Db_Expr('GROUP_CONCAT(DISTINCT CONCAT('
837
- . $alias . ".attribute_id, '_', " .$alias. ".value) SEPARATOR '" . $this->limiter . "')")));
838
- }
839
- }
840
-
841
- /**
842
- * Remove deleted entity.
843
- * @throws Exception
844
- */
845
- private function _removeDeletedEntity() {
846
- $toDelete = Mage::getModel('contactlab_commons/deleted')
847
- ->getCollection()
848
- ->addFieldToFilter('task_id', $this->getTask()->getTaskId());
849
-
850
- $counter = 0;
851
- $max = $toDelete->count();
852
-
853
- Mage::helper("contactlab_commons")->logDebug($toDelete->getSelect()->assemble());
854
-
855
- foreach ($toDelete as $item) {
856
- $counter++;
857
- $item->delete();
858
- if ($counter % 500 == 0) {
859
- Mage::helper("contactlab_commons")->logNotice(sprintf("Deleted %6s / %-6s", $counter, $max));
860
- }
861
- }
862
- }
863
-
864
- /**
865
- * Load stores.
866
- * @return array
867
- */
868
- private function _loadStores() {
869
- $rv = array();
870
- $websiteTable = $this->resource->getTableName('core/website');
871
- $storeGroupTable = $this->resource->getTableName('core/store_group');
872
-
873
- /** @var Mage_Core_Model_Resource_Store_Collection $stores */
874
- $stores = Mage::getModel('core/store')
875
- ->getCollection()->setLoadDefault(true);
876
- $stores->addFieldToSelect('*')->getSelect()
877
- ->join(array('core_website' => $websiteTable),
878
- 'main_table.website_id = ' . 'core_website.website_id',
879
- array('website_name' => 'core_website.name'))
880
- ->join(array('core_store_group' => $storeGroupTable),
881
- 'main_table.group_id = ' . 'core_store_group.group_id',
882
- array('group_name' => 'core_store_group.name'));
883
- /** @var $store Mage_Core_Model_Store */
884
- foreach ($stores as $store) {
885
- $storeId = $store->getData('store_id');
886
- $rv[$storeId] = array(
887
- 'store_id' => $storeId,
888
- 'website_id' => $store->getData('website_id'),
889
- 'group_id' => $store->getData('group_id'),
890
- 'store_name' => $store->getData('mame'),
891
- 'website_name' => $store->getData('website_name'),
892
- 'group_name' => $store->getData('group_name'),
893
- 'lang' => $store->getConfig("general/locale/code"),
894
- );
895
- }
896
- return $rv;
897
- }
898
-
899
- /**
900
- * Do I have to export all contacts? Or only subscribed ones?
901
- * @return bool
902
- */
903
- private function _mustExportNotSubscribed() {
904
- return Mage::getStoreConfigFlag("contactlab_subscribers/global/export_not_subscribed");
905
- }
906
-
907
- /**
908
- * Do I have to reset export dates before export?
909
- * @return bool
910
- */
911
- /*
912
- private function _mustResetExportDates() {
913
- return Mage::getStoreConfigFlag("contactlab_subscribers/global/reset_export_dates_before_next_export");
914
- }
915
- */
916
-
917
- private function _mustResetExportDates() {
918
- return Mage::getStoreConfig("contactlab_subscribers/global/reset_export_dates_before_next_export");
919
- }
920
-
921
- /**
922
- * Reset reset export flg.
923
- */
924
- private function _resetMustResetExportDatesFlag() {
925
- Mage::helper("contactlab_commons")->logDebug("Reset reset_export_dates_before_next_export flag");
926
- Mage::getConfig()
927
- ->saveConfig('contactlab_subscribers/global/reset_export_dates_before_next_export', '0');
928
- Mage::getConfig()->reinit();
929
- Mage::app()->reinitStores();
930
- }
931
-
932
- private function _resetExportDates() {
933
- $tableName = $this->resource->getTableName('contactlab_subscribers/uk');
934
- $this->_query("update $tableName set is_exported = 0;");
935
- }
936
-
937
- /**
938
- * Run custom query.
939
- * @param $sql
940
- * @return Zend_Db_Statement_Interface
941
- */
942
- private function _query($sql) {
943
- $write = Mage::getSingleton('core/resource')->getConnection('core_write');
944
- return $write->query($sql);
945
- }
946
-
947
-
948
- /** Get subscription flag name. */
949
- public function getSubscribedFlagName() {
950
- return Mage::getStoreConfig("contactlab_subscribers/global/subscribed_flag_name");
951
- }
952
-
953
- /**
954
- * Manage if include CLS tag and his value.
955
- * Fill the persistence table.
956
- * @param array $toFill
957
- * @param Varien_Object $item
958
- */
959
- private function _manageCustomerClsFlag(array &$toFill, Varien_Object $item) {
960
- /* 1 = Subscribed
961
- 0 = Not subscribed
962
- -1 = Unsubscribed
963
- */
964
- if ($this->_manageClsFlag($toFill, $item)) {
965
- if ($this->ukQuery != '') {
966
- $this->ukQuery .= ', ';
967
- }
968
- $this->ukQuery .= $item->getData('uk');
969
- }
970
- }
971
-
972
- /**
973
- * Manage if include CLS tag and his value.
974
- * Fill the persistence table.
975
- * @param array $toFill
976
- * @param Varien_Object $item
977
- */
978
- private function _manageNewsletterClsFlag(array &$toFill, Varien_Object $item) {
979
- if ($this->_manageClsFlag($toFill, $item, true)) {
980
- if ($this->ukQuery != '') {
981
- $this->ukQuery .= ', ';
982
- }
983
- $this->ukQuery .= $item->getData('uk');
984
- }
985
- }
986
-
987
- /**
988
- * Manage if include CLS tag and his value.
989
- * Fill the persistence table.
990
- * @param array $toFill
991
- * @param Varien_Object $item
992
- * @param bool $force
993
- * @return bool
994
- */
995
- private function _manageClsFlag(array &$toFill, Varien_Object $item, $force = false) {
996
- // If processing record has (first) ExportDate, return.
997
- if ($item->hasData('is_exported') && $item->getData('is_exported') == 1 && !$force) {
998
- return false;
999
- }
1000
- $toFill[$this->getSubscribedFlagName()]
1001
- = $item->getData('subscriber_status') == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED
1002
- ? 1 : 0;
1003
- return true;
1004
- }
1005
-
1006
- /**
1007
- * Is enabled.
1008
- * @return bool
1009
- */
1010
- protected function isEnabled() {
1011
- return Mage::helper("contactlab_subscribers")->isEnabled($this->getTask());
1012
- }
1013
-
1014
- /**
1015
- * Get file name.
1016
- * @return string
1017
- */
1018
- /*
1019
- protected function getFileName() {
1020
- return Mage::getStoreConfig("contactlab_subscribers/global/export_filename");
1021
- }
1022
- */
1023
- protected function getFileName() {
1024
- return Mage::getStoreConfig("contactlab_subscribers/global/export_filename");
1025
- }
1026
-
1027
- /**
1028
- * Called after the export.
1029
- */
1030
- public function afterExport() {
1031
- $this->helper->saveLastExportDatetime($this->getTask());
1032
- $this->_removeDeletedEntity();
1033
- if ($this->_mustResetExportDates()) {
1034
- $this->_resetMustResetExportDatesFlag();
1035
- }
1036
- }
1037
-
1038
- /**
1039
- * Set uk is exported.
1040
- */
1041
- private function _setUkIsExported()
1042
- {
1043
- if ($this->ukQuery != "") {
1044
- $tableName = $this->resource->getTableName('contactlab_subscribers/uk');
1045
- $this->ukQuery = "update $tableName set is_exported = 1 where entity_id in ({$this->ukQuery})";
1046
- $this->_query($this->ukQuery);
1047
- $this->ukQuery = "";
1048
- }
1049
- }
1050
-
1051
- /**
1052
- * Add subscriber fields.
1053
- * @param Varien_Data_Collection_Db $collection
1054
- * @param string $table Table name for join
1055
- * @return Varien_Db_Select
1056
- */
1057
- private function _addSubscriberFields(Varien_Data_Collection_Db $collection, $table = 'newsletter_subscriber')
1058
- {
1059
- return $collection->getSelect()->joinLeft(
1060
- array('fields' => $this->resource->getTableName('contactlab_subscribers/newsletter_subscriber_fields')),
1061
- "fields.subscriber_id = $table.subscriber_id"
1062
- );
1063
- }
1064
-
1065
- /**
1066
- * Do include this field into xml element?
1067
- * @param String $attributeCode
1068
- * @return bool
1069
- */
1070
- private function _doManageAddressAttribute($attributeCode)
1071
- {
1072
- if (preg_match('|^billing_|', $attributeCode)) {
1073
- return $this->_mustExportAddress('billing');
1074
- } else if (preg_match('|^shipping|', $attributeCode)) {
1075
- return $this->_mustExportAddress('shipping');
1076
- }
1077
- return true;
1078
- }
1079
-
1080
- /**
1081
- * Add address fields.
1082
- * @param array $preFilled
1083
- */
1084
- private function _addAddressFields(array &$preFilled)
1085
- {
1086
- foreach (array('billing', 'shipping') as $addressType) {
1087
- if ($this->_mustExportAddress($addressType)) {
1088
- foreach ($this->fAddressAttributes as $k) {
1089
- $preFilled[$addressType . '_' . $k] = '';
1090
- }
1091
- }
1092
- }
1093
- }
1094
-
1095
- /**
1096
- * @param Varien_Data_Collection_Db $collection
1097
- * @return Varien_Db_Select
1098
- */
1099
- private function _addCustomerGroupToSelect(Varien_Data_Collection_Db $collection)
1100
- {
1101
- return $collection->getSelect()->joinInner(
1102
- array(
1103
- 'customer_group' => $this->resource->getTableName('customer/customer_group')
1104
- ),
1105
- "customer_group.customer_group_id = e.group_id",
1106
- array(
1107
- 'customer_group_name' => 'customer_group_code',
1108
- 'customer_group_id' => 'customer_group_id'
1109
- )
1110
- );
1111
- }
1112
-
1113
- /**
1114
- * Use destination field name for cstm fields
1115
- * @param $k
1116
- * @return mixed
1117
- */
1118
- private function getOutputTagName($k) {
1119
- if (isset($this->fAttributesMap[$k]) && strpos($k, 'cstm') === 0) {
1120
- return $this->fAttributesMap[$k];
1121
- }
1122
- return $k;
1123
- }
1124
-
1125
- /**
1126
- * Custom rispetto alla versione originale del modulo
1127
- */
1128
- protected function customizeInfoCustomer(array &$toFill, Varien_Object $customer){
1129
- $tCustInfo = Mage::getModel('contactlab_subscribers/exporter_subscribers_infoTransporter_customer');
1130
- $tCustInfo->setInfo($toFill);
1131
- $tCustInfo->setCustomer($customer);
1132
- $tCustInfo->setIsMod(false);
1133
-
1134
- Mage::dispatchEvent("contactlab_export_subscribers_customer_info",array(
1135
- 'customer_info' => $tCustInfo
1136
- ));
1137
-
1138
- if ($tCustInfo->isMod()){
1139
- $toFill = $tCustInfo->getInfo();
1140
- }
1141
- }
1142
-
1143
-
1144
- /**
1145
- * Custom rispetto alla versione originale del modulo
1146
- */
1147
- protected function customizeInfoDeleted(array &$toFill, Varien_Object $deleted){
1148
- $tDeletedInfo = Mage::getModel('contactlab_subscribers/exporter_subscribers_infoTransporter_deleted');
1149
- $tDeletedInfo->setInfo($toFill);
1150
- $tDeletedInfo->setDeleted($deleted);
1151
- $tDeletedInfo->setIsMod(false);
1152
-
1153
- Mage::dispatchEvent("contactlab_export_subscribers_deleted_info",array(
1154
- 'deleted_info' => $tDeletedInfo
1155
- ));
1156
-
1157
- if ($tDeletedInfo->isMod()){
1158
- $toFill = $tDeletedInfo->getInfo();
1159
- }
1160
- }
1161
-
1162
-
1163
- /**
1164
- * Custom rispetto alla versione originale del modulo
1165
- */
1166
- protected function customizeInfoSubscriber(array &$toFill, Varien_Object $subscriber){
1167
- $tSubscriberInfo = Mage::getModel('contactlab_subscribers/exporter_subscribers_infoTransporter_subscriber');
1168
- $tSubscriberInfo->setInfo($toFill);
1169
- $tSubscriberInfo->setSubscriber($subscriber);
1170
- $tSubscriberInfo->setIsMod(false);
1171
-
1172
- Mage::dispatchEvent("contactlab_export_subscribers_subscriber_info",array(
1173
- 'subscriber_info' => $tSubscriberInfo
1174
- ));
1175
-
1176
- if ($tSubscriberInfo->isMod()){
1177
- $toFill = $tSubscriberInfo->getInfo();
1178
- }
1179
- }
1180
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Contactlab/Subscribers/Model/Soap/SetSubscriptionStatus.php CHANGED
@@ -31,8 +31,7 @@ class Contactlab_Subscribers_Model_Soap_SetSubscriptionStatus extends Contactlab
31
  $modifySubscriberSubscriptionStatus->token = $this->getAuthToken();
32
  $modifySubscriberSubscriptionStatus->webFormCode = $this->getConfig("contactlab_subscribers/global/web_form_code");
33
  $modifySubscriberSubscriptionStatus->subscriberIdentifier = $subscriber->identifier;
34
- $modifySubscriberSubscriptionStatus->isSubscribed = $this->getSubscriberStatus() ? 1 : 0;
35
-
36
  $rv = $this->getClient()->modifySubscriberSubscriptionStatus($modifySubscriberSubscriptionStatus);
37
 
38
  return $rv;
31
  $modifySubscriberSubscriptionStatus->token = $this->getAuthToken();
32
  $modifySubscriberSubscriptionStatus->webFormCode = $this->getConfig("contactlab_subscribers/global/web_form_code");
33
  $modifySubscriberSubscriptionStatus->subscriberIdentifier = $subscriber->identifier;
34
+ $modifySubscriberSubscriptionStatus->isSubscribed = $this->getSubscriberStatus() ? 1 : 0;
 
35
  $rv = $this->getClient()->modifySubscriberSubscriptionStatus($modifySubscriberSubscriptionStatus);
36
 
37
  return $rv;
app/code/community/Contactlab/Subscribers/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Contactlab_Subscribers>
5
- <version>1.2.0</version>
6
  <description>Subscriber sync Magento/ContactLab and ContactLab/Magento.</description>
7
  </Contactlab_Subscribers>
8
  </modules>
2
  <config>
3
  <modules>
4
  <Contactlab_Subscribers>
5
+ <version>1.2.2</version>
6
  <description>Subscriber sync Magento/ContactLab and ContactLab/Magento.</description>
7
  </Contactlab_Subscribers>
8
  </modules>
app/code/community/Contactlab/Subscribers/sql/contactlab_subscribers_setup/{upgrade-0.8.8-1.2.0.php → mysql4-upgrade-1.2.0-1.2.2.php} RENAMED
File without changes
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Cart.php CHANGED
@@ -81,7 +81,9 @@ class Contactlab_Template_Model_Newsletter_Processor_Cart extends Contactlab_Tem
81
  * @param array $item
82
  * @return string
83
  */
84
- public function getPriceFor(Mage_Catalog_Model_Product $product, array $item) {
85
- return Mage::app()->getStore()->formatPrice(floatval($item[3]));
 
 
86
  }
87
  }
81
  * @param array $item
82
  * @return string
83
  */
84
+ public function getPriceFor(Mage_Catalog_Model_Product $product, array $item)
85
+ {
86
+ $store = Mage::getModel('core/store')->load($product->getStoreId());
87
+ return $store->formatPrice(floatval($item[3]));
88
  }
89
  }
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Cart/Products.php CHANGED
@@ -30,8 +30,8 @@ class Contactlab_Template_Model_Newsletter_Processor_Filter_Cart_Products
30
  $collection->getSelect()->join(
31
  array('cart_items' => $cartItem),
32
  'cart_items.quote_id = cart.entity_id and cart_items.parent_item_id is null',
33
- array('product_ids' => 'GROUP_CONCAT(concat(product_id, \'|\', qty, \'|\', item_id, \'|\', row_total)'
34
- . ' ORDER BY row_total desc SEPARATOR \',\')'));
35
 
36
  $collection->getSelect()->group("$mainTable.$field");
37
 
30
  $collection->getSelect()->join(
31
  array('cart_items' => $cartItem),
32
  'cart_items.quote_id = cart.entity_id and cart_items.parent_item_id is null',
33
+ array('product_ids' => 'GROUP_CONCAT(concat(product_id, \'|\', qty, \'|\', item_id, \'|\', row_total_incl_tax, \'|\', quote_currency_code)'
34
+ . ' ORDER BY row_total_incl_tax desc SEPARATOR \',\')'));
35
 
36
  $collection->getSelect()->group("$mainTable.$field");
37
 
app/code/community/Contactlab/Template/Model/Newsletter/Template.php CHANGED
@@ -225,8 +225,8 @@ class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Mode
225
  * @param string[] $item
226
  * @return string
227
  */
228
- public function getPriceFor(Mage_Catalog_Model_Product $product, array $item, $storeId) {
229
- return $this->getTemplateQueueProcessor($storeId)->getPriceFor($product, $item);
230
  }
231
 
232
  /**
225
  * @param string[] $item
226
  * @return string
227
  */
228
+ public function getPriceFor(Mage_Catalog_Model_Product $product, array $item, $storeId) {
229
+ return $this->getTemplateQueueProcessor($storeId)->getPriceFor($product->setStoreId($storeId), $item);
230
  }
231
 
232
  /**
app/design/frontend/base/default/layout/contactlab/layout.xml DELETED
@@ -1,10 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <layout version="0.1.0">
3
- <catalog_product_view>
4
- <reference name="head">
5
- <block type="core/text" name="your_external_file">
6
- <action method="setText"><text><![CDATA[<script>console.log("ContactHub EventTracker loaded.");</script>]]></text></action>
7
- </block>
8
- </reference>
9
- </catalog_product_view>
10
- </layout>
 
 
 
 
 
 
 
 
 
 
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Contactlab_Modules</name>
4
- <version>2.5.3</version>
5
  <stability>stable</stability>
6
  <license uri="https://opensource.org/licenses/osl-3.0.php">OSL v. 3.0</license>
7
  <channel>community</channel>
@@ -25,11 +25,13 @@ The plugin makes it easier to manage:&lt;/p&gt;&#xD;
25
  &lt;/ul&gt;&#xD;
26
  &#xD;
27
  &lt;p&gt;ContactLab Connect for Magento has been developed in collaboration with WebFormat&lt;/p&gt;</description>
28
- <notes>- New flow for subscriber created_at</notes>
 
 
29
  <authors><author><name>ContactLab</name><user>ContactLab</user><email>magento@contactlab.com</email></author></authors>
30
- <date>2017-01-17</date>
31
- <time>08:29:11</time>
32
- <contents><target name="magecommunity"><dir name="Contactlab"><dir name="Commons"><dir name="Block"><dir name="Adminhtml"><file name="Backend.php" hash="208c57c38069bb462ea48b56c753bd83"/><file name="ConfigurationCheck.php" hash="38a0b3ef316c0b153aaccbc0928b7a20"/><dir name="Email"><file name="Template.php" hash="2503b51a4988bb892df330f2de75b92e"/></dir><dir name="Events"><file name="Grid.php" hash="ada058c87141c94b6584f2206957941d"/><dir name="Renderer"><file name="Alert.php" hash="80c8911038197b7de34c75d87d453b82"/><file name="Status.php" hash="01038685dbcb692daae047aa45b336d8"/></dir></dir><file name="Events.php" hash="3230a203addb6dc02f5eb995ddd66f23"/><dir name="Logs"><file name="Grid.php" hash="1a1a51b5791d2df97890553d536260e4"/><dir name="Renderer"><file name="Datetime.php" hash="f7f23deac1c9871674ecde594ba742b8"/><file name="Default.php" hash="6f81d70e10fdaf42035a53323f82bb40"/><file name="Level.php" hash="a2b58d0549cacad4b83ca0ae52fd978e"/></dir></dir><file name="Logs.php" hash="f24ba62587734880d7046d4ed01bbfae"/><file name="ReleaseNotes.php" hash="5108bca563cc734f44ed05c609c8738e"/><dir name="Tasks"><file name="Grid.php" hash="a129b2010f71e024d4dbbfd34fb91a71"/><file name="Js.php" hash="308756573ad11f22f1fc634727aaa297"/><dir name="Renderer"><file name="Actions.php" hash="4f1d165274caa1785b295e7e44ca0e22"/><file name="Model.php" hash="b129b6489c9ba09a20204a52cec78dd0"/><file name="Store.php" hash="3f12cf3aa32981ce9a5a4043a88962fd"/><file name="Task.php" hash="afcc58d833d4ac7c12d6409d8b075154"/></dir><file name="Status.php" hash="55dfcd7cbcaa54bc142b6d403481d170"/></dir><file name="Tasks.php" hash="5f0a04ff580ee2e0f6a919d121baa173"/><file name="Test.php" hash="a032f1ca4929077d737f8b34f82830d8"/><file name="Version.php" hash="dd64372d7bf8d9024e00f2ee213c126c"/><dir name="Widget"><file name="Button.php" hash="ca124e5a2dbaf35d2eb454a268d1ad9b"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="34786d704ec107433ba368e734cbf489"/><file name="Tasks.php" hash="2bdaacf98e693d795f965e6c07511e22"/></dir><dir name="Model"><file name="AbstractImportExport.php" hash="6abe068d2db8b667ee9064de7152540e"/><file name="Cron.php" hash="159ffc14f91413b35bc6085c0e2a8e86"/><file name="Deleted.php" hash="a57a201093d020ee85181c4600a7c0d8"/><dir name="Exporter"><file name="Abstract.php" hash="a4ff7629df2cc6326c97e991876a648a"/></dir><dir name="Importer"><file name="Abstract.php" hash="b9dac66ceee0e8d2b5385a6146896964"/></dir><file name="Log.php" hash="46bb074eaf00740124c76b88a91feb03"/><dir name="Resource"><dir name="Deleted"><file name="Collection.php" hash="ed85c763c9a81cb7137a9ec474f5e584"/></dir><file name="Deleted.php" hash="a1ae6a673ffe458414a866f4eb0c0d67"/><dir name="Log"><file name="Collection.php" hash="8bd275a0a40912ab2e71b39d6c37a9e2"/></dir><file name="Log.php" hash="449af875b530177e7203d2d40560237f"/><dir name="Task"><file name="Collection.php" hash="28142a650451964b7340fba61a638771"/><dir name="Event"><file name="Collection.php" hash="27dbdf551a8947950d4794fb6b540ded"/></dir><file name="Event.php" hash="5faa0f50bc41214b65bd2a25438b4446"/></dir><file name="Task.php" hash="f7ebd23a179e563b23a9c68928c10ed0"/></dir><dir name="Soap"><file name="AbstractCall.php" hash="18ec6d30d5a23b8e4cc50913a7aecd56"/><file name="GetSubscriberDataExchangeStatus.php" hash="c14f250f73d38968d257b3af0f770ff7"/></dir><dir name="Ssh"><dir name="Crypt"><file name="AES.php" hash="824d082091d59b96fd5a74cef656f2f3"/><file name="Blowfish.php" hash="abd7684db5565dce87b214952b50ed9b"/><file name="DES.php" hash="dff9541235b415780ff167b3ed87ac51"/><file name="Hash.php" hash="0a737a969906cbb12f33d41a678ec9ee"/><file name="RC4.php" hash="54d20f521a8c030a2f32fecbb9fa33b9"/><file name="RSA.php" hash="8e81a0e6c764f5069d5d9ccd825fd064"/><file name="Random.php" hash="25402099262c9b3bd9e2ca9811bc8bc8"/><file name="Rijndael.php" hash="4305e82b0a611c07c0bfe99ccdeb9951"/><file name="TripleDES.php" hash="d4b18ac4603c5b0a4c3a7e2b98ba2f52"/><file name="Twofish.php" hash="f9df605ad32f18b447c2fdf1701563bc"/></dir><dir name="File"><file name="ANSI.php" hash="42228165075cb2f138c6d4b9ddf334de"/><file name="ASN1.php" hash="3bd220eb6b134a5a56cb311737276dd1"/><file name="X509.php" hash="39b4f6b23f554485a7607382078412e2"/></dir><dir name="Math"><file name="BigInteger.php" hash="22d91d824950758858e43d58d9c0fc3a"/></dir><dir name="Net"><file name="SCP.php" hash="9d455f260731d1e544ab1d3303785188"/><dir name="SFTP"><file name="Stream.php" hash="116f7d549a19071fd301ed677a3dd4c7"/></dir><file name="SFTP.php" hash="7a002a4a8562683108aa0748095b2856"/><file name="SSH1.php" hash="f8a733d63b37063f1e84ed2f557db076"/><file name="SSH2.php" hash="e2875fa03af2498afd35772521933a7c"/></dir><file name="openssl.cnf" hash="0f1015cb8894127a94a05afa7cc23760"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Connection"><file name="Type.php" hash="335493d8aeb1016a98d9716469ffb1e7"/></dir></dir></dir></dir><dir name="Task"><file name="Abstract.php" hash="2efaf1050a1a2607682c4da92ac93bd3"/><file name="Event.php" hash="2f29caaf7f904894e327d5a2701d79c7"/><file name="Interface.php" hash="9f491f0c940f405fca8ddc18a507deae"/><file name="TestRunner.php" hash="f4f22da5b45a585f8f91540f27dff65b"/></dir><file name="Task.php" hash="fd29e79822219c1b1422dd074e2868c9"/></dir><dir name="Test"><dir name="Helper"><file name="Data.php" hash="7a7cf6f101d563ece6a669fda96bcc49"/></dir><dir name="resources"><file name="composer.json" hash="fab8c2bb9f09a1f10da3725dd8e51d48"/><file name="contactlab_db.sql.gz" hash="c1e2185f60a7b81fb80fbe0cb92f12bb"/><file name="local.xml" hash="315270d1f7d0a42ed4a5a756fc97fda7"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Commons"><file name="ConfigurationCheckController.php" hash="2c801d4f90682d530c64ce90c13ad431"/><file name="EventsController.php" hash="dbe781ee96287eb5af21723cd212bf18"/><file name="LogsController.php" hash="54ec270e5fa8ce90222e0fa7627771f1"/><file name="ReleaseNotesController.php" hash="15becd0b614d49f53f10bd45bb53fd73"/><file name="TasksController.php" hash="9740ba3003e3748ceb21856aa18e21cf"/><file name="TestController.php" hash="0cfb06b753d20de75cc06187a7d06e63"/></dir></dir></dir></dir><dir name="docs"><dir name="example-config"><file name="contactlab-local.xml" hash="93f33812b0b1cdb362340c910340707b"/><file name="contactlab.xml" hash="57902122d66b5d7bb7330d81911e1a6e"/></dir><dir name="release-notes"><file name="0.8.10-20150116.html" hash="54b37d0590df5f093d9334b2f73cbac4"/><file name="0.8.12.html" hash="26043d9aa4382398177b5b2295c4f067"/><file name="0.8.13.html" hash="e9bf17af343bfd0931eed6c2f6f0273e"/><file name="0.8.14.html" hash="2d87675e13144be97952e36a757f2811"/><file name="0.8.15.html" hash="41375887fbde15eb7577e0bb4bada0e2"/><file name="0.8.16.html" hash="1c1b11a533bfa26187892946bfd7f339"/><file name="0.8.17.html" hash="277597117d81d75a3cab78ba2fe6ad23"/><file name="0.9.0.html" hash="58b3590294904915d3e12e9caf697d2e"/><file name="1.0.0.html" hash="f48f9b999929433e2aeedc263f2571bf"/></dir></dir><dir name="etc"><file name="Contactlab_Commons.xml" hash="bfd174f2535b432589bff0f4fc81ecec"/><file name="adminhtml.xml" hash="460f3ff0ebf20c55d0cfa94429481402"/><file name="config.xml" hash="573464276057d301ddebc3436a102453"/><file name="system.xml" hash="ad0e508dfb1d77131bc69e796c16f024"/></dir><dir name="sql"><dir name="contactlab_commons_setup"><file name="install-0.8.0.php" hash="46661857fcf01cbe2cde396924f47f61"/><file name="mysql4-install-0.8.0.php" hash="83032fadee6577e80844079adc580c97"/><file name="upgrade-0.8.0-0.8.1.php" hash="d963ac18fd5150a697280c445715ef3d"/><file name="upgrade-0.8.1-0.8.2.php" hash="d2dc6cb4e61becd440e0aa1ef86741ab"/><file name="upgrade-0.8.13-0.8.14.php" hash="f02787989dabc30d3eddfa39e8c96d03"/><file name="upgrade-0.8.2-0.8.3.php" hash="fbc0488645da03c2cc86305a348ee067"/><file name="upgrade-0.8.3-0.8.4.php" hash="9caf4bed86e90f29ef7abaad0c172cd2"/><file name="upgrade-1.0.0-1.0.1.php" hash="22bbf46398b73475ef1e367a9377c834"/></dir></dir></dir><dir name="Subscribers"><dir name="Block"><dir name="Adminhtml"><file name="Export.php" hash="dbbc2d51a507bf3a4b7aaaf006b2e9c4"/></dir><dir name="Newsletter"><dir name="Subscribers"><file name="Modify.php" hash="9011a378b053f6363b38de63e448da82"/><file name="Subscribe.php" hash="32873e816417af84e88016af6b36a2ba"/><file name="Update.php" hash="563e0dfa5d463d763f21356f2438aa38"/></dir></dir></dir><dir name="Helper"><file name="Checks.php" hash="999b92aac7be891bc67e24f907870caa"/><file name="Data.php" hash="70d6a682392e64be00c6a71238092500"/><file name="Exporter.php" hash="12043ac3f7ae14bd7084b740cca51a7a"/><file name="Uk.php" hash="6d50c16ef3ce7144c6e6587a96880cab"/></dir><dir name="Model"><dir name="Checks"><file name="AbstractCheck.php" hash="afdc7117177bdccc70da33f3691f0ae2"/><file name="CheckInterface.php" hash="94e1743d9de7d356c1fd786b6e54a162"/><file name="ContactlabAuthApiKeyCheck.php" hash="053fc17bf8b98f0bf627640be869a2c7"/><file name="FindDuplicatedCustomersCheck.php" hash="abe297974dc05fcd153de9c0fbd488bf"/><file name="FindInvalidCustomersCheck.php" hash="757d9ba4e1960e8d11bd269523841a9c"/><file name="RewritesCheck.php" hash="1ec4b03fd4b9033374ff68498a63a973"/><file name="WsdlCheck.php" hash="0d5c9946ae3fc26014aabe393610614f"/></dir><file name="Cron.php" hash="ff998d290ff804b490ac64acfb44917f"/><file name="EmailExport.php" hash="b3ed1b090b825a8e53139eff9e107944"/><dir name="Exporter"><file name="Copy of Subscribers.php" hash="904368350d3adfeb63c711c0da42a7ce"/><dir name="Subscribers"><dir name="InfoTransporter"><file name="Abstract.php" hash="c308d4728f88d9adf2e8cc1ad738f25b"/><file name="Customer.php" hash="31525219d45a3b57021e53e94a747599"/><file name="Deleted.php" hash="81c35ae7dc9079e6066a6daceff6fb96"/><file name="Subscriber.php" hash="fe7d8919967b4eca845377e43bf10292"/></dir><dir name="MapTransporter"><file name="Abstract.php" hash="33dd82745d6d5278165dbd015eea754b"/><file name="Address.php" hash="32b7874a1923f98befd2bb53e0ee6547"/><file name="Attribute.php" hash="1c88e00280f50a0b649145219dc908a3"/></dir></dir><file name="Subscribers.php" hash="658a6674332f2f6b9915e2b0ffb8ab37"/></dir><file name="Fields.php" hash="1647ad72d9ffd01507ff2e1905d06840"/><dir name="Importer"><file name="Subscribers.php" hash="0c087db3b7461e704c7b0190abb982bc"/></dir><dir name="Newsletter"><file name="Subscriber.php" hash="aeffddf37091ff4a231d7845b30925c8"/><dir name="Subscribers"><file name="Observer.php" hash="b53c359c47de8695bb8f5187b765e547"/></dir></dir><dir name="Observer"><file name="Fields.php" hash="1914da6670e6e036090124376a63da38"/><file name="Uk.php" hash="0deac2259e97a2ef1a72d2b8a2217bc2"/></dir><file name="Observer.php" hash="ec02dd05f20c942c3b677deb74c31599"/><dir name="Resource"><dir name="EmailExport"><file name="Collection.php" hash="8f15643741b8dd7a4be2a6d1fc57b2cf"/></dir><file name="EmailExport.php" hash="d042bdf71ade2d80100fc39b96315f39"/><dir name="Fields"><file name="Collection.php" hash="b9c7ef78e14d06a803b78731283ec3ba"/></dir><file name="Fields.php" hash="17cc1061442f3124c0483e21c6cb60cf"/><dir name="Newsletter"><file name="Subscriber.php" hash="10c1cc4516fc0644655c01225d43b022"/></dir><dir name="Stats"><file name="Collection.php" hash="fa92b14e6d466d517d5390840268ff6e"/></dir><file name="Stats.php" hash="3b8e15132397711baf499c0fb654ab17"/><dir name="Uk"><file name="Collection.php" hash="660d44a3a3fbce7b7f30b2aa5cb97381"/></dir><file name="Uk.php" hash="673867d3e06ca928bb544c96536b9103"/></dir><dir name="Soap"><file name="AbstractSubscriberCall.php" hash="e5a6854a6abe1e2c7c1947c02f6742fb"/><file name="GetSubscriptionStatus.php" hash="4e3f2f2034f56a82b3f29492082c887c"/><file name="SetSubscriptionStatus.php" hash="31038e448df2644f6db5a70491a2ef93"/><file name="StartSubscriberDataExchangeCall.php" hash="ed9ea900676fb00e12ff58c19e0ef1c4"/><file name="SubscriberNotFoundException.php" hash="7b34788b3e71febcafe5d17f83192b54"/></dir><file name="Stats.php" hash="288b3b4312d0bf366caf6e1e6c913a44"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Export"><file name="CheckUkPolicy.php" hash="4c52ee5463ff95d2a30714a24c2e521a"/><file name="Policy.php" hash="67e0a791095847cb89cb2ce311e4865f"/></dir></dir></dir></dir><dir name="Task"><file name="CalcStatsRunner.php" hash="eb0f152c42b2317b90ee00d27f947431"/><file name="ClearStatsRunner.php" hash="274ed827c0af4b888f9470fbf11ff86b"/><file name="ExportSubscribersRunner.php" hash="cd95a707bb542b08edf9e94fc5e153e6"/><file name="ImportSubscribersRunner.php" hash="496745ed30b1f274e543a5be9015078e"/><file name="StartSubscriberDataExchangeRunner.php" hash="97df2b3a6347be0a8a3d6f2c1ff78ad5"/><file name="TruncateUkRunner.php" hash="b8a48277c93f25f8d6a4ea42af437ff1"/><file name="UpdateSubscriberStatusRunner.php" hash="c13756209e73667f443d63cd8e4af691"/><file name="UpdateUkRunner.php" hash="31d73e9569367927286de0581d2285fc"/></dir><file name="Uk.php" hash="646eb6fc1af9b5ab601a7eed25a22050"/></dir><dir name="Test"><dir name="Helper"><file name="Checks.php" hash="5a9734a2fca4b49ab942c450ebf32775"/></dir><dir name="Model"><dir name="Checks"><file name="ContactlabAuthApiKeyCheck.php" hash="dc14e7d82c433914eea09a75c4e6f5a2"/><file name="FindDuplicatedCustomersCheck.php" hash="2a33873168c94d31c098704fecf4e6c4"/><file name="FindInvalidCustomersCheck.php" hash="5b6985695993e8acbd540a82d1a83aee"/><file name="RewritesCheck.php" hash="93d008de2807cb0209a397720b2c6499"/><file name="WsdlCheck.php" hash="9a49fe2a35ce7d9391d443b26fc31d8a"/></dir><file name="Uk.php" hash="5254745888787f083b4361e2f0ce4a31"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Subscribers"><file name="ExportController.php" hash="141c13b29c3d08a8cebc5753910853d4"/><file name="ImportController.php" hash="e30470248e0b2f6d48daa9c76cb46b00"/><file name="StatsController.php" hash="b7dcf038c82964db4574b20a44efea4c"/><file name="UkController.php" hash="ac2669685426ce5dad4bd9784a75297e"/></dir></dir></dir><file name="EditController.php" hash="0e73ec91f39642065c0278b96c1afcae"/><file name="ModifyController.php" hash="1c7d1cc32e5869515d2e688e818e7fda"/></dir><dir name="data"><dir name="contactlab_subscribers_setup"><file name="data-upgrade-0.8.4-0.8.5.php" hash="b44b6ee842349b9dbcf93d237af61960"/></dir></dir><dir name="docs"><dir name="build"><file name="build.bash" hash="114980c92310c5672fc3b9b7819e7838"/><file name="files.txt" hash="103f8b2fa61f4887416f0e9218a62a1a"/></dir><dir name="release-notes"><file name="0.8.12-20150116.html" hash="4b0889525dc1d40ffd703dcdd72edbcc"/><file name="0.8.13-20150204.html" hash="4f30d3b723ebee5f784ce3bc0b39ee25"/><file name="0.8.14-20150213.html" hash="cdcbb67655d0595e4dee4f63b011edbe"/><file name="0.8.15-20150309.html" hash="3913bab1da721f35377a289b99bbd642"/><file name="0.8.16.html" hash="68b8c749ac7269c4cd879b2088563a39"/><file name="0.8.17.html" hash="1ee5b5904b4998ca23b07fdd7aeafcb1"/><file name="0.8.18.html" hash="509dbbf9eca227918f75bd32beb297c9"/><file name="0.8.20.html" hash="4a69862b759a69219fd5ab40de4ad51d"/><file name="0.8.21.html" hash="60f170d1c2115d06791123d47ba93804"/><file name="0.9.0.html" hash="281a85179f31f5f700949c7e748b0949"/><file name="0.9.1.html" hash="bd181e6d14d0dc4a805b5532a7887068"/><file name="1.0.0.html" hash="6abd3f6f069ffeb16a507c0938f122de"/><file name="1.0.1.html" hash="352c95a5379c7d36189ec6ec5a0c34ec"/></dir></dir><dir name="etc"><file name="Contactlab_Subscribers.xml" hash="c9808465720abbf1eb7be475dbf3b826"/><file name="adminhtml.xml" hash="9d122f10695f3fe0de64852790034bd2"/><file name="config.xml" hash="2ca8427f38285ce2b83aa9b35ff4dab3"/><file name="system.xml" hash="cc05be0c07f0bc6890f306ec77344338"/></dir><dir name="sql"><dir name="contactlab_subscribers_setup"><file name="install-0.8.0.php" hash="a6368d7e6de257005c34fc35972ba075"/><file name="mysql4-install-0.8.0.php" hash="ea9534669baf1f8ba83460eb373e4b3f"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="37388310991d293e7a4d3dcc079f1aa7"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="19858565525423737b71d63d24ce9b9e"/><file name="upgrade-0.8.0-0.8.1.php" hash="4c8fd8b51ccda4b27bcf26018e07b9e2"/><file name="upgrade-0.8.1-0.8.2.php" hash="9586aad0f8aeebd7cfe0bda6401c22b3"/><file name="upgrade-0.8.11-0.8.12.php" hash="3f756983b338d11793ec74ff9d7927e6"/><file name="upgrade-0.8.2-0.8.3.php" hash="eaef3ceb5c6faf88c80fb3f28a925a86"/><file name="upgrade-0.8.21-0.8.22.php" hash="65fa0c02fba038f4f80a54e0462c7cbe"/><file name="upgrade-0.8.3-0.8.4.php" hash="5cb53b73936560c4796f5a1387326a45"/><file name="upgrade-0.8.4-0.8.5.php" hash="8b5aceb8a31a965211cc61e46ef046a6"/><file name="upgrade-0.8.5-0.8.6.php" hash="7f3ad36681c04662e4e7f0592005fdd9"/><file name="upgrade-0.8.6-0.8.7.php" hash="b27c5bfe8ca80d562f053bda5407de00"/><file name="upgrade-0.8.7-0.8.8.php" hash="c689709dcb32d0c8d201feb873abb123"/><file name="upgrade-0.8.8-1.2.0.php" hash="f9ebd160d597bf10efa203940b4842e9"/></dir></dir></dir><dir name="Template"><dir name="Block"><dir name="Adminhtml"><dir name="Newsletter"><dir name="Queue"><file name="Grid.php" hash="c4db6dfbe5aaec238bd87e564f5a3ee3"/></dir><dir name="Template"><dir name="Edit"><file name="Form.php" hash="e82b1748370ada98120e548434378ee9"/><file name="Js.php" hash="ebbbac2c2dee60e7ab3c5b3261c52afe"/></dir><file name="Edit.php" hash="53c4ff205c6bc310fa3360faf0446dab"/><dir name="Grid"><dir name="Renderer"><file name="XmlDeliveryStatus.php" hash="e44366255dede7766352fd46393f0f74"/></dir></dir><file name="Grid.php" hash="5efc3c750a8e835fabe5476ef3d1eb19"/><file name="Preview.php" hash="f3f5e99187b6cf9aea0dfd3a83333256"/><dir name="Tasks"><dir name="Detail"><file name="Grid.php" hash="7f50caf5bbd90dbb647af5050f906472"/></dir><file name="Detail.php" hash="e77a09eb9509449eedec7f1bbf70ce16"/><dir name="List"><file name="Grid.php" hash="c6a17747bca319e572dfaa1c032ef93e"/></dir><file name="List.php" hash="a9a88e4d3e49656478ea6f30e1b62a3e"/><dir name="Renderer"><file name="Customer.php" hash="c66e7e05724639e78a515ad1c6de64ae"/><file name="QueueStatus.php" hash="11ecc8c97fcbdaef6fb32818e2962e0c"/></dir></dir></dir></dir><dir name="Tasks"><file name="DebugEmail.php" hash="eeb4b0c88b85f67d0d9114ec0896e8df"/></dir><dir name="Type"><dir name="Edit"><file name="Form.php" hash="534b775de153ecdea8bd47a5c7e092fd"/></dir><file name="Edit.php" hash="7f26eaaa253b8c990310ed8492156fda"/><dir name="Grid"><dir name="Renderer"><file name="ConfigureLink.php" hash="76986da99f39c8b9c4a480422d3bd09f"/></dir></dir><file name="Grid.php" hash="c7c202bd5b9c05c58dc29db784855b5b"/></dir><file name="Type.php" hash="e9e36e56d903ef59e01eb12cdd7d1d54"/><dir name="Widget"><dir name="Button"><file name="Queue.php" hash="85fbfe18a7b7c15fd2a0e4815f8a8ca1"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="415aff5ceafe5cae0003c31b8cbf43f8"/><file name="SampleData.php" hash="3e6f32e688ba54258e5da3c7e43a3f10"/></dir><dir name="Model"><file name="Cron.php" hash="7be54cb8f3e49634394af331e5e98020"/><dir name="Newsletter"><dir name="Processor"><file name="Abstract.php" hash="6c8306ba4048bf55c83099cda2469230"/><file name="Cart.php" hash="61ad157435f568e88d91d1c102886ef0"/><dir name="Filter"><file name="Abstract.php" hash="8a8bc082d68a1c7b90b5389961b60654"/><file name="AbstractDistinctByType.php" hash="2df05bdf36525c085f6c436d2402d607"/><dir name="Cart"><file name="DistinctByType.php" hash="63e3a03b08544121597bc7461ee52a58"/><file name="Dnd.php" hash="6f5a9cf91b56839bc5a7aee4e9a11ccd"/><file name="Have.php" hash="53cac800d406d02e82ae2bf0d984d95f"/><file name="Offset.php" hash="a9f08eedbd380fccea16dc77397d9e23"/><file name="ProductNumber.php" hash="b44135b3b7961cefc506c32891f4a6f1"/><file name="ProductNumberOrTotal.php" hash="1e3f5319efb8ce64b613dcfd6d0a2e37"/><file name="Products.php" hash="9ae54c326965f49396a4b71fb746cdb0"/><file name="TotalValue.php" hash="334865e6d2a46ddffc3e657eebd5ea21"/></dir><file name="EmailLike.php" hash="34baf8be2aa88a1fe44a71daa87258f8"/><file name="Interface.php" hash="6d2ab6e8d5af5595ea69b928ff27af24"/><file name="OnlyCustomers.php" hash="1fd9a34c408c5a2daca53ea1d840838a"/><file name="Store.php" hash="d90f4af3d625c8280bfabfeac11ce6fe"/><file name="TestMode.php" hash="28817391eec06780c63effc30320e88b"/><dir name="Wishlist"><file name="DistinctByType.php" hash="b622a455f689cd37130ed61e91178711"/><file name="Dnd.php" hash="db13849f95786253e417c16a00bbcea6"/><file name="Have.php" hash="6f238c533f13264b84b0cbf2c4c809f5"/><file name="Offset.php" hash="fe1a43fc318299023ecc6b5352851791"/><file name="ProductNumber.php" hash="9589494f825b57010a2eed5b38562f10"/><file name="ProductNumberOrTotal.php" hash="9242bcc98946d488d6bac0a956eae9e8"/><file name="Products.php" hash="ce7319e5d81c4d9defaadf8363832f3e"/><file name="TotalValue.php" hash="c92bfbb5553c43f2ecacb0cecb55d5ce"/></dir></dir><file name="Generic.php" hash="fba6d138633a3e6d26b6ad59ae929650"/><file name="Interface.php" hash="2020fccf75ca93268e7154a4a06f6c1b"/><file name="Wishlist.php" hash="cf15890ad4d8f19869a3781433753bd5"/></dir><dir name="Queue"><file name="Link.php" hash="fee98cd3b7f7a7c5afe368ecdb2501a7"/></dir><file name="Queue.php" hash="245f401bd4cda90f84c6e32599029f31"/><dir name="Template"><dir name="Compiler"><file name="Abstract.php" hash="8a845abd46468d70cce4e545c2f5a6ad"/><file name="Html.php" hash="2270a452f83be6f3799784a03c393d82"/><file name="Interface.php" hash="bd7016c85bbd710462edc1dafab56590"/><file name="Text.php" hash="cb7aa7cb17e6f2fbe0c5147fea92e478"/></dir></dir><file name="Template.php" hash="0360d914b73aac421a7a1343667d8e2a"/><dir name="XmlDelivery"><file name="Check.php" hash="8fc3262308c334a6e343c497ea57ffaa"/><file name="Uploader.php" hash="ad08e461e406d5f0201cf83583601ef3"/></dir><file name="XmlDelivery.php" hash="f0acd8fe4d0f34d852b1ff884f6ec8a8"/></dir><dir name="Resource"><dir name="Customer"><file name="Collection.php" hash="03eda84abd4ac99c2af60f0f8eca0de0"/></dir><dir name="Newsletter"><dir name="Queue"><file name="Collection.php" hash="17af76b4158b5a44a4171c74e8583738"/><dir name="Link"><file name="Collection.php" hash="880d705a6d77ed16720328393c842d1a"/></dir><file name="Link.php" hash="f4fbc8acd94f5cc0149e9ca814ef990b"/></dir><dir name="Subscriber"><file name="Collection.php" hash="687587b1f9c45c5d658c658026b8252d"/></dir><dir name="Template"><file name="Collection.php" hash="4c4311fbd664e9a8574ba24562862601"/></dir><file name="Template.php" hash="039f4f6e808777aa0c7b74c3b631f8db"/></dir><dir name="Type"><file name="Collection.php" hash="26d09eb4764f6fb93b856fc170a6be35"/></dir><file name="Type.php" hash="8d6c9001caa99ceb0f01cc9f54f2c4af"/></dir><file name="SimpleXMLExtended.php" hash="e28b6caa960498fb75e77d3cebf9472a"/><dir name="System"><dir name="Config"><dir name="Source"><file name="AndOr.php" hash="114c0a86611d6c0149afc4de3c75df42"/><dir name="Delivery"><file name="Method.php" hash="6175029d59b582745a98fba681375b68"/></dir><dir name="Template"><file name="Format.php" hash="527644942d74c5634d1d8f84db24ee77"/><file name="Type.php" hash="292c1f9dc7494315f44976f1163f4574"/></dir></dir></dir></dir><dir name="Task"><file name="CheckNewsletterQueueRunner.php" hash="47a52258ab016e7c9fce57fc9ad5039c"/><file name="Observer.php" hash="3f42a203d2277413a49bbd5d57c966b4"/><file name="ProcessNewsletterQueueRunner.php" hash="d48d15de98e3ea8b17745180b26a7af8"/></dir><file name="Type.php" hash="e7bb0be8ae8d070534511b780d201145"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Template"><file name="TasksController.php" hash="42d11595cb143afb80e947447904a145"/><file name="TypesController.php" hash="81d5bb593d180df76b8bb33213c71fbd"/></dir><file name="TemplateController.php" hash="3566bc5c3b5f1cd98c365509c3d060de"/></dir><dir name="Newsletter"><file name="QueueController.php" hash="865e18bb175eed185395e3fef1d9dcd2"/><file name="TemplateController.php" hash="abad2cbd9ed0305b3ee5b00cec122074"/></dir></dir><file name="SampleDataController.php" hash="7738e817f7cc8373ce01ab677a8b38ce"/></dir><dir name="data"><dir name="contactlab_template_setup"><file name="data-install-0.8.0.php" hash="691ec4f1cba03ba9a7769e01b4abd3f0"/><file name="data-upgrade-0.8.20-0.8.21.php" hash="14af0bf01230abfac7b229a7667d2966"/></dir></dir><dir name="docs"><dir name="example-templates"><file name="subject_ac.json" hash="c9aa774df01bb168afc0a6e4cf235aa4"/><file name="subject_wl.json" hash="e28b414b6e180613f71fa89628aeb19d"/></dir><dir name="release-notes"><file name="0.8.16-20150116.html" hash="388bb0b9da2461dc90e06303de060e53"/><file name="0.8.17.html" hash="11fb8e56f568027c4b76874368b1daf9"/><file name="0.8.18.html" hash="5d279e41c4d13d3695bc4a01f15ecd78"/><file name="0.8.19.html" hash="fb4533ceb065c1427c58c5e9a44f1910"/><file name="0.8.20.html" hash="e87bade4cedf6e9195cdc7a06a99da5e"/><file name="0.8.21.html" hash="b6e4733fc5bcb75ae4c547f942c40867"/><file name="0.8.22.html" hash="439ee80a2effdc14a7a9a3b1284ae7b6"/><file name="0.8.23.html" hash="04d631373ca8f4e1583fe2fad988579f"/><file name="0.8.24.html" hash="bbc1e1430ad40da34319f676ca195637"/><file name="0.9.0.html" hash="a98c626b81251e26dc0f0ad4fe1a04dd"/></dir></dir><dir name="etc"><file name="Contactlab_Template.xml" hash="bd6884cf9b2f8219f598ea88945d9399"/><file name="adminhtml.xml" hash="25d34cfae07b3150a41024831431edba"/><file name="config.xml" hash="1505f260468c412446cfa255d11dd202"/><file name="system.xml" hash="5d60aa6e3ff1f44cb7489887e72b17f8"/></dir><dir name="sql"><dir name="contactlab_template_setup"><file name="install-0.8.0.php" hash="cfbacdd1ee0dd6dafc7ef2743b2025bd"/><file name="upgrade-0.8.0-0.8.1.php" hash="a892632623aced9c2bba7163cfbd551a"/><file name="upgrade-0.8.1-0.8.2.php" hash="d57ebb94370bf344a19d30bd535c5f3e"/><file name="upgrade-0.8.19-0.8.20.php" hash="454bd54e260fa943cbf4b7e9a54de176"/><file name="upgrade-0.8.2-0.8.3.php" hash="762bc1fea119803410241325fdd5565b"/><file name="upgrade-0.8.22-0.8.23.php" hash="2ac19163d9a9fe007b36d4259271e3af"/><file name="upgrade-0.8.23-0.8.24.php" hash="9a706c92d2db43b60821adfd952b7f77"/><file name="upgrade-0.8.3-0.8.4.php" hash="1ce583cd1bd968eda2df28731d29c4f1"/><file name="upgrade-0.8.4-0.8.5.php" hash="cf6d33fadc358f58712f434314c7d39b"/><file name="upgrade-0.8.5-0.8.6.php" hash="fb815dc3ba13ee481db03886222deadb"/><file name="upgrade-0.8.6-0.8.7.php" hash="889d8a78c3fe624793fbaa5418962d28"/><file name="upgrade-0.8.7-0.8.8.php" hash="482a3378bca1b09d4face0c127576f92"/><file name="upgrade-0.8.8-0.8.9.php" hash="8d47c0ea100e856a892fb3cff8dafd76"/><file name="upgrade-0.8.9-0.8.10.php" hash="92bc695e4384444f82389938bc13be7e"/><file name="upgrade-0.9.0-0.9.1.php" hash="26865bc769baa932139eaf0067a46637"/></dir></dir></dir><dir name="Transactional"><dir name="Helper"><file name="Data.php" hash="4faf1b37aa9c5728d0301ac608538346"/></dir><dir name="Model"><dir name="Email"><file name="Queue.php" hash="6ca14247c8ead4872eab29f0fb3a4b16"/><file name="Template.php" hash="dea2688b02842777165a1a9d32f298e1"/></dir><dir name="Task"><file name="SendEmailRunner.php" hash="663ab3b2161b5dc4a331727b6763c77e"/></dir><dir name="Zend"><file name="Mail.php" hash="dc53255485ee9c4f8e3b77c0d39aaaec"/></dir></dir><dir name="docs"><dir name="release-notes"><file name="0.8.2.html" hash="5551bb5b36f227baa4a82ac09aa306f8"/><file name="0.8.3.html" hash="277597117d81d75a3cab78ba2fe6ad23"/><file name="0.8.31.html" hash="16739925886a489366a264cd14c33144"/><file name="0.9.0.html" hash="018fe082f4ef876621ea545a782f16f1"/></dir></dir><dir name="etc"><file name="Contactlab_Transactional.xml" hash="84437b19aaef7fa6566916485a1eb750"/><file name="adminhtml.xml" hash="09d3fa7ef4d802a69141a501824f3aab"/><file name="config.xml" hash="e848167e69b20248880a2307ca2f7e35"/><file name="system.xml" hash="be6f9b0c56c0ceaf926dff49948239a2"/></dir></dir><file name=".DS_Store" hash="362c3c467420623a3a177255b7afd231"/></dir></target><target name="mageetc"><dir name="modules"><file name="Contactlab_Commons.xml" hash="15d6ae561458b10ef58609958cd1f35f"/><file name="Contactlab_Subscribers.xml" hash="2b205efa6475e1e150e8ea44295667c7"/><file name="Contactlab_Template.xml" hash="c331e35581ef2d31bb44b9b0aea238af"/><file name="Contactlab_Transactional.xml" hash="c21f85926a68b2acee33bc8cf34ebd44"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="contactlab"><file name="commons.xml" hash="57f77de04d63427bccce155ae59a0afd"/><file name="subscribers.xml" hash="f2295e56e52bb01baabb8a21c6c8202f"/><file name="template.xml" hash="ea0c45a73ae8fdcfc39e3d2fc60753f3"/></dir></dir><dir name="template"><dir name="contactlab"><dir name="commons"><file name="configurationcheck.phtml" hash="52029752074af134c8c9327ccf877cb3"/><file name="releasenotes.phtml" hash="10fda97a68d16416a4c908827c0bef62"/><file name="send_mail.phtml" hash="cedfe0a520b352e90c15f72f035dad80"/><dir name="tasks"><file name="js.phtml" hash="b2af96ef1c0452c7149916239249dffd"/><file name="status.phtml" hash="d0ff3be39627817088b88b1bbcdbb50d"/></dir><file name="test.phtml" hash="fcdd03dbe2f50880f62e72aae413d78b"/><file name="version.phtml" hash="3852f6508e96d7d3baccd1e73f56a95a"/></dir><dir name="subscribers"><file name="export.phtml" hash="fcdd03dbe2f50880f62e72aae413d78b"/><file name="subscribers.phtml" hash="14f2aee80e4efa4f1880a2f58ea93781"/><file name="uk.phtml" hash="41c2632e9a48df0ae50fb0d354c7fa01"/></dir><dir name="template"><dir name="edit"><file name="js.phtml" hash="0069a9b4e0b4d26e3d7ac84f605e6e2e"/><file name="validation.phtml" hash="e10df9913a3bb580b4ec5dc92e2b8ba9"/></dir><dir name="tasks"><file name="buttons.phtml" hash="cfcd1a72de994e37a5ac1d5f75d15aa4"/><file name="debugemail.phtml" hash="ba04523182e084b2c7187880835429e5"/></dir><dir name="type"><file name="edit.phtml" hash="b2978f07be2d00dd483046c27d385a5c"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="contactlab"><file name="layout.xml" hash="72510e95747bd0dd36af5ce5736abaa9"/><file name="subscribers.xml" hash="f912768983740fa5e4788d5fd81e4ff9"/></dir></dir><dir name="template"><dir name="contactlab"><dir name="subscribers"><dir name="newsletter"><dir name="subscribers"><file name="modify.phtml" hash="62c882d900bf4bcf4e588505c2aabed4"/><file name="subscribe.phtml" hash="ef4a1960fc673f9fdaa6fedca1e4bb80"/><file name="update.phtml" hash="432fd89d460cf9b83ee50b92aef4498b"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="contactlab"><file name="Contactlab_Commons.csv" hash="a716e3c52977bef0a83b8bc64eed6d54"/></dir></dir><dir name="it_IT"><dir name="contactlab"><file name="Contactlab_Commons.csv" hash="dd3274eadbefadf8f4da01b1fbcaa417"/><file name="Contactlab_Subscribers.csv" hash="084bd18f108750ce7ba504cd17bd0552"/><file name="Contactlab_Template.csv" hash="4058983ef5aee89c12a36fe359875908"/><file name="Contactlab_Transactional.csv" hash="c10ccac895b8bf97fd133b65579ae4eb"/></dir></dir></target><target name="mage"><dir name="js"><dir name="contactlab_commons"><dir name="adminhtml"><file name="tasks.js" hash="e8e91556e4e122bfc8b53647a4535d53"/></dir></dir></dir></target><target name="magelib"><dir name="contactlab"><file name="Attachment.php" hash="4dd95e31c3cb73d1d55e5ae51a17209a"/><file name="AuthToken.php" hash="00955cde5b7ad26a6933bea2331ef012"/><file name="BounceDetail.php" hash="488404a38f87a2bb69963c13008457c5"/><file name="Campaign.php" hash="9e71bfc36afadb5238e99f65aed291dc"/><file name="CampaignFeedback.php" hash="9ec796ddb3826fa2ef79661b9f476e6b"/><file name="CampaignLookupPreferences.php" hash="247a1d11f2b48f88b0ab3ffd49808247"/><file name="CampaignNote.php" hash="766543c655f647357ebe3f1e11c5ecd4"/><file name="CampaignNotes.php" hash="2554a41a65a99ab00fd2bf847f09f63d"/><file name="Campaigns.php" hash="ce759e2d677623f0482dc71f451674b7"/><file name="ClabService.php" hash="0cb5e81e9abee888a82238604f405408"/><file name="CommunicationCategory.php" hash="d4a3dff3d71cac521dff8aff568f7780"/><file name="EmailMessage.php" hash="abb361cbbc827ae4e810788d680dda60"/><file name="FaxMessage.php" hash="4a6718c8cf06e19fd90597be4fae8511"/><file name="LookupPreferences.php" hash="7ecd011496f99453bc45d0b5f05caf20"/><file name="Message.php" hash="88372af680074a0d4215601ace73c3c0"/><file name="MessageModels.php" hash="49e44071f3639a599fa4d30759b99f01"/><file name="Recipients.php" hash="f3de79ad97782f4511cc4592a5751fea"/><file name="Sender.php" hash="ec91192aae86f5da011d05f9556d3b07"/><file name="SlicedDataSet.php" hash="7ee3e0ea0f67c7c85ab74015f6b12a56"/><file name="Subscriber.php" hash="2cce2c60f49b2bfe8650bf07ccd7e0fb"/><file name="SubscriberAttribute.php" hash="071cf1754e47ee6141de6a68e85d27a7"/><file name="SubscriberSource.php" hash="a4d2ae669640c6bd65a3e0fcb2467540"/><file name="SubscriberSourceField.php" hash="3b2d2526698832801047059fc1269018"/><file name="SubscriberSourceFilter.php" hash="f19bb9876b432bb5fa3e980936942070"/><file name="SubscriberSourceFilters.php" hash="6ee53b041cc5b873faf55edd38e6c5b4"/><file name="SubscriberSources.php" hash="ad2b28a80ede3ca2fc3affbb81228065"/><file name="Subscribers.php" hash="91ab6d1096a4be9047d006502b347d4d"/><file name="TextMessage.php" hash="e9213ccffefd2910ca5c4df09287ccbc"/><file name="TrackedLink.php" hash="830f2542cdfd8abe196c40d0976717a4"/><file name="TrackedLinks.php" hash="eeef87e8d7716bc02b118f237e9e7f08"/><file name="XMLDeliveryInfos.php" hash="a92d8f147d831e0d8ad9a59ac175ebcd"/><file name="addAttachment.php" hash="aafb4d4b4ff429d53ff04e9d4280ce7f"/><file name="addAttachmentResponse.php" hash="fd82c72432993a38ec954cbadd70a907"/><file name="addCampaignNote.php" hash="97b30bcaa074445579b0cc101405f222"/><file name="addCampaignNoteResponse.php" hash="a43580bce766bb90976cf37a7e8b12b7"/><file name="addSubscriber.php" hash="10d8330a8c31d8a74a643389efcdc863"/><file name="addSubscriberResponse.php" hash="17ee7cbf8ab81934334e43f23758473c"/><file name="addSubscriberSource.php" hash="9bc3c67af5132b4384124fb373a7bdf4"/><file name="addSubscriberSourceFilter.php" hash="c9b8b8ab031be5be6672e24686a08724"/><file name="addSubscriberSourceFilterResponse.php" hash="d8a43ceef9b5e43f0ad2916a68afd9c6"/><file name="addSubscriberSourceResponse.php" hash="28f6abe65906eef415e180b5c637ba36"/><file name="addSubscribers.php" hash="637fdea104587a2231f3c43839d2d5a1"/><file name="addSubscribersResponse.php" hash="37b214030476208d8742354329770257"/><file name="archiveSubscriberSourceFilter.php" hash="e5ef057e35d274e3139a386330093eab"/><file name="archiveSubscriberSourceFilterResponse.php" hash="bd56103fddbf9d2fd0e6d4b868123b50"/><file name="borrowToken.php" hash="c7e3736ab5dd453b372f261c1511f795"/><file name="borrowTokenResponse.php" hash="c888fb23b89d9a12ae45cf09dc07cbc6"/><file name="cancelCampaign.php" hash="837363783c11e4751144cea5b20b250a"/><file name="cancelCampaignResponse.php" hash="c09fcdc56774b82cca16222ffc360525"/><file name="cloneAndSendCampaign.php" hash="bc85929ae1f2b694e4d80df22c0cfa12"/><file name="cloneAndSendCampaignResponse.php" hash="b9f4afa47bb0c7d953d8471858bd8181"/><file name="countSubscribers.php" hash="97cdbdd6c4a5949b2d3c6b79adf7dc0a"/><file name="countSubscribersIncludedInFilter.php" hash="a4c1953510ee1f1f680ddcb50dedda83"/><file name="countSubscribersIncludedInFilterResponse.php" hash="e950b50136733aeefb57faac759318b0"/><file name="countSubscribersResponse.php" hash="47f5b01e68a5337241e540d8d14d6506"/><file name="createCampaign.php" hash="7af3d8b6176af5dbed9005002c5f9fea"/><file name="createCampaignResponse.php" hash="1f94aa0ced02397e5cbc3685880ff6c6"/><file name="createMessageModel.php" hash="3a2be564063f933b2c9a5220f75aba19"/><file name="createMessageModelResponse.php" hash="e77c07e74f6b2adb906d663d6a5ab796"/><file name="findArchivedFiltersBySubscriberSource.php" hash="665fdb9883a932354b9646e1cdcdc085"/><file name="findArchivedFiltersBySubscriberSourceResponse.php" hash="c28a96905fc9c85e3be850a9b3182ff3"/><file name="findCampaigns.php" hash="994da9782174931b0c4959a595ae35db"/><file name="findCampaignsByModel.php" hash="94cd24329ce937cd504917ba19813022"/><file name="findCampaignsByModelResponse.php" hash="606ea2662d7ed0c0ed90816142b8a423"/><file name="findCampaignsByNameOrSubject.php" hash="729aafc3da9fc5d60cc89bcf37e384d9"/><file name="findCampaignsByNameOrSubjectResponse.php" hash="3205d1dda7a1dbc55cb13451422509b3"/><file name="findCampaignsByNote.php" hash="e642c65d5c05d3a29a2882702a972029"/><file name="findCampaignsByNoteResponse.php" hash="3daab98189a2bf900c373bba533bccfc"/><file name="findCampaignsByStatus.php" hash="06bfdd8059f962e5152bf4690a9a1432"/><file name="findCampaignsByStatusResponse.php" hash="f2e2a60b926a4b055ee3ad35eb35467c"/><file name="findCampaignsResponse.php" hash="aa12cfdb1dc21618c9dcea68ce4e4a36"/><file name="findCampaignsSentBetween.php" hash="5978f7d3ea6d4e169aeef958a93b64a7"/><file name="findCampaignsSentBetweenResponse.php" hash="27db82a783f299a904e5f840c6bead94"/><file name="findFiltersBySubscriberSource.php" hash="780c7a78fccb4e9072ef51fdb798ef0e"/><file name="findFiltersBySubscriberSourceResponse.php" hash="047ebedff8cdb8e3fbc22143b958443e"/><file name="findMessageModels.php" hash="249f73d33c9efdc16817ac6228827894"/><file name="findMessageModelsBySubscriberSource.php" hash="16ed2e80ac0b28a3bc0eaccdde43770d"/><file name="findMessageModelsBySubscriberSourceResponse.php" hash="7c75c3a33072fed17ca6ba08d927ef9a"/><file name="findMessageModelsResponse.php" hash="e2381a5ca3c286a4b2240b5af84f4cfb"/><file name="findNotesByCampaign.php" hash="816af78e41fbf6941ca5c6d508371add"/><file name="findNotesByCampaignResponse.php" hash="54964b987980cb5d2e9d918c8c7ff70c"/><file name="findPeriodicCampaigns.php" hash="ef83d75476d289d2e81fef015310e9f1"/><file name="findPeriodicCampaignsResponse.php" hash="e0cd3bf7f0ebd1750aaf4c124044bdef"/><file name="findSubscriberSources.php" hash="1f865ba0607fb54d611519483c0ba37e"/><file name="findSubscriberSourcesResponse.php" hash="468dffd45134f7a82e250c9eb35b7f1a"/><file name="findSubscribers.php" hash="84bcdc3899b6583110570a83aeba41f6"/><file name="findSubscribersIncludedInFilter.php" hash="8507b8aa27a40f4226584af4deba8c26"/><file name="findSubscribersIncludedInFilterResponse.php" hash="fe1f065e3c24c9fba93c91b104af3378"/><file name="findSubscribersResponse.php" hash="7da20215136d55a2d4a338e7b1e80fd8"/><file name="findTriggerableCampaigns.php" hash="df0d9f03bd0cd7db9983f3ed9520b9b5"/><file name="findTriggerableCampaignsResponse.php" hash="4936fc7428e96e27203db2222a2a3930"/><file name="getArchivedSubscriberSourceFilter.php" hash="b1ba4a087da85eeed8ad7d637b5b7289"/><file name="getArchivedSubscriberSourceFilterResponse.php" hash="c2c74693aa72e9cfe70da4c5552c1e10"/><file name="getAttachmentByCampaignId.php" hash="4d8d58c768c313e7a34df4b14762f216"/><file name="getAttachmentByCampaignIdResponse.php" hash="ee4653b2fd234eaf3ac3b2ae2763b218"/><file name="getAvailableCommunicationCategories.php" hash="2812d2d787575ca76a6c20a65d959012"/><file name="getAvailableCommunicationCategoriesResponse.php" hash="c44b3783ea5e09fc518026c2e1b4fea6"/><file name="getCampaign.php" hash="0ad3de64f6d886f3e7898370e0286b58"/><file name="getCampaignDeliveryStatus.php" hash="926b85895ffb17fa191151b3ff4f8407"/><file name="getCampaignDeliveryStatusResponse.php" hash="2373c615052b9cd1e96b80e110252804"/><file name="getCampaignFeedback.php" hash="88d80874aa7b4ff30e8dd8d228144045"/><file name="getCampaignFeedbackResponse.php" hash="3c5762d732130b5fc5f2e64d289c1fff"/><file name="getCampaignResponse.php" hash="e9c51b4c1ba979d2a131ffb7f7079fe7"/><file name="getCryptoKey.php" hash="bfb67fef4223514d4853750ae520cda3"/><file name="getCryptoKeyResponse.php" hash="6322e290ed7b23ab69ba5ce892a7ff3e"/><file name="getMessageModelById.php" hash="58a952e46581010154d17e2a2ceeeb97"/><file name="getMessageModelByIdResponse.php" hash="ad90f598343a0469479ad5eda0bcd5ae"/><file name="getRequestStatus.php" hash="9892f5714b0bf16f305d98102a142919"/><file name="getRequestStatusResponse.php" hash="8dfb0a5589dd0556163cf32a988ddfcc"/><file name="getSubscriber.php" hash="28b43e849621dc5f66e339504d709809"/><file name="getSubscriberDataExchangeStatus.php" hash="34defa00aa45b2c05e102af167f60bb7"/><file name="getSubscriberDataExchangeStatusResponse.php" hash="ccdeec492cf724027881a77801eee861"/><file name="getSubscriberResponse.php" hash="31bda97f6261d38931a9a6aca878729a"/><file name="getSubscriberSource.php" hash="e4952a57312cbb47127203ccd7282101"/><file name="getSubscriberSourceFilter.php" hash="38fed10d61883e7f3ad3eaf1017ff861"/><file name="getSubscriberSourceFilterResponse.php" hash="2f9ff8cdecedbdb80f5aed4f82e0872c"/><file name="getSubscriberSourceResponse.php" hash="6288ddc830b2ce6f19253185974e8d08"/><file name="getTrackedLinks.php" hash="65226faf6bdb6548900ecbe4d3f0589a"/><file name="getTrackedLinksResponse.php" hash="1baef1c35da95c50a96cac8dee266db1"/><file name="getXMLDeliveries.php" hash="bec33bc553d3d27088d43947b4b94cae"/><file name="getXMLDeliveriesResponse.php" hash="103249a095ecc11c6a8e45e6ee03ecf8"/><file name="getXMLDeliveryTransitions.php" hash="2c91cfced369a2f291e5926f0f45aa50"/><file name="getXMLDeliveryTransitionsResponse.php" hash="13a5da14b52d69eca8186e160bb1cbc8"/><file name="invalidateToken.php" hash="feb611c092d5679ac11671bde06703f1"/><file name="invalidateTokenResponse.php" hash="5dabc504490ed7f068dcb911f9f4de97"/><file name="keepaliveToken.php" hash="eaf6542a3cd270b21e6e7d184ddd1676"/><file name="keepaliveTokenResponse.php" hash="658b578b970184b6ad7182832db02d89"/><file name="modifySubscriberSubscriptionStatus.php" hash="af08f77094824b87a7806c23b9c16918"/><file name="modifySubscriberSubscriptionStatusByMailqId.php" hash="793b06ffae8d35b6a101b9747463d0bc"/><file name="modifySubscriberSubscriptionStatusByMailqIdResponse.php" hash="f36bb42ce9049625d54542e3b1433b1e"/><file name="modifySubscriberSubscriptionStatusResponse.php" hash="f7e1cece9f5ec7ec246e9c32a7b5dec4"/><file name="publishOnWeb.php" hash="8ba487c1078cd7ad73215aeb59f3df81"/><file name="publishOnWebResponse.php" hash="fb2315ebb11c0468662993a6c63f2fae"/><file name="removeSubscriber.php" hash="c54f6f12de913082d9d37d8b6512c5b5"/><file name="removeSubscriberResponse.php" hash="a685a6eb245d42ba68a8859a7c9976e3"/><file name="requestCampaignFeedbackReport.php" hash="83382be36afc47c912041e39a8a91bb5"/><file name="requestCampaignFeedbackReportResponse.php" hash="a355c87dd81366319a1cbcfef897b63d"/><file name="reuseSubscriberSourceFilter.php" hash="dbe58a95d2d2a9b22931e2f2846ee5a4"/><file name="reuseSubscriberSourceFilterResponse.php" hash="2662fccf2d3c0f8ea8c83748bebdebea"/><file name="sendCampaign.php" hash="d6fc6e6265c57a4d21a1c272e7c99154"/><file name="sendCampaignResponse.php" hash="4e2440bebed2a589fa0165d3e3eed483"/><file name="sendImmediateMessage.php" hash="a3e2036a82d71ff0a82a257a2075d409"/><file name="sendImmediateMessageResponse.php" hash="4c9602a44ac0b7a9eb5b898605af22be"/><file name="sendImmediateMessageSDataCData.php" hash="4642d684e187fde20dc81ccb802af084"/><file name="sendImmediateMessageSDataCDataCA.php" hash="233a58432de264308ad4331a0682821c"/><file name="sendImmediateMessageSDataCDataCAResponse.php" hash="5eab02d47c5833cc0a902bf14c761776"/><file name="sendImmediateMessageSDataCDataResponse.php" hash="351236b1b015e03abca60371fa689abf"/><file name="sendImmediateMessageSDataCIdCA.php" hash="5563f04200dd3533a33a1024ce8b4869"/><file name="sendImmediateMessageSDataCIdCAResponse.php" hash="5b4bac75edc19eb758f2a3553b278629"/><file name="sendImmediateMessageSIdCData.php" hash="71618fe49e43bff9cc53957324397056"/><file name="sendImmediateMessageSIdCDataCA.php" hash="7d2ecd18e0e87e71ace465d1d76d1169"/><file name="sendImmediateMessageSIdCDataCAResponse.php" hash="eae46b409221e5bd2bc58f554242eddc"/><file name="sendImmediateMessageSIdCDataResponse.php" hash="2b5cd3ca959cf22cceb445b8a9487467"/><file name="sendImmediateMessageSdataCAl.php" hash="0374318565674b93c9cc5af74b7dde8e"/><file name="sendImmediateMessageSdataCAlCA.php" hash="5cf7ab51277a87e467f1c1da0b7ca04b"/><file name="sendImmediateMessageSdataCAlCAResponse.php" hash="5f6b99e92f4125d4c5e2c1c52537fe84"/><file name="sendImmediateMessageSdataCAlResponse.php" hash="69b0e09d428b115b56b2dcf151434d0e"/><file name="sendImmediateMessageSidCAl.php" hash="4a5c3b7fdf4a590ea3afe97330520af9"/><file name="sendImmediateMessageSidCAlCA.php" hash="8ee842963b8de8d887b47601cc5acd7e"/><file name="sendImmediateMessageSidCAlCAResponse.php" hash="6e574a4a6a4a87a38db7be60e3ee3855"/><file name="sendImmediateMessageSidCAlResponse.php" hash="6ba97d1cdf7012bfe1fe1964a2943f9e"/><file name="sendImmediateMessageSidCid.php" hash="84d9a2e3fe11d462f18101ea7e5edee5"/><file name="sendImmediateMessageSidCidCA.php" hash="228313907a7ffb2034a8290ba0e7421c"/><file name="sendImmediateMessageSidCidCAResponse.php" hash="a03863e9cca7db6ee1ae5281a16fc3ef"/><file name="sendImmediateMessageSidCidResponse.php" hash="c98ee1afdad240a565bdc1e80da0418a"/><file name="setCampaignRecurrency.php" hash="d70b012427c8bcbb5b919132d3e6abbb"/><file name="setCampaignRecurrencyResponse.php" hash="31339f0edbb429ababc2430e44761f67"/><file name="startSubscriberDataExchange.php" hash="e4dce40e847d1eb73dff51c867dd58da"/><file name="startSubscriberDataExchangeResponse.php" hash="8cf8b384dd795929b8dc067462ec4673"/><file name="triggerDeliveryByAlias.php" hash="28a46cf449766ad8dabde4858d41b6f2"/><file name="triggerDeliveryByAliasResponse.php" hash="1990179026c6d67dc061bcaabfed5a30"/><file name="triggerDeliveryById.php" hash="6e3b46ecc600bffcd9ab52bcc19f51f7"/><file name="triggerDeliveryByIdResponse.php" hash="ef45334a763e77f60238dac80c0d2cc9"/><file name="updateSubscriber.php" hash="ff20a2ee470eaf9cfbb9b313307fc543"/><file name="updateSubscriberResponse.php" hash="6da25998752a81b407c85e26c7047a8d"/><file name="uploadMediaContent.php" hash="e93aca9ec6e1b36371836e539efb41a3"/><file name="uploadMediaContentResponse.php" hash="6ed39f2d177b4705768cf35db6829c2f"/><file name="xmlDeliveryInfo.php" hash="cc0bbdbe9741e5be2d6e5cdccea43c91"/><file name="xmlDeliveryTransitionInfo.php" hash="f0fd36cf966311c097eb2ebbe63d7afa"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="contactlab"><dir name="commons"><file name="cancel.png" hash="17065c5c397c6f6ca9ac97ab1033f88a"/><file name="delete.png" hash="61e27f7ba4b87e918351239b160c03de"/><file name="retry.png" hash="45700cc820e53665b269352564f08957"/><file name="run.png" hash="595432ecd2f7124cb5e96279a727c944"/><file name="suspend.png" hash="8f2ea46ca3b37ab4fefbf5d8b7b66cf0"/><file name="unsuspend.png" hash="5b3bf2cc96fa070b727b8d0765f2704d"/></dir></dir></dir></dir></dir></dir></target></contents>
33
  <compatible/>
34
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
35
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Contactlab_Modules</name>
4
+ <version>2.5.4</version>
5
  <stability>stable</stability>
6
  <license uri="https://opensource.org/licenses/osl-3.0.php">OSL v. 3.0</license>
7
  <channel>community</channel>
25
  &lt;/ul&gt;&#xD;
26
  &#xD;
27
  &lt;p&gt;ContactLab Connect for Magento has been developed in collaboration with WebFormat&lt;/p&gt;</description>
28
+ <notes>- Fixed created_at&#xD;
29
+ - Fixed abandoned cart prices&#xD;
30
+ - Create checks for SFTP connection</notes>
31
  <authors><author><name>ContactLab</name><user>ContactLab</user><email>magento@contactlab.com</email></author></authors>
32
+ <date>2017-03-24</date>
33
+ <time>14:37:40</time>
34
+ <contents><target name="magecommunity"><dir name="Contactlab"><dir name="Commons"><dir name="Block"><dir name="Adminhtml"><file name="Backend.php" hash="208c57c38069bb462ea48b56c753bd83"/><file name="ConfigurationCheck.php" hash="38a0b3ef316c0b153aaccbc0928b7a20"/><dir name="Email"><file name="Template.php" hash="2503b51a4988bb892df330f2de75b92e"/></dir><dir name="Events"><file name="Grid.php" hash="ada058c87141c94b6584f2206957941d"/><dir name="Renderer"><file name="Alert.php" hash="80c8911038197b7de34c75d87d453b82"/><file name="Status.php" hash="01038685dbcb692daae047aa45b336d8"/></dir></dir><file name="Events.php" hash="3230a203addb6dc02f5eb995ddd66f23"/><dir name="Logs"><file name="Grid.php" hash="1a1a51b5791d2df97890553d536260e4"/><dir name="Renderer"><file name="Datetime.php" hash="f7f23deac1c9871674ecde594ba742b8"/><file name="Default.php" hash="6f81d70e10fdaf42035a53323f82bb40"/><file name="Level.php" hash="a2b58d0549cacad4b83ca0ae52fd978e"/></dir></dir><file name="Logs.php" hash="f24ba62587734880d7046d4ed01bbfae"/><file name="ReleaseNotes.php" hash="5108bca563cc734f44ed05c609c8738e"/><dir name="Tasks"><file name="Grid.php" hash="a129b2010f71e024d4dbbfd34fb91a71"/><file name="Js.php" hash="308756573ad11f22f1fc634727aaa297"/><dir name="Renderer"><file name="Actions.php" hash="4f1d165274caa1785b295e7e44ca0e22"/><file name="Model.php" hash="b129b6489c9ba09a20204a52cec78dd0"/><file name="Store.php" hash="3f12cf3aa32981ce9a5a4043a88962fd"/><file name="Task.php" hash="afcc58d833d4ac7c12d6409d8b075154"/></dir><file name="Status.php" hash="55dfcd7cbcaa54bc142b6d403481d170"/></dir><file name="Tasks.php" hash="5f0a04ff580ee2e0f6a919d121baa173"/><file name="Test.php" hash="a032f1ca4929077d737f8b34f82830d8"/><file name="Version.php" hash="dd64372d7bf8d9024e00f2ee213c126c"/><dir name="Widget"><file name="Button.php" hash="ca124e5a2dbaf35d2eb454a268d1ad9b"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="34786d704ec107433ba368e734cbf489"/><file name="Tasks.php" hash="2bdaacf98e693d795f965e6c07511e22"/></dir><dir name="Model"><file name="AbstractImportExport.php" hash="6abe068d2db8b667ee9064de7152540e"/><file name="Cron.php" hash="159ffc14f91413b35bc6085c0e2a8e86"/><file name="Deleted.php" hash="a57a201093d020ee85181c4600a7c0d8"/><dir name="Exporter"><file name="Abstract.php" hash="a4ff7629df2cc6326c97e991876a648a"/></dir><dir name="Importer"><file name="Abstract.php" hash="b9dac66ceee0e8d2b5385a6146896964"/></dir><file name="Log.php" hash="46bb074eaf00740124c76b88a91feb03"/><dir name="Resource"><dir name="Deleted"><file name="Collection.php" hash="ed85c763c9a81cb7137a9ec474f5e584"/></dir><file name="Deleted.php" hash="a1ae6a673ffe458414a866f4eb0c0d67"/><dir name="Log"><file name="Collection.php" hash="8bd275a0a40912ab2e71b39d6c37a9e2"/></dir><file name="Log.php" hash="449af875b530177e7203d2d40560237f"/><dir name="Task"><file name="Collection.php" hash="28142a650451964b7340fba61a638771"/><dir name="Event"><file name="Collection.php" hash="27dbdf551a8947950d4794fb6b540ded"/></dir><file name="Event.php" hash="5faa0f50bc41214b65bd2a25438b4446"/></dir><file name="Task.php" hash="f7ebd23a179e563b23a9c68928c10ed0"/></dir><dir name="Soap"><file name="AbstractCall.php" hash="18ec6d30d5a23b8e4cc50913a7aecd56"/><file name="GetSubscriberDataExchangeStatus.php" hash="c14f250f73d38968d257b3af0f770ff7"/></dir><dir name="Ssh"><dir name="Crypt"><file name="AES.php" hash="824d082091d59b96fd5a74cef656f2f3"/><file name="Blowfish.php" hash="abd7684db5565dce87b214952b50ed9b"/><file name="DES.php" hash="dff9541235b415780ff167b3ed87ac51"/><file name="Hash.php" hash="0a737a969906cbb12f33d41a678ec9ee"/><file name="RC4.php" hash="54d20f521a8c030a2f32fecbb9fa33b9"/><file name="RSA.php" hash="8e81a0e6c764f5069d5d9ccd825fd064"/><file name="Random.php" hash="25402099262c9b3bd9e2ca9811bc8bc8"/><file name="Rijndael.php" hash="4305e82b0a611c07c0bfe99ccdeb9951"/><file name="TripleDES.php" hash="d4b18ac4603c5b0a4c3a7e2b98ba2f52"/><file name="Twofish.php" hash="f9df605ad32f18b447c2fdf1701563bc"/></dir><dir name="File"><file name="ANSI.php" hash="42228165075cb2f138c6d4b9ddf334de"/><file name="ASN1.php" hash="3bd220eb6b134a5a56cb311737276dd1"/><file name="X509.php" hash="39b4f6b23f554485a7607382078412e2"/></dir><dir name="Math"><file name="BigInteger.php" hash="22d91d824950758858e43d58d9c0fc3a"/></dir><dir name="Net"><file name="SCP.php" hash="9d455f260731d1e544ab1d3303785188"/><dir name="SFTP"><file name="Stream.php" hash="116f7d549a19071fd301ed677a3dd4c7"/></dir><file name="SFTP.php" hash="7a002a4a8562683108aa0748095b2856"/><file name="SSH1.php" hash="f8a733d63b37063f1e84ed2f557db076"/><file name="SSH2.php" hash="e2875fa03af2498afd35772521933a7c"/></dir><file name="openssl.cnf" hash="0f1015cb8894127a94a05afa7cc23760"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Connection"><file name="Type.php" hash="335493d8aeb1016a98d9716469ffb1e7"/></dir></dir></dir></dir><dir name="Task"><file name="Abstract.php" hash="2efaf1050a1a2607682c4da92ac93bd3"/><file name="Event.php" hash="2f29caaf7f904894e327d5a2701d79c7"/><file name="Interface.php" hash="9f491f0c940f405fca8ddc18a507deae"/><file name="TestRunner.php" hash="f4f22da5b45a585f8f91540f27dff65b"/></dir><file name="Task.php" hash="fd29e79822219c1b1422dd074e2868c9"/></dir><dir name="Test"><dir name="Helper"><file name="Data.php" hash="7a7cf6f101d563ece6a669fda96bcc49"/></dir><dir name="resources"><file name="composer.json" hash="fab8c2bb9f09a1f10da3725dd8e51d48"/><file name="contactlab_db.sql.gz" hash="c1e2185f60a7b81fb80fbe0cb92f12bb"/><file name="local.xml" hash="315270d1f7d0a42ed4a5a756fc97fda7"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Commons"><file name="ConfigurationCheckController.php" hash="2c801d4f90682d530c64ce90c13ad431"/><file name="EventsController.php" hash="dbe781ee96287eb5af21723cd212bf18"/><file name="LogsController.php" hash="54ec270e5fa8ce90222e0fa7627771f1"/><file name="ReleaseNotesController.php" hash="15becd0b614d49f53f10bd45bb53fd73"/><file name="TasksController.php" hash="9740ba3003e3748ceb21856aa18e21cf"/><file name="TestController.php" hash="0cfb06b753d20de75cc06187a7d06e63"/></dir></dir></dir></dir><dir name="docs"><dir name="example-config"><file name="contactlab-local.xml" hash="93f33812b0b1cdb362340c910340707b"/><file name="contactlab.xml" hash="57902122d66b5d7bb7330d81911e1a6e"/></dir><dir name="release-notes"><file name="0.8.10-20150116.html" hash="54b37d0590df5f093d9334b2f73cbac4"/><file name="0.8.12.html" hash="26043d9aa4382398177b5b2295c4f067"/><file name="0.8.13.html" hash="e9bf17af343bfd0931eed6c2f6f0273e"/><file name="0.8.14.html" hash="2d87675e13144be97952e36a757f2811"/><file name="0.8.15.html" hash="41375887fbde15eb7577e0bb4bada0e2"/><file name="0.8.16.html" hash="1c1b11a533bfa26187892946bfd7f339"/><file name="0.8.17.html" hash="277597117d81d75a3cab78ba2fe6ad23"/><file name="0.9.0.html" hash="58b3590294904915d3e12e9caf697d2e"/><file name="1.0.0.html" hash="f48f9b999929433e2aeedc263f2571bf"/></dir></dir><dir name="etc"><file name="Contactlab_Commons.xml" hash="bfd174f2535b432589bff0f4fc81ecec"/><file name="adminhtml.xml" hash="460f3ff0ebf20c55d0cfa94429481402"/><file name="config.xml" hash="8382fea8507f2a8ecdbc0e249c318e7c"/><file name="system.xml" hash="ad0e508dfb1d77131bc69e796c16f024"/></dir><dir name="sql"><dir name="contactlab_commons_setup"><file name="install-0.8.0.php" hash="46661857fcf01cbe2cde396924f47f61"/><file name="mysql4-install-0.8.0.php" hash="83032fadee6577e80844079adc580c97"/><file name="upgrade-0.8.0-0.8.1.php" hash="d963ac18fd5150a697280c445715ef3d"/><file name="upgrade-0.8.1-0.8.2.php" hash="d2dc6cb4e61becd440e0aa1ef86741ab"/><file name="upgrade-0.8.13-0.8.14.php" hash="aa7a1797ae911908547e6ebced4c277a"/><file name="upgrade-0.8.2-0.8.3.php" hash="fbc0488645da03c2cc86305a348ee067"/><file name="upgrade-0.8.3-0.8.4.php" hash="9caf4bed86e90f29ef7abaad0c172cd2"/><file name="upgrade-1.0.0-1.0.1.php" hash="22bbf46398b73475ef1e367a9377c834"/></dir></dir></dir><dir name="Subscribers"><dir name="Block"><dir name="Adminhtml"><file name="Export.php" hash="dbbc2d51a507bf3a4b7aaaf006b2e9c4"/></dir><dir name="Newsletter"><dir name="Subscribers"><file name="Modify.php" hash="9011a378b053f6363b38de63e448da82"/><file name="Subscribe.php" hash="32873e816417af84e88016af6b36a2ba"/><file name="Update.php" hash="563e0dfa5d463d763f21356f2438aa38"/></dir></dir></dir><dir name="Helper"><file name="Checks.php" hash="999b92aac7be891bc67e24f907870caa"/><file name="Data.php" hash="70d6a682392e64be00c6a71238092500"/><file name="Exporter.php" hash="12043ac3f7ae14bd7084b740cca51a7a"/><file name="Uk.php" hash="6d50c16ef3ce7144c6e6587a96880cab"/></dir><dir name="Model"><dir name="Checks"><file name="AbstractCheck.php" hash="afdc7117177bdccc70da33f3691f0ae2"/><file name="CheckInterface.php" hash="94e1743d9de7d356c1fd786b6e54a162"/><file name="ContactlabAuthApiKeyCheck.php" hash="053fc17bf8b98f0bf627640be869a2c7"/><file name="FindDuplicatedCustomersCheck.php" hash="abe297974dc05fcd153de9c0fbd488bf"/><file name="FindInvalidCustomersCheck.php" hash="757d9ba4e1960e8d11bd269523841a9c"/><file name="RewritesCheck.php" hash="1ec4b03fd4b9033374ff68498a63a973"/><file name="SftpSubscriberExporter.php" hash="13e52d267d247f77590d25f11bb0c150"/><file name="SftpXmlDeliveryCheck.php" hash="02500839942354e3529d41b53696808e"/><file name="WsdlCheck.php" hash="0d5c9946ae3fc26014aabe393610614f"/></dir><file name="Cron.php" hash="ff998d290ff804b490ac64acfb44917f"/><file name="EmailExport.php" hash="b3ed1b090b825a8e53139eff9e107944"/><dir name="Exporter"><dir name="Subscribers"><dir name="InfoTransporter"><file name="Abstract.php" hash="c308d4728f88d9adf2e8cc1ad738f25b"/><file name="Customer.php" hash="31525219d45a3b57021e53e94a747599"/><file name="Deleted.php" hash="81c35ae7dc9079e6066a6daceff6fb96"/><file name="Subscriber.php" hash="fe7d8919967b4eca845377e43bf10292"/></dir><dir name="MapTransporter"><file name="Abstract.php" hash="33dd82745d6d5278165dbd015eea754b"/><file name="Address.php" hash="32b7874a1923f98befd2bb53e0ee6547"/><file name="Attribute.php" hash="1c88e00280f50a0b649145219dc908a3"/></dir></dir><file name="Subscribers.php" hash="658a6674332f2f6b9915e2b0ffb8ab37"/></dir><file name="Fields.php" hash="1647ad72d9ffd01507ff2e1905d06840"/><dir name="Importer"><file name="Subscribers.php" hash="0c087db3b7461e704c7b0190abb982bc"/></dir><dir name="Newsletter"><file name="Subscriber.php" hash="aeffddf37091ff4a231d7845b30925c8"/><dir name="Subscribers"><file name="Observer.php" hash="b53c359c47de8695bb8f5187b765e547"/></dir></dir><dir name="Observer"><file name="Fields.php" hash="1914da6670e6e036090124376a63da38"/><file name="Uk.php" hash="0deac2259e97a2ef1a72d2b8a2217bc2"/></dir><file name="Observer.php" hash="ec02dd05f20c942c3b677deb74c31599"/><dir name="Resource"><dir name="EmailExport"><file name="Collection.php" hash="8f15643741b8dd7a4be2a6d1fc57b2cf"/></dir><file name="EmailExport.php" hash="d042bdf71ade2d80100fc39b96315f39"/><dir name="Fields"><file name="Collection.php" hash="b9c7ef78e14d06a803b78731283ec3ba"/></dir><file name="Fields.php" hash="17cc1061442f3124c0483e21c6cb60cf"/><dir name="Newsletter"><file name="Subscriber.php" hash="10c1cc4516fc0644655c01225d43b022"/></dir><dir name="Stats"><file name="Collection.php" hash="fa92b14e6d466d517d5390840268ff6e"/></dir><file name="Stats.php" hash="3b8e15132397711baf499c0fb654ab17"/><dir name="Uk"><file name="Collection.php" hash="660d44a3a3fbce7b7f30b2aa5cb97381"/></dir><file name="Uk.php" hash="673867d3e06ca928bb544c96536b9103"/></dir><dir name="Soap"><file name="AbstractSubscriberCall.php" hash="e5a6854a6abe1e2c7c1947c02f6742fb"/><file name="GetSubscriptionStatus.php" hash="4e3f2f2034f56a82b3f29492082c887c"/><file name="SetSubscriptionStatus.php" hash="c356bf8ab55d28f38db0efc729f2cabd"/><file name="StartSubscriberDataExchangeCall.php" hash="ed9ea900676fb00e12ff58c19e0ef1c4"/><file name="SubscriberNotFoundException.php" hash="7b34788b3e71febcafe5d17f83192b54"/></dir><file name="Stats.php" hash="288b3b4312d0bf366caf6e1e6c913a44"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Export"><file name="CheckUkPolicy.php" hash="4c52ee5463ff95d2a30714a24c2e521a"/><file name="Policy.php" hash="67e0a791095847cb89cb2ce311e4865f"/></dir></dir></dir></dir><dir name="Task"><file name="CalcStatsRunner.php" hash="eb0f152c42b2317b90ee00d27f947431"/><file name="ClearStatsRunner.php" hash="274ed827c0af4b888f9470fbf11ff86b"/><file name="ExportSubscribersRunner.php" hash="cd95a707bb542b08edf9e94fc5e153e6"/><file name="ImportSubscribersRunner.php" hash="496745ed30b1f274e543a5be9015078e"/><file name="StartSubscriberDataExchangeRunner.php" hash="97df2b3a6347be0a8a3d6f2c1ff78ad5"/><file name="TruncateUkRunner.php" hash="b8a48277c93f25f8d6a4ea42af437ff1"/><file name="UpdateSubscriberStatusRunner.php" hash="c13756209e73667f443d63cd8e4af691"/><file name="UpdateUkRunner.php" hash="31d73e9569367927286de0581d2285fc"/></dir><file name="Uk.php" hash="646eb6fc1af9b5ab601a7eed25a22050"/></dir><dir name="Test"><dir name="Helper"><file name="Checks.php" hash="5a9734a2fca4b49ab942c450ebf32775"/></dir><dir name="Model"><dir name="Checks"><file name="ContactlabAuthApiKeyCheck.php" hash="dc14e7d82c433914eea09a75c4e6f5a2"/><file name="FindDuplicatedCustomersCheck.php" hash="2a33873168c94d31c098704fecf4e6c4"/><file name="FindInvalidCustomersCheck.php" hash="5b6985695993e8acbd540a82d1a83aee"/><file name="RewritesCheck.php" hash="93d008de2807cb0209a397720b2c6499"/><file name="WsdlCheck.php" hash="9a49fe2a35ce7d9391d443b26fc31d8a"/></dir><file name="Uk.php" hash="5254745888787f083b4361e2f0ce4a31"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Subscribers"><file name="ExportController.php" hash="141c13b29c3d08a8cebc5753910853d4"/><file name="ImportController.php" hash="e30470248e0b2f6d48daa9c76cb46b00"/><file name="StatsController.php" hash="b7dcf038c82964db4574b20a44efea4c"/><file name="UkController.php" hash="ac2669685426ce5dad4bd9784a75297e"/></dir></dir></dir><file name="EditController.php" hash="0e73ec91f39642065c0278b96c1afcae"/><file name="ModifyController.php" hash="1c7d1cc32e5869515d2e688e818e7fda"/></dir><dir name="data"><dir name="contactlab_subscribers_setup"><file name="data-upgrade-0.8.4-0.8.5.php" hash="b44b6ee842349b9dbcf93d237af61960"/></dir></dir><dir name="docs"><dir name="build"><file name="build.bash" hash="114980c92310c5672fc3b9b7819e7838"/><file name="files.txt" hash="103f8b2fa61f4887416f0e9218a62a1a"/></dir><dir name="release-notes"><file name="0.8.12-20150116.html" hash="4b0889525dc1d40ffd703dcdd72edbcc"/><file name="0.8.13-20150204.html" hash="4f30d3b723ebee5f784ce3bc0b39ee25"/><file name="0.8.14-20150213.html" hash="cdcbb67655d0595e4dee4f63b011edbe"/><file name="0.8.15-20150309.html" hash="3913bab1da721f35377a289b99bbd642"/><file name="0.8.16.html" hash="68b8c749ac7269c4cd879b2088563a39"/><file name="0.8.17.html" hash="1ee5b5904b4998ca23b07fdd7aeafcb1"/><file name="0.8.18.html" hash="509dbbf9eca227918f75bd32beb297c9"/><file name="0.8.20.html" hash="4a69862b759a69219fd5ab40de4ad51d"/><file name="0.8.21.html" hash="60f170d1c2115d06791123d47ba93804"/><file name="0.9.0.html" hash="281a85179f31f5f700949c7e748b0949"/><file name="0.9.1.html" hash="bd181e6d14d0dc4a805b5532a7887068"/><file name="1.0.0.html" hash="6abd3f6f069ffeb16a507c0938f122de"/><file name="1.0.1.html" hash="352c95a5379c7d36189ec6ec5a0c34ec"/></dir></dir><dir name="etc"><file name="Contactlab_Subscribers.xml" hash="c9808465720abbf1eb7be475dbf3b826"/><file name="adminhtml.xml" hash="9d122f10695f3fe0de64852790034bd2"/><file name="config.xml" hash="63720be461d85cb2b7256003ee945931"/><file name="system.xml" hash="cc05be0c07f0bc6890f306ec77344338"/></dir><dir name="sql"><dir name="contactlab_subscribers_setup"><file name="install-0.8.0.php" hash="a6368d7e6de257005c34fc35972ba075"/><file name="mysql4-install-0.8.0.php" hash="ea9534669baf1f8ba83460eb373e4b3f"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="37388310991d293e7a4d3dcc079f1aa7"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="19858565525423737b71d63d24ce9b9e"/><file name="mysql4-upgrade-1.2.0-1.2.2.php" hash="f9ebd160d597bf10efa203940b4842e9"/><file name="upgrade-0.8.0-0.8.1.php" hash="4c8fd8b51ccda4b27bcf26018e07b9e2"/><file name="upgrade-0.8.1-0.8.2.php" hash="9586aad0f8aeebd7cfe0bda6401c22b3"/><file name="upgrade-0.8.11-0.8.12.php" hash="3f756983b338d11793ec74ff9d7927e6"/><file name="upgrade-0.8.2-0.8.3.php" hash="eaef3ceb5c6faf88c80fb3f28a925a86"/><file name="upgrade-0.8.21-0.8.22.php" hash="65fa0c02fba038f4f80a54e0462c7cbe"/><file name="upgrade-0.8.3-0.8.4.php" hash="5cb53b73936560c4796f5a1387326a45"/><file name="upgrade-0.8.4-0.8.5.php" hash="8b5aceb8a31a965211cc61e46ef046a6"/><file name="upgrade-0.8.5-0.8.6.php" hash="7f3ad36681c04662e4e7f0592005fdd9"/><file name="upgrade-0.8.6-0.8.7.php" hash="b27c5bfe8ca80d562f053bda5407de00"/><file name="upgrade-0.8.7-0.8.8.php" hash="c689709dcb32d0c8d201feb873abb123"/></dir></dir></dir><dir name="Template"><dir name="Block"><dir name="Adminhtml"><dir name="Newsletter"><dir name="Queue"><file name="Grid.php" hash="c4db6dfbe5aaec238bd87e564f5a3ee3"/></dir><dir name="Template"><dir name="Edit"><file name="Form.php" hash="e82b1748370ada98120e548434378ee9"/><file name="Js.php" hash="ebbbac2c2dee60e7ab3c5b3261c52afe"/></dir><file name="Edit.php" hash="53c4ff205c6bc310fa3360faf0446dab"/><dir name="Grid"><dir name="Renderer"><file name="XmlDeliveryStatus.php" hash="e44366255dede7766352fd46393f0f74"/></dir></dir><file name="Grid.php" hash="5efc3c750a8e835fabe5476ef3d1eb19"/><file name="Preview.php" hash="f3f5e99187b6cf9aea0dfd3a83333256"/><dir name="Tasks"><dir name="Detail"><file name="Grid.php" hash="7f50caf5bbd90dbb647af5050f906472"/></dir><file name="Detail.php" hash="e77a09eb9509449eedec7f1bbf70ce16"/><dir name="List"><file name="Grid.php" hash="c6a17747bca319e572dfaa1c032ef93e"/></dir><file name="List.php" hash="a9a88e4d3e49656478ea6f30e1b62a3e"/><dir name="Renderer"><file name="Customer.php" hash="c66e7e05724639e78a515ad1c6de64ae"/><file name="QueueStatus.php" hash="11ecc8c97fcbdaef6fb32818e2962e0c"/></dir></dir></dir></dir><dir name="Tasks"><file name="DebugEmail.php" hash="eeb4b0c88b85f67d0d9114ec0896e8df"/></dir><dir name="Type"><dir name="Edit"><file name="Form.php" hash="534b775de153ecdea8bd47a5c7e092fd"/></dir><file name="Edit.php" hash="7f26eaaa253b8c990310ed8492156fda"/><dir name="Grid"><dir name="Renderer"><file name="ConfigureLink.php" hash="76986da99f39c8b9c4a480422d3bd09f"/></dir></dir><file name="Grid.php" hash="c7c202bd5b9c05c58dc29db784855b5b"/></dir><file name="Type.php" hash="e9e36e56d903ef59e01eb12cdd7d1d54"/><dir name="Widget"><dir name="Button"><file name="Queue.php" hash="85fbfe18a7b7c15fd2a0e4815f8a8ca1"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="415aff5ceafe5cae0003c31b8cbf43f8"/><file name="SampleData.php" hash="3e6f32e688ba54258e5da3c7e43a3f10"/></dir><dir name="Model"><file name="Cron.php" hash="7be54cb8f3e49634394af331e5e98020"/><dir name="Newsletter"><dir name="Processor"><file name="Abstract.php" hash="6c8306ba4048bf55c83099cda2469230"/><file name="Cart.php" hash="3a0faf58aec4c85f025c0bff40646954"/><dir name="Filter"><file name="Abstract.php" hash="8a8bc082d68a1c7b90b5389961b60654"/><file name="AbstractDistinctByType.php" hash="2df05bdf36525c085f6c436d2402d607"/><dir name="Cart"><file name="DistinctByType.php" hash="63e3a03b08544121597bc7461ee52a58"/><file name="Dnd.php" hash="6f5a9cf91b56839bc5a7aee4e9a11ccd"/><file name="Have.php" hash="53cac800d406d02e82ae2bf0d984d95f"/><file name="Offset.php" hash="a9f08eedbd380fccea16dc77397d9e23"/><file name="ProductNumber.php" hash="b44135b3b7961cefc506c32891f4a6f1"/><file name="ProductNumberOrTotal.php" hash="1e3f5319efb8ce64b613dcfd6d0a2e37"/><file name="Products.php" hash="70ce880903fcb560006818de030f05db"/><file name="TotalValue.php" hash="334865e6d2a46ddffc3e657eebd5ea21"/></dir><file name="EmailLike.php" hash="34baf8be2aa88a1fe44a71daa87258f8"/><file name="Interface.php" hash="6d2ab6e8d5af5595ea69b928ff27af24"/><file name="OnlyCustomers.php" hash="1fd9a34c408c5a2daca53ea1d840838a"/><file name="Store.php" hash="d90f4af3d625c8280bfabfeac11ce6fe"/><file name="TestMode.php" hash="28817391eec06780c63effc30320e88b"/><dir name="Wishlist"><file name="DistinctByType.php" hash="b622a455f689cd37130ed61e91178711"/><file name="Dnd.php" hash="db13849f95786253e417c16a00bbcea6"/><file name="Have.php" hash="6f238c533f13264b84b0cbf2c4c809f5"/><file name="Offset.php" hash="fe1a43fc318299023ecc6b5352851791"/><file name="ProductNumber.php" hash="9589494f825b57010a2eed5b38562f10"/><file name="ProductNumberOrTotal.php" hash="9242bcc98946d488d6bac0a956eae9e8"/><file name="Products.php" hash="ce7319e5d81c4d9defaadf8363832f3e"/><file name="TotalValue.php" hash="c92bfbb5553c43f2ecacb0cecb55d5ce"/></dir></dir><file name="Generic.php" hash="fba6d138633a3e6d26b6ad59ae929650"/><file name="Interface.php" hash="2020fccf75ca93268e7154a4a06f6c1b"/><file name="Wishlist.php" hash="cf15890ad4d8f19869a3781433753bd5"/></dir><dir name="Queue"><file name="Link.php" hash="fee98cd3b7f7a7c5afe368ecdb2501a7"/></dir><file name="Queue.php" hash="245f401bd4cda90f84c6e32599029f31"/><dir name="Template"><dir name="Compiler"><file name="Abstract.php" hash="8a845abd46468d70cce4e545c2f5a6ad"/><file name="Html.php" hash="2270a452f83be6f3799784a03c393d82"/><file name="Interface.php" hash="bd7016c85bbd710462edc1dafab56590"/><file name="Text.php" hash="cb7aa7cb17e6f2fbe0c5147fea92e478"/></dir></dir><file name="Template.php" hash="1ba50c7e0562007d057301825018b523"/><dir name="XmlDelivery"><file name="Check.php" hash="8fc3262308c334a6e343c497ea57ffaa"/><file name="Uploader.php" hash="ad08e461e406d5f0201cf83583601ef3"/></dir><file name="XmlDelivery.php" hash="f0acd8fe4d0f34d852b1ff884f6ec8a8"/></dir><dir name="Resource"><dir name="Customer"><file name="Collection.php" hash="03eda84abd4ac99c2af60f0f8eca0de0"/></dir><dir name="Newsletter"><dir name="Queue"><file name="Collection.php" hash="17af76b4158b5a44a4171c74e8583738"/><dir name="Link"><file name="Collection.php" hash="880d705a6d77ed16720328393c842d1a"/></dir><file name="Link.php" hash="f4fbc8acd94f5cc0149e9ca814ef990b"/></dir><dir name="Subscriber"><file name="Collection.php" hash="687587b1f9c45c5d658c658026b8252d"/></dir><dir name="Template"><file name="Collection.php" hash="4c4311fbd664e9a8574ba24562862601"/></dir><file name="Template.php" hash="039f4f6e808777aa0c7b74c3b631f8db"/></dir><dir name="Type"><file name="Collection.php" hash="26d09eb4764f6fb93b856fc170a6be35"/></dir><file name="Type.php" hash="8d6c9001caa99ceb0f01cc9f54f2c4af"/></dir><file name="SimpleXMLExtended.php" hash="e28b6caa960498fb75e77d3cebf9472a"/><dir name="System"><dir name="Config"><dir name="Source"><file name="AndOr.php" hash="114c0a86611d6c0149afc4de3c75df42"/><dir name="Delivery"><file name="Method.php" hash="6175029d59b582745a98fba681375b68"/></dir><dir name="Template"><file name="Format.php" hash="527644942d74c5634d1d8f84db24ee77"/><file name="Type.php" hash="292c1f9dc7494315f44976f1163f4574"/></dir></dir></dir></dir><dir name="Task"><file name="CheckNewsletterQueueRunner.php" hash="47a52258ab016e7c9fce57fc9ad5039c"/><file name="Observer.php" hash="3f42a203d2277413a49bbd5d57c966b4"/><file name="ProcessNewsletterQueueRunner.php" hash="d48d15de98e3ea8b17745180b26a7af8"/></dir><file name="Type.php" hash="e7bb0be8ae8d070534511b780d201145"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Template"><file name="TasksController.php" hash="42d11595cb143afb80e947447904a145"/><file name="TypesController.php" hash="81d5bb593d180df76b8bb33213c71fbd"/></dir><file name="TemplateController.php" hash="3566bc5c3b5f1cd98c365509c3d060de"/></dir><dir name="Newsletter"><file name="QueueController.php" hash="865e18bb175eed185395e3fef1d9dcd2"/><file name="TemplateController.php" hash="abad2cbd9ed0305b3ee5b00cec122074"/></dir></dir><file name="SampleDataController.php" hash="7738e817f7cc8373ce01ab677a8b38ce"/></dir><dir name="data"><dir name="contactlab_template_setup"><file name="data-install-0.8.0.php" hash="691ec4f1cba03ba9a7769e01b4abd3f0"/><file name="data-upgrade-0.8.20-0.8.21.php" hash="14af0bf01230abfac7b229a7667d2966"/></dir></dir><dir name="docs"><dir name="example-templates"><file name="subject_ac.json" hash="c9aa774df01bb168afc0a6e4cf235aa4"/><file name="subject_wl.json" hash="e28b414b6e180613f71fa89628aeb19d"/></dir><dir name="release-notes"><file name="0.8.16-20150116.html" hash="388bb0b9da2461dc90e06303de060e53"/><file name="0.8.17.html" hash="11fb8e56f568027c4b76874368b1daf9"/><file name="0.8.18.html" hash="5d279e41c4d13d3695bc4a01f15ecd78"/><file name="0.8.19.html" hash="fb4533ceb065c1427c58c5e9a44f1910"/><file name="0.8.20.html" hash="e87bade4cedf6e9195cdc7a06a99da5e"/><file name="0.8.21.html" hash="b6e4733fc5bcb75ae4c547f942c40867"/><file name="0.8.22.html" hash="439ee80a2effdc14a7a9a3b1284ae7b6"/><file name="0.8.23.html" hash="04d631373ca8f4e1583fe2fad988579f"/><file name="0.8.24.html" hash="bbc1e1430ad40da34319f676ca195637"/><file name="0.9.0.html" hash="a98c626b81251e26dc0f0ad4fe1a04dd"/></dir></dir><dir name="etc"><file name="Contactlab_Template.xml" hash="bd6884cf9b2f8219f598ea88945d9399"/><file name="adminhtml.xml" hash="25d34cfae07b3150a41024831431edba"/><file name="config.xml" hash="1505f260468c412446cfa255d11dd202"/><file name="system.xml" hash="5d60aa6e3ff1f44cb7489887e72b17f8"/></dir><dir name="sql"><dir name="contactlab_template_setup"><file name="install-0.8.0.php" hash="cfbacdd1ee0dd6dafc7ef2743b2025bd"/><file name="upgrade-0.8.0-0.8.1.php" hash="a892632623aced9c2bba7163cfbd551a"/><file name="upgrade-0.8.1-0.8.2.php" hash="d57ebb94370bf344a19d30bd535c5f3e"/><file name="upgrade-0.8.19-0.8.20.php" hash="454bd54e260fa943cbf4b7e9a54de176"/><file name="upgrade-0.8.2-0.8.3.php" hash="762bc1fea119803410241325fdd5565b"/><file name="upgrade-0.8.22-0.8.23.php" hash="2ac19163d9a9fe007b36d4259271e3af"/><file name="upgrade-0.8.23-0.8.24.php" hash="9a706c92d2db43b60821adfd952b7f77"/><file name="upgrade-0.8.3-0.8.4.php" hash="1ce583cd1bd968eda2df28731d29c4f1"/><file name="upgrade-0.8.4-0.8.5.php" hash="cf6d33fadc358f58712f434314c7d39b"/><file name="upgrade-0.8.5-0.8.6.php" hash="fb815dc3ba13ee481db03886222deadb"/><file name="upgrade-0.8.6-0.8.7.php" hash="889d8a78c3fe624793fbaa5418962d28"/><file name="upgrade-0.8.7-0.8.8.php" hash="482a3378bca1b09d4face0c127576f92"/><file name="upgrade-0.8.8-0.8.9.php" hash="8d47c0ea100e856a892fb3cff8dafd76"/><file name="upgrade-0.8.9-0.8.10.php" hash="92bc695e4384444f82389938bc13be7e"/><file name="upgrade-0.9.0-0.9.1.php" hash="26865bc769baa932139eaf0067a46637"/></dir></dir></dir><dir name="Transactional"><dir name="Helper"><file name="Data.php" hash="4faf1b37aa9c5728d0301ac608538346"/></dir><dir name="Model"><dir name="Email"><file name="Queue.php" hash="6ca14247c8ead4872eab29f0fb3a4b16"/><file name="Template.php" hash="dea2688b02842777165a1a9d32f298e1"/></dir><dir name="Task"><file name="SendEmailRunner.php" hash="663ab3b2161b5dc4a331727b6763c77e"/></dir><dir name="Zend"><file name="Mail.php" hash="dc53255485ee9c4f8e3b77c0d39aaaec"/></dir></dir><dir name="docs"><dir name="release-notes"><file name="0.8.2.html" hash="5551bb5b36f227baa4a82ac09aa306f8"/><file name="0.8.3.html" hash="277597117d81d75a3cab78ba2fe6ad23"/><file name="0.8.31.html" hash="16739925886a489366a264cd14c33144"/><file name="0.9.0.html" hash="018fe082f4ef876621ea545a782f16f1"/></dir></dir><dir name="etc"><file name="Contactlab_Transactional.xml" hash="84437b19aaef7fa6566916485a1eb750"/><file name="adminhtml.xml" hash="09d3fa7ef4d802a69141a501824f3aab"/><file name="config.xml" hash="e848167e69b20248880a2307ca2f7e35"/><file name="system.xml" hash="be6f9b0c56c0ceaf926dff49948239a2"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Contactlab_Commons.xml" hash="15d6ae561458b10ef58609958cd1f35f"/><file name="Contactlab_Subscribers.xml" hash="2b205efa6475e1e150e8ea44295667c7"/><file name="Contactlab_Template.xml" hash="c331e35581ef2d31bb44b9b0aea238af"/><file name="Contactlab_Transactional.xml" hash="c21f85926a68b2acee33bc8cf34ebd44"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="contactlab"><file name="commons.xml" hash="57f77de04d63427bccce155ae59a0afd"/><file name="subscribers.xml" hash="f2295e56e52bb01baabb8a21c6c8202f"/><file name="template.xml" hash="ea0c45a73ae8fdcfc39e3d2fc60753f3"/></dir></dir><dir name="template"><dir name="contactlab"><dir name="commons"><file name="configurationcheck.phtml" hash="52029752074af134c8c9327ccf877cb3"/><file name="releasenotes.phtml" hash="10fda97a68d16416a4c908827c0bef62"/><file name="send_mail.phtml" hash="cedfe0a520b352e90c15f72f035dad80"/><dir name="tasks"><file name="js.phtml" hash="b2af96ef1c0452c7149916239249dffd"/><file name="status.phtml" hash="d0ff3be39627817088b88b1bbcdbb50d"/></dir><file name="test.phtml" hash="fcdd03dbe2f50880f62e72aae413d78b"/><file name="version.phtml" hash="3852f6508e96d7d3baccd1e73f56a95a"/></dir><dir name="subscribers"><file name="export.phtml" hash="fcdd03dbe2f50880f62e72aae413d78b"/><file name="subscribers.phtml" hash="14f2aee80e4efa4f1880a2f58ea93781"/><file name="uk.phtml" hash="41c2632e9a48df0ae50fb0d354c7fa01"/></dir><dir name="template"><dir name="edit"><file name="js.phtml" hash="0069a9b4e0b4d26e3d7ac84f605e6e2e"/><file name="validation.phtml" hash="e10df9913a3bb580b4ec5dc92e2b8ba9"/></dir><dir name="tasks"><file name="buttons.phtml" hash="cfcd1a72de994e37a5ac1d5f75d15aa4"/><file name="debugemail.phtml" hash="ba04523182e084b2c7187880835429e5"/></dir><dir name="type"><file name="edit.phtml" hash="b2978f07be2d00dd483046c27d385a5c"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="contactlab"><file name="subscribers.xml" hash="f912768983740fa5e4788d5fd81e4ff9"/></dir></dir><dir name="template"><dir name="contactlab"><dir name="subscribers"><dir name="newsletter"><dir name="subscribers"><file name="modify.phtml" hash="62c882d900bf4bcf4e588505c2aabed4"/><file name="subscribe.phtml" hash="ef4a1960fc673f9fdaa6fedca1e4bb80"/><file name="update.phtml" hash="432fd89d460cf9b83ee50b92aef4498b"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="contactlab"><file name="Contactlab_Commons.csv" hash="a716e3c52977bef0a83b8bc64eed6d54"/></dir></dir><dir name="it_IT"><dir name="contactlab"><file name="Contactlab_Commons.csv" hash="dd3274eadbefadf8f4da01b1fbcaa417"/><file name="Contactlab_Subscribers.csv" hash="084bd18f108750ce7ba504cd17bd0552"/><file name="Contactlab_Template.csv" hash="4058983ef5aee89c12a36fe359875908"/><file name="Contactlab_Transactional.csv" hash="c10ccac895b8bf97fd133b65579ae4eb"/></dir></dir></target><target name="mage"><dir name="js"><dir name="contactlab_commons"><dir name="adminhtml"><file name="tasks.js" hash="e8e91556e4e122bfc8b53647a4535d53"/></dir></dir></dir></target><target name="magelib"><dir name="contactlab"><file name="Attachment.php" hash="4dd95e31c3cb73d1d55e5ae51a17209a"/><file name="AuthToken.php" hash="00955cde5b7ad26a6933bea2331ef012"/><file name="BounceDetail.php" hash="488404a38f87a2bb69963c13008457c5"/><file name="Campaign.php" hash="9e71bfc36afadb5238e99f65aed291dc"/><file name="CampaignFeedback.php" hash="9ec796ddb3826fa2ef79661b9f476e6b"/><file name="CampaignLookupPreferences.php" hash="247a1d11f2b48f88b0ab3ffd49808247"/><file name="CampaignNote.php" hash="766543c655f647357ebe3f1e11c5ecd4"/><file name="CampaignNotes.php" hash="2554a41a65a99ab00fd2bf847f09f63d"/><file name="Campaigns.php" hash="ce759e2d677623f0482dc71f451674b7"/><file name="ClabService.php" hash="0cb5e81e9abee888a82238604f405408"/><file name="CommunicationCategory.php" hash="d4a3dff3d71cac521dff8aff568f7780"/><file name="EmailMessage.php" hash="abb361cbbc827ae4e810788d680dda60"/><file name="FaxMessage.php" hash="4a6718c8cf06e19fd90597be4fae8511"/><file name="LookupPreferences.php" hash="7ecd011496f99453bc45d0b5f05caf20"/><file name="Message.php" hash="88372af680074a0d4215601ace73c3c0"/><file name="MessageModels.php" hash="49e44071f3639a599fa4d30759b99f01"/><file name="Recipients.php" hash="f3de79ad97782f4511cc4592a5751fea"/><file name="Sender.php" hash="ec91192aae86f5da011d05f9556d3b07"/><file name="SlicedDataSet.php" hash="7ee3e0ea0f67c7c85ab74015f6b12a56"/><file name="Subscriber.php" hash="2cce2c60f49b2bfe8650bf07ccd7e0fb"/><file name="SubscriberAttribute.php" hash="071cf1754e47ee6141de6a68e85d27a7"/><file name="SubscriberSource.php" hash="a4d2ae669640c6bd65a3e0fcb2467540"/><file name="SubscriberSourceField.php" hash="3b2d2526698832801047059fc1269018"/><file name="SubscriberSourceFilter.php" hash="f19bb9876b432bb5fa3e980936942070"/><file name="SubscriberSourceFilters.php" hash="6ee53b041cc5b873faf55edd38e6c5b4"/><file name="SubscriberSources.php" hash="ad2b28a80ede3ca2fc3affbb81228065"/><file name="Subscribers.php" hash="91ab6d1096a4be9047d006502b347d4d"/><file name="TextMessage.php" hash="e9213ccffefd2910ca5c4df09287ccbc"/><file name="TrackedLink.php" hash="830f2542cdfd8abe196c40d0976717a4"/><file name="TrackedLinks.php" hash="eeef87e8d7716bc02b118f237e9e7f08"/><file name="XMLDeliveryInfos.php" hash="a92d8f147d831e0d8ad9a59ac175ebcd"/><file name="addAttachment.php" hash="aafb4d4b4ff429d53ff04e9d4280ce7f"/><file name="addAttachmentResponse.php" hash="fd82c72432993a38ec954cbadd70a907"/><file name="addCampaignNote.php" hash="97b30bcaa074445579b0cc101405f222"/><file name="addCampaignNoteResponse.php" hash="a43580bce766bb90976cf37a7e8b12b7"/><file name="addSubscriber.php" hash="10d8330a8c31d8a74a643389efcdc863"/><file name="addSubscriberResponse.php" hash="17ee7cbf8ab81934334e43f23758473c"/><file name="addSubscriberSource.php" hash="9bc3c67af5132b4384124fb373a7bdf4"/><file name="addSubscriberSourceFilter.php" hash="c9b8b8ab031be5be6672e24686a08724"/><file name="addSubscriberSourceFilterResponse.php" hash="d8a43ceef9b5e43f0ad2916a68afd9c6"/><file name="addSubscriberSourceResponse.php" hash="28f6abe65906eef415e180b5c637ba36"/><file name="addSubscribers.php" hash="637fdea104587a2231f3c43839d2d5a1"/><file name="addSubscribersResponse.php" hash="37b214030476208d8742354329770257"/><file name="archiveSubscriberSourceFilter.php" hash="e5ef057e35d274e3139a386330093eab"/><file name="archiveSubscriberSourceFilterResponse.php" hash="bd56103fddbf9d2fd0e6d4b868123b50"/><file name="borrowToken.php" hash="c7e3736ab5dd453b372f261c1511f795"/><file name="borrowTokenResponse.php" hash="c888fb23b89d9a12ae45cf09dc07cbc6"/><file name="cancelCampaign.php" hash="837363783c11e4751144cea5b20b250a"/><file name="cancelCampaignResponse.php" hash="c09fcdc56774b82cca16222ffc360525"/><file name="cloneAndSendCampaign.php" hash="bc85929ae1f2b694e4d80df22c0cfa12"/><file name="cloneAndSendCampaignResponse.php" hash="b9f4afa47bb0c7d953d8471858bd8181"/><file name="countSubscribers.php" hash="97cdbdd6c4a5949b2d3c6b79adf7dc0a"/><file name="countSubscribersIncludedInFilter.php" hash="a4c1953510ee1f1f680ddcb50dedda83"/><file name="countSubscribersIncludedInFilterResponse.php" hash="e950b50136733aeefb57faac759318b0"/><file name="countSubscribersResponse.php" hash="47f5b01e68a5337241e540d8d14d6506"/><file name="createCampaign.php" hash="7af3d8b6176af5dbed9005002c5f9fea"/><file name="createCampaignResponse.php" hash="1f94aa0ced02397e5cbc3685880ff6c6"/><file name="createMessageModel.php" hash="3a2be564063f933b2c9a5220f75aba19"/><file name="createMessageModelResponse.php" hash="e77c07e74f6b2adb906d663d6a5ab796"/><file name="findArchivedFiltersBySubscriberSource.php" hash="665fdb9883a932354b9646e1cdcdc085"/><file name="findArchivedFiltersBySubscriberSourceResponse.php" hash="c28a96905fc9c85e3be850a9b3182ff3"/><file name="findCampaigns.php" hash="994da9782174931b0c4959a595ae35db"/><file name="findCampaignsByModel.php" hash="94cd24329ce937cd504917ba19813022"/><file name="findCampaignsByModelResponse.php" hash="606ea2662d7ed0c0ed90816142b8a423"/><file name="findCampaignsByNameOrSubject.php" hash="729aafc3da9fc5d60cc89bcf37e384d9"/><file name="findCampaignsByNameOrSubjectResponse.php" hash="3205d1dda7a1dbc55cb13451422509b3"/><file name="findCampaignsByNote.php" hash="e642c65d5c05d3a29a2882702a972029"/><file name="findCampaignsByNoteResponse.php" hash="3daab98189a2bf900c373bba533bccfc"/><file name="findCampaignsByStatus.php" hash="06bfdd8059f962e5152bf4690a9a1432"/><file name="findCampaignsByStatusResponse.php" hash="f2e2a60b926a4b055ee3ad35eb35467c"/><file name="findCampaignsResponse.php" hash="aa12cfdb1dc21618c9dcea68ce4e4a36"/><file name="findCampaignsSentBetween.php" hash="5978f7d3ea6d4e169aeef958a93b64a7"/><file name="findCampaignsSentBetweenResponse.php" hash="27db82a783f299a904e5f840c6bead94"/><file name="findFiltersBySubscriberSource.php" hash="780c7a78fccb4e9072ef51fdb798ef0e"/><file name="findFiltersBySubscriberSourceResponse.php" hash="047ebedff8cdb8e3fbc22143b958443e"/><file name="findMessageModels.php" hash="249f73d33c9efdc16817ac6228827894"/><file name="findMessageModelsBySubscriberSource.php" hash="16ed2e80ac0b28a3bc0eaccdde43770d"/><file name="findMessageModelsBySubscriberSourceResponse.php" hash="7c75c3a33072fed17ca6ba08d927ef9a"/><file name="findMessageModelsResponse.php" hash="e2381a5ca3c286a4b2240b5af84f4cfb"/><file name="findNotesByCampaign.php" hash="816af78e41fbf6941ca5c6d508371add"/><file name="findNotesByCampaignResponse.php" hash="54964b987980cb5d2e9d918c8c7ff70c"/><file name="findPeriodicCampaigns.php" hash="ef83d75476d289d2e81fef015310e9f1"/><file name="findPeriodicCampaignsResponse.php" hash="e0cd3bf7f0ebd1750aaf4c124044bdef"/><file name="findSubscriberSources.php" hash="1f865ba0607fb54d611519483c0ba37e"/><file name="findSubscriberSourcesResponse.php" hash="468dffd45134f7a82e250c9eb35b7f1a"/><file name="findSubscribers.php" hash="84bcdc3899b6583110570a83aeba41f6"/><file name="findSubscribersIncludedInFilter.php" hash="8507b8aa27a40f4226584af4deba8c26"/><file name="findSubscribersIncludedInFilterResponse.php" hash="fe1f065e3c24c9fba93c91b104af3378"/><file name="findSubscribersResponse.php" hash="7da20215136d55a2d4a338e7b1e80fd8"/><file name="findTriggerableCampaigns.php" hash="df0d9f03bd0cd7db9983f3ed9520b9b5"/><file name="findTriggerableCampaignsResponse.php" hash="4936fc7428e96e27203db2222a2a3930"/><file name="getArchivedSubscriberSourceFilter.php" hash="b1ba4a087da85eeed8ad7d637b5b7289"/><file name="getArchivedSubscriberSourceFilterResponse.php" hash="c2c74693aa72e9cfe70da4c5552c1e10"/><file name="getAttachmentByCampaignId.php" hash="4d8d58c768c313e7a34df4b14762f216"/><file name="getAttachmentByCampaignIdResponse.php" hash="ee4653b2fd234eaf3ac3b2ae2763b218"/><file name="getAvailableCommunicationCategories.php" hash="2812d2d787575ca76a6c20a65d959012"/><file name="getAvailableCommunicationCategoriesResponse.php" hash="c44b3783ea5e09fc518026c2e1b4fea6"/><file name="getCampaign.php" hash="0ad3de64f6d886f3e7898370e0286b58"/><file name="getCampaignDeliveryStatus.php" hash="926b85895ffb17fa191151b3ff4f8407"/><file name="getCampaignDeliveryStatusResponse.php" hash="2373c615052b9cd1e96b80e110252804"/><file name="getCampaignFeedback.php" hash="88d80874aa7b4ff30e8dd8d228144045"/><file name="getCampaignFeedbackResponse.php" hash="3c5762d732130b5fc5f2e64d289c1fff"/><file name="getCampaignResponse.php" hash="e9c51b4c1ba979d2a131ffb7f7079fe7"/><file name="getCryptoKey.php" hash="bfb67fef4223514d4853750ae520cda3"/><file name="getCryptoKeyResponse.php" hash="6322e290ed7b23ab69ba5ce892a7ff3e"/><file name="getMessageModelById.php" hash="58a952e46581010154d17e2a2ceeeb97"/><file name="getMessageModelByIdResponse.php" hash="ad90f598343a0469479ad5eda0bcd5ae"/><file name="getRequestStatus.php" hash="9892f5714b0bf16f305d98102a142919"/><file name="getRequestStatusResponse.php" hash="8dfb0a5589dd0556163cf32a988ddfcc"/><file name="getSubscriber.php" hash="28b43e849621dc5f66e339504d709809"/><file name="getSubscriberDataExchangeStatus.php" hash="34defa00aa45b2c05e102af167f60bb7"/><file name="getSubscriberDataExchangeStatusResponse.php" hash="ccdeec492cf724027881a77801eee861"/><file name="getSubscriberResponse.php" hash="31bda97f6261d38931a9a6aca878729a"/><file name="getSubscriberSource.php" hash="e4952a57312cbb47127203ccd7282101"/><file name="getSubscriberSourceFilter.php" hash="38fed10d61883e7f3ad3eaf1017ff861"/><file name="getSubscriberSourceFilterResponse.php" hash="2f9ff8cdecedbdb80f5aed4f82e0872c"/><file name="getSubscriberSourceResponse.php" hash="6288ddc830b2ce6f19253185974e8d08"/><file name="getTrackedLinks.php" hash="65226faf6bdb6548900ecbe4d3f0589a"/><file name="getTrackedLinksResponse.php" hash="1baef1c35da95c50a96cac8dee266db1"/><file name="getXMLDeliveries.php" hash="bec33bc553d3d27088d43947b4b94cae"/><file name="getXMLDeliveriesResponse.php" hash="103249a095ecc11c6a8e45e6ee03ecf8"/><file name="getXMLDeliveryTransitions.php" hash="2c91cfced369a2f291e5926f0f45aa50"/><file name="getXMLDeliveryTransitionsResponse.php" hash="13a5da14b52d69eca8186e160bb1cbc8"/><file name="invalidateToken.php" hash="feb611c092d5679ac11671bde06703f1"/><file name="invalidateTokenResponse.php" hash="5dabc504490ed7f068dcb911f9f4de97"/><file name="keepaliveToken.php" hash="eaf6542a3cd270b21e6e7d184ddd1676"/><file name="keepaliveTokenResponse.php" hash="658b578b970184b6ad7182832db02d89"/><file name="modifySubscriberSubscriptionStatus.php" hash="af08f77094824b87a7806c23b9c16918"/><file name="modifySubscriberSubscriptionStatusByMailqId.php" hash="793b06ffae8d35b6a101b9747463d0bc"/><file name="modifySubscriberSubscriptionStatusByMailqIdResponse.php" hash="f36bb42ce9049625d54542e3b1433b1e"/><file name="modifySubscriberSubscriptionStatusResponse.php" hash="f7e1cece9f5ec7ec246e9c32a7b5dec4"/><file name="publishOnWeb.php" hash="8ba487c1078cd7ad73215aeb59f3df81"/><file name="publishOnWebResponse.php" hash="fb2315ebb11c0468662993a6c63f2fae"/><file name="removeSubscriber.php" hash="c54f6f12de913082d9d37d8b6512c5b5"/><file name="removeSubscriberResponse.php" hash="a685a6eb245d42ba68a8859a7c9976e3"/><file name="requestCampaignFeedbackReport.php" hash="83382be36afc47c912041e39a8a91bb5"/><file name="requestCampaignFeedbackReportResponse.php" hash="a355c87dd81366319a1cbcfef897b63d"/><file name="reuseSubscriberSourceFilter.php" hash="dbe58a95d2d2a9b22931e2f2846ee5a4"/><file name="reuseSubscriberSourceFilterResponse.php" hash="2662fccf2d3c0f8ea8c83748bebdebea"/><file name="sendCampaign.php" hash="d6fc6e6265c57a4d21a1c272e7c99154"/><file name="sendCampaignResponse.php" hash="4e2440bebed2a589fa0165d3e3eed483"/><file name="sendImmediateMessage.php" hash="a3e2036a82d71ff0a82a257a2075d409"/><file name="sendImmediateMessageResponse.php" hash="4c9602a44ac0b7a9eb5b898605af22be"/><file name="sendImmediateMessageSDataCData.php" hash="4642d684e187fde20dc81ccb802af084"/><file name="sendImmediateMessageSDataCDataCA.php" hash="233a58432de264308ad4331a0682821c"/><file name="sendImmediateMessageSDataCDataCAResponse.php" hash="5eab02d47c5833cc0a902bf14c761776"/><file name="sendImmediateMessageSDataCDataResponse.php" hash="351236b1b015e03abca60371fa689abf"/><file name="sendImmediateMessageSDataCIdCA.php" hash="5563f04200dd3533a33a1024ce8b4869"/><file name="sendImmediateMessageSDataCIdCAResponse.php" hash="5b4bac75edc19eb758f2a3553b278629"/><file name="sendImmediateMessageSIdCData.php" hash="71618fe49e43bff9cc53957324397056"/><file name="sendImmediateMessageSIdCDataCA.php" hash="7d2ecd18e0e87e71ace465d1d76d1169"/><file name="sendImmediateMessageSIdCDataCAResponse.php" hash="eae46b409221e5bd2bc58f554242eddc"/><file name="sendImmediateMessageSIdCDataResponse.php" hash="2b5cd3ca959cf22cceb445b8a9487467"/><file name="sendImmediateMessageSdataCAl.php" hash="0374318565674b93c9cc5af74b7dde8e"/><file name="sendImmediateMessageSdataCAlCA.php" hash="5cf7ab51277a87e467f1c1da0b7ca04b"/><file name="sendImmediateMessageSdataCAlCAResponse.php" hash="5f6b99e92f4125d4c5e2c1c52537fe84"/><file name="sendImmediateMessageSdataCAlResponse.php" hash="69b0e09d428b115b56b2dcf151434d0e"/><file name="sendImmediateMessageSidCAl.php" hash="4a5c3b7fdf4a590ea3afe97330520af9"/><file name="sendImmediateMessageSidCAlCA.php" hash="8ee842963b8de8d887b47601cc5acd7e"/><file name="sendImmediateMessageSidCAlCAResponse.php" hash="6e574a4a6a4a87a38db7be60e3ee3855"/><file name="sendImmediateMessageSidCAlResponse.php" hash="6ba97d1cdf7012bfe1fe1964a2943f9e"/><file name="sendImmediateMessageSidCid.php" hash="84d9a2e3fe11d462f18101ea7e5edee5"/><file name="sendImmediateMessageSidCidCA.php" hash="228313907a7ffb2034a8290ba0e7421c"/><file name="sendImmediateMessageSidCidCAResponse.php" hash="a03863e9cca7db6ee1ae5281a16fc3ef"/><file name="sendImmediateMessageSidCidResponse.php" hash="c98ee1afdad240a565bdc1e80da0418a"/><file name="setCampaignRecurrency.php" hash="d70b012427c8bcbb5b919132d3e6abbb"/><file name="setCampaignRecurrencyResponse.php" hash="31339f0edbb429ababc2430e44761f67"/><file name="startSubscriberDataExchange.php" hash="e4dce40e847d1eb73dff51c867dd58da"/><file name="startSubscriberDataExchangeResponse.php" hash="8cf8b384dd795929b8dc067462ec4673"/><file name="triggerDeliveryByAlias.php" hash="28a46cf449766ad8dabde4858d41b6f2"/><file name="triggerDeliveryByAliasResponse.php" hash="1990179026c6d67dc061bcaabfed5a30"/><file name="triggerDeliveryById.php" hash="6e3b46ecc600bffcd9ab52bcc19f51f7"/><file name="triggerDeliveryByIdResponse.php" hash="ef45334a763e77f60238dac80c0d2cc9"/><file name="updateSubscriber.php" hash="ff20a2ee470eaf9cfbb9b313307fc543"/><file name="updateSubscriberResponse.php" hash="6da25998752a81b407c85e26c7047a8d"/><file name="uploadMediaContent.php" hash="e93aca9ec6e1b36371836e539efb41a3"/><file name="uploadMediaContentResponse.php" hash="6ed39f2d177b4705768cf35db6829c2f"/><file name="xmlDeliveryInfo.php" hash="cc0bbdbe9741e5be2d6e5cdccea43c91"/><file name="xmlDeliveryTransitionInfo.php" hash="f0fd36cf966311c097eb2ebbe63d7afa"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="contactlab"><dir name="commons"><file name="cancel.png" hash="17065c5c397c6f6ca9ac97ab1033f88a"/><file name="delete.png" hash="61e27f7ba4b87e918351239b160c03de"/><file name="retry.png" hash="45700cc820e53665b269352564f08957"/><file name="run.png" hash="595432ecd2f7124cb5e96279a727c944"/><file name="suspend.png" hash="8f2ea46ca3b37ab4fefbf5d8b7b66cf0"/><file name="unsuspend.png" hash="5b3bf2cc96fa070b727b8d0765f2704d"/></dir></dir></dir></dir></dir></dir></target></contents>
35
  <compatible/>
36
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
37
  </package>