Version Notes
- Fixed created_at
- Fixed abandoned cart prices
- Create checks for SFTP connection
Download this release
Release Info
| Developer | ContactLab |
| Extension | Contactlab_Modules |
| Version | 2.5.4 |
| Comparing to | |
| See all releases | |
Code changes from version 2.5.3 to 2.5.4
- app/code/community/Contactlab/.DS_Store +0 -0
- app/code/community/Contactlab/Commons/etc/config.xml +2 -2
- app/code/community/Contactlab/Commons/sql/contactlab_commons_setup/upgrade-0.8.13-0.8.14.php +1 -1
- app/code/community/Contactlab/Subscribers/Model/Checks/SftpSubscriberExporter.php +152 -0
- app/code/community/Contactlab/Subscribers/Model/Checks/SftpXmlDeliveryCheck.php +152 -0
- app/code/community/Contactlab/Subscribers/Model/Exporter/Copy of Subscribers.php +0 -1180
- app/code/community/Contactlab/Subscribers/Model/Soap/SetSubscriptionStatus.php +1 -2
- app/code/community/Contactlab/Subscribers/etc/config.xml +1 -1
- app/code/community/Contactlab/Subscribers/sql/contactlab_subscribers_setup/{upgrade-0.8.8-1.2.0.php → mysql4-upgrade-1.2.0-1.2.2.php} +0 -0
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Cart.php +4 -2
- app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Cart/Products.php +2 -2
- app/code/community/Contactlab/Template/Model/Newsletter/Template.php +2 -2
- app/design/frontend/base/default/layout/contactlab/layout.xml +0 -10
- package.xml +7 -5
app/code/community/Contactlab/.DS_Store
DELETED
|
Binary file
|
app/code/community/Contactlab/Commons/etc/config.xml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Contactlab_Commons>
|
| 5 |
-
<version>1.1.
|
| 6 |
<description>Magento/ContactLab Common functions.</description>
|
| 7 |
</Contactlab_Commons>
|
| 8 |
</modules>
|
|
@@ -144,7 +144,7 @@
|
|
| 144 |
<global>
|
| 145 |
<!--days_of_old_tasks>3</days_of_old_tasks>
|
| 146 |
<debug>0</debug-->
|
| 147 |
-
<platform_version>2.5.
|
| 148 |
</global>
|
| 149 |
<connection>
|
| 150 |
<!--type>1</type>
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Contactlab_Commons>
|
| 5 |
+
<version>1.1.4</version>
|
| 6 |
<description>Magento/ContactLab Common functions.</description>
|
| 7 |
</Contactlab_Commons>
|
| 8 |
</modules>
|
| 144 |
<global>
|
| 145 |
<!--days_of_old_tasks>3</days_of_old_tasks>
|
| 146 |
<debug>0</debug-->
|
| 147 |
+
<platform_version>2.5.4</platform_version>
|
| 148 |
</global>
|
| 149 |
<connection>
|
| 150 |
<!--type>1</type>
|
app/code/community/Contactlab/Commons/sql/contactlab_commons_setup/upgrade-0.8.13-0.8.14.php
CHANGED
|
@@ -5,7 +5,7 @@ $installer->startSetup();
|
|
| 5 |
|
| 6 |
$installer->run("
|
| 7 |
ALTER TABLE {$installer->getTable("contactlab_commons/task")}
|
| 8 |
-
CHANGE `task_data` `task_data`
|
| 9 |
");
|
| 10 |
|
| 11 |
$installer->endSetup();
|
| 5 |
|
| 6 |
$installer->run("
|
| 7 |
ALTER TABLE {$installer->getTable("contactlab_commons/task")}
|
| 8 |
+
CHANGE `task_data` `task_data` blob comment 'Task internal data';
|
| 9 |
");
|
| 10 |
|
| 11 |
$installer->endSetup();
|
app/code/community/Contactlab/Subscribers/Model/Checks/SftpSubscriberExporter.php
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* Created by PhpStorm.
|
| 5 |
+
* User: andreag
|
| 6 |
+
* Date: 06/10/15
|
| 7 |
+
* Time: 9.30
|
| 8 |
+
*/
|
| 9 |
+
class Contactlab_Subscribers_Model_Checks_SftpSubscriberExporter extends Contactlab_Subscribers_Model_Checks_AbstractCheck
|
| 10 |
+
{
|
| 11 |
+
|
| 12 |
+
/**
|
| 13 |
+
* Start check.
|
| 14 |
+
* @return String
|
| 15 |
+
*/
|
| 16 |
+
protected function doCheck()
|
| 17 |
+
{
|
| 18 |
+
return $this->_getCheckSFTP()
|
| 19 |
+
? $this->success(sprintf("SFTP test ok"))
|
| 20 |
+
: $this->error(sprintf("SFTP test error"));
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
/**
|
| 24 |
+
* Get code.
|
| 25 |
+
* @return String
|
| 26 |
+
*/
|
| 27 |
+
public function getCode()
|
| 28 |
+
{
|
| 29 |
+
return "sftp";
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
/**
|
| 33 |
+
* Get description.
|
| 34 |
+
* @return String
|
| 35 |
+
*/
|
| 36 |
+
public function getDescription()
|
| 37 |
+
{
|
| 38 |
+
return "SFTP Subscriber Exporter test";
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
/**
|
| 42 |
+
* Get position.
|
| 43 |
+
* @return int
|
| 44 |
+
*/
|
| 45 |
+
public function getPosition()
|
| 46 |
+
{
|
| 47 |
+
return 190;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
/**
|
| 51 |
+
* Check wsdl.
|
| 52 |
+
*/
|
| 53 |
+
private function _getCheckSFTP()
|
| 54 |
+
{
|
| 55 |
+
$path = Mage::getBaseDir('var').'/contactlab/export/';
|
| 56 |
+
if(!is_dir($path))
|
| 57 |
+
{
|
| 58 |
+
mkdir($path, 0755, true);
|
| 59 |
+
}
|
| 60 |
+
$filename = $path.'CheckSFTP.txt';
|
| 61 |
+
$fh = fopen($filename,'w');
|
| 62 |
+
fwrite($fh, $this->getCode(),1024);
|
| 63 |
+
fclose($fh);
|
| 64 |
+
$return = $this->_putFile($filename);
|
| 65 |
+
unlink($filename);
|
| 66 |
+
return $return;
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
/**
|
| 70 |
+
* Put file to sftp.
|
| 71 |
+
*
|
| 72 |
+
* @param string $filename
|
| 73 |
+
* @return void
|
| 74 |
+
*/
|
| 75 |
+
private function _putFile($filename)
|
| 76 |
+
{
|
| 77 |
+
if($sftp = $this->getSFTPConnection())
|
| 78 |
+
{
|
| 79 |
+
$remoteFile = $this->_getRelativePath() . '/' . basename($filename);
|
| 80 |
+
$sftp->delete($remoteFile);
|
| 81 |
+
$sftp->put($remoteFile, $filename, NET_SFTP_LOCAL_FILE);
|
| 82 |
+
$return = $this->_checkUploadedFile($filename, $remoteFile, $sftp);
|
| 83 |
+
$sftp->delete($remoteFile);
|
| 84 |
+
$sftp->_disconnect(0);
|
| 85 |
+
}
|
| 86 |
+
else
|
| 87 |
+
{
|
| 88 |
+
$return = false;
|
| 89 |
+
}
|
| 90 |
+
return $return;
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
/**
|
| 94 |
+
* Get delivery method.
|
| 95 |
+
*
|
| 96 |
+
* @return string
|
| 97 |
+
*/
|
| 98 |
+
private function _getRelativePath() {
|
| 99 |
+
return Mage::getStoreConfig("contactlab_commons/connection/export_remote_path");
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
/**
|
| 103 |
+
* Get SFTP connection.
|
| 104 |
+
* @return Contactlab_Commons_Model_Ssh_Net_SFTP
|
| 105 |
+
* @throws Zend_Exception
|
| 106 |
+
*/
|
| 107 |
+
public function getSFTPConnection()
|
| 108 |
+
{
|
| 109 |
+
$sftp = new Contactlab_Commons_Model_Ssh_Net_SFTP(
|
| 110 |
+
Mage::getStoreConfig("contactlab_commons/connection/remote_server")
|
| 111 |
+
);
|
| 112 |
+
if (!$sftp->login(
|
| 113 |
+
Mage::getStoreConfig("contactlab_commons/connection/sftp_username"),
|
| 114 |
+
Mage::getStoreConfig("contactlab_commons/connection/sftp_password")
|
| 115 |
+
)
|
| 116 |
+
)
|
| 117 |
+
{
|
| 118 |
+
return false;
|
| 119 |
+
}
|
| 120 |
+
return $sftp;
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
/**
|
| 124 |
+
* Check uploaded file existence.
|
| 125 |
+
*
|
| 126 |
+
* @param string $localFile
|
| 127 |
+
* @param string $remoteFile
|
| 128 |
+
* @param Contactlab_Commons_Model_Ssh_Net_SFTP $sftp
|
| 129 |
+
* @return void
|
| 130 |
+
*/
|
| 131 |
+
private function _checkUploadedFile($localFile, $remoteFile, Contactlab_Commons_Model_Ssh_Net_SFTP $sftp)
|
| 132 |
+
{
|
| 133 |
+
$localFileSize = filesize($localFile);
|
| 134 |
+
$remoteStat = $sftp->lstat($remoteFile);
|
| 135 |
+
$return = true;
|
| 136 |
+
if (!$remoteStat) {
|
| 137 |
+
$return = false;
|
| 138 |
+
}
|
| 139 |
+
if ($this->hasTask()) {
|
| 140 |
+
$this->getTask()->addEvent("Remote file info: " . print_r($remoteStat, true));
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
$remoteFileSize = $remoteStat['size'];
|
| 144 |
+
if ($localFileSize != $remoteFileSize) {
|
| 145 |
+
$return = false;
|
| 146 |
+
}
|
| 147 |
+
return $return;
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
|
| 152 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Checks/SftpXmlDeliveryCheck.php
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* Created by PhpStorm.
|
| 5 |
+
* User: andreag
|
| 6 |
+
* Date: 06/10/15
|
| 7 |
+
* Time: 9.30
|
| 8 |
+
*/
|
| 9 |
+
class Contactlab_Subscribers_Model_Checks_SftpXmlDeliveryCheck extends Contactlab_Subscribers_Model_Checks_AbstractCheck
|
| 10 |
+
{
|
| 11 |
+
|
| 12 |
+
/**
|
| 13 |
+
* Start check.
|
| 14 |
+
* @return String
|
| 15 |
+
*/
|
| 16 |
+
protected function doCheck()
|
| 17 |
+
{
|
| 18 |
+
return $this->_getCheckSFTP()
|
| 19 |
+
? $this->success(sprintf("SFTP test ok"))
|
| 20 |
+
: $this->error(sprintf("SFTP test error"));
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
/**
|
| 24 |
+
* Get code.
|
| 25 |
+
* @return String
|
| 26 |
+
*/
|
| 27 |
+
public function getCode()
|
| 28 |
+
{
|
| 29 |
+
return "sftp";
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
/**
|
| 33 |
+
* Get description.
|
| 34 |
+
* @return String
|
| 35 |
+
*/
|
| 36 |
+
public function getDescription()
|
| 37 |
+
{
|
| 38 |
+
return "SFTP XmlDelivery test";
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
/**
|
| 42 |
+
* Get position.
|
| 43 |
+
* @return int
|
| 44 |
+
*/
|
| 45 |
+
public function getPosition()
|
| 46 |
+
{
|
| 47 |
+
return 190;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
/**
|
| 51 |
+
* Check wsdl.
|
| 52 |
+
*/
|
| 53 |
+
private function _getCheckSFTP()
|
| 54 |
+
{
|
| 55 |
+
$path = Mage::getBaseDir('var').'/contactlab/export/';
|
| 56 |
+
if(!is_dir($path))
|
| 57 |
+
{
|
| 58 |
+
mkdir($path, 0755, true);
|
| 59 |
+
}
|
| 60 |
+
$filename = $path.'CheckSFTP.txt';
|
| 61 |
+
$fh = fopen($filename,'w');
|
| 62 |
+
fwrite($fh, $this->getCode(),1024);
|
| 63 |
+
fclose($fh);
|
| 64 |
+
$return = $this->_putFile($filename);
|
| 65 |
+
unlink($filename);
|
| 66 |
+
return $return;
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
/**
|
| 70 |
+
* Put file to sftp.
|
| 71 |
+
*
|
| 72 |
+
* @param string $filename
|
| 73 |
+
* @return void
|
| 74 |
+
*/
|
| 75 |
+
private function _putFile($filename)
|
| 76 |
+
{
|
| 77 |
+
if($sftp = $this->getSFTPConnection())
|
| 78 |
+
{
|
| 79 |
+
$remoteFile = $this->_getRelativePath() . '/' . basename($filename);
|
| 80 |
+
$sftp->delete($remoteFile);
|
| 81 |
+
$sftp->put($remoteFile, $filename, NET_SFTP_LOCAL_FILE);
|
| 82 |
+
$return = $this->_checkUploadedFile($filename, $remoteFile, $sftp);
|
| 83 |
+
$sftp->delete($remoteFile);
|
| 84 |
+
$sftp->_disconnect(0);
|
| 85 |
+
}
|
| 86 |
+
else
|
| 87 |
+
{
|
| 88 |
+
$return = false;
|
| 89 |
+
}
|
| 90 |
+
return $return;
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
/**
|
| 94 |
+
* Get delivery method.
|
| 95 |
+
*
|
| 96 |
+
* @return string
|
| 97 |
+
*/
|
| 98 |
+
private function _getRelativePath() {
|
| 99 |
+
return Mage::getStoreConfig("contactlab_template/queue/export_remote_path");
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
/**
|
| 103 |
+
* Get SFTP connection.
|
| 104 |
+
* @return Contactlab_Commons_Model_Ssh_Net_SFTP
|
| 105 |
+
* @throws Zend_Exception
|
| 106 |
+
*/
|
| 107 |
+
public function getSFTPConnection()
|
| 108 |
+
{
|
| 109 |
+
$sftp = new Contactlab_Commons_Model_Ssh_Net_SFTP(
|
| 110 |
+
Mage::getStoreConfig("contactlab_commons/connection/remote_server")
|
| 111 |
+
);
|
| 112 |
+
if (!$sftp->login(
|
| 113 |
+
Mage::getStoreConfig("contactlab_commons/connection/sftp_username"),
|
| 114 |
+
Mage::getStoreConfig("contactlab_commons/connection/sftp_password")
|
| 115 |
+
)
|
| 116 |
+
)
|
| 117 |
+
{
|
| 118 |
+
return false;
|
| 119 |
+
}
|
| 120 |
+
return $sftp;
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
/**
|
| 124 |
+
* Check uploaded file existence.
|
| 125 |
+
*
|
| 126 |
+
* @param string $localFile
|
| 127 |
+
* @param string $remoteFile
|
| 128 |
+
* @param Contactlab_Commons_Model_Ssh_Net_SFTP $sftp
|
| 129 |
+
* @return void
|
| 130 |
+
*/
|
| 131 |
+
private function _checkUploadedFile($localFile, $remoteFile, Contactlab_Commons_Model_Ssh_Net_SFTP $sftp)
|
| 132 |
+
{
|
| 133 |
+
$localFileSize = filesize($localFile);
|
| 134 |
+
$remoteStat = $sftp->lstat($remoteFile);
|
| 135 |
+
$return = true;
|
| 136 |
+
if (!$remoteStat) {
|
| 137 |
+
$return = false;
|
| 138 |
+
}
|
| 139 |
+
if ($this->hasTask()) {
|
| 140 |
+
$this->getTask()->addEvent("Remote file info: " . print_r($remoteStat, true));
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
$remoteFileSize = $remoteStat['size'];
|
| 144 |
+
if ($localFileSize != $remoteFileSize) {
|
| 145 |
+
$return = false;
|
| 146 |
+
}
|
| 147 |
+
return $return;
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
|
| 152 |
+
}
|
app/code/community/Contactlab/Subscribers/Model/Exporter/Copy of Subscribers.php
DELETED
|
@@ -1,1180 +0,0 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
/**
|
| 4 |
-
* Export subscribers.
|
| 5 |
-
* @property string limiter
|
| 6 |
-
* @property bool found
|
| 7 |
-
* @property int customers
|
| 8 |
-
* @property int newsletterSubscribers
|
| 9 |
-
* @property int deleted
|
| 10 |
-
* @property mixed exportPolicy
|
| 11 |
-
* @property Contactlab_Subscribers_Helper_Exporter helper
|
| 12 |
-
* @property Mage_Core_Model_Resource $resource
|
| 13 |
-
* @property string ukQuery
|
| 14 |
-
* @property array customerAttributes
|
| 15 |
-
* @property array addressAttributes
|
| 16 |
-
* @property Mage_Customer_Model_Customer customerModel
|
| 17 |
-
* @property Mage_Customer_Model_Address addressModel
|
| 18 |
-
* @property array statsAttributesMap
|
| 19 |
-
* @property array stores
|
| 20 |
-
* @property array fAttributesMap
|
| 21 |
-
* @property array fAddressAttributes
|
| 22 |
-
* @property array deletedEntities
|
| 23 |
-
*/
|
| 24 |
-
class Contactlab_Subscribers_Model_Exporter_Subscribers extends Contactlab_Commons_Model_Exporter_Abstract {
|
| 25 |
-
|
| 26 |
-
public final function export()
|
| 27 |
-
{
|
| 28 |
-
|
| 29 |
-
$filenameFormat = Mage::getStoreConfig("contactlab_commons/connection/export_local_path")
|
| 30 |
-
. '/' . $this->getFileName();
|
| 31 |
-
|
| 32 |
-
$filename = $this->_formatFileName($filenameFormat);
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
Mage::helper("contactlab_commons")->logNotice("Exporting locally to $filename");
|
| 37 |
-
|
| 38 |
-
$path = dirname($filename);
|
| 39 |
-
|
| 40 |
-
if (is_dir($path) && !is_writable($path)) {
|
| 41 |
-
Mage::helper("contactlab_commons")->logAlert("$path is not writeable");
|
| 42 |
-
throw new Zend_Exception("$path is not writeable");
|
| 43 |
-
}
|
| 44 |
-
if (is_file($filename) && !is_writable($filename)) {
|
| 45 |
-
Mage::helper("contactlab_commons")->logAlert("$filename is not writeable");
|
| 46 |
-
throw new Zend_Exception("$filename is not writeable");
|
| 47 |
-
}
|
| 48 |
-
if (($this->gz = gzopen($filename, 'w9')) === false) {
|
| 49 |
-
Mage::helper("contactlab_commons")->logAlert("Could not export to $filename");
|
| 50 |
-
throw new Zend_Exception("Could not export to $filename");
|
| 51 |
-
}
|
| 52 |
-
|
| 53 |
-
gzwrite($this->gz, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<dataroot>\n");
|
| 54 |
-
$this->writeXml();
|
| 55 |
-
gzwrite($this->gz, "</dataroot>\n");
|
| 56 |
-
gzclose($this->gz);
|
| 57 |
-
/*
|
| 58 |
-
if ($this->_useRemoteServer()) {
|
| 59 |
-
$this->_putFile(realpath($filename), basename($realFilename));
|
| 60 |
-
sleep(2);
|
| 61 |
-
unlink(realpath($filename));
|
| 62 |
-
}
|
| 63 |
-
$this->afterFileCopy();
|
| 64 |
-
*/
|
| 65 |
-
return "Export done";
|
| 66 |
-
}
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
/**
|
| 71 |
-
* Get xml object.
|
| 72 |
-
*/
|
| 73 |
-
protected function writeXml() {
|
| 74 |
-
|
| 75 |
-
$this->limiter = '###';
|
| 76 |
-
$this->found = false;
|
| 77 |
-
|
| 78 |
-
$this->customers = 0;
|
| 79 |
-
$this->newsletterSubscribers = 0;
|
| 80 |
-
$this->deleted = 0;
|
| 81 |
-
|
| 82 |
-
//$this->exportPolicy = Mage::getStoreConfig('contactlab_subscribers/global/export_policy');
|
| 83 |
-
$this->exportPolicy = Mage::getStoreConfig('contactlab_subscribers/global/export_policy');
|
| 84 |
-
$this->helper = Mage::helper("contactlab_subscribers/exporter");
|
| 85 |
-
$this->resource = Mage::getSingleton('core/resource');
|
| 86 |
-
|
| 87 |
-
$this->ukQuery = "";
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
Mage::helper("contactlab_commons")->enableDbProfiler();
|
| 91 |
-
|
| 92 |
-
if ($this->_mustResetExportDates()) {
|
| 93 |
-
$this->_resetExportDates();
|
| 94 |
-
}
|
| 95 |
-
|
| 96 |
-
$this->customerAttributes = $this->helper->getAttributesCodesForEntityType('customer');
|
| 97 |
-
$this->addressAttributes = $this->helper->getAttributesCodesForEntityType('customer_address');
|
| 98 |
-
|
| 99 |
-
$this->customerModel = Mage::getModel('customer/customer');
|
| 100 |
-
$this->addressModel = Mage::getModel('customer/address');
|
| 101 |
-
|
| 102 |
-
$this->statsAttributesMap = $this->helper->getStatsAttributesMap();
|
| 103 |
-
$this->stores = $this->_loadStores();
|
| 104 |
-
|
| 105 |
-
// Define customer collection
|
| 106 |
-
$attribute_map = array(
|
| 107 |
-
'prefix' => 'prefix',
|
| 108 |
-
'firstname' => 'firstname',
|
| 109 |
-
'middlename' => 'middlename',
|
| 110 |
-
'lastname' => 'lastname',
|
| 111 |
-
'suffix' => 'suffix',
|
| 112 |
-
'dob' => 'dob',
|
| 113 |
-
'gender' => 'gender',
|
| 114 |
-
'email' => 'email',
|
| 115 |
-
'created_at' => 'created_at',
|
| 116 |
-
/**
|
| 117 |
-
* Adding new fields from extended newsletter subscription form
|
| 118 |
-
*/
|
| 119 |
-
'privacy' => 'privacy',
|
| 120 |
-
'mobilephone' => 'mobilephone',
|
| 121 |
-
'notes' => 'notes',
|
| 122 |
-
'custom_1' => 'custom_1',
|
| 123 |
-
'custom_2' => 'custom_2',
|
| 124 |
-
'customer_group_id' => 'customer_group_id',
|
| 125 |
-
'customer_group_name' => 'customer_group_name'
|
| 126 |
-
);
|
| 127 |
-
|
| 128 |
-
$tMapTransporter = Mage::getModel('contactlab_subscribers/exporter_subscribers_mapTransporter_attribute');
|
| 129 |
-
$tMapTransporter->setMap($attribute_map);
|
| 130 |
-
$tMapTransporter->setIsMod(false);
|
| 131 |
-
|
| 132 |
-
Mage::dispatchEvent("contactlab_export_attributesmap",array(
|
| 133 |
-
'map_transporter' => $tMapTransporter
|
| 134 |
-
));
|
| 135 |
-
|
| 136 |
-
if ($tMapTransporter->isMod()){
|
| 137 |
-
$attribute_map = $tMapTransporter->getMap();
|
| 138 |
-
}
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
$address_attribute_map = array(
|
| 143 |
-
'country_id' => 'country_id',
|
| 144 |
-
'country' => 'country',
|
| 145 |
-
'region_id' => 'region_id',
|
| 146 |
-
'region' => 'region',
|
| 147 |
-
'postcode' => 'postcode',
|
| 148 |
-
'city' => 'city',
|
| 149 |
-
'street' => 'street',
|
| 150 |
-
'telephone' => 'telephone',
|
| 151 |
-
'fax' => 'fax',
|
| 152 |
-
'company' => 'company',
|
| 153 |
-
);
|
| 154 |
-
|
| 155 |
-
$tMapTransporter = Mage::getModel('contactlab_subscribers/exporter_subscribers_mapTransporter_address');
|
| 156 |
-
$tMapTransporter->setMap($address_attribute_map);
|
| 157 |
-
$tMapTransporter->setIsMod(false);
|
| 158 |
-
|
| 159 |
-
Mage::dispatchEvent("contactlab_export_AddressesAttributesMap",array(
|
| 160 |
-
'map_transporter' => $tMapTransporter
|
| 161 |
-
));
|
| 162 |
-
|
| 163 |
-
if ($tMapTransporter->isMod()){
|
| 164 |
-
$address_attribute_map = $tMapTransporter->getMap();
|
| 165 |
-
}
|
| 166 |
-
|
| 167 |
-
$attributesCustomer = $this->helper->getAttributesForEntityType('customer',
|
| 168 |
-
array_keys($attribute_map));
|
| 169 |
-
$this->fAttributesMap = array_flip($attribute_map);
|
| 170 |
-
$this->fAddressAttributes = array_flip($address_attribute_map);
|
| 171 |
-
|
| 172 |
-
$counter = 0;
|
| 173 |
-
$start = microtime(true);
|
| 174 |
-
$max = $this->_createCounterSubscribersInCustomersCollection()->getSize();
|
| 175 |
-
////$this->getTask()->setMaxValue($max);
|
| 176 |
-
Mage::helper("contactlab_commons")->logNotice(sprintf("Counting time: %0.4f", microtime(true) - $start));
|
| 177 |
-
|
| 178 |
-
$customKeys = array();
|
| 179 |
-
for ($ic = 1; $ic < 8; ++$ic) {
|
| 180 |
-
if (Mage::getStoreConfigFlag("contactlab_subscribers/custom_fields/enable_field_" . $ic)) {
|
| 181 |
-
$customKeys[] = Mage::getStoreConfig("contactlab_subscribers/custom_fields/field_" . $ic);
|
| 182 |
-
}
|
| 183 |
-
}
|
| 184 |
-
|
| 185 |
-
$start = microtime(true);
|
| 186 |
-
|
| 187 |
-
$limit = 50000;
|
| 188 |
-
$page = 1;
|
| 189 |
-
$preFilled = array_fill_keys(array_values($this->fAttributesMap), '');
|
| 190 |
-
$this->_addAddressFields($preFilled);
|
| 191 |
-
while (true) {
|
| 192 |
-
$subscribersInCustomers = $this->_createSubscribersInCustomersCollection($attributesCustomer);
|
| 193 |
-
$subscribersInCustomers->getSelect()->limitPage($page, $limit);
|
| 194 |
-
Mage::helper("contactlab_commons")->logDebug($subscribersInCustomers->getSelect()->assemble());
|
| 195 |
-
$found = false;
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
while ($item = $subscribersInCustomers->fetchItem()) {
|
| 199 |
-
$toFill = array();
|
| 200 |
-
$found = true;
|
| 201 |
-
$counter++;
|
| 202 |
-
$toFill['is_customer'] = 1;
|
| 203 |
-
if (!$item->hasData('uk')) {
|
| 204 |
-
$msg = sprintf("FATAL ERROR, %s subscriber has no UK record!", $item->getData('email'));
|
| 205 |
-
////$this->getTask()->addEvent($msg, true);
|
| 206 |
-
throw new Exception($msg);
|
| 207 |
-
}
|
| 208 |
-
$toFill['entity_id'] = $item->getData('uk');
|
| 209 |
-
|
| 210 |
-
$toFill = array_merge($toFill, $preFilled);
|
| 211 |
-
$toFill['email'] = $item->getData('email');
|
| 212 |
-
$this->_setAttributeKeys($toFill, $item);
|
| 213 |
-
$this->_setAddressesAttributeKeys($toFill, $item);
|
| 214 |
-
|
| 215 |
-
$this->_fillStoreAttributes($toFill, $item);
|
| 216 |
-
foreach ($this->statsAttributesMap as $k => $v) {
|
| 217 |
-
$toFill[$k] = $item->getData($v);
|
| 218 |
-
}
|
| 219 |
-
$this->_fillCustomerGroupAttributes($toFill, $item);
|
| 220 |
-
$this->_manageCustomerClsFlag($toFill, $item);
|
| 221 |
-
/** Custom rispetto alla versione originale del modulo */
|
| 222 |
-
$this->customizeInfoCustomer($toFill, $item);
|
| 223 |
-
|
| 224 |
-
foreach ($customKeys as $icKey) {
|
| 225 |
-
if (empty($icKey)) {
|
| 226 |
-
continue;
|
| 227 |
-
}
|
| 228 |
-
$icValue = $item->getData($icKey);
|
| 229 |
-
if (isset($toFill[$icKey]) && empty($toFill[$icKey]) && !empty($icValue)) {
|
| 230 |
-
$toFill[$icKey] = $icValue;
|
| 231 |
-
}
|
| 232 |
-
}
|
| 233 |
-
|
| 234 |
-
$this->found = true;
|
| 235 |
-
$this->customers++;
|
| 236 |
-
$writer = new XMLWriter();
|
| 237 |
-
$writer->openMemory();
|
| 238 |
-
$writer->setIndent(true);
|
| 239 |
-
$writer->startElement("RECORD");
|
| 240 |
-
$writer->writeAttribute('ACTION', 'U');
|
| 241 |
-
foreach ($toFill as $k => $v) {
|
| 242 |
-
|
| 243 |
-
if (empty($k)) {
|
| 244 |
-
continue;
|
| 245 |
-
}
|
| 246 |
-
if ($k !== $this->getSubscribedFlagName()) {
|
| 247 |
-
$k = strtoupper($this->getOutputTagName($k));
|
| 248 |
-
}
|
| 249 |
-
$writer->writeElement($k, $v);
|
| 250 |
-
}
|
| 251 |
-
$writer->endElement();
|
| 252 |
-
|
| 253 |
-
gzwrite($this->gz, $writer->outputMemory());
|
| 254 |
-
|
| 255 |
-
if ($counter % 2000 == 0) {
|
| 256 |
-
Mage::helper("contactlab_commons")->logNotice(sprintf("Exporting %6s / %-6s", $counter, $max));
|
| 257 |
-
//$this->getTask()->setProgressValue($counter);
|
| 258 |
-
}
|
| 259 |
-
}
|
| 260 |
-
$this->_setUkIsExported();
|
| 261 |
-
if (!$found) {
|
| 262 |
-
break;
|
| 263 |
-
}
|
| 264 |
-
$page++;
|
| 265 |
-
}
|
| 266 |
-
Mage::helper("contactlab_commons")->logNotice(sprintf("Loop time: %0.4f", microtime(true) - $start));
|
| 267 |
-
|
| 268 |
-
$this->_addNotCustomerRecords();
|
| 269 |
-
$this->_addDeletedRecords();
|
| 270 |
-
|
| 271 |
-
$this->_setUkIsExported();
|
| 272 |
-
|
| 273 |
-
Mage::helper("contactlab_commons")->flushDbProfiler();
|
| 274 |
-
if (!$this->found) {
|
| 275 |
-
////$this->getTask()->addEvent("No record exported or deleted");
|
| 276 |
-
} else {
|
| 277 |
-
if ($this->customers > 0) {
|
| 278 |
-
////$this->getTask()->addEvent(sprintf("%d customers exported", $this->customers));
|
| 279 |
-
}
|
| 280 |
-
if ($this->newsletterSubscribers > 0) {
|
| 281 |
-
////$this->getTask()->addEvent(sprintf("%d newsletter subscribers exported", $this->newsletterSubscribers));
|
| 282 |
-
}
|
| 283 |
-
if ($this->deleted > 0) {
|
| 284 |
-
////$this->getTask()->addEvent(sprintf("%d record deleted", $this->deleted));
|
| 285 |
-
}
|
| 286 |
-
}
|
| 287 |
-
}
|
| 288 |
-
|
| 289 |
-
/**
|
| 290 |
-
* Create subscribers in customers collection.
|
| 291 |
-
* @param Mage_Eav_Model_Resource_Entity_Attribute_Collection $attributesCustomer
|
| 292 |
-
* @return Mage_Customer_Model_Resource_Customer_Collection
|
| 293 |
-
*/
|
| 294 |
-
private function _createSubscribersInCustomersCollection(
|
| 295 |
-
Mage_Eav_Model_Resource_Entity_Attribute_Collection $attributesCustomer)
|
| 296 |
-
{
|
| 297 |
-
/**
|
| 298 |
-
* @var $subscribersInCustomers Mage_Customer_Model_Resource_Customer_Collection
|
| 299 |
-
*/
|
| 300 |
-
$rv = Mage::getModel('customer/customer')->getCollection();
|
| 301 |
-
// $w = 'subscriber_status = ' . Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
| 302 |
-
// $w = $this->_manageExportPolicySql($w, array(
|
| 303 |
-
// 'e#1' => 'updated_at',
|
| 304 |
-
// 'e#2' => 'created_at',
|
| 305 |
-
// $this->resource->getTableName('newsletter_subscriber') => 'last_updated_at'
|
| 306 |
-
// ));
|
| 307 |
-
|
| 308 |
-
|
| 309 |
-
// if (!$this->_mustExportNotSubscribed()) {
|
| 310 |
-
// $rv->getSelect()
|
| 311 |
-
// ->where('e.entity_id in (select customer_id from ' . $this->resource->getTableName('newsletter_subscriber')
|
| 312 |
-
// . ' where ' . $w . ')');
|
| 313 |
-
// }
|
| 314 |
-
|
| 315 |
-
// Fills array of types with attributes id array
|
| 316 |
-
foreach ($this->helper->fillBackendTypesFromArray($attributesCustomer) as $backendType => $ids) {
|
| 317 |
-
$alias = 'ce' . $backendType;
|
| 318 |
-
$w = 'e.entity_id = ' . $alias . '.entity_id and length(' . $alias . '.value) > 0 and '
|
| 319 |
-
. $alias . '.attribute_id IN (' . implode(',', $ids) . ')';
|
| 320 |
-
$rv->getSelect()->joinLeft(
|
| 321 |
-
array(
|
| 322 |
-
$alias => $this->resource->getTableName('customer_entity_' . $backendType)),
|
| 323 |
-
$w, array($backendType . '_value' => new Zend_Db_Expr('GROUP_CONCAT(DISTINCT CONCAT('
|
| 324 |
-
. $alias . ".attribute_id, '_', " .$alias. ".value) SEPARATOR '" . $this->limiter . "')")));
|
| 325 |
-
}
|
| 326 |
-
|
| 327 |
-
// Stats
|
| 328 |
-
$this->_addStatsToSelect($rv);
|
| 329 |
-
$this->_addAddressesToSelect($rv);
|
| 330 |
-
$this->_addCustomerGroupToSelect($rv);
|
| 331 |
-
$this->_manageExportPolicy($rv,
|
| 332 |
-
array(
|
| 333 |
-
'e' => array('created_at', 'updated_at'),
|
| 334 |
-
$this->resource->getTableName('newsletter_subscriber') => 'last_updated_at',
|
| 335 |
-
));
|
| 336 |
-
$this->_addCustomerExportCollection($rv);
|
| 337 |
-
$this->_addSubscriberFields($rv);
|
| 338 |
-
|
| 339 |
-
$rv->getSelect()->group('e.entity_id');
|
| 340 |
-
|
| 341 |
-
return $rv;
|
| 342 |
-
}
|
| 343 |
-
|
| 344 |
-
/**
|
| 345 |
-
* Create count subscribers in customers collection.
|
| 346 |
-
* @return Mage_Customer_Model_Resource_Customer_Collection
|
| 347 |
-
*/
|
| 348 |
-
private function _createCounterSubscribersInCustomersCollection()
|
| 349 |
-
{
|
| 350 |
-
/**
|
| 351 |
-
* @var $subscribersInCustomers Mage_Customer_Model_Resource_Customer_Collection
|
| 352 |
-
*/
|
| 353 |
-
$rv = Mage::getModel('customer/customer')->getCollection();
|
| 354 |
-
// $w = 'subscriber_status = ' . Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
| 355 |
-
// $w = $this->_manageExportPolicySql($w, array(
|
| 356 |
-
// 'e#1' => 'updated_at',
|
| 357 |
-
// 'e#2' => 'created_at',
|
| 358 |
-
// $this->resource->getTableName('newsletter_subscriber') => 'last_updated_at'
|
| 359 |
-
// ));
|
| 360 |
-
|
| 361 |
-
// if (!$this->_mustExportNotSubscribed()) {
|
| 362 |
-
// $rv->getSelect()
|
| 363 |
-
// ->where('e.entity_id in (select customer_id from ' . $this->resource->getTableName('newsletter_subscriber')
|
| 364 |
-
// . ' where ' . $w . ')');
|
| 365 |
-
// }
|
| 366 |
-
|
| 367 |
-
$this->_manageExportPolicy($rv,
|
| 368 |
-
array(
|
| 369 |
-
'e' => array('created_at', 'updated_at'),
|
| 370 |
-
$this->resource->getTableName('newsletter_subscriber') => 'last_updated_at',
|
| 371 |
-
));
|
| 372 |
-
$this->_addCustomerExportCollection($rv);
|
| 373 |
-
return $rv;
|
| 374 |
-
}
|
| 375 |
-
|
| 376 |
-
/**
|
| 377 |
-
* Called after the export.
|
| 378 |
-
*/
|
| 379 |
-
public function afterFileCopy() {
|
| 380 |
-
$this->helper->soapCallAfterExport($this->getTask());
|
| 381 |
-
}
|
| 382 |
-
|
| 383 |
-
/** Not customer records. */
|
| 384 |
-
private function _addNotCustomerRecords() {
|
| 385 |
-
Mage::helper("contactlab_commons")->logDebug("_addNotCustomerRecords");
|
| 386 |
-
$preFilled = array_fill_keys(array_values($this->fAttributesMap), '');
|
| 387 |
-
$this->_addAddressFields($preFilled);
|
| 388 |
-
$subscribersNotInCustomers = $this->_createSubscribersNotInCustomers();
|
| 389 |
-
$customKeys = array();
|
| 390 |
-
for ($ic = 1; $ic < 8; ++$ic) {
|
| 391 |
-
if (Mage::getStoreConfigFlag("contactlab_subscribers/custom_fields/enable_field_" . $ic)) {
|
| 392 |
-
$customKeys[] = Mage::getStoreConfig("contactlab_subscribers/custom_fields/field_" . $ic);
|
| 393 |
-
}
|
| 394 |
-
}
|
| 395 |
-
$counter = 0;
|
| 396 |
-
$max = $subscribersNotInCustomers->getSize();
|
| 397 |
-
////$this->getTask()->setMaxValue($max);
|
| 398 |
-
|
| 399 |
-
$limit = 200000;
|
| 400 |
-
$page = 1;
|
| 401 |
-
while (true) {
|
| 402 |
-
$subscribersNotInCustomers = $this->_createSubscribersNotInCustomers();
|
| 403 |
-
$subscribersNotInCustomers->getSelect()->limitPage($page, $limit);
|
| 404 |
-
Mage::helper("contactlab_commons")->logDebug($subscribersNotInCustomers->getSelect()->assemble());
|
| 405 |
-
$found = false;
|
| 406 |
-
|
| 407 |
-
while ($item = $subscribersNotInCustomers->fetchItem()) {
|
| 408 |
-
$counter++;
|
| 409 |
-
$found = true;
|
| 410 |
-
$toFill1 = array();
|
| 411 |
-
|
| 412 |
-
$toFill1['is_customer'] = 0;
|
| 413 |
-
if (!$item->hasData('uk')) {
|
| 414 |
-
$msg = sprintf("FATAL ERROR, %s customer has no UK record!", $item->getData('subscriber_email'));
|
| 415 |
-
//$this->getTask()->addEvent($msg, true);
|
| 416 |
-
throw new Exception($msg);
|
| 417 |
-
}
|
| 418 |
-
$toFill1['entity_id'] = $item->getData('uk');
|
| 419 |
-
|
| 420 |
-
$toFill = array_merge($toFill1, $preFilled);
|
| 421 |
-
$toFill['email'] = $item->getData('subscriber_email');
|
| 422 |
-
$this->_manageNewsletterClsFlag($toFill, $item);
|
| 423 |
-
$this->_fillStoreAttributes($toFill, $item);
|
| 424 |
-
$this->_fillNewsletterAttributes($toFill, $item);
|
| 425 |
-
/** Custom rispetto alla versione originale del modulo */
|
| 426 |
-
$this->customizeInfoSubscriber($toFill, $item);
|
| 427 |
-
|
| 428 |
-
foreach ($customKeys as $icKey) {
|
| 429 |
-
if (empty($icKey)) {
|
| 430 |
-
continue;
|
| 431 |
-
}
|
| 432 |
-
$icValue = $item->getData($icKey);
|
| 433 |
-
if (isset($toFill[$icKey]) && empty($toFill[$icKey]) && !empty($icValue)) {
|
| 434 |
-
$toFill[$icKey] = $icValue;
|
| 435 |
-
}
|
| 436 |
-
}
|
| 437 |
-
|
| 438 |
-
$this->found = true;
|
| 439 |
-
$this->newsletterSubscribers++;
|
| 440 |
-
$writer = new XMLWriter();
|
| 441 |
-
$writer->openMemory();
|
| 442 |
-
$writer->setIndent(true);
|
| 443 |
-
$writer->startElement("RECORD");
|
| 444 |
-
$writer->writeAttribute('ACTION', 'U');
|
| 445 |
-
foreach ($toFill as $k => $v) {
|
| 446 |
-
if (empty($k)) {
|
| 447 |
-
continue;
|
| 448 |
-
}
|
| 449 |
-
if ($k !== $this->getSubscribedFlagName()) {
|
| 450 |
-
$k = strtoupper($this->getOutputTagName($k));
|
| 451 |
-
}
|
| 452 |
-
$writer->writeElement($k, $v);
|
| 453 |
-
}
|
| 454 |
-
$writer->endElement();
|
| 455 |
-
gzwrite($this->gz, $writer->outputMemory());
|
| 456 |
-
if ($counter % 2000 == 0) {
|
| 457 |
-
Mage::helper("contactlab_commons")->logNotice(sprintf("Exporting %6s / %-6s", $counter, $max));
|
| 458 |
-
//$this->getTask()->setProgressValue($counter);
|
| 459 |
-
}
|
| 460 |
-
}
|
| 461 |
-
$this->_setUkIsExported();
|
| 462 |
-
if (!$found) {
|
| 463 |
-
break;
|
| 464 |
-
}
|
| 465 |
-
$page++;
|
| 466 |
-
}
|
| 467 |
-
}
|
| 468 |
-
|
| 469 |
-
|
| 470 |
-
/**
|
| 471 |
-
* Create subscribers not in customers.
|
| 472 |
-
* @return Contactlab_Template_Model_Resource_Newsletter_Subscriber_Collection
|
| 473 |
-
*/
|
| 474 |
-
private function _createSubscribersNotInCustomers()
|
| 475 |
-
{
|
| 476 |
-
/** @var $rv Contactlab_Template_Model_Resource_Newsletter_Subscriber_Collection */
|
| 477 |
-
$rv = Mage::getModel('contactlab_subscribers/uk')->getCollection();
|
| 478 |
-
$rv->addFieldToSelect(
|
| 479 |
-
array('uk' => 'entity_id', 'is_exported' => 'is_exported')
|
| 480 |
-
);
|
| 481 |
-
$this->_addSubscriberFields($rv, 'main_table');
|
| 482 |
-
$rv->getSelect()->joinLeft(
|
| 483 |
-
array('native_nl' => $this->resource->getTableName('newsletter/subscriber')),
|
| 484 |
-
'native_nl.subscriber_id = main_table.subscriber_id');
|
| 485 |
-
$this->_manageExportPolicy($rv,
|
| 486 |
-
array('native_nl' => 'last_updated_at'));
|
| 487 |
-
if (!$this->_mustExportNotSubscribed()) {
|
| 488 |
-
$rv->addFieldToFilter('native_nl.subscriber_status', Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED);
|
| 489 |
-
}
|
| 490 |
-
$rv->getSelect()->where('main_table.customer_id is null or main_table.customer_id = 0');
|
| 491 |
-
return $rv;
|
| 492 |
-
}
|
| 493 |
-
|
| 494 |
-
|
| 495 |
-
/**
|
| 496 |
-
* Add delete records.
|
| 497 |
-
*/
|
| 498 |
-
private function _addDeletedRecords() {
|
| 499 |
-
/** @var $deletedEntities Contactlab_Commons_Model_Resource_Deleted_Collection */
|
| 500 |
-
$deletedEntities = Mage::getModel('contactlab_commons/deleted')
|
| 501 |
-
->getCollection()
|
| 502 |
-
->addFieldToFilter('task_id', array('null' => true));
|
| 503 |
-
|
| 504 |
-
$counter = 0;
|
| 505 |
-
// FIXME TODO count vs getSize
|
| 506 |
-
$max = $deletedEntities->count();
|
| 507 |
-
|
| 508 |
-
Mage::helper("contactlab_commons")->logDebug($deletedEntities->getSelect()->assemble());
|
| 509 |
-
$this->deletedEntities = array();
|
| 510 |
-
$preFilled = array_fill_keys(array_keys($this->fAttributesMap), '');
|
| 511 |
-
$this->_addAddressFields($preFilled);
|
| 512 |
-
|
| 513 |
-
/** @var $deletedEntity Contactlab_Commons_Model_Deleted */
|
| 514 |
-
while ($deletedEntity = $deletedEntities->fetchItem()) {
|
| 515 |
-
$counter++;
|
| 516 |
-
$toFill1 = array();
|
| 517 |
-
|
| 518 |
-
$this->found = true;
|
| 519 |
-
$this->deleted++;
|
| 520 |
-
|
| 521 |
-
$toFill1['is_customer'] = $deletedEntity->getIsCustomer();
|
| 522 |
-
$toFill1['entity_id'] = $deletedEntity->getEntityId();
|
| 523 |
-
$toFill = array_merge($toFill1, $preFilled);
|
| 524 |
-
$toFill['email'] = $deletedEntity->getEmail();
|
| 525 |
-
/** Custom rispetto alla versione originale del modulo */
|
| 526 |
-
$this->customizeInfoDeleted($toFill, $deletedEntity);
|
| 527 |
-
|
| 528 |
-
|
| 529 |
-
$writer = new XMLWriter();
|
| 530 |
-
$writer->openMemory();
|
| 531 |
-
$writer->setIndent(true);
|
| 532 |
-
$writer->startElement("RECORD");
|
| 533 |
-
$writer->writeAttribute('ACTION', 'D');
|
| 534 |
-
foreach ($toFill as $k => $v) {
|
| 535 |
-
if ($k !== $this->getSubscribedFlagName()) {
|
| 536 |
-
$k = strtoupper($k);
|
| 537 |
-
}
|
| 538 |
-
$writer->writeElement($k, $v);
|
| 539 |
-
}
|
| 540 |
-
$writer->endElement();
|
| 541 |
-
gzwrite($this->gz, $writer->outputMemory());
|
| 542 |
-
/*
|
| 543 |
-
$deletedEntity->setTaskId($this->getTask()->getTaskId())->save();
|
| 544 |
-
if ($counter % 500 == 0) {
|
| 545 |
-
Mage::helper("contactlab_commons")->logNotice(sprintf("Exporting deleted %6s / %-6s", $counter, $max));
|
| 546 |
-
}
|
| 547 |
-
*/
|
| 548 |
-
}
|
| 549 |
-
}
|
| 550 |
-
|
| 551 |
-
/**
|
| 552 |
-
* Set addresses attribute keys.
|
| 553 |
-
* @param array $toFill
|
| 554 |
-
* @param Varien_Object $data
|
| 555 |
-
*/
|
| 556 |
-
private function _setAddressesAttributeKeys(array &$toFill, Varien_Object $data) {
|
| 557 |
-
$this->_setAddressAttributeKeys($toFill, $data, "shipping");
|
| 558 |
-
$this->_setAddressAttributeKeys($toFill, $data, "billing");
|
| 559 |
-
}
|
| 560 |
-
|
| 561 |
-
/**
|
| 562 |
-
* Do export address with type.
|
| 563 |
-
* @param string $addressType
|
| 564 |
-
* @return bool
|
| 565 |
-
*/
|
| 566 |
-
private function _mustExportAddress($addressType) {
|
| 567 |
-
return Mage::getStoreConfigFlag("contactlab_subscribers/global/export_" . $addressType . "_address");
|
| 568 |
-
}
|
| 569 |
-
|
| 570 |
-
/**
|
| 571 |
-
* Set address attribute keys.
|
| 572 |
-
* @param array $toFill
|
| 573 |
-
* @param Varien_Object $data
|
| 574 |
-
* @param $addressType
|
| 575 |
-
*/
|
| 576 |
-
private function _setAddressAttributeKeys(array &$toFill, Varien_Object $data, $addressType) {
|
| 577 |
-
if (!$this->_mustExportAddress($addressType)) {
|
| 578 |
-
return;
|
| 579 |
-
}
|
| 580 |
-
$entityTypes = array('int', 'varchar', 'text', 'decimal', 'datetime');
|
| 581 |
-
foreach ($entityTypes as $type) {
|
| 582 |
-
if (!array_key_exists($addressType . '_' . $type . '_value', $data->getData())) {
|
| 583 |
-
return;
|
| 584 |
-
}
|
| 585 |
-
$values = explode($this->limiter, $data->getData($addressType . '_' . $type . '_value'));
|
| 586 |
-
foreach ($values as $key) {
|
| 587 |
-
$pos = strpos($key, '_');
|
| 588 |
-
if ($pos === false) {
|
| 589 |
-
continue;
|
| 590 |
-
}
|
| 591 |
-
$k = substr($key, 0, $pos);
|
| 592 |
-
$v = substr($key, $pos + 1);
|
| 593 |
-
if (!array_key_exists($k, $this->addressAttributes)) {
|
| 594 |
-
continue;
|
| 595 |
-
}
|
| 596 |
-
$toFill[$addressType . '_' . $this->fAddressAttributes[$this->addressAttributes[$k]]] =
|
| 597 |
-
$this->helper->decode($this->addressModel, 'address', $this->addressAttributes[$k], $v);
|
| 598 |
-
}
|
| 599 |
-
}
|
| 600 |
-
}
|
| 601 |
-
|
| 602 |
-
/**
|
| 603 |
-
* Set attribute keys.
|
| 604 |
-
* @param array $toFill
|
| 605 |
-
* @param Varien_Object $data
|
| 606 |
-
*/
|
| 607 |
-
private function _setAttributeKeys(array &$toFill, Varien_Object $data) {
|
| 608 |
-
$entityTypes = array('int', 'varchar', 'text', 'decimal', 'datetime');
|
| 609 |
-
foreach ($entityTypes as $type) {
|
| 610 |
-
if (!array_key_exists($type . '_value', $data->getData())) {
|
| 611 |
-
continue;
|
| 612 |
-
}
|
| 613 |
-
$values = explode($this->limiter, $data->getData($type . '_value'));
|
| 614 |
-
foreach ($values as $key) {
|
| 615 |
-
$pos = strpos($key, '_');
|
| 616 |
-
if ($pos === false) {
|
| 617 |
-
continue;
|
| 618 |
-
}
|
| 619 |
-
$k = substr($key, 0, $pos);
|
| 620 |
-
$v = substr($key, $pos + 1);
|
| 621 |
-
if (!array_key_exists($k, $this->customerAttributes)) {
|
| 622 |
-
continue;
|
| 623 |
-
}
|
| 624 |
-
// use flipped array for cstm attributes
|
| 625 |
-
//$flip = array_flip($this->fAttributesMap);
|
| 626 |
-
//$toFill[$this->fAttributesMap[$this->customerAttributes[$k]]] =
|
| 627 |
-
// $toFill[$flip[$this->customerAttributes[$k]]] =
|
| 628 |
-
$toFill[$this->customerAttributes[$k]] =
|
| 629 |
-
$this->helper->decode($this->customerModel, 'customer', $this->customerAttributes[$k], $v);
|
| 630 |
-
}
|
| 631 |
-
}
|
| 632 |
-
|
| 633 |
-
}
|
| 634 |
-
|
| 635 |
-
/**
|
| 636 |
-
* Add store, group and website attributes.
|
| 637 |
-
* @param array $toFill
|
| 638 |
-
* @param Varien_Object $item
|
| 639 |
-
*/
|
| 640 |
-
private function _fillStoreAttributes(array &$toFill, Varien_Object $item) {
|
| 641 |
-
$store = $this->stores[$item->getData('store_id')];
|
| 642 |
-
foreach (array('store_id', 'store_name', 'website_id', 'website_name',
|
| 643 |
-
'group_id', 'group_name', 'lang') as $k) {
|
| 644 |
-
$toFill[$k] = $store[$k];
|
| 645 |
-
}
|
| 646 |
-
}
|
| 647 |
-
|
| 648 |
-
private function _fillCustomerGroupAttributes(array &$toFill, Varien_Object $item)
|
| 649 |
-
{
|
| 650 |
-
$toFill['customer_group_id'] = $item->getData('customer_group_id');
|
| 651 |
-
$toFill['customer_group_name'] = $item->getData('customer_group_name');
|
| 652 |
-
//FIX
|
| 653 |
-
$toFill['created_at'] = $item->getData('created_at');
|
| 654 |
-
}
|
| 655 |
-
|
| 656 |
-
/**
|
| 657 |
-
* Fill Newsletter attributes fields.
|
| 658 |
-
* @param array $toFill
|
| 659 |
-
* @param Varien_Object $item
|
| 660 |
-
*/
|
| 661 |
-
private function _fillNewsletterAttributes(array &$toFill, Varien_Object $item)
|
| 662 |
-
{
|
| 663 |
-
foreach ($this->helper->getSubscriberToCustomerAttributeMap() as $k => $v) {
|
| 664 |
-
if (!$this->_doManageAddressAttribute($v)) {
|
| 665 |
-
continue;
|
| 666 |
-
}
|
| 667 |
-
$toFill[$v] = $item->getData($k);
|
| 668 |
-
}
|
| 669 |
-
}
|
| 670 |
-
|
| 671 |
-
/**
|
| 672 |
-
* Add stats to collection.
|
| 673 |
-
* @param Varien_Data_Collection_Db $collection
|
| 674 |
-
*/
|
| 675 |
-
private function _addStatsToSelect(Varien_Data_Collection_Db $collection) {
|
| 676 |
-
$collection->getSelect()->joinLeft(
|
| 677 |
-
array('stats' => $this->resource->getTableName('contactlab_subscribers/stats')),
|
| 678 |
-
'stats.customer_id = e.entity_id', $this->statsAttributesMap);
|
| 679 |
-
}
|
| 680 |
-
|
| 681 |
-
/**
|
| 682 |
-
* Add customer export to collection.
|
| 683 |
-
* @param Varien_Data_Collection_Db $collection
|
| 684 |
-
*/
|
| 685 |
-
private function _addCustomerExportCollection(Varien_Data_Collection_Db $collection) {
|
| 686 |
-
if (!$this->_mustExportNotSubscribed()) {
|
| 687 |
-
$w = 'subscriber_status = ' . Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
| 688 |
-
$w = $this->_manageExportPolicySql($w, array(
|
| 689 |
-
'e#1' => 'updated_at',
|
| 690 |
-
'e#2' => 'created_at',
|
| 691 |
-
$this->resource->getTableName('newsletter_subscriber') => 'last_updated_at'
|
| 692 |
-
));
|
| 693 |
-
|
| 694 |
-
$collection->getSelect()->joinInner(
|
| 695 |
-
array('newsletter_subscriber' => $this->resource->getTableName('newsletter/subscriber')),
|
| 696 |
-
'newsletter_subscriber.customer_id = e.entity_id AND ' . $w,
|
| 697 |
-
array('subscriber_status' => 'subscriber_status'));
|
| 698 |
-
}else{
|
| 699 |
-
$collection->getSelect()->joinLeft(
|
| 700 |
-
array('newsletter_subscriber' => $this->resource->getTableName('newsletter/subscriber')),
|
| 701 |
-
'newsletter_subscriber.customer_id = e.entity_id',
|
| 702 |
-
array('subscriber_status' => 'subscriber_status'));
|
| 703 |
-
}
|
| 704 |
-
|
| 705 |
-
$collection->getSelect()->joinLeft(
|
| 706 |
-
array('uk' => $this->resource->getTableName('contactlab_subscribers/uk')),
|
| 707 |
-
'uk.customer_id = e.entity_id',
|
| 708 |
-
array('uk' => 'entity_id', 'is_exported' => 'is_exported'));
|
| 709 |
-
}
|
| 710 |
-
|
| 711 |
-
/**
|
| 712 |
-
* Add newsletter subscriber export to collection.
|
| 713 |
-
* @param Varien_Data_Collection_Db $collection
|
| 714 |
-
*/
|
| 715 |
-
private function _addNewsletterSubscriberExportCollection(Varien_Data_Collection_Db $collection) {
|
| 716 |
-
$collection->getSelect()->joinLeft(
|
| 717 |
-
array('uk' => $this->resource->getTableName('contactlab_subscribers/uk')),
|
| 718 |
-
'uk.subscriber_id = main_table.subscriber_id',
|
| 719 |
-
array('uk' => 'entity_id', 'is_exported' => 'is_exported'));
|
| 720 |
-
}
|
| 721 |
-
|
| 722 |
-
/**
|
| 723 |
-
* Add export policy to sql statement.
|
| 724 |
-
* @param Varien_Data_Collection_Db $collection
|
| 725 |
-
* @param array $fields
|
| 726 |
-
*/
|
| 727 |
-
private function _manageExportPolicy(Varien_Data_Collection_Db $collection,
|
| 728 |
-
array $fields) {
|
| 729 |
-
if ($this->exportPolicy != '2') {
|
| 730 |
-
// Ok, will export everything
|
| 731 |
-
return;
|
| 732 |
-
}
|
| 733 |
-
$lastExport = Mage::getStoreConfig('contactlab_subscribers/global/last_export');
|
| 734 |
-
if (empty($lastExport)) {
|
| 735 |
-
// Ok, will export everything, no last import saved.
|
| 736 |
-
return;
|
| 737 |
-
}
|
| 738 |
-
$clause = '';
|
| 739 |
-
//$lastExport = Mage::getModel("core/date")->gmtDate(null, $lastExport);
|
| 740 |
-
|
| 741 |
-
foreach ($fields as $table => $field) {
|
| 742 |
-
if (!is_array($field)) {
|
| 743 |
-
$field = array($field);
|
| 744 |
-
}
|
| 745 |
-
foreach ($field as $item) {
|
| 746 |
-
if (!empty($clause)) {
|
| 747 |
-
$clause .= ' or ';
|
| 748 |
-
}
|
| 749 |
-
$clause .= sprintf("%s.%s >= '%s'", $table, $item, $lastExport);
|
| 750 |
-
if (preg_match("/.*newsletter_subscriber.*/", $table)) {
|
| 751 |
-
$clause .= sprintf(" or (%s.%s is null and %s.subscriber_id is not null)", $table, $item, $table);
|
| 752 |
-
} else {
|
| 753 |
-
$clause .= sprintf(" or %s.%s is null", $table, $item);
|
| 754 |
-
}
|
| 755 |
-
}
|
| 756 |
-
}
|
| 757 |
-
$collection->getSelect()->where($clause);
|
| 758 |
-
}
|
| 759 |
-
|
| 760 |
-
/**
|
| 761 |
-
* Add export policy to sql statement.
|
| 762 |
-
* @param string $w
|
| 763 |
-
* @param array $fields
|
| 764 |
-
* @return string
|
| 765 |
-
*/
|
| 766 |
-
private function _manageExportPolicySql($w, array $fields) {
|
| 767 |
-
if ($this->exportPolicy != '2') {
|
| 768 |
-
// Ok, will export everything
|
| 769 |
-
return $w;
|
| 770 |
-
}
|
| 771 |
-
$lastExport = Mage::getStoreConfig('contactlab_subscribers/global/last_export');
|
| 772 |
-
if (empty($lastExport)) {
|
| 773 |
-
// Ok, will export everything, no last import saved.
|
| 774 |
-
return $w;
|
| 775 |
-
}
|
| 776 |
-
// $lastExport = Mage::getModel("core/date")->gmtDate(null, $lastExport);
|
| 777 |
-
|
| 778 |
-
$w .= ' and (';
|
| 779 |
-
$first = true;
|
| 780 |
-
foreach ($fields as $table => $field) {
|
| 781 |
-
$table = preg_replace('|#.*|', '', $table);
|
| 782 |
-
if (!is_array($field)) {
|
| 783 |
-
$field = array($field);
|
| 784 |
-
}
|
| 785 |
-
if (!$first) {
|
| 786 |
-
$w .= ' and ';
|
| 787 |
-
}
|
| 788 |
-
foreach ($field as $item) {
|
| 789 |
-
$w .= sprintf("%s.%s >= '%s'", $table, $item, $lastExport);
|
| 790 |
-
if (preg_match("/.*newsletter_subscriber.*/", $table)) {
|
| 791 |
-
$w .= sprintf(" or (%s.%s is null and %s.subscriber_id is not null)", $table, $item, $table);
|
| 792 |
-
} else {
|
| 793 |
-
$w .= sprintf(" or %s.%s is null", $table, $item);
|
| 794 |
-
}
|
| 795 |
-
}
|
| 796 |
-
$first = false;
|
| 797 |
-
}
|
| 798 |
-
$w .= ')';
|
| 799 |
-
return $w;
|
| 800 |
-
}
|
| 801 |
-
|
| 802 |
-
/**
|
| 803 |
-
* Add addresses to select
|
| 804 |
-
* @param Varien_Data_Collection_Db $collection
|
| 805 |
-
*/
|
| 806 |
-
private function _addAddressesToSelect(Varien_Data_Collection_Db $collection) {
|
| 807 |
-
$this->_addAddressToSelect($collection, "shipping");
|
| 808 |
-
$this->_addAddressToSelect($collection, "billing");
|
| 809 |
-
}
|
| 810 |
-
|
| 811 |
-
/**
|
| 812 |
-
* Add address to select.
|
| 813 |
-
* @param Varien_Data_Collection_Db $collection
|
| 814 |
-
* @param string $type
|
| 815 |
-
*/
|
| 816 |
-
private function _addAddressToSelect(Varien_Data_Collection_Db $collection, $type) {
|
| 817 |
-
if (!Mage::getStoreConfigFlag("contactlab_subscribers/global/export_" . $type . "_address")) {
|
| 818 |
-
return;
|
| 819 |
-
}
|
| 820 |
-
$collection->getSelect()->joinLeft(
|
| 821 |
-
array($type . '_addr' => $this->resource->getTableName('customer_entity_int')),
|
| 822 |
-
$type . '_addr.entity_id = e.entity_id and ' . $type . '_addr.attribute_id = '
|
| 823 |
-
. $this->helper->getAttributeId('customer', 'default_' . $type),
|
| 824 |
-
array('default_' . $type => 'value'));
|
| 825 |
-
|
| 826 |
-
// Fills array of types with attributes id array
|
| 827 |
-
$attributesAddress = $this->helper->getAttributesForEntityType('customer_address',
|
| 828 |
-
array_values($this->helper->getAddressesAttributesMap()));
|
| 829 |
-
foreach ($this->helper->fillBackendTypesFromArray($attributesAddress) as $backendType => $ids) {
|
| 830 |
-
$alias = 'ce' . $type . $backendType;
|
| 831 |
-
$w = $type . '_addr.value = ' . $alias . '.entity_id and length(' . $alias . '.value) > 0 and '
|
| 832 |
-
. $alias . '.attribute_id IN (' . implode(',', $ids) . ')';
|
| 833 |
-
$collection->getSelect()->joinLeft(
|
| 834 |
-
array(
|
| 835 |
-
$alias => $this->resource->getTableName('customer_address_entity_' . $backendType)),
|
| 836 |
-
$w, array($type . '_' . $backendType . '_value' => new Zend_Db_Expr('GROUP_CONCAT(DISTINCT CONCAT('
|
| 837 |
-
. $alias . ".attribute_id, '_', " .$alias. ".value) SEPARATOR '" . $this->limiter . "')")));
|
| 838 |
-
}
|
| 839 |
-
}
|
| 840 |
-
|
| 841 |
-
/**
|
| 842 |
-
* Remove deleted entity.
|
| 843 |
-
* @throws Exception
|
| 844 |
-
*/
|
| 845 |
-
private function _removeDeletedEntity() {
|
| 846 |
-
$toDelete = Mage::getModel('contactlab_commons/deleted')
|
| 847 |
-
->getCollection()
|
| 848 |
-
->addFieldToFilter('task_id', $this->getTask()->getTaskId());
|
| 849 |
-
|
| 850 |
-
$counter = 0;
|
| 851 |
-
$max = $toDelete->count();
|
| 852 |
-
|
| 853 |
-
Mage::helper("contactlab_commons")->logDebug($toDelete->getSelect()->assemble());
|
| 854 |
-
|
| 855 |
-
foreach ($toDelete as $item) {
|
| 856 |
-
$counter++;
|
| 857 |
-
$item->delete();
|
| 858 |
-
if ($counter % 500 == 0) {
|
| 859 |
-
Mage::helper("contactlab_commons")->logNotice(sprintf("Deleted %6s / %-6s", $counter, $max));
|
| 860 |
-
}
|
| 861 |
-
}
|
| 862 |
-
}
|
| 863 |
-
|
| 864 |
-
/**
|
| 865 |
-
* Load stores.
|
| 866 |
-
* @return array
|
| 867 |
-
*/
|
| 868 |
-
private function _loadStores() {
|
| 869 |
-
$rv = array();
|
| 870 |
-
$websiteTable = $this->resource->getTableName('core/website');
|
| 871 |
-
$storeGroupTable = $this->resource->getTableName('core/store_group');
|
| 872 |
-
|
| 873 |
-
/** @var Mage_Core_Model_Resource_Store_Collection $stores */
|
| 874 |
-
$stores = Mage::getModel('core/store')
|
| 875 |
-
->getCollection()->setLoadDefault(true);
|
| 876 |
-
$stores->addFieldToSelect('*')->getSelect()
|
| 877 |
-
->join(array('core_website' => $websiteTable),
|
| 878 |
-
'main_table.website_id = ' . 'core_website.website_id',
|
| 879 |
-
array('website_name' => 'core_website.name'))
|
| 880 |
-
->join(array('core_store_group' => $storeGroupTable),
|
| 881 |
-
'main_table.group_id = ' . 'core_store_group.group_id',
|
| 882 |
-
array('group_name' => 'core_store_group.name'));
|
| 883 |
-
/** @var $store Mage_Core_Model_Store */
|
| 884 |
-
foreach ($stores as $store) {
|
| 885 |
-
$storeId = $store->getData('store_id');
|
| 886 |
-
$rv[$storeId] = array(
|
| 887 |
-
'store_id' => $storeId,
|
| 888 |
-
'website_id' => $store->getData('website_id'),
|
| 889 |
-
'group_id' => $store->getData('group_id'),
|
| 890 |
-
'store_name' => $store->getData('mame'),
|
| 891 |
-
'website_name' => $store->getData('website_name'),
|
| 892 |
-
'group_name' => $store->getData('group_name'),
|
| 893 |
-
'lang' => $store->getConfig("general/locale/code"),
|
| 894 |
-
);
|
| 895 |
-
}
|
| 896 |
-
return $rv;
|
| 897 |
-
}
|
| 898 |
-
|
| 899 |
-
/**
|
| 900 |
-
* Do I have to export all contacts? Or only subscribed ones?
|
| 901 |
-
* @return bool
|
| 902 |
-
*/
|
| 903 |
-
private function _mustExportNotSubscribed() {
|
| 904 |
-
return Mage::getStoreConfigFlag("contactlab_subscribers/global/export_not_subscribed");
|
| 905 |
-
}
|
| 906 |
-
|
| 907 |
-
/**
|
| 908 |
-
* Do I have to reset export dates before export?
|
| 909 |
-
* @return bool
|
| 910 |
-
*/
|
| 911 |
-
/*
|
| 912 |
-
private function _mustResetExportDates() {
|
| 913 |
-
return Mage::getStoreConfigFlag("contactlab_subscribers/global/reset_export_dates_before_next_export");
|
| 914 |
-
}
|
| 915 |
-
*/
|
| 916 |
-
|
| 917 |
-
private function _mustResetExportDates() {
|
| 918 |
-
return Mage::getStoreConfig("contactlab_subscribers/global/reset_export_dates_before_next_export");
|
| 919 |
-
}
|
| 920 |
-
|
| 921 |
-
/**
|
| 922 |
-
* Reset reset export flg.
|
| 923 |
-
*/
|
| 924 |
-
private function _resetMustResetExportDatesFlag() {
|
| 925 |
-
Mage::helper("contactlab_commons")->logDebug("Reset reset_export_dates_before_next_export flag");
|
| 926 |
-
Mage::getConfig()
|
| 927 |
-
->saveConfig('contactlab_subscribers/global/reset_export_dates_before_next_export', '0');
|
| 928 |
-
Mage::getConfig()->reinit();
|
| 929 |
-
Mage::app()->reinitStores();
|
| 930 |
-
}
|
| 931 |
-
|
| 932 |
-
private function _resetExportDates() {
|
| 933 |
-
$tableName = $this->resource->getTableName('contactlab_subscribers/uk');
|
| 934 |
-
$this->_query("update $tableName set is_exported = 0;");
|
| 935 |
-
}
|
| 936 |
-
|
| 937 |
-
/**
|
| 938 |
-
* Run custom query.
|
| 939 |
-
* @param $sql
|
| 940 |
-
* @return Zend_Db_Statement_Interface
|
| 941 |
-
*/
|
| 942 |
-
private function _query($sql) {
|
| 943 |
-
$write = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 944 |
-
return $write->query($sql);
|
| 945 |
-
}
|
| 946 |
-
|
| 947 |
-
|
| 948 |
-
/** Get subscription flag name. */
|
| 949 |
-
public function getSubscribedFlagName() {
|
| 950 |
-
return Mage::getStoreConfig("contactlab_subscribers/global/subscribed_flag_name");
|
| 951 |
-
}
|
| 952 |
-
|
| 953 |
-
/**
|
| 954 |
-
* Manage if include CLS tag and his value.
|
| 955 |
-
* Fill the persistence table.
|
| 956 |
-
* @param array $toFill
|
| 957 |
-
* @param Varien_Object $item
|
| 958 |
-
*/
|
| 959 |
-
private function _manageCustomerClsFlag(array &$toFill, Varien_Object $item) {
|
| 960 |
-
/* 1 = Subscribed
|
| 961 |
-
0 = Not subscribed
|
| 962 |
-
-1 = Unsubscribed
|
| 963 |
-
*/
|
| 964 |
-
if ($this->_manageClsFlag($toFill, $item)) {
|
| 965 |
-
if ($this->ukQuery != '') {
|
| 966 |
-
$this->ukQuery .= ', ';
|
| 967 |
-
}
|
| 968 |
-
$this->ukQuery .= $item->getData('uk');
|
| 969 |
-
}
|
| 970 |
-
}
|
| 971 |
-
|
| 972 |
-
/**
|
| 973 |
-
* Manage if include CLS tag and his value.
|
| 974 |
-
* Fill the persistence table.
|
| 975 |
-
* @param array $toFill
|
| 976 |
-
* @param Varien_Object $item
|
| 977 |
-
*/
|
| 978 |
-
private function _manageNewsletterClsFlag(array &$toFill, Varien_Object $item) {
|
| 979 |
-
if ($this->_manageClsFlag($toFill, $item, true)) {
|
| 980 |
-
if ($this->ukQuery != '') {
|
| 981 |
-
$this->ukQuery .= ', ';
|
| 982 |
-
}
|
| 983 |
-
$this->ukQuery .= $item->getData('uk');
|
| 984 |
-
}
|
| 985 |
-
}
|
| 986 |
-
|
| 987 |
-
/**
|
| 988 |
-
* Manage if include CLS tag and his value.
|
| 989 |
-
* Fill the persistence table.
|
| 990 |
-
* @param array $toFill
|
| 991 |
-
* @param Varien_Object $item
|
| 992 |
-
* @param bool $force
|
| 993 |
-
* @return bool
|
| 994 |
-
*/
|
| 995 |
-
private function _manageClsFlag(array &$toFill, Varien_Object $item, $force = false) {
|
| 996 |
-
// If processing record has (first) ExportDate, return.
|
| 997 |
-
if ($item->hasData('is_exported') && $item->getData('is_exported') == 1 && !$force) {
|
| 998 |
-
return false;
|
| 999 |
-
}
|
| 1000 |
-
$toFill[$this->getSubscribedFlagName()]
|
| 1001 |
-
= $item->getData('subscriber_status') == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED
|
| 1002 |
-
? 1 : 0;
|
| 1003 |
-
return true;
|
| 1004 |
-
}
|
| 1005 |
-
|
| 1006 |
-
/**
|
| 1007 |
-
* Is enabled.
|
| 1008 |
-
* @return bool
|
| 1009 |
-
*/
|
| 1010 |
-
protected function isEnabled() {
|
| 1011 |
-
return Mage::helper("contactlab_subscribers")->isEnabled($this->getTask());
|
| 1012 |
-
}
|
| 1013 |
-
|
| 1014 |
-
/**
|
| 1015 |
-
* Get file name.
|
| 1016 |
-
* @return string
|
| 1017 |
-
*/
|
| 1018 |
-
/*
|
| 1019 |
-
protected function getFileName() {
|
| 1020 |
-
return Mage::getStoreConfig("contactlab_subscribers/global/export_filename");
|
| 1021 |
-
}
|
| 1022 |
-
*/
|
| 1023 |
-
protected function getFileName() {
|
| 1024 |
-
return Mage::getStoreConfig("contactlab_subscribers/global/export_filename");
|
| 1025 |
-
}
|
| 1026 |
-
|
| 1027 |
-
/**
|
| 1028 |
-
* Called after the export.
|
| 1029 |
-
*/
|
| 1030 |
-
public function afterExport() {
|
| 1031 |
-
$this->helper->saveLastExportDatetime($this->getTask());
|
| 1032 |
-
$this->_removeDeletedEntity();
|
| 1033 |
-
if ($this->_mustResetExportDates()) {
|
| 1034 |
-
$this->_resetMustResetExportDatesFlag();
|
| 1035 |
-
}
|
| 1036 |
-
}
|
| 1037 |
-
|
| 1038 |
-
/**
|
| 1039 |
-
* Set uk is exported.
|
| 1040 |
-
*/
|
| 1041 |
-
private function _setUkIsExported()
|
| 1042 |
-
{
|
| 1043 |
-
if ($this->ukQuery != "") {
|
| 1044 |
-
$tableName = $this->resource->getTableName('contactlab_subscribers/uk');
|
| 1045 |
-
$this->ukQuery = "update $tableName set is_exported = 1 where entity_id in ({$this->ukQuery})";
|
| 1046 |
-
$this->_query($this->ukQuery);
|
| 1047 |
-
$this->ukQuery = "";
|
| 1048 |
-
}
|
| 1049 |
-
}
|
| 1050 |
-
|
| 1051 |
-
/**
|
| 1052 |
-
* Add subscriber fields.
|
| 1053 |
-
* @param Varien_Data_Collection_Db $collection
|
| 1054 |
-
* @param string $table Table name for join
|
| 1055 |
-
* @return Varien_Db_Select
|
| 1056 |
-
*/
|
| 1057 |
-
private function _addSubscriberFields(Varien_Data_Collection_Db $collection, $table = 'newsletter_subscriber')
|
| 1058 |
-
{
|
| 1059 |
-
return $collection->getSelect()->joinLeft(
|
| 1060 |
-
array('fields' => $this->resource->getTableName('contactlab_subscribers/newsletter_subscriber_fields')),
|
| 1061 |
-
"fields.subscriber_id = $table.subscriber_id"
|
| 1062 |
-
);
|
| 1063 |
-
}
|
| 1064 |
-
|
| 1065 |
-
/**
|
| 1066 |
-
* Do include this field into xml element?
|
| 1067 |
-
* @param String $attributeCode
|
| 1068 |
-
* @return bool
|
| 1069 |
-
*/
|
| 1070 |
-
private function _doManageAddressAttribute($attributeCode)
|
| 1071 |
-
{
|
| 1072 |
-
if (preg_match('|^billing_|', $attributeCode)) {
|
| 1073 |
-
return $this->_mustExportAddress('billing');
|
| 1074 |
-
} else if (preg_match('|^shipping|', $attributeCode)) {
|
| 1075 |
-
return $this->_mustExportAddress('shipping');
|
| 1076 |
-
}
|
| 1077 |
-
return true;
|
| 1078 |
-
}
|
| 1079 |
-
|
| 1080 |
-
/**
|
| 1081 |
-
* Add address fields.
|
| 1082 |
-
* @param array $preFilled
|
| 1083 |
-
*/
|
| 1084 |
-
private function _addAddressFields(array &$preFilled)
|
| 1085 |
-
{
|
| 1086 |
-
foreach (array('billing', 'shipping') as $addressType) {
|
| 1087 |
-
if ($this->_mustExportAddress($addressType)) {
|
| 1088 |
-
foreach ($this->fAddressAttributes as $k) {
|
| 1089 |
-
$preFilled[$addressType . '_' . $k] = '';
|
| 1090 |
-
}
|
| 1091 |
-
}
|
| 1092 |
-
}
|
| 1093 |
-
}
|
| 1094 |
-
|
| 1095 |
-
/**
|
| 1096 |
-
* @param Varien_Data_Collection_Db $collection
|
| 1097 |
-
* @return Varien_Db_Select
|
| 1098 |
-
*/
|
| 1099 |
-
private function _addCustomerGroupToSelect(Varien_Data_Collection_Db $collection)
|
| 1100 |
-
{
|
| 1101 |
-
return $collection->getSelect()->joinInner(
|
| 1102 |
-
array(
|
| 1103 |
-
'customer_group' => $this->resource->getTableName('customer/customer_group')
|
| 1104 |
-
),
|
| 1105 |
-
"customer_group.customer_group_id = e.group_id",
|
| 1106 |
-
array(
|
| 1107 |
-
'customer_group_name' => 'customer_group_code',
|
| 1108 |
-
'customer_group_id' => 'customer_group_id'
|
| 1109 |
-
)
|
| 1110 |
-
);
|
| 1111 |
-
}
|
| 1112 |
-
|
| 1113 |
-
/**
|
| 1114 |
-
* Use destination field name for cstm fields
|
| 1115 |
-
* @param $k
|
| 1116 |
-
* @return mixed
|
| 1117 |
-
*/
|
| 1118 |
-
private function getOutputTagName($k) {
|
| 1119 |
-
if (isset($this->fAttributesMap[$k]) && strpos($k, 'cstm') === 0) {
|
| 1120 |
-
return $this->fAttributesMap[$k];
|
| 1121 |
-
}
|
| 1122 |
-
return $k;
|
| 1123 |
-
}
|
| 1124 |
-
|
| 1125 |
-
/**
|
| 1126 |
-
* Custom rispetto alla versione originale del modulo
|
| 1127 |
-
*/
|
| 1128 |
-
protected function customizeInfoCustomer(array &$toFill, Varien_Object $customer){
|
| 1129 |
-
$tCustInfo = Mage::getModel('contactlab_subscribers/exporter_subscribers_infoTransporter_customer');
|
| 1130 |
-
$tCustInfo->setInfo($toFill);
|
| 1131 |
-
$tCustInfo->setCustomer($customer);
|
| 1132 |
-
$tCustInfo->setIsMod(false);
|
| 1133 |
-
|
| 1134 |
-
Mage::dispatchEvent("contactlab_export_subscribers_customer_info",array(
|
| 1135 |
-
'customer_info' => $tCustInfo
|
| 1136 |
-
));
|
| 1137 |
-
|
| 1138 |
-
if ($tCustInfo->isMod()){
|
| 1139 |
-
$toFill = $tCustInfo->getInfo();
|
| 1140 |
-
}
|
| 1141 |
-
}
|
| 1142 |
-
|
| 1143 |
-
|
| 1144 |
-
/**
|
| 1145 |
-
* Custom rispetto alla versione originale del modulo
|
| 1146 |
-
*/
|
| 1147 |
-
protected function customizeInfoDeleted(array &$toFill, Varien_Object $deleted){
|
| 1148 |
-
$tDeletedInfo = Mage::getModel('contactlab_subscribers/exporter_subscribers_infoTransporter_deleted');
|
| 1149 |
-
$tDeletedInfo->setInfo($toFill);
|
| 1150 |
-
$tDeletedInfo->setDeleted($deleted);
|
| 1151 |
-
$tDeletedInfo->setIsMod(false);
|
| 1152 |
-
|
| 1153 |
-
Mage::dispatchEvent("contactlab_export_subscribers_deleted_info",array(
|
| 1154 |
-
'deleted_info' => $tDeletedInfo
|
| 1155 |
-
));
|
| 1156 |
-
|
| 1157 |
-
if ($tDeletedInfo->isMod()){
|
| 1158 |
-
$toFill = $tDeletedInfo->getInfo();
|
| 1159 |
-
}
|
| 1160 |
-
}
|
| 1161 |
-
|
| 1162 |
-
|
| 1163 |
-
/**
|
| 1164 |
-
* Custom rispetto alla versione originale del modulo
|
| 1165 |
-
*/
|
| 1166 |
-
protected function customizeInfoSubscriber(array &$toFill, Varien_Object $subscriber){
|
| 1167 |
-
$tSubscriberInfo = Mage::getModel('contactlab_subscribers/exporter_subscribers_infoTransporter_subscriber');
|
| 1168 |
-
$tSubscriberInfo->setInfo($toFill);
|
| 1169 |
-
$tSubscriberInfo->setSubscriber($subscriber);
|
| 1170 |
-
$tSubscriberInfo->setIsMod(false);
|
| 1171 |
-
|
| 1172 |
-
Mage::dispatchEvent("contactlab_export_subscribers_subscriber_info",array(
|
| 1173 |
-
'subscriber_info' => $tSubscriberInfo
|
| 1174 |
-
));
|
| 1175 |
-
|
| 1176 |
-
if ($tSubscriberInfo->isMod()){
|
| 1177 |
-
$toFill = $tSubscriberInfo->getInfo();
|
| 1178 |
-
}
|
| 1179 |
-
}
|
| 1180 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Contactlab/Subscribers/Model/Soap/SetSubscriptionStatus.php
CHANGED
|
@@ -31,8 +31,7 @@ class Contactlab_Subscribers_Model_Soap_SetSubscriptionStatus extends Contactlab
|
|
| 31 |
$modifySubscriberSubscriptionStatus->token = $this->getAuthToken();
|
| 32 |
$modifySubscriberSubscriptionStatus->webFormCode = $this->getConfig("contactlab_subscribers/global/web_form_code");
|
| 33 |
$modifySubscriberSubscriptionStatus->subscriberIdentifier = $subscriber->identifier;
|
| 34 |
-
$modifySubscriberSubscriptionStatus->isSubscribed = $this->getSubscriberStatus() ? 1 : 0;
|
| 35 |
-
|
| 36 |
$rv = $this->getClient()->modifySubscriberSubscriptionStatus($modifySubscriberSubscriptionStatus);
|
| 37 |
|
| 38 |
return $rv;
|
| 31 |
$modifySubscriberSubscriptionStatus->token = $this->getAuthToken();
|
| 32 |
$modifySubscriberSubscriptionStatus->webFormCode = $this->getConfig("contactlab_subscribers/global/web_form_code");
|
| 33 |
$modifySubscriberSubscriptionStatus->subscriberIdentifier = $subscriber->identifier;
|
| 34 |
+
$modifySubscriberSubscriptionStatus->isSubscribed = $this->getSubscriberStatus() ? 1 : 0;
|
|
|
|
| 35 |
$rv = $this->getClient()->modifySubscriberSubscriptionStatus($modifySubscriberSubscriptionStatus);
|
| 36 |
|
| 37 |
return $rv;
|
app/code/community/Contactlab/Subscribers/etc/config.xml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Contactlab_Subscribers>
|
| 5 |
-
<version>1.2.
|
| 6 |
<description>Subscriber sync Magento/ContactLab and ContactLab/Magento.</description>
|
| 7 |
</Contactlab_Subscribers>
|
| 8 |
</modules>
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Contactlab_Subscribers>
|
| 5 |
+
<version>1.2.2</version>
|
| 6 |
<description>Subscriber sync Magento/ContactLab and ContactLab/Magento.</description>
|
| 7 |
</Contactlab_Subscribers>
|
| 8 |
</modules>
|
app/code/community/Contactlab/Subscribers/sql/contactlab_subscribers_setup/{upgrade-0.8.8-1.2.0.php → mysql4-upgrade-1.2.0-1.2.2.php}
RENAMED
|
File without changes
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Cart.php
CHANGED
|
@@ -81,7 +81,9 @@ class Contactlab_Template_Model_Newsletter_Processor_Cart extends Contactlab_Tem
|
|
| 81 |
* @param array $item
|
| 82 |
* @return string
|
| 83 |
*/
|
| 84 |
-
public function getPriceFor(Mage_Catalog_Model_Product $product, array $item)
|
| 85 |
-
|
|
|
|
|
|
|
| 86 |
}
|
| 87 |
}
|
| 81 |
* @param array $item
|
| 82 |
* @return string
|
| 83 |
*/
|
| 84 |
+
public function getPriceFor(Mage_Catalog_Model_Product $product, array $item)
|
| 85 |
+
{
|
| 86 |
+
$store = Mage::getModel('core/store')->load($product->getStoreId());
|
| 87 |
+
return $store->formatPrice(floatval($item[3]));
|
| 88 |
}
|
| 89 |
}
|
app/code/community/Contactlab/Template/Model/Newsletter/Processor/Filter/Cart/Products.php
CHANGED
|
@@ -30,8 +30,8 @@ class Contactlab_Template_Model_Newsletter_Processor_Filter_Cart_Products
|
|
| 30 |
$collection->getSelect()->join(
|
| 31 |
array('cart_items' => $cartItem),
|
| 32 |
'cart_items.quote_id = cart.entity_id and cart_items.parent_item_id is null',
|
| 33 |
-
array('product_ids' => 'GROUP_CONCAT(concat(product_id, \'|\', qty, \'|\', item_id, \'|\',
|
| 34 |
-
. ' ORDER BY
|
| 35 |
|
| 36 |
$collection->getSelect()->group("$mainTable.$field");
|
| 37 |
|
| 30 |
$collection->getSelect()->join(
|
| 31 |
array('cart_items' => $cartItem),
|
| 32 |
'cart_items.quote_id = cart.entity_id and cart_items.parent_item_id is null',
|
| 33 |
+
array('product_ids' => 'GROUP_CONCAT(concat(product_id, \'|\', qty, \'|\', item_id, \'|\', row_total_incl_tax, \'|\', quote_currency_code)'
|
| 34 |
+
. ' ORDER BY row_total_incl_tax desc SEPARATOR \',\')'));
|
| 35 |
|
| 36 |
$collection->getSelect()->group("$mainTable.$field");
|
| 37 |
|
app/code/community/Contactlab/Template/Model/Newsletter/Template.php
CHANGED
|
@@ -225,8 +225,8 @@ class Contactlab_Template_Model_Newsletter_Template extends Mage_Newsletter_Mode
|
|
| 225 |
* @param string[] $item
|
| 226 |
* @return string
|
| 227 |
*/
|
| 228 |
-
public function getPriceFor(Mage_Catalog_Model_Product $product, array $item, $storeId) {
|
| 229 |
-
|
| 230 |
}
|
| 231 |
|
| 232 |
/**
|
| 225 |
* @param string[] $item
|
| 226 |
* @return string
|
| 227 |
*/
|
| 228 |
+
public function getPriceFor(Mage_Catalog_Model_Product $product, array $item, $storeId) {
|
| 229 |
+
return $this->getTemplateQueueProcessor($storeId)->getPriceFor($product->setStoreId($storeId), $item);
|
| 230 |
}
|
| 231 |
|
| 232 |
/**
|
app/design/frontend/base/default/layout/contactlab/layout.xml
DELETED
|
@@ -1,10 +0,0 @@
|
|
| 1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
-
<layout version="0.1.0">
|
| 3 |
-
<catalog_product_view>
|
| 4 |
-
<reference name="head">
|
| 5 |
-
<block type="core/text" name="your_external_file">
|
| 6 |
-
<action method="setText"><text><![CDATA[<script>console.log("ContactHub EventTracker loaded.");</script>]]></text></action>
|
| 7 |
-
</block>
|
| 8 |
-
</reference>
|
| 9 |
-
</catalog_product_view>
|
| 10 |
-
</layout>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Contactlab_Modules</name>
|
| 4 |
-
<version>2.5.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="https://opensource.org/licenses/osl-3.0.php">OSL v. 3.0</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -25,11 +25,13 @@ The plugin makes it easier to manage:</p>
|
|
| 25 |
</ul>
|
| 26 |

|
| 27 |
<p>ContactLab Connect for Magento has been developed in collaboration with WebFormat</p></description>
|
| 28 |
-
<notes>-
|
|
|
|
|
|
|
| 29 |
<authors><author><name>ContactLab</name><user>ContactLab</user><email>magento@contactlab.com</email></author></authors>
|
| 30 |
-
<date>2017-
|
| 31 |
-
<time>
|
| 32 |
-
<contents><target name="magecommunity"><dir name="Contactlab"><dir name="Commons"><dir name="Block"><dir name="Adminhtml"><file name="Backend.php" hash="208c57c38069bb462ea48b56c753bd83"/><file name="ConfigurationCheck.php" hash="38a0b3ef316c0b153aaccbc0928b7a20"/><dir name="Email"><file name="Template.php" hash="2503b51a4988bb892df330f2de75b92e"/></dir><dir name="Events"><file name="Grid.php" hash="ada058c87141c94b6584f2206957941d"/><dir name="Renderer"><file name="Alert.php" hash="80c8911038197b7de34c75d87d453b82"/><file name="Status.php" hash="01038685dbcb692daae047aa45b336d8"/></dir></dir><file name="Events.php" hash="3230a203addb6dc02f5eb995ddd66f23"/><dir name="Logs"><file name="Grid.php" hash="1a1a51b5791d2df97890553d536260e4"/><dir name="Renderer"><file name="Datetime.php" hash="f7f23deac1c9871674ecde594ba742b8"/><file name="Default.php" hash="6f81d70e10fdaf42035a53323f82bb40"/><file name="Level.php" hash="a2b58d0549cacad4b83ca0ae52fd978e"/></dir></dir><file name="Logs.php" hash="f24ba62587734880d7046d4ed01bbfae"/><file name="ReleaseNotes.php" hash="5108bca563cc734f44ed05c609c8738e"/><dir name="Tasks"><file name="Grid.php" hash="a129b2010f71e024d4dbbfd34fb91a71"/><file name="Js.php" hash="308756573ad11f22f1fc634727aaa297"/><dir name="Renderer"><file name="Actions.php" hash="4f1d165274caa1785b295e7e44ca0e22"/><file name="Model.php" hash="b129b6489c9ba09a20204a52cec78dd0"/><file name="Store.php" hash="3f12cf3aa32981ce9a5a4043a88962fd"/><file name="Task.php" hash="afcc58d833d4ac7c12d6409d8b075154"/></dir><file name="Status.php" hash="55dfcd7cbcaa54bc142b6d403481d170"/></dir><file name="Tasks.php" hash="5f0a04ff580ee2e0f6a919d121baa173"/><file name="Test.php" hash="a032f1ca4929077d737f8b34f82830d8"/><file name="Version.php" hash="dd64372d7bf8d9024e00f2ee213c126c"/><dir name="Widget"><file name="Button.php" hash="ca124e5a2dbaf35d2eb454a268d1ad9b"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="34786d704ec107433ba368e734cbf489"/><file name="Tasks.php" hash="2bdaacf98e693d795f965e6c07511e22"/></dir><dir name="Model"><file name="AbstractImportExport.php" hash="6abe068d2db8b667ee9064de7152540e"/><file name="Cron.php" hash="159ffc14f91413b35bc6085c0e2a8e86"/><file name="Deleted.php" hash="a57a201093d020ee85181c4600a7c0d8"/><dir name="Exporter"><file name="Abstract.php" hash="a4ff7629df2cc6326c97e991876a648a"/></dir><dir name="Importer"><file name="Abstract.php" hash="b9dac66ceee0e8d2b5385a6146896964"/></dir><file name="Log.php" hash="46bb074eaf00740124c76b88a91feb03"/><dir name="Resource"><dir name="Deleted"><file name="Collection.php" hash="ed85c763c9a81cb7137a9ec474f5e584"/></dir><file name="Deleted.php" hash="a1ae6a673ffe458414a866f4eb0c0d67"/><dir name="Log"><file name="Collection.php" hash="8bd275a0a40912ab2e71b39d6c37a9e2"/></dir><file name="Log.php" hash="449af875b530177e7203d2d40560237f"/><dir name="Task"><file name="Collection.php" hash="28142a650451964b7340fba61a638771"/><dir name="Event"><file name="Collection.php" hash="27dbdf551a8947950d4794fb6b540ded"/></dir><file name="Event.php" hash="5faa0f50bc41214b65bd2a25438b4446"/></dir><file name="Task.php" hash="f7ebd23a179e563b23a9c68928c10ed0"/></dir><dir name="Soap"><file name="AbstractCall.php" hash="18ec6d30d5a23b8e4cc50913a7aecd56"/><file name="GetSubscriberDataExchangeStatus.php" hash="c14f250f73d38968d257b3af0f770ff7"/></dir><dir name="Ssh"><dir name="Crypt"><file name="AES.php" hash="824d082091d59b96fd5a74cef656f2f3"/><file name="Blowfish.php" hash="abd7684db5565dce87b214952b50ed9b"/><file name="DES.php" hash="dff9541235b415780ff167b3ed87ac51"/><file name="Hash.php" hash="0a737a969906cbb12f33d41a678ec9ee"/><file name="RC4.php" hash="54d20f521a8c030a2f32fecbb9fa33b9"/><file name="RSA.php" hash="8e81a0e6c764f5069d5d9ccd825fd064"/><file name="Random.php" hash="25402099262c9b3bd9e2ca9811bc8bc8"/><file name="Rijndael.php" hash="4305e82b0a611c07c0bfe99ccdeb9951"/><file name="TripleDES.php" hash="d4b18ac4603c5b0a4c3a7e2b98ba2f52"/><file name="Twofish.php" hash="f9df605ad32f18b447c2fdf1701563bc"/></dir><dir name="File"><file name="ANSI.php" hash="42228165075cb2f138c6d4b9ddf334de"/><file name="ASN1.php" hash="3bd220eb6b134a5a56cb311737276dd1"/><file name="X509.php" hash="39b4f6b23f554485a7607382078412e2"/></dir><dir name="Math"><file name="BigInteger.php" hash="22d91d824950758858e43d58d9c0fc3a"/></dir><dir name="Net"><file name="SCP.php" hash="9d455f260731d1e544ab1d3303785188"/><dir name="SFTP"><file name="Stream.php" hash="116f7d549a19071fd301ed677a3dd4c7"/></dir><file name="SFTP.php" hash="7a002a4a8562683108aa0748095b2856"/><file name="SSH1.php" hash="f8a733d63b37063f1e84ed2f557db076"/><file name="SSH2.php" hash="e2875fa03af2498afd35772521933a7c"/></dir><file name="openssl.cnf" hash="0f1015cb8894127a94a05afa7cc23760"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Connection"><file name="Type.php" hash="335493d8aeb1016a98d9716469ffb1e7"/></dir></dir></dir></dir><dir name="Task"><file name="Abstract.php" hash="2efaf1050a1a2607682c4da92ac93bd3"/><file name="Event.php" hash="2f29caaf7f904894e327d5a2701d79c7"/><file name="Interface.php" hash="9f491f0c940f405fca8ddc18a507deae"/><file name="TestRunner.php" hash="f4f22da5b45a585f8f91540f27dff65b"/></dir><file name="Task.php" hash="fd29e79822219c1b1422dd074e2868c9"/></dir><dir name="Test"><dir name="Helper"><file name="Data.php" hash="7a7cf6f101d563ece6a669fda96bcc49"/></dir><dir name="resources"><file name="composer.json" hash="fab8c2bb9f09a1f10da3725dd8e51d48"/><file name="contactlab_db.sql.gz" hash="c1e2185f60a7b81fb80fbe0cb92f12bb"/><file name="local.xml" hash="315270d1f7d0a42ed4a5a756fc97fda7"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Commons"><file name="ConfigurationCheckController.php" hash="2c801d4f90682d530c64ce90c13ad431"/><file name="EventsController.php" hash="dbe781ee96287eb5af21723cd212bf18"/><file name="LogsController.php" hash="54ec270e5fa8ce90222e0fa7627771f1"/><file name="ReleaseNotesController.php" hash="15becd0b614d49f53f10bd45bb53fd73"/><file name="TasksController.php" hash="9740ba3003e3748ceb21856aa18e21cf"/><file name="TestController.php" hash="0cfb06b753d20de75cc06187a7d06e63"/></dir></dir></dir></dir><dir name="docs"><dir name="example-config"><file name="contactlab-local.xml" hash="93f33812b0b1cdb362340c910340707b"/><file name="contactlab.xml" hash="57902122d66b5d7bb7330d81911e1a6e"/></dir><dir name="release-notes"><file name="0.8.10-20150116.html" hash="54b37d0590df5f093d9334b2f73cbac4"/><file name="0.8.12.html" hash="26043d9aa4382398177b5b2295c4f067"/><file name="0.8.13.html" hash="e9bf17af343bfd0931eed6c2f6f0273e"/><file name="0.8.14.html" hash="2d87675e13144be97952e36a757f2811"/><file name="0.8.15.html" hash="41375887fbde15eb7577e0bb4bada0e2"/><file name="0.8.16.html" hash="1c1b11a533bfa26187892946bfd7f339"/><file name="0.8.17.html" hash="277597117d81d75a3cab78ba2fe6ad23"/><file name="0.9.0.html" hash="58b3590294904915d3e12e9caf697d2e"/><file name="1.0.0.html" hash="f48f9b999929433e2aeedc263f2571bf"/></dir></dir><dir name="etc"><file name="Contactlab_Commons.xml" hash="bfd174f2535b432589bff0f4fc81ecec"/><file name="adminhtml.xml" hash="460f3ff0ebf20c55d0cfa94429481402"/><file name="config.xml" hash="573464276057d301ddebc3436a102453"/><file name="system.xml" hash="ad0e508dfb1d77131bc69e796c16f024"/></dir><dir name="sql"><dir name="contactlab_commons_setup"><file name="install-0.8.0.php" hash="46661857fcf01cbe2cde396924f47f61"/><file name="mysql4-install-0.8.0.php" hash="83032fadee6577e80844079adc580c97"/><file name="upgrade-0.8.0-0.8.1.php" hash="d963ac18fd5150a697280c445715ef3d"/><file name="upgrade-0.8.1-0.8.2.php" hash="d2dc6cb4e61becd440e0aa1ef86741ab"/><file name="upgrade-0.8.13-0.8.14.php" hash="f02787989dabc30d3eddfa39e8c96d03"/><file name="upgrade-0.8.2-0.8.3.php" hash="fbc0488645da03c2cc86305a348ee067"/><file name="upgrade-0.8.3-0.8.4.php" hash="9caf4bed86e90f29ef7abaad0c172cd2"/><file name="upgrade-1.0.0-1.0.1.php" hash="22bbf46398b73475ef1e367a9377c834"/></dir></dir></dir><dir name="Subscribers"><dir name="Block"><dir name="Adminhtml"><file name="Export.php" hash="dbbc2d51a507bf3a4b7aaaf006b2e9c4"/></dir><dir name="Newsletter"><dir name="Subscribers"><file name="Modify.php" hash="9011a378b053f6363b38de63e448da82"/><file name="Subscribe.php" hash="32873e816417af84e88016af6b36a2ba"/><file name="Update.php" hash="563e0dfa5d463d763f21356f2438aa38"/></dir></dir></dir><dir name="Helper"><file name="Checks.php" hash="999b92aac7be891bc67e24f907870caa"/><file name="Data.php" hash="70d6a682392e64be00c6a71238092500"/><file name="Exporter.php" hash="12043ac3f7ae14bd7084b740cca51a7a"/><file name="Uk.php" hash="6d50c16ef3ce7144c6e6587a96880cab"/></dir><dir name="Model"><dir name="Checks"><file name="AbstractCheck.php" hash="afdc7117177bdccc70da33f3691f0ae2"/><file name="CheckInterface.php" hash="94e1743d9de7d356c1fd786b6e54a162"/><file name="ContactlabAuthApiKeyCheck.php" hash="053fc17bf8b98f0bf627640be869a2c7"/><file name="FindDuplicatedCustomersCheck.php" hash="abe297974dc05fcd153de9c0fbd488bf"/><file name="FindInvalidCustomersCheck.php" hash="757d9ba4e1960e8d11bd269523841a9c"/><file name="RewritesCheck.php" hash="1ec4b03fd4b9033374ff68498a63a973"/><file name="WsdlCheck.php" hash="0d5c9946ae3fc26014aabe393610614f"/></dir><file name="Cron.php" hash="ff998d290ff804b490ac64acfb44917f"/><file name="EmailExport.php" hash="b3ed1b090b825a8e53139eff9e107944"/><dir name="Exporter"><file name="Copy of Subscribers.php" hash="904368350d3adfeb63c711c0da42a7ce"/><dir name="Subscribers"><dir name="InfoTransporter"><file name="Abstract.php" hash="c308d4728f88d9adf2e8cc1ad738f25b"/><file name="Customer.php" hash="31525219d45a3b57021e53e94a747599"/><file name="Deleted.php" hash="81c35ae7dc9079e6066a6daceff6fb96"/><file name="Subscriber.php" hash="fe7d8919967b4eca845377e43bf10292"/></dir><dir name="MapTransporter"><file name="Abstract.php" hash="33dd82745d6d5278165dbd015eea754b"/><file name="Address.php" hash="32b7874a1923f98befd2bb53e0ee6547"/><file name="Attribute.php" hash="1c88e00280f50a0b649145219dc908a3"/></dir></dir><file name="Subscribers.php" hash="658a6674332f2f6b9915e2b0ffb8ab37"/></dir><file name="Fields.php" hash="1647ad72d9ffd01507ff2e1905d06840"/><dir name="Importer"><file name="Subscribers.php" hash="0c087db3b7461e704c7b0190abb982bc"/></dir><dir name="Newsletter"><file name="Subscriber.php" hash="aeffddf37091ff4a231d7845b30925c8"/><dir name="Subscribers"><file name="Observer.php" hash="b53c359c47de8695bb8f5187b765e547"/></dir></dir><dir name="Observer"><file name="Fields.php" hash="1914da6670e6e036090124376a63da38"/><file name="Uk.php" hash="0deac2259e97a2ef1a72d2b8a2217bc2"/></dir><file name="Observer.php" hash="ec02dd05f20c942c3b677deb74c31599"/><dir name="Resource"><dir name="EmailExport"><file name="Collection.php" hash="8f15643741b8dd7a4be2a6d1fc57b2cf"/></dir><file name="EmailExport.php" hash="d042bdf71ade2d80100fc39b96315f39"/><dir name="Fields"><file name="Collection.php" hash="b9c7ef78e14d06a803b78731283ec3ba"/></dir><file name="Fields.php" hash="17cc1061442f3124c0483e21c6cb60cf"/><dir name="Newsletter"><file name="Subscriber.php" hash="10c1cc4516fc0644655c01225d43b022"/></dir><dir name="Stats"><file name="Collection.php" hash="fa92b14e6d466d517d5390840268ff6e"/></dir><file name="Stats.php" hash="3b8e15132397711baf499c0fb654ab17"/><dir name="Uk"><file name="Collection.php" hash="660d44a3a3fbce7b7f30b2aa5cb97381"/></dir><file name="Uk.php" hash="673867d3e06ca928bb544c96536b9103"/></dir><dir name="Soap"><file name="AbstractSubscriberCall.php" hash="e5a6854a6abe1e2c7c1947c02f6742fb"/><file name="GetSubscriptionStatus.php" hash="4e3f2f2034f56a82b3f29492082c887c"/><file name="SetSubscriptionStatus.php" hash="31038e448df2644f6db5a70491a2ef93"/><file name="StartSubscriberDataExchangeCall.php" hash="ed9ea900676fb00e12ff58c19e0ef1c4"/><file name="SubscriberNotFoundException.php" hash="7b34788b3e71febcafe5d17f83192b54"/></dir><file name="Stats.php" hash="288b3b4312d0bf366caf6e1e6c913a44"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Export"><file name="CheckUkPolicy.php" hash="4c52ee5463ff95d2a30714a24c2e521a"/><file name="Policy.php" hash="67e0a791095847cb89cb2ce311e4865f"/></dir></dir></dir></dir><dir name="Task"><file name="CalcStatsRunner.php" hash="eb0f152c42b2317b90ee00d27f947431"/><file name="ClearStatsRunner.php" hash="274ed827c0af4b888f9470fbf11ff86b"/><file name="ExportSubscribersRunner.php" hash="cd95a707bb542b08edf9e94fc5e153e6"/><file name="ImportSubscribersRunner.php" hash="496745ed30b1f274e543a5be9015078e"/><file name="StartSubscriberDataExchangeRunner.php" hash="97df2b3a6347be0a8a3d6f2c1ff78ad5"/><file name="TruncateUkRunner.php" hash="b8a48277c93f25f8d6a4ea42af437ff1"/><file name="UpdateSubscriberStatusRunner.php" hash="c13756209e73667f443d63cd8e4af691"/><file name="UpdateUkRunner.php" hash="31d73e9569367927286de0581d2285fc"/></dir><file name="Uk.php" hash="646eb6fc1af9b5ab601a7eed25a22050"/></dir><dir name="Test"><dir name="Helper"><file name="Checks.php" hash="5a9734a2fca4b49ab942c450ebf32775"/></dir><dir name="Model"><dir name="Checks"><file name="ContactlabAuthApiKeyCheck.php" hash="dc14e7d82c433914eea09a75c4e6f5a2"/><file name="FindDuplicatedCustomersCheck.php" hash="2a33873168c94d31c098704fecf4e6c4"/><file name="FindInvalidCustomersCheck.php" hash="5b6985695993e8acbd540a82d1a83aee"/><file name="RewritesCheck.php" hash="93d008de2807cb0209a397720b2c6499"/><file name="WsdlCheck.php" hash="9a49fe2a35ce7d9391d443b26fc31d8a"/></dir><file name="Uk.php" hash="5254745888787f083b4361e2f0ce4a31"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Subscribers"><file name="ExportController.php" hash="141c13b29c3d08a8cebc5753910853d4"/><file name="ImportController.php" hash="e30470248e0b2f6d48daa9c76cb46b00"/><file name="StatsController.php" hash="b7dcf038c82964db4574b20a44efea4c"/><file name="UkController.php" hash="ac2669685426ce5dad4bd9784a75297e"/></dir></dir></dir><file name="EditController.php" hash="0e73ec91f39642065c0278b96c1afcae"/><file name="ModifyController.php" hash="1c7d1cc32e5869515d2e688e818e7fda"/></dir><dir name="data"><dir name="contactlab_subscribers_setup"><file name="data-upgrade-0.8.4-0.8.5.php" hash="b44b6ee842349b9dbcf93d237af61960"/></dir></dir><dir name="docs"><dir name="build"><file name="build.bash" hash="114980c92310c5672fc3b9b7819e7838"/><file name="files.txt" hash="103f8b2fa61f4887416f0e9218a62a1a"/></dir><dir name="release-notes"><file name="0.8.12-20150116.html" hash="4b0889525dc1d40ffd703dcdd72edbcc"/><file name="0.8.13-20150204.html" hash="4f30d3b723ebee5f784ce3bc0b39ee25"/><file name="0.8.14-20150213.html" hash="cdcbb67655d0595e4dee4f63b011edbe"/><file name="0.8.15-20150309.html" hash="3913bab1da721f35377a289b99bbd642"/><file name="0.8.16.html" hash="68b8c749ac7269c4cd879b2088563a39"/><file name="0.8.17.html" hash="1ee5b5904b4998ca23b07fdd7aeafcb1"/><file name="0.8.18.html" hash="509dbbf9eca227918f75bd32beb297c9"/><file name="0.8.20.html" hash="4a69862b759a69219fd5ab40de4ad51d"/><file name="0.8.21.html" hash="60f170d1c2115d06791123d47ba93804"/><file name="0.9.0.html" hash="281a85179f31f5f700949c7e748b0949"/><file name="0.9.1.html" hash="bd181e6d14d0dc4a805b5532a7887068"/><file name="1.0.0.html" hash="6abd3f6f069ffeb16a507c0938f122de"/><file name="1.0.1.html" hash="352c95a5379c7d36189ec6ec5a0c34ec"/></dir></dir><dir name="etc"><file name="Contactlab_Subscribers.xml" hash="c9808465720abbf1eb7be475dbf3b826"/><file name="adminhtml.xml" hash="9d122f10695f3fe0de64852790034bd2"/><file name="config.xml" hash="2ca8427f38285ce2b83aa9b35ff4dab3"/><file name="system.xml" hash="cc05be0c07f0bc6890f306ec77344338"/></dir><dir name="sql"><dir name="contactlab_subscribers_setup"><file name="install-0.8.0.php" hash="a6368d7e6de257005c34fc35972ba075"/><file name="mysql4-install-0.8.0.php" hash="ea9534669baf1f8ba83460eb373e4b3f"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="37388310991d293e7a4d3dcc079f1aa7"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="19858565525423737b71d63d24ce9b9e"/><file name="upgrade-0.8.0-0.8.1.php" hash="4c8fd8b51ccda4b27bcf26018e07b9e2"/><file name="upgrade-0.8.1-0.8.2.php" hash="9586aad0f8aeebd7cfe0bda6401c22b3"/><file name="upgrade-0.8.11-0.8.12.php" hash="3f756983b338d11793ec74ff9d7927e6"/><file name="upgrade-0.8.2-0.8.3.php" hash="eaef3ceb5c6faf88c80fb3f28a925a86"/><file name="upgrade-0.8.21-0.8.22.php" hash="65fa0c02fba038f4f80a54e0462c7cbe"/><file name="upgrade-0.8.3-0.8.4.php" hash="5cb53b73936560c4796f5a1387326a45"/><file name="upgrade-0.8.4-0.8.5.php" hash="8b5aceb8a31a965211cc61e46ef046a6"/><file name="upgrade-0.8.5-0.8.6.php" hash="7f3ad36681c04662e4e7f0592005fdd9"/><file name="upgrade-0.8.6-0.8.7.php" hash="b27c5bfe8ca80d562f053bda5407de00"/><file name="upgrade-0.8.7-0.8.8.php" hash="c689709dcb32d0c8d201feb873abb123"/><file name="upgrade-0.8.8-1.2.0.php" hash="f9ebd160d597bf10efa203940b4842e9"/></dir></dir></dir><dir name="Template"><dir name="Block"><dir name="Adminhtml"><dir name="Newsletter"><dir name="Queue"><file name="Grid.php" hash="c4db6dfbe5aaec238bd87e564f5a3ee3"/></dir><dir name="Template"><dir name="Edit"><file name="Form.php" hash="e82b1748370ada98120e548434378ee9"/><file name="Js.php" hash="ebbbac2c2dee60e7ab3c5b3261c52afe"/></dir><file name="Edit.php" hash="53c4ff205c6bc310fa3360faf0446dab"/><dir name="Grid"><dir name="Renderer"><file name="XmlDeliveryStatus.php" hash="e44366255dede7766352fd46393f0f74"/></dir></dir><file name="Grid.php" hash="5efc3c750a8e835fabe5476ef3d1eb19"/><file name="Preview.php" hash="f3f5e99187b6cf9aea0dfd3a83333256"/><dir name="Tasks"><dir name="Detail"><file name="Grid.php" hash="7f50caf5bbd90dbb647af5050f906472"/></dir><file name="Detail.php" hash="e77a09eb9509449eedec7f1bbf70ce16"/><dir name="List"><file name="Grid.php" hash="c6a17747bca319e572dfaa1c032ef93e"/></dir><file name="List.php" hash="a9a88e4d3e49656478ea6f30e1b62a3e"/><dir name="Renderer"><file name="Customer.php" hash="c66e7e05724639e78a515ad1c6de64ae"/><file name="QueueStatus.php" hash="11ecc8c97fcbdaef6fb32818e2962e0c"/></dir></dir></dir></dir><dir name="Tasks"><file name="DebugEmail.php" hash="eeb4b0c88b85f67d0d9114ec0896e8df"/></dir><dir name="Type"><dir name="Edit"><file name="Form.php" hash="534b775de153ecdea8bd47a5c7e092fd"/></dir><file name="Edit.php" hash="7f26eaaa253b8c990310ed8492156fda"/><dir name="Grid"><dir name="Renderer"><file name="ConfigureLink.php" hash="76986da99f39c8b9c4a480422d3bd09f"/></dir></dir><file name="Grid.php" hash="c7c202bd5b9c05c58dc29db784855b5b"/></dir><file name="Type.php" hash="e9e36e56d903ef59e01eb12cdd7d1d54"/><dir name="Widget"><dir name="Button"><file name="Queue.php" hash="85fbfe18a7b7c15fd2a0e4815f8a8ca1"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="415aff5ceafe5cae0003c31b8cbf43f8"/><file name="SampleData.php" hash="3e6f32e688ba54258e5da3c7e43a3f10"/></dir><dir name="Model"><file name="Cron.php" hash="7be54cb8f3e49634394af331e5e98020"/><dir name="Newsletter"><dir name="Processor"><file name="Abstract.php" hash="6c8306ba4048bf55c83099cda2469230"/><file name="Cart.php" hash="61ad157435f568e88d91d1c102886ef0"/><dir name="Filter"><file name="Abstract.php" hash="8a8bc082d68a1c7b90b5389961b60654"/><file name="AbstractDistinctByType.php" hash="2df05bdf36525c085f6c436d2402d607"/><dir name="Cart"><file name="DistinctByType.php" hash="63e3a03b08544121597bc7461ee52a58"/><file name="Dnd.php" hash="6f5a9cf91b56839bc5a7aee4e9a11ccd"/><file name="Have.php" hash="53cac800d406d02e82ae2bf0d984d95f"/><file name="Offset.php" hash="a9f08eedbd380fccea16dc77397d9e23"/><file name="ProductNumber.php" hash="b44135b3b7961cefc506c32891f4a6f1"/><file name="ProductNumberOrTotal.php" hash="1e3f5319efb8ce64b613dcfd6d0a2e37"/><file name="Products.php" hash="9ae54c326965f49396a4b71fb746cdb0"/><file name="TotalValue.php" hash="334865e6d2a46ddffc3e657eebd5ea21"/></dir><file name="EmailLike.php" hash="34baf8be2aa88a1fe44a71daa87258f8"/><file name="Interface.php" hash="6d2ab6e8d5af5595ea69b928ff27af24"/><file name="OnlyCustomers.php" hash="1fd9a34c408c5a2daca53ea1d840838a"/><file name="Store.php" hash="d90f4af3d625c8280bfabfeac11ce6fe"/><file name="TestMode.php" hash="28817391eec06780c63effc30320e88b"/><dir name="Wishlist"><file name="DistinctByType.php" hash="b622a455f689cd37130ed61e91178711"/><file name="Dnd.php" hash="db13849f95786253e417c16a00bbcea6"/><file name="Have.php" hash="6f238c533f13264b84b0cbf2c4c809f5"/><file name="Offset.php" hash="fe1a43fc318299023ecc6b5352851791"/><file name="ProductNumber.php" hash="9589494f825b57010a2eed5b38562f10"/><file name="ProductNumberOrTotal.php" hash="9242bcc98946d488d6bac0a956eae9e8"/><file name="Products.php" hash="ce7319e5d81c4d9defaadf8363832f3e"/><file name="TotalValue.php" hash="c92bfbb5553c43f2ecacb0cecb55d5ce"/></dir></dir><file name="Generic.php" hash="fba6d138633a3e6d26b6ad59ae929650"/><file name="Interface.php" hash="2020fccf75ca93268e7154a4a06f6c1b"/><file name="Wishlist.php" hash="cf15890ad4d8f19869a3781433753bd5"/></dir><dir name="Queue"><file name="Link.php" hash="fee98cd3b7f7a7c5afe368ecdb2501a7"/></dir><file name="Queue.php" hash="245f401bd4cda90f84c6e32599029f31"/><dir name="Template"><dir name="Compiler"><file name="Abstract.php" hash="8a845abd46468d70cce4e545c2f5a6ad"/><file name="Html.php" hash="2270a452f83be6f3799784a03c393d82"/><file name="Interface.php" hash="bd7016c85bbd710462edc1dafab56590"/><file name="Text.php" hash="cb7aa7cb17e6f2fbe0c5147fea92e478"/></dir></dir><file name="Template.php" hash="0360d914b73aac421a7a1343667d8e2a"/><dir name="XmlDelivery"><file name="Check.php" hash="8fc3262308c334a6e343c497ea57ffaa"/><file name="Uploader.php" hash="ad08e461e406d5f0201cf83583601ef3"/></dir><file name="XmlDelivery.php" hash="f0acd8fe4d0f34d852b1ff884f6ec8a8"/></dir><dir name="Resource"><dir name="Customer"><file name="Collection.php" hash="03eda84abd4ac99c2af60f0f8eca0de0"/></dir><dir name="Newsletter"><dir name="Queue"><file name="Collection.php" hash="17af76b4158b5a44a4171c74e8583738"/><dir name="Link"><file name="Collection.php" hash="880d705a6d77ed16720328393c842d1a"/></dir><file name="Link.php" hash="f4fbc8acd94f5cc0149e9ca814ef990b"/></dir><dir name="Subscriber"><file name="Collection.php" hash="687587b1f9c45c5d658c658026b8252d"/></dir><dir name="Template"><file name="Collection.php" hash="4c4311fbd664e9a8574ba24562862601"/></dir><file name="Template.php" hash="039f4f6e808777aa0c7b74c3b631f8db"/></dir><dir name="Type"><file name="Collection.php" hash="26d09eb4764f6fb93b856fc170a6be35"/></dir><file name="Type.php" hash="8d6c9001caa99ceb0f01cc9f54f2c4af"/></dir><file name="SimpleXMLExtended.php" hash="e28b6caa960498fb75e77d3cebf9472a"/><dir name="System"><dir name="Config"><dir name="Source"><file name="AndOr.php" hash="114c0a86611d6c0149afc4de3c75df42"/><dir name="Delivery"><file name="Method.php" hash="6175029d59b582745a98fba681375b68"/></dir><dir name="Template"><file name="Format.php" hash="527644942d74c5634d1d8f84db24ee77"/><file name="Type.php" hash="292c1f9dc7494315f44976f1163f4574"/></dir></dir></dir></dir><dir name="Task"><file name="CheckNewsletterQueueRunner.php" hash="47a52258ab016e7c9fce57fc9ad5039c"/><file name="Observer.php" hash="3f42a203d2277413a49bbd5d57c966b4"/><file name="ProcessNewsletterQueueRunner.php" hash="d48d15de98e3ea8b17745180b26a7af8"/></dir><file name="Type.php" hash="e7bb0be8ae8d070534511b780d201145"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Template"><file name="TasksController.php" hash="42d11595cb143afb80e947447904a145"/><file name="TypesController.php" hash="81d5bb593d180df76b8bb33213c71fbd"/></dir><file name="TemplateController.php" hash="3566bc5c3b5f1cd98c365509c3d060de"/></dir><dir name="Newsletter"><file name="QueueController.php" hash="865e18bb175eed185395e3fef1d9dcd2"/><file name="TemplateController.php" hash="abad2cbd9ed0305b3ee5b00cec122074"/></dir></dir><file name="SampleDataController.php" hash="7738e817f7cc8373ce01ab677a8b38ce"/></dir><dir name="data"><dir name="contactlab_template_setup"><file name="data-install-0.8.0.php" hash="691ec4f1cba03ba9a7769e01b4abd3f0"/><file name="data-upgrade-0.8.20-0.8.21.php" hash="14af0bf01230abfac7b229a7667d2966"/></dir></dir><dir name="docs"><dir name="example-templates"><file name="subject_ac.json" hash="c9aa774df01bb168afc0a6e4cf235aa4"/><file name="subject_wl.json" hash="e28b414b6e180613f71fa89628aeb19d"/></dir><dir name="release-notes"><file name="0.8.16-20150116.html" hash="388bb0b9da2461dc90e06303de060e53"/><file name="0.8.17.html" hash="11fb8e56f568027c4b76874368b1daf9"/><file name="0.8.18.html" hash="5d279e41c4d13d3695bc4a01f15ecd78"/><file name="0.8.19.html" hash="fb4533ceb065c1427c58c5e9a44f1910"/><file name="0.8.20.html" hash="e87bade4cedf6e9195cdc7a06a99da5e"/><file name="0.8.21.html" hash="b6e4733fc5bcb75ae4c547f942c40867"/><file name="0.8.22.html" hash="439ee80a2effdc14a7a9a3b1284ae7b6"/><file name="0.8.23.html" hash="04d631373ca8f4e1583fe2fad988579f"/><file name="0.8.24.html" hash="bbc1e1430ad40da34319f676ca195637"/><file name="0.9.0.html" hash="a98c626b81251e26dc0f0ad4fe1a04dd"/></dir></dir><dir name="etc"><file name="Contactlab_Template.xml" hash="bd6884cf9b2f8219f598ea88945d9399"/><file name="adminhtml.xml" hash="25d34cfae07b3150a41024831431edba"/><file name="config.xml" hash="1505f260468c412446cfa255d11dd202"/><file name="system.xml" hash="5d60aa6e3ff1f44cb7489887e72b17f8"/></dir><dir name="sql"><dir name="contactlab_template_setup"><file name="install-0.8.0.php" hash="cfbacdd1ee0dd6dafc7ef2743b2025bd"/><file name="upgrade-0.8.0-0.8.1.php" hash="a892632623aced9c2bba7163cfbd551a"/><file name="upgrade-0.8.1-0.8.2.php" hash="d57ebb94370bf344a19d30bd535c5f3e"/><file name="upgrade-0.8.19-0.8.20.php" hash="454bd54e260fa943cbf4b7e9a54de176"/><file name="upgrade-0.8.2-0.8.3.php" hash="762bc1fea119803410241325fdd5565b"/><file name="upgrade-0.8.22-0.8.23.php" hash="2ac19163d9a9fe007b36d4259271e3af"/><file name="upgrade-0.8.23-0.8.24.php" hash="9a706c92d2db43b60821adfd952b7f77"/><file name="upgrade-0.8.3-0.8.4.php" hash="1ce583cd1bd968eda2df28731d29c4f1"/><file name="upgrade-0.8.4-0.8.5.php" hash="cf6d33fadc358f58712f434314c7d39b"/><file name="upgrade-0.8.5-0.8.6.php" hash="fb815dc3ba13ee481db03886222deadb"/><file name="upgrade-0.8.6-0.8.7.php" hash="889d8a78c3fe624793fbaa5418962d28"/><file name="upgrade-0.8.7-0.8.8.php" hash="482a3378bca1b09d4face0c127576f92"/><file name="upgrade-0.8.8-0.8.9.php" hash="8d47c0ea100e856a892fb3cff8dafd76"/><file name="upgrade-0.8.9-0.8.10.php" hash="92bc695e4384444f82389938bc13be7e"/><file name="upgrade-0.9.0-0.9.1.php" hash="26865bc769baa932139eaf0067a46637"/></dir></dir></dir><dir name="Transactional"><dir name="Helper"><file name="Data.php" hash="4faf1b37aa9c5728d0301ac608538346"/></dir><dir name="Model"><dir name="Email"><file name="Queue.php" hash="6ca14247c8ead4872eab29f0fb3a4b16"/><file name="Template.php" hash="dea2688b02842777165a1a9d32f298e1"/></dir><dir name="Task"><file name="SendEmailRunner.php" hash="663ab3b2161b5dc4a331727b6763c77e"/></dir><dir name="Zend"><file name="Mail.php" hash="dc53255485ee9c4f8e3b77c0d39aaaec"/></dir></dir><dir name="docs"><dir name="release-notes"><file name="0.8.2.html" hash="5551bb5b36f227baa4a82ac09aa306f8"/><file name="0.8.3.html" hash="277597117d81d75a3cab78ba2fe6ad23"/><file name="0.8.31.html" hash="16739925886a489366a264cd14c33144"/><file name="0.9.0.html" hash="018fe082f4ef876621ea545a782f16f1"/></dir></dir><dir name="etc"><file name="Contactlab_Transactional.xml" hash="84437b19aaef7fa6566916485a1eb750"/><file name="adminhtml.xml" hash="09d3fa7ef4d802a69141a501824f3aab"/><file name="config.xml" hash="e848167e69b20248880a2307ca2f7e35"/><file name="system.xml" hash="be6f9b0c56c0ceaf926dff49948239a2"/></dir></dir><file name=".DS_Store" hash="362c3c467420623a3a177255b7afd231"/></dir></target><target name="mageetc"><dir name="modules"><file name="Contactlab_Commons.xml" hash="15d6ae561458b10ef58609958cd1f35f"/><file name="Contactlab_Subscribers.xml" hash="2b205efa6475e1e150e8ea44295667c7"/><file name="Contactlab_Template.xml" hash="c331e35581ef2d31bb44b9b0aea238af"/><file name="Contactlab_Transactional.xml" hash="c21f85926a68b2acee33bc8cf34ebd44"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="contactlab"><file name="commons.xml" hash="57f77de04d63427bccce155ae59a0afd"/><file name="subscribers.xml" hash="f2295e56e52bb01baabb8a21c6c8202f"/><file name="template.xml" hash="ea0c45a73ae8fdcfc39e3d2fc60753f3"/></dir></dir><dir name="template"><dir name="contactlab"><dir name="commons"><file name="configurationcheck.phtml" hash="52029752074af134c8c9327ccf877cb3"/><file name="releasenotes.phtml" hash="10fda97a68d16416a4c908827c0bef62"/><file name="send_mail.phtml" hash="cedfe0a520b352e90c15f72f035dad80"/><dir name="tasks"><file name="js.phtml" hash="b2af96ef1c0452c7149916239249dffd"/><file name="status.phtml" hash="d0ff3be39627817088b88b1bbcdbb50d"/></dir><file name="test.phtml" hash="fcdd03dbe2f50880f62e72aae413d78b"/><file name="version.phtml" hash="3852f6508e96d7d3baccd1e73f56a95a"/></dir><dir name="subscribers"><file name="export.phtml" hash="fcdd03dbe2f50880f62e72aae413d78b"/><file name="subscribers.phtml" hash="14f2aee80e4efa4f1880a2f58ea93781"/><file name="uk.phtml" hash="41c2632e9a48df0ae50fb0d354c7fa01"/></dir><dir name="template"><dir name="edit"><file name="js.phtml" hash="0069a9b4e0b4d26e3d7ac84f605e6e2e"/><file name="validation.phtml" hash="e10df9913a3bb580b4ec5dc92e2b8ba9"/></dir><dir name="tasks"><file name="buttons.phtml" hash="cfcd1a72de994e37a5ac1d5f75d15aa4"/><file name="debugemail.phtml" hash="ba04523182e084b2c7187880835429e5"/></dir><dir name="type"><file name="edit.phtml" hash="b2978f07be2d00dd483046c27d385a5c"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="contactlab"><file name="layout.xml" hash="72510e95747bd0dd36af5ce5736abaa9"/><file name="subscribers.xml" hash="f912768983740fa5e4788d5fd81e4ff9"/></dir></dir><dir name="template"><dir name="contactlab"><dir name="subscribers"><dir name="newsletter"><dir name="subscribers"><file name="modify.phtml" hash="62c882d900bf4bcf4e588505c2aabed4"/><file name="subscribe.phtml" hash="ef4a1960fc673f9fdaa6fedca1e4bb80"/><file name="update.phtml" hash="432fd89d460cf9b83ee50b92aef4498b"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="contactlab"><file name="Contactlab_Commons.csv" hash="a716e3c52977bef0a83b8bc64eed6d54"/></dir></dir><dir name="it_IT"><dir name="contactlab"><file name="Contactlab_Commons.csv" hash="dd3274eadbefadf8f4da01b1fbcaa417"/><file name="Contactlab_Subscribers.csv" hash="084bd18f108750ce7ba504cd17bd0552"/><file name="Contactlab_Template.csv" hash="4058983ef5aee89c12a36fe359875908"/><file name="Contactlab_Transactional.csv" hash="c10ccac895b8bf97fd133b65579ae4eb"/></dir></dir></target><target name="mage"><dir name="js"><dir name="contactlab_commons"><dir name="adminhtml"><file name="tasks.js" hash="e8e91556e4e122bfc8b53647a4535d53"/></dir></dir></dir></target><target name="magelib"><dir name="contactlab"><file name="Attachment.php" hash="4dd95e31c3cb73d1d55e5ae51a17209a"/><file name="AuthToken.php" hash="00955cde5b7ad26a6933bea2331ef012"/><file name="BounceDetail.php" hash="488404a38f87a2bb69963c13008457c5"/><file name="Campaign.php" hash="9e71bfc36afadb5238e99f65aed291dc"/><file name="CampaignFeedback.php" hash="9ec796ddb3826fa2ef79661b9f476e6b"/><file name="CampaignLookupPreferences.php" hash="247a1d11f2b48f88b0ab3ffd49808247"/><file name="CampaignNote.php" hash="766543c655f647357ebe3f1e11c5ecd4"/><file name="CampaignNotes.php" hash="2554a41a65a99ab00fd2bf847f09f63d"/><file name="Campaigns.php" hash="ce759e2d677623f0482dc71f451674b7"/><file name="ClabService.php" hash="0cb5e81e9abee888a82238604f405408"/><file name="CommunicationCategory.php" hash="d4a3dff3d71cac521dff8aff568f7780"/><file name="EmailMessage.php" hash="abb361cbbc827ae4e810788d680dda60"/><file name="FaxMessage.php" hash="4a6718c8cf06e19fd90597be4fae8511"/><file name="LookupPreferences.php" hash="7ecd011496f99453bc45d0b5f05caf20"/><file name="Message.php" hash="88372af680074a0d4215601ace73c3c0"/><file name="MessageModels.php" hash="49e44071f3639a599fa4d30759b99f01"/><file name="Recipients.php" hash="f3de79ad97782f4511cc4592a5751fea"/><file name="Sender.php" hash="ec91192aae86f5da011d05f9556d3b07"/><file name="SlicedDataSet.php" hash="7ee3e0ea0f67c7c85ab74015f6b12a56"/><file name="Subscriber.php" hash="2cce2c60f49b2bfe8650bf07ccd7e0fb"/><file name="SubscriberAttribute.php" hash="071cf1754e47ee6141de6a68e85d27a7"/><file name="SubscriberSource.php" hash="a4d2ae669640c6bd65a3e0fcb2467540"/><file name="SubscriberSourceField.php" hash="3b2d2526698832801047059fc1269018"/><file name="SubscriberSourceFilter.php" hash="f19bb9876b432bb5fa3e980936942070"/><file name="SubscriberSourceFilters.php" hash="6ee53b041cc5b873faf55edd38e6c5b4"/><file name="SubscriberSources.php" hash="ad2b28a80ede3ca2fc3affbb81228065"/><file name="Subscribers.php" hash="91ab6d1096a4be9047d006502b347d4d"/><file name="TextMessage.php" hash="e9213ccffefd2910ca5c4df09287ccbc"/><file name="TrackedLink.php" hash="830f2542cdfd8abe196c40d0976717a4"/><file name="TrackedLinks.php" hash="eeef87e8d7716bc02b118f237e9e7f08"/><file name="XMLDeliveryInfos.php" hash="a92d8f147d831e0d8ad9a59ac175ebcd"/><file name="addAttachment.php" hash="aafb4d4b4ff429d53ff04e9d4280ce7f"/><file name="addAttachmentResponse.php" hash="fd82c72432993a38ec954cbadd70a907"/><file name="addCampaignNote.php" hash="97b30bcaa074445579b0cc101405f222"/><file name="addCampaignNoteResponse.php" hash="a43580bce766bb90976cf37a7e8b12b7"/><file name="addSubscriber.php" hash="10d8330a8c31d8a74a643389efcdc863"/><file name="addSubscriberResponse.php" hash="17ee7cbf8ab81934334e43f23758473c"/><file name="addSubscriberSource.php" hash="9bc3c67af5132b4384124fb373a7bdf4"/><file name="addSubscriberSourceFilter.php" hash="c9b8b8ab031be5be6672e24686a08724"/><file name="addSubscriberSourceFilterResponse.php" hash="d8a43ceef9b5e43f0ad2916a68afd9c6"/><file name="addSubscriberSourceResponse.php" hash="28f6abe65906eef415e180b5c637ba36"/><file name="addSubscribers.php" hash="637fdea104587a2231f3c43839d2d5a1"/><file name="addSubscribersResponse.php" hash="37b214030476208d8742354329770257"/><file name="archiveSubscriberSourceFilter.php" hash="e5ef057e35d274e3139a386330093eab"/><file name="archiveSubscriberSourceFilterResponse.php" hash="bd56103fddbf9d2fd0e6d4b868123b50"/><file name="borrowToken.php" hash="c7e3736ab5dd453b372f261c1511f795"/><file name="borrowTokenResponse.php" hash="c888fb23b89d9a12ae45cf09dc07cbc6"/><file name="cancelCampaign.php" hash="837363783c11e4751144cea5b20b250a"/><file name="cancelCampaignResponse.php" hash="c09fcdc56774b82cca16222ffc360525"/><file name="cloneAndSendCampaign.php" hash="bc85929ae1f2b694e4d80df22c0cfa12"/><file name="cloneAndSendCampaignResponse.php" hash="b9f4afa47bb0c7d953d8471858bd8181"/><file name="countSubscribers.php" hash="97cdbdd6c4a5949b2d3c6b79adf7dc0a"/><file name="countSubscribersIncludedInFilter.php" hash="a4c1953510ee1f1f680ddcb50dedda83"/><file name="countSubscribersIncludedInFilterResponse.php" hash="e950b50136733aeefb57faac759318b0"/><file name="countSubscribersResponse.php" hash="47f5b01e68a5337241e540d8d14d6506"/><file name="createCampaign.php" hash="7af3d8b6176af5dbed9005002c5f9fea"/><file name="createCampaignResponse.php" hash="1f94aa0ced02397e5cbc3685880ff6c6"/><file name="createMessageModel.php" hash="3a2be564063f933b2c9a5220f75aba19"/><file name="createMessageModelResponse.php" hash="e77c07e74f6b2adb906d663d6a5ab796"/><file name="findArchivedFiltersBySubscriberSource.php" hash="665fdb9883a932354b9646e1cdcdc085"/><file name="findArchivedFiltersBySubscriberSourceResponse.php" hash="c28a96905fc9c85e3be850a9b3182ff3"/><file name="findCampaigns.php" hash="994da9782174931b0c4959a595ae35db"/><file name="findCampaignsByModel.php" hash="94cd24329ce937cd504917ba19813022"/><file name="findCampaignsByModelResponse.php" hash="606ea2662d7ed0c0ed90816142b8a423"/><file name="findCampaignsByNameOrSubject.php" hash="729aafc3da9fc5d60cc89bcf37e384d9"/><file name="findCampaignsByNameOrSubjectResponse.php" hash="3205d1dda7a1dbc55cb13451422509b3"/><file name="findCampaignsByNote.php" hash="e642c65d5c05d3a29a2882702a972029"/><file name="findCampaignsByNoteResponse.php" hash="3daab98189a2bf900c373bba533bccfc"/><file name="findCampaignsByStatus.php" hash="06bfdd8059f962e5152bf4690a9a1432"/><file name="findCampaignsByStatusResponse.php" hash="f2e2a60b926a4b055ee3ad35eb35467c"/><file name="findCampaignsResponse.php" hash="aa12cfdb1dc21618c9dcea68ce4e4a36"/><file name="findCampaignsSentBetween.php" hash="5978f7d3ea6d4e169aeef958a93b64a7"/><file name="findCampaignsSentBetweenResponse.php" hash="27db82a783f299a904e5f840c6bead94"/><file name="findFiltersBySubscriberSource.php" hash="780c7a78fccb4e9072ef51fdb798ef0e"/><file name="findFiltersBySubscriberSourceResponse.php" hash="047ebedff8cdb8e3fbc22143b958443e"/><file name="findMessageModels.php" hash="249f73d33c9efdc16817ac6228827894"/><file name="findMessageModelsBySubscriberSource.php" hash="16ed2e80ac0b28a3bc0eaccdde43770d"/><file name="findMessageModelsBySubscriberSourceResponse.php" hash="7c75c3a33072fed17ca6ba08d927ef9a"/><file name="findMessageModelsResponse.php" hash="e2381a5ca3c286a4b2240b5af84f4cfb"/><file name="findNotesByCampaign.php" hash="816af78e41fbf6941ca5c6d508371add"/><file name="findNotesByCampaignResponse.php" hash="54964b987980cb5d2e9d918c8c7ff70c"/><file name="findPeriodicCampaigns.php" hash="ef83d75476d289d2e81fef015310e9f1"/><file name="findPeriodicCampaignsResponse.php" hash="e0cd3bf7f0ebd1750aaf4c124044bdef"/><file name="findSubscriberSources.php" hash="1f865ba0607fb54d611519483c0ba37e"/><file name="findSubscriberSourcesResponse.php" hash="468dffd45134f7a82e250c9eb35b7f1a"/><file name="findSubscribers.php" hash="84bcdc3899b6583110570a83aeba41f6"/><file name="findSubscribersIncludedInFilter.php" hash="8507b8aa27a40f4226584af4deba8c26"/><file name="findSubscribersIncludedInFilterResponse.php" hash="fe1f065e3c24c9fba93c91b104af3378"/><file name="findSubscribersResponse.php" hash="7da20215136d55a2d4a338e7b1e80fd8"/><file name="findTriggerableCampaigns.php" hash="df0d9f03bd0cd7db9983f3ed9520b9b5"/><file name="findTriggerableCampaignsResponse.php" hash="4936fc7428e96e27203db2222a2a3930"/><file name="getArchivedSubscriberSourceFilter.php" hash="b1ba4a087da85eeed8ad7d637b5b7289"/><file name="getArchivedSubscriberSourceFilterResponse.php" hash="c2c74693aa72e9cfe70da4c5552c1e10"/><file name="getAttachmentByCampaignId.php" hash="4d8d58c768c313e7a34df4b14762f216"/><file name="getAttachmentByCampaignIdResponse.php" hash="ee4653b2fd234eaf3ac3b2ae2763b218"/><file name="getAvailableCommunicationCategories.php" hash="2812d2d787575ca76a6c20a65d959012"/><file name="getAvailableCommunicationCategoriesResponse.php" hash="c44b3783ea5e09fc518026c2e1b4fea6"/><file name="getCampaign.php" hash="0ad3de64f6d886f3e7898370e0286b58"/><file name="getCampaignDeliveryStatus.php" hash="926b85895ffb17fa191151b3ff4f8407"/><file name="getCampaignDeliveryStatusResponse.php" hash="2373c615052b9cd1e96b80e110252804"/><file name="getCampaignFeedback.php" hash="88d80874aa7b4ff30e8dd8d228144045"/><file name="getCampaignFeedbackResponse.php" hash="3c5762d732130b5fc5f2e64d289c1fff"/><file name="getCampaignResponse.php" hash="e9c51b4c1ba979d2a131ffb7f7079fe7"/><file name="getCryptoKey.php" hash="bfb67fef4223514d4853750ae520cda3"/><file name="getCryptoKeyResponse.php" hash="6322e290ed7b23ab69ba5ce892a7ff3e"/><file name="getMessageModelById.php" hash="58a952e46581010154d17e2a2ceeeb97"/><file name="getMessageModelByIdResponse.php" hash="ad90f598343a0469479ad5eda0bcd5ae"/><file name="getRequestStatus.php" hash="9892f5714b0bf16f305d98102a142919"/><file name="getRequestStatusResponse.php" hash="8dfb0a5589dd0556163cf32a988ddfcc"/><file name="getSubscriber.php" hash="28b43e849621dc5f66e339504d709809"/><file name="getSubscriberDataExchangeStatus.php" hash="34defa00aa45b2c05e102af167f60bb7"/><file name="getSubscriberDataExchangeStatusResponse.php" hash="ccdeec492cf724027881a77801eee861"/><file name="getSubscriberResponse.php" hash="31bda97f6261d38931a9a6aca878729a"/><file name="getSubscriberSource.php" hash="e4952a57312cbb47127203ccd7282101"/><file name="getSubscriberSourceFilter.php" hash="38fed10d61883e7f3ad3eaf1017ff861"/><file name="getSubscriberSourceFilterResponse.php" hash="2f9ff8cdecedbdb80f5aed4f82e0872c"/><file name="getSubscriberSourceResponse.php" hash="6288ddc830b2ce6f19253185974e8d08"/><file name="getTrackedLinks.php" hash="65226faf6bdb6548900ecbe4d3f0589a"/><file name="getTrackedLinksResponse.php" hash="1baef1c35da95c50a96cac8dee266db1"/><file name="getXMLDeliveries.php" hash="bec33bc553d3d27088d43947b4b94cae"/><file name="getXMLDeliveriesResponse.php" hash="103249a095ecc11c6a8e45e6ee03ecf8"/><file name="getXMLDeliveryTransitions.php" hash="2c91cfced369a2f291e5926f0f45aa50"/><file name="getXMLDeliveryTransitionsResponse.php" hash="13a5da14b52d69eca8186e160bb1cbc8"/><file name="invalidateToken.php" hash="feb611c092d5679ac11671bde06703f1"/><file name="invalidateTokenResponse.php" hash="5dabc504490ed7f068dcb911f9f4de97"/><file name="keepaliveToken.php" hash="eaf6542a3cd270b21e6e7d184ddd1676"/><file name="keepaliveTokenResponse.php" hash="658b578b970184b6ad7182832db02d89"/><file name="modifySubscriberSubscriptionStatus.php" hash="af08f77094824b87a7806c23b9c16918"/><file name="modifySubscriberSubscriptionStatusByMailqId.php" hash="793b06ffae8d35b6a101b9747463d0bc"/><file name="modifySubscriberSubscriptionStatusByMailqIdResponse.php" hash="f36bb42ce9049625d54542e3b1433b1e"/><file name="modifySubscriberSubscriptionStatusResponse.php" hash="f7e1cece9f5ec7ec246e9c32a7b5dec4"/><file name="publishOnWeb.php" hash="8ba487c1078cd7ad73215aeb59f3df81"/><file name="publishOnWebResponse.php" hash="fb2315ebb11c0468662993a6c63f2fae"/><file name="removeSubscriber.php" hash="c54f6f12de913082d9d37d8b6512c5b5"/><file name="removeSubscriberResponse.php" hash="a685a6eb245d42ba68a8859a7c9976e3"/><file name="requestCampaignFeedbackReport.php" hash="83382be36afc47c912041e39a8a91bb5"/><file name="requestCampaignFeedbackReportResponse.php" hash="a355c87dd81366319a1cbcfef897b63d"/><file name="reuseSubscriberSourceFilter.php" hash="dbe58a95d2d2a9b22931e2f2846ee5a4"/><file name="reuseSubscriberSourceFilterResponse.php" hash="2662fccf2d3c0f8ea8c83748bebdebea"/><file name="sendCampaign.php" hash="d6fc6e6265c57a4d21a1c272e7c99154"/><file name="sendCampaignResponse.php" hash="4e2440bebed2a589fa0165d3e3eed483"/><file name="sendImmediateMessage.php" hash="a3e2036a82d71ff0a82a257a2075d409"/><file name="sendImmediateMessageResponse.php" hash="4c9602a44ac0b7a9eb5b898605af22be"/><file name="sendImmediateMessageSDataCData.php" hash="4642d684e187fde20dc81ccb802af084"/><file name="sendImmediateMessageSDataCDataCA.php" hash="233a58432de264308ad4331a0682821c"/><file name="sendImmediateMessageSDataCDataCAResponse.php" hash="5eab02d47c5833cc0a902bf14c761776"/><file name="sendImmediateMessageSDataCDataResponse.php" hash="351236b1b015e03abca60371fa689abf"/><file name="sendImmediateMessageSDataCIdCA.php" hash="5563f04200dd3533a33a1024ce8b4869"/><file name="sendImmediateMessageSDataCIdCAResponse.php" hash="5b4bac75edc19eb758f2a3553b278629"/><file name="sendImmediateMessageSIdCData.php" hash="71618fe49e43bff9cc53957324397056"/><file name="sendImmediateMessageSIdCDataCA.php" hash="7d2ecd18e0e87e71ace465d1d76d1169"/><file name="sendImmediateMessageSIdCDataCAResponse.php" hash="eae46b409221e5bd2bc58f554242eddc"/><file name="sendImmediateMessageSIdCDataResponse.php" hash="2b5cd3ca959cf22cceb445b8a9487467"/><file name="sendImmediateMessageSdataCAl.php" hash="0374318565674b93c9cc5af74b7dde8e"/><file name="sendImmediateMessageSdataCAlCA.php" hash="5cf7ab51277a87e467f1c1da0b7ca04b"/><file name="sendImmediateMessageSdataCAlCAResponse.php" hash="5f6b99e92f4125d4c5e2c1c52537fe84"/><file name="sendImmediateMessageSdataCAlResponse.php" hash="69b0e09d428b115b56b2dcf151434d0e"/><file name="sendImmediateMessageSidCAl.php" hash="4a5c3b7fdf4a590ea3afe97330520af9"/><file name="sendImmediateMessageSidCAlCA.php" hash="8ee842963b8de8d887b47601cc5acd7e"/><file name="sendImmediateMessageSidCAlCAResponse.php" hash="6e574a4a6a4a87a38db7be60e3ee3855"/><file name="sendImmediateMessageSidCAlResponse.php" hash="6ba97d1cdf7012bfe1fe1964a2943f9e"/><file name="sendImmediateMessageSidCid.php" hash="84d9a2e3fe11d462f18101ea7e5edee5"/><file name="sendImmediateMessageSidCidCA.php" hash="228313907a7ffb2034a8290ba0e7421c"/><file name="sendImmediateMessageSidCidCAResponse.php" hash="a03863e9cca7db6ee1ae5281a16fc3ef"/><file name="sendImmediateMessageSidCidResponse.php" hash="c98ee1afdad240a565bdc1e80da0418a"/><file name="setCampaignRecurrency.php" hash="d70b012427c8bcbb5b919132d3e6abbb"/><file name="setCampaignRecurrencyResponse.php" hash="31339f0edbb429ababc2430e44761f67"/><file name="startSubscriberDataExchange.php" hash="e4dce40e847d1eb73dff51c867dd58da"/><file name="startSubscriberDataExchangeResponse.php" hash="8cf8b384dd795929b8dc067462ec4673"/><file name="triggerDeliveryByAlias.php" hash="28a46cf449766ad8dabde4858d41b6f2"/><file name="triggerDeliveryByAliasResponse.php" hash="1990179026c6d67dc061bcaabfed5a30"/><file name="triggerDeliveryById.php" hash="6e3b46ecc600bffcd9ab52bcc19f51f7"/><file name="triggerDeliveryByIdResponse.php" hash="ef45334a763e77f60238dac80c0d2cc9"/><file name="updateSubscriber.php" hash="ff20a2ee470eaf9cfbb9b313307fc543"/><file name="updateSubscriberResponse.php" hash="6da25998752a81b407c85e26c7047a8d"/><file name="uploadMediaContent.php" hash="e93aca9ec6e1b36371836e539efb41a3"/><file name="uploadMediaContentResponse.php" hash="6ed39f2d177b4705768cf35db6829c2f"/><file name="xmlDeliveryInfo.php" hash="cc0bbdbe9741e5be2d6e5cdccea43c91"/><file name="xmlDeliveryTransitionInfo.php" hash="f0fd36cf966311c097eb2ebbe63d7afa"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="contactlab"><dir name="commons"><file name="cancel.png" hash="17065c5c397c6f6ca9ac97ab1033f88a"/><file name="delete.png" hash="61e27f7ba4b87e918351239b160c03de"/><file name="retry.png" hash="45700cc820e53665b269352564f08957"/><file name="run.png" hash="595432ecd2f7124cb5e96279a727c944"/><file name="suspend.png" hash="8f2ea46ca3b37ab4fefbf5d8b7b66cf0"/><file name="unsuspend.png" hash="5b3bf2cc96fa070b727b8d0765f2704d"/></dir></dir></dir></dir></dir></dir></target></contents>
|
| 33 |
<compatible/>
|
| 34 |
<dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
|
| 35 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Contactlab_Modules</name>
|
| 4 |
+
<version>2.5.4</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="https://opensource.org/licenses/osl-3.0.php">OSL v. 3.0</license>
|
| 7 |
<channel>community</channel>
|
| 25 |
</ul>
|
| 26 |

|
| 27 |
<p>ContactLab Connect for Magento has been developed in collaboration with WebFormat</p></description>
|
| 28 |
+
<notes>- Fixed created_at
|
| 29 |
+
- Fixed abandoned cart prices
|
| 30 |
+
- Create checks for SFTP connection</notes>
|
| 31 |
<authors><author><name>ContactLab</name><user>ContactLab</user><email>magento@contactlab.com</email></author></authors>
|
| 32 |
+
<date>2017-03-24</date>
|
| 33 |
+
<time>14:37:40</time>
|
| 34 |
+
<contents><target name="magecommunity"><dir name="Contactlab"><dir name="Commons"><dir name="Block"><dir name="Adminhtml"><file name="Backend.php" hash="208c57c38069bb462ea48b56c753bd83"/><file name="ConfigurationCheck.php" hash="38a0b3ef316c0b153aaccbc0928b7a20"/><dir name="Email"><file name="Template.php" hash="2503b51a4988bb892df330f2de75b92e"/></dir><dir name="Events"><file name="Grid.php" hash="ada058c87141c94b6584f2206957941d"/><dir name="Renderer"><file name="Alert.php" hash="80c8911038197b7de34c75d87d453b82"/><file name="Status.php" hash="01038685dbcb692daae047aa45b336d8"/></dir></dir><file name="Events.php" hash="3230a203addb6dc02f5eb995ddd66f23"/><dir name="Logs"><file name="Grid.php" hash="1a1a51b5791d2df97890553d536260e4"/><dir name="Renderer"><file name="Datetime.php" hash="f7f23deac1c9871674ecde594ba742b8"/><file name="Default.php" hash="6f81d70e10fdaf42035a53323f82bb40"/><file name="Level.php" hash="a2b58d0549cacad4b83ca0ae52fd978e"/></dir></dir><file name="Logs.php" hash="f24ba62587734880d7046d4ed01bbfae"/><file name="ReleaseNotes.php" hash="5108bca563cc734f44ed05c609c8738e"/><dir name="Tasks"><file name="Grid.php" hash="a129b2010f71e024d4dbbfd34fb91a71"/><file name="Js.php" hash="308756573ad11f22f1fc634727aaa297"/><dir name="Renderer"><file name="Actions.php" hash="4f1d165274caa1785b295e7e44ca0e22"/><file name="Model.php" hash="b129b6489c9ba09a20204a52cec78dd0"/><file name="Store.php" hash="3f12cf3aa32981ce9a5a4043a88962fd"/><file name="Task.php" hash="afcc58d833d4ac7c12d6409d8b075154"/></dir><file name="Status.php" hash="55dfcd7cbcaa54bc142b6d403481d170"/></dir><file name="Tasks.php" hash="5f0a04ff580ee2e0f6a919d121baa173"/><file name="Test.php" hash="a032f1ca4929077d737f8b34f82830d8"/><file name="Version.php" hash="dd64372d7bf8d9024e00f2ee213c126c"/><dir name="Widget"><file name="Button.php" hash="ca124e5a2dbaf35d2eb454a268d1ad9b"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="34786d704ec107433ba368e734cbf489"/><file name="Tasks.php" hash="2bdaacf98e693d795f965e6c07511e22"/></dir><dir name="Model"><file name="AbstractImportExport.php" hash="6abe068d2db8b667ee9064de7152540e"/><file name="Cron.php" hash="159ffc14f91413b35bc6085c0e2a8e86"/><file name="Deleted.php" hash="a57a201093d020ee85181c4600a7c0d8"/><dir name="Exporter"><file name="Abstract.php" hash="a4ff7629df2cc6326c97e991876a648a"/></dir><dir name="Importer"><file name="Abstract.php" hash="b9dac66ceee0e8d2b5385a6146896964"/></dir><file name="Log.php" hash="46bb074eaf00740124c76b88a91feb03"/><dir name="Resource"><dir name="Deleted"><file name="Collection.php" hash="ed85c763c9a81cb7137a9ec474f5e584"/></dir><file name="Deleted.php" hash="a1ae6a673ffe458414a866f4eb0c0d67"/><dir name="Log"><file name="Collection.php" hash="8bd275a0a40912ab2e71b39d6c37a9e2"/></dir><file name="Log.php" hash="449af875b530177e7203d2d40560237f"/><dir name="Task"><file name="Collection.php" hash="28142a650451964b7340fba61a638771"/><dir name="Event"><file name="Collection.php" hash="27dbdf551a8947950d4794fb6b540ded"/></dir><file name="Event.php" hash="5faa0f50bc41214b65bd2a25438b4446"/></dir><file name="Task.php" hash="f7ebd23a179e563b23a9c68928c10ed0"/></dir><dir name="Soap"><file name="AbstractCall.php" hash="18ec6d30d5a23b8e4cc50913a7aecd56"/><file name="GetSubscriberDataExchangeStatus.php" hash="c14f250f73d38968d257b3af0f770ff7"/></dir><dir name="Ssh"><dir name="Crypt"><file name="AES.php" hash="824d082091d59b96fd5a74cef656f2f3"/><file name="Blowfish.php" hash="abd7684db5565dce87b214952b50ed9b"/><file name="DES.php" hash="dff9541235b415780ff167b3ed87ac51"/><file name="Hash.php" hash="0a737a969906cbb12f33d41a678ec9ee"/><file name="RC4.php" hash="54d20f521a8c030a2f32fecbb9fa33b9"/><file name="RSA.php" hash="8e81a0e6c764f5069d5d9ccd825fd064"/><file name="Random.php" hash="25402099262c9b3bd9e2ca9811bc8bc8"/><file name="Rijndael.php" hash="4305e82b0a611c07c0bfe99ccdeb9951"/><file name="TripleDES.php" hash="d4b18ac4603c5b0a4c3a7e2b98ba2f52"/><file name="Twofish.php" hash="f9df605ad32f18b447c2fdf1701563bc"/></dir><dir name="File"><file name="ANSI.php" hash="42228165075cb2f138c6d4b9ddf334de"/><file name="ASN1.php" hash="3bd220eb6b134a5a56cb311737276dd1"/><file name="X509.php" hash="39b4f6b23f554485a7607382078412e2"/></dir><dir name="Math"><file name="BigInteger.php" hash="22d91d824950758858e43d58d9c0fc3a"/></dir><dir name="Net"><file name="SCP.php" hash="9d455f260731d1e544ab1d3303785188"/><dir name="SFTP"><file name="Stream.php" hash="116f7d549a19071fd301ed677a3dd4c7"/></dir><file name="SFTP.php" hash="7a002a4a8562683108aa0748095b2856"/><file name="SSH1.php" hash="f8a733d63b37063f1e84ed2f557db076"/><file name="SSH2.php" hash="e2875fa03af2498afd35772521933a7c"/></dir><file name="openssl.cnf" hash="0f1015cb8894127a94a05afa7cc23760"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Connection"><file name="Type.php" hash="335493d8aeb1016a98d9716469ffb1e7"/></dir></dir></dir></dir><dir name="Task"><file name="Abstract.php" hash="2efaf1050a1a2607682c4da92ac93bd3"/><file name="Event.php" hash="2f29caaf7f904894e327d5a2701d79c7"/><file name="Interface.php" hash="9f491f0c940f405fca8ddc18a507deae"/><file name="TestRunner.php" hash="f4f22da5b45a585f8f91540f27dff65b"/></dir><file name="Task.php" hash="fd29e79822219c1b1422dd074e2868c9"/></dir><dir name="Test"><dir name="Helper"><file name="Data.php" hash="7a7cf6f101d563ece6a669fda96bcc49"/></dir><dir name="resources"><file name="composer.json" hash="fab8c2bb9f09a1f10da3725dd8e51d48"/><file name="contactlab_db.sql.gz" hash="c1e2185f60a7b81fb80fbe0cb92f12bb"/><file name="local.xml" hash="315270d1f7d0a42ed4a5a756fc97fda7"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Commons"><file name="ConfigurationCheckController.php" hash="2c801d4f90682d530c64ce90c13ad431"/><file name="EventsController.php" hash="dbe781ee96287eb5af21723cd212bf18"/><file name="LogsController.php" hash="54ec270e5fa8ce90222e0fa7627771f1"/><file name="ReleaseNotesController.php" hash="15becd0b614d49f53f10bd45bb53fd73"/><file name="TasksController.php" hash="9740ba3003e3748ceb21856aa18e21cf"/><file name="TestController.php" hash="0cfb06b753d20de75cc06187a7d06e63"/></dir></dir></dir></dir><dir name="docs"><dir name="example-config"><file name="contactlab-local.xml" hash="93f33812b0b1cdb362340c910340707b"/><file name="contactlab.xml" hash="57902122d66b5d7bb7330d81911e1a6e"/></dir><dir name="release-notes"><file name="0.8.10-20150116.html" hash="54b37d0590df5f093d9334b2f73cbac4"/><file name="0.8.12.html" hash="26043d9aa4382398177b5b2295c4f067"/><file name="0.8.13.html" hash="e9bf17af343bfd0931eed6c2f6f0273e"/><file name="0.8.14.html" hash="2d87675e13144be97952e36a757f2811"/><file name="0.8.15.html" hash="41375887fbde15eb7577e0bb4bada0e2"/><file name="0.8.16.html" hash="1c1b11a533bfa26187892946bfd7f339"/><file name="0.8.17.html" hash="277597117d81d75a3cab78ba2fe6ad23"/><file name="0.9.0.html" hash="58b3590294904915d3e12e9caf697d2e"/><file name="1.0.0.html" hash="f48f9b999929433e2aeedc263f2571bf"/></dir></dir><dir name="etc"><file name="Contactlab_Commons.xml" hash="bfd174f2535b432589bff0f4fc81ecec"/><file name="adminhtml.xml" hash="460f3ff0ebf20c55d0cfa94429481402"/><file name="config.xml" hash="8382fea8507f2a8ecdbc0e249c318e7c"/><file name="system.xml" hash="ad0e508dfb1d77131bc69e796c16f024"/></dir><dir name="sql"><dir name="contactlab_commons_setup"><file name="install-0.8.0.php" hash="46661857fcf01cbe2cde396924f47f61"/><file name="mysql4-install-0.8.0.php" hash="83032fadee6577e80844079adc580c97"/><file name="upgrade-0.8.0-0.8.1.php" hash="d963ac18fd5150a697280c445715ef3d"/><file name="upgrade-0.8.1-0.8.2.php" hash="d2dc6cb4e61becd440e0aa1ef86741ab"/><file name="upgrade-0.8.13-0.8.14.php" hash="aa7a1797ae911908547e6ebced4c277a"/><file name="upgrade-0.8.2-0.8.3.php" hash="fbc0488645da03c2cc86305a348ee067"/><file name="upgrade-0.8.3-0.8.4.php" hash="9caf4bed86e90f29ef7abaad0c172cd2"/><file name="upgrade-1.0.0-1.0.1.php" hash="22bbf46398b73475ef1e367a9377c834"/></dir></dir></dir><dir name="Subscribers"><dir name="Block"><dir name="Adminhtml"><file name="Export.php" hash="dbbc2d51a507bf3a4b7aaaf006b2e9c4"/></dir><dir name="Newsletter"><dir name="Subscribers"><file name="Modify.php" hash="9011a378b053f6363b38de63e448da82"/><file name="Subscribe.php" hash="32873e816417af84e88016af6b36a2ba"/><file name="Update.php" hash="563e0dfa5d463d763f21356f2438aa38"/></dir></dir></dir><dir name="Helper"><file name="Checks.php" hash="999b92aac7be891bc67e24f907870caa"/><file name="Data.php" hash="70d6a682392e64be00c6a71238092500"/><file name="Exporter.php" hash="12043ac3f7ae14bd7084b740cca51a7a"/><file name="Uk.php" hash="6d50c16ef3ce7144c6e6587a96880cab"/></dir><dir name="Model"><dir name="Checks"><file name="AbstractCheck.php" hash="afdc7117177bdccc70da33f3691f0ae2"/><file name="CheckInterface.php" hash="94e1743d9de7d356c1fd786b6e54a162"/><file name="ContactlabAuthApiKeyCheck.php" hash="053fc17bf8b98f0bf627640be869a2c7"/><file name="FindDuplicatedCustomersCheck.php" hash="abe297974dc05fcd153de9c0fbd488bf"/><file name="FindInvalidCustomersCheck.php" hash="757d9ba4e1960e8d11bd269523841a9c"/><file name="RewritesCheck.php" hash="1ec4b03fd4b9033374ff68498a63a973"/><file name="SftpSubscriberExporter.php" hash="13e52d267d247f77590d25f11bb0c150"/><file name="SftpXmlDeliveryCheck.php" hash="02500839942354e3529d41b53696808e"/><file name="WsdlCheck.php" hash="0d5c9946ae3fc26014aabe393610614f"/></dir><file name="Cron.php" hash="ff998d290ff804b490ac64acfb44917f"/><file name="EmailExport.php" hash="b3ed1b090b825a8e53139eff9e107944"/><dir name="Exporter"><dir name="Subscribers"><dir name="InfoTransporter"><file name="Abstract.php" hash="c308d4728f88d9adf2e8cc1ad738f25b"/><file name="Customer.php" hash="31525219d45a3b57021e53e94a747599"/><file name="Deleted.php" hash="81c35ae7dc9079e6066a6daceff6fb96"/><file name="Subscriber.php" hash="fe7d8919967b4eca845377e43bf10292"/></dir><dir name="MapTransporter"><file name="Abstract.php" hash="33dd82745d6d5278165dbd015eea754b"/><file name="Address.php" hash="32b7874a1923f98befd2bb53e0ee6547"/><file name="Attribute.php" hash="1c88e00280f50a0b649145219dc908a3"/></dir></dir><file name="Subscribers.php" hash="658a6674332f2f6b9915e2b0ffb8ab37"/></dir><file name="Fields.php" hash="1647ad72d9ffd01507ff2e1905d06840"/><dir name="Importer"><file name="Subscribers.php" hash="0c087db3b7461e704c7b0190abb982bc"/></dir><dir name="Newsletter"><file name="Subscriber.php" hash="aeffddf37091ff4a231d7845b30925c8"/><dir name="Subscribers"><file name="Observer.php" hash="b53c359c47de8695bb8f5187b765e547"/></dir></dir><dir name="Observer"><file name="Fields.php" hash="1914da6670e6e036090124376a63da38"/><file name="Uk.php" hash="0deac2259e97a2ef1a72d2b8a2217bc2"/></dir><file name="Observer.php" hash="ec02dd05f20c942c3b677deb74c31599"/><dir name="Resource"><dir name="EmailExport"><file name="Collection.php" hash="8f15643741b8dd7a4be2a6d1fc57b2cf"/></dir><file name="EmailExport.php" hash="d042bdf71ade2d80100fc39b96315f39"/><dir name="Fields"><file name="Collection.php" hash="b9c7ef78e14d06a803b78731283ec3ba"/></dir><file name="Fields.php" hash="17cc1061442f3124c0483e21c6cb60cf"/><dir name="Newsletter"><file name="Subscriber.php" hash="10c1cc4516fc0644655c01225d43b022"/></dir><dir name="Stats"><file name="Collection.php" hash="fa92b14e6d466d517d5390840268ff6e"/></dir><file name="Stats.php" hash="3b8e15132397711baf499c0fb654ab17"/><dir name="Uk"><file name="Collection.php" hash="660d44a3a3fbce7b7f30b2aa5cb97381"/></dir><file name="Uk.php" hash="673867d3e06ca928bb544c96536b9103"/></dir><dir name="Soap"><file name="AbstractSubscriberCall.php" hash="e5a6854a6abe1e2c7c1947c02f6742fb"/><file name="GetSubscriptionStatus.php" hash="4e3f2f2034f56a82b3f29492082c887c"/><file name="SetSubscriptionStatus.php" hash="c356bf8ab55d28f38db0efc729f2cabd"/><file name="StartSubscriberDataExchangeCall.php" hash="ed9ea900676fb00e12ff58c19e0ef1c4"/><file name="SubscriberNotFoundException.php" hash="7b34788b3e71febcafe5d17f83192b54"/></dir><file name="Stats.php" hash="288b3b4312d0bf366caf6e1e6c913a44"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Export"><file name="CheckUkPolicy.php" hash="4c52ee5463ff95d2a30714a24c2e521a"/><file name="Policy.php" hash="67e0a791095847cb89cb2ce311e4865f"/></dir></dir></dir></dir><dir name="Task"><file name="CalcStatsRunner.php" hash="eb0f152c42b2317b90ee00d27f947431"/><file name="ClearStatsRunner.php" hash="274ed827c0af4b888f9470fbf11ff86b"/><file name="ExportSubscribersRunner.php" hash="cd95a707bb542b08edf9e94fc5e153e6"/><file name="ImportSubscribersRunner.php" hash="496745ed30b1f274e543a5be9015078e"/><file name="StartSubscriberDataExchangeRunner.php" hash="97df2b3a6347be0a8a3d6f2c1ff78ad5"/><file name="TruncateUkRunner.php" hash="b8a48277c93f25f8d6a4ea42af437ff1"/><file name="UpdateSubscriberStatusRunner.php" hash="c13756209e73667f443d63cd8e4af691"/><file name="UpdateUkRunner.php" hash="31d73e9569367927286de0581d2285fc"/></dir><file name="Uk.php" hash="646eb6fc1af9b5ab601a7eed25a22050"/></dir><dir name="Test"><dir name="Helper"><file name="Checks.php" hash="5a9734a2fca4b49ab942c450ebf32775"/></dir><dir name="Model"><dir name="Checks"><file name="ContactlabAuthApiKeyCheck.php" hash="dc14e7d82c433914eea09a75c4e6f5a2"/><file name="FindDuplicatedCustomersCheck.php" hash="2a33873168c94d31c098704fecf4e6c4"/><file name="FindInvalidCustomersCheck.php" hash="5b6985695993e8acbd540a82d1a83aee"/><file name="RewritesCheck.php" hash="93d008de2807cb0209a397720b2c6499"/><file name="WsdlCheck.php" hash="9a49fe2a35ce7d9391d443b26fc31d8a"/></dir><file name="Uk.php" hash="5254745888787f083b4361e2f0ce4a31"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Subscribers"><file name="ExportController.php" hash="141c13b29c3d08a8cebc5753910853d4"/><file name="ImportController.php" hash="e30470248e0b2f6d48daa9c76cb46b00"/><file name="StatsController.php" hash="b7dcf038c82964db4574b20a44efea4c"/><file name="UkController.php" hash="ac2669685426ce5dad4bd9784a75297e"/></dir></dir></dir><file name="EditController.php" hash="0e73ec91f39642065c0278b96c1afcae"/><file name="ModifyController.php" hash="1c7d1cc32e5869515d2e688e818e7fda"/></dir><dir name="data"><dir name="contactlab_subscribers_setup"><file name="data-upgrade-0.8.4-0.8.5.php" hash="b44b6ee842349b9dbcf93d237af61960"/></dir></dir><dir name="docs"><dir name="build"><file name="build.bash" hash="114980c92310c5672fc3b9b7819e7838"/><file name="files.txt" hash="103f8b2fa61f4887416f0e9218a62a1a"/></dir><dir name="release-notes"><file name="0.8.12-20150116.html" hash="4b0889525dc1d40ffd703dcdd72edbcc"/><file name="0.8.13-20150204.html" hash="4f30d3b723ebee5f784ce3bc0b39ee25"/><file name="0.8.14-20150213.html" hash="cdcbb67655d0595e4dee4f63b011edbe"/><file name="0.8.15-20150309.html" hash="3913bab1da721f35377a289b99bbd642"/><file name="0.8.16.html" hash="68b8c749ac7269c4cd879b2088563a39"/><file name="0.8.17.html" hash="1ee5b5904b4998ca23b07fdd7aeafcb1"/><file name="0.8.18.html" hash="509dbbf9eca227918f75bd32beb297c9"/><file name="0.8.20.html" hash="4a69862b759a69219fd5ab40de4ad51d"/><file name="0.8.21.html" hash="60f170d1c2115d06791123d47ba93804"/><file name="0.9.0.html" hash="281a85179f31f5f700949c7e748b0949"/><file name="0.9.1.html" hash="bd181e6d14d0dc4a805b5532a7887068"/><file name="1.0.0.html" hash="6abd3f6f069ffeb16a507c0938f122de"/><file name="1.0.1.html" hash="352c95a5379c7d36189ec6ec5a0c34ec"/></dir></dir><dir name="etc"><file name="Contactlab_Subscribers.xml" hash="c9808465720abbf1eb7be475dbf3b826"/><file name="adminhtml.xml" hash="9d122f10695f3fe0de64852790034bd2"/><file name="config.xml" hash="63720be461d85cb2b7256003ee945931"/><file name="system.xml" hash="cc05be0c07f0bc6890f306ec77344338"/></dir><dir name="sql"><dir name="contactlab_subscribers_setup"><file name="install-0.8.0.php" hash="a6368d7e6de257005c34fc35972ba075"/><file name="mysql4-install-0.8.0.php" hash="ea9534669baf1f8ba83460eb373e4b3f"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="37388310991d293e7a4d3dcc079f1aa7"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="19858565525423737b71d63d24ce9b9e"/><file name="mysql4-upgrade-1.2.0-1.2.2.php" hash="f9ebd160d597bf10efa203940b4842e9"/><file name="upgrade-0.8.0-0.8.1.php" hash="4c8fd8b51ccda4b27bcf26018e07b9e2"/><file name="upgrade-0.8.1-0.8.2.php" hash="9586aad0f8aeebd7cfe0bda6401c22b3"/><file name="upgrade-0.8.11-0.8.12.php" hash="3f756983b338d11793ec74ff9d7927e6"/><file name="upgrade-0.8.2-0.8.3.php" hash="eaef3ceb5c6faf88c80fb3f28a925a86"/><file name="upgrade-0.8.21-0.8.22.php" hash="65fa0c02fba038f4f80a54e0462c7cbe"/><file name="upgrade-0.8.3-0.8.4.php" hash="5cb53b73936560c4796f5a1387326a45"/><file name="upgrade-0.8.4-0.8.5.php" hash="8b5aceb8a31a965211cc61e46ef046a6"/><file name="upgrade-0.8.5-0.8.6.php" hash="7f3ad36681c04662e4e7f0592005fdd9"/><file name="upgrade-0.8.6-0.8.7.php" hash="b27c5bfe8ca80d562f053bda5407de00"/><file name="upgrade-0.8.7-0.8.8.php" hash="c689709dcb32d0c8d201feb873abb123"/></dir></dir></dir><dir name="Template"><dir name="Block"><dir name="Adminhtml"><dir name="Newsletter"><dir name="Queue"><file name="Grid.php" hash="c4db6dfbe5aaec238bd87e564f5a3ee3"/></dir><dir name="Template"><dir name="Edit"><file name="Form.php" hash="e82b1748370ada98120e548434378ee9"/><file name="Js.php" hash="ebbbac2c2dee60e7ab3c5b3261c52afe"/></dir><file name="Edit.php" hash="53c4ff205c6bc310fa3360faf0446dab"/><dir name="Grid"><dir name="Renderer"><file name="XmlDeliveryStatus.php" hash="e44366255dede7766352fd46393f0f74"/></dir></dir><file name="Grid.php" hash="5efc3c750a8e835fabe5476ef3d1eb19"/><file name="Preview.php" hash="f3f5e99187b6cf9aea0dfd3a83333256"/><dir name="Tasks"><dir name="Detail"><file name="Grid.php" hash="7f50caf5bbd90dbb647af5050f906472"/></dir><file name="Detail.php" hash="e77a09eb9509449eedec7f1bbf70ce16"/><dir name="List"><file name="Grid.php" hash="c6a17747bca319e572dfaa1c032ef93e"/></dir><file name="List.php" hash="a9a88e4d3e49656478ea6f30e1b62a3e"/><dir name="Renderer"><file name="Customer.php" hash="c66e7e05724639e78a515ad1c6de64ae"/><file name="QueueStatus.php" hash="11ecc8c97fcbdaef6fb32818e2962e0c"/></dir></dir></dir></dir><dir name="Tasks"><file name="DebugEmail.php" hash="eeb4b0c88b85f67d0d9114ec0896e8df"/></dir><dir name="Type"><dir name="Edit"><file name="Form.php" hash="534b775de153ecdea8bd47a5c7e092fd"/></dir><file name="Edit.php" hash="7f26eaaa253b8c990310ed8492156fda"/><dir name="Grid"><dir name="Renderer"><file name="ConfigureLink.php" hash="76986da99f39c8b9c4a480422d3bd09f"/></dir></dir><file name="Grid.php" hash="c7c202bd5b9c05c58dc29db784855b5b"/></dir><file name="Type.php" hash="e9e36e56d903ef59e01eb12cdd7d1d54"/><dir name="Widget"><dir name="Button"><file name="Queue.php" hash="85fbfe18a7b7c15fd2a0e4815f8a8ca1"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="415aff5ceafe5cae0003c31b8cbf43f8"/><file name="SampleData.php" hash="3e6f32e688ba54258e5da3c7e43a3f10"/></dir><dir name="Model"><file name="Cron.php" hash="7be54cb8f3e49634394af331e5e98020"/><dir name="Newsletter"><dir name="Processor"><file name="Abstract.php" hash="6c8306ba4048bf55c83099cda2469230"/><file name="Cart.php" hash="3a0faf58aec4c85f025c0bff40646954"/><dir name="Filter"><file name="Abstract.php" hash="8a8bc082d68a1c7b90b5389961b60654"/><file name="AbstractDistinctByType.php" hash="2df05bdf36525c085f6c436d2402d607"/><dir name="Cart"><file name="DistinctByType.php" hash="63e3a03b08544121597bc7461ee52a58"/><file name="Dnd.php" hash="6f5a9cf91b56839bc5a7aee4e9a11ccd"/><file name="Have.php" hash="53cac800d406d02e82ae2bf0d984d95f"/><file name="Offset.php" hash="a9f08eedbd380fccea16dc77397d9e23"/><file name="ProductNumber.php" hash="b44135b3b7961cefc506c32891f4a6f1"/><file name="ProductNumberOrTotal.php" hash="1e3f5319efb8ce64b613dcfd6d0a2e37"/><file name="Products.php" hash="70ce880903fcb560006818de030f05db"/><file name="TotalValue.php" hash="334865e6d2a46ddffc3e657eebd5ea21"/></dir><file name="EmailLike.php" hash="34baf8be2aa88a1fe44a71daa87258f8"/><file name="Interface.php" hash="6d2ab6e8d5af5595ea69b928ff27af24"/><file name="OnlyCustomers.php" hash="1fd9a34c408c5a2daca53ea1d840838a"/><file name="Store.php" hash="d90f4af3d625c8280bfabfeac11ce6fe"/><file name="TestMode.php" hash="28817391eec06780c63effc30320e88b"/><dir name="Wishlist"><file name="DistinctByType.php" hash="b622a455f689cd37130ed61e91178711"/><file name="Dnd.php" hash="db13849f95786253e417c16a00bbcea6"/><file name="Have.php" hash="6f238c533f13264b84b0cbf2c4c809f5"/><file name="Offset.php" hash="fe1a43fc318299023ecc6b5352851791"/><file name="ProductNumber.php" hash="9589494f825b57010a2eed5b38562f10"/><file name="ProductNumberOrTotal.php" hash="9242bcc98946d488d6bac0a956eae9e8"/><file name="Products.php" hash="ce7319e5d81c4d9defaadf8363832f3e"/><file name="TotalValue.php" hash="c92bfbb5553c43f2ecacb0cecb55d5ce"/></dir></dir><file name="Generic.php" hash="fba6d138633a3e6d26b6ad59ae929650"/><file name="Interface.php" hash="2020fccf75ca93268e7154a4a06f6c1b"/><file name="Wishlist.php" hash="cf15890ad4d8f19869a3781433753bd5"/></dir><dir name="Queue"><file name="Link.php" hash="fee98cd3b7f7a7c5afe368ecdb2501a7"/></dir><file name="Queue.php" hash="245f401bd4cda90f84c6e32599029f31"/><dir name="Template"><dir name="Compiler"><file name="Abstract.php" hash="8a845abd46468d70cce4e545c2f5a6ad"/><file name="Html.php" hash="2270a452f83be6f3799784a03c393d82"/><file name="Interface.php" hash="bd7016c85bbd710462edc1dafab56590"/><file name="Text.php" hash="cb7aa7cb17e6f2fbe0c5147fea92e478"/></dir></dir><file name="Template.php" hash="1ba50c7e0562007d057301825018b523"/><dir name="XmlDelivery"><file name="Check.php" hash="8fc3262308c334a6e343c497ea57ffaa"/><file name="Uploader.php" hash="ad08e461e406d5f0201cf83583601ef3"/></dir><file name="XmlDelivery.php" hash="f0acd8fe4d0f34d852b1ff884f6ec8a8"/></dir><dir name="Resource"><dir name="Customer"><file name="Collection.php" hash="03eda84abd4ac99c2af60f0f8eca0de0"/></dir><dir name="Newsletter"><dir name="Queue"><file name="Collection.php" hash="17af76b4158b5a44a4171c74e8583738"/><dir name="Link"><file name="Collection.php" hash="880d705a6d77ed16720328393c842d1a"/></dir><file name="Link.php" hash="f4fbc8acd94f5cc0149e9ca814ef990b"/></dir><dir name="Subscriber"><file name="Collection.php" hash="687587b1f9c45c5d658c658026b8252d"/></dir><dir name="Template"><file name="Collection.php" hash="4c4311fbd664e9a8574ba24562862601"/></dir><file name="Template.php" hash="039f4f6e808777aa0c7b74c3b631f8db"/></dir><dir name="Type"><file name="Collection.php" hash="26d09eb4764f6fb93b856fc170a6be35"/></dir><file name="Type.php" hash="8d6c9001caa99ceb0f01cc9f54f2c4af"/></dir><file name="SimpleXMLExtended.php" hash="e28b6caa960498fb75e77d3cebf9472a"/><dir name="System"><dir name="Config"><dir name="Source"><file name="AndOr.php" hash="114c0a86611d6c0149afc4de3c75df42"/><dir name="Delivery"><file name="Method.php" hash="6175029d59b582745a98fba681375b68"/></dir><dir name="Template"><file name="Format.php" hash="527644942d74c5634d1d8f84db24ee77"/><file name="Type.php" hash="292c1f9dc7494315f44976f1163f4574"/></dir></dir></dir></dir><dir name="Task"><file name="CheckNewsletterQueueRunner.php" hash="47a52258ab016e7c9fce57fc9ad5039c"/><file name="Observer.php" hash="3f42a203d2277413a49bbd5d57c966b4"/><file name="ProcessNewsletterQueueRunner.php" hash="d48d15de98e3ea8b17745180b26a7af8"/></dir><file name="Type.php" hash="e7bb0be8ae8d070534511b780d201145"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Contactlab"><dir name="Template"><file name="TasksController.php" hash="42d11595cb143afb80e947447904a145"/><file name="TypesController.php" hash="81d5bb593d180df76b8bb33213c71fbd"/></dir><file name="TemplateController.php" hash="3566bc5c3b5f1cd98c365509c3d060de"/></dir><dir name="Newsletter"><file name="QueueController.php" hash="865e18bb175eed185395e3fef1d9dcd2"/><file name="TemplateController.php" hash="abad2cbd9ed0305b3ee5b00cec122074"/></dir></dir><file name="SampleDataController.php" hash="7738e817f7cc8373ce01ab677a8b38ce"/></dir><dir name="data"><dir name="contactlab_template_setup"><file name="data-install-0.8.0.php" hash="691ec4f1cba03ba9a7769e01b4abd3f0"/><file name="data-upgrade-0.8.20-0.8.21.php" hash="14af0bf01230abfac7b229a7667d2966"/></dir></dir><dir name="docs"><dir name="example-templates"><file name="subject_ac.json" hash="c9aa774df01bb168afc0a6e4cf235aa4"/><file name="subject_wl.json" hash="e28b414b6e180613f71fa89628aeb19d"/></dir><dir name="release-notes"><file name="0.8.16-20150116.html" hash="388bb0b9da2461dc90e06303de060e53"/><file name="0.8.17.html" hash="11fb8e56f568027c4b76874368b1daf9"/><file name="0.8.18.html" hash="5d279e41c4d13d3695bc4a01f15ecd78"/><file name="0.8.19.html" hash="fb4533ceb065c1427c58c5e9a44f1910"/><file name="0.8.20.html" hash="e87bade4cedf6e9195cdc7a06a99da5e"/><file name="0.8.21.html" hash="b6e4733fc5bcb75ae4c547f942c40867"/><file name="0.8.22.html" hash="439ee80a2effdc14a7a9a3b1284ae7b6"/><file name="0.8.23.html" hash="04d631373ca8f4e1583fe2fad988579f"/><file name="0.8.24.html" hash="bbc1e1430ad40da34319f676ca195637"/><file name="0.9.0.html" hash="a98c626b81251e26dc0f0ad4fe1a04dd"/></dir></dir><dir name="etc"><file name="Contactlab_Template.xml" hash="bd6884cf9b2f8219f598ea88945d9399"/><file name="adminhtml.xml" hash="25d34cfae07b3150a41024831431edba"/><file name="config.xml" hash="1505f260468c412446cfa255d11dd202"/><file name="system.xml" hash="5d60aa6e3ff1f44cb7489887e72b17f8"/></dir><dir name="sql"><dir name="contactlab_template_setup"><file name="install-0.8.0.php" hash="cfbacdd1ee0dd6dafc7ef2743b2025bd"/><file name="upgrade-0.8.0-0.8.1.php" hash="a892632623aced9c2bba7163cfbd551a"/><file name="upgrade-0.8.1-0.8.2.php" hash="d57ebb94370bf344a19d30bd535c5f3e"/><file name="upgrade-0.8.19-0.8.20.php" hash="454bd54e260fa943cbf4b7e9a54de176"/><file name="upgrade-0.8.2-0.8.3.php" hash="762bc1fea119803410241325fdd5565b"/><file name="upgrade-0.8.22-0.8.23.php" hash="2ac19163d9a9fe007b36d4259271e3af"/><file name="upgrade-0.8.23-0.8.24.php" hash="9a706c92d2db43b60821adfd952b7f77"/><file name="upgrade-0.8.3-0.8.4.php" hash="1ce583cd1bd968eda2df28731d29c4f1"/><file name="upgrade-0.8.4-0.8.5.php" hash="cf6d33fadc358f58712f434314c7d39b"/><file name="upgrade-0.8.5-0.8.6.php" hash="fb815dc3ba13ee481db03886222deadb"/><file name="upgrade-0.8.6-0.8.7.php" hash="889d8a78c3fe624793fbaa5418962d28"/><file name="upgrade-0.8.7-0.8.8.php" hash="482a3378bca1b09d4face0c127576f92"/><file name="upgrade-0.8.8-0.8.9.php" hash="8d47c0ea100e856a892fb3cff8dafd76"/><file name="upgrade-0.8.9-0.8.10.php" hash="92bc695e4384444f82389938bc13be7e"/><file name="upgrade-0.9.0-0.9.1.php" hash="26865bc769baa932139eaf0067a46637"/></dir></dir></dir><dir name="Transactional"><dir name="Helper"><file name="Data.php" hash="4faf1b37aa9c5728d0301ac608538346"/></dir><dir name="Model"><dir name="Email"><file name="Queue.php" hash="6ca14247c8ead4872eab29f0fb3a4b16"/><file name="Template.php" hash="dea2688b02842777165a1a9d32f298e1"/></dir><dir name="Task"><file name="SendEmailRunner.php" hash="663ab3b2161b5dc4a331727b6763c77e"/></dir><dir name="Zend"><file name="Mail.php" hash="dc53255485ee9c4f8e3b77c0d39aaaec"/></dir></dir><dir name="docs"><dir name="release-notes"><file name="0.8.2.html" hash="5551bb5b36f227baa4a82ac09aa306f8"/><file name="0.8.3.html" hash="277597117d81d75a3cab78ba2fe6ad23"/><file name="0.8.31.html" hash="16739925886a489366a264cd14c33144"/><file name="0.9.0.html" hash="018fe082f4ef876621ea545a782f16f1"/></dir></dir><dir name="etc"><file name="Contactlab_Transactional.xml" hash="84437b19aaef7fa6566916485a1eb750"/><file name="adminhtml.xml" hash="09d3fa7ef4d802a69141a501824f3aab"/><file name="config.xml" hash="e848167e69b20248880a2307ca2f7e35"/><file name="system.xml" hash="be6f9b0c56c0ceaf926dff49948239a2"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Contactlab_Commons.xml" hash="15d6ae561458b10ef58609958cd1f35f"/><file name="Contactlab_Subscribers.xml" hash="2b205efa6475e1e150e8ea44295667c7"/><file name="Contactlab_Template.xml" hash="c331e35581ef2d31bb44b9b0aea238af"/><file name="Contactlab_Transactional.xml" hash="c21f85926a68b2acee33bc8cf34ebd44"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="contactlab"><file name="commons.xml" hash="57f77de04d63427bccce155ae59a0afd"/><file name="subscribers.xml" hash="f2295e56e52bb01baabb8a21c6c8202f"/><file name="template.xml" hash="ea0c45a73ae8fdcfc39e3d2fc60753f3"/></dir></dir><dir name="template"><dir name="contactlab"><dir name="commons"><file name="configurationcheck.phtml" hash="52029752074af134c8c9327ccf877cb3"/><file name="releasenotes.phtml" hash="10fda97a68d16416a4c908827c0bef62"/><file name="send_mail.phtml" hash="cedfe0a520b352e90c15f72f035dad80"/><dir name="tasks"><file name="js.phtml" hash="b2af96ef1c0452c7149916239249dffd"/><file name="status.phtml" hash="d0ff3be39627817088b88b1bbcdbb50d"/></dir><file name="test.phtml" hash="fcdd03dbe2f50880f62e72aae413d78b"/><file name="version.phtml" hash="3852f6508e96d7d3baccd1e73f56a95a"/></dir><dir name="subscribers"><file name="export.phtml" hash="fcdd03dbe2f50880f62e72aae413d78b"/><file name="subscribers.phtml" hash="14f2aee80e4efa4f1880a2f58ea93781"/><file name="uk.phtml" hash="41c2632e9a48df0ae50fb0d354c7fa01"/></dir><dir name="template"><dir name="edit"><file name="js.phtml" hash="0069a9b4e0b4d26e3d7ac84f605e6e2e"/><file name="validation.phtml" hash="e10df9913a3bb580b4ec5dc92e2b8ba9"/></dir><dir name="tasks"><file name="buttons.phtml" hash="cfcd1a72de994e37a5ac1d5f75d15aa4"/><file name="debugemail.phtml" hash="ba04523182e084b2c7187880835429e5"/></dir><dir name="type"><file name="edit.phtml" hash="b2978f07be2d00dd483046c27d385a5c"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="contactlab"><file name="subscribers.xml" hash="f912768983740fa5e4788d5fd81e4ff9"/></dir></dir><dir name="template"><dir name="contactlab"><dir name="subscribers"><dir name="newsletter"><dir name="subscribers"><file name="modify.phtml" hash="62c882d900bf4bcf4e588505c2aabed4"/><file name="subscribe.phtml" hash="ef4a1960fc673f9fdaa6fedca1e4bb80"/><file name="update.phtml" hash="432fd89d460cf9b83ee50b92aef4498b"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="contactlab"><file name="Contactlab_Commons.csv" hash="a716e3c52977bef0a83b8bc64eed6d54"/></dir></dir><dir name="it_IT"><dir name="contactlab"><file name="Contactlab_Commons.csv" hash="dd3274eadbefadf8f4da01b1fbcaa417"/><file name="Contactlab_Subscribers.csv" hash="084bd18f108750ce7ba504cd17bd0552"/><file name="Contactlab_Template.csv" hash="4058983ef5aee89c12a36fe359875908"/><file name="Contactlab_Transactional.csv" hash="c10ccac895b8bf97fd133b65579ae4eb"/></dir></dir></target><target name="mage"><dir name="js"><dir name="contactlab_commons"><dir name="adminhtml"><file name="tasks.js" hash="e8e91556e4e122bfc8b53647a4535d53"/></dir></dir></dir></target><target name="magelib"><dir name="contactlab"><file name="Attachment.php" hash="4dd95e31c3cb73d1d55e5ae51a17209a"/><file name="AuthToken.php" hash="00955cde5b7ad26a6933bea2331ef012"/><file name="BounceDetail.php" hash="488404a38f87a2bb69963c13008457c5"/><file name="Campaign.php" hash="9e71bfc36afadb5238e99f65aed291dc"/><file name="CampaignFeedback.php" hash="9ec796ddb3826fa2ef79661b9f476e6b"/><file name="CampaignLookupPreferences.php" hash="247a1d11f2b48f88b0ab3ffd49808247"/><file name="CampaignNote.php" hash="766543c655f647357ebe3f1e11c5ecd4"/><file name="CampaignNotes.php" hash="2554a41a65a99ab00fd2bf847f09f63d"/><file name="Campaigns.php" hash="ce759e2d677623f0482dc71f451674b7"/><file name="ClabService.php" hash="0cb5e81e9abee888a82238604f405408"/><file name="CommunicationCategory.php" hash="d4a3dff3d71cac521dff8aff568f7780"/><file name="EmailMessage.php" hash="abb361cbbc827ae4e810788d680dda60"/><file name="FaxMessage.php" hash="4a6718c8cf06e19fd90597be4fae8511"/><file name="LookupPreferences.php" hash="7ecd011496f99453bc45d0b5f05caf20"/><file name="Message.php" hash="88372af680074a0d4215601ace73c3c0"/><file name="MessageModels.php" hash="49e44071f3639a599fa4d30759b99f01"/><file name="Recipients.php" hash="f3de79ad97782f4511cc4592a5751fea"/><file name="Sender.php" hash="ec91192aae86f5da011d05f9556d3b07"/><file name="SlicedDataSet.php" hash="7ee3e0ea0f67c7c85ab74015f6b12a56"/><file name="Subscriber.php" hash="2cce2c60f49b2bfe8650bf07ccd7e0fb"/><file name="SubscriberAttribute.php" hash="071cf1754e47ee6141de6a68e85d27a7"/><file name="SubscriberSource.php" hash="a4d2ae669640c6bd65a3e0fcb2467540"/><file name="SubscriberSourceField.php" hash="3b2d2526698832801047059fc1269018"/><file name="SubscriberSourceFilter.php" hash="f19bb9876b432bb5fa3e980936942070"/><file name="SubscriberSourceFilters.php" hash="6ee53b041cc5b873faf55edd38e6c5b4"/><file name="SubscriberSources.php" hash="ad2b28a80ede3ca2fc3affbb81228065"/><file name="Subscribers.php" hash="91ab6d1096a4be9047d006502b347d4d"/><file name="TextMessage.php" hash="e9213ccffefd2910ca5c4df09287ccbc"/><file name="TrackedLink.php" hash="830f2542cdfd8abe196c40d0976717a4"/><file name="TrackedLinks.php" hash="eeef87e8d7716bc02b118f237e9e7f08"/><file name="XMLDeliveryInfos.php" hash="a92d8f147d831e0d8ad9a59ac175ebcd"/><file name="addAttachment.php" hash="aafb4d4b4ff429d53ff04e9d4280ce7f"/><file name="addAttachmentResponse.php" hash="fd82c72432993a38ec954cbadd70a907"/><file name="addCampaignNote.php" hash="97b30bcaa074445579b0cc101405f222"/><file name="addCampaignNoteResponse.php" hash="a43580bce766bb90976cf37a7e8b12b7"/><file name="addSubscriber.php" hash="10d8330a8c31d8a74a643389efcdc863"/><file name="addSubscriberResponse.php" hash="17ee7cbf8ab81934334e43f23758473c"/><file name="addSubscriberSource.php" hash="9bc3c67af5132b4384124fb373a7bdf4"/><file name="addSubscriberSourceFilter.php" hash="c9b8b8ab031be5be6672e24686a08724"/><file name="addSubscriberSourceFilterResponse.php" hash="d8a43ceef9b5e43f0ad2916a68afd9c6"/><file name="addSubscriberSourceResponse.php" hash="28f6abe65906eef415e180b5c637ba36"/><file name="addSubscribers.php" hash="637fdea104587a2231f3c43839d2d5a1"/><file name="addSubscribersResponse.php" hash="37b214030476208d8742354329770257"/><file name="archiveSubscriberSourceFilter.php" hash="e5ef057e35d274e3139a386330093eab"/><file name="archiveSubscriberSourceFilterResponse.php" hash="bd56103fddbf9d2fd0e6d4b868123b50"/><file name="borrowToken.php" hash="c7e3736ab5dd453b372f261c1511f795"/><file name="borrowTokenResponse.php" hash="c888fb23b89d9a12ae45cf09dc07cbc6"/><file name="cancelCampaign.php" hash="837363783c11e4751144cea5b20b250a"/><file name="cancelCampaignResponse.php" hash="c09fcdc56774b82cca16222ffc360525"/><file name="cloneAndSendCampaign.php" hash="bc85929ae1f2b694e4d80df22c0cfa12"/><file name="cloneAndSendCampaignResponse.php" hash="b9f4afa47bb0c7d953d8471858bd8181"/><file name="countSubscribers.php" hash="97cdbdd6c4a5949b2d3c6b79adf7dc0a"/><file name="countSubscribersIncludedInFilter.php" hash="a4c1953510ee1f1f680ddcb50dedda83"/><file name="countSubscribersIncludedInFilterResponse.php" hash="e950b50136733aeefb57faac759318b0"/><file name="countSubscribersResponse.php" hash="47f5b01e68a5337241e540d8d14d6506"/><file name="createCampaign.php" hash="7af3d8b6176af5dbed9005002c5f9fea"/><file name="createCampaignResponse.php" hash="1f94aa0ced02397e5cbc3685880ff6c6"/><file name="createMessageModel.php" hash="3a2be564063f933b2c9a5220f75aba19"/><file name="createMessageModelResponse.php" hash="e77c07e74f6b2adb906d663d6a5ab796"/><file name="findArchivedFiltersBySubscriberSource.php" hash="665fdb9883a932354b9646e1cdcdc085"/><file name="findArchivedFiltersBySubscriberSourceResponse.php" hash="c28a96905fc9c85e3be850a9b3182ff3"/><file name="findCampaigns.php" hash="994da9782174931b0c4959a595ae35db"/><file name="findCampaignsByModel.php" hash="94cd24329ce937cd504917ba19813022"/><file name="findCampaignsByModelResponse.php" hash="606ea2662d7ed0c0ed90816142b8a423"/><file name="findCampaignsByNameOrSubject.php" hash="729aafc3da9fc5d60cc89bcf37e384d9"/><file name="findCampaignsByNameOrSubjectResponse.php" hash="3205d1dda7a1dbc55cb13451422509b3"/><file name="findCampaignsByNote.php" hash="e642c65d5c05d3a29a2882702a972029"/><file name="findCampaignsByNoteResponse.php" hash="3daab98189a2bf900c373bba533bccfc"/><file name="findCampaignsByStatus.php" hash="06bfdd8059f962e5152bf4690a9a1432"/><file name="findCampaignsByStatusResponse.php" hash="f2e2a60b926a4b055ee3ad35eb35467c"/><file name="findCampaignsResponse.php" hash="aa12cfdb1dc21618c9dcea68ce4e4a36"/><file name="findCampaignsSentBetween.php" hash="5978f7d3ea6d4e169aeef958a93b64a7"/><file name="findCampaignsSentBetweenResponse.php" hash="27db82a783f299a904e5f840c6bead94"/><file name="findFiltersBySubscriberSource.php" hash="780c7a78fccb4e9072ef51fdb798ef0e"/><file name="findFiltersBySubscriberSourceResponse.php" hash="047ebedff8cdb8e3fbc22143b958443e"/><file name="findMessageModels.php" hash="249f73d33c9efdc16817ac6228827894"/><file name="findMessageModelsBySubscriberSource.php" hash="16ed2e80ac0b28a3bc0eaccdde43770d"/><file name="findMessageModelsBySubscriberSourceResponse.php" hash="7c75c3a33072fed17ca6ba08d927ef9a"/><file name="findMessageModelsResponse.php" hash="e2381a5ca3c286a4b2240b5af84f4cfb"/><file name="findNotesByCampaign.php" hash="816af78e41fbf6941ca5c6d508371add"/><file name="findNotesByCampaignResponse.php" hash="54964b987980cb5d2e9d918c8c7ff70c"/><file name="findPeriodicCampaigns.php" hash="ef83d75476d289d2e81fef015310e9f1"/><file name="findPeriodicCampaignsResponse.php" hash="e0cd3bf7f0ebd1750aaf4c124044bdef"/><file name="findSubscriberSources.php" hash="1f865ba0607fb54d611519483c0ba37e"/><file name="findSubscriberSourcesResponse.php" hash="468dffd45134f7a82e250c9eb35b7f1a"/><file name="findSubscribers.php" hash="84bcdc3899b6583110570a83aeba41f6"/><file name="findSubscribersIncludedInFilter.php" hash="8507b8aa27a40f4226584af4deba8c26"/><file name="findSubscribersIncludedInFilterResponse.php" hash="fe1f065e3c24c9fba93c91b104af3378"/><file name="findSubscribersResponse.php" hash="7da20215136d55a2d4a338e7b1e80fd8"/><file name="findTriggerableCampaigns.php" hash="df0d9f03bd0cd7db9983f3ed9520b9b5"/><file name="findTriggerableCampaignsResponse.php" hash="4936fc7428e96e27203db2222a2a3930"/><file name="getArchivedSubscriberSourceFilter.php" hash="b1ba4a087da85eeed8ad7d637b5b7289"/><file name="getArchivedSubscriberSourceFilterResponse.php" hash="c2c74693aa72e9cfe70da4c5552c1e10"/><file name="getAttachmentByCampaignId.php" hash="4d8d58c768c313e7a34df4b14762f216"/><file name="getAttachmentByCampaignIdResponse.php" hash="ee4653b2fd234eaf3ac3b2ae2763b218"/><file name="getAvailableCommunicationCategories.php" hash="2812d2d787575ca76a6c20a65d959012"/><file name="getAvailableCommunicationCategoriesResponse.php" hash="c44b3783ea5e09fc518026c2e1b4fea6"/><file name="getCampaign.php" hash="0ad3de64f6d886f3e7898370e0286b58"/><file name="getCampaignDeliveryStatus.php" hash="926b85895ffb17fa191151b3ff4f8407"/><file name="getCampaignDeliveryStatusResponse.php" hash="2373c615052b9cd1e96b80e110252804"/><file name="getCampaignFeedback.php" hash="88d80874aa7b4ff30e8dd8d228144045"/><file name="getCampaignFeedbackResponse.php" hash="3c5762d732130b5fc5f2e64d289c1fff"/><file name="getCampaignResponse.php" hash="e9c51b4c1ba979d2a131ffb7f7079fe7"/><file name="getCryptoKey.php" hash="bfb67fef4223514d4853750ae520cda3"/><file name="getCryptoKeyResponse.php" hash="6322e290ed7b23ab69ba5ce892a7ff3e"/><file name="getMessageModelById.php" hash="58a952e46581010154d17e2a2ceeeb97"/><file name="getMessageModelByIdResponse.php" hash="ad90f598343a0469479ad5eda0bcd5ae"/><file name="getRequestStatus.php" hash="9892f5714b0bf16f305d98102a142919"/><file name="getRequestStatusResponse.php" hash="8dfb0a5589dd0556163cf32a988ddfcc"/><file name="getSubscriber.php" hash="28b43e849621dc5f66e339504d709809"/><file name="getSubscriberDataExchangeStatus.php" hash="34defa00aa45b2c05e102af167f60bb7"/><file name="getSubscriberDataExchangeStatusResponse.php" hash="ccdeec492cf724027881a77801eee861"/><file name="getSubscriberResponse.php" hash="31bda97f6261d38931a9a6aca878729a"/><file name="getSubscriberSource.php" hash="e4952a57312cbb47127203ccd7282101"/><file name="getSubscriberSourceFilter.php" hash="38fed10d61883e7f3ad3eaf1017ff861"/><file name="getSubscriberSourceFilterResponse.php" hash="2f9ff8cdecedbdb80f5aed4f82e0872c"/><file name="getSubscriberSourceResponse.php" hash="6288ddc830b2ce6f19253185974e8d08"/><file name="getTrackedLinks.php" hash="65226faf6bdb6548900ecbe4d3f0589a"/><file name="getTrackedLinksResponse.php" hash="1baef1c35da95c50a96cac8dee266db1"/><file name="getXMLDeliveries.php" hash="bec33bc553d3d27088d43947b4b94cae"/><file name="getXMLDeliveriesResponse.php" hash="103249a095ecc11c6a8e45e6ee03ecf8"/><file name="getXMLDeliveryTransitions.php" hash="2c91cfced369a2f291e5926f0f45aa50"/><file name="getXMLDeliveryTransitionsResponse.php" hash="13a5da14b52d69eca8186e160bb1cbc8"/><file name="invalidateToken.php" hash="feb611c092d5679ac11671bde06703f1"/><file name="invalidateTokenResponse.php" hash="5dabc504490ed7f068dcb911f9f4de97"/><file name="keepaliveToken.php" hash="eaf6542a3cd270b21e6e7d184ddd1676"/><file name="keepaliveTokenResponse.php" hash="658b578b970184b6ad7182832db02d89"/><file name="modifySubscriberSubscriptionStatus.php" hash="af08f77094824b87a7806c23b9c16918"/><file name="modifySubscriberSubscriptionStatusByMailqId.php" hash="793b06ffae8d35b6a101b9747463d0bc"/><file name="modifySubscriberSubscriptionStatusByMailqIdResponse.php" hash="f36bb42ce9049625d54542e3b1433b1e"/><file name="modifySubscriberSubscriptionStatusResponse.php" hash="f7e1cece9f5ec7ec246e9c32a7b5dec4"/><file name="publishOnWeb.php" hash="8ba487c1078cd7ad73215aeb59f3df81"/><file name="publishOnWebResponse.php" hash="fb2315ebb11c0468662993a6c63f2fae"/><file name="removeSubscriber.php" hash="c54f6f12de913082d9d37d8b6512c5b5"/><file name="removeSubscriberResponse.php" hash="a685a6eb245d42ba68a8859a7c9976e3"/><file name="requestCampaignFeedbackReport.php" hash="83382be36afc47c912041e39a8a91bb5"/><file name="requestCampaignFeedbackReportResponse.php" hash="a355c87dd81366319a1cbcfef897b63d"/><file name="reuseSubscriberSourceFilter.php" hash="dbe58a95d2d2a9b22931e2f2846ee5a4"/><file name="reuseSubscriberSourceFilterResponse.php" hash="2662fccf2d3c0f8ea8c83748bebdebea"/><file name="sendCampaign.php" hash="d6fc6e6265c57a4d21a1c272e7c99154"/><file name="sendCampaignResponse.php" hash="4e2440bebed2a589fa0165d3e3eed483"/><file name="sendImmediateMessage.php" hash="a3e2036a82d71ff0a82a257a2075d409"/><file name="sendImmediateMessageResponse.php" hash="4c9602a44ac0b7a9eb5b898605af22be"/><file name="sendImmediateMessageSDataCData.php" hash="4642d684e187fde20dc81ccb802af084"/><file name="sendImmediateMessageSDataCDataCA.php" hash="233a58432de264308ad4331a0682821c"/><file name="sendImmediateMessageSDataCDataCAResponse.php" hash="5eab02d47c5833cc0a902bf14c761776"/><file name="sendImmediateMessageSDataCDataResponse.php" hash="351236b1b015e03abca60371fa689abf"/><file name="sendImmediateMessageSDataCIdCA.php" hash="5563f04200dd3533a33a1024ce8b4869"/><file name="sendImmediateMessageSDataCIdCAResponse.php" hash="5b4bac75edc19eb758f2a3553b278629"/><file name="sendImmediateMessageSIdCData.php" hash="71618fe49e43bff9cc53957324397056"/><file name="sendImmediateMessageSIdCDataCA.php" hash="7d2ecd18e0e87e71ace465d1d76d1169"/><file name="sendImmediateMessageSIdCDataCAResponse.php" hash="eae46b409221e5bd2bc58f554242eddc"/><file name="sendImmediateMessageSIdCDataResponse.php" hash="2b5cd3ca959cf22cceb445b8a9487467"/><file name="sendImmediateMessageSdataCAl.php" hash="0374318565674b93c9cc5af74b7dde8e"/><file name="sendImmediateMessageSdataCAlCA.php" hash="5cf7ab51277a87e467f1c1da0b7ca04b"/><file name="sendImmediateMessageSdataCAlCAResponse.php" hash="5f6b99e92f4125d4c5e2c1c52537fe84"/><file name="sendImmediateMessageSdataCAlResponse.php" hash="69b0e09d428b115b56b2dcf151434d0e"/><file name="sendImmediateMessageSidCAl.php" hash="4a5c3b7fdf4a590ea3afe97330520af9"/><file name="sendImmediateMessageSidCAlCA.php" hash="8ee842963b8de8d887b47601cc5acd7e"/><file name="sendImmediateMessageSidCAlCAResponse.php" hash="6e574a4a6a4a87a38db7be60e3ee3855"/><file name="sendImmediateMessageSidCAlResponse.php" hash="6ba97d1cdf7012bfe1fe1964a2943f9e"/><file name="sendImmediateMessageSidCid.php" hash="84d9a2e3fe11d462f18101ea7e5edee5"/><file name="sendImmediateMessageSidCidCA.php" hash="228313907a7ffb2034a8290ba0e7421c"/><file name="sendImmediateMessageSidCidCAResponse.php" hash="a03863e9cca7db6ee1ae5281a16fc3ef"/><file name="sendImmediateMessageSidCidResponse.php" hash="c98ee1afdad240a565bdc1e80da0418a"/><file name="setCampaignRecurrency.php" hash="d70b012427c8bcbb5b919132d3e6abbb"/><file name="setCampaignRecurrencyResponse.php" hash="31339f0edbb429ababc2430e44761f67"/><file name="startSubscriberDataExchange.php" hash="e4dce40e847d1eb73dff51c867dd58da"/><file name="startSubscriberDataExchangeResponse.php" hash="8cf8b384dd795929b8dc067462ec4673"/><file name="triggerDeliveryByAlias.php" hash="28a46cf449766ad8dabde4858d41b6f2"/><file name="triggerDeliveryByAliasResponse.php" hash="1990179026c6d67dc061bcaabfed5a30"/><file name="triggerDeliveryById.php" hash="6e3b46ecc600bffcd9ab52bcc19f51f7"/><file name="triggerDeliveryByIdResponse.php" hash="ef45334a763e77f60238dac80c0d2cc9"/><file name="updateSubscriber.php" hash="ff20a2ee470eaf9cfbb9b313307fc543"/><file name="updateSubscriberResponse.php" hash="6da25998752a81b407c85e26c7047a8d"/><file name="uploadMediaContent.php" hash="e93aca9ec6e1b36371836e539efb41a3"/><file name="uploadMediaContentResponse.php" hash="6ed39f2d177b4705768cf35db6829c2f"/><file name="xmlDeliveryInfo.php" hash="cc0bbdbe9741e5be2d6e5cdccea43c91"/><file name="xmlDeliveryTransitionInfo.php" hash="f0fd36cf966311c097eb2ebbe63d7afa"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="contactlab"><dir name="commons"><file name="cancel.png" hash="17065c5c397c6f6ca9ac97ab1033f88a"/><file name="delete.png" hash="61e27f7ba4b87e918351239b160c03de"/><file name="retry.png" hash="45700cc820e53665b269352564f08957"/><file name="run.png" hash="595432ecd2f7124cb5e96279a727c944"/><file name="suspend.png" hash="8f2ea46ca3b37ab4fefbf5d8b7b66cf0"/><file name="unsuspend.png" hash="5b3bf2cc96fa070b727b8d0765f2704d"/></dir></dir></dir></dir></dir></dir></target></contents>
|
| 35 |
<compatible/>
|
| 36 |
<dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
|
| 37 |
</package>
|
