Contactlab_Modules - Version 2.5.0

Version Notes

- Fix export subscribers in uk table.
- Switched off the error logs that stopped the cron export.
- Fix to .zip attachments
fixed bug and new minors features

Download this release

Release Info

Developer ContactLab
Extension Contactlab_Modules
Version 2.5.0
Comparing to
See all releases


Code changes from version 2.4.2 to 2.5.0

app/code/community/Contactlab/.DS_Store ADDED
Binary file
app/code/community/Contactlab/Commons/Model/Exporter/Abstract.php CHANGED
@@ -12,7 +12,7 @@ abstract class Contactlab_Commons_Model_Exporter_Abstract extends Contactlab_Com
12
  * @return string
13
  * @throws Zend_Exception
14
  */
15
- public final function export(Contactlab_Commons_Model_Task_Interface $task) {
16
  if (!$this->isEnabled()) {
17
  Mage::helper("contactlab_commons")->logWarn("Module export is disabled");
18
  return "Module export is disabled";
12
  * @return string
13
  * @throws Zend_Exception
14
  */
15
+ public function export(Contactlab_Commons_Model_Task_Interface $task) {
16
  if (!$this->isEnabled()) {
17
  Mage::helper("contactlab_commons")->logWarn("Module export is disabled");
18
  return "Module export is disabled";
app/code/community/Contactlab/Commons/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Contactlab_Commons>
5
- <version>1.0.1</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.4.2</platform_version>
148
  </global>
149
  <connection>
150
  <!--type>1</type>
2
  <config>
3
  <modules>
4
  <Contactlab_Commons>
5
+ <version>1.1.0</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.0</platform_version>
148
  </global>
149
  <connection>
150
  <!--type>1</type>
app/code/community/Contactlab/Subscribers/Helper/Exporter.php CHANGED
@@ -57,8 +57,8 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
57
  'suffix' => 'suffix',
58
  'dob' => 'dob',
59
  'gender' => 'gender',
60
- 'email' => 'email',
61
- 'created_at' => 'created_at',
62
  /**
63
  * Adding new fields from extended newsletter subscription form
64
  */
@@ -181,7 +181,8 @@ class Contactlab_Subscribers_Helper_Exporter extends Mage_Core_Helper_Abstract {
181
  'zip_code' => 'billing_postcode',
182
  'phone' => 'billing_telephone',
183
  'cell_phone' => 'mobilephone',
184
- 'notes' => 'notes',
 
185
  'custom_1' => 'custom_1',
186
  'custom_2' => 'custom_2'
187
  );
57
  'suffix' => 'suffix',
58
  'dob' => 'dob',
59
  'gender' => 'gender',
60
+ 'email' => 'email',
61
+ 'created_at' => 'created_at',
62
  /**
63
  * Adding new fields from extended newsletter subscription form
64
  */
181
  'zip_code' => 'billing_postcode',
182
  'phone' => 'billing_telephone',
183
  'cell_phone' => 'mobilephone',
184
+ 'notes' => 'notes',
185
+ 'last_subscribed_at' => 'last_subscribed_at',
186
  'custom_1' => 'custom_1',
187
  'custom_2' => 'custom_2'
188
  );
app/code/community/Contactlab/Subscribers/Model/Exporter/Copy of Subscribers.php ADDED
@@ -0,0 +1,1180 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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/Exporter/Subscribers.php CHANGED
@@ -100,6 +100,15 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
100
 
101
  $toFill = array_merge($toFill, $preFilled);
102
  $toFill['email'] = $item->getData('email');
 
 
 
 
 
 
 
 
 
103
  $this->_setAttributeKeys($toFill, $item);
104
  $this->_setAddressesAttributeKeys($toFill, $item);
105
 
@@ -536,9 +545,7 @@ class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commo
536
  private function _fillCustomerGroupAttributes(array &$toFill, Varien_Object $item)
537
  {
538
  $toFill['customer_group_id'] = $item->getData('customer_group_id');
539
- $toFill['customer_group_name'] = $item->getData('customer_group_name');
540
- //FIX
541
- $toFill['created_at'] = $item->getData('created_at');
542
  }
543
 
544
  /**
100
 
101
  $toFill = array_merge($toFill, $preFilled);
102
  $toFill['email'] = $item->getData('email');
103
+
104
+ //FIX
105
+ $toFill['created_at'] = $item->getData('created_at');
106
+ if($item->getData('last_subscribed_at'))
107
+ {
108
+ $toFill['created_at'] = $item->getData('last_subscribed_at');
109
+ }
110
+
111
+
112
  $this->_setAttributeKeys($toFill, $item);
113
  $this->_setAddressesAttributeKeys($toFill, $item);
114
 
545
  private function _fillCustomerGroupAttributes(array &$toFill, Varien_Object $item)
546
  {
547
  $toFill['customer_group_id'] = $item->getData('customer_group_id');
548
+ $toFill['customer_group_name'] = $item->getData('customer_group_name');
 
 
549
  }
550
 
551
  /**
app/code/community/Contactlab/Subscribers/Model/Resource/Uk.php CHANGED
@@ -40,10 +40,10 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
40
  return $this;
41
  }
42
 
43
- /** Insert existing records. */
44
  private function _insertExistingRecords(Varien_Db_Adapter_Pdo_Mysql $adapter, $doit, $session) {
45
  $this->_helper->logNotice("----------- _insertExistingRecords");
46
- $this->_createTmpTables($adapter);
47
  try {
48
  $this->_makeCouples($adapter, $doit, $session);
49
  $this->_deleteDuplicatedSubscribers($adapter, $doit, $session);
@@ -54,10 +54,10 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
54
  $this->_updateCustomerId($adapter, $doit, $session);
55
  $this->_helper->logNotice("----------- DONE");
56
  } catch (Exception $e) {
57
- $this->_dropTmpTables($adapter);
58
  throw $e;
59
  }
60
- $this->_dropTmpTables($adapter);
61
  return $this;
62
  }
63
 
@@ -77,8 +77,8 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
77
  return $this;
78
  }
79
 
80
- if ($doit) {
81
- /*
82
  foreach ($adapter->fetchAll($select) as $id) {
83
  $select = $adapter
84
  ->select()->from(array('s' => $subscribersTable), array('subscriber_id'))
@@ -96,9 +96,8 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
96
  $first = false;
97
  }
98
  }
99
- $this->addError("$count duplicated subscribers removed", $session);
100
- return $this;
101
- */
102
  } else {
103
  $string='Table '.$subscribersTable.' subscriber_id: ';
104
  foreach ($adapter->fetchAll($select) as $id) {
@@ -109,6 +108,8 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
109
  $this->setHasNotices($bckNotice);
110
  return $this;
111
  }
 
 
112
  }
113
 
114
 
@@ -177,9 +178,14 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
177
  'subscriber_id' => 'subscriber_id')
178
  )
179
  ->joinLeft(array("c" => $customersTable), "s.customer_id = c.entity_id", array('customer_id' => 'entity_id'))
 
180
  ->where("customer_id not in (select customer_id from {$tablePrefix}contactlab_customers_tmp_idx) and subscriber_id
181
  not in (select subscriber_id from {$tablePrefix}contactlab_subscribers_tmp_idx)");
182
-
 
 
 
 
183
  $this->_helper->logNotice($select->assemble());
184
  if (!$doit) {
185
  $count = $this->_getCount($adapter, $select);
@@ -201,15 +207,16 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
201
  Varien_Db_Adapter_Interface::INSERT_IGNORE*/);
202
  }
203
  $this->_helper->logNotice($sql);
204
-
205
  $rv = $adapter->query($sql);
206
  $count = $rv->rowCount();
207
  if ($count > 0) {
208
  $this->addError("$count missing subscribers inserted", $session);
209
  }
 
210
  return $rv;
211
  } else {
212
- $this->addNotice("Would insert $count missing subscribers", $session);
213
  return $this;
214
  }
215
  }
@@ -228,10 +235,12 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
228
  $tablePrefix = (string) Mage::getConfig()->getTablePrefix();
229
  $select = $adapter
230
  ->select()->from(array('c' => $customersTable), array('entity_id'))
231
- ->where("entity_id not in (select customer_id from {$tablePrefix}contactlab_customers_tmp_idx) and entity_id not in (select customer_id from $subscribersTable)");
232
-
 
233
  $this->_helper->logNotice($select->assemble());
234
  if (!$doit) {
 
235
  $count = $this->_getCount($adapter, $select);
236
  if ($count === 0) {
237
  $this->addSuccess("No customer to insert", $session);
@@ -240,6 +249,8 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
240
  $this->addNotice("Would insert $count missing customers", $session);
241
  return $this;
242
  }
 
 
243
  }
244
  if ($doit) {
245
  // backward compatibility
@@ -250,10 +261,12 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
250
  }
251
  $this->_helper->logNotice($sql);
252
  $rv = $adapter->query($sql);
 
253
  $count = $rv->rowCount();
254
  if ($count > 0) {
255
  $this->addError("$count missing customers inserted", $session);
256
  }
 
257
  return $rv;
258
  } else {
259
  }
@@ -286,9 +299,9 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
286
  $adapter->query("update $ukTable set subscriber_id = " .
287
  $row['subscriber_id'] . " where entity_id = " . $row['entity_id']);
288
  }
289
- $this->addError("$count missing subscriber_id updated", $session);
290
  } else {
291
- $this->addNotice("Would update $count missing subscriber_id", $session);
292
  }
293
  return $this;
294
  }
@@ -333,9 +346,9 @@ class Contactlab_Subscribers_Model_Resource_Uk extends Mage_Core_Model_Mysql4_Ab
333
 
334
 
335
  }
336
- $this->addError("$count missing customer_id updated", $session);
337
  } else {
338
- $this->addNotice("Would update $count missing customer_id", $session);
339
  }
340
  return $this;
341
  }
40
  return $this;
41
  }
42
 
43
+ /** Insert existing records. */
44
  private function _insertExistingRecords(Varien_Db_Adapter_Pdo_Mysql $adapter, $doit, $session) {
45
  $this->_helper->logNotice("----------- _insertExistingRecords");
46
+ //$this->_createTmpTables($adapter);
47
  try {
48
  $this->_makeCouples($adapter, $doit, $session);
49
  $this->_deleteDuplicatedSubscribers($adapter, $doit, $session);
54
  $this->_updateCustomerId($adapter, $doit, $session);
55
  $this->_helper->logNotice("----------- DONE");
56
  } catch (Exception $e) {
57
+ //$this->_dropTmpTables($adapter);
58
  throw $e;
59
  }
60
+ //$this->_dropTmpTables($adapter);
61
  return $this;
62
  }
63
 
77
  return $this;
78
  }
79
 
80
+ /*
81
+ if ($doit) {
82
  foreach ($adapter->fetchAll($select) as $id) {
83
  $select = $adapter
84
  ->select()->from(array('s' => $subscribersTable), array('subscriber_id'))
96
  $first = false;
97
  }
98
  }
99
+ $this->addError("$count duplicated subscribers removed", $session);
100
+ return $this;
 
101
  } else {
102
  $string='Table '.$subscribersTable.' subscriber_id: ';
103
  foreach ($adapter->fetchAll($select) as $id) {
108
  $this->setHasNotices($bckNotice);
109
  return $this;
110
  }
111
+ */
112
+ return $this;
113
  }
114
 
115
 
178
  'subscriber_id' => 'subscriber_id')
179
  )
180
  ->joinLeft(array("c" => $customersTable), "s.customer_id = c.entity_id", array('customer_id' => 'entity_id'))
181
+ /*
182
  ->where("customer_id not in (select customer_id from {$tablePrefix}contactlab_customers_tmp_idx) and subscriber_id
183
  not in (select subscriber_id from {$tablePrefix}contactlab_subscribers_tmp_idx)");
184
+ */
185
+ ->where("customer_id not in (select customer_id from {$tablePrefix}contactlab_subscribers_uk where customer_id is not null) and subscriber_id
186
+ not in (select subscriber_id from {$tablePrefix}contactlab_subscribers_uk where subscriber_id is not null)");
187
+
188
+
189
  $this->_helper->logNotice($select->assemble());
190
  if (!$doit) {
191
  $count = $this->_getCount($adapter, $select);
207
  Varien_Db_Adapter_Interface::INSERT_IGNORE*/);
208
  }
209
  $this->_helper->logNotice($sql);
210
+ /*
211
  $rv = $adapter->query($sql);
212
  $count = $rv->rowCount();
213
  if ($count > 0) {
214
  $this->addError("$count missing subscribers inserted", $session);
215
  }
216
+ */
217
  return $rv;
218
  } else {
219
+ //$this->addNotice("Would insert $count missing subscribers", $session);
220
  return $this;
221
  }
222
  }
235
  $tablePrefix = (string) Mage::getConfig()->getTablePrefix();
236
  $select = $adapter
237
  ->select()->from(array('c' => $customersTable), array('entity_id'))
238
+ //->where("entity_id not in (select customer_id from {$tablePrefix}contactlab_customers_tmp_idx) and entity_id not in (select customer_id from $subscribersTable)");
239
+ ->where("entity_id not in (select customer_id from {$tablePrefix}contactlab_subscribers_uk where customer_id is not null) and entity_id not in (select customer_id from $subscribersTable)");
240
+
241
  $this->_helper->logNotice($select->assemble());
242
  if (!$doit) {
243
+ /*
244
  $count = $this->_getCount($adapter, $select);
245
  if ($count === 0) {
246
  $this->addSuccess("No customer to insert", $session);
249
  $this->addNotice("Would insert $count missing customers", $session);
250
  return $this;
251
  }
252
+ */
253
+ return $this;
254
  }
255
  if ($doit) {
256
  // backward compatibility
261
  }
262
  $this->_helper->logNotice($sql);
263
  $rv = $adapter->query($sql);
264
+ /*
265
  $count = $rv->rowCount();
266
  if ($count > 0) {
267
  $this->addError("$count missing customers inserted", $session);
268
  }
269
+ */
270
  return $rv;
271
  } else {
272
  }
299
  $adapter->query("update $ukTable set subscriber_id = " .
300
  $row['subscriber_id'] . " where entity_id = " . $row['entity_id']);
301
  }
302
+ //$this->addError("$count missing subscriber_id updated", $session);
303
  } else {
304
+ //$this->addNotice("Would update $count missing subscriber_id", $session);
305
  }
306
  return $this;
307
  }
346
 
347
 
348
  }
349
+ //$this->addError("$count missing customer_id updated", $session);
350
  } else {
351
+ //$this->addNotice("Would update $count missing customer_id", $session);
352
  }
353
  return $this;
354
  }
app/code/community/Contactlab/Subscribers/Model/Task/ExportSubscribersRunner.php CHANGED
@@ -69,6 +69,7 @@ class Contactlab_Subscribers_Model_Task_ExportSubscribersRunner extends Contactl
69
  $this->getTask()->setSuppressSuccessUk(true);
70
  $this->getTask()->setSkipMessages($skipMessages);
71
  return $helper->updateAll(false, $this->getTask());
 
72
  }
73
 
74
  /**
@@ -83,5 +84,6 @@ class Contactlab_Subscribers_Model_Task_ExportSubscribersRunner extends Contactl
83
  $this->getTask()->setSuppressSuccessUk(true);
84
  $this->getTask()->setSkipMessages($skipMessages);
85
  return $helper->updateAll(true, $this->getTask());
 
86
  }
87
  }
69
  $this->getTask()->setSuppressSuccessUk(true);
70
  $this->getTask()->setSkipMessages($skipMessages);
71
  return $helper->updateAll(false, $this->getTask());
72
+ return true;
73
  }
74
 
75
  /**
84
  $this->getTask()->setSuppressSuccessUk(true);
85
  $this->getTask()->setSkipMessages($skipMessages);
86
  return $helper->updateAll(true, $this->getTask());
87
+ return true;
88
  }
89
  }
app/code/community/Contactlab/Subscribers/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Contactlab_Subscribers>
5
- <version>1.0.1</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.1.0</version>
6
  <description>Subscriber sync Magento/ContactLab and ContactLab/Magento.</description>
7
  </Contactlab_Subscribers>
8
  </modules>
app/code/community/Contactlab/Template/Model/Newsletter/XmlDelivery.php CHANGED
@@ -316,7 +316,7 @@ class Contactlab_Template_Model_Newsletter_XmlDelivery extends Mage_Core_Model_A
316
  $this->getTask()->setProgressValue($counter);
317
 
318
  $zip = new ZipArchive();
319
- $res = $zip->open($zipFilePath, ZipArchive::OVERWRITE);
320
  $zip->addFile($csvFilePath, $csvFileName);
321
  $zip->close();
322
  unlink($csvFilePath);
316
  $this->getTask()->setProgressValue($counter);
317
 
318
  $zip = new ZipArchive();
319
+ $res = $zip->open($zipFilePath, ZipArchive::CREATE | ZipArchive::OVERWRITE);
320
  $zip->addFile($csvFilePath, $csvFileName);
321
  $zip->close();
322
  unlink($csvFilePath);
app/code/community/Contactlab/Template/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Contactlab_Template>
5
- <version>0.9.1</version>
6
  <description>Abandoned Cart, Wishlist Reminder and generic emails sent using ContactLab XML Delivery.</description>
7
  </Contactlab_Template>
8
  </modules>
2
  <config>
3
  <modules>
4
  <Contactlab_Template>
5
+ <version>0.9.2</version>
6
  <description>Abandoned Cart, Wishlist Reminder and generic emails sent using ContactLab XML Delivery.</description>
7
  </Contactlab_Template>
8
  </modules>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Contactlab_Modules</name>
4
- <version>2.4.2</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,14 @@ 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>fixed bug and new minors features</notes>
 
 
 
29
  <authors><author><name>ContactLab</name><user>ContactLab</user><email>magento@contactlab.com</email></author></authors>
30
- <date>2016-10-13</date>
31
- <time>14:28:06</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="3edbe015dbafcb898bab92472fed30b6"/></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="fa00031ccd65440be98bc0028697aada"/><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="9624f21349fba00cd8ecec28bb8b8992"/><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"><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="673e65cc04a56b8005e5d7d565bc0fdc"/></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="ed9be2754ee9af53c8df849f0c338eb4"/><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="306d12a8aac9c766e4e499bba2b64fbc"/></dir><dir name="Soap"><file name="AbstractSubscriberCall.php" hash="e5a6854a6abe1e2c7c1947c02f6742fb"/><file name="GetSubscriptionStatus.php" hash="3aecb42c9f833f5aba81f0ce7af53a52"/><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="c5c46283a1131fdc759bffdd9731c7a8"/><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="4bb8659442bc7ae11df8a32144862aa0"/><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"/></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="e331a8c6cc88543fff7bee1bf7210d18"/></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="d7f5ae08ad82c94c3f4ce9d80330b61b"/><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="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.0</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>- Fix export subscribers in uk table.&#xD;
29
+ - Switched off the error logs that stopped the cron export.&#xD;
30
+ - Fix to .zip attachments&#xD;
31
+ fixed bug and new minors features</notes>
32
  <authors><author><name>ContactLab</name><user>ContactLab</user><email>magento@contactlab.com</email></author></authors>
33
+ <date>2016-12-13</date>
34
+ <time>08:43:36</time>
35
+ <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="2fb42fe94478023053ebaea4a9bb7e7f"/><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="fc205273814b2f4d21e08fa5a1a0ce11"/><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="99e955918f55630094b337e51a6173ab"/></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="ed9be2754ee9af53c8df849f0c338eb4"/><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="8be9257ae84bff43cf70b53223097258"/></dir><dir name="Soap"><file name="AbstractSubscriberCall.php" hash="e5a6854a6abe1e2c7c1947c02f6742fb"/><file name="GetSubscriptionStatus.php" hash="3aecb42c9f833f5aba81f0ce7af53a52"/><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="c1e49dd68f4e8273a6f4d4e52f558307"/><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"/></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>
36
  <compatible/>
37
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
38
  </package>