Version Notes
* Bugfixes, update recommend
* Tested on 1.6, should work on Magento >= 1.4
Download this release
Release Info
Developer | Magento Core Team |
Extension | Thebod_Shippingrates |
Version | 1.0.2 |
Comparing to | |
See all releases |
Code changes from version 1.0.0 to 1.0.2
- app/code/community/Thebod/Shippingrates/Block/Adminhtml/Config.php +41 -1
- app/code/community/Thebod/Shippingrates/Helper/Data.php +2 -2
- app/code/community/Thebod/Shippingrates/Model/Carrier.php +15 -19
- app/code/community/Thebod/Shippingrates/Model/Email.php +14 -3
- app/code/community/Thebod/Shippingrates/Model/Observer.php +8 -2
- app/code/community/Thebod/Shippingrates/etc/config.xml +1 -1
- package.xml +11 -7
app/code/community/Thebod/Shippingrates/Block/Adminhtml/Config.php
CHANGED
@@ -16,13 +16,21 @@
|
|
16 |
* @package Thebod_Shippingrates
|
17 |
* @copyright Copyright (c) 2012 Bastian Ike (http://thebod.de/)
|
18 |
* @author Bastian Ike <b-ike@b-ike.de>
|
19 |
-
* @license http://
|
|
|
20 |
*/
|
|
|
21 |
class Thebod_Shippingrates_Block_Adminhtml_Config extends Mage_Adminhtml_Block_System_Config_Form_Field {
|
22 |
|
23 |
protected $_addRowButtonHtml = array();
|
24 |
protected $_removeRowButtonHtml = array();
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
|
27 |
$this->setElement($element);
|
28 |
|
@@ -114,6 +122,12 @@ class Thebod_Shippingrates_Block_Adminhtml_Config extends Mage_Adminhtml_Block_S
|
|
114 |
return $html;
|
115 |
}
|
116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
protected function _getRowTemplateHtml($key = 0) {
|
118 |
$html = '<li style="display: block; width: 550px;">';
|
119 |
$html .= '<div style="float: left;">';
|
@@ -130,14 +144,33 @@ class Thebod_Shippingrates_Block_Adminhtml_Config extends Mage_Adminhtml_Block_S
|
|
130 |
return $html;
|
131 |
}
|
132 |
|
|
|
|
|
|
|
|
|
|
|
133 |
protected function _getDisabled() {
|
134 |
return $this->getElement()->getDisabled() ? ' disabled' : '';
|
135 |
}
|
136 |
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
protected function _getValue($key) {
|
138 |
return $this->getElement()->getData('value/' . $key);
|
139 |
}
|
140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
protected function _getAddRowButtonHtml($container, $template, $title = 'Add') {
|
142 |
if (!isset($this->_addRowButtonHtml[$container])) {
|
143 |
$this->_addRowButtonHtml[$container] = $this->getLayout()->createBlock('adminhtml/widget_button')
|
@@ -151,6 +184,13 @@ class Thebod_Shippingrates_Block_Adminhtml_Config extends Mage_Adminhtml_Block_S
|
|
151 |
return $this->_addRowButtonHtml[$container];
|
152 |
}
|
153 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
protected function _getRemoveRowButtonHtml($selector = 'li', $title = 'Delete') {
|
155 |
if (!$this->_removeRowButtonHtml) {
|
156 |
$this->_removeRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button')
|
16 |
* @package Thebod_Shippingrates
|
17 |
* @copyright Copyright (c) 2012 Bastian Ike (http://thebod.de/)
|
18 |
* @author Bastian Ike <b-ike@b-ike.de>
|
19 |
+
* @license http://creativecommons.org/licenses/by/3.0/ CC-BY 3.0
|
20 |
+
* @todo move inline html into templates
|
21 |
*/
|
22 |
+
|
23 |
class Thebod_Shippingrates_Block_Adminhtml_Config extends Mage_Adminhtml_Block_System_Config_Form_Field {
|
24 |
|
25 |
protected $_addRowButtonHtml = array();
|
26 |
protected $_removeRowButtonHtml = array();
|
27 |
|
28 |
+
/**
|
29 |
+
* basic template for shipping rates configurator
|
30 |
+
*
|
31 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
32 |
+
* @return string
|
33 |
+
*/
|
34 |
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
|
35 |
$this->setElement($element);
|
36 |
|
122 |
return $html;
|
123 |
}
|
124 |
|
125 |
+
/**
|
126 |
+
* build config line
|
127 |
+
*
|
128 |
+
* @param int $key
|
129 |
+
* @return string
|
130 |
+
*/
|
131 |
protected function _getRowTemplateHtml($key = 0) {
|
132 |
$html = '<li style="display: block; width: 550px;">';
|
133 |
$html .= '<div style="float: left;">';
|
144 |
return $html;
|
145 |
}
|
146 |
|
147 |
+
/**
|
148 |
+
* sets 'disabled' mark for css class
|
149 |
+
*
|
150 |
+
* @return string
|
151 |
+
*/
|
152 |
protected function _getDisabled() {
|
153 |
return $this->getElement()->getDisabled() ? ' disabled' : '';
|
154 |
}
|
155 |
|
156 |
+
/**
|
157 |
+
* config value getter
|
158 |
+
*
|
159 |
+
* @param string $key
|
160 |
+
* @return string
|
161 |
+
*/
|
162 |
protected function _getValue($key) {
|
163 |
return $this->getElement()->getData('value/' . $key);
|
164 |
}
|
165 |
|
166 |
+
/**
|
167 |
+
* returns 'add' button html code
|
168 |
+
*
|
169 |
+
* @param $container
|
170 |
+
* @param $template
|
171 |
+
* @param string $title
|
172 |
+
* @return string
|
173 |
+
*/
|
174 |
protected function _getAddRowButtonHtml($container, $template, $title = 'Add') {
|
175 |
if (!isset($this->_addRowButtonHtml[$container])) {
|
176 |
$this->_addRowButtonHtml[$container] = $this->getLayout()->createBlock('adminhtml/widget_button')
|
184 |
return $this->_addRowButtonHtml[$container];
|
185 |
}
|
186 |
|
187 |
+
/**
|
188 |
+
* returns 'delete' button html code
|
189 |
+
*
|
190 |
+
* @param string $selector
|
191 |
+
* @param string $title
|
192 |
+
* @return array
|
193 |
+
*/
|
194 |
protected function _getRemoveRowButtonHtml($selector = 'li', $title = 'Delete') {
|
195 |
if (!$this->_removeRowButtonHtml) {
|
196 |
$this->_removeRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button')
|
app/code/community/Thebod/Shippingrates/Helper/Data.php
CHANGED
@@ -16,8 +16,8 @@
|
|
16 |
* @package Thebod_Shippingrates
|
17 |
* @copyright Copyright (c) 2012 Bastian Ike (http://thebod.de/)
|
18 |
* @author Bastian Ike <b-ike@b-ike.de>
|
19 |
-
* @license http://
|
20 |
*/
|
21 |
-
class Thebod_Shippingrates_Helper_Data extends Mage_Core_Helper_Abstract {
|
22 |
|
|
|
23 |
}
|
16 |
* @package Thebod_Shippingrates
|
17 |
* @copyright Copyright (c) 2012 Bastian Ike (http://thebod.de/)
|
18 |
* @author Bastian Ike <b-ike@b-ike.de>
|
19 |
+
* @license http://creativecommons.org/licenses/by/3.0/ CC-BY 3.0
|
20 |
*/
|
|
|
21 |
|
22 |
+
class Thebod_Shippingrates_Helper_Data extends Mage_Core_Helper_Abstract {
|
23 |
}
|
app/code/community/Thebod/Shippingrates/Model/Carrier.php
CHANGED
@@ -16,8 +16,9 @@
|
|
16 |
* @package Thebod_Shippingrates
|
17 |
* @copyright Copyright (c) 2012 Bastian Ike (http://thebod.de/)
|
18 |
* @author Bastian Ike <b-ike@b-ike.de>
|
19 |
-
* @license http://
|
20 |
*/
|
|
|
21 |
class Thebod_Shippingrates_Model_Carrier extends Mage_Shipping_Model_Carrier_Abstract {
|
22 |
protected $_code = 'shippingrates';
|
23 |
|
@@ -34,8 +35,9 @@ class Thebod_Shippingrates_Model_Carrier extends Mage_Shipping_Model_Carrier_Abs
|
|
34 |
$data = unserialize(base64_decode($data));
|
35 |
}
|
36 |
|
|
|
37 |
foreach($data['code'] as $k => $v) {
|
38 |
-
if($this->_code . '_' . $v == $code) {
|
39 |
return $data['email'][$k];
|
40 |
}
|
41 |
}
|
@@ -57,12 +59,12 @@ class Thebod_Shippingrates_Model_Carrier extends Mage_Shipping_Model_Carrier_Abs
|
|
57 |
return true;
|
58 |
}
|
59 |
|
60 |
-
$
|
61 |
$passed = true;
|
62 |
-
foreach($
|
63 |
-
$
|
64 |
-
$condition = $
|
65 |
-
$value = isset($
|
66 |
|
67 |
if($value === false) {
|
68 |
continue;
|
@@ -82,17 +84,13 @@ class Thebod_Shippingrates_Model_Carrier extends Mage_Shipping_Model_Carrier_Abs
|
|
82 |
break;
|
83 |
|
84 |
case 'min_subtotal':
|
85 |
-
|
86 |
-
$subtotal = Mage::getSingleton('checkout/session')->getQuote()->getSubtotal();
|
87 |
-
if($subtotal < $value) {
|
88 |
$passed = false;
|
89 |
}
|
90 |
break;
|
91 |
|
92 |
case 'max_subtotal':
|
93 |
-
|
94 |
-
$subtotal = Mage::getSingleton('checkout/session')->getQuote()->getSubtotal();
|
95 |
-
if($subtotal > $value) {
|
96 |
$passed = false;
|
97 |
}
|
98 |
break;
|
@@ -110,6 +108,7 @@ class Thebod_Shippingrates_Model_Carrier extends Mage_Shipping_Model_Carrier_Abs
|
|
110 |
break;
|
111 |
}
|
112 |
}
|
|
|
113 |
return $passed;
|
114 |
}
|
115 |
|
@@ -119,15 +118,14 @@ class Thebod_Shippingrates_Model_Carrier extends Mage_Shipping_Model_Carrier_Abs
|
|
119 |
* @param Mage_Shipping_Model_Rate_Request $request
|
120 |
* @return Mage_Shipping_Model_Rate_Result
|
121 |
*/
|
122 |
-
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
|
123 |
-
{
|
124 |
if(!$this->getConfigFlag('active')) {
|
125 |
return false;
|
126 |
}
|
127 |
|
128 |
$result = Mage::getModel('shipping/rate_result');
|
129 |
|
130 |
-
$rates = $this->
|
131 |
|
132 |
foreach($rates as $rate) {
|
133 |
if($this->checkRate($rate, $request)) {
|
@@ -155,7 +153,7 @@ class Thebod_Shippingrates_Model_Carrier extends Mage_Shipping_Model_Carrier_Abs
|
|
155 |
* @param Mage_Shipping_Model_Rate_Request $data
|
156 |
* @return array
|
157 |
*/
|
158 |
-
public function
|
159 |
$rates = array();
|
160 |
$methods = array();
|
161 |
|
@@ -183,8 +181,6 @@ class Thebod_Shippingrates_Model_Carrier extends Mage_Shipping_Model_Carrier_Abs
|
|
183 |
$filter = trim($method['filter']);
|
184 |
$title = nl2br(trim($method['description']));
|
185 |
|
186 |
-
$title = str_replace(array('=>', '<='), array('<strong>', '</strong>'), $title);
|
187 |
-
|
188 |
$rates[] = array(
|
189 |
'code' => $code,
|
190 |
'title' => $title,
|
16 |
* @package Thebod_Shippingrates
|
17 |
* @copyright Copyright (c) 2012 Bastian Ike (http://thebod.de/)
|
18 |
* @author Bastian Ike <b-ike@b-ike.de>
|
19 |
+
* @license http://creativecommons.org/licenses/by/3.0/ CC-BY 3.0
|
20 |
*/
|
21 |
+
|
22 |
class Thebod_Shippingrates_Model_Carrier extends Mage_Shipping_Model_Carrier_Abstract {
|
23 |
protected $_code = 'shippingrates';
|
24 |
|
35 |
$data = unserialize(base64_decode($data));
|
36 |
}
|
37 |
|
38 |
+
/* searches correct mail address */
|
39 |
foreach($data['code'] as $k => $v) {
|
40 |
+
if(($this->_code . '_' . $v) == $code) {
|
41 |
return $data['email'][$k];
|
42 |
}
|
43 |
}
|
59 |
return true;
|
60 |
}
|
61 |
|
62 |
+
$filters = explode(';', $rate['filter']);
|
63 |
$passed = true;
|
64 |
+
foreach($filters as $filter) {
|
65 |
+
$filter = explode(':', $filter);
|
66 |
+
$condition = $filter[0];
|
67 |
+
$value = isset($filter[1]) && $filter[1] ? $filter[1] : false;
|
68 |
|
69 |
if($value === false) {
|
70 |
continue;
|
84 |
break;
|
85 |
|
86 |
case 'min_subtotal':
|
87 |
+
if($request->getPackageValueWithDiscount() < $value) {
|
|
|
|
|
88 |
$passed = false;
|
89 |
}
|
90 |
break;
|
91 |
|
92 |
case 'max_subtotal':
|
93 |
+
if($request->getPackageValueWithDiscount() > $value) {
|
|
|
|
|
94 |
$passed = false;
|
95 |
}
|
96 |
break;
|
108 |
break;
|
109 |
}
|
110 |
}
|
111 |
+
|
112 |
return $passed;
|
113 |
}
|
114 |
|
118 |
* @param Mage_Shipping_Model_Rate_Request $request
|
119 |
* @return Mage_Shipping_Model_Rate_Result
|
120 |
*/
|
121 |
+
public function collectRates(Mage_Shipping_Model_Rate_Request $request) {
|
|
|
122 |
if(!$this->getConfigFlag('active')) {
|
123 |
return false;
|
124 |
}
|
125 |
|
126 |
$result = Mage::getModel('shipping/rate_result');
|
127 |
|
128 |
+
$rates = $this->getRates($this->getConfigData('shippingconfig'));
|
129 |
|
130 |
foreach($rates as $rate) {
|
131 |
if($this->checkRate($rate, $request)) {
|
153 |
* @param Mage_Shipping_Model_Rate_Request $data
|
154 |
* @return array
|
155 |
*/
|
156 |
+
public function getRates($data) {
|
157 |
$rates = array();
|
158 |
$methods = array();
|
159 |
|
181 |
$filter = trim($method['filter']);
|
182 |
$title = nl2br(trim($method['description']));
|
183 |
|
|
|
|
|
184 |
$rates[] = array(
|
185 |
'code' => $code,
|
186 |
'title' => $title,
|
app/code/community/Thebod/Shippingrates/Model/Email.php
CHANGED
@@ -16,18 +16,27 @@
|
|
16 |
* @package Thebod_Shippingrates
|
17 |
* @copyright Copyright (c) 2012 Bastian Ike (http://thebod.de/)
|
18 |
* @author Bastian Ike <b-ike@b-ike.de>
|
19 |
-
* @license http://
|
20 |
*/
|
|
|
21 |
class Thebod_Shippingrates_Model_Email extends Mage_Core_Model_Abstract {
|
22 |
/* code based on Mage_Sales_Model_Order::sendNewOrderEmail() */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
public function sendEmailNotification($order) {
|
24 |
if(strncmp($order->getShippingMethod(), 'shippingrates_', 14) != 0) {
|
25 |
-
return;
|
26 |
}
|
27 |
|
28 |
$notificationMail = $order->getShippingCarrier()->getNotificationMail($order->getShippingMethod());
|
29 |
if(!strlen(trim($notificationMail))) {
|
30 |
-
return;
|
31 |
}
|
32 |
|
33 |
$storeId = $order->getStore()->getId();
|
@@ -78,5 +87,7 @@ class Thebod_Shippingrates_Model_Email extends Mage_Core_Model_Abstract {
|
|
78 |
)
|
79 |
);
|
80 |
$mailer->send();
|
|
|
|
|
81 |
}
|
82 |
}
|
16 |
* @package Thebod_Shippingrates
|
17 |
* @copyright Copyright (c) 2012 Bastian Ike (http://thebod.de/)
|
18 |
* @author Bastian Ike <b-ike@b-ike.de>
|
19 |
+
* @license http://creativecommons.org/licenses/by/3.0/ CC-BY 3.0
|
20 |
*/
|
21 |
+
|
22 |
class Thebod_Shippingrates_Model_Email extends Mage_Core_Model_Abstract {
|
23 |
/* code based on Mage_Sales_Model_Order::sendNewOrderEmail() */
|
24 |
+
/**
|
25 |
+
* sends notification mail for selected shipping rate
|
26 |
+
*
|
27 |
+
* @param Mage_Sales_Model_Order $order
|
28 |
+
* @return boolean
|
29 |
+
* @throws Exception
|
30 |
+
* @see Mage_Sales_Model_Order
|
31 |
+
*/
|
32 |
public function sendEmailNotification($order) {
|
33 |
if(strncmp($order->getShippingMethod(), 'shippingrates_', 14) != 0) {
|
34 |
+
return false;
|
35 |
}
|
36 |
|
37 |
$notificationMail = $order->getShippingCarrier()->getNotificationMail($order->getShippingMethod());
|
38 |
if(!strlen(trim($notificationMail))) {
|
39 |
+
return false;
|
40 |
}
|
41 |
|
42 |
$storeId = $order->getStore()->getId();
|
87 |
)
|
88 |
);
|
89 |
$mailer->send();
|
90 |
+
|
91 |
+
return true;
|
92 |
}
|
93 |
}
|
app/code/community/Thebod/Shippingrates/Model/Observer.php
CHANGED
@@ -16,10 +16,16 @@
|
|
16 |
* @package Thebod_Shippingrates
|
17 |
* @copyright Copyright (c) 2012 Bastian Ike (http://thebod.de/)
|
18 |
* @author Bastian Ike <b-ike@b-ike.de>
|
19 |
-
* @license http://
|
20 |
*/
|
|
|
21 |
class Thebod_Shippingrates_Model_Observer {
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
23 |
$shippingModel = Mage::getModel('shippingrates/email');
|
24 |
$shippingModel->sendEmailNotification($event->getOrder());
|
25 |
}
|
16 |
* @package Thebod_Shippingrates
|
17 |
* @copyright Copyright (c) 2012 Bastian Ike (http://thebod.de/)
|
18 |
* @author Bastian Ike <b-ike@b-ike.de>
|
19 |
+
* @license http://creativecommons.org/licenses/by/3.0/ CC-BY 3.0
|
20 |
*/
|
21 |
+
|
22 |
class Thebod_Shippingrates_Model_Observer {
|
23 |
+
/**
|
24 |
+
* observer to send mail notification
|
25 |
+
*
|
26 |
+
* @param $event
|
27 |
+
*/
|
28 |
+
public function checkoutTypeOnepageSaveOrderAfter($event) {
|
29 |
$shippingModel = Mage::getModel('shippingrates/email');
|
30 |
$shippingModel->sendEmailNotification($event->getOrder());
|
31 |
}
|
app/code/community/Thebod/Shippingrates/etc/config.xml
CHANGED
@@ -25,7 +25,7 @@
|
|
25 |
<shippingrates>
|
26 |
<type>singleton</type>
|
27 |
<class>shippingrates/observer</class>
|
28 |
-
<method>
|
29 |
</shippingrates>
|
30 |
</observers>
|
31 |
</checkout_type_onepage_save_order_after>
|
25 |
<shippingrates>
|
26 |
<type>singleton</type>
|
27 |
<class>shippingrates/observer</class>
|
28 |
+
<method>checkoutTypeOnepageSaveOrderAfter</method>
|
29 |
</shippingrates>
|
30 |
</observers>
|
31 |
</checkout_type_onepage_save_order_after>
|
package.xml
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Thebod_Shippingrates</name>
|
4 |
-
<version>1.0.
|
5 |
<stability>stable</stability>
|
6 |
-
<license uri="http://
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Simple configurable shippingrates for Magento</summary>
|
@@ -12,12 +12,16 @@
|
|
12 |
Simple configurable shippingrates for Magento.
|
13 |

|
14 |
This simple module lets you define as many shipping methods as you need, with an optional 'notification e-mail'.
|
15 |
-
Very useful for 'pickup-at-store' or if you need a few self-specified fixed rates shipping methods
|
16 |
-
|
|
|
|
|
|
|
|
|
17 |
<authors><author><name>Bastian Ike</name><user>auto-converted</user><email>thebod@thebod.de</email></author></authors>
|
18 |
-
<date>2012-
|
19 |
-
<time>
|
20 |
-
<contents><target name="magecommunity"><dir name="Thebod"><dir name="Shippingrates"><dir name="Block"><dir name="Adminhtml"><file name="Config.php" hash="
|
21 |
<compatible/>
|
22 |
<dependencies/>
|
23 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Thebod_Shippingrates</name>
|
4 |
+
<version>1.0.2</version>
|
5 |
<stability>stable</stability>
|
6 |
+
<license uri="http://creativecommons.org/licenses/by/3.0/">CC-BY 3.0</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Simple configurable shippingrates for Magento</summary>
|
12 |
Simple configurable shippingrates for Magento.
|
13 |

|
14 |
This simple module lets you define as many shipping methods as you need, with an optional 'notification e-mail'.
|
15 |
+
Very useful for 'pickup-at-store' or if you need a few self-specified fixed rates shipping methods.
|
16 |
+

|
17 |
+
Fork me on Github https://github.com/thebod/Thebod_Shippingrates !</description>
|
18 |
+
<notes>* Bugfixes, update recommend
|
19 |
+

|
20 |
+
* Tested on 1.6, should work on Magento >= 1.4</notes>
|
21 |
<authors><author><name>Bastian Ike</name><user>auto-converted</user><email>thebod@thebod.de</email></author></authors>
|
22 |
+
<date>2012-03-16</date>
|
23 |
+
<time>22:08:34</time>
|
24 |
+
<contents><target name="magecommunity"><dir name="Thebod"><dir name="Shippingrates"><dir name="Block"><dir name="Adminhtml"><file name="Config.php" hash="6d71e3516df636f42431904e9cad8718"/></dir></dir><dir name="Helper"><file name="Data.php" hash="1729e0de9e6dea4b63bf22d3ef00bf39"/></dir><dir name="Model"><dir name="System"><file name="Config.php" hash="d5cc2bc66d01f10939f86fade97d2f12"/></dir><file name="Carrier.php" hash="0781bbd909e8a78ff75026002e08b91f"/><file name="Email.php" hash="2388584e5573e39e338e02e4440f9666"/><file name="Observer.php" hash="4d141167a2d8a695f7dc0b657e4b0d8f"/></dir><dir name="etc"><file name="config.xml" hash="2569312345c36f0b53ab9d32882ee7c4"/><file name="system.xml" hash="1b5ed3db08ed13d21c7686705f5f193d"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Thebod_Shippingrates.xml" hash="f4baeb06eea903395d8ef19b187961e0"/></dir></target><target name="magelocale"><dir name="de_DE"><file name="Thebod_Shippingrates.csv" hash="c0e42c61094aa36c8b699b909581615f"/></dir><dir name="pt_PT"><file name="Thebod_Shippingrates.csv" hash="7873741ed92a4370a7280d4c76e7c1ee"/></dir></target></contents>
|
25 |
<compatible/>
|
26 |
<dependencies/>
|
27 |
</package>
|