Swift_Swiftplugin - Version 1.1.12

Version Notes

Collects more information about products. The system sends message to SwiftCRM when a plugin has been successfully installed.

Download this release

Release Info

Developer Simon Cooper
Extension Swift_Swiftplugin
Version 1.1.12
Comparing to
See all releases


Code changes from version 1.1.11 to 1.1.12

app/code/community/Swift/Swiftplugin/Block/Adminhtml/Swift/Edit/Tab/Form.php CHANGED
@@ -25,14 +25,6 @@ class Swift_Swiftplugin_Block_Adminhtml_Swift_Edit_Tab_Form extends Mage_Adminht
25
  $form->setValues($data);
26
  }
27
 
28
-
29
- $fieldset->addField('swift_send_history', 'checkbox' , array(
30
- 'label' => 'Send information about past orders to SwiftCRM',
31
- 'name' => 'swift_send_history',
32
- 'value' => '1',
33
- 'checked' => true
34
- ))->setIsChecked(empty($data) || $data['swift_send_history'] == 1);
35
-
36
  return parent::_prepareForm();
37
  }
38
  }
25
  $form->setValues($data);
26
  }
27
 
 
 
 
 
 
 
 
 
28
  return parent::_prepareForm();
29
  }
30
  }
app/code/community/Swift/Swiftplugin/controllers/Adminhtml/IndexController.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
  require_once(Mage::getBaseDir('lib') . '/SwiftAPI/SwiftAPI.php');
 
4
 
5
  /**
6
  * Administration of swift plugin
@@ -62,7 +63,8 @@ class Swift_Swiftplugin_Adminhtml_IndexController extends Mage_Adminhtml_Control
62
  $postData['swift_send_history'] = isset($postData['swift_send_history']) ? '1' : '0';
63
  $testModel->addData($postData)->setId($this->getRequest()->getParam('id'))->save();
64
  Mage::getSingleton('adminhtml/session')->addSuccess('successfully saved');
65
- if ($postData['swift_send_history'] == 1) {
 
66
  $this->_forward('pastproduct');
67
  }
68
  }
@@ -105,7 +107,7 @@ class Swift_Swiftplugin_Adminhtml_IndexController extends Mage_Adminhtml_Control
105
  }
106
 
107
  /**
108
- * Send Past orders to Swift
109
  */
110
  public function pastproductAction() {
111
 
@@ -118,7 +120,6 @@ class Swift_Swiftplugin_Adminhtml_IndexController extends Mage_Adminhtml_Control
118
 
119
  $orderCollection = Mage::getModel('sales/order')->getCollection()
120
  ->addAttributeToFilter('created_at' , array('gt' => date('Y-m-d H:i:s', strtotime('-2 years'))));
121
-
122
  foreach($orderCollection as $order_key => $order) {
123
  $visibleItems = $order->getAllVisibleItems();
124
  $products = array();
@@ -126,6 +127,7 @@ class Swift_Swiftplugin_Adminhtml_IndexController extends Mage_Adminhtml_Control
126
  $products[] = array('product' => $orderItem->getId(), 'price' => $orderItem->getPrice(), 'quantity' => $orderItem->getData('qty_ordered'));
127
  }
128
  $request = new SwiftAPI_Request_PastOrder($domain, $user, $order->getCustomerEmail(),$order->getCustomerFirstname(), $order->getCustomerLastname(), $products);
 
129
  $options = array (
130
  'http' => array(
131
  'header' => "Content-type: application/x-www-form-urlencoded\r\n",
@@ -145,6 +147,26 @@ class Swift_Swiftplugin_Adminhtml_IndexController extends Mage_Adminhtml_Control
145
  }
146
  $this->_redirect('*/*/');
147
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  }
149
 
150
  ?>
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
63
  $postData['swift_send_history'] = isset($postData['swift_send_history']) ? '1' : '0';
64
  $testModel->addData($postData)->setId($this->getRequest()->getParam('id'))->save();
65
  Mage::getSingleton('adminhtml/session')->addSuccess('successfully saved');
66
+ // if successful ping send past orders to swiftcrm
67
+ if ($this->pingSwiftSystem($postData['swift_private_key']) == 1) {
68
  $this->_forward('pastproduct');
69
  }
70
  }
107
  }
108
 
109
  /**
110
+ * Send Past orders to Swiftcrm
111
  */
112
  public function pastproductAction() {
113
 
120
 
121
  $orderCollection = Mage::getModel('sales/order')->getCollection()
122
  ->addAttributeToFilter('created_at' , array('gt' => date('Y-m-d H:i:s', strtotime('-2 years'))));
 
123
  foreach($orderCollection as $order_key => $order) {
124
  $visibleItems = $order->getAllVisibleItems();
125
  $products = array();
127
  $products[] = array('product' => $orderItem->getId(), 'price' => $orderItem->getPrice(), 'quantity' => $orderItem->getData('qty_ordered'));
128
  }
129
  $request = new SwiftAPI_Request_PastOrder($domain, $user, $order->getCustomerEmail(),$order->getCustomerFirstname(), $order->getCustomerLastname(), $products);
130
+
131
  $options = array (
132
  'http' => array(
133
  'header' => "Content-type: application/x-www-form-urlencoded\r\n",
147
  }
148
  $this->_redirect('*/*/');
149
  }
150
+
151
+
152
+ public function pingSwiftSystem($key) {
153
+ $domain = $_SERVER['HTTP_HOST'];
154
+ $user = Mage::helper('swift/Data')->generateUserId();
155
+ $url = 'http:'.SwiftApi::SWIFTAPI_CRM_URL;
156
+ $request = new SwiftAPI_Request_Ping($domain, $user, $key);
157
+ $options = array (
158
+ 'http' => array(
159
+ 'header' => "Content-type: application/x-www-form-urlencoded\r\n",
160
+ 'method' => 'POST',
161
+ 'content' => SwiftAPI::Query($request, hex2bin($key))
162
+ )
163
+ );
164
+
165
+ $context = stream_context_create($options);
166
+ $result = file_get_contents($url, false, $context);
167
+ return $result;
168
+ // optional extra: send proper feedback to plugin in case something goes wrong with their setup
169
+ }
170
  }
171
 
172
  ?>
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.11</version>
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.12</version>
9
  </Swift_Swiftplugin>
10
  </modules>
11
  <!-- Configure our module's behavior in the frontend scope -->
app/code/community/Swift/Swiftplugin/sql/swift_setup/{upgrade-1.1.2-1.1.11.php → upgrade-1.1.2-1.1.12.php} RENAMED
File without changes
lib/SwiftAPI/SwiftAPI.php CHANGED
@@ -13,15 +13,16 @@ class SwiftAPI
13
 
14
  const VERSION = 2;
15
 
16
- const OPERATION_HOME = 'home';
17
- const OPERATION_PRODUCT = 'product';
18
- const OPERATION_CART = 'cart';
19
- const OPERATION_ORDER = 'order';
20
- const OPERATION_PASTORDER = 'pastorder';
21
- const OPERATION_SUBSCRIPTION = 'subscription';
22
- const OPERATION_VIEWMAIL = 'viewmail';
23
- const OPERATION_SENDMAIL = 'sendmail';
24
- const OPERATION_UNSUBSCRIBE = 'unsubscribe';
 
25
 
26
  const SWIFTAPI_CRM_URL = '//api.swiftcrm.net';
27
 
@@ -45,7 +46,7 @@ class SwiftAPI
45
 
46
  // Encrypt data and trim trailing NULL bytes.
47
  $data = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $json, MCRYPT_MODE_CBC, $iv);
48
-
49
  // Base64 encode message.
50
  if(!($msg = base64_encode($iv . $data)))
51
  throw new SwiftAPI_Exception('SwiftAPI::Encode(): Failed to base64 encode message.');
@@ -110,9 +111,9 @@ class SwiftAPI
110
  // Public: Link()
111
  /////////////////
112
 
113
- public static function Link(SwiftAPI_Request $request, $key, $content)
114
  {
115
- return '<a href="' . self::SWIFTAPI_CRM_URL . '?' . self::Query($request, $key) . '">' . $content . '</a>';
116
  }
117
 
118
 
13
 
14
  const VERSION = 2;
15
 
16
+ const OPERATION_HOME = 'home';
17
+ const OPERATION_PRODUCT = 'product';
18
+ const OPERATION_CART = 'cart';
19
+ const OPERATION_ORDER = 'order';
20
+ const OPERATION_PASTORDER = 'pastorder';
21
+ const OPERATION_SUBSCRIPTION= 'subscription';
22
+ const OPERATION_VIEWMAIL = 'viewmail';
23
+ const OPERATION_SENDMAIL = 'sendmail';
24
+ const OPERATION_UNSUBSCRIBE = 'unsubscribe';
25
+ const OPERATION_PING = 'ping';
26
 
27
  const SWIFTAPI_CRM_URL = '//api.swiftcrm.net';
28
 
46
 
47
  // Encrypt data and trim trailing NULL bytes.
48
  $data = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $json, MCRYPT_MODE_CBC, $iv);
49
+
50
  // Base64 encode message.
51
  if(!($msg = base64_encode($iv . $data)))
52
  throw new SwiftAPI_Exception('SwiftAPI::Encode(): Failed to base64 encode message.');
111
  // Public: Link()
112
  /////////////////
113
 
114
+ public static function Link(SwiftAPI_Request $request, $key, $content, Site $site)
115
  {
116
+ return '<a href="'. $site->getSslUrl() . self::SWIFTAPI_CRM_URL . '?' . self::Query($request, $key) . '">' . $content . '</a>';
117
  }
118
 
119
 
lib/SwiftAPI/SwiftAPI_Request.php CHANGED
@@ -54,34 +54,37 @@ abstract class SwiftAPI_Request
54
  {
55
  switch($fields -> operation)
56
  {
57
- case SwiftAPI::OPERATION_HOME:
58
- return SwiftAPI_Request_Home::Create($fields);
59
-
60
- case SwiftAPI::OPERATION_PRODUCT:
61
- return SwiftAPI_Request_Product::Create($fields);
62
-
63
- case SwiftAPI::OPERATION_CART:
64
- return SwiftAPI_Request_Cart::Create($fields);
65
-
66
- case SwiftAPI::OPERATION_ORDER:
67
- return SwiftAPI_Request_Order::Create($fields);
68
-
69
- case SwiftAPI::OPERATION_PASTORDER:
70
- return SwiftAPI_Request_PastOrder::Create($fields);
71
-
72
- case SwiftAPI::OPERATION_SUBSCRIPTION:
73
- return SwiftAPI_Request_Subscription::Create($fields);
74
-
75
- case SwiftAPI::OPERATION_VIEWMAIL:
76
- return SwiftAPI_Request_ViewMail::Create($fields);
77
-
78
- case SwiftAPI::OPERATION_SENDMAIL:
79
- return SwiftAPI_Request_SendMail::Create($fields);
80
- case SwiftAPI::OPERATION_UNSUBSCRIBE:
81
- return SwiftAPI_Request_Unsubscribe::Create($fields);
82
-
83
- default:
84
- throw new SwiftAPI_Exception('SwiftAPI_Request::Create(): Invalid operation: "' . $fields -> operation . '".');
 
 
 
85
  }
86
  }
87
 
54
  {
55
  switch($fields -> operation)
56
  {
57
+ case SwiftAPI::OPERATION_PING:
58
+ return SwiftAPI_Request_Ping::Create($fields);
59
+
60
+ case SwiftAPI::OPERATION_HOME:
61
+ return SwiftAPI_Request_Home::Create($fields);
62
+
63
+ case SwiftAPI::OPERATION_PRODUCT:
64
+ return SwiftAPI_Request_Product::Create($fields);
65
+
66
+ case SwiftAPI::OPERATION_CART:
67
+ return SwiftAPI_Request_Cart::Create($fields);
68
+
69
+ case SwiftAPI::OPERATION_ORDER:
70
+ return SwiftAPI_Request_Order::Create($fields);
71
+
72
+ case SwiftAPI::OPERATION_PASTORDER:
73
+ return SwiftAPI_Request_PastOrder::Create($fields);
74
+
75
+ case SwiftAPI::OPERATION_SUBSCRIPTION:
76
+ return SwiftAPI_Request_Subscription::Create($fields);
77
+
78
+ case SwiftAPI::OPERATION_VIEWMAIL:
79
+ return SwiftAPI_Request_ViewMail::Create($fields);
80
+
81
+ case SwiftAPI::OPERATION_SENDMAIL:
82
+ return SwiftAPI_Request_SendMail::Create($fields);
83
+ case SwiftAPI::OPERATION_UNSUBSCRIBE:
84
+ return SwiftAPI_Request_Unsubscribe::Create($fields);
85
+
86
+ default:
87
+ throw new SwiftAPI_Exception('SwiftAPI_Request::Create(): Invalid operation: "' . $fields -> operation . '".');
88
  }
89
  }
90
 
lib/SwiftAPI/SwiftAPI_Request_Ping.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ ////////////////////////////////////////////////////////////////////////////////
4
+ // Class: SwiftAPI_Request_Ping
5
+ ////////////////////////////////////////////////////////////////////////////////
6
+
7
+
8
+ class SwiftAPI_Request_Ping extends SwiftAPI_Request
9
+ {
10
+
11
+ //////////////////////////////////////////////////////////////////////////////
12
+ // Public properties.
13
+ //////////////////////////////////////////////////////////////////////////////
14
+
15
+ public $key;
16
+
17
+
18
+ //////////////////////////////////////////////////////////////////////////////
19
+ // Public functions
20
+ //////////////////////////////////////////////////////////////////////////////
21
+
22
+ ////////////////////////
23
+ // Public: __construct()
24
+ ////////////////////////
25
+
26
+ public function __construct($domain, $user, $key, $version = NULL, $date = NULL)
27
+ {
28
+ $this -> key = $key;
29
+
30
+ parent::__construct($domain, SwiftAPI::OPERATION_PING, $user, $version, $date);
31
+ }
32
+
33
+
34
+ ///////////////////
35
+ // Public: Create()
36
+ ///////////////////
37
+
38
+ public static function Create(stdClass $fields)
39
+ {
40
+ parent::Validate($fields);
41
+
42
+ if(empty($fields -> key))
43
+ throw new SwiftAPI_Exception('SwiftAPI_Request_Ping::Create(): "key" field is missing or empty.');
44
+
45
+ return new self
46
+ (
47
+ $fields -> domain,
48
+ $fields -> user,
49
+ $fields -> key,
50
+ $fields -> version,
51
+ $fields -> date
52
+ );
53
+ }
54
+ }
55
+
56
+ ?>
lib/SwiftAPI/SwiftAPI_Request_SendMail.php CHANGED
@@ -16,6 +16,7 @@ class SwiftAPI_Request_SendMail extends SwiftAPI_Request
16
  public $subject;
17
  public $body;
18
  public $monitor;
 
19
 
20
 
21
  //////////////////////////////////////////////////////////////////////////////
@@ -26,12 +27,20 @@ class SwiftAPI_Request_SendMail extends SwiftAPI_Request
26
  // Public: __construct()
27
  ////////////////////////
28
 
29
- public function __construct($domain, $user, $email, $subject, $body, $version = NULL, $date = NULL, $monitor = null)
30
  {
31
  $this -> email = $email;
32
  $this -> subject = $subject;
33
  $this -> body = $body;
34
  $this->monitor = $monitor;
 
 
 
 
 
 
 
 
35
  parent::__construct($domain, SwiftAPI::OPERATION_SENDMAIL, $user, $version, $date);
36
  }
37
 
@@ -60,6 +69,7 @@ class SwiftAPI_Request_SendMail extends SwiftAPI_Request
60
  $fields -> email,
61
  $fields -> subject,
62
  $fields -> body,
 
63
  $fields -> version,
64
  $fields -> date,
65
  $fields -> monitor
16
  public $subject;
17
  public $body;
18
  public $monitor;
19
+ public $emailId;
20
 
21
 
22
  //////////////////////////////////////////////////////////////////////////////
27
  // Public: __construct()
28
  ////////////////////////
29
 
30
+ public function __construct($domain, $user, $email, $subject, $body, $emailId, $version = NULL, $date = NULL, $monitor = null)
31
  {
32
  $this -> email = $email;
33
  $this -> subject = $subject;
34
  $this -> body = $body;
35
  $this->monitor = $monitor;
36
+
37
+ if ($emailId == 0) {
38
+ $this->emailId = null;
39
+ }
40
+ else {
41
+ $this->emailId = $emailId;
42
+ }
43
+
44
  parent::__construct($domain, SwiftAPI::OPERATION_SENDMAIL, $user, $version, $date);
45
  }
46
 
69
  $fields -> email,
70
  $fields -> subject,
71
  $fields -> body,
72
+ $fields -> emailId,
73
  $fields -> version,
74
  $fields -> date,
75
  $fields -> monitor
lib/SwiftAPI/SwiftAPI_Request_ViewMail.php CHANGED
@@ -14,6 +14,7 @@ class SwiftAPI_Request_ViewMail extends SwiftAPI_Request
14
 
15
  public $email;
16
  public $product;
 
17
 
18
 
19
  //////////////////////////////////////////////////////////////////////////////
@@ -24,10 +25,11 @@ class SwiftAPI_Request_ViewMail extends SwiftAPI_Request
24
  // Public: __construct()
25
  ////////////////////////
26
 
27
- public function __construct($domain, $user, $email, $product, $version = NULL, $date = NULL)
28
  {
29
  $this -> email = $email;
30
  $this -> product = $product;
 
31
 
32
  parent::__construct($domain, SwiftAPI::OPERATION_VIEWMAIL, $user, $version, $date);
33
  }
@@ -46,6 +48,9 @@ class SwiftAPI_Request_ViewMail extends SwiftAPI_Request
46
 
47
  if(empty($fields -> product))
48
  throw new SwiftAPI_Exception('SwiftAPI_Request_ViewMail::Create(): "product" field is missing or empty.');
 
 
 
49
 
50
  return new self
51
  (
@@ -53,6 +58,7 @@ class SwiftAPI_Request_ViewMail extends SwiftAPI_Request
53
  $fields -> user,
54
  $fields -> email,
55
  $fields -> product,
 
56
  $fields -> version,
57
  $fields -> date
58
  );
14
 
15
  public $email;
16
  public $product;
17
+ public $emailId;
18
 
19
 
20
  //////////////////////////////////////////////////////////////////////////////
25
  // Public: __construct()
26
  ////////////////////////
27
 
28
+ public function __construct($domain, $user, $email, $product, $emailId, $version = NULL, $date = NULL)
29
  {
30
  $this -> email = $email;
31
  $this -> product = $product;
32
+ $this-> emailId = $emailId;
33
 
34
  parent::__construct($domain, SwiftAPI::OPERATION_VIEWMAIL, $user, $version, $date);
35
  }
48
 
49
  if(empty($fields -> product))
50
  throw new SwiftAPI_Exception('SwiftAPI_Request_ViewMail::Create(): "product" field is missing or empty.');
51
+
52
+ if(empty($fields -> emailId))
53
+ throw new SwiftAPI_Exception('SwiftAPI_Request_ViewMail::Create(): "emailId" field is missing or empty.');
54
 
55
  return new self
56
  (
58
  $fields -> user,
59
  $fields -> email,
60
  $fields -> product,
61
+ $fields -> emailId,
62
  $fields -> version,
63
  $fields -> date
64
  );
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Swift_Swiftplugin</name>
4
- <version>1.1.11</version>
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
  &lt;p&gt;&#xD;
19
  The extension is easy to set up and uses Magento&#x2019;s built in features to collect information and send emails to the customers. Visit swiftcrm.net for prices and free trails.&#xD;
20
  &lt;/p&gt;</description>
21
- <notes>Collects more information about products</notes>
22
  <authors><author><name>Simon Cooper</name><user>Netready</user><email>simon@netready.biz</email></author></authors>
23
- <date>2015-03-16</date>
24
- <time>12:27:15</time>
25
- <contents><target name="magelib"><dir name="libXML"><file name="xml.php" hash="fc4d7c79c7b7ea2ac75f28c008cde8eb"/></dir><dir name="SwiftAPI"><file name="SwiftAPI.php" hash="69d2544d19ff2fa099acf8d45b980abd"/><file name="SwiftAPI_Exception.php" hash="879b899a7961f4de1212b7296ccafb16"/><file name="SwiftAPI_Product.php" hash="063922cccb485d81c6022de5c4e8e044"/><file name="SwiftAPI_Request.php" hash="5c80deaeca64897ca886d3e08dd2cc27"/><file name="SwiftAPI_Request_Cart.php" hash="f8955c78200ddb0512adb5214fd64bb2"/><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_Product.php" hash="e5fab27bb2dd45946ed8c143a18fe3c4"/><file name="SwiftAPI_Request_SendMail.php" hash="6e520291609cd87d95837606b0f9f7e5"/><file name="SwiftAPI_Request_Subscription.php" hash="5545738b941d8ca4dca69b6059a0cce4"/><file name="SwiftAPI_Request_Unsubscribe.php" hash="78aa37cc0ecb98d501674350a4a409c9"/><file name="SwiftAPI_Request_ViewMail.php" hash="4155b64e3d152a37750d34dfd6839130"/><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="04a1dcfb31537ff3ab7028066ed46967"/><file name="Instruct.php" hash="2fd453261a19b833363405c4ae2bcd34"/></dir><file name="Tabs.php" hash="0c556dafe429af303e3a908ccbb859aa"/></dir><file name="Edit.php" hash="934add564cd4406ef0a439700faa73be"/></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="e2887684881a6a93a618c9e7f812b1d7"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="287421a261f2a8847f9ffbe45160fb83"/></dir><file name="MailController.php" hash="511d30670177eb7286b71afc1ea5bdef"/><file name="XmlController.php" hash="97b777935db5174501034493dd561099"/></dir><dir name="etc"><file name="config.xml" hash="7d931fc43c51abe47afe07891d6f9ecc"/></dir><dir name="sql"><dir name="swift_setup"><file name="install-1.1.2.php" hash="00832a00c34cb4c997a96330cb28cbfb"/><file name="upgrade-1.1.2-1.1.11.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>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Swift_Swiftplugin</name>
4
+ <version>1.1.12</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/LGPL-3.0">LGPL</license>
7
  <channel>community</channel>
18
  &lt;p&gt;&#xD;
19
  The extension is easy to set up and uses Magento&#x2019;s built in features to collect information and send emails to the customers. Visit swiftcrm.net for prices and free trails.&#xD;
20
  &lt;/p&gt;</description>
21
+ <notes>Collects more information about products. The system sends message to SwiftCRM when a plugin has been successfully installed.</notes>
22
  <authors><author><name>Simon Cooper</name><user>Netready</user><email>simon@netready.biz</email></author></authors>
23
+ <date>2015-04-17</date>
24
+ <time>13:41:58</time>
25
+ <contents><target name="magelib"><dir name="libXML"><file name="xml.php" hash="fc4d7c79c7b7ea2ac75f28c008cde8eb"/></dir><dir name="SwiftAPI"><file name="SwiftAPI.php" hash="cfa15cb8d83a966b0d0c01d6177ff4e0"/><file name="SwiftAPI_Exception.php" hash="879b899a7961f4de1212b7296ccafb16"/><file name="SwiftAPI_Product.php" hash="063922cccb485d81c6022de5c4e8e044"/><file name="SwiftAPI_Request.php" hash="4a25a91dbd9a54e394200d7c5d724444"/><file name="SwiftAPI_Request_Cart.php" hash="f8955c78200ddb0512adb5214fd64bb2"/><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="0019baba484856949884139e4e733e45"/><file name="Instruct.php" hash="2fd453261a19b833363405c4ae2bcd34"/></dir><file name="Tabs.php" hash="0c556dafe429af303e3a908ccbb859aa"/></dir><file name="Edit.php" hash="934add564cd4406ef0a439700faa73be"/></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="e2887684881a6a93a618c9e7f812b1d7"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="0d17d7a4d18d3a77fd1af945d016da74"/></dir><file name="MailController.php" hash="511d30670177eb7286b71afc1ea5bdef"/><file name="XmlController.php" hash="97b777935db5174501034493dd561099"/></dir><dir name="etc"><file name="config.xml" hash="5cfaa66882cb65a5798cba6b13c702d3"/></dir><dir name="sql"><dir name="swift_setup"><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>