Version Notes
Made the sending of emails more lightweight on Client Server
Download this release
Release Info
Developer | Simon Cooper |
Extension | Swift_Swiftplugin |
Version | 1.1.16 |
Comparing to | |
See all releases |
Code changes from version 1.1.15 to 1.1.16
app/code/community/Swift/Swiftplugin/controllers/IndexController.php
ADDED
@@ -0,0 +1,174 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once(Mage::getBaseDir('lib') . '/SwiftAPI/SwiftAPI.php');
|
4 |
+
require_once(Mage::getBaseDir('lib') . '/SwiftAPI/SwiftAPI_Request_Ping.php');
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Administration of swift plugin
|
8 |
+
*/
|
9 |
+
class Swift_Swiftplugin_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Renders the form by default, if record exists in the database then retrieve that value and load it to the page
|
13 |
+
*/
|
14 |
+
public function indexAction() {
|
15 |
+
echo "it works";
|
16 |
+
die();
|
17 |
+
$data = Mage::helper('swift/Data')->getSwiftPrivateData();
|
18 |
+
$swiftId = 0;
|
19 |
+
if (!is_bool($data) && is_array($data)) {
|
20 |
+
if (isset($data['swift_id'])) {
|
21 |
+
$swiftId = $data['swift_id'];
|
22 |
+
}
|
23 |
+
}
|
24 |
+
$swiftModel = Mage::getModel('swift/swift')->load($swiftId);
|
25 |
+
if ($swiftModel->getId() > 0 || $swiftId == 0) {
|
26 |
+
Mage::register('swift_data', $swiftModel);
|
27 |
+
$this->loadLayout();
|
28 |
+
$this->_addContent($this->getLayout()->createBlock('swift/adminhtml_swift_edit'))->_addLeft($this->getLayout()->createBlock('swift/adminhtml_swift_edit_tabs'));
|
29 |
+
$this->renderLayout();
|
30 |
+
}
|
31 |
+
else {
|
32 |
+
Mage::getSingleton('adminhtml/session')->addError('SwiftCRM key does not exist');
|
33 |
+
$this->_redirect('*/*/');
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Redirects to indexAction
|
39 |
+
*
|
40 |
+
*/
|
41 |
+
public function editAction() {
|
42 |
+
$this->_forward('index');
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Redirects to indexAction
|
47 |
+
*
|
48 |
+
*/
|
49 |
+
public function newAction() {
|
50 |
+
$this->_forward('edit');
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Perform validation and conversion on post variables before saving to database
|
55 |
+
*
|
56 |
+
*/
|
57 |
+
public function saveAction() {
|
58 |
+
if ($this->getRequest()->getPost()) {
|
59 |
+
try {
|
60 |
+
$postData = $this->getRequest()->getPost();
|
61 |
+
$testModel = Mage::getModel('swift/swift');
|
62 |
+
$existingModels = Mage::getModel('swift/swift')->getCollection();
|
63 |
+
if (count($existingModels) == 0 || $this->getRequest()->getParam('id')) {
|
64 |
+
if (ctype_xdigit ($postData['swift_private_key']) && strlen($postData['swift_private_key']) == 64) {
|
65 |
+
$postData['swift_send_history'] = isset($postData['swift_send_history']) ? '1' : '0';
|
66 |
+
$testModel->addData($postData)->setId($this->getRequest()->getParam('id'))->save();
|
67 |
+
Mage::getSingleton('adminhtml/session')->addSuccess('successfully saved');
|
68 |
+
// if successful ping send past orders to swiftcrm
|
69 |
+
if ($this->pingSwiftSystem($postData['swift_private_key']) == 1) {
|
70 |
+
$this->_forward('pastproduct');
|
71 |
+
}
|
72 |
+
}
|
73 |
+
else {
|
74 |
+
throw new Exception('Invalid string input');
|
75 |
+
}
|
76 |
+
$this->_redirect('*/*/');
|
77 |
+
}
|
78 |
+
else {
|
79 |
+
throw new Exception('Only one SwiftCRM key is allowed in the system.');
|
80 |
+
}
|
81 |
+
return;
|
82 |
+
} catch (Exception $e){
|
83 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
84 |
+
$this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
|
85 |
+
return;
|
86 |
+
}
|
87 |
+
}
|
88 |
+
$this->_redirect('*/*/');
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Deletes the record from the database
|
93 |
+
* NOTE: Unused
|
94 |
+
*/
|
95 |
+
public function deleteAction() {
|
96 |
+
if($this->getRequest()->getParam('id') > 0) {
|
97 |
+
try {
|
98 |
+
$testModel = Mage::getModel('swift/swift');
|
99 |
+
$testModel->setId($this->getRequest()->getParam('id'))->delete();
|
100 |
+
Mage::getSingleton('adminhtml/session')->addSuccess('successfully deleted');
|
101 |
+
$this->_redirect('*/*/');
|
102 |
+
}
|
103 |
+
catch (Exception $e) {
|
104 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
105 |
+
$this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
|
106 |
+
}
|
107 |
+
}
|
108 |
+
$this->_redirect('*/*/');
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* Send Past orders to Swiftcrm
|
113 |
+
*/
|
114 |
+
public function pastproductAction() {
|
115 |
+
|
116 |
+
$key = hex2bin(Mage::helper('swift/Data')->getSwiftPrivateKey());
|
117 |
+
if (!is_bool($key) && !is_null($key)) {
|
118 |
+
$version = Mage::getConfig()->getNode()->modules->Swift_Swiftplugin->version;
|
119 |
+
$domain = $_SERVER['HTTP_HOST'];
|
120 |
+
$user = Mage::helper('swift/Data')->generateUserId();
|
121 |
+
$url = 'http:'.SwiftApi::SWIFTAPI_CRM_URL;
|
122 |
+
|
123 |
+
$orderCollection = Mage::getModel('sales/order')->getCollection()
|
124 |
+
->addAttributeToFilter('created_at' , array('gt' => date('Y-m-d H:i:s', strtotime('-2 years'))));
|
125 |
+
foreach($orderCollection as $order_key => $order) {
|
126 |
+
$visibleItems = $order->getAllVisibleItems();
|
127 |
+
$products = array();
|
128 |
+
foreach($visibleItems as $order_item_key => $orderItem) {
|
129 |
+
$products[] = array('product' => $orderItem->getId(), 'price' => $orderItem->getPrice(), 'quantity' => $orderItem->getData('qty_ordered'));
|
130 |
+
}
|
131 |
+
$request = new SwiftAPI_Request_PastOrder($domain, $user, $order->getCustomerEmail(),$order->getCustomerFirstname(), $order->getCustomerLastname(), $products);
|
132 |
+
|
133 |
+
$options = array (
|
134 |
+
'http' => array(
|
135 |
+
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
|
136 |
+
'method' => 'POST',
|
137 |
+
'content' => SwiftAPI::Query($request, $key)
|
138 |
+
)
|
139 |
+
);
|
140 |
+
|
141 |
+
$context = stream_context_create($options);
|
142 |
+
$result = file_get_contents($url, false, $context);
|
143 |
+
echo $result;
|
144 |
+
}
|
145 |
+
Mage::getSingleton('adminhtml/session')->addSuccess('Past orders successfully sent to swift');
|
146 |
+
}
|
147 |
+
else {
|
148 |
+
Mage::getSingleton('adminhtml/session')->addError('You cannot perform this operation as you have not registered your private key with swift');
|
149 |
+
}
|
150 |
+
$this->_redirect('*/*/');
|
151 |
+
}
|
152 |
+
|
153 |
+
|
154 |
+
public function pingSwiftSystem($key) {
|
155 |
+
$domain = $_SERVER['HTTP_HOST'];
|
156 |
+
$user = Mage::helper('swift/Data')->generateUserId();
|
157 |
+
$url = 'http:'.SwiftApi::SWIFTAPI_CRM_URL;
|
158 |
+
$request = new SwiftAPI_Request_Ping($domain, $user, $key);
|
159 |
+
$options = array (
|
160 |
+
'http' => array(
|
161 |
+
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
|
162 |
+
'method' => 'POST',
|
163 |
+
'content' => SwiftAPI::Query($request, hex2bin($key))
|
164 |
+
)
|
165 |
+
);
|
166 |
+
|
167 |
+
$context = stream_context_create($options);
|
168 |
+
$result = file_get_contents($url, false, $context);
|
169 |
+
return $result;
|
170 |
+
// optional extra: send proper feedback to plugin in case something goes wrong with their setup
|
171 |
+
}
|
172 |
+
}
|
173 |
+
|
174 |
+
?>
|
app/code/community/Swift/Swiftplugin/controllers/MailController.php
CHANGED
@@ -40,17 +40,7 @@ class Swift_Swiftplugin_MailController extends Mage_Core_Controller_Front_Action
|
|
40 |
}
|
41 |
|
42 |
$mail = Mage::getModel('core/email');
|
43 |
-
|
44 |
-
$collection = Mage::getModel('customer/customer')->getCollection()->addAttributeToSelect(array('firstname','lastname','email'))->getItemsByColumnValue('email', $emailTo);
|
45 |
-
if (count($collection) > 1) {
|
46 |
-
foreach($collection as $colKey => $customer) {
|
47 |
-
$customerData = $customer->getData();
|
48 |
-
// if present
|
49 |
-
$mail->setToName($customerData['firstname'] . ' ' . $customerData['lastname']);
|
50 |
-
break;
|
51 |
-
}
|
52 |
-
}
|
53 |
-
|
54 |
$mail->setToEmail($emailTo);
|
55 |
$mail->setBody($body);
|
56 |
$mail->setSubject($subject);
|
40 |
}
|
41 |
|
42 |
$mail = Mage::getModel('core/email');
|
43 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
$mail->setToEmail($emailTo);
|
45 |
$mail->setBody($body);
|
46 |
$mail->setSubject($subject);
|
app/code/community/Swift/Swiftplugin/etc/config.xml
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
<modules>
|
6 |
<!-- This must exactly match the namespace and module's folder names, with directory separators replaced by underscores -->
|
7 |
<Swift_Swiftplugin>
|
8 |
-
<version>1.1.
|
9 |
</Swift_Swiftplugin>
|
10 |
</modules>
|
11 |
<!-- Configure our module's behavior in the frontend scope -->
|
5 |
<modules>
|
6 |
<!-- This must exactly match the namespace and module's folder names, with directory separators replaced by underscores -->
|
7 |
<Swift_Swiftplugin>
|
8 |
+
<version>1.1.16</version>
|
9 |
</Swift_Swiftplugin>
|
10 |
</modules>
|
11 |
<!-- Configure our module's behavior in the frontend scope -->
|
lib/SwiftAPI/SwiftAPI_Request_OrderPackage.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class SwiftAPI_Request_OrderPackage extends SwiftAPI_Request {
|
4 |
+
|
5 |
+
//////////////////////////////////////////////////////////////////////////////
|
6 |
+
// Public properties.
|
7 |
+
//////////////////////////////////////////////////////////////////////////////
|
8 |
+
|
9 |
+
public $orderPackage;
|
10 |
+
|
11 |
+
//////////////////////////////////////////////////////////////////////////////
|
12 |
+
// Public functions
|
13 |
+
//////////////////////////////////////////////////////////////////////////////
|
14 |
+
|
15 |
+
////////////////////////
|
16 |
+
// Public: __construct()
|
17 |
+
////////////////////////
|
18 |
+
|
19 |
+
public function __construct($domain, $user, $orderPackage, $version = NULL, $date = NULL)
|
20 |
+
{
|
21 |
+
$this -> orderPackage = $orderPackage;
|
22 |
+
parent::__construct($domain, SwiftAPI::OPERATION_ORDERPACKAGE, $user, $version, $date);
|
23 |
+
}
|
24 |
+
|
25 |
+
|
26 |
+
///////////////////
|
27 |
+
// Public: Create()
|
28 |
+
///////////////////
|
29 |
+
|
30 |
+
public static function Create(stdClass $fields)
|
31 |
+
{
|
32 |
+
parent::Validate($fields);
|
33 |
+
|
34 |
+
if(!is_array($fields -> orderPackage))
|
35 |
+
throw new SwiftAPI_Exception('SwiftAPI_Request_OrderPackage::Create(): "emailPackage" field is missing.');
|
36 |
+
|
37 |
+
foreach ($fields -> orderPackage as $email_content) {
|
38 |
+
if (!(is_object($email_content))) {
|
39 |
+
throw new SwiftAPI_Exception('SwiftAPI_Request_OrderPackage::Create(): "emailPackage" does not contain the class SwiftAPI_Request_Order.');
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
return new self
|
44 |
+
(
|
45 |
+
$fields -> domain,
|
46 |
+
$fields -> user,
|
47 |
+
$fields -> orderPackage,
|
48 |
+
$fields -> version,
|
49 |
+
$fields -> date
|
50 |
+
);
|
51 |
+
}
|
52 |
+
}
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Swift_Swiftplugin</name>
|
4 |
-
<version>1.1.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/LGPL-3.0">LGPL</license>
|
7 |
<channel>community</channel>
|
@@ -18,11 +18,11 @@ The extension uses background JavaScript calls to collect and store the customer
|
|
18 |
<p>
|
19 |
The extension is easy to set up and uses Magento’s built in features to collect information and send emails to the customers. Visit swiftcrm.net for prices and free trails.
|
20 |
</p></description>
|
21 |
-
<notes>
|
22 |
<authors><author><name>Simon Cooper</name><user>Netready</user><email>simon@netready.biz</email></author></authors>
|
23 |
-
<date>2015-
|
24 |
-
<time>
|
25 |
-
<contents><target name="magelib"><dir name="libXML"><file name="xml.php" hash="fc4d7c79c7b7ea2ac75f28c008cde8eb"/></dir><dir name="SwiftAPI"><file name="SwiftAPI.php" hash="1a2b4e86947847e5e524a1c53054f79e"/><file name="SwiftAPI_Exception.php" hash="879b899a7961f4de1212b7296ccafb16"/><file name="SwiftAPI_Product.php" hash="063922cccb485d81c6022de5c4e8e044"/><file name="SwiftAPI_Request.php" hash="da10370a1c8d9c1a8b5d4b1d3840d3b6"/><file name="SwiftAPI_Request_Cart.php" hash="f8955c78200ddb0512adb5214fd64bb2"/><file name="SwiftAPI_Request_EmailPackage.php" hash="221dd4bd936f022a9e07ad79d33c89a2"/><file name="SwiftAPI_Request_Home.php" hash="9268da121dd10db50d5c2675afd1c65e"/><file name="SwiftAPI_Request_Order.php" hash="cd8ce90614468bd4347df3c541482a4b"/><file name="SwiftAPI_Request_PastOrder.php" hash="be620e2e35d6634e6a616431f5312527"/><file name="SwiftAPI_Request_Ping.php" hash="e5e13b71682f8230711d5d2f28f9a534"/><file name="SwiftAPI_Request_Product.php" hash="e5fab27bb2dd45946ed8c143a18fe3c4"/><file name="SwiftAPI_Request_SendMail.php" hash="ba04382a3df6b3e179aed5fe3e809de7"/><file name="SwiftAPI_Request_Subscription.php" hash="5545738b941d8ca4dca69b6059a0cce4"/><file name="SwiftAPI_Request_Unsubscribe.php" hash="78aa37cc0ecb98d501674350a4a409c9"/><file name="SwiftAPI_Request_ViewMail.php" hash="773f0cc695838654b9056269622c217e"/><dir name="doc"><file name="SwiftAPI-Specification.html" hash="093cb08b66a596ebaeb0b50b4a0f8d79"/></dir><file name="index.php" hash="82886bb98883bd5868ea04c7d8c88ba5"/><file name="php.ini" hash="ef29c923925a1d1bbc8879c22297daa4"/></dir></target><target name="magecommunity"><dir name="Swift"><dir name="Swiftplugin"><dir name="Block"><dir name="Adminhtml"><dir name="Swift"><dir name="Edit"><file name="Form.php" hash="bd80ab8170f7f2286f13ac579e5249d9"/><dir name="Tab"><file name="Form.php" hash="3d15c45cb2205acabc20376f41a9bd5b"/><file name="Instruct.php" hash="9f34075cc9cdfa92b7876c33fda514de"/></dir><file name="Tabs.php" hash="993769f682fad7d28df79ff3acea97cc"/></dir><file name="Edit.php" hash="d93f75dbaaa7266d91e828b3208fbf2d"/></dir></dir><file name="Swiftblock.php" hash="ef4796eaf44aa8e4a9b144e5a9365166"/></dir><dir name="Helper"><file name="Data.php" hash="cad7e7ffcde09cdd3c089b42644e9d66"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Swift"><file name="Collection.php" hash="82de0fe56cd875d3e78c8fc690424ee1"/></dir><file name="Swift.php" hash="252d5f2ecb1119804b415758d2db6800"/></dir><file name="Observer.php" hash="139db0541de06e7bed17ad9d40fcd89b"/><file name="Swift.php" hash="1f9e49d4db7f8987cfd8858061fedc6a"/><file name="XmlProduct.php" hash="2e554f0f6c5dc8a1cfbf1fd33f850fa0"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="0d17d7a4d18d3a77fd1af945d016da74"/></dir><file name="MailController.php" hash="
|
26 |
<compatible/>
|
27 |
<dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php><extension><name>mcrypt</name><min/><max/></extension></required></dependencies>
|
28 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Swift_Swiftplugin</name>
|
4 |
+
<version>1.1.16</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/LGPL-3.0">LGPL</license>
|
7 |
<channel>community</channel>
|
18 |
<p>
|
19 |
The extension is easy to set up and uses Magento’s built in features to collect information and send emails to the customers. Visit swiftcrm.net for prices and free trails.
|
20 |
</p></description>
|
21 |
+
<notes>Made the sending of emails more lightweight on Client Server</notes>
|
22 |
<authors><author><name>Simon Cooper</name><user>Netready</user><email>simon@netready.biz</email></author></authors>
|
23 |
+
<date>2015-12-09</date>
|
24 |
+
<time>10:49:43</time>
|
25 |
+
<contents><target name="magelib"><dir name="libXML"><file name="xml.php" hash="fc4d7c79c7b7ea2ac75f28c008cde8eb"/></dir><dir name="SwiftAPI"><file name="SwiftAPI.php" hash="1a2b4e86947847e5e524a1c53054f79e"/><file name="SwiftAPI_Exception.php" hash="879b899a7961f4de1212b7296ccafb16"/><file name="SwiftAPI_Product.php" hash="063922cccb485d81c6022de5c4e8e044"/><file name="SwiftAPI_Request.php" hash="da10370a1c8d9c1a8b5d4b1d3840d3b6"/><file name="SwiftAPI_Request_Cart.php" hash="f8955c78200ddb0512adb5214fd64bb2"/><file name="SwiftAPI_Request_EmailPackage.php" hash="221dd4bd936f022a9e07ad79d33c89a2"/><file name="SwiftAPI_Request_Home.php" hash="9268da121dd10db50d5c2675afd1c65e"/><file name="SwiftAPI_Request_Order.php" hash="cd8ce90614468bd4347df3c541482a4b"/><file name="SwiftAPI_Request_OrderPackage.php" hash="91724705e976182c0bb1d7d7d6fc786f"/><file name="SwiftAPI_Request_PastOrder.php" hash="be620e2e35d6634e6a616431f5312527"/><file name="SwiftAPI_Request_Ping.php" hash="e5e13b71682f8230711d5d2f28f9a534"/><file name="SwiftAPI_Request_Product.php" hash="e5fab27bb2dd45946ed8c143a18fe3c4"/><file name="SwiftAPI_Request_SendMail.php" hash="ba04382a3df6b3e179aed5fe3e809de7"/><file name="SwiftAPI_Request_Subscription.php" hash="5545738b941d8ca4dca69b6059a0cce4"/><file name="SwiftAPI_Request_Unsubscribe.php" hash="78aa37cc0ecb98d501674350a4a409c9"/><file name="SwiftAPI_Request_ViewMail.php" hash="773f0cc695838654b9056269622c217e"/><dir name="doc"><file name="SwiftAPI-Specification.html" hash="093cb08b66a596ebaeb0b50b4a0f8d79"/></dir><file name="index.php" hash="82886bb98883bd5868ea04c7d8c88ba5"/><file name="php.ini" hash="ef29c923925a1d1bbc8879c22297daa4"/></dir></target><target name="magecommunity"><dir name="Swift"><dir name="Swiftplugin"><dir name="Block"><dir name="Adminhtml"><dir name="Swift"><dir name="Edit"><file name="Form.php" hash="bd80ab8170f7f2286f13ac579e5249d9"/><dir name="Tab"><file name="Form.php" hash="3d15c45cb2205acabc20376f41a9bd5b"/><file name="Instruct.php" hash="9f34075cc9cdfa92b7876c33fda514de"/></dir><file name="Tabs.php" hash="993769f682fad7d28df79ff3acea97cc"/></dir><file name="Edit.php" hash="d93f75dbaaa7266d91e828b3208fbf2d"/></dir></dir><file name="Swiftblock.php" hash="ef4796eaf44aa8e4a9b144e5a9365166"/></dir><dir name="Helper"><file name="Data.php" hash="cad7e7ffcde09cdd3c089b42644e9d66"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Swift"><file name="Collection.php" hash="82de0fe56cd875d3e78c8fc690424ee1"/></dir><file name="Swift.php" hash="252d5f2ecb1119804b415758d2db6800"/></dir><file name="Observer.php" hash="139db0541de06e7bed17ad9d40fcd89b"/><file name="Swift.php" hash="1f9e49d4db7f8987cfd8858061fedc6a"/><file name="XmlProduct.php" hash="2e554f0f6c5dc8a1cfbf1fd33f850fa0"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="0d17d7a4d18d3a77fd1af945d016da74"/></dir><file name="IndexController.php" hash="e3b7ebb44a55187c9085d9f1c4e7d060"/><file name="MailController.php" hash="af10fe5d485b1742ba5095510f2deea4"/><file name="XmlController.php" hash="97b777935db5174501034493dd561099"/></dir><dir name="etc"><file name="config.xml" hash="376af595b437f559372fcfbc0bd06dc4"/></dir><dir name="sql"><dir name="swift_setup"><file name="install-1.1.13.php" hash="2447b5645fc36738373678473cec88dc"/><file name="install-1.1.2.php" hash="00832a00c34cb4c997a96330cb28cbfb"/><file name="upgrade-1.1.2-1.1.12.php" hash="cbe3c3fa07facb7b720d7dd518acbeca"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="swift.xml" hash="d80a5229e30cf4b76f5a5150ac1c27c3"/></dir><dir name="template"><dir name="swift"><file name="swiftplugin.phtml" hash="d4d25148e09529e457b6436d7655627b"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Swift_all.xml" hash="0ae5a788c805a9fc79b402fe7a02e54d"/></dir></target></contents>
|
26 |
<compatible/>
|
27 |
<dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php><extension><name>mcrypt</name><min/><max/></extension></required></dependencies>
|
28 |
</package>
|