Zookal_Mock - Version 1.0.3

Version Notes

1.0.3

- Added Mage_Shipping mocks. Please read documentation how to properly disable this module.

https://github.com/Zookal/magento-mock

Download this release

Release Info

Developer Cyrill Schumacher
Extension Zookal_Mock
Version 1.0.3
Comparing to
See all releases


Code changes from version 1.0.2 to 1.0.3

app/code/community/Zookal/Mock/Helper/Data.php CHANGED
@@ -44,7 +44,7 @@ class Zookal_Mock_Helper_Data extends Mage_Core_Helper_Abstract
44
  */
45
  public function isLogMethodEnabled()
46
  {
47
- return (int)$this->getStore()->getConfig('system/zookalmock/enable_method_log') === 1;
48
  }
49
 
50
  /**
44
  */
45
  public function isLogMethodEnabled()
46
  {
47
+ return (int)$this->getStore()->getConfig('dev/zookalmock/enable_method_log') === 1;
48
  }
49
 
50
  /**
app/code/community/Zookal/Mock/Model/Catalog/Model/Product.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @category Zookal_Mock
5
+ * @package Model
6
+ * @author Cyrill Schumacher | {firstName}@{lastName}.fm | @SchumacherFM
7
+ * @copyright Copyright (c) Zookal Pty Ltd
8
+ * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
+ */
10
+ class Zookal_Mock_Model_Catalog_Model_Product extends Mage_Catalog_Model_Product
11
+ {
12
+
13
+ /**
14
+ * Use only if:
15
+ * - you don't have your own Mage_Catalog_Model_Product rewrite
16
+ * - Mage_Shipping is disabled
17
+ *
18
+ * If you have your own rewrite of Mage_Catalog_Model_Product add the method getIsVirtual()
19
+ * Do not change anything in the database.
20
+ *
21
+ * @return bool
22
+ */
23
+ public function getIsVirtual()
24
+ {
25
+ return true;
26
+ }
27
+ }
app/code/community/Zookal/Mock/Model/Mocks/Abstract.php CHANGED
@@ -20,6 +20,7 @@ abstract class Zookal_Mock_Model_Mocks_Abstract
20
  protected $_mockMethodsReturnThis = array(
21
  'add' => 1, // e.g. addCustomerFilter ...
22
  'cle' => 1, // e.g. clean() clear() clearasil()
 
23
  'gettotals' => 1, // Special case in Sales_Collection
24
  'gro' => 1, // e.g. groupByCustomer
25
  'joi' => 1, // e.g. joinCustomerName
@@ -29,6 +30,7 @@ abstract class Zookal_Mock_Model_Mocks_Abstract
29
  'pre' => 1, // e.g. prepare()
30
  'resetsortorder' => 1,
31
  'renewsession' => 1,
 
32
  'set' => 1,
33
  'too' => 1, // e.g. toOptionArray, toOptionHash
34
  'uns' => 1,
@@ -39,21 +41,22 @@ abstract class Zookal_Mock_Model_Mocks_Abstract
39
  'toh' => 1, // toHtml() on blocks
40
  );
41
  protected $_mockMethodsReturnFalse = array(
42
- 'can' => 1, // canCapture and all other payment related methods
43
- 'has' => 1,
44
- 'isa' => 1, // e.g. isAvailable -> Payment
45
- 'isd' => 1, // e.g. isDiscounted e.g. Weee helper
46
- 'ise' => 1, // e.g. isEnabled e.g. Weee helper
47
- 'isg' => 1, // e.g. isGateway -> Payment
48
- 'isi' => 1, // e.g. isInitializeNeeded -> Payment
49
- 'ism' => 1, // e.g. isMessagesAvailable -> GiftMessage
50
- 'iss' => 1, // e.g. isSubscribed
51
- 'ist' => 1, // e.g. isTaxable in Weee
52
- 'isv' => 1, // e.g. isValid...
53
- 'isl' => 1, // e.g. isLoggedIn
54
- 'use' => 1,
55
- 'typ' => 1, // Weee Helper->typeofdisplay()
56
- 'val' => 1, // Weee Helper->validateCatalogPricesAndFptConfiguration()
 
57
  );
58
 
59
  /**
20
  protected $_mockMethodsReturnThis = array(
21
  'add' => 1, // e.g. addCustomerFilter ...
22
  'cle' => 1, // e.g. clean() clear() clearasil()
23
+ 'collectrates' => 1, // e.g. Mage_Shipping_Model_Shipping::collectRates()
24
  'gettotals' => 1, // Special case in Sales_Collection
25
  'gro' => 1, // e.g. groupByCustomer
26
  'joi' => 1, // e.g. joinCustomerName
30
  'pre' => 1, // e.g. prepare()
31
  'resetsortorder' => 1,
32
  'renewsession' => 1,
33
+ 'sav' => 1, // e.g. save()
34
  'set' => 1,
35
  'too' => 1, // e.g. toOptionArray, toOptionHash
36
  'uns' => 1,
41
  'toh' => 1, // toHtml() on blocks
42
  );
43
  protected $_mockMethodsReturnFalse = array(
44
+ 'displaygirthvalue' => 1, // Mage_Usa helper in packaging/popup.phtml
45
+ 'can' => 1, // canCapture and all other payment related methods
46
+ 'has' => 1,
47
+ 'isa' => 1, // e.g. isAvailable -> Payment
48
+ 'isd' => 1, // e.g. isDiscounted e.g. Weee helper
49
+ 'ise' => 1, // e.g. isEnabled e.g. Weee helper
50
+ 'isg' => 1, // e.g. isGateway -> Payment
51
+ 'isi' => 1, // e.g. isInitializeNeeded -> Payment
52
+ 'ism' => 1, // e.g. isMessagesAvailable -> GiftMessage
53
+ 'iss' => 1, // e.g. isSubscribed
54
+ 'ist' => 1, // e.g. isTaxable in Weee
55
+ 'isv' => 1, // e.g. isValid...
56
+ 'isl' => 1, // e.g. isLoggedIn
57
+ 'use' => 1,
58
+ 'typ' => 1, // Weee Helper->typeofdisplay()
59
+ 'val' => 1, // Weee Helper->validateCatalogPricesAndFptConfiguration()
60
  );
61
 
62
  /**
app/code/community/Zookal/Mock/Model/Mocks/Mage/Config.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @category Zookal_Mock
5
+ * @package Model
6
+ * @author Cyrill Schumacher | {firstName}@{lastName}.fm | @SchumacherFM
7
+ * @copyright Copyright (c) Zookal Pty Ltd
8
+ * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
+ */
10
+
11
+ /**
12
+ * needed when Mage_Shipping is disabled
13
+ * Class Zookal_Mock_Model_Mocks_Mage_Config
14
+ */
15
+ class Zookal_Mock_Model_Mocks_Mage_Config extends Zookal_Mock_Model_Mocks_Abstract
16
+ {
17
+ /**
18
+ * @return array
19
+ */
20
+ public function getAllCarriers()
21
+ {
22
+ return array();
23
+ }
24
+ }
app/code/community/Zookal/Mock/Model/Mocks/Mage/Giftmessage/Block/Adminhtml/Product/Helper/Form/Config.php CHANGED
@@ -7,6 +7,12 @@
7
  * @copyright Copyright (c) Zookal Pty Ltd
8
  * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
  */
 
 
 
 
 
 
10
  class Mage_GiftMessage_Block_Adminhtml_Product_Helper_Form_Config extends Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Config
11
  {
12
  /**
7
  * @copyright Copyright (c) Zookal Pty Ltd
8
  * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
  */
10
+
11
+ /**
12
+ * Class Mage_GiftMessage_Block_Adminhtml_Product_Helper_Form_Config
13
+ * Do not change the class name, as it is needed for the autoloader because this class is somewhere in Magentos source code hardcoded :-(
14
+ * @see Zookal_Mock_Model_Observer::_setMockIncludePath
15
+ */
16
  class Mage_GiftMessage_Block_Adminhtml_Product_Helper_Form_Config extends Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Config
17
  {
18
  /**
app/code/community/Zookal/Mock/Model/Mocks/Mage/Rate/Request.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @category Zookal_Mock
5
+ * @package Model
6
+ * @author Cyrill Schumacher | {firstName}@{lastName}.fm | @SchumacherFM
7
+ * @copyright Copyright (c) Zookal Pty Ltd
8
+ * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
+ */
10
+
11
+ /**
12
+ * Mock for Mage_Shipping_Model_Rate_Request
13
+ * Class Zookal_Mock_Model_Mocks_Mage_Rate_Request
14
+ */
15
+ class Zookal_Mock_Model_Mocks_Mage_Rate_Request extends Zookal_Mock_Model_Mocks_Abstract
16
+ {
17
+
18
+ }
app/code/community/Zookal/Mock/Model/Mocks/Mage/Shipping.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @category Zookal_Mock
5
+ * @package Model
6
+ * @author Cyrill Schumacher | {firstName}@{lastName}.fm | @SchumacherFM
7
+ * @copyright Copyright (c) Zookal Pty Ltd
8
+ * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
+ */
10
+
11
+ /**
12
+ * needed when Mage_Shipping is disabled
13
+ * Mock for Mage_Shipping_Model_Shipping
14
+ * Class Zookal_Mock_Model_Mocks_Mage_Config
15
+ */
16
+ class Zookal_Mock_Model_Mocks_Mage_Shipping extends Zookal_Mock_Model_Mocks_Abstract
17
+ {
18
+ }
app/code/community/Zookal/Mock/Model/Mocks/Mage/{Usa/Model/Shipping → Shipping}/Carrier/Ups.php RENAMED
@@ -7,7 +7,7 @@
7
  * @copyright Copyright (c) Zookal Pty Ltd
8
  * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
  */
10
- class Mage_Usa_Model_Shipping_Carrier_Ups extends Zookal_Mock_Model_Mocks_Abstract
11
  {
12
 
13
  }
7
  * @copyright Copyright (c) Zookal Pty Ltd
8
  * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
  */
10
+ class Zookal_Mock_Model_Mocks_Mage_Shipping_Carrier_Ups extends Zookal_Mock_Model_Mocks_Abstract
11
  {
12
 
13
  }
app/code/community/Zookal/Mock/Model/Mocks/Mage/Shipping/Carrier/Usps/Source/Size.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @category Zookal_Mock
5
+ * @package Model
6
+ * @author Cyrill Schumacher | {firstName}@{lastName}.fm | @SchumacherFM
7
+ * @copyright Copyright (c) Zookal Pty Ltd
8
+ * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
+ */
10
+ class Zookal_Mock_Model_Mocks_Mage_Shipping_Carrier_Usps_Source_Size extends Zookal_Mock_Model_Mocks_Abstract
11
+ {
12
+
13
+ }
app/code/community/Zookal/Mock/Model/Mocks/Mage/Shipping/Model/Config.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @category Zookal_Mock
5
+ * @package Model
6
+ * @author Cyrill Schumacher | {firstName}@{lastName}.fm | @SchumacherFM
7
+ * @copyright Copyright (c) Zookal Pty Ltd
8
+ * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
+ */
10
+
11
+ /**
12
+ * needed when Mage_Shipping is disabled
13
+ * Do not change the class name, as it is needed for the autoloader because this class is somewhere in Magentos source code hardcoded :-(
14
+ * @see Zookal_Mock_Model_Observer::_setMockIncludePath
15
+ * Class Zookal_Mock_Model_Mocks_Mage_Config
16
+ */
17
+ class Mage_Shipping_Model_Config extends Zookal_Mock_Model_Mocks_Abstract
18
+ {
19
+ /**
20
+ * Shipping origin settings
21
+ */
22
+ const XML_PATH_ORIGIN_COUNTRY_ID = 'shipping/mock/fake_country_id';
23
+ const XML_PATH_ORIGIN_REGION_ID = 'shipping/mock/fake_region_id';
24
+ const XML_PATH_ORIGIN_CITY = 'shipping/mock/fake_city';
25
+ const XML_PATH_ORIGIN_POSTCODE = 'shipping/mock/fake_postcode';
26
+ }
app/code/community/Zookal/Mock/Model/Mocks/Mage/Shipping/Model/Rate/Abstract.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @category Zookal_Mock
5
+ * @package Model
6
+ * @author Cyrill Schumacher | {firstName}@{lastName}.fm | @SchumacherFM
7
+ * @copyright Copyright (c) Zookal Pty Ltd
8
+ * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
+ */
10
+
11
+ /**
12
+ * Class Mage_Shipping_Model_Rate_Abstract
13
+ * Do not change the class name, as it is needed for the autoloader because this class is somewhere in Magentos source code hardcoded :-(
14
+ * @see Zookal_Mock_Model_Observer::_setMockIncludePath
15
+ */
16
+ abstract class Mage_Shipping_Model_Rate_Abstract extends Zookal_Mock_Model_Mocks_Abstract //Mage_Core_Model_Abstract
17
+ {
18
+ }
app/code/community/Zookal/Mock/Model/Mocks/Mage/Shipping/Model/Shipping.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @category Zookal_Mock
5
+ * @package Model
6
+ * @author Cyrill Schumacher | {firstName}@{lastName}.fm | @SchumacherFM
7
+ * @copyright Copyright (c) Zookal Pty Ltd
8
+ * @license OSL - Open Software Licence 3.0 | http://opensource.org/licenses/osl-3.0.php
9
+ */
10
+
11
+ /**
12
+ * Class Mage_Shipping_Model_Shipping
13
+ * Do not change the class name, as it is needed for the autoloader because this class is somewhere in Magentos source code hardcoded :-(
14
+ * @see Zookal_Mock_Model_Observer::_setMockIncludePath
15
+ */
16
+ class Mage_Shipping_Model_Shipping extends Zookal_Mock_Model_Mocks_Abstract
17
+ {
18
+ const XML_PATH_STORE_COUNTRY_ID = 'shipping/mock/fake_country_id';
19
+ const XML_PATH_ORIGIN_REGION_ID = 'shipping/mock/fake_region_id';
20
+ const XML_PATH_ORIGIN_CITY = 'shipping/mock/fake_city';
21
+ const XML_PATH_ORIGIN_POSTCODE = 'shipping/mock/fake_postcode';
22
+ const XML_PATH_STORE_ADDRESS1 = 'shipping/mock/fake_street_line1';
23
+ const XML_PATH_STORE_ADDRESS2 = 'shipping/mock/fake_street_line2';
24
+ const XML_PATH_STORE_CITY = 'shipping/mock/fake_city';
25
+ const XML_PATH_STORE_REGION_ID = 'shipping/mock/fake_region_id';
26
+ const XML_PATH_STORE_ZIP = 'shipping/mock/fake_postcode';
27
+ }
app/code/community/Zookal/Mock/Model/Observer.php CHANGED
@@ -25,8 +25,10 @@ class Zookal_Mock_Model_Observer
25
  protected $_mappingModel = array(
26
  'Mage_Wishlist' => 'wishlist',
27
  'Mage_Weee' => 'weee',
 
28
  'Mage_Tag' => 'tag',
29
  'Mage_Tax' => 'tax',
 
30
  'Mage_Sales' => 'sales',
31
  'Mage_Review' => 'review',
32
  'Mage_Reports' => 'reports',
@@ -53,15 +55,17 @@ class Zookal_Mock_Model_Observer
53
  'Mage_Adminhtml' => '_mageMockIncludePath',
54
  'Mage_Catalog' => '_mageCatalog',
55
  'Mage_Customer' => '_mageCustomer',
56
- 'Mage_GiftMessage' => '_mageMockHelper',
57
  'Mage_GoogleCheckout' => '_mageGoogleCheckout',
58
  'Mage_Log' => '_mageMockIncludePath',
59
  'Mage_ProductAlert' => '_mageMockHelper',
60
  'Mage_Review' => '_mageMockHelper',
 
61
  'Mage_Tag' => '_mageMockIncludePath',
62
  'Mage_Tax' => '_mageTaxClass',
 
63
  'Mage_Wishlist' => '_mageMockHelper',
64
- 'Mage_Weee' => '_mageMockWeee',
65
  );
66
 
67
  /**
@@ -147,7 +151,7 @@ class Zookal_Mock_Model_Observer
147
  * @param $moduleName
148
  * @param $resource
149
  */
150
- protected function _mageMockWeee($pathPrefix, $moduleName, $resource)
151
  {
152
  $this->_mageMockHelper($pathPrefix, $moduleName, $resource);
153
  $this->_mageMockIncludePath();
25
  protected $_mappingModel = array(
26
  'Mage_Wishlist' => 'wishlist',
27
  'Mage_Weee' => 'weee',
28
+ 'Mage_Usa' => 'usa',
29
  'Mage_Tag' => 'tag',
30
  'Mage_Tax' => 'tax',
31
+ 'Mage_Shipping' => 'shipping',
32
  'Mage_Sales' => 'sales',
33
  'Mage_Review' => 'review',
34
  'Mage_Reports' => 'reports',
55
  'Mage_Adminhtml' => '_mageMockIncludePath',
56
  'Mage_Catalog' => '_mageCatalog',
57
  'Mage_Customer' => '_mageCustomer',
58
+ 'Mage_GiftMessage' => '_mageMockHelperIncludePath',
59
  'Mage_GoogleCheckout' => '_mageGoogleCheckout',
60
  'Mage_Log' => '_mageMockIncludePath',
61
  'Mage_ProductAlert' => '_mageMockHelper',
62
  'Mage_Review' => '_mageMockHelper',
63
+ 'Mage_Shipping' => '_mageMockHelperIncludePath',
64
  'Mage_Tag' => '_mageMockIncludePath',
65
  'Mage_Tax' => '_mageTaxClass',
66
+ 'Mage_Usa' => '_mageMockHelper',
67
  'Mage_Wishlist' => '_mageMockHelper',
68
+ 'Mage_Weee' => '_mageMockHelperIncludePath',
69
  );
70
 
71
  /**
151
  * @param $moduleName
152
  * @param $resource
153
  */
154
+ protected function _mageMockHelperIncludePath($pathPrefix, $moduleName, $resource)
155
  {
156
  $this->_mageMockHelper($pathPrefix, $moduleName, $resource);
157
  $this->_mageMockIncludePath();
app/code/community/Zookal/Mock/etc/config.xml CHANGED
@@ -16,6 +16,15 @@
16
  <zookal_mock>
17
  <class>Zookal_Mock_Model</class>
18
  </zookal_mock>
 
 
 
 
 
 
 
 
 
19
  </models>
20
  <blocks>
21
  <zookal_mock>
@@ -45,11 +54,11 @@
45
  </translate>
46
  </adminhtml>
47
  <default>
48
- <system>
49
  <zookalmock>
50
  <enable_method_log>0</enable_method_log>
51
  </zookalmock>
52
- </system>
53
  </default>
54
  <phpunit>
55
  <suite>
16
  <zookal_mock>
17
  <class>Zookal_Mock_Model</class>
18
  </zookal_mock>
19
+ <!--
20
+ Example rewrite when Mage_Shipping is disabled and/or files are removed.
21
+ Add this rewrite xml somewhere into your config.xml files.
22
+ <catalog>
23
+ <rewrite>
24
+ <product>Zookal_Mock_Model_Catalog_Model_Product</product>
25
+ </rewrite>
26
+ </catalog>
27
+ -->
28
  </models>
29
  <blocks>
30
  <zookal_mock>
54
  </translate>
55
  </adminhtml>
56
  <default>
57
+ <dev>
58
  <zookalmock>
59
  <enable_method_log>0</enable_method_log>
60
  </zookalmock>
61
+ </dev>
62
  </default>
63
  <phpunit>
64
  <suite>
app/code/community/Zookal/Mock/etc/system.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <config>
3
  <sections>
4
- <system>
5
  <groups>
6
  <zookalmock translate="label">
7
  <label>Object Mock [Zookal_Mock Module]</label>
@@ -24,6 +24,6 @@
24
  </fields>
25
  </zookalmock>
26
  </groups>
27
- </system>
28
  </sections>
29
  </config>
1
  <?xml version="1.0"?>
2
  <config>
3
  <sections>
4
+ <dev>
5
  <groups>
6
  <zookalmock translate="label">
7
  <label>Object Mock [Zookal_Mock Module]</label>
24
  </fields>
25
  </zookalmock>
26
  </groups>
27
+ </dev>
28
  </sections>
29
  </config>
package.xml CHANGED
@@ -1,26 +1,34 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Zookal_Mock</name>
4
- <version>1.0.2</version>
5
  <stability>stable</stability>
6
  <license uri="https://github.com/Zookal/magento-mock">OSL</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Transparent auto detecting of disabled core modules &amp; exten. Providing mock objects for not breaking Magento.</summary>
10
- <description>&lt;h1&gt;&#xD;
11
- Mock Objects&lt;/h1&gt;&#xD;
 
 
 
 
 
 
 
 
12
  &#xD;
13
- &lt;h5&gt;&#xD;
14
- TL;DR: Transparent autodetecting of disabled core modules and extensions and providing mock objects for not&#xD;
15
- breaking Magento. Nothing to configure. No class rewrites. Only one observer. Works out of the box.&lt;/h5&gt;&#xD;
16
  &#xD;
17
  &lt;p&gt;If you try to disable e.g. Mage_Newsletter or Mage_Wishlist or ... and you call certain parts of the backend or some rare parts of the frontend you will get&#xD;
18
  errors that Magento cannot find the class XYZ. Best examples are the two previoulsy mentioned. If you have disabled them and you open in the backend a&#xD;
19
  customer entry to edit it, the page will generate an error. Mage_Customer Edit has many dependencies with other modules. So the &lt;strong&gt;Zookal Mock&#xD;
20
  Module&lt;/strong&gt; will provide you mock objects which catches all method calls to disabled classes of that modules without breaking anything.&lt;/p&gt;&#xD;
21
  &#xD;
22
- &lt;p&gt;&lt;strong&gt;Uninstalling payment modules&lt;/strong&gt;: If you try to remove a payment module (&lt;em&gt;which has already been used by customers in the checkout&lt;/em&gt;) you&#xD;
23
- cannot open anymore all orders associated with that module. The reason is that the tables &lt;code&gt;sales_flat_*_payment&lt;/code&gt; contains in the column &lt;code&gt;method&lt;/code&gt;&#xD;
24
  the method which referers to the model for loading payment relevant informations. Please see below how to uninstall your payment module without touching&#xD;
25
  database tables.&lt;/p&gt;&#xD;
26
  &#xD;
@@ -35,6 +43,7 @@
35
  &lt;li&gt;Mage_Rating&lt;/li&gt;&#xD;
36
  &lt;li&gt;Mage_Tag&lt;/li&gt;&#xD;
37
  &lt;li&gt;Mage_Tax&lt;/li&gt;&#xD;
 
38
  &lt;li&gt;Mage_Log&lt;/li&gt;&#xD;
39
  &lt;li&gt;Mage_Backup&lt;/li&gt;&#xD;
40
  &lt;li&gt;Mage_Customer&lt;/li&gt;&#xD;
@@ -51,25 +60,21 @@
51
  &lt;p&gt;Also we can't delete the database tables from some disabled modules as e.g. CatalogIndex relies von customer_group tables&#xD;
52
  or Customer relies on some tax tables when tax is disabled.&lt;/p&gt;&#xD;
53
  &#xD;
54
- &lt;p&gt;At Zookal we have the following modules disabled: Mage_AdminNotification, Mage_Authorizenet, Mage_Backup, Mage_Captcha, Mage_Compiler, Mage_Connect,&#xD;
55
- Mage_GoogleCheckout, Mage_GoogleBase, Mage_Install, Mage_Log, Mage_Paypal, Mage_PaypalUk, Mage_Poll, Mage_ProductAlert, Mage_Review, Mage_Rating,&#xD;
56
- Mage_Rss, Mage_Sendfriend, Mage_Tag, Mage_Usa, Mage_Wishlist, Mage_XmlConnect, Phoenix_Moneybookers.&lt;/p&gt;&#xD;
57
- &#xD;
58
  &lt;h2&gt;&#xD;
59
  How do I&#xD;
60
  disable a module?&lt;/h2&gt;&#xD;
61
  &#xD;
62
  &lt;p&gt;Add in your custom app/etc/modules/Vendor_NameSpace.xml&lt;/p&gt;&#xD;
63
  &#xD;
64
- &lt;div class="highlight highlight-xml"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;config&amp;gt;&lt;/span&gt;&#xD;
65
- &lt;span class="nt"&gt;&amp;lt;modules&amp;gt;&lt;/span&gt;&#xD;
66
- &lt;span class="nt"&gt;&amp;lt;Mage_ModuleName&amp;gt;&lt;/span&gt;&#xD;
67
- &lt;span class="nt"&gt;&amp;lt;active&amp;gt;&lt;/span&gt;false&lt;span class="nt"&gt;&amp;lt;/active&amp;gt;&lt;/span&gt;&#xD;
68
- &lt;span class="nt"&gt;&amp;lt;/Mage_ModuleName&amp;gt;&lt;/span&gt;&#xD;
69
- &lt;span class="nt"&gt;&amp;lt;/modules&amp;gt;&lt;/span&gt;&#xD;
70
- &lt;span class="nt"&gt;&amp;lt;/config&amp;gt;&lt;/span&gt;&#xD;
 
71
  &lt;/pre&gt;&#xD;
72
- &lt;/div&gt;&#xD;
73
  &#xD;
74
  &lt;h2&gt;&#xD;
75
  How do I uninstall a payment module?&lt;/h2&gt;&#xD;
@@ -80,42 +85,43 @@
80
  &#xD;
81
  &lt;p&gt;In one of your local modules add the following "backup" entry into the config.xml:&lt;/p&gt;&#xD;
82
  &#xD;
83
- &lt;div class="highlight highlight-xml"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;config&amp;gt;&lt;/span&gt;&#xD;
84
- &lt;span class="nt"&gt;&amp;lt;default&amp;gt;&lt;/span&gt;&#xD;
85
- &lt;span class="nt"&gt;&amp;lt;payment&amp;gt;&lt;/span&gt;&#xD;
86
- &lt;span class="nt"&gt;&amp;lt;paypal_standard&amp;gt;&lt;/span&gt;&#xD;
87
- &lt;span class="nt"&gt;&amp;lt;model&amp;gt;&lt;/span&gt;zookal_mock/mocks_mage_payment&lt;span class="nt"&gt;&amp;lt;/model&amp;gt;&lt;/span&gt;&#xD;
88
- &lt;span class="nt"&gt;&amp;lt;/paypal_standard&amp;gt;&lt;/span&gt;&#xD;
89
- &lt;span class="nt"&gt;&amp;lt;another_payment_method&amp;gt;&lt;/span&gt;&#xD;
90
- &lt;span class="nt"&gt;&amp;lt;model&amp;gt;&lt;/span&gt;zookal_mock/mocks_mage_payment&lt;span class="nt"&gt;&amp;lt;/model&amp;gt;&lt;/span&gt;&#xD;
91
- &lt;span class="nt"&gt;&amp;lt;/another_payment_method&amp;gt;&lt;/span&gt;&#xD;
92
- &lt;span class="nt"&gt;&amp;lt;/payment&amp;gt;&lt;/span&gt;&#xD;
93
- &lt;span class="nt"&gt;&amp;lt;/default&amp;gt;&lt;/span&gt;&#xD;
94
- &lt;span class="nt"&gt;&amp;lt;/config&amp;gt;&lt;/span&gt;&#xD;
 
 
95
  &lt;/pre&gt;&#xD;
96
- &lt;/div&gt;&#xD;
97
  &#xD;
98
  &lt;p&gt;The above xml contains the section where Mage_Paypal module has been disabled and previously used in orders.&lt;/p&gt;&#xD;
99
  &#xD;
100
  &lt;p&gt;No other database updates are required. Clear the caches and check in the backend some orders related to that payment method. You will now see a key/value&#xD;
101
  list of the payment details.&lt;/p&gt;&#xD;
102
  &#xD;
103
- &lt;p&gt;The backend mock payment block has an integrated event &lt;code&gt;mock_payment_backend_block_to_html_before&lt;/code&gt; with which you can modify the output.&lt;/p&gt;&#xD;
104
  &#xD;
105
- &lt;p&gt;The frontend mock payment block uses the default block &lt;code&gt;Mage_Core_Block_Abstract&lt;/code&gt; which allows you the usual modifications.&lt;/p&gt;&#xD;
106
  &#xD;
107
  &lt;h2&gt;&#xD;
108
  I've disabled and removed Mage_Adminhtml&lt;/h2&gt;&#xD;
109
  &#xD;
110
  &lt;p&gt;You rock!&lt;/p&gt;&#xD;
111
  &#xD;
112
- &lt;p&gt;Did you remove every Adminhtml area via &lt;code&gt;$ find . -iname "adminhtml" -type d -exec rm -Rf {} +&lt;/code&gt; ?&lt;/p&gt;&#xD;
113
  &#xD;
114
  &lt;p&gt;Running a backend-less version of Magento saves you processor time, space, speeds up your store and improves security. All missing required adminhtml files&#xD;
115
  will be transparently mocked. Nothing to configure!&lt;/p&gt;&#xD;
116
  &#xD;
117
- &lt;h4&gt;&#xD;
118
- But how do I maintain a backend-less store?&lt;/h4&gt;&#xD;
119
  &#xD;
120
  &lt;p&gt;You have two solutions:&lt;/p&gt;&#xD;
121
  &#xD;
@@ -128,7 +134,7 @@
128
  &lt;p&gt;(1) If having multiple servers: Make sure that you connect only via SSL encryption to your MySQL server. Someone is spying :-(``&lt;/p&gt;&#xD;
129
  &#xD;
130
  &lt;p&gt;(2) There is currently a feature missing in n98-magerun &lt;a href="https://github.com/netz98/n98-magerun/issues/309"&gt;https://github.com/netz98/n98-magerun/issues/309&lt;/a&gt;&#xD;
131
- that you cannot configure &lt;code&gt;Mage:run()&lt;/code&gt; to use a custom configuration model as explained below.&lt;/p&gt;&#xD;
132
  &#xD;
133
  &lt;h2&gt;&#xD;
134
  I've disabled module&#xD;
@@ -136,33 +142,33 @@
136
  &#xD;
137
  &lt;p&gt;Let's say you disabled Mage_Dataflow but enabled Mage_Catalog and the system is presenting you:&lt;/p&gt;&#xD;
138
  &#xD;
139
- &lt;pre&gt;&lt;code&gt;"Mage_Catalog" requires module "Mage_Dataflow"&#xD;
140
- &lt;/code&gt;&lt;/pre&gt;&#xD;
 
 
141
  &#xD;
142
  &lt;p&gt;You have two possibilities:&lt;/p&gt;&#xD;
143
  &#xD;
144
  &lt;ol&gt;&#xD;
145
  &lt;li&gt;Edit app/etc/modules/Mage_*.xml and remove the appropriate dependencies.&lt;/li&gt;&#xD;
146
- &lt;li&gt;Edit your main index.php file and add this custom config model to &lt;code&gt;Mage::run()&lt;/code&gt;&#xD;
147
  &lt;/li&gt;&#xD;
148
  &lt;/ol&gt;&#xD;
149
- &lt;div class="highlight highlight-php"&gt;&lt;pre&gt;&lt;span class="nx"&gt;Mage&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span&#xD;
150
- class="nv"&gt;$mageRunCode&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$mageRunType&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span&#xD;
151
- class="p"&gt;(&lt;/span&gt;&#xD;
152
- &lt;span class="s1"&gt;'config_model'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Zookal_Mock_Model_Config'&lt;/span&gt;&#xD;
153
- &lt;span class="p"&gt;));&lt;/span&gt;&#xD;
154
  &lt;/pre&gt;&#xD;
155
- &lt;/div&gt;&#xD;
156
  &#xD;
157
- &lt;p&gt;The config model &lt;code&gt;Zookal_Mock_Model_Config&lt;/code&gt; will automatically resolve invalid dependencies for disabled modules. But some dependency really make&#xD;
158
  sense ;-)&lt;/p&gt;&#xD;
159
  &#xD;
160
  &lt;h2&gt;I've disabled&#xD;
161
  Mage_[Bundle|Rating|Review|Wishlist|Usa] but getting a weird error!&lt;/h2&gt;&#xD;
162
  &#xD;
163
- &lt;p&gt;The error is: &lt;code&gt;Notice: Trying to get property of non-object in app/code/core/Mage/Core/Model/Config.php on line 1239&lt;/code&gt;.&lt;/p&gt;&#xD;
164
  &#xD;
165
- &lt;p&gt;Digging deeper Mage_Core_Model_Config would like to access &lt;code&gt;Mage::helper('core')-&amp;gt;__()&lt;/code&gt; to display you the error message that&#xD;
166
  Mage_[Bundle|Rating|Review|Wishlist|Usa] requires the module Mage_XmlConnect. The notice message appears because the core helper is not yet initialized.&lt;/p&gt;&#xD;
167
  &#xD;
168
  &lt;p&gt;So deactivating Mage_XmlConnect works out as the solution. It has many dependencies. Btw: Only if you have the Magento own mobile app you'll need the&#xD;
@@ -177,10 +183,32 @@
177
  &#xD;
178
  &lt;ol&gt;&#xD;
179
  &lt;li&gt;Customize your theme in that way that no one can access (/).&lt;/li&gt;&#xD;
180
- &lt;li&gt;Create your own front router by adding an observer to the event &lt;code&gt;controller_front_init_routers&lt;/code&gt;.&lt;/li&gt;&#xD;
181
  &lt;/ol&gt;&#xD;
182
  &lt;p&gt;Blocks are also gone.&lt;/p&gt;&#xD;
183
  &#xD;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  &lt;h2&gt;&#xD;
185
  Can I remove the files of the disabled modules?&lt;/h2&gt;&#xD;
186
  &#xD;
@@ -191,6 +219,7 @@
191
  &lt;li&gt;Mage_Adminhtml&lt;/li&gt;&#xD;
192
  &lt;li&gt;Mage_Log&lt;/li&gt;&#xD;
193
  &lt;li&gt;Mage_Tag&lt;/li&gt;&#xD;
 
194
  &lt;/ul&gt;&#xD;
195
  &lt;p&gt;which have hardcoded dependencies through the whole Mage_Adminhtml code (if adminhtml has not been removed).&lt;/p&gt;&#xD;
196
  &#xD;
@@ -200,7 +229,7 @@
200
  Will there be a performance increase?&lt;/h2&gt;&#xD;
201
  &#xD;
202
  &lt;p&gt;Yes there will be a performance increase due to less loading of classes and xml files.&lt;/p&gt;&#xD;
203
- &#xD;
204
  &#xD;
205
  &lt;h2&gt;&#xD;
206
  About&lt;/h2&gt;&#xD;
@@ -227,24 +256,16 @@
227
  &#xD;
228
  &lt;p&gt;Made in Sydney, Australia :-)&lt;/p&gt;&#xD;
229
  </description>
230
- <notes>1.0.2&#xD;
231
- &#xD;
232
- - Added Mage_CatalogInventory mocks&#xD;
233
- - Added Mage_Usa fallback mock model. Errors occur when loading system/config section and files of Mage_Usa have been removed&#xD;
234
- &#xD;
235
- 1.0.1&#xD;
236
- &#xD;
237
- - Added Mage_Weee mocks&#xD;
238
- - Added Mage_GiftMessage mocks&#xD;
239
- Possibility to run mock module in a shell script&#xD;
240
  &#xD;
241
- 1.0.0&#xD;
242
  &#xD;
243
- - Initial Release</notes>
 
244
  <authors><author><name>Cyrill Schumacher</name><user>cyrills</user><email>cyrill@schumacher.fm</email></author></authors>
245
- <date>2014-04-24</date>
246
- <time>07:49:09</time>
247
- <contents><target name="magecommunity"><dir name="Zookal"><dir name="Mock"><dir><dir name="Block"><dir name="Payment"><file name="Backend.php" hash="b9229921a72e19f692cb9d6924221564"/><file name="Frontend.php" hash="833bd12a2d8c3b8ed489e283189ed122"/></dir></dir><dir name="Helper"><file name="Data.php" hash="e27f9f31e653126f207b985b0b3eb324"/></dir><dir name="Model"><file name="Config.php" hash="afbeb63c5a19a6911ab508477586f5e3"/><dir name="Mocks"><file name="Abstract.php" hash="beebca37228efabb0a38c29de4dd52ad"/><dir name="Mage"><dir name="AdminNotification"><dir name="Model"><file name="Survey.php" hash="6321f6d417c4c2f414f7b29de62f4cc4"/></dir></dir><dir name="Adminhtml"><dir name="Helper"><file name="Data.php" hash="7ccc6666f4ef1421a88319510d782f43"/></dir></dir><file name="Block.php" hash="7a2adb47711b912fa320b60e0c3eb3d4"/><dir name="CatalogInventory"><dir name="Model"><dir name="Stock"><file name="Item.php" hash="356a4ec59f91478130a18c75a8794cee"/></dir></dir></dir><dir name="Category"><file name="Collection.php" hash="6c9ac375135ca5269a5f888f022f6399"/><file name="Tree.php" hash="a37ecbc65cd3780ed191ee913509ef06"/></dir><file name="Category.php" hash="3c09f3eea7c89678670d4adeb0c4f708"/><dir name="Class"><dir name="Source"><file name="Customer.php" hash="5567855c827e3c8e925a0716de21dd70"/></dir></dir><dir name="Customer"><file name="Collection.php" hash="0322cd4a4b062a8fecf6a72cd6d7cbbc"/></dir><file name="Customer.php" hash="18e4ea855de44b6b6b7faabd684fc080"/><file name="Data.php" hash="0ab93919414ae9ecf8ed72f2bf038878"/><dir name="Giftmessage"><dir name="Block"><dir name="Adminhtml"><dir name="Product"><dir name="Helper"><dir name="Form"><file name="Config.php" hash="bbb81782c68fe9fe25cb5e6cb90a8642"/></dir></dir></dir></dir></dir></dir><file name="Group.php" hash="fcf85c8c3b24affbd8f2f82456ac3907"/><file name="Item.php" hash="f692effa3010262bfea29b18359d3549"/><dir name="Log"><dir name="Model"><file name="Visitor.php" hash="b8a8343c57f79abd38780594581e9dde"/></dir></dir><file name="Log.php" hash="8371873b2365c863c07c0c0227326b34"/><file name="Message.php" hash="4c812d8f56122fb5290162d6304bd524"/><dir name="Order"><file name="Collection.php" hash="3e8262c4cdda6f710c9e3a40e2b76a94"/><dir name="Grid"><file name="Collection.php" hash="97371286529c7b2ced399a5a51fe9b72"/></dir></dir><file name="Payment.php" hash="9a873df5da7d716854ea52258209928e"/><dir name="Product"><file name="Collection.php" hash="8ab40ba5191188eed78bcab7dd76f558"/></dir><file name="Product.php" hash="f038a1450c4a18059df3239262084e0f"/><dir name="Profile"><file name="Collection.php" hash="931080d96e85927a77f77143b49dadf6"/></dir><dir name="Queue"><file name="Collection.php" hash="c4d7dd95a1a1918a99993484f82d9b3d"/></dir><file name="Quote.php" hash="de3724f95154de0707f47d40ff9a08a8"/><file name="Review.php" hash="efd1a3f7dcf45e33f95fe2e76bdfbb5b"/><dir name="Sale"><file name="Collection.php" hash="aa228d612ae734749e9adc382e806cd4"/></dir><file name="Session.php" hash="e6f976be6bd82b367854842f385d1a4a"/><file name="Subscriber.php" hash="908e105fa12c88e0f0a312b42bef35d3"/><dir name="Tag"><dir name="Model"><file name="Tag.php" hash="38a200df605197975e5e294081cf0663"/></dir></dir><file name="Tag.php" hash="bb059453e0978b12350581978b1931af"/><dir name="Tax"><file name="Class.php" hash="cb7a52951105cb7aa0bb9f2c566570a7"/></dir><dir name="Usa"><dir name="Model"><dir name="Shipping"><dir name="Carrier"><file name="Ups.php" hash="7debdce0931fc61d8eeef92876a6a73c"/></dir></dir></dir></dir><dir name="Visitor"><file name="Online.php" hash="774df1f34ae162fa52db376afc415823"/></dir><file name="Visitor.php" hash="4c4eb14327dc35144203e28a646ad579"/><dir name="Weee"><dir name="Model"><file name="Tax.php" hash="8c57836668f3c9a3ce4632621ce4533a"/></dir></dir></dir></dir><file name="Observer.php" hash="9c454e91735a6aeadd4a4aa84b0094b4"/></dir><dir name="Test"><dir name="Config"><file name="ConfigTest.php" hash="9801ef844555a09a2189cb4e1916cf95"/><file name="SystemTest.php" hash="b72edbb351b923ccbc2543dc79d859ee"/></dir><dir name="Helper"><file name="DataTest.php" hash="57a4b15ca7d916d295fb95d1f621d6bd"/></dir><dir name="Model"><file name="ConfigTest.php" hash="6db11147c31fdf5ee8456610439e12cd"/><dir name="Mocks"><file name="AbstractTest.php" hash="84cb9162b6f5ee2b755c134ec7b5d765"/><dir name="Mage"><file name="AbstractPHPUnitTestCase.php" hash="a55c209378c6ff4e0785b38e2d61063c"/><dir name="AdminNotification"><dir name="Model"><file name="SurveyTest.php" hash="b96def6058ac4fe111b441791a7776cd"/></dir></dir><dir name="Adminhtml"><dir name="Helper"><file name="DataTest.php" hash="5b3979a82ed70277a1f9bd380628804c"/></dir></dir><file name="BlockTest.php" hash="7df2890ad281722b028b277ffe9f5aec"/><dir name="Category"><file name="CollectionTest.php" hash="30e4d976b5fdb4b4bd3ac27508ddc77f"/><file name="TreeTest.php" hash="5eea6b1f1eb7627b8be2467e9fc44715"/></dir><file name="CategoryTest.php" hash="8bb8f394ac0a6dec4c2c2927e897aa40"/><dir name="Class"><dir name="Source"><file name="CustomerTest.php" hash="9a4efa200d3a3a77517dd94c75b125ed"/></dir></dir><dir name="Customer"><file name="CollectionTest.php" hash="bedff17927077c41ebc2fdea25a9459f"/></dir><file name="CustomerTest.php" hash="6955de25f84e8ea0858b76a9ac84f4bc"/><file name="DataTest.php" hash="2084e46e1c693387e96f5ce5e563f67f"/><file name="GroupTest.php" hash="16dc75c4a737f286f03caab1deb3f539"/><file name="ItemTest.php" hash="6c6241a7c37dac90b6668558822bcfcd"/><dir name="Log"><dir name="Model"><file name="VisitorTest.php" hash="30a29b7af8019f104ce4f6f3184d5326"/></dir></dir><file name="LogTest.php" hash="1392e2f20815b47213e65b6992f85200"/><dir name="Order"><file name="CollectionTest.php" hash="be6ed09849c0ef7fc8d540b8c52de95b"/><dir name="Grid"><file name="CollectionTest.php" hash="f85cae1021ec016a74d6fe466a09db90"/></dir></dir><file name="PaymentTest.php" hash="0b699aaf2e0d93b5221d34269419c9dc"/><dir name="Product"><file name="CollectionTest.php" hash="290019047b0fa844037610b356adaea0"/></dir><file name="ProductTest.php" hash="fd63d2113ab9812d7df8c637961a4460"/><dir name="Profile"><file name="CollectionTest.php" hash="233e2ad2aa2e0dd3da750a827000433f"/></dir><dir name="Queue"><file name="CollectionTest.php" hash="b35aa9892b13e843a35129e004dc3bdb"/></dir><file name="QuoteTest.php" hash="751422cc0c634a2f0ed83029e2d4af03"/><file name="ReviewTest.php" hash="cad6eb2f598adcaba9531af5f2149701"/><dir name="Sale"><file name="CollectionTest.php" hash="0290b5ae630b013cb17f20bed56d856c"/></dir><file name="SessionTest.php" hash="68473113f4b839e57077dc8ec72454ea"/><file name="SubscriberTest.php" hash="c95eff8172514488f80be33e7a78819b"/><dir name="Tag"><dir name="Model"><file name="TagTest.php" hash="02ecb2c555704320e6172abf3aa8875a"/></dir></dir><file name="TagTest.php" hash="fcf844c4e6fa7cd943c5ed9ffcb24a09"/><dir name="Tax"><file name="ClassTest.php" hash="924eed52fe3d58d13acff30c2bfe62c4"/></dir><dir name="Visitor"><file name="OnlineTest.php" hash="467f0b0aa51e1fdd3e840438582a1c44"/></dir><file name="VisitorTest.php" hash="2168aa02549634a9fe1a1f6284fe7c6d"/></dir></dir><file name="ObserverTest.php" hash="3e2ad2bd8eda3e3a6a473ed70cc28b5d"/></dir></dir><dir name="etc"><file name="config.xml" hash="732e4aaf47d277eb7e91512aea0afd9a"/><file name="system.xml" hash="6f7e4c053196f05bc21e047d7a8c00ca"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zookal_Mock.xml" hash="4cd2a39bb78e3b877df0e1a6758a2b56"/></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Zookal_Mock.csv" hash="68b173d35123933bedae6743039dc81d"/></dir></dir></target></contents>
248
  <compatible/>
249
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
250
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Zookal_Mock</name>
4
+ <version>1.0.3</version>
5
  <stability>stable</stability>
6
  <license uri="https://github.com/Zookal/magento-mock">OSL</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Transparent auto detecting of disabled core modules &amp; exten. Providing mock objects for not breaking Magento.</summary>
10
+ <description>&lt;p&gt;&lt;strong&gt;&#xD;
11
+ Transparent autodetecting of disabled core modules and extensions and providing mock objects for not&#xD;
12
+ breaking Magento.&#xD;
13
+ &lt;ul&gt;&#xD;
14
+ &lt;li&gt;Nothing to configure. *&lt;/li&gt;&#xD;
15
+ &lt;li&gt;No class rewrites.&lt;/li&gt;&#xD;
16
+ &lt;li&gt;Only one observer. &lt;/li&gt;&#xD;
17
+ &lt;li&gt;Works out of the box.&lt;/li&gt;&#xD;
18
+ &lt;/ul&gt;&#xD;
19
+ &lt;/strong&gt;&#xD;
20
  &#xD;
21
+ * only if you disable modules which have dependencies to other disabled modules. See documentation.&#xD;
22
+ &#xD;
23
+ &lt;/p&gt;&#xD;
24
  &#xD;
25
  &lt;p&gt;If you try to disable e.g. Mage_Newsletter or Mage_Wishlist or ... and you call certain parts of the backend or some rare parts of the frontend you will get&#xD;
26
  errors that Magento cannot find the class XYZ. Best examples are the two previoulsy mentioned. If you have disabled them and you open in the backend a&#xD;
27
  customer entry to edit it, the page will generate an error. Mage_Customer Edit has many dependencies with other modules. So the &lt;strong&gt;Zookal Mock&#xD;
28
  Module&lt;/strong&gt; will provide you mock objects which catches all method calls to disabled classes of that modules without breaking anything.&lt;/p&gt;&#xD;
29
  &#xD;
30
+ &lt;p&gt;&lt;strong&gt;Uninstalling payment modules&lt;/strong&gt;: If you try to remove a payment module (which has already been used by customers in the checkout) you&#xD;
31
+ cannot open anymore all orders associated with that module. The reason is that the tables sales_flat_*_payment contains in the column method&#xD;
32
  the method which referers to the model for loading payment relevant informations. Please see below how to uninstall your payment module without touching&#xD;
33
  database tables.&lt;/p&gt;&#xD;
34
  &#xD;
43
  &lt;li&gt;Mage_Rating&lt;/li&gt;&#xD;
44
  &lt;li&gt;Mage_Tag&lt;/li&gt;&#xD;
45
  &lt;li&gt;Mage_Tax&lt;/li&gt;&#xD;
46
+ &lt;li&gt;Mage_Shipping&lt;/li&gt;&#xD;
47
  &lt;li&gt;Mage_Log&lt;/li&gt;&#xD;
48
  &lt;li&gt;Mage_Backup&lt;/li&gt;&#xD;
49
  &lt;li&gt;Mage_Customer&lt;/li&gt;&#xD;
60
  &lt;p&gt;Also we can't delete the database tables from some disabled modules as e.g. CatalogIndex relies von customer_group tables&#xD;
61
  or Customer relies on some tax tables when tax is disabled.&lt;/p&gt;&#xD;
62
  &#xD;
 
 
 
 
63
  &lt;h2&gt;&#xD;
64
  How do I&#xD;
65
  disable a module?&lt;/h2&gt;&#xD;
66
  &#xD;
67
  &lt;p&gt;Add in your custom app/etc/modules/Vendor_NameSpace.xml&lt;/p&gt;&#xD;
68
  &#xD;
69
+ &lt;pre&gt;&#xD;
70
+ &amp;lt;config&amp;gt;&#xD;
71
+ &amp;lt;modules&amp;gt;&#xD;
72
+ &amp;lt;Mage_ModuleName&amp;gt;&#xD;
73
+ &amp;lt;active&amp;gt;false&amp;lt;/active&amp;gt;&#xD;
74
+ &amp;lt;/Mage_ModuleName&amp;gt;&#xD;
75
+ &amp;lt;/modules&amp;gt;&#xD;
76
+ &amp;lt;/config&amp;gt;&#xD;
77
  &lt;/pre&gt;&#xD;
 
78
  &#xD;
79
  &lt;h2&gt;&#xD;
80
  How do I uninstall a payment module?&lt;/h2&gt;&#xD;
85
  &#xD;
86
  &lt;p&gt;In one of your local modules add the following "backup" entry into the config.xml:&lt;/p&gt;&#xD;
87
  &#xD;
88
+ &#xD;
89
+ &lt;pre&gt;&#xD;
90
+ &amp;lt;config&amp;gt;&#xD;
91
+ &amp;lt;default&amp;gt;&#xD;
92
+ &amp;lt;payment&amp;gt;&#xD;
93
+ &amp;lt;paypal_standard&amp;gt;&#xD;
94
+ &amp;lt;model&amp;gt;zookal_mock/mocks_mage_payment&amp;lt;/model&amp;gt;&#xD;
95
+ &amp;lt;/paypal_standard&amp;gt;&#xD;
96
+ &amp;lt;another_payment_method&amp;gt;&#xD;
97
+ &amp;lt;model&amp;gt;zookal_mock/mocks_mage_payment&amp;lt;/model&amp;gt;&#xD;
98
+ &amp;lt;/another_payment_method&amp;gt;&#xD;
99
+ &amp;lt;/payment&amp;gt;&#xD;
100
+ &amp;lt;/default&amp;gt;&#xD;
101
+ &amp;lt;/config&amp;gt;&#xD;
102
  &lt;/pre&gt;&#xD;
 
103
  &#xD;
104
  &lt;p&gt;The above xml contains the section where Mage_Paypal module has been disabled and previously used in orders.&lt;/p&gt;&#xD;
105
  &#xD;
106
  &lt;p&gt;No other database updates are required. Clear the caches and check in the backend some orders related to that payment method. You will now see a key/value&#xD;
107
  list of the payment details.&lt;/p&gt;&#xD;
108
  &#xD;
109
+ &lt;p&gt;The backend mock payment block has an integrated event mock_payment_backend_block_to_html_before with which you can modify the output.&lt;/p&gt;&#xD;
110
  &#xD;
111
+ &lt;p&gt;The frontend mock payment block uses the default block Mage_Core_Block_Abstract which allows you the usual modifications.&lt;/p&gt;&#xD;
112
  &#xD;
113
  &lt;h2&gt;&#xD;
114
  I've disabled and removed Mage_Adminhtml&lt;/h2&gt;&#xD;
115
  &#xD;
116
  &lt;p&gt;You rock!&lt;/p&gt;&#xD;
117
  &#xD;
118
+ &lt;p&gt;Did you remove every Adminhtml area via $ find . -iname "adminhtml" -type d -exec rm -Rf {} + ?&lt;/p&gt;&#xD;
119
  &#xD;
120
  &lt;p&gt;Running a backend-less version of Magento saves you processor time, space, speeds up your store and improves security. All missing required adminhtml files&#xD;
121
  will be transparently mocked. Nothing to configure!&lt;/p&gt;&#xD;
122
  &#xD;
123
+ &#xD;
124
+ But how do I maintain a backend-less store?&#xD;
125
  &#xD;
126
  &lt;p&gt;You have two solutions:&lt;/p&gt;&#xD;
127
  &#xD;
134
  &lt;p&gt;(1) If having multiple servers: Make sure that you connect only via SSL encryption to your MySQL server. Someone is spying :-(``&lt;/p&gt;&#xD;
135
  &#xD;
136
  &lt;p&gt;(2) There is currently a feature missing in n98-magerun &lt;a href="https://github.com/netz98/n98-magerun/issues/309"&gt;https://github.com/netz98/n98-magerun/issues/309&lt;/a&gt;&#xD;
137
+ that you cannot configure Mage:run() to use a custom configuration model as explained below.&lt;/p&gt;&#xD;
138
  &#xD;
139
  &lt;h2&gt;&#xD;
140
  I've disabled module&#xD;
142
  &#xD;
143
  &lt;p&gt;Let's say you disabled Mage_Dataflow but enabled Mage_Catalog and the system is presenting you:&lt;/p&gt;&#xD;
144
  &#xD;
145
+ &lt;pre&gt;&#xD;
146
+ "Mage_Catalog" requires module "Mage_Dataflow"&#xD;
147
+ &lt;/pre&gt;&#xD;
148
+ &#xD;
149
  &#xD;
150
  &lt;p&gt;You have two possibilities:&lt;/p&gt;&#xD;
151
  &#xD;
152
  &lt;ol&gt;&#xD;
153
  &lt;li&gt;Edit app/etc/modules/Mage_*.xml and remove the appropriate dependencies.&lt;/li&gt;&#xD;
154
+ &lt;li&gt;Edit your main index.php file and add this custom config model to Mage::run()&#xD;
155
  &lt;/li&gt;&#xD;
156
  &lt;/ol&gt;&#xD;
157
+ &lt;pre&gt;&#xD;
158
+ Mage::run($mageRunCode, $mageRunType, array(&#xD;
159
+ 'config_model' =&gt; 'Zookal_Mock_Model_Config'&#xD;
160
+ ));&#xD;
 
161
  &lt;/pre&gt;&#xD;
 
162
  &#xD;
163
+ &lt;p&gt;The config model Zookal_Mock_Model_Config will automatically resolve invalid dependencies for disabled modules. But some dependency really make&#xD;
164
  sense ;-)&lt;/p&gt;&#xD;
165
  &#xD;
166
  &lt;h2&gt;I've disabled&#xD;
167
  Mage_[Bundle|Rating|Review|Wishlist|Usa] but getting a weird error!&lt;/h2&gt;&#xD;
168
  &#xD;
169
+ &lt;p&gt;The error is: &lt;pre&gt;Notice: Trying to get property of non-object in app/code/core/Mage/Core/Model/Config.php on line 1239.&lt;/pre&gt;&lt;/p&gt;&#xD;
170
  &#xD;
171
+ &lt;p&gt;Digging deeper Mage_Core_Model_Config would like to access Mage::helper('core')-&gt;__() to display you the error message that&#xD;
172
  Mage_[Bundle|Rating|Review|Wishlist|Usa] requires the module Mage_XmlConnect. The notice message appears because the core helper is not yet initialized.&lt;/p&gt;&#xD;
173
  &#xD;
174
  &lt;p&gt;So deactivating Mage_XmlConnect works out as the solution. It has many dependencies. Btw: Only if you have the Magento own mobile app you'll need the&#xD;
183
  &#xD;
184
  &lt;ol&gt;&#xD;
185
  &lt;li&gt;Customize your theme in that way that no one can access (/).&lt;/li&gt;&#xD;
186
+ &lt;li&gt;Create your own front router by adding an observer to the event controller_front_init_routers.&lt;/li&gt;&#xD;
187
  &lt;/ol&gt;&#xD;
188
  &lt;p&gt;Blocks are also gone.&lt;/p&gt;&#xD;
189
  &#xD;
190
+ &#xD;
191
+ &lt;h2&gt;I've disabled Mage_Shipping but the checkout still won't work&lt;/h2&gt;&#xD;
192
+ &#xD;
193
+ &lt;p&gt;You need to trick the Sales and the Checkout module. You have to place a rewrite of &lt;code&gt;Mage_Catalog_Model_Product&lt;/code&gt; somewhere in your&#xD;
194
+ codebase or disable the comment in the mocks modules config.xml file.&lt;/p&gt;&#xD;
195
+ &#xD;
196
+ &lt;p&gt;Add the following method to your &lt;code&gt;Mage_Catalog_Model_Product&lt;/code&gt; rewrite:&lt;/p&gt;&#xD;
197
+ &#xD;
198
+ &lt;pre&gt;&lt;code&gt; /**&#xD;
199
+ * @return bool&#xD;
200
+ */&#xD;
201
+ public function getIsVirtual()&#xD;
202
+ {&#xD;
203
+ return true;&#xD;
204
+ }&#xD;
205
+ &lt;/code&gt;&lt;/pre&gt;&#xD;
206
+ &#xD;
207
+ &lt;p&gt;Alternatively you can use the class &lt;code&gt;Zookal_Mock_Model_Catalog_Model_Product&lt;/code&gt; provided by this module.&lt;/p&gt;&#xD;
208
+ &#xD;
209
+ &lt;p&gt;Do &lt;em&gt;not&lt;/em&gt; change anything in the database as there are several columns and attributes whose name is &lt;code&gt;is_virtual&lt;/code&gt; or &lt;code&gt;virtual&lt;/code&gt;.&lt;/p&gt;&#xD;
210
+ &#xD;
211
+ &#xD;
212
  &lt;h2&gt;&#xD;
213
  Can I remove the files of the disabled modules?&lt;/h2&gt;&#xD;
214
  &#xD;
219
  &lt;li&gt;Mage_Adminhtml&lt;/li&gt;&#xD;
220
  &lt;li&gt;Mage_Log&lt;/li&gt;&#xD;
221
  &lt;li&gt;Mage_Tag&lt;/li&gt;&#xD;
222
+ &lt;li&gt;Mage_shipping&lt;/li&gt;&#xD;
223
  &lt;/ul&gt;&#xD;
224
  &lt;p&gt;which have hardcoded dependencies through the whole Mage_Adminhtml code (if adminhtml has not been removed).&lt;/p&gt;&#xD;
225
  &#xD;
229
  Will there be a performance increase?&lt;/h2&gt;&#xD;
230
  &#xD;
231
  &lt;p&gt;Yes there will be a performance increase due to less loading of classes and xml files.&lt;/p&gt;&#xD;
232
+ &#xD;
233
  &#xD;
234
  &lt;h2&gt;&#xD;
235
  About&lt;/h2&gt;&#xD;
256
  &#xD;
257
  &lt;p&gt;Made in Sydney, Australia :-)&lt;/p&gt;&#xD;
258
  </description>
259
+ <notes>1.0.3&#xD;
 
 
 
 
 
 
 
 
 
260
  &#xD;
261
+ - Added Mage_Shipping mocks. Please read documentation how to properly disable this module.&#xD;
262
  &#xD;
263
+ https://github.com/Zookal/magento-mock&#xD;
264
+ </notes>
265
  <authors><author><name>Cyrill Schumacher</name><user>cyrills</user><email>cyrill@schumacher.fm</email></author></authors>
266
+ <date>2014-04-26</date>
267
+ <time>02:27:10</time>
268
+ <contents><target name="magecommunity"><dir name="Zookal"><dir name="Mock"><dir><dir name="Block"><dir name="Payment"><file name="Backend.php" hash="b9229921a72e19f692cb9d6924221564"/><file name="Frontend.php" hash="833bd12a2d8c3b8ed489e283189ed122"/></dir></dir><dir name="Helper"><file name="Data.php" hash="a2191e423cc4d2714ad7e4456ab62e1a"/></dir><dir name="Model"><dir name="Catalog"><dir name="Model"><file name="Product.php" hash="79987b4bb930753e791a0724d3a191ca"/></dir></dir><file name="Config.php" hash="afbeb63c5a19a6911ab508477586f5e3"/><dir name="Mocks"><file name="Abstract.php" hash="7062a0f8e5894d8e94caedc1ad41fc1f"/><dir name="Mage"><dir name="AdminNotification"><dir name="Model"><file name="Survey.php" hash="6321f6d417c4c2f414f7b29de62f4cc4"/></dir></dir><dir name="Adminhtml"><dir name="Helper"><file name="Data.php" hash="7ccc6666f4ef1421a88319510d782f43"/></dir></dir><file name="Block.php" hash="7a2adb47711b912fa320b60e0c3eb3d4"/><dir name="CatalogInventory"><dir name="Model"><dir name="Stock"><file name="Item.php" hash="356a4ec59f91478130a18c75a8794cee"/></dir></dir></dir><dir name="Category"><file name="Collection.php" hash="6c9ac375135ca5269a5f888f022f6399"/><file name="Tree.php" hash="a37ecbc65cd3780ed191ee913509ef06"/></dir><file name="Category.php" hash="3c09f3eea7c89678670d4adeb0c4f708"/><dir name="Class"><dir name="Source"><file name="Customer.php" hash="5567855c827e3c8e925a0716de21dd70"/></dir></dir><file name="Config.php" hash="161f0f71a007fd5c71385bc5862e3108"/><dir name="Customer"><file name="Collection.php" hash="0322cd4a4b062a8fecf6a72cd6d7cbbc"/></dir><file name="Customer.php" hash="18e4ea855de44b6b6b7faabd684fc080"/><file name="Data.php" hash="0ab93919414ae9ecf8ed72f2bf038878"/><dir name="Giftmessage"><dir name="Block"><dir name="Adminhtml"><dir name="Product"><dir name="Helper"><dir name="Form"><file name="Config.php" hash="692dc99836671966ad2ab6a3f1a38871"/></dir></dir></dir></dir></dir></dir><file name="Group.php" hash="fcf85c8c3b24affbd8f2f82456ac3907"/><file name="Item.php" hash="f692effa3010262bfea29b18359d3549"/><dir name="Log"><dir name="Model"><file name="Visitor.php" hash="b8a8343c57f79abd38780594581e9dde"/></dir></dir><file name="Log.php" hash="8371873b2365c863c07c0c0227326b34"/><file name="Message.php" hash="4c812d8f56122fb5290162d6304bd524"/><dir name="Order"><file name="Collection.php" hash="3e8262c4cdda6f710c9e3a40e2b76a94"/><dir name="Grid"><file name="Collection.php" hash="97371286529c7b2ced399a5a51fe9b72"/></dir></dir><file name="Payment.php" hash="9a873df5da7d716854ea52258209928e"/><dir name="Product"><file name="Collection.php" hash="8ab40ba5191188eed78bcab7dd76f558"/></dir><file name="Product.php" hash="f038a1450c4a18059df3239262084e0f"/><dir name="Profile"><file name="Collection.php" hash="931080d96e85927a77f77143b49dadf6"/></dir><dir name="Queue"><file name="Collection.php" hash="c4d7dd95a1a1918a99993484f82d9b3d"/></dir><file name="Quote.php" hash="de3724f95154de0707f47d40ff9a08a8"/><dir name="Rate"><file name="Request.php" hash="62fd4dc319dbbe6938e4f1eb0b7ff3f0"/></dir><file name="Review.php" hash="efd1a3f7dcf45e33f95fe2e76bdfbb5b"/><dir name="Sale"><file name="Collection.php" hash="aa228d612ae734749e9adc382e806cd4"/></dir><file name="Session.php" hash="e6f976be6bd82b367854842f385d1a4a"/><dir name="Shipping"><dir name="Carrier"><file name="Ups.php" hash="af82649c2872ee29583dd08e41d7bffd"/><dir name="Usps"><dir name="Source"><file name="Size.php" hash="3e73101013feb7732324f4b2cac32097"/></dir></dir></dir><dir name="Model"><file name="Config.php" hash="3529b080243f5fb19b1f47278c6aad3a"/><dir name="Rate"><file name="Abstract.php" hash="e923d03075ca9416234eea19b3ccbc0c"/></dir><file name="Shipping.php" hash="20ffbe3eca7e6a1903217edc2834025d"/></dir></dir><file name="Shipping.php" hash="66c75c05f119eabfad44f61a06ee60e1"/><file name="Subscriber.php" hash="908e105fa12c88e0f0a312b42bef35d3"/><dir name="Tag"><dir name="Model"><file name="Tag.php" hash="38a200df605197975e5e294081cf0663"/></dir></dir><file name="Tag.php" hash="bb059453e0978b12350581978b1931af"/><dir name="Tax"><file name="Class.php" hash="cb7a52951105cb7aa0bb9f2c566570a7"/></dir><dir name="Visitor"><file name="Online.php" hash="774df1f34ae162fa52db376afc415823"/></dir><file name="Visitor.php" hash="4c4eb14327dc35144203e28a646ad579"/><dir name="Weee"><dir name="Model"><file name="Tax.php" hash="8c57836668f3c9a3ce4632621ce4533a"/></dir></dir></dir></dir><file name="Observer.php" hash="e2b4ce5a1a438ba82cb3c743d4686644"/></dir><dir name="Test"><dir name="Config"><file name="ConfigTest.php" hash="9801ef844555a09a2189cb4e1916cf95"/><file name="SystemTest.php" hash="b72edbb351b923ccbc2543dc79d859ee"/></dir><dir name="Helper"><file name="DataTest.php" hash="57a4b15ca7d916d295fb95d1f621d6bd"/></dir><dir name="Model"><file name="ConfigTest.php" hash="6db11147c31fdf5ee8456610439e12cd"/><dir name="Mocks"><file name="AbstractTest.php" hash="84cb9162b6f5ee2b755c134ec7b5d765"/><dir name="Mage"><file name="AbstractPHPUnitTestCase.php" hash="a55c209378c6ff4e0785b38e2d61063c"/><dir name="AdminNotification"><dir name="Model"><file name="SurveyTest.php" hash="b96def6058ac4fe111b441791a7776cd"/></dir></dir><dir name="Adminhtml"><dir name="Helper"><file name="DataTest.php" hash="5b3979a82ed70277a1f9bd380628804c"/></dir></dir><file name="BlockTest.php" hash="7df2890ad281722b028b277ffe9f5aec"/><dir name="Category"><file name="CollectionTest.php" hash="30e4d976b5fdb4b4bd3ac27508ddc77f"/><file name="TreeTest.php" hash="5eea6b1f1eb7627b8be2467e9fc44715"/></dir><file name="CategoryTest.php" hash="8bb8f394ac0a6dec4c2c2927e897aa40"/><dir name="Class"><dir name="Source"><file name="CustomerTest.php" hash="9a4efa200d3a3a77517dd94c75b125ed"/></dir></dir><dir name="Customer"><file name="CollectionTest.php" hash="bedff17927077c41ebc2fdea25a9459f"/></dir><file name="CustomerTest.php" hash="6955de25f84e8ea0858b76a9ac84f4bc"/><file name="DataTest.php" hash="2084e46e1c693387e96f5ce5e563f67f"/><file name="GroupTest.php" hash="16dc75c4a737f286f03caab1deb3f539"/><file name="ItemTest.php" hash="6c6241a7c37dac90b6668558822bcfcd"/><dir name="Log"><dir name="Model"><file name="VisitorTest.php" hash="30a29b7af8019f104ce4f6f3184d5326"/></dir></dir><file name="LogTest.php" hash="1392e2f20815b47213e65b6992f85200"/><dir name="Order"><file name="CollectionTest.php" hash="be6ed09849c0ef7fc8d540b8c52de95b"/><dir name="Grid"><file name="CollectionTest.php" hash="f85cae1021ec016a74d6fe466a09db90"/></dir></dir><file name="PaymentTest.php" hash="0b699aaf2e0d93b5221d34269419c9dc"/><dir name="Product"><file name="CollectionTest.php" hash="290019047b0fa844037610b356adaea0"/></dir><file name="ProductTest.php" hash="fd63d2113ab9812d7df8c637961a4460"/><dir name="Profile"><file name="CollectionTest.php" hash="233e2ad2aa2e0dd3da750a827000433f"/></dir><dir name="Queue"><file name="CollectionTest.php" hash="b35aa9892b13e843a35129e004dc3bdb"/></dir><file name="QuoteTest.php" hash="751422cc0c634a2f0ed83029e2d4af03"/><file name="ReviewTest.php" hash="cad6eb2f598adcaba9531af5f2149701"/><dir name="Sale"><file name="CollectionTest.php" hash="0290b5ae630b013cb17f20bed56d856c"/></dir><file name="SessionTest.php" hash="68473113f4b839e57077dc8ec72454ea"/><file name="SubscriberTest.php" hash="c95eff8172514488f80be33e7a78819b"/><dir name="Tag"><dir name="Model"><file name="TagTest.php" hash="02ecb2c555704320e6172abf3aa8875a"/></dir></dir><file name="TagTest.php" hash="fcf844c4e6fa7cd943c5ed9ffcb24a09"/><dir name="Tax"><file name="ClassTest.php" hash="924eed52fe3d58d13acff30c2bfe62c4"/></dir><dir name="Visitor"><file name="OnlineTest.php" hash="467f0b0aa51e1fdd3e840438582a1c44"/></dir><file name="VisitorTest.php" hash="2168aa02549634a9fe1a1f6284fe7c6d"/></dir></dir><file name="ObserverTest.php" hash="3e2ad2bd8eda3e3a6a473ed70cc28b5d"/></dir></dir><dir name="etc"><file name="config.xml" hash="ee1d00461716607d4cfe31e7cdc8b2dd"/><file name="system.xml" hash="3174d8fb6f776dab5343ac6b23a7d347"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zookal_Mock.xml" hash="4cd2a39bb78e3b877df0e1a6758a2b56"/></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Zookal_Mock.csv" hash="68b173d35123933bedae6743039dc81d"/></dir></dir></target></contents>
269
  <compatible/>
270
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
271
  </package>