Version Notes
[2.5.19 - 09 novembre 2015]
Note: the extension is not affected by the patch SUPEE-6788 since it uses the new admin url routing syntax for 3 years (version 2.4.8.0)
Fix bug: deactivation of auto-escaping by default since it can cause some bugs (ex: impossible to use {address_filter.EU-27} in shipto)
Fix bug: fix auto-escaping of properties like {{shipto.country_name}}
Fix bug: variable replacements in labels (variables {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount})
Fix bug: use items and not quote to retrieve values {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount} (quote totals are not available at this time, calculating them causes duplications of addresses and a false grand_total value)
Fix bug: retrieve customer in backoffice order
Fix unicode accented chars in json_encode for PHP < 5.4
Fix bug: usage of regular expressions inside {count ...}, {sum ...}, {min ...} and {max ...}
Allow usage of php functions date and strtotime (ex: "label": "'Your package will be delivered between ' . date('d/m', strtotime('+5 days')) . ' and ' . date('d/m Y', strtotime('+7 days'))",
Release Info
Developer | owebia |
Extension | Owebia_Shipping_2 |
Version | 2.5.19 |
Comparing to | |
See all releases |
Code changes from version 2.5.18 to 2.5.19
- app/code/community/Owebia/Shipping2/Helper/Data.php +0 -2
- app/code/community/Owebia/Shipping2/Model/Carrier/Abstract.php +0 -27
- app/code/community/Owebia/Shipping2/Model/Os2/Data/Cart.php +27 -22
- app/code/community/Owebia/Shipping2/Model/Os2/Data/Customer.php +1 -1
- app/code/community/Owebia/Shipping2/Model/Os2/Data/Quote.php +13 -1
- app/code/community/Owebia/Shipping2/changelog +11 -0
- app/code/community/Owebia/Shipping2/etc/config.xml +4 -4
- app/code/community/Owebia/Shipping2/includes/OwebiaShippingHelper.php +11 -5
- package.xml +17 -14
@@ -93,8 +93,6 @@ class Owebia_Shipping2_Helper_Data extends Mage_Core_Helper_Data
|
|
93 |
),
|
94 |
array(
|
95 |
$cart->weight . $cart->weight_unit,
|
96 |
-
$this->currency($cart->price_including_tax),
|
97 |
-
$this->currency($cart->price_excluding_tax),
|
98 |
$this->currency($cart->{'price-tax+discount'}),
|
99 |
$this->currency($cart->{'price-tax-discount'}),
|
100 |
$this->currency($cart->{'price+tax+discount'}),
|
93 |
),
|
94 |
array(
|
95 |
$cart->weight . $cart->weight_unit,
|
|
|
|
|
96 |
$this->currency($cart->{'price-tax+discount'}),
|
97 |
$this->currency($cart->{'price-tax-discount'}),
|
98 |
$this->currency($cart->{'price+tax+discount'}),
|
@@ -155,33 +155,6 @@ abstract class Owebia_Shipping2_Model_Carrier_Abstract extends Mage_Shipping_Mod
|
|
155 |
return $this->_config;
|
156 |
}
|
157 |
|
158 |
-
protected function _getMethodText($process, $row, $property)
|
159 |
-
{
|
160 |
-
if (!isset($row[$property])) return '';
|
161 |
-
|
162 |
-
$output = '';
|
163 |
-
$cart = $process['data']['cart'];
|
164 |
-
return $output . ' ' . $this->_helper->evalInput($process, $row, $property, str_replace(
|
165 |
-
array(
|
166 |
-
'{cart.weight}',
|
167 |
-
'{cart.price-tax+discount}',
|
168 |
-
'{cart.price-tax-discount}',
|
169 |
-
'{cart.price+tax+discount}',
|
170 |
-
'{cart.price+tax-discount}',
|
171 |
-
),
|
172 |
-
array(
|
173 |
-
$cart->weight.$cart->weight_unit,
|
174 |
-
$this->__formatPrice($cart->price_including_tax),
|
175 |
-
$this->__formatPrice($cart->price_excluding_tax),
|
176 |
-
$this->__formatPrice($cart->{'price-tax+discount'}),
|
177 |
-
$this->__formatPrice($cart->{'price-tax-discount'}),
|
178 |
-
$this->__formatPrice($cart->{'price+tax+discount'}),
|
179 |
-
$this->__formatPrice($cart->{'price+tax-discount'}),
|
180 |
-
),
|
181 |
-
$this->_helper->getRowProperty($row, $property)
|
182 |
-
));
|
183 |
-
}
|
184 |
-
|
185 |
/***************************************************************************************************************************/
|
186 |
|
187 |
protected function __checkRequest($http_request, $path)
|
155 |
return $this->_config;
|
156 |
}
|
157 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
/***************************************************************************************************************************/
|
159 |
|
160 |
protected function __checkRequest($http_request, $path)
|
@@ -24,6 +24,7 @@ class Owebia_Shipping2_Model_Os2_Data_Cart extends Owebia_Shipping2_Model_Os2_Da
|
|
24 |
protected $additional_attributes = array('coupon_code', 'weight_unit', 'weight_for_charge', 'free_shipping');
|
25 |
protected $_free_shipping;
|
26 |
protected $_items;
|
|
|
27 |
protected $_options;
|
28 |
|
29 |
public function __construct($arguments)
|
@@ -32,12 +33,11 @@ class Owebia_Shipping2_Model_Os2_Data_Cart extends Owebia_Shipping2_Model_Os2_Da
|
|
32 |
$request = $arguments['request'];
|
33 |
$this->_options = $arguments['options'];
|
34 |
|
35 |
-
$quote = Mage::getModel('checkout/session')->getQuote(); // Do not use Mage::getSingleton('checkout/session')->getQuote();
|
36 |
-
$shipping_address = $quote->getShippingAddress();
|
37 |
$this->_data = array(
|
38 |
-
|
39 |
-
'price-tax
|
40 |
-
'price
|
|
|
41 |
'price+tax-discount' => null,
|
42 |
'weight' => $request->getData('package_weight'),
|
43 |
'qty' => $request->getData('package_qty'),
|
@@ -61,8 +61,11 @@ class Owebia_Shipping2_Model_Os2_Data_Cart extends Owebia_Shipping2_Model_Os2_Da
|
|
61 |
}
|
62 |
}
|
63 |
|
64 |
-
|
65 |
-
$
|
|
|
|
|
|
|
66 |
$this->_items = array();
|
67 |
foreach ($cart_items as $item) {
|
68 |
$type = $item->getProduct()->getTypeId();
|
@@ -81,15 +84,25 @@ class Owebia_Shipping2_Model_Os2_Data_Cart extends Owebia_Shipping2_Model_Os2_Da
|
|
81 |
}
|
82 |
$this->_items[] = Mage::getModel('owebia_shipping2/Os2_Data_CartItem', array('item' => $item, 'parent_item' => $parent_item, 'options' => $this->_options));
|
83 |
}
|
84 |
-
|
85 |
-
$
|
|
|
|
|
|
|
86 |
}
|
87 |
-
|
88 |
-
$this->_data['price
|
89 |
-
|
|
|
|
|
90 |
//echo '<pre>Owebia_Shipping2_Model_Os2_Data_Abstract::__construct<br/>';foreach ($this->_data as $n => $v){echo "\t$n => ".(is_object($v) ? get_class($v) : (is_array($v) ? 'array' : $v))."<br/>";}echo '</pre>';
|
91 |
}
|
92 |
|
|
|
|
|
|
|
|
|
|
|
93 |
protected function _load($name)
|
94 |
{
|
95 |
switch ($name) {
|
@@ -101,16 +114,8 @@ class Owebia_Shipping2_Model_Os2_Data_Cart extends Owebia_Shipping2_Model_Os2_Da
|
|
101 |
return $weight_for_charge;
|
102 |
case 'coupon_code':
|
103 |
$coupon_code = null;
|
104 |
-
$
|
105 |
-
|
106 |
-
$coupon_code = $quote->getCouponCode();
|
107 |
-
} else { // Pour les commandes depuis Adminhtml
|
108 |
-
$session = Mage::getSingleton('adminhtml/session_quote');
|
109 |
-
if ($session && ($quote = $session->getQuote()) && $quote->hasCouponCode() && $quote->getCouponCode()) {
|
110 |
-
$coupon_code = $quote->getCouponCode();
|
111 |
-
}
|
112 |
-
}
|
113 |
-
return $coupon_code;
|
114 |
case 'weight_unit':
|
115 |
return Mage::getStoreConfig('owebia_shipping2/general/weight_unit');
|
116 |
}
|
24 |
protected $additional_attributes = array('coupon_code', 'weight_unit', 'weight_for_charge', 'free_shipping');
|
25 |
protected $_free_shipping;
|
26 |
protected $_items;
|
27 |
+
protected $_quote;
|
28 |
protected $_options;
|
29 |
|
30 |
public function __construct($arguments)
|
33 |
$request = $arguments['request'];
|
34 |
$this->_options = $arguments['options'];
|
35 |
|
|
|
|
|
36 |
$this->_data = array(
|
37 |
+
// Do not use quote to retrieve values, totals are not available
|
38 |
+
'price-tax+discount' => null,//(double)$request->getData('package_value_with_discount'), // Bad value in backoffice orders
|
39 |
+
'price-tax-discount' => null,//(double)$request->getData('package_value'),
|
40 |
+
'price+tax+discount' => null,
|
41 |
'price+tax-discount' => null,
|
42 |
'weight' => $request->getData('package_weight'),
|
43 |
'qty' => $request->getData('package_qty'),
|
61 |
}
|
62 |
}
|
63 |
|
64 |
+
// Do not use quote to retrieve values, totals are not available
|
65 |
+
$total_incl_tax_without_discount = 0;
|
66 |
+
$total_excl_tax_without_discount = 0;
|
67 |
+
$total_incl_tax_with_discount = 0;
|
68 |
+
$total_excl_tax_with_discount = 0;
|
69 |
$this->_items = array();
|
70 |
foreach ($cart_items as $item) {
|
71 |
$type = $item->getProduct()->getTypeId();
|
84 |
}
|
85 |
$this->_items[] = Mage::getModel('owebia_shipping2/Os2_Data_CartItem', array('item' => $item, 'parent_item' => $parent_item, 'options' => $this->_options));
|
86 |
}
|
87 |
+
//foreach ($item->getData() as $index => $value) echo "$index = $value<br/>\n";
|
88 |
+
$total_excl_tax_without_discount += $item->getData('base_row_total');
|
89 |
+
$total_excl_tax_with_discount += $item->getData('base_row_total') - $item->getData('base_discount_amount');
|
90 |
+
$total_incl_tax_with_discount += $item->getData('base_row_total') - $item->getData('base_discount_amount') + $item->getData('tax_amount');
|
91 |
+
$total_incl_tax_without_discount += $item->getData('base_row_total_incl_tax');
|
92 |
}
|
93 |
+
$this->_data['price-tax+discount'] = $total_excl_tax_with_discount;
|
94 |
+
$this->_data['price-tax-discount'] = $total_excl_tax_without_discount;
|
95 |
+
$this->_data['price+tax+discount'] = $total_incl_tax_with_discount;
|
96 |
+
$this->_data['price+tax-discount'] = $total_incl_tax_without_discount;
|
97 |
+
|
98 |
//echo '<pre>Owebia_Shipping2_Model_Os2_Data_Abstract::__construct<br/>';foreach ($this->_data as $n => $v){echo "\t$n => ".(is_object($v) ? get_class($v) : (is_array($v) ? 'array' : $v))."<br/>";}echo '</pre>';
|
99 |
}
|
100 |
|
101 |
+
protected function _getQuote()
|
102 |
+
{
|
103 |
+
return Mage::getModel('owebia_shipping2/Os2_Data_Quote');
|
104 |
+
}
|
105 |
+
|
106 |
protected function _load($name)
|
107 |
{
|
108 |
switch ($name) {
|
114 |
return $weight_for_charge;
|
115 |
case 'coupon_code':
|
116 |
$coupon_code = null;
|
117 |
+
$quote = $this->_getQuote();
|
118 |
+
return $quote->coupon_code;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
case 'weight_unit':
|
120 |
return Mage::getStoreConfig('owebia_shipping2/general/weight_unit');
|
121 |
}
|
@@ -26,7 +26,7 @@ class Owebia_Shipping2_Model_Os2_Data_Customer extends Owebia_Shipping2_Model_Os
|
|
26 |
public function __construct($arguments=null)
|
27 |
{
|
28 |
parent::__construct(array(
|
29 |
-
'id' => Mage::
|
30 |
));
|
31 |
}
|
32 |
|
26 |
public function __construct($arguments=null)
|
27 |
{
|
28 |
parent::__construct(array(
|
29 |
+
'id' => Mage::getModel('owebia_shipping2/Os2_Data_Quote')->customer_id,
|
30 |
));
|
31 |
}
|
32 |
|
@@ -25,7 +25,19 @@ class Owebia_Shipping2_Model_Os2_Data_Quote extends Owebia_Shipping2_Model_Os2_D
|
|
25 |
|
26 |
protected function _loadObject()
|
27 |
{
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
return $quote;
|
30 |
}
|
31 |
}
|
25 |
|
26 |
protected function _loadObject()
|
27 |
{
|
28 |
+
// Backend
|
29 |
+
if (Mage::app()->getStore()->isAdmin()) {
|
30 |
+
$sessionQuote = Mage::getSingleton('adminhtml/session_quote');
|
31 |
+
if (!$sessionQuote->getQuoteId()) return; // Avoid infinite loop
|
32 |
+
$quote = $sessionQuote->getQuote();
|
33 |
+
}
|
34 |
+
// Frontend
|
35 |
+
else {
|
36 |
+
$session = Mage::getSingleton('checkout/session');
|
37 |
+
if (!$session->getQuoteId()) return; // Avoid infinite loop
|
38 |
+
$quote = $session->getQuote();
|
39 |
+
}
|
40 |
+
|
41 |
return $quote;
|
42 |
}
|
43 |
}
|
@@ -1,3 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
[2.5.18 - 24 juillet 2014]
|
2 |
Pas de modification, nouvelle version pour Magento Connect
|
3 |
|
1 |
+
[2.5.19 - 09 novembre 2015]
|
2 |
+
Note: the extension is not affected by the patch SUPEE-6788 since it uses the new admin url routing syntax for 3 years (version 2.4.8.0)
|
3 |
+
Fix bug: deactivation of auto-escaping by default since it can cause some bugs (ex: impossible to use {address_filter.EU-27} in shipto)
|
4 |
+
Fix bug: fix auto-escaping of properties like {{shipto.country_name}}
|
5 |
+
Fix bug: variable replacements in labels (variables {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount})
|
6 |
+
Fix bug: use items and not quote to retrieve values {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount} (quote totals are not available at this time, calculating them causes duplications of addresses and a false grand_total value)
|
7 |
+
Fix bug: retrieve customer in backoffice order
|
8 |
+
Fix unicode accented chars in json_encode for PHP < 5.4
|
9 |
+
Fix bug: usage of regular expressions inside {count ...}, {sum ...}, {min ...} and {max ...}
|
10 |
+
Allow usage of php functions date and strtotime (ex: "label": "'Your package will be delivered between ' . date('d/m', strtotime('+5 days')) . ' and ' . date('d/m Y', strtotime('+7 days'))",
|
11 |
+
|
12 |
[2.5.18 - 24 juillet 2014]
|
13 |
Pas de modification, nouvelle version pour Magento Connect
|
14 |
|
@@ -168,7 +168,7 @@
|
|
168 |
}
|
169 |
}</config>
|
170 |
<debug>0</debug>
|
171 |
-
<auto_escaping>
|
172 |
<auto_correction>1</auto_correction>
|
173 |
<stop_to_first_match>0</stop_to_first_match>
|
174 |
<sort_order>1</sort_order>
|
@@ -180,7 +180,7 @@
|
|
180 |
<tracking_view_url></tracking_view_url>
|
181 |
<config></config>
|
182 |
<debug>0</debug>
|
183 |
-
<auto_escaping>
|
184 |
<auto_correction>1</auto_correction>
|
185 |
<stop_to_first_match>0</stop_to_first_match>
|
186 |
<sort_order>3</sort_order>
|
@@ -192,7 +192,7 @@
|
|
192 |
<tracking_view_url></tracking_view_url>
|
193 |
<config></config>
|
194 |
<debug>0</debug>
|
195 |
-
<auto_escaping>
|
196 |
<auto_correction>1</auto_correction>
|
197 |
<stop_to_first_match>0</stop_to_first_match>
|
198 |
<sort_order>2</sort_order>
|
@@ -204,7 +204,7 @@
|
|
204 |
<tracking_view_url></tracking_view_url>
|
205 |
<config></config>
|
206 |
<debug>0</debug>
|
207 |
-
<auto_escaping>
|
208 |
<auto_correction>1</auto_correction>
|
209 |
<stop_to_first_match>0</stop_to_first_match>
|
210 |
<sort_order>4</sort_order>
|
168 |
}
|
169 |
}</config>
|
170 |
<debug>0</debug>
|
171 |
+
<auto_escaping>0</auto_escaping>
|
172 |
<auto_correction>1</auto_correction>
|
173 |
<stop_to_first_match>0</stop_to_first_match>
|
174 |
<sort_order>1</sort_order>
|
180 |
<tracking_view_url></tracking_view_url>
|
181 |
<config></config>
|
182 |
<debug>0</debug>
|
183 |
+
<auto_escaping>0</auto_escaping>
|
184 |
<auto_correction>1</auto_correction>
|
185 |
<stop_to_first_match>0</stop_to_first_match>
|
186 |
<sort_order>3</sort_order>
|
192 |
<tracking_view_url></tracking_view_url>
|
193 |
<config></config>
|
194 |
<debug>0</debug>
|
195 |
+
<auto_escaping>0</auto_escaping>
|
196 |
<auto_correction>1</auto_correction>
|
197 |
<stop_to_first_match>0</stop_to_first_match>
|
198 |
<sort_order>2</sort_order>
|
204 |
<tracking_view_url></tracking_view_url>
|
205 |
<config></config>
|
206 |
<debug>0</debug>
|
207 |
+
<auto_escaping>0</auto_escaping>
|
208 |
<auto_correction>1</auto_correction>
|
209 |
<stop_to_first_match>0</stop_to_first_match>
|
210 |
<sort_order>4</sort_order>
|
@@ -204,7 +204,11 @@ class OwebiaShippingHelper
|
|
204 |
|
205 |
public static function escapeString($input)
|
206 |
{
|
207 |
-
|
|
|
|
|
|
|
|
|
208 |
}
|
209 |
|
210 |
protected $_input;
|
@@ -481,11 +485,12 @@ class OwebiaShippingHelper
|
|
481 |
if (is_array($replacement) && isset($replacement['error'])) {
|
482 |
return isset($original_row) ? $replacement : 'false';
|
483 |
}
|
|
|
|
|
484 |
} else {
|
485 |
$replacement = $original;
|
|
|
486 |
}
|
487 |
-
$output = $this->replace('{'.$original.'}', $this->_autoEscapeStrings($replacement), $output);
|
488 |
-
$output = $this->replace($original, $replacement, $output);
|
489 |
//$this->addMessage('error', $row, $key, $original.' => '.$replacement.' = '.$output);
|
490 |
}
|
491 |
} else {
|
@@ -743,8 +748,8 @@ class OwebiaShippingHelper
|
|
743 |
//while ($this->_preg_match("/{(count) products(?: where ([^}]+))?}/i", $formula, $result)
|
744 |
// || $this->_preg_match("/{(sum|min|max|count distinct) {PRODUCT_REGEX}\.({ATTRIBUTE_REGEX}|{OPTION_REGEX}|stock)\.([a-z0-9_+-]+)(?: where ([^}]+))?}/i", $formula, $result)
|
745 |
// || $this->_preg_match("/{(sum|min|max|count distinct) {PRODUCT_REGEX}\.(quantity)()(?: where ([^}]+))?}/i", $formula, $result)
|
746 |
-
while ($this->_preg_match("/{(count)
|
747 |
-
|| $this->_preg_match("/{(sum|min|max|count distinct) ((?:item|product|p)\.[a-z0-9_\+\-\.]+)(?: where ([
|
748 |
) {
|
749 |
$original = $result[0];
|
750 |
if ($use_cache && array_key_exists($original, $this->_expression_cache)) {
|
@@ -849,6 +854,7 @@ class OwebiaShippingHelper
|
|
849 |
.'E|e|int|float|string|boolean|object|array|true|false|null|and|or|in'
|
850 |
.'|floor|ceil|round|rand|pow|pi|sqrt|log|exp|abs|substr|strtolower|preg_match|in_array'
|
851 |
.'|max|min|range|array_match_any|array_match_all'
|
|
|
852 |
.')\b'
|
853 |
.'|\'[^\']*\'|\"[^\"]*\"|[0-9,\'\.\-\(\)\*\/\?\:\+\<\>\=\&\|%!]|\s)*$/', $formula)) {
|
854 |
$errors = array(
|
204 |
|
205 |
public static function escapeString($input)
|
206 |
{
|
207 |
+
$escaped = self::json_encode($input);
|
208 |
+
$escaped = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) {
|
209 |
+
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
|
210 |
+
}, $escaped);
|
211 |
+
return $escaped;
|
212 |
}
|
213 |
|
214 |
protected $_input;
|
485 |
if (is_array($replacement) && isset($replacement['error'])) {
|
486 |
return isset($original_row) ? $replacement : 'false';
|
487 |
}
|
488 |
+
$output = $this->replace('{'.$original.'}', $this->_autoEscapeStrings($replacement), $output);
|
489 |
+
$output = $this->replace($original, $replacement, $output);
|
490 |
} else {
|
491 |
$replacement = $original;
|
492 |
+
$output = $this->replace($original, $replacement, $output);
|
493 |
}
|
|
|
|
|
494 |
//$this->addMessage('error', $row, $key, $original.' => '.$replacement.' = '.$output);
|
495 |
}
|
496 |
} else {
|
748 |
//while ($this->_preg_match("/{(count) products(?: where ([^}]+))?}/i", $formula, $result)
|
749 |
// || $this->_preg_match("/{(sum|min|max|count distinct) {PRODUCT_REGEX}\.({ATTRIBUTE_REGEX}|{OPTION_REGEX}|stock)\.([a-z0-9_+-]+)(?: where ([^}]+))?}/i", $formula, $result)
|
750 |
// || $this->_preg_match("/{(sum|min|max|count distinct) {PRODUCT_REGEX}\.(quantity)()(?: where ([^}]+))?}/i", $formula, $result)
|
751 |
+
while ($this->_preg_match("/{(count)\s+items\s*(?:\s+where\s+((?:[^\"'}]|'[^']+'|\"[^\"]+\")+))?}/i", $formula, $result)
|
752 |
+
|| $this->_preg_match("/{(sum|min|max|count distinct) ((?:item|product|p)\.[a-z0-9_\+\-\.]+)(?: where ((?:[^\"'}]|'[^']+'|\"[^\"]+\")+))?}/i", $formula, $result)
|
753 |
) {
|
754 |
$original = $result[0];
|
755 |
if ($use_cache && array_key_exists($original, $this->_expression_cache)) {
|
854 |
.'E|e|int|float|string|boolean|object|array|true|false|null|and|or|in'
|
855 |
.'|floor|ceil|round|rand|pow|pi|sqrt|log|exp|abs|substr|strtolower|preg_match|in_array'
|
856 |
.'|max|min|range|array_match_any|array_match_all'
|
857 |
+
.'|date|strtotime'
|
858 |
.')\b'
|
859 |
.'|\'[^\']*\'|\"[^\"]*\"|[0-9,\'\.\-\(\)\*\/\?\:\+\<\>\=\&\|%!]|\s)*$/', $formula)) {
|
860 |
$errors = array(
|
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Owebia_Shipping_2</name>
|
4 |
-
<version>2.5.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/MIT">The MIT License (MIT)</license>
|
7 |
<channel>community</channel>
|
@@ -10,18 +10,21 @@
|
|
10 |
<description>[EN] This module provides 3 shipping modes configurable with a very flexible syntax.
|
11 |

|
12 |
[FR] Ce module met à disposition 3 modes de livraison configurables avec une syntaxe très souple.</description>
|
13 |
-
<notes>[2.5.
|
14 |
-
|
15 |
-

|
16 |
-
|
17 |
-
|
18 |
-

|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
<
|
|
|
|
|
|
|
25 |
<compatible/>
|
26 |
-
<dependencies
|
27 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Owebia_Shipping_2</name>
|
4 |
+
<version>2.5.19</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/MIT">The MIT License (MIT)</license>
|
7 |
<channel>community</channel>
|
10 |
<description>[EN] This module provides 3 shipping modes configurable with a very flexible syntax.
|
11 |

|
12 |
[FR] Ce module met à disposition 3 modes de livraison configurables avec une syntaxe très souple.</description>
|
13 |
+
<notes>[2.5.19 - 09 novembre 2015]
|
14 |
+
Note: the extension is not affected by the patch SUPEE-6788 since it uses the new admin url routing syntax for 3 years (version 2.4.8.0)
|
15 |
+
Fix bug: deactivation of auto-escaping by default since it can cause some bugs (ex: impossible to use {address_filter.EU-27} in shipto)
|
16 |
+
Fix bug: fix auto-escaping of properties like {{shipto.country_name}}
|
17 |
+
Fix bug: variable replacements in labels (variables {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount})
|
18 |
+
Fix bug: use items and not quote to retrieve values {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount} (quote totals are not available at this time, calculating them causes duplications of addresses and a false grand_total value)
|
19 |
+
Fix bug: retrieve customer in backoffice order
|
20 |
+
Fix unicode accented chars in json_encode for PHP < 5.4
|
21 |
+
Fix bug: usage of regular expressions inside {count ...}, {sum ...}, {min ...} and {max ...}
|
22 |
+
Allow usage of php functions date and strtotime (ex: "label": "'Your package will be delivered between ' . date('d/m', strtotime('+5 days')) . ' and ' . date('d/m Y', strtotime('+7 days'))",
|
23 |
+
</notes>
|
24 |
+
<authors><author><name>owebia</name><user>owebia</user><email>antoine.lemoine@owebia.com</email></author></authors>
|
25 |
+
<date>2015-11-09</date>
|
26 |
+
<time>18:48:22</time>
|
27 |
+
<contents><target name="magecommunity"><dir name="Owebia"><dir name="Shipping2"><dir name="Block"><dir name="Adminhtml"><dir name="Os2"><dir name="Editor"><dir name="Property"><file name="Input.php" hash="da443c90f3dda730300654569b55d46c"/></dir></dir><file name="Editor.php" hash="571ff0d5da00f96a49aa9c0504d07a50"/><file name="Help.php" hash="d2f3fd818f9d5034365e0c57cd01448e"/></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Config.php" hash="66487da1f208546729207661de30e378"/><file name="Informations.php" hash="34eda44f2b4646f2acfe07be52440058"/></dir></dir></dir></dir></dir></dir><dir name="Controller"><file name="Abstract.php" hash="f1ad9781bcc1fe1382a714958fdaf388"/></dir><dir name="Helper"><file name="Data.php" hash="3f4ed53a2255cc3a7220f134b0dd4f12"/></dir><dir name="Model"><dir name="Carrier"><file name="Abstract.php" hash="fdf75d41b08704a92d5d64c73af1fd4d"/><file name="OwebiaShipping1.php" hash="6e4aa3ba4b3ec09a344a0f6a666645d1"/><file name="OwebiaShipping2.php" hash="e6a5d90fcf89910c119dad51a226a5ab"/><file name="OwebiaShipping3.php" hash="1a556c06950805f4d0b709e5f6b35743"/><file name="OwebiaShipping4.php" hash="ef18ccb1f5ed3e14ac93f40f69871a6e"/></dir><dir name="Mysql4"><file name="Setup.php" hash="79dd512a2278429c69ec92d0064e6bf3"/></dir><dir name="Os2"><dir name="Data"><file name="Abstract.php" hash="6d1aa6bf9270e0af4f349f2279760a80"/><file name="AbstractWithAttributes.php" hash="f51eedef920565ef5acbbb570af47805"/><file name="Address.php" hash="924940393fdf382b41d469e448be1e2d"/><file name="AddressFilter.php" hash="1ebed8610ace2b0f319c90ab6661b856"/><file name="AttributeSet.php" hash="8530ba04c22811a0014a39f03b389c75"/><file name="Billto.php" hash="fa430451c5d8cc01120e790607182546"/><file name="Cart.php" hash="9c3954c84a4470a3b95edc21b264f8a7"/><file name="CartItem.php" hash="42077e6f3055ec2a06c71b6fda08ef7c"/><file name="Category.php" hash="947a56f34136065e9ed5d5f8b775d408"/><file name="Customer.php" hash="98d521002435cb0997f3bf44fdc88fd8"/><file name="CustomerGroup.php" hash="dec898287825c0afab6f96b01fcc2b3c"/><file name="Customvar.php" hash="e9b59523ba14d23d1aeeaa4a8e432bec"/><file name="Date.php" hash="8e2120bb4b5c2c840f1fcbaf4f630f24"/><file name="Info.php" hash="922a1b57d0cb72e59335851e1a92cacc"/><file name="Product.php" hash="687b819acf9524bea522ed0c56e16249"/><file name="Quote.php" hash="4ef2d9152d8d536f1901b6fc16dc4182"/><file name="Selection.php" hash="8a055d68edfc5210cec7611f2d43448b"/><file name="StockItem.php" hash="b0345ea37ad9826a2822a911752cf06f"/><file name="Store.php" hash="f5e2f014a372e83787928e7f0218b12f"/></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="LoadOnParent.php" hash="31d5c899a174dc5ee046be9ec4080f5e"/><file name="ProcessChildren.php" hash="f7a1c4fd61bc52cfd29c3079c64a01fb"/></dir></dir></dir></dir><file name="changelog" hash="0526180765a45d21f45017965c261006"/><dir name="controllers"><dir name="Adminhtml"><dir name="Os2"><file name="AjaxController.php" hash="b954504ea1ba4fcebee59df9036efc9c"/></dir></dir><dir name="Checkout"><file name="CartController.php" hash="8c6ee136298e0e2dd0052143887282ce"/></dir></dir><file name="doc_en_US.html" hash="92fecf9fc34fd4611c47b529b5acb305"/><file name="doc_fr_FR.html" hash="bf99aa1758e17fca3f84981326ff0c32"/><dir name="etc"><file name="adminhtml.xml" hash="553cc9ec895436e0da108020de260885"/><file name="config.xml" hash="0dfb8a5818a8842f69a7a3bc7070ea32"/><file name="system.xml" hash="e549ba889f6d9b05e154ca49ab455ae0"/></dir><dir name="includes"><file name="OS2_AddressFilterParser.php" hash="867b63a23ee99b6cafb51e91759a9d00"/><file name="OwebiaShippingHelper.php" hash="a4800b33ac41ce1fcd2783db12cc6868"/></dir><dir name="sql"><dir name="owebia_shipping2_setup"><file name="mysql4-install-2.5.13.php" hash="807dad21a089045946ab1cf2b433f954"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Owebia_Shipping2.xml" hash="046e4a5822bd9a6c2e781bfbb33f7ebd"/></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Owebia_Shipping2.csv" hash="a8c41b1a205a92de71b9e4621532c97d"/></dir><dir name="en_US"><file name="Owebia_Shipping2.csv" hash="e9d54947d5b38eb975fc0de4145ffe23"/></dir></target><target name="mageweb"><dir name="js"><dir name="owebia"><dir name="shipping2"><dir name="colorbox"><file name="colorbox.css" hash="1a7dd23f5d2962260d5bb26a57046db1"/><dir name="images"><file name="border.png" hash="439d585a4e35279cf1eddec5729f7144"/><file name="border.png-" hash="7ca8a1d2eb0763b35c266cd54bee2fa5"/><file name="controls.png" hash="4cbe54bbf6c352ea181a5739842215e2"/><file name="controls.png-" hash="b68b9ecaae424de4862ba0d055b7a560"/><dir name="ie6"><file name="borderBottomCenter.png" hash="1936585831e8bcf4eb5ef1081c8e2574"/><file name="borderBottomLeft.png" hash="7ceeb01563f030dc47837fd8bad29488"/><file name="borderBottomRight.png" hash="297fb77440870d91f519bcecdb312725"/><file name="borderMiddleLeft.png" hash="64df0244eeaade27764d2cf33606527b"/><file name="borderMiddleRight.png" hash="9fa458eaaa35b80b2452f35a1d6b4d0c"/><file name="borderTopCenter.png" hash="01ecb01841270f3a765aadf4900929f3"/><file name="borderTopLeft.png" hash="bf4949b95b09d255edd9bcb8358a3557"/><file name="borderTopRight.png" hash="51315fa19507a33d5f1b5411598593e7"/></dir><file name="loading.gif" hash="e6611f867d63754b7a2a974fb0a0e7dc"/><file name="loading_background.png" hash="acf427e932fb9413700a4b8b58b41eec"/><file name="overlay.png" hash="790376e15a036959e358a19d4a7ea437"/></dir><file name="jquery.colorbox-min.js" hash="afa27e7333f494cf87e4c07297c2160b"/></dir><dir name="img"><file name="btn-edit.png" hash="abc9f604977fc6dc75547a2e04c9748f"/><file name="btn-help.png" hash="b743486f26c3b69871490049147ef14b"/><file name="btn-remove.png" hash="42492684e24356a4081134894eabeb9e"/><dir name="famfamsilk"><file name="help.png" hash="c3812c74bc524179f4ccf5d2db7b3cbf"/><file name="pencil.png" hash="a34e71ab08a6d1162b948d26321dea50"/></dir></dir><file name="jquery-1.8.2.min.js" hash="cfa9051cc0b05eb519f1e16b2a6645d7"/><dir name="jquery-ui-1.8.23.custom"><dir name="css"><dir name="ui-lightness"><dir name="images"><file name="ui-bg_diagonals-thick_18_b81900_40x40.png" hash="95f9cceeb9d742dd3e917ec16ed754f8"/><file name="ui-bg_diagonals-thick_20_666666_40x40.png" hash="f040b255ca13e693da34ab33c7d6b554"/><file name="ui-bg_flat_10_000000_40x100.png" hash="c18cd01623c7fed23c80d53e2f5e7c78"/><file name="ui-bg_glass_100_f6f6f6_1x400.png" hash="5f1847175ba18c41322cb9cb0581e0fb"/><file name="ui-bg_glass_100_fdf5ce_1x400.png" hash="d26e8f463195a7b86f86b7d550cfc114"/><file name="ui-bg_glass_65_ffffff_1x400.png" hash="e5a8f32e28fd5c27bf0fed33c8a8b9b5"/><file name="ui-bg_gloss-wave_35_f6a828_500x100.png" hash="58d2cd501e01573cf537089c694ba899"/><file name="ui-bg_highlight-soft_100_eeeeee_1x100.png" hash="384c3f17709ba0f809b023b6e7b10b84"/><file name="ui-bg_highlight-soft_75_ffe45c_1x100.png" hash="b806658954cb4d16ade8977af737f486"/><file name="ui-icons_222222_256x240.png" hash="ebe6b6902a408fbf9cac6379a1477525"/><file name="ui-icons_228ef1_256x240.png" hash="79f41c0765e9ec18562b20b0801d748b"/><file name="ui-icons_ef8c08_256x240.png" hash="ef9a6ccfe3b14041928ddc708665b226"/><file name="ui-icons_ffd27a_256x240.png" hash="ab8c30acc0e3608fb79e01fccf832c70"/><file name="ui-icons_ffffff_256x240.png" hash="342bc03f6264c75d3f1d7f99e34295b9"/></dir><file name="jquery-ui-1.8.23.custom.css" hash="d4a4e04116e9bed6a2b00c5e8c260914"/></dir></dir><dir name="js"><file name="jquery-1.8.0.min.js" hash="cd8b0bffc85bb5614385ee4ce3596d07"/><file name="jquery-ui-1.8.23.custom.min.js" hash="c406c4654466fbeee1cf9173b69ec55c"/></dir></dir><file name="jquery.caret.1.02.min.js" hash="ee130de5e6b9ae2be7579a5fd77f7b23"/><file name="jquery.layout-1.3.0-rc30.6.min.js" hash="745e5e2084b6330c3f837a0169a96320"/><file name="jquery.layout.min.js" hash="d91b61c69554cd02f4cf3bbbf97b95a8"/><file name="jquery.noconflict.js" hash="3179f2255b046d5f2e9a71e365287bef"/><file name="os2editor.css" hash="96805f469cf7d6f2a7269d5d372fa46b"/><file name="os2editor.js" hash="107807e905cb39f178c1e349c7d89cb8"/></dir></dir></dir></target></contents>
|
28 |
<compatible/>
|
29 |
+
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
30 |
</package>
|