Swift_Swiftplugin - Version 1.9.0

Version Notes

Added curl support, but with backwards compatability if neccessary.

Download this release

Release Info

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


Code changes from version 1.8.0 to 1.9.0

app/code/community/Swift/Swiftplugin/Helper/Data.php CHANGED
@@ -98,6 +98,10 @@ class Swift_Swiftplugin_Helper_Data extends Mage_Core_Helper_Abstract {
98
  }
99
 
100
  }
 
 
 
 
101
  }
102
 
103
  ?>
98
  }
99
 
100
  }
101
+
102
+ public function _isCurl() {
103
+ return function_exists('curl_version');
104
+ }
105
  }
106
 
107
  ?>
app/code/community/Swift/Swiftplugin/controllers/Adminhtml/IndexController.php CHANGED
@@ -105,18 +105,34 @@ class Swift_Swiftplugin_Adminhtml_IndexController extends Mage_Adminhtml_Control
105
  public function pingSwiftSystem($key) {
106
  $domain = $_SERVER['HTTP_HOST'];
107
  $user = Mage::helper('swift/Data')->generateUserId();
108
- $url = 'http:'.SwiftApi::SWIFTAPI_CRM_URL;
109
  $request = new SwiftAPI_Request_Ping($domain, $user, $key);
110
- $options = array (
111
- 'http' => array(
112
- 'header' => "Content-type: application/x-www-form-urlencoded\r\n",
113
- 'method' => 'POST',
114
- 'content' => SwiftAPI::Query($request, Mage::helper('swift/Data')->_hex2bin($key))
115
- )
116
- );
117
 
118
- $context = stream_context_create($options);
119
- $result = file_get_contents($url, false, $context);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  return $result;
121
  // optional extra: send proper feedback to plugin in case something goes wrong with their setup
122
  }
105
  public function pingSwiftSystem($key) {
106
  $domain = $_SERVER['HTTP_HOST'];
107
  $user = Mage::helper('swift/Data')->generateUserId();
108
+ $url = 'http:'.SwiftApi::SWIFTAPI_CRM_URL;
109
  $request = new SwiftAPI_Request_Ping($domain, $user, $key);
 
 
 
 
 
 
 
110
 
111
+ if (Mage::helper('swift/Data')->_isCurl()) {
112
+ $curl = curl_init();
113
+ curl_setopt($curl, CURLOPT_URL, $url);
114
+ curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
115
+ curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded"));
116
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
117
+ curl_setopt($curl, CURLOPT_POST, 1);
118
+ curl_setopt($curl, CURLOPT_POSTFIELDS, SwiftAPI::Query($request, Mage::helper('swift/Data')->_hex2bin($key)));
119
+ $result = curl_exec($curl);
120
+ }
121
+ else {
122
+
123
+ $options = array (
124
+ 'http' => array(
125
+ 'header' => "Content-type: application/x-www-form-urlencoded\r\n",
126
+ 'method' => 'POST',
127
+ 'content' => SwiftAPI::Query($request, Mage::helper('swift/Data')->_hex2bin($key))
128
+ )
129
+ );
130
+
131
+ $context = stream_context_create($options);
132
+ $result = file_get_contents($url, false, $context);
133
+
134
+ }
135
+
136
  return $result;
137
  // optional extra: send proper feedback to plugin in case something goes wrong with their setup
138
  }
app/code/community/Swift/Swiftplugin/controllers/OrdersController.php CHANGED
@@ -55,16 +55,33 @@ class Swift_Swiftplugin_OrdersController extends Mage_Core_Controller_Front_Acti
55
 
56
  $request = new SwiftAPI_Request_PastOrder($domain, $user, $order->getCustomerEmail(), $order->getCustomerFirstname(), $order->getCustomerLastname(), $products, $order->getId(), null, null, $order->getCreatedAt());
57
 
58
- $options = array (
59
- 'http' => array(
60
- 'header' => "Content-type: application/x-www-form-urlencoded\r\n",
61
- 'method' => 'POST',
62
- 'content' => SwiftAPI::Query($request, $key)
63
- )
64
- );
65
-
66
- $context = stream_context_create($options);
67
- file_get_contents($url, false, $context);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
 
69
  if (isset($_GET['report'])) {
70
  $data = array('swift_order_id' => $order->getId());
@@ -80,11 +97,13 @@ class Swift_Swiftplugin_OrdersController extends Mage_Core_Controller_Front_Acti
80
  $response = array();
81
  $response['status'] = 3;
82
  $response['message'] = 'No more orders to send at this time, but has not fetched a full '. $limit;
 
83
  }
84
  else {
85
  $response = array();
86
- $response['status'] = 1;
87
  $response['message'] = 'Past orders successfully sent to swift';
 
88
  }
89
  }
90
  else {
55
 
56
  $request = new SwiftAPI_Request_PastOrder($domain, $user, $order->getCustomerEmail(), $order->getCustomerFirstname(), $order->getCustomerLastname(), $products, $order->getId(), null, null, $order->getCreatedAt());
57
 
58
+ // is curl available
59
+ if (Mage::helper('swift/Data')->_isCurl()) {
60
+ // init curl
61
+ $curl = curl_init();
62
+ curl_setopt($curl, CURLOPT_URL, $url);
63
+ curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
64
+ curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded"));
65
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
66
+ curl_setopt($curl, CURLOPT_POST, 1);
67
+ curl_setopt($curl, CURLOPT_POSTFIELDS, SwiftAPI::Query($request, $key));
68
+ $result = curl_exec($curl);
69
+
70
+ }
71
+ else {
72
+ // try file get contents
73
+ $options = array (
74
+ 'http' => array(
75
+ 'header' => "Content-type: application/x-www-form-urlencoded\r\n",
76
+ 'method' => 'POST',
77
+ 'content' => SwiftAPI::Query($request, $key)
78
+ )
79
+ );
80
+
81
+ $context = stream_context_create($options);
82
+ $result = file_get_contents($url, false, $context);
83
+
84
+ }
85
 
86
  if (isset($_GET['report'])) {
87
  $data = array('swift_order_id' => $order->getId());
97
  $response = array();
98
  $response['status'] = 3;
99
  $response['message'] = 'No more orders to send at this time, but has not fetched a full '. $limit;
100
+ $response['result'] = $result;
101
  }
102
  else {
103
  $response = array();
104
+ $response['status'] = 1;
105
  $response['message'] = 'Past orders successfully sent to swift';
106
+ $response['result'] = $result;
107
  }
108
  }
109
  else {
app/code/community/Swift/Swiftplugin/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Swift_Swiftplugin>
5
- <version>1.8.0</version>
6
  </Swift_Swiftplugin>
7
  </modules>
8
  <frontend>
2
  <config>
3
  <modules>
4
  <Swift_Swiftplugin>
5
+ <version>1.9.0</version>
6
  </Swift_Swiftplugin>
7
  </modules>
8
  <frontend>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Swift_Swiftplugin</name>
4
- <version>1.8.0</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>Added further php 5.2 support</notes>
22
  <authors><author><name>Simon Cooper</name><user>Netready</user><email>simon@netready.biz</email></author></authors>
23
- <date>2017-03-07</date>
24
- <time>14:12:11</time>
25
- <contents><target name="magelib"><dir name="libXML"><file name="xml.php" hash="c20ca4a39971acf4605247712186b9ec"/></dir><dir name="SwiftAPI"><file name="SwiftAPI.php" hash="8bb2f97586dbd62da6fd0d6781b67ae6"/><file name="SwiftAPI_Exception.php" hash="879b899a7961f4de1212b7296ccafb16"/><file name="SwiftAPI_Product.php" hash="063922cccb485d81c6022de5c4e8e044"/><file name="SwiftAPI_Request.php" hash="f072a4c42fe3767d769f8e9f9c824ecd"/><file name="SwiftAPI_Request_Cart.php" hash="f8955c78200ddb0512adb5214fd64bb2"/><file name="SwiftAPI_Request_EmailPackage.php" hash="a23bdf7699540ece514ec5a6f53ecb12"/><file name="SwiftAPI_Request_Home.php" hash="9268da121dd10db50d5c2675afd1c65e"/><file name="SwiftAPI_Request_Order.php" hash="49ff0d4c501b075f11ef94727d729a75"/><file name="SwiftAPI_Request_OrderPackage.php" hash="45ad4af3b24bfab66f96b493c830ceab"/><file name="SwiftAPI_Request_PastOrder.php" hash="90ac5fb44bd1ad61f39d277d268e3575"/><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_Version.php" hash="21cebd7eb59698bb0aae55bdeaa23660"/><file name="SwiftAPI_Request_ViewMail.php" hash="f0eb0236c7f6e1fa194d8f05f865a7d8"/><dir name="doc"><file name="SwiftAPI-Specification.html" hash="a31d6c9f13198d017f9f50ac787bea23"/><file name="SwiftAPI-Specification_v3.html" hash="17f8207291313730a72286901c61e44f"/></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="35b83bdbc2f43cd79d8ef4706128e306"/></dir><dir name="Helper"><file name="Data.php" hash="87fbf46bdb679010f005a042e7d9aecb"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Swift"><file name="Collection.php" hash="82de0fe56cd875d3e78c8fc690424ee1"/></dir><file name="Swift.php" hash="252d5f2ecb1119804b415758d2db6800"/><dir name="Swiftorders"><file name="Collection.php" hash="a9e75003a18fcedc8badf1ab3ae79719"/></dir><file name="Swiftorders.php" hash="881185eb5fa8af8fe385c1bfaaeb94e0"/></dir><file name="Observer.php" hash="8bb4dd498a57f1166ed1c85a2b8ab0e0"/><file name="Swift.php" hash="1f9e49d4db7f8987cfd8858061fedc6a"/><file name="Swiftorders.php" hash="e3f2d23f00e0ad8309a958a24b613678"/><file name="XmlProduct.php" hash="349444e751c37dae8e1e825ee581861b"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="95b0dc1e9bbdfeb684bac64a3bd653dc"/></dir><file name="MailController.php" hash="b1126e2aa65b11890dd83e12f8d46056"/><file name="OrdersController.php" hash="03622462f2de0a7829228522015985e9"/><file name="VersionController.php" hash="b9bebb51f946430a2dc7bfc82f96bf36"/><file name="XmlController.php" hash="e78cc03f619a75d43752e8bde42b0798"/></dir><dir name="etc"><file name="config.xml" hash="58e3c6c26633b115e70307c0ec596415"/></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="install-1.7.0.php" hash="13788c22d8b0ad31c68a775f06333d47"/><file name="upgrade-1.1.12-1.7.1.php" hash="979794d8258b7f3840e9699139505823"/><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.2.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.9.0</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>Added curl support, but with backwards compatability if neccessary.</notes>
22
  <authors><author><name>Simon Cooper</name><user>Netready</user><email>simon@netready.biz</email></author></authors>
23
+ <date>2017-03-21</date>
24
+ <time>15:07:00</time>
25
+ <contents><target name="magelib"><dir name="libXML"><file name="xml.php" hash="c20ca4a39971acf4605247712186b9ec"/></dir><dir name="SwiftAPI"><file name="SwiftAPI.php" hash="8bb2f97586dbd62da6fd0d6781b67ae6"/><file name="SwiftAPI_Exception.php" hash="879b899a7961f4de1212b7296ccafb16"/><file name="SwiftAPI_Product.php" hash="063922cccb485d81c6022de5c4e8e044"/><file name="SwiftAPI_Request.php" hash="f072a4c42fe3767d769f8e9f9c824ecd"/><file name="SwiftAPI_Request_Cart.php" hash="f8955c78200ddb0512adb5214fd64bb2"/><file name="SwiftAPI_Request_EmailPackage.php" hash="a23bdf7699540ece514ec5a6f53ecb12"/><file name="SwiftAPI_Request_Home.php" hash="9268da121dd10db50d5c2675afd1c65e"/><file name="SwiftAPI_Request_Order.php" hash="49ff0d4c501b075f11ef94727d729a75"/><file name="SwiftAPI_Request_OrderPackage.php" hash="45ad4af3b24bfab66f96b493c830ceab"/><file name="SwiftAPI_Request_PastOrder.php" hash="90ac5fb44bd1ad61f39d277d268e3575"/><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_Version.php" hash="21cebd7eb59698bb0aae55bdeaa23660"/><file name="SwiftAPI_Request_ViewMail.php" hash="f0eb0236c7f6e1fa194d8f05f865a7d8"/><dir name="doc"><file name="SwiftAPI-Specification.html" hash="a31d6c9f13198d017f9f50ac787bea23"/><file name="SwiftAPI-Specification_v3.html" hash="17f8207291313730a72286901c61e44f"/></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="35b83bdbc2f43cd79d8ef4706128e306"/></dir><dir name="Helper"><file name="Data.php" hash="b65fb579c39dc9e49093bb846894b39a"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Swift"><file name="Collection.php" hash="82de0fe56cd875d3e78c8fc690424ee1"/></dir><file name="Swift.php" hash="252d5f2ecb1119804b415758d2db6800"/><dir name="Swiftorders"><file name="Collection.php" hash="a9e75003a18fcedc8badf1ab3ae79719"/></dir><file name="Swiftorders.php" hash="881185eb5fa8af8fe385c1bfaaeb94e0"/></dir><file name="Observer.php" hash="8bb4dd498a57f1166ed1c85a2b8ab0e0"/><file name="Swift.php" hash="1f9e49d4db7f8987cfd8858061fedc6a"/><file name="Swiftorders.php" hash="e3f2d23f00e0ad8309a958a24b613678"/><file name="XmlProduct.php" hash="349444e751c37dae8e1e825ee581861b"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="5d4cecfaee823681cedabc3a7706b1f1"/></dir><file name="MailController.php" hash="b1126e2aa65b11890dd83e12f8d46056"/><file name="OrdersController.php" hash="36ca421569e18985c94af72f1d09bffc"/><file name="VersionController.php" hash="b9bebb51f946430a2dc7bfc82f96bf36"/><file name="XmlController.php" hash="e78cc03f619a75d43752e8bde42b0798"/></dir><dir name="etc"><file name="config.xml" hash="1a08f77d1ab0416d9571aaf6160d5318"/></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="install-1.7.0.php" hash="13788c22d8b0ad31c68a775f06333d47"/><file name="upgrade-1.1.12-1.7.1.php" hash="979794d8258b7f3840e9699139505823"/><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.2.0</min><max>6.0.0</max></php><extension><name>mcrypt</name><min/><max/></extension></required></dependencies>
28
  </package>