Version Notes
Fix facet with ampersand configuration for search engine > facets
Replace "-" with "&afs:feed" to separate feeds in url (compatibility with AFS 7.7)
Fix empty facet id sent when performing an empty query to afs to get facets list
Add description node for variants
Add cdata for variant name
Prevent to export empty categories node
Add cdata for variant name
Add variant details for grouped products
Download this release
Release Info
Developer | Antidot |
Extension | Antidot_Antidot |
Version | 1.1.0 |
Comparing to | |
See all releases |
Code changes from version 1.0.19 to 1.1.0
- app/code/community/MDN/Antidot/Block/Catalog/Layer/Filter/Attribute.php +2 -2
- app/code/community/MDN/Antidot/Block/Catalog/Layer/Filter/Boolean.php +2 -2
- app/code/community/MDN/Antidot/Block/Catalog/Layer/Filter/Category.php +2 -2
- app/code/community/MDN/Antidot/Block/Catalog/Layer/Filter/Decimal.php +2 -2
- app/code/community/MDN/Antidot/Block/Catalog/Layer/Filter/Price.php +2 -2
- app/code/community/MDN/Antidot/Block/Catalog/Layer/View.php +2 -2
- app/code/community/MDN/Antidot/Block/Catalogsearch/Category.php +2 -2
- app/code/community/MDN/Antidot/Block/Catalogsearch/Layer.php +2 -2
- app/code/community/MDN/Antidot/Block/Catalogsearch/Layer/Filter/Attribute.php +2 -2
- app/code/community/MDN/Antidot/Block/Catalogsearch/Result.php +2 -2
- app/code/community/MDN/Antidot/Block/Html/Select.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Button/AfsStore.php +54 -0
- app/code/community/MDN/Antidot/Block/System/Config/Button/PushArticles.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Button/PushBrands.php +0 -36
- app/code/community/MDN/Antidot/Block/System/Config/Button/PushCategories.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Button/PushProducts.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Button/RestoreTemplate.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Button/ShowXml.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Additional.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ArticleAdditional.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ArticleIdentifier.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/DefaultSort.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Facet.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Identifier.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ProductAdditionalFacet.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ProductAdditionalField.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ProductIdentifier.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Sort.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/CategoryAttribute.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/ProductAttribute.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Html/Export.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Html/ShowXml.php +2 -2
- app/code/community/MDN/Antidot/Block/System/Config/Html/Version.php +2 -2
- app/code/community/MDN/Antidot/Helper/Antidot.php +2 -2
- app/code/community/MDN/Antidot/Helper/CatalogSearch/Data.php +2 -2
- app/code/community/MDN/Antidot/Helper/Compress.php +2 -2
- app/code/community/MDN/Antidot/Helper/Data.php +4 -4
- app/code/community/MDN/Antidot/Helper/LogExport.php +2 -2
- app/code/community/MDN/Antidot/Helper/Url.php +2 -2
- app/code/community/MDN/Antidot/Helper/XmlWriter.php +3 -3
- app/code/community/MDN/Antidot/Model/Catalog/Layer.php +2 -2
- app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Attribute.php +2 -2
- app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Boolean.php +2 -2
- app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Category.php +2 -2
- app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Decimal.php +2 -2
- app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Item.php +28 -11
- app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Price.php +2 -2
- app/code/community/MDN/Antidot/Model/Catalogsearch/Layer.php +2 -2
- app/code/community/MDN/Antidot/Model/Catalogsearch/Layer/Filter/Attribute.php +2 -2
- app/code/community/MDN/Antidot/Model/Catalogsearch/Resource/Attribute.php +2 -2
- app/code/community/MDN/Antidot/Model/Export/Abstract.php +26 -2
- app/code/community/MDN/Antidot/Model/Export/Article.php +4 -18
- app/code/community/MDN/Antidot/Model/Export/Brand.php +0 -130
- app/code/community/MDN/Antidot/Model/Export/Category.php +19 -11
- app/code/community/MDN/Antidot/Model/Export/Product.php +109 -72
- app/code/community/MDN/Antidot/Model/Observer.php +165 -38
- app/code/community/MDN/Antidot/Model/Resource/Advanced.php +2 -2
- app/code/community/MDN/Antidot/Model/Resource/Catalog/Product/Collection.php +2 -2
- app/code/community/MDN/Antidot/Model/Resource/Engine/Abstract.php +2 -2
- app/code/community/MDN/Antidot/Model/Resource/Engine/Antidot.php +24 -5
- app/code/community/MDN/Antidot/Model/Search/Abstract.php +6 -5
- app/code/community/MDN/Antidot/Model/Search/Search.php +2 -2
- app/code/community/MDN/Antidot/Model/Search/Suggest.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/ArticleAttribute.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/Backend/Engine.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/CategoryAttribute.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/Dir.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/DisableEnable.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/Engine.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/Facet.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/Number.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/Options.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/ProductAttribute.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/PromoteRedirect.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/Sort.php +18 -13
- app/code/community/MDN/Antidot/Model/System/Config/Suggest/Type.php +2 -2
- app/code/community/MDN/Antidot/Model/System/Config/WSStatus.php +2 -2
- app/code/community/MDN/Antidot/Model/Transport.php +2 -2
- app/code/community/MDN/Antidot/Model/Transport/Abstract.php +2 -2
- app/code/community/MDN/Antidot/Model/Transport/File.php +2 -2
- app/code/community/MDN/Antidot/Model/Transport/Ftp.php +2 -2
- app/code/community/MDN/Antidot/Model/Transport/Http.php +2 -2
- app/code/community/MDN/Antidot/Model/Transport/Interface.php +2 -2
- app/code/community/MDN/Antidot/Test/Block/System/Config/Button/AfsStore.php +90 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Article.php +23 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Category.php +46 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Product.php +543 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Product/fixtures/testWriteImageUrl.yaml +90 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Product/fixtures/testWriteProductUrl.yaml +90 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Product/fixtures/testWriteProperties.yaml +80 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Product/fixtures/testWriteXml.yaml +116 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Product/providers/testWriteImageUrl.yaml +9 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Product/providers/testWriteProductUrl.yaml +9 -0
- app/code/community/MDN/Antidot/Test/Model/Observer.php +144 -0
- app/code/community/MDN/Antidot/Test/Model/Observer/fixtures/testGetDefaultContext.yaml +85 -0
- app/code/community/MDN/Antidot/Test/Model/Observer/providers/testGetOwnerForFilename.yaml +9 -0
- app/code/community/MDN/Antidot/Test/Model/Resource/Engine/Antidot.php +42 -0
- app/code/community/MDN/Antidot/Test/Model/System/Config/Sort.php +68 -0
- app/code/community/MDN/Antidot/Test/Model/System/Config/Sort/expectations/testToOptionArray.yaml +44 -0
- app/code/community/MDN/Antidot/Test/Model/System/Config/Sort/fixtures/testToOptionArray1.yaml +4 -0
- app/code/community/MDN/Antidot/Test/Model/System/Config/Sort/fixtures/testToOptionArray2.yaml +4 -0
- app/code/community/MDN/Antidot/Test/Model/System/Config/Sort/fixtures/testToOptionArray3.yaml +4 -0
- app/code/community/MDN/Antidot/Test/PHPUnitUtil.php +18 -0
- app/code/community/MDN/Antidot/controllers/Admin/PushController.php +33 -9
- app/code/community/MDN/Antidot/controllers/Front/SearchController.php +2 -2
- app/code/community/MDN/Antidot/etc/config.xml +76 -31
- app/code/community/MDN/Antidot/etc/system.xml +13 -6
- i18n/i18n.php +13 -0
- package.xml +4 -4
- shell/antidotExport.php +15 -2
- shell/antidotExportCategory.php +14 -1
- shell/antidotExportInc.php +14 -1
- shell/antidotExportProduct.php +14 -1
app/code/community/MDN/Antidot/Block/Catalog/Layer/Filter/Attribute.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_Filter_Attribute extends Mage_Catalog_Block_Layer_Filter_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_Filter_Attribute extends Mage_Catalog_Block_Layer_Filter_Abstract
|
app/code/community/MDN/Antidot/Block/Catalog/Layer/Filter/Boolean.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_Filter_Boolean extends MDN_Antidot_Block_Catalog_Layer_Filter_Attribute
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_Filter_Boolean extends MDN_Antidot_Block_Catalog_Layer_Filter_Attribute
|
app/code/community/MDN/Antidot/Block/Catalog/Layer/Filter/Category.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_Filter_Category extends Mage_Catalog_Block_Layer_Filter_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_Filter_Category extends Mage_Catalog_Block_Layer_Filter_Abstract
|
app/code/community/MDN/Antidot/Block/Catalog/Layer/Filter/Decimal.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_Filter_Decimal extends Mage_Catalog_Block_Layer_Filter_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_Filter_Decimal extends Mage_Catalog_Block_Layer_Filter_Abstract
|
app/code/community/MDN/Antidot/Block/Catalog/Layer/Filter/Price.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_Filter_Price extends Mage_Catalog_Block_Layer_Filter_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_Filter_Price extends Mage_Catalog_Block_Layer_Filter_Abstract
|
app/code/community/MDN/Antidot/Block/Catalog/Layer/View.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_View extends Mage_Catalog_Block_Layer_View
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalog_Layer_View extends Mage_Catalog_Block_Layer_View
|
app/code/community/MDN/Antidot/Block/Catalogsearch/Category.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalogsearch_Category extends Mage_Core_Block_Template
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalogsearch_Category extends Mage_Core_Block_Template
|
app/code/community/MDN/Antidot/Block/Catalogsearch/Layer.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalogsearch_Layer extends Mage_CatalogSearch_Block_Layer
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalogsearch_Layer extends Mage_CatalogSearch_Block_Layer
|
app/code/community/MDN/Antidot/Block/Catalogsearch/Layer/Filter/Attribute.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalogsearch_Layer_Filter_Attribute extends Mage_Catalog_Block_Layer_Filter_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Catalogsearch_Layer_Filter_Attribute extends Mage_Catalog_Block_Layer_Filter_Abstract
|
app/code/community/MDN/Antidot/Block/Catalogsearch/Result.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_CatalogSearch_Result extends Mage_CatalogSearch_Block_Result
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_CatalogSearch_Result extends Mage_CatalogSearch_Block_Result
|
app/code/community/MDN/Antidot/Block/Html/Select.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Html_Select extends Mage_Core_Block_Html_Select
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_Html_Select extends Mage_Core_Block_Html_Select
|
app/code/community/MDN/Antidot/Block/System/Config/Button/AfsStore.php
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
+
*/
|
16 |
+
class MDN_Antidot_Block_System_Config_Button_AfsStore extends Mage_Adminhtml_Block_System_Config_Form_Field
|
17 |
+
{
|
18 |
+
|
19 |
+
/*
|
20 |
+
* The AfsStore Back-Office can be translated in theses locales
|
21 |
+
*/
|
22 |
+
protected $afsStoreLocales = array('en', 'fr');
|
23 |
+
|
24 |
+
/**
|
25 |
+
* {@inherit}
|
26 |
+
*/
|
27 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
28 |
+
{
|
29 |
+
$this->setElement($element);
|
30 |
+
$url = 'https://bo-store.afs-antidot.net/';
|
31 |
+
|
32 |
+
/*
|
33 |
+
* we get the magento back-office session language to determine
|
34 |
+
* the locale of the AfsStore Back-office link
|
35 |
+
*/
|
36 |
+
$locale = Mage::getSingleton('adminhtml/session')->getLocale();
|
37 |
+
$locArr = explode('_',$locale);
|
38 |
+
$urlLocale = array_shift($locArr);
|
39 |
+
if (in_array($urlLocale, $this->afsStoreLocales)) {
|
40 |
+
$url .= $urlLocale;
|
41 |
+
} else {
|
42 |
+
$url .= 'en';
|
43 |
+
}
|
44 |
+
|
45 |
+
$html = $this->getLayout()->createBlock('adminhtml/widget_button')
|
46 |
+
->setType('button')
|
47 |
+
->setClass('scalable')
|
48 |
+
->setLabel(Mage::helper('Antidot')->__('Analytics, Synonyms, Promote'))
|
49 |
+
->setOnClick("window.open('$url')")
|
50 |
+
->toHtml();
|
51 |
+
|
52 |
+
return $html;
|
53 |
+
}
|
54 |
+
}
|
app/code/community/MDN/Antidot/Block/System/Config/Button/PushArticles.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Button_PushArticles extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Button_PushArticles extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/MDN/Antidot/Block/System/Config/Button/PushBrands.php
DELETED
@@ -1,36 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Magento
|
5 |
-
*
|
6 |
-
* NOTICE OF LICENSE
|
7 |
-
*
|
8 |
-
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
-
* It is also available through the world-wide-web at this URL:
|
10 |
-
* http://opensource.org/licenses/osl-3.0.php
|
11 |
-
*
|
12 |
-
* @copyright Copyright (c) 2009 Maison du Logiciel (http://www.maisondulogiciel.com)
|
13 |
-
* @author : Olivier ZIMMERMANN
|
14 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
-
*/
|
16 |
-
class MDN_Antidot_Block_System_Config_Button_PushBrands extends Mage_Adminhtml_Block_System_Config_Form_Field
|
17 |
-
{
|
18 |
-
|
19 |
-
/**
|
20 |
-
* {@inherit}
|
21 |
-
*/
|
22 |
-
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
23 |
-
{
|
24 |
-
$this->setElement($element);
|
25 |
-
$url = $this->getUrl('Antidotadmin/Admin_Push/Brand');
|
26 |
-
|
27 |
-
$html = $this->getLayout()->createBlock('adminhtml/widget_button')
|
28 |
-
->setType('button')
|
29 |
-
->setClass('scalable')
|
30 |
-
->setLabel(Mage::helper('Antidot')->__('Push'))
|
31 |
-
->setOnClick("setLocation('$url')")
|
32 |
-
->toHtml();
|
33 |
-
|
34 |
-
return $html;
|
35 |
-
}
|
36 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/MDN/Antidot/Block/System/Config/Button/PushCategories.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Button_PushCategories extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Button_PushCategories extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/MDN/Antidot/Block/System/Config/Button/PushProducts.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Button_PushProducts extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Button_PushProducts extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/MDN/Antidot/Block/System/Config/Button/RestoreTemplate.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Button_RestoreTemplate extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Button_RestoreTemplate extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/MDN/Antidot/Block/System/Config/Button/ShowXml.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Button_ShowXml extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Button_ShowXml extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Additional.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_Additional extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_Additional extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ArticleAdditional.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_ArticleAdditional extends MDN_Antidot_Block_System_Config_Form_Field_Array_Additional
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_ArticleAdditional extends MDN_Antidot_Block_System_Config_Form_Field_Array_Additional
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ArticleIdentifier.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_ArticleIdentifier extends MDN_Antidot_Block_System_Config_Form_Field_Array_Identifier
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_ArticleIdentifier extends MDN_Antidot_Block_System_Config_Form_Field_Array_Identifier
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/DefaultSort.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_DefaultSort extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_DefaultSort extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Facet.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_Facet extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_Facet extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Identifier.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_Identifier extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_Identifier extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ProductAdditionalFacet.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_ProductAdditionalFacet extends MDN_Antidot_Block_System_Config_Form_Field_Array_Additional
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_ProductAdditionalFacet extends MDN_Antidot_Block_System_Config_Form_Field_Array_Additional
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ProductAdditionalField.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_ProductAdditionalField extends MDN_Antidot_Block_System_Config_Form_Field_Array_Additional
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_ProductAdditionalField extends MDN_Antidot_Block_System_Config_Form_Field_Array_Additional
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ProductIdentifier.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_ProductIdentifier extends MDN_Antidot_Block_System_Config_Form_Field_Array_Identifier
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_ProductIdentifier extends MDN_Antidot_Block_System_Config_Form_Field_Array_Identifier
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Sort.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_Sort extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_Array_Sort extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/CategoryAttribute.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_CategoryAttribute extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_CategoryAttribute extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/ProductAttribute.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_ProductAttribute extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Form_Field_ProductAttribute extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/MDN/Antidot/Block/System/Config/Html/Export.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Html_Export extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Html_Export extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/MDN/Antidot/Block/System/Config/Html/ShowXml.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Html_ShowXml extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Html_ShowXml extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/MDN/Antidot/Block/System/Config/Html/Version.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Html_Version extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Block_System_Config_Html_Version extends Mage_Adminhtml_Block_System_Config_Form_Field
|
app/code/community/MDN/Antidot/Helper/Antidot.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_Antidot extends MDN_Antidot_Helper_Data
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_Antidot extends MDN_Antidot_Helper_Data
|
app/code/community/MDN/Antidot/Helper/CatalogSearch/Data.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_CatalogSearch_Data extends Mage_CatalogSearch_Helper_Data {
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_CatalogSearch_Data extends Mage_CatalogSearch_Helper_Data {
|
app/code/community/MDN/Antidot/Helper/Compress.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_Compress extends Mage_Core_Helper_Abstract {
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_Compress extends Mage_Core_Helper_Abstract {
|
app/code/community/MDN/Antidot/Helper/Data.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_Data extends Mage_Core_Helper_Abstract
|
@@ -223,9 +223,9 @@ class MDN_Antidot_Helper_Data extends Mage_Core_Helper_Abstract
|
|
223 |
* @param $number
|
224 |
* @return float|mixed
|
225 |
*/
|
226 |
-
public function round($number)
|
227 |
{
|
228 |
-
$number = round($number,
|
229 |
$number = str_replace(',', '.', $number);
|
230 |
$number = str_replace(' ', '', $number);
|
231 |
return $number;
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_Data extends Mage_Core_Helper_Abstract
|
223 |
* @param $number
|
224 |
* @return float|mixed
|
225 |
*/
|
226 |
+
public function round($number, $precision = 2)
|
227 |
{
|
228 |
+
$number = round($number, $precision);
|
229 |
$number = str_replace(',', '.', $number);
|
230 |
$number = str_replace(' ', '', $number);
|
231 |
return $number;
|
app/code/community/MDN/Antidot/Helper/LogExport.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_LogExport extends Mage_Core_Helper_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_LogExport extends Mage_Core_Helper_Abstract
|
app/code/community/MDN/Antidot/Helper/Url.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_Url extends Mage_Core_Helper_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_Url extends Mage_Core_Helper_Abstract
|
app/code/community/MDN/Antidot/Helper/XmlWriter.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_XmlWriter extends Mage_Core_Helper_Abstract
|
@@ -207,4 +207,4 @@ class MDN_Antidot_Helper_XmlWriter extends Mage_Core_Helper_Abstract
|
|
207 |
|
208 |
return $return;
|
209 |
}
|
210 |
-
}
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Helper_XmlWriter extends Mage_Core_Helper_Abstract
|
207 |
|
208 |
return $return;
|
209 |
}
|
210 |
+
}
|
app/code/community/MDN/Antidot/Model/Catalog/Layer.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer extends Mage_Catalog_Model_Layer
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer extends Mage_Catalog_Model_Layer
|
app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Attribute.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer_Filter_Attribute extends Mage_Catalog_Model_Layer_Filter_Attribute
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer_Filter_Attribute extends Mage_Catalog_Model_Layer_Filter_Attribute
|
app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Boolean.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer_Filter_Boolean extends MDN_Antidot_Model_Catalog_Layer_Filter_Attribute
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer_Filter_Boolean extends MDN_Antidot_Model_Catalog_Layer_Filter_Attribute
|
app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Category.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model_Layer_Filter_Category
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model_Layer_Filter_Category
|
app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Decimal.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer_Filter_Decimal extends Mage_Catalog_Model_Layer_Filter_Decimal
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer_Filter_Decimal extends Mage_Catalog_Model_Layer_Filter_Decimal
|
app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Item.php
CHANGED
@@ -56,23 +56,20 @@ class MDN_Antidot_Model_Catalog_Layer_Filter_Item extends Mage_Catalog_Model_Lay
|
|
56 |
*/
|
57 |
public function getUrl()
|
58 |
{
|
59 |
-
$values =
|
60 |
-
|
61 |
-
$values = explode(',', $currentValues);
|
62 |
-
}
|
63 |
-
|
64 |
if(false !== $key = array_search($this->getValue(), $values)) {
|
65 |
unset($values[$key]);
|
66 |
} else {
|
67 |
$values[] = $this->getValue();
|
68 |
}
|
69 |
|
70 |
-
$values = count($values) > 1 ? implode(',', $values) :
|
71 |
$query = array(
|
72 |
$this->getFilter()->getRequestVar() => (empty($values) ? null : $values),
|
73 |
Mage::getBlockSingleton('page/html_pager')->getPageVarName() => null // exclude current page from urls
|
74 |
);
|
75 |
-
|
76 |
return Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$query));
|
77 |
}
|
78 |
|
@@ -144,8 +141,28 @@ class MDN_Antidot_Model_Catalog_Layer_Filter_Item extends Mage_Catalog_Model_Lay
|
|
144 |
*/
|
145 |
public function isSelected()
|
146 |
{
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
}
|
56 |
*/
|
57 |
public function getUrl()
|
58 |
{
|
59 |
+
$values = $this->getCurrentSelectedValues($this->getFilter()->getRequestVar());
|
60 |
+
|
|
|
|
|
|
|
61 |
if(false !== $key = array_search($this->getValue(), $values)) {
|
62 |
unset($values[$key]);
|
63 |
} else {
|
64 |
$values[] = $this->getValue();
|
65 |
}
|
66 |
|
67 |
+
$values = count($values) > 1 ? implode(',', $values) : array_shift($values);
|
68 |
$query = array(
|
69 |
$this->getFilter()->getRequestVar() => (empty($values) ? null : $values),
|
70 |
Mage::getBlockSingleton('page/html_pager')->getPageVarName() => null // exclude current page from urls
|
71 |
);
|
72 |
+
|
73 |
return Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$query));
|
74 |
}
|
75 |
|
141 |
*/
|
142 |
public function isSelected()
|
143 |
{
|
144 |
+
|
145 |
+
$selectedArray = $this->getCurrentSelectedValues($this->getFilter()->getRequestVar());
|
146 |
+
|
147 |
+
return in_array($this->getValue(), $selectedArray, true);
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Return array of the selected values of
|
152 |
+
* the given filter
|
153 |
+
*
|
154 |
+
* @param string $filter
|
155 |
+
* @return array
|
156 |
+
*/
|
157 |
+
public function getCurrentSelectedValues($filter) {
|
158 |
+
|
159 |
+
$selected = Mage::getSingleton('core/app')->getRequest()->getParam($filter);
|
160 |
+
|
161 |
+
if ($selected) {
|
162 |
+
$antidotEngine = Mage::getResourceSingleton('Antidot/engine_Antidot');
|
163 |
+
return $antidotEngine->extractMultiSelectValues($selected);
|
164 |
+
} else {
|
165 |
+
return array();
|
166 |
+
}
|
167 |
+
}
|
168 |
}
|
app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Price.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer_Filter_Price extends Mage_Catalog_Model_Layer_Filter_Price
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalog_Layer_Filter_Price extends Mage_Catalog_Model_Layer_Filter_Price
|
app/code/community/MDN/Antidot/Model/Catalogsearch/Layer.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalogsearch_Layer extends Mage_CatalogSearch_Model_Layer
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalogsearch_Layer extends Mage_CatalogSearch_Model_Layer
|
app/code/community/MDN/Antidot/Model/Catalogsearch/Layer/Filter/Attribute.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalogsearch_Layer_Filter_Attribute extends MDN_Antidot_Model_Catalog_Layer_Filter_Attribute
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalogsearch_Layer_Filter_Attribute extends MDN_Antidot_Model_Catalog_Layer_Filter_Attribute
|
app/code/community/MDN/Antidot/Model/Catalogsearch/Resource/Attribute.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalogsearch_Resource_Attribute
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Catalogsearch_Resource_Attribute
|
app/code/community/MDN/Antidot/Model/Export/Abstract.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Export_Abstract extends Mage_Core_Model_Abstract
|
@@ -136,4 +136,28 @@ class MDN_Antidot_Model_Export_Abstract extends Mage_Core_Model_Abstract
|
|
136 |
|
137 |
return $this->storeLang[$storeId];
|
138 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
}
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Export_Abstract extends Mage_Core_Model_Abstract
|
136 |
|
137 |
return $this->storeLang[$storeId];
|
138 |
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* Write the xml header
|
142 |
+
*
|
143 |
+
*/
|
144 |
+
protected function writeHeader($context)
|
145 |
+
{
|
146 |
+
$this->xml->push('header');
|
147 |
+
$this->xml->element('owner', $context['owner']);
|
148 |
+
$this->xml->element('feed', $this->getFeed($context));
|
149 |
+
$this->xml->element('generated_at', date('c', Mage::getModel('core/date')->timestamp(time())));
|
150 |
+
$this->xml->pop();
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Get the value to insert in the feed tag
|
155 |
+
* @param $type (product, category, article)
|
156 |
+
* @param $context
|
157 |
+
* @return string
|
158 |
+
*/
|
159 |
+
public function getFeed($context) {
|
160 |
+
return strtolower($this::TYPE) . ' ' . $context['run'] . ' v' . Mage::getConfig()->getNode()->modules->MDN_Antidot->version;
|
161 |
+
}
|
162 |
+
|
163 |
}
|
app/code/community/MDN/Antidot/Model/Export/Article.php
CHANGED
@@ -9,16 +9,16 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Export_Article extends MDN_Antidot_Model_Export_Product
|
17 |
{
|
18 |
|
19 |
const TYPE = 'ARTICLE';
|
20 |
-
const FILENAME_XML = 'articles-
|
21 |
-
const FILENAME_ZIP = '%
|
22 |
const XSD = 'http://ref.antidot.net/store/latest/articles.xsd';
|
23 |
|
24 |
const imagePrefix = 'media/catalog/article';
|
@@ -83,20 +83,6 @@ class MDN_Antidot_Model_Export_Article extends MDN_Antidot_Model_Export_Product
|
|
83 |
$this->writePart($this->xml->flush(), true);
|
84 |
}
|
85 |
|
86 |
-
/**
|
87 |
-
* Write the xml header
|
88 |
-
*
|
89 |
-
* @param array $context
|
90 |
-
*/
|
91 |
-
protected function writeHeader($context)
|
92 |
-
{
|
93 |
-
$this->xml->push('header');
|
94 |
-
$this->xml->element('owner', $context['owner']);
|
95 |
-
$this->xml->element('feed', 'article');
|
96 |
-
$this->xml->element('generated_at', date('c', Mage::getModel('core/date')->timestamp(time())));
|
97 |
-
$this->xml->pop();
|
98 |
-
}
|
99 |
-
|
100 |
/**
|
101 |
* Write the article identifiers
|
102 |
*
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Export_Article extends MDN_Antidot_Model_Export_Product
|
17 |
{
|
18 |
|
19 |
const TYPE = 'ARTICLE';
|
20 |
+
const FILENAME_XML = 'articles-%s-fr.xml';
|
21 |
+
const FILENAME_ZIP = '%s_full_%s_articles.zip';
|
22 |
const XSD = 'http://ref.antidot.net/store/latest/articles.xsd';
|
23 |
|
24 |
const imagePrefix = 'media/catalog/article';
|
83 |
$this->writePart($this->xml->flush(), true);
|
84 |
}
|
85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
/**
|
87 |
* Write the article identifiers
|
88 |
*
|
app/code/community/MDN/Antidot/Model/Export/Brand.php
DELETED
@@ -1,130 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Magento
|
5 |
-
*
|
6 |
-
* NOTICE OF LICENSE
|
7 |
-
*
|
8 |
-
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
-
* It is also available through the world-wide-web at this URL:
|
10 |
-
* http://opensource.org/licenses/osl-3.0.php
|
11 |
-
*
|
12 |
-
* @copyright Copyright (c) 2009 Maison du Logiciel (http://www.maisondulogiciel.com)
|
13 |
-
* @author : Olivier ZIMMERMANN
|
14 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
-
*/
|
16 |
-
class MDN_Antidot_Model_Export_Brand extends MDN_Antidot_Model_Export_Abstract
|
17 |
-
{
|
18 |
-
const TYPE = 'BRAND';
|
19 |
-
const FILENAME_XML = 'brands-mdn-fr.xml';
|
20 |
-
const FILENAME_ZIP = '%s_full_mdn_brands.zip';
|
21 |
-
const XSD = 'http://ref.antidot.net/store/latest/brands.xsd';
|
22 |
-
|
23 |
-
const PATTERN_URL = '/brands/{brand}';
|
24 |
-
|
25 |
-
protected $urlHelper;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Get xml
|
29 |
-
*
|
30 |
-
* @param type $context
|
31 |
-
*/
|
32 |
-
public function getXml($context)
|
33 |
-
{
|
34 |
-
$this->initXml();
|
35 |
-
$this->initFields('brand');
|
36 |
-
|
37 |
-
$brandPattern = $this->getBrandPattern();
|
38 |
-
|
39 |
-
$this->xml->push('brands', array('xmlns' => "http://ref.antidot.net/store/afs#"));
|
40 |
-
|
41 |
-
$this->xml->push('header');
|
42 |
-
$this->xml->element('owner', $context['owner']);
|
43 |
-
$this->xml->element('feed', 'brand');
|
44 |
-
$this->xml->element('generated_at', date('c', Mage::getModel('core/date')->timestamp(time())));
|
45 |
-
$this->xml->pop();
|
46 |
-
|
47 |
-
foreach($context['store_id']as $storeId) {
|
48 |
-
$store = Mage::getModel('core/store')->load($storeId);
|
49 |
-
foreach($this->getBrands() as $brandId => $brand) {
|
50 |
-
$this->xml->push('brand', array('id' => $brandId, 'xml:lang' => $context['lang']));
|
51 |
-
|
52 |
-
$this->xml->element('name', $this->xml->encloseCData($brand));
|
53 |
-
$this->xml->element('url', $this->getUrl($brand, $brandPattern));
|
54 |
-
|
55 |
-
$this->xml->push('websites');
|
56 |
-
$this->xml->element('website', '', array('id' => $storeId, 'name' => $store->getName()));
|
57 |
-
$this->xml->pop();
|
58 |
-
|
59 |
-
$this->xml->pop();
|
60 |
-
}
|
61 |
-
}
|
62 |
-
|
63 |
-
$this->xml->pop();
|
64 |
-
|
65 |
-
return $this->xml->getXml();
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Return categories
|
70 |
-
*
|
71 |
-
* @param int $rootCategoryId
|
72 |
-
* @param array
|
73 |
-
*/
|
74 |
-
protected function getBrands()
|
75 |
-
{
|
76 |
-
$attribute = Mage::getModel('eav/config')
|
77 |
-
->getAttribute('catalog_product', 'manufacturer');
|
78 |
-
|
79 |
-
$brands = array();
|
80 |
-
foreach($attribute->getSource()->getAllOptions(true, true) as $option) {
|
81 |
-
if(!empty($option['value'])) {
|
82 |
-
$brands[$option['value']] = $option['label'];
|
83 |
-
}
|
84 |
-
}
|
85 |
-
|
86 |
-
return $brands;
|
87 |
-
}
|
88 |
-
|
89 |
-
/**
|
90 |
-
* Return brand url
|
91 |
-
*
|
92 |
-
* @param string $brand
|
93 |
-
* @return string
|
94 |
-
*/
|
95 |
-
public function getUrl($brand, $brandPattern = null)
|
96 |
-
{
|
97 |
-
$brandPattern = $brandPattern === null ? $this->getBrandPattern() : $brandPattern;
|
98 |
-
|
99 |
-
return preg_replace('/\{brand\}/', $this->getUrlHelper()->url($brand), $brandPattern);
|
100 |
-
}
|
101 |
-
|
102 |
-
/**
|
103 |
-
* Get the brand pattern
|
104 |
-
*
|
105 |
-
* @return string
|
106 |
-
*/
|
107 |
-
protected function getBrandPattern()
|
108 |
-
{
|
109 |
-
$brandPattern = Mage::getStoreConfig('antidot/general/brand');
|
110 |
-
if(strpos($brandPattern, '{brand}') === false) {
|
111 |
-
$brandPattern = self::PATTERN_URL;
|
112 |
-
}
|
113 |
-
|
114 |
-
return $brandPattern;
|
115 |
-
}
|
116 |
-
|
117 |
-
/**
|
118 |
-
* Return url Helper
|
119 |
-
*
|
120 |
-
* @return Antidot/Url
|
121 |
-
*/
|
122 |
-
protected function getUrlHelper()
|
123 |
-
{
|
124 |
-
if($this->urlHelper === null) {
|
125 |
-
$this->urlHelper = Mage::helper('Antidot/Url');
|
126 |
-
}
|
127 |
-
|
128 |
-
return $this->urlHelper;
|
129 |
-
}
|
130 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/MDN/Antidot/Model/Export/Category.php
CHANGED
@@ -9,15 +9,15 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Export_Category extends MDN_Antidot_Model_Export_Abstract
|
17 |
{
|
18 |
const TYPE = 'CATEGORY';
|
19 |
-
const FILENAME_XML = 'categories
|
20 |
-
const FILENAME_ZIP = '%
|
21 |
const XSD = 'http://ref.antidot.net/store/latest/categories.xsd';
|
22 |
|
23 |
/**
|
@@ -27,20 +27,28 @@ class MDN_Antidot_Model_Export_Category extends MDN_Antidot_Model_Export_Abstrac
|
|
27 |
*/
|
28 |
public function writeXml($context, $filename)
|
29 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
$this->initXml();
|
31 |
$this->initFields('category');
|
32 |
|
33 |
$this->xml->push('categories', array('xmlns' => "http://ref.antidot.net/store/afs#"));
|
34 |
|
35 |
-
$this->
|
36 |
-
$this->xml->element('owner', $context['owner']);
|
37 |
-
$this->xml->element('feed', 'category');
|
38 |
-
$this->xml->element('generated_at', date('c', Mage::getModel('core/date')->timestamp(time())));
|
39 |
-
$this->xml->pop();
|
40 |
|
41 |
$nbItems = 0;
|
42 |
foreach($context['stores'] as $store) {
|
43 |
-
foreach($
|
44 |
|
45 |
if (!$this->getField($cat, 'name'))
|
46 |
continue;
|
@@ -117,4 +125,4 @@ class MDN_Antidot_Model_Export_Category extends MDN_Antidot_Model_Export_Abstrac
|
|
117 |
->addFieldToFilter('path', array('like' => Mage::getModel('catalog/category')->load($store->getRootCategoryId())->getPath().'/%'))
|
118 |
;
|
119 |
}
|
120 |
-
}
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Export_Category extends MDN_Antidot_Model_Export_Abstract
|
17 |
{
|
18 |
const TYPE = 'CATEGORY';
|
19 |
+
const FILENAME_XML = 'categories-%s_%s-%s.xml';
|
20 |
+
const FILENAME_ZIP = '%s_full_%s_categories.zip';
|
21 |
const XSD = 'http://ref.antidot.net/store/latest/categories.xsd';
|
22 |
|
23 |
/**
|
27 |
*/
|
28 |
public function writeXml($context, $filename)
|
29 |
{
|
30 |
+
$nbTotalCategories = 0;
|
31 |
+
$context['categories'] = array();
|
32 |
+
foreach($context['stores'] as $store) {
|
33 |
+
$categories = $this->getCategories($store);
|
34 |
+
$nbTotalCategories += $categories->getSize();
|
35 |
+
$context['categories'][$store->getId()] = $categories;
|
36 |
+
}
|
37 |
+
|
38 |
+
if ($nbTotalCategories == 0) {
|
39 |
+
return 0;
|
40 |
+
}
|
41 |
+
|
42 |
$this->initXml();
|
43 |
$this->initFields('category');
|
44 |
|
45 |
$this->xml->push('categories', array('xmlns' => "http://ref.antidot.net/store/afs#"));
|
46 |
|
47 |
+
$this->writeHeader($context);
|
|
|
|
|
|
|
|
|
48 |
|
49 |
$nbItems = 0;
|
50 |
foreach($context['stores'] as $store) {
|
51 |
+
foreach($context['categories'][$store->getId()] as $cat) {
|
52 |
|
53 |
if (!$this->getField($cat, 'name'))
|
54 |
continue;
|
125 |
->addFieldToFilter('path', array('like' => Mage::getModel('catalog/category')->load($store->getRootCategoryId())->getPath().'/%'))
|
126 |
;
|
127 |
}
|
128 |
+
}
|
app/code/community/MDN/Antidot/Model/Export/Product.php
CHANGED
@@ -9,17 +9,17 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
17 |
{
|
18 |
|
19 |
const TYPE = 'CATALOG';
|
20 |
-
const FILENAME_XML = 'catalog
|
21 |
-
const FILENAME_ZIP = '%
|
22 |
-
const FILENAME_ZIP_INC = '%
|
23 |
const XSD = 'http://ref.antidot.net/store/latest/catalog.xsd';
|
24 |
|
25 |
/*
|
@@ -88,7 +88,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
88 |
->joinField('qty',
|
89 |
'cataloginventory/stock_item',
|
90 |
'qty',
|
91 |
-
'product_id = entity_id'
|
92 |
'{{table}}.stock_id = 1'.$productsInStock)
|
93 |
;
|
94 |
|
@@ -130,15 +130,20 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
130 |
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
|
131 |
|
132 |
foreach($collection as $product) {
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
}
|
144 |
$this->writePart($this->xml->flush());
|
@@ -204,30 +209,16 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
204 |
}
|
205 |
}
|
206 |
}
|
207 |
-
|
208 |
-
/**
|
209 |
-
* Write the xml header
|
210 |
-
*
|
211 |
-
*/
|
212 |
-
protected function writeHeader($context)
|
213 |
-
{
|
214 |
-
$this->xml->push('header');
|
215 |
-
$this->xml->element('owner', $context['owner']);
|
216 |
-
$this->xml->element('feed', 'product');
|
217 |
-
$this->xml->element('generated_at', date('c', Mage::getModel('core/date')->timestamp(time())));
|
218 |
-
$this->xml->pop();
|
219 |
-
}
|
220 |
-
|
221 |
/**
|
222 |
* Write the product
|
223 |
*
|
224 |
* @param Product $product
|
225 |
-
* @param Array $
|
226 |
*/
|
227 |
-
protected function writeProduct($product, $
|
228 |
{
|
229 |
-
|
230 |
-
|
231 |
//skip product if no websites
|
232 |
if (count($stores) == 0)
|
233 |
return;
|
@@ -259,11 +250,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
259 |
if ($keywords = $this->getField($product, 'keywords')) {
|
260 |
$this->xml->element('keywords', $this->xml->encloseCData($keywords));
|
261 |
}
|
262 |
-
$this->writeDescriptions($product);
|
263 |
-
$this->xml->element('url', $this->xml->encloseCData($product->getProductUrl()));
|
264 |
-
$this->writeImageUrl($product);
|
265 |
$this->writeClassification($product, $rootCategoriesIds);
|
266 |
-
$this->writeProperties($product, $stores);
|
267 |
$this->writeBrand($product);
|
268 |
$this->writeMaterials($product);
|
269 |
$this->writeColors($product);
|
@@ -287,7 +274,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
287 |
{
|
288 |
$this->xml->push('stores');
|
289 |
|
290 |
-
/* Qty is the same for all stores, better
|
291 |
$qty = Mage::getModel('cataloginventory/stock_item')->loadByProduct($variantProduct)->getQty();
|
292 |
$qty = ($qty > 0 ? $qty : 0);
|
293 |
|
@@ -297,10 +284,12 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
297 |
/*
|
298 |
* reload the $variantProduct if this is a real variant or if we are on a different store
|
299 |
*/
|
|
|
300 |
if ($product->getId() != $variantProduct->getId() || $store->getId() != $product->getStoreId()) {
|
301 |
$reloadedVariantProduct = Mage::getModel('catalog/product')->setStoreId($store->getId())->load(
|
302 |
$variantProduct->getId()
|
303 |
);
|
|
|
304 |
} else {
|
305 |
$reloadedVariantProduct = $variantProduct;
|
306 |
}
|
@@ -310,7 +299,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
310 |
$storeContext['country'] = $this->getStoreLang($store->getId());
|
311 |
|
312 |
$operations = $this->getOperations($product, $store);
|
313 |
-
$this->writePrices($reloadedVariantProduct, $product, $storeContext, $store
|
314 |
$this->writeMarketing($reloadedVariantProduct, $operations);
|
315 |
|
316 |
$isAvailable = $reloadedVariantProduct->isSalable() || (in_array($reloadedVariantProduct->getTypeId(), $this->productMultiple) && $product->isInStock());
|
@@ -318,9 +307,19 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
318 |
|
319 |
$this->xml->element('stock', (int)$qty);
|
320 |
|
321 |
-
$this->
|
|
|
|
|
322 |
$this->xml->pop();
|
323 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
324 |
}
|
325 |
$this->xml->pop();
|
326 |
}
|
@@ -354,7 +353,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
354 |
if (in_array($storeId, $this->enabledStores))
|
355 |
$stores[] = $context['stores'][$storeId];
|
356 |
}
|
357 |
-
|
358 |
return $stores;
|
359 |
}
|
360 |
|
@@ -458,26 +457,46 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
458 |
}
|
459 |
}
|
460 |
}
|
461 |
-
|
462 |
/**
|
463 |
* Write the product urls
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
464 |
*
|
465 |
* @param Product $product
|
466 |
* @param string $urlImg
|
467 |
*/
|
468 |
protected function writeImageUrl($product, $urlImg = true)
|
469 |
{
|
470 |
-
|
|
|
|
|
|
|
|
|
471 |
if ($product->getThumbnail() && ($product->getThumbnail() != 'no_selection')) {
|
472 |
-
|
473 |
}
|
474 |
-
} catch(Exception $e) {
|
|
|
|
|
475 |
|
476 |
try {
|
477 |
if ($urlImg && $product->getImage() && ($product->getImage() != 'no_selection')) {
|
478 |
-
|
479 |
}
|
480 |
-
} catch(Exception $e) {
|
|
|
|
|
481 |
}
|
482 |
|
483 |
/**
|
@@ -684,9 +703,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
684 |
* Write the product properties
|
685 |
*
|
686 |
* @param Product $product
|
687 |
-
* @param array $stores List product store
|
688 |
*/
|
689 |
-
protected function writeProperties($product
|
690 |
{
|
691 |
$properties = array();
|
692 |
if(!empty($this->fields['properties'])) {
|
@@ -697,16 +715,20 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
697 |
|
698 |
$attribute = $product->getResource()->getAttribute($property['value']);
|
699 |
if ($attribute) {
|
|
|
700 |
$value = $attribute->getFrontend()->getValue($product);
|
701 |
-
$label = $attribute->
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
|
|
|
|
|
|
710 |
switch($attribute->getfrontend_input())
|
711 |
{
|
712 |
case 'multiselect':
|
@@ -723,15 +745,18 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
723 |
break;
|
724 |
default:
|
725 |
$optionName = $value;
|
726 |
-
if(!empty($this->propertyLabel[$property['value']]['options'][$id]['per_store'][
|
727 |
-
$optionName = $this->propertyLabel[$property['value']]['options'][$id]['per_store'][
|
728 |
}
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
|
|
|
|
|
|
735 |
break;
|
736 |
}
|
737 |
} else {
|
@@ -756,7 +781,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
756 |
*
|
757 |
* @param Product $product
|
758 |
*/
|
759 |
-
protected function writePrices($product, $parentProduct, $context, $store
|
760 |
{
|
761 |
$prices = ($this->getPrices($parentProduct->getId(), $store->getWebsiteId()));
|
762 |
|
@@ -775,7 +800,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
775 |
$attributes = array('currency' => $context['currency'], 'type' => 'PRICE_FINAL', 'vat_included' => 'true', 'country' => strtoupper($context['country']));
|
776 |
if (isset($priceCut))
|
777 |
{
|
778 |
-
$off = (
|
779 |
$attributes['off'] = $off;
|
780 |
}
|
781 |
$this->xml->element(
|
@@ -789,7 +814,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
789 |
$priceCut = Mage::helper('directory')->currencyConvert($priceCut, Mage::app()->getStore()->getCurrentCurrencyCode(), $store->getCurrentCurrencyCode());
|
790 |
$this->xml->element(
|
791 |
'price',
|
792 |
-
Mage::helper('Antidot')->round($priceCut
|
793 |
array('currency' => $context['currency'], 'type' => 'PRICE_CUT', 'vat_included' => 'true', 'country' => strtoupper($context['country']))
|
794 |
);
|
795 |
|
@@ -798,6 +823,16 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
798 |
$this->xml->pop();
|
799 |
}
|
800 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
801 |
/**
|
802 |
* Return product special price (if exists)
|
803 |
*
|
@@ -858,7 +893,10 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
858 |
$result['min_price'] = $product->getPrice();
|
859 |
$result['price'] = $product->getPrice();
|
860 |
$result['final_price'] = $product->getPrice();
|
861 |
-
$product->clearInstance();
|
|
|
|
|
|
|
862 |
}
|
863 |
|
864 |
return $result;
|
@@ -1002,13 +1040,12 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
1002 |
$this->writeDescriptions($variantProduct);
|
1003 |
$this->writeStore($product, $stores, $variantProduct);
|
1004 |
$this->writeIdentifiers($variantProduct);
|
1005 |
-
$this->writeProperties($variantProduct
|
1006 |
$this->writeMaterials($variantProduct);
|
1007 |
$this->writeColors($variantProduct);
|
1008 |
$this->writeModels($variantProduct);
|
1009 |
$this->writeSizes($variantProduct);
|
1010 |
$this->writeGenders($product);
|
1011 |
-
$this->writeImageUrl($variantProduct);
|
1012 |
$this->writeMisc($variantProduct);
|
1013 |
}
|
1014 |
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
17 |
{
|
18 |
|
19 |
const TYPE = 'CATALOG';
|
20 |
+
const FILENAME_XML = 'catalog-%s_%s-%s.xml';
|
21 |
+
const FILENAME_ZIP = '%s_full_%s_catalog.zip';
|
22 |
+
const FILENAME_ZIP_INC = '%s_inc_%s_catalog.zip';
|
23 |
const XSD = 'http://ref.antidot.net/store/latest/catalog.xsd';
|
24 |
|
25 |
/*
|
88 |
->joinField('qty',
|
89 |
'cataloginventory/stock_item',
|
90 |
'qty',
|
91 |
+
'product_id=entity_id', // warning : no spaces between = and entity_id , magento1.5 isn't robust enought
|
92 |
'{{table}}.stock_id = 1'.$productsInStock)
|
93 |
;
|
94 |
|
130 |
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
|
131 |
|
132 |
foreach($collection as $product) {
|
133 |
+
|
134 |
+
$stores = $this->getProductStores($product, $context);
|
135 |
+
if ($store = current($stores)) { //we take the "first" store of the current lang
|
136 |
+
$product = Mage::getModel('catalog/product')->setStoreId($store->getId())->load(
|
137 |
+
$product->getId()
|
138 |
+
);
|
139 |
+
|
140 |
+
$this->writeProduct($product, $stores);
|
141 |
+
|
142 |
+
$product->clearInstance(); //memory flush
|
143 |
+
$product = null;
|
144 |
+
unset($product);
|
145 |
+
gc_collect_cycles();
|
146 |
+
}
|
147 |
|
148 |
}
|
149 |
$this->writePart($this->xml->flush());
|
209 |
}
|
210 |
}
|
211 |
}
|
212 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
/**
|
214 |
* Write the product
|
215 |
*
|
216 |
* @param Product $product
|
217 |
+
* @param Array $stores
|
218 |
*/
|
219 |
+
protected function writeProduct($product, $stores)
|
220 |
{
|
221 |
+
|
|
|
222 |
//skip product if no websites
|
223 |
if (count($stores) == 0)
|
224 |
return;
|
250 |
if ($keywords = $this->getField($product, 'keywords')) {
|
251 |
$this->xml->element('keywords', $this->xml->encloseCData($keywords));
|
252 |
}
|
|
|
|
|
|
|
253 |
$this->writeClassification($product, $rootCategoriesIds);
|
|
|
254 |
$this->writeBrand($product);
|
255 |
$this->writeMaterials($product);
|
256 |
$this->writeColors($product);
|
274 |
{
|
275 |
$this->xml->push('stores');
|
276 |
|
277 |
+
/* Qty is the same for all stores, better compute it outside the loop: */
|
278 |
$qty = Mage::getModel('cataloginventory/stock_item')->loadByProduct($variantProduct)->getQty();
|
279 |
$qty = ($qty > 0 ? $qty : 0);
|
280 |
|
284 |
/*
|
285 |
* reload the $variantProduct if this is a real variant or if we are on a different store
|
286 |
*/
|
287 |
+
$reloaded = false;
|
288 |
if ($product->getId() != $variantProduct->getId() || $store->getId() != $product->getStoreId()) {
|
289 |
$reloadedVariantProduct = Mage::getModel('catalog/product')->setStoreId($store->getId())->load(
|
290 |
$variantProduct->getId()
|
291 |
);
|
292 |
+
$reloaded = true;
|
293 |
} else {
|
294 |
$reloadedVariantProduct = $variantProduct;
|
295 |
}
|
299 |
$storeContext['country'] = $this->getStoreLang($store->getId());
|
300 |
|
301 |
$operations = $this->getOperations($product, $store);
|
302 |
+
$this->writePrices($reloadedVariantProduct, $product, $storeContext, $store);
|
303 |
$this->writeMarketing($reloadedVariantProduct, $operations);
|
304 |
|
305 |
$isAvailable = $reloadedVariantProduct->isSalable() || (in_array($reloadedVariantProduct->getTypeId(), $this->productMultiple) && $product->isInStock());
|
307 |
|
308 |
$this->xml->element('stock', (int)$qty);
|
309 |
|
310 |
+
$this->writeProductUrl($reloadedVariantProduct);
|
311 |
+
$this->writeImageUrl($reloadedVariantProduct);
|
312 |
+
|
313 |
$this->xml->pop();
|
314 |
|
315 |
+
if ($reloaded) {
|
316 |
+
$reloadedVariantProduct->clearInstance(); //memory flush
|
317 |
+
$reloadedVariantProduct = null;
|
318 |
+
unset($reloadedVariantProduct);
|
319 |
+
gc_collect_cycles();
|
320 |
+
}
|
321 |
+
|
322 |
+
|
323 |
}
|
324 |
$this->xml->pop();
|
325 |
}
|
353 |
if (in_array($storeId, $this->enabledStores))
|
354 |
$stores[] = $context['stores'][$storeId];
|
355 |
}
|
356 |
+
|
357 |
return $stores;
|
358 |
}
|
359 |
|
457 |
}
|
458 |
}
|
459 |
}
|
460 |
+
|
461 |
/**
|
462 |
* Write the product urls
|
463 |
+
*
|
464 |
+
* @param Product $product
|
465 |
+
* @param string $urlImg
|
466 |
+
*/
|
467 |
+
protected function writeProductUrl($product)
|
468 |
+
{
|
469 |
+
$this->xml->element('url', $this->xml->encloseCData($product->getProductUrl(false)));
|
470 |
+
}
|
471 |
+
|
472 |
+
|
473 |
+
/**
|
474 |
+
* Write the product images urls
|
475 |
*
|
476 |
* @param Product $product
|
477 |
* @param string $urlImg
|
478 |
*/
|
479 |
protected function writeImageUrl($product, $urlImg = true)
|
480 |
{
|
481 |
+
|
482 |
+
//Set the current store to generate correct URls (even in unit tests)
|
483 |
+
Mage::app()->setCurrentStore($product->getStoreId());
|
484 |
+
|
485 |
+
try {
|
486 |
if ($product->getThumbnail() && ($product->getThumbnail() != 'no_selection')) {
|
487 |
+
$this->xml->element('url_thumbnail', $this->xml->encloseCData(Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getThumbnail())));
|
488 |
}
|
489 |
+
} catch(Exception $e) {
|
490 |
+
Mage::log($e, Zend_Log::ERR, 'antidot.log');
|
491 |
+
}
|
492 |
|
493 |
try {
|
494 |
if ($urlImg && $product->getImage() && ($product->getImage() != 'no_selection')) {
|
495 |
+
$this->xml->element('url_image', $this->xml->encloseCData(Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getImage())));
|
496 |
}
|
497 |
+
} catch(Exception $e) {
|
498 |
+
Mage::log($e, Zend_Log::ERR, 'antidot.log');
|
499 |
+
}
|
500 |
}
|
501 |
|
502 |
/**
|
703 |
* Write the product properties
|
704 |
*
|
705 |
* @param Product $product
|
|
|
706 |
*/
|
707 |
+
protected function writeProperties($product)
|
708 |
{
|
709 |
$properties = array();
|
710 |
if(!empty($this->fields['properties'])) {
|
715 |
|
716 |
$attribute = $product->getResource()->getAttribute($property['value']);
|
717 |
if ($attribute) {
|
718 |
+
$attribute->setStoreId($product->getStoreId());
|
719 |
$value = $attribute->getFrontend()->getValue($product);
|
720 |
+
$label = $attribute->getFrontendLabel(); // we use Admin label as default value
|
721 |
+
$labels = $attribute->getStoreLabels();
|
722 |
+
if (isset($labels[$product->getStoreId()])) {
|
723 |
+
$label = $labels[$product->getStoreId()];
|
724 |
+
}
|
725 |
+
/**
|
726 |
+
* Note : we don't use $attribute->getStoreLabel() method because
|
727 |
+
* $product->getResource() is a singleton which cache the attributes
|
728 |
+
* then the attribute (and his store label) is loaded for the first store
|
729 |
+
* processed, and we get wrong label for the next stores.
|
730 |
+
* Flush this cache would be less performance
|
731 |
+
*/
|
732 |
switch($attribute->getfrontend_input())
|
733 |
{
|
734 |
case 'multiselect':
|
745 |
break;
|
746 |
default:
|
747 |
$optionName = $value;
|
748 |
+
if(!empty($this->propertyLabel[$property['value']]['options'][$id]['per_store'][$product->getStoreId()])) {
|
749 |
+
$optionName = $this->propertyLabel[$property['value']]['options'][$id]['per_store'][$product->getStoreId()];
|
750 |
}
|
751 |
+
//do not insert the properties tag if it has no value (in label attribute) :
|
752 |
+
if ($optionName) {
|
753 |
+
$properties[] = array(
|
754 |
+
'name' => $property['value'],
|
755 |
+
'display_name' => substr($label, 0, self::FACET_MAX_LENGTH),
|
756 |
+
'label' => substr($optionName, 0, self::FACET_MAX_LENGTH),
|
757 |
+
'autocomplete' => ($property['autocomplete'] == 1 ? 'on' : 'off')
|
758 |
+
);
|
759 |
+
}
|
760 |
break;
|
761 |
}
|
762 |
} else {
|
781 |
*
|
782 |
* @param Product $product
|
783 |
*/
|
784 |
+
protected function writePrices($product, $parentProduct, $context, $store)
|
785 |
{
|
786 |
$prices = ($this->getPrices($parentProduct->getId(), $store->getWebsiteId()));
|
787 |
|
800 |
$attributes = array('currency' => $context['currency'], 'type' => 'PRICE_FINAL', 'vat_included' => 'true', 'country' => strtoupper($context['country']));
|
801 |
if (isset($priceCut))
|
802 |
{
|
803 |
+
$off = $this->computePriceOff($priceCut, $price);
|
804 |
$attributes['off'] = $off;
|
805 |
}
|
806 |
$this->xml->element(
|
814 |
$priceCut = Mage::helper('directory')->currencyConvert($priceCut, Mage::app()->getStore()->getCurrentCurrencyCode(), $store->getCurrentCurrencyCode());
|
815 |
$this->xml->element(
|
816 |
'price',
|
817 |
+
Mage::helper('Antidot')->round($priceCut),
|
818 |
array('currency' => $context['currency'], 'type' => 'PRICE_CUT', 'vat_included' => 'true', 'country' => strtoupper($context['country']))
|
819 |
);
|
820 |
|
823 |
$this->xml->pop();
|
824 |
}
|
825 |
|
826 |
+
/**
|
827 |
+
* Return The price reduction percentage
|
828 |
+
*
|
829 |
+
* @param $priceCut
|
830 |
+
* @param $price
|
831 |
+
*/
|
832 |
+
protected function computePriceOff($priceCut, $price) {
|
833 |
+
return round(($priceCut - $price) / $priceCut * 100);
|
834 |
+
}
|
835 |
+
|
836 |
/**
|
837 |
* Return product special price (if exists)
|
838 |
*
|
893 |
$result['min_price'] = $product->getPrice();
|
894 |
$result['price'] = $product->getPrice();
|
895 |
$result['final_price'] = $product->getPrice();
|
896 |
+
$product->clearInstance(); //memory flush
|
897 |
+
$product = null;
|
898 |
+
unset($product);
|
899 |
+
gc_collect_cycles();
|
900 |
}
|
901 |
|
902 |
return $result;
|
1040 |
$this->writeDescriptions($variantProduct);
|
1041 |
$this->writeStore($product, $stores, $variantProduct);
|
1042 |
$this->writeIdentifiers($variantProduct);
|
1043 |
+
$this->writeProperties($variantProduct);
|
1044 |
$this->writeMaterials($variantProduct);
|
1045 |
$this->writeColors($variantProduct);
|
1046 |
$this->writeModels($variantProduct);
|
1047 |
$this->writeSizes($variantProduct);
|
1048 |
$this->writeGenders($product);
|
|
|
1049 |
$this->writeMisc($variantProduct);
|
1050 |
}
|
1051 |
|
app/code/community/MDN/Antidot/Model/Observer.php
CHANGED
@@ -9,14 +9,15 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
17 |
{
|
18 |
const GENERATE_FULL = 'FULL';
|
19 |
const GENERATE_INC = 'INC';
|
|
|
20 |
|
21 |
/**
|
22 |
* @var string @tmpDirectory
|
@@ -48,9 +49,52 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
48 |
$this->begin = microtime(true);
|
49 |
$this->initTmpDirectory();
|
50 |
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
/**
|
55 |
* Init the tmp directory
|
56 |
*/
|
@@ -77,26 +121,26 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
77 |
/**
|
78 |
* Generate the full catalog file
|
79 |
*/
|
80 |
-
public function catalogFullExport()
|
81 |
{
|
82 |
$this->log('FULL EXPORT');
|
83 |
-
$this->generate(Mage::getModel('Antidot/Export_Product'), self::GENERATE_FULL);
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
* Generate the inc catalog file
|
88 |
*/
|
89 |
-
public function catalogIncExport()
|
90 |
{
|
91 |
-
$this->generate(Mage::getModel('Antidot/Export_Product'), self::GENERATE_INC);
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
* Generate the category file
|
96 |
*/
|
97 |
-
public function categoriesFullExport()
|
98 |
{
|
99 |
-
$this->generate(Mage::getModel('Antidot/Export_Category'), self::GENERATE_FULL);
|
100 |
}
|
101 |
|
102 |
/**
|
@@ -106,7 +150,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
106 |
* @param string $type
|
107 |
* @throws Exception
|
108 |
*/
|
109 |
-
protected function generate($exportModel, $type)
|
110 |
{
|
111 |
$this->type = $exportModel::TYPE;
|
112 |
$this->log('start');
|
@@ -118,12 +162,13 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
118 |
try
|
119 |
{
|
120 |
|
121 |
-
$
|
122 |
-
|
|
|
123 |
$this->log('generate '.$exportModel::TYPE.' '.$context['owner']);
|
124 |
$context['store_id'] = array_keys($context['stores']);
|
125 |
|
126 |
-
$filename = $this->tmpDirectory.sprintf($exportModel::FILENAME_XML, $type, $context['lang']);
|
127 |
$items = $exportModel->writeXml($context, $filename, $type);
|
128 |
if($items === 0) {
|
129 |
$this->log('No items to export');
|
@@ -131,30 +176,31 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
131 |
}
|
132 |
|
133 |
$log['items']+= $items;
|
134 |
-
|
135 |
-
|
136 |
$files[] = $filename;
|
137 |
} else {
|
|
|
138 |
$this->fileError($filename);
|
139 |
|
140 |
-
$
|
141 |
-
$this->log('xml schema not valid '.print_r($errors, true));
|
142 |
-
Mage::helper('Antidot')->sendMail('Export failed', print_r($errors, true));
|
143 |
-
foreach($errors as $error)
|
144 |
$log['error'][] = $error;
|
|
|
145 |
continue;
|
|
|
146 |
}
|
147 |
}
|
148 |
|
149 |
if($log['items'] === 0) {
|
150 |
$this->log('No items available, cancel export');
|
151 |
-
return;
|
152 |
}
|
153 |
|
154 |
$log['reference'] = 'unknown';
|
155 |
if(!empty($files)) {
|
156 |
$this->log('Compress files');
|
157 |
$filenameZip = $type === self::GENERATE_INC ? $exportModel::FILENAME_ZIP_INC : $exportModel::FILENAME_ZIP;
|
|
|
158 |
$filename = $this->compress($files, $filenameZip);
|
159 |
$log['reference'] = md5($filename);
|
160 |
$this->send($filename);
|
@@ -163,8 +209,11 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
163 |
} else {
|
164 |
$log['status'] = 'FAILED';
|
165 |
$lastError = current(Mage::helper('Antidot/XmlWriter')->getErrors());
|
166 |
-
if ($lastError)
|
167 |
-
|
|
|
|
|
|
|
168 |
}
|
169 |
|
170 |
if(file_exists($filename)) {
|
@@ -184,6 +233,15 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
184 |
$this->log('end');
|
185 |
|
186 |
Mage::helper('Antidot/LogExport')->add($log['reference'], $type, $exportModel::TYPE, $log['begin'], $log['end'], $log['items'], $log['status'], implode(',', $log['error']));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
}
|
188 |
|
189 |
/**
|
@@ -223,7 +281,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
223 |
{
|
224 |
$this->log('compress the file');
|
225 |
|
226 |
-
$compressFile = dirname(current($files)).'/'
|
227 |
Mage::helper('Antidot/Compress')->zip($files, $compressFile);
|
228 |
|
229 |
return $compressFile;
|
@@ -246,27 +304,61 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
246 |
|
247 |
/**
|
248 |
* Check if the xml file is valid
|
|
|
249 |
*
|
250 |
* @param string $filename xml file
|
251 |
* @param string $xsd xsd file
|
252 |
-
* @return
|
253 |
*/
|
254 |
protected function schemaValidate($filename, $xsd)
|
255 |
{
|
|
|
|
|
256 |
//disable schema validation
|
257 |
if (Mage::getStoreConfig('antidot/xsd_verification/disable') == 1)
|
258 |
{
|
259 |
$this->log('schema validation is DISABLED');
|
260 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
}
|
|
|
262 |
|
263 |
-
libxml_use_internal_errors(true);
|
264 |
-
$this->log('schema validate');
|
265 |
-
|
266 |
-
$xml = new DOMDocument();
|
267 |
-
$xml->load($filename);
|
268 |
-
|
269 |
-
return $xml->schemaValidate($xsd);
|
270 |
}
|
271 |
|
272 |
/**
|
@@ -275,7 +367,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
275 |
* @todo retrieve these data from the db
|
276 |
* @return array
|
277 |
*/
|
278 |
-
private function getDefaultContext()
|
279 |
{
|
280 |
$listStore = array();
|
281 |
foreach (Mage::app()->getStores() as $store) {
|
@@ -284,12 +376,16 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
284 |
$listStore[$lang][$store->getId()] = $store;
|
285 |
}
|
286 |
}
|
287 |
-
|
|
|
|
|
|
|
|
|
288 |
$listContext = array();
|
289 |
-
$context['website_ids'] = array();
|
290 |
foreach($listStore as $lang => $stores) {
|
291 |
-
$
|
292 |
-
$context['owner'] =
|
|
|
293 |
$context['lang'] = $lang;
|
294 |
$context['stores'] = $stores;
|
295 |
foreach ($stores as $store) {
|
@@ -319,4 +415,35 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
319 |
|
320 |
Mage::log($message, null, 'antidot.log');
|
321 |
}
|
322 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
17 |
{
|
18 |
const GENERATE_FULL = 'FULL';
|
19 |
const GENERATE_INC = 'INC';
|
20 |
+
const MINIMUM_MEMORY_LIMIT = '2048M';
|
21 |
|
22 |
/**
|
23 |
* @var string @tmpDirectory
|
49 |
$this->begin = microtime(true);
|
50 |
$this->initTmpDirectory();
|
51 |
|
52 |
+
/*
|
53 |
+
* If the default memory limit is below 2048M set it to 2048M
|
54 |
+
* else if it is above 2048M let it as it is
|
55 |
+
*/
|
56 |
+
if ($this->return_bytes(ini_get('memory_limit')) < $this->return_bytes(self::MINIMUM_MEMORY_LIMIT)) {
|
57 |
+
ini_set('memory_limit', self::MINIMUM_MEMORY_LIMIT);
|
58 |
+
}
|
59 |
+
|
60 |
}
|
61 |
|
62 |
+
/**
|
63 |
+
* Gives the value in bytes
|
64 |
+
*/
|
65 |
+
protected function return_bytes ($val)
|
66 |
+
{
|
67 |
+
if(empty($val))return 0;
|
68 |
+
|
69 |
+
$val = trim($val);
|
70 |
+
|
71 |
+
preg_match('#([0-9]+)[\s]*([a-z]+)#i', $val, $matches);
|
72 |
+
|
73 |
+
$last = '';
|
74 |
+
if(isset($matches[2])){
|
75 |
+
$last = $matches[2];
|
76 |
+
}
|
77 |
+
|
78 |
+
if(isset($matches[1])){
|
79 |
+
$val = (int) $matches[1];
|
80 |
+
}
|
81 |
+
|
82 |
+
switch (strtolower($last))
|
83 |
+
{
|
84 |
+
case 'g':
|
85 |
+
case 'gb':
|
86 |
+
$val *= 1024;
|
87 |
+
case 'm':
|
88 |
+
case 'mb':
|
89 |
+
$val *= 1024;
|
90 |
+
case 'k':
|
91 |
+
case 'kb':
|
92 |
+
$val *= 1024;
|
93 |
+
}
|
94 |
+
|
95 |
+
return (int) $val;
|
96 |
+
}
|
97 |
+
|
98 |
/**
|
99 |
* Init the tmp directory
|
100 |
*/
|
121 |
/**
|
122 |
* Generate the full catalog file
|
123 |
*/
|
124 |
+
public function catalogFullExport($runContext = 'cron')
|
125 |
{
|
126 |
$this->log('FULL EXPORT');
|
127 |
+
return $this->generate(Mage::getModel('Antidot/Export_Product'), self::GENERATE_FULL, $runContext);
|
128 |
}
|
129 |
|
130 |
/**
|
131 |
* Generate the inc catalog file
|
132 |
*/
|
133 |
+
public function catalogIncExport($runContext = 'cron')
|
134 |
{
|
135 |
+
return $this->generate(Mage::getModel('Antidot/Export_Product'), self::GENERATE_INC, $runContext);
|
136 |
}
|
137 |
|
138 |
/**
|
139 |
* Generate the category file
|
140 |
*/
|
141 |
+
public function categoriesFullExport($runContext = 'cron')
|
142 |
{
|
143 |
+
return $this->generate(Mage::getModel('Antidot/Export_Category'), self::GENERATE_FULL, $runContext);
|
144 |
}
|
145 |
|
146 |
/**
|
150 |
* @param string $type
|
151 |
* @throws Exception
|
152 |
*/
|
153 |
+
protected function generate($exportModel, $type, $runContext)
|
154 |
{
|
155 |
$this->type = $exportModel::TYPE;
|
156 |
$this->log('start');
|
162 |
try
|
163 |
{
|
164 |
|
165 |
+
$owner = $this->getOwnerForFilename(Mage::getStoreConfig('antidot/general/owner'));
|
166 |
+
$files = array();
|
167 |
+
foreach($this->getDefaultContext($runContext) as $context) {
|
168 |
$this->log('generate '.$exportModel::TYPE.' '.$context['owner']);
|
169 |
$context['store_id'] = array_keys($context['stores']);
|
170 |
|
171 |
+
$filename = $this->tmpDirectory.sprintf($exportModel::FILENAME_XML, $owner, $type, $context['lang']);
|
172 |
$items = $exportModel->writeXml($context, $filename, $type);
|
173 |
if($items === 0) {
|
174 |
$this->log('No items to export');
|
176 |
}
|
177 |
|
178 |
$log['items']+= $items;
|
179 |
+
$validationErrors = $this->schemaValidate($filename, $exportModel::XSD);
|
180 |
+
if (count($validationErrors)==0) {
|
181 |
$files[] = $filename;
|
182 |
} else {
|
183 |
+
|
184 |
$this->fileError($filename);
|
185 |
|
186 |
+
foreach ($validationErrors as $error) {
|
|
|
|
|
|
|
187 |
$log['error'][] = $error;
|
188 |
+
}
|
189 |
continue;
|
190 |
+
|
191 |
}
|
192 |
}
|
193 |
|
194 |
if($log['items'] === 0) {
|
195 |
$this->log('No items available, cancel export');
|
196 |
+
return 0;
|
197 |
}
|
198 |
|
199 |
$log['reference'] = 'unknown';
|
200 |
if(!empty($files)) {
|
201 |
$this->log('Compress files');
|
202 |
$filenameZip = $type === self::GENERATE_INC ? $exportModel::FILENAME_ZIP_INC : $exportModel::FILENAME_ZIP;
|
203 |
+
$filenameZip = sprintf($filenameZip, date('YmdHis'), $owner);
|
204 |
$filename = $this->compress($files, $filenameZip);
|
205 |
$log['reference'] = md5($filename);
|
206 |
$this->send($filename);
|
209 |
} else {
|
210 |
$log['status'] = 'FAILED';
|
211 |
$lastError = current(Mage::helper('Antidot/XmlWriter')->getErrors());
|
212 |
+
if ($lastError) {
|
213 |
+
$log['error'][] = $lastError;
|
214 |
+
} else {
|
215 |
+
$log['error'][] = 'No file to export';
|
216 |
+
}
|
217 |
}
|
218 |
|
219 |
if(file_exists($filename)) {
|
233 |
$this->log('end');
|
234 |
|
235 |
Mage::helper('Antidot/LogExport')->add($log['reference'], $type, $exportModel::TYPE, $log['begin'], $log['end'], $log['items'], $log['status'], implode(',', $log['error']));
|
236 |
+
|
237 |
+
if ( count($log['error']) ) {
|
238 |
+
//send error alert mail
|
239 |
+
Mage::helper('Antidot')->sendMail('Export failed', print_r($log['error'], true));
|
240 |
+
//throw Exception in order to dispay error message in UI
|
241 |
+
Mage::throwException(implode(',', $log['error']));
|
242 |
+
}
|
243 |
+
|
244 |
+
return $log['items'];
|
245 |
}
|
246 |
|
247 |
/**
|
281 |
{
|
282 |
$this->log('compress the file');
|
283 |
|
284 |
+
$compressFile = dirname(current($files)).'/'.$compressFile;
|
285 |
Mage::helper('Antidot/Compress')->zip($files, $compressFile);
|
286 |
|
287 |
return $compressFile;
|
304 |
|
305 |
/**
|
306 |
* Check if the xml file is valid
|
307 |
+
* Returns array of error message, empty if schema is valid
|
308 |
*
|
309 |
* @param string $filename xml file
|
310 |
* @param string $xsd xsd file
|
311 |
+
* @return array
|
312 |
*/
|
313 |
protected function schemaValidate($filename, $xsd)
|
314 |
{
|
315 |
+
$errors = array();
|
316 |
+
|
317 |
//disable schema validation
|
318 |
if (Mage::getStoreConfig('antidot/xsd_verification/disable') == 1)
|
319 |
{
|
320 |
$this->log('schema validation is DISABLED');
|
321 |
+
} else {
|
322 |
+
|
323 |
+
libxml_use_internal_errors(true);
|
324 |
+
$this->log('schema validate');
|
325 |
+
|
326 |
+
$xml = new DOMDocument();
|
327 |
+
$xml->load($filename);
|
328 |
+
|
329 |
+
try {
|
330 |
+
|
331 |
+
if ($xml->schemaValidate($xsd)) {
|
332 |
+
$this->log('Schema validated');
|
333 |
+
} else {
|
334 |
+
|
335 |
+
$errors = Mage::helper('Antidot/XmlWriter')->getErrors();
|
336 |
+
|
337 |
+
$match = array();
|
338 |
+
if (preg_match('#Warning 1549: failed to load external entity "(.*)\.xsd"#', $errors[0], $match)) {
|
339 |
+
$errors = array();
|
340 |
+
//In case XSD is not reacheable, disable the schema validation
|
341 |
+
$this->log('failed to load external entity '.$match[1].'.xsd, schema validation is DISABLED');
|
342 |
+
$this->log('Schema validated');
|
343 |
+
}
|
344 |
+
}
|
345 |
+
|
346 |
+
} catch (Exception $e) {
|
347 |
+
$match = array();
|
348 |
+
if (preg_match(
|
349 |
+
"#Warning: DOMDocument::schemaValidate\(http://(.*)\.xsd\): failed to open stream:#",
|
350 |
+
$e->getMessage(),
|
351 |
+
$match
|
352 |
+
)) {
|
353 |
+
//In case xsd is not reacheable, disable the schema validation
|
354 |
+
$this->log('http://'.$match[1].'.xsd is not reacheable, schema validation is DISABLED');
|
355 |
+
} else {
|
356 |
+
throw $e;
|
357 |
+
}
|
358 |
+
}
|
359 |
}
|
360 |
+
return $errors;
|
361 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
}
|
363 |
|
364 |
/**
|
367 |
* @todo retrieve these data from the db
|
368 |
* @return array
|
369 |
*/
|
370 |
+
private function getDefaultContext($runContext)
|
371 |
{
|
372 |
$listStore = array();
|
373 |
foreach (Mage::app()->getStores() as $store) {
|
376 |
$listStore[$lang][$store->getId()] = $store;
|
377 |
}
|
378 |
}
|
379 |
+
$owner = 'AFS@Store for Magento v'.Mage::getConfig()->getNode()->modules->MDN_Antidot->version;
|
380 |
+
if (Mage::getStoreConfig('antidot/general/owner')) {
|
381 |
+
$owner = Mage::getStoreConfig('antidot/general/owner');
|
382 |
+
}
|
383 |
+
|
384 |
$listContext = array();
|
|
|
385 |
foreach($listStore as $lang => $stores) {
|
386 |
+
$context['website_ids'] = array();
|
387 |
+
$context['owner'] = $owner;
|
388 |
+
$context['run'] = $runContext;
|
389 |
$context['lang'] = $lang;
|
390 |
$context['stores'] = $stores;
|
391 |
foreach ($stores as $store) {
|
415 |
|
416 |
Mage::log($message, null, 'antidot.log');
|
417 |
}
|
418 |
+
|
419 |
+
/**
|
420 |
+
* MCNX-27 Return the Owner defined in the AFSStore Config Area
|
421 |
+
* formated in order tu be used in the export filename
|
422 |
+
*
|
423 |
+
* @return string
|
424 |
+
*/
|
425 |
+
private function getOwnerForFilename($owner = null) {
|
426 |
+
|
427 |
+
$filename = 'magento';
|
428 |
+
if ($owner) {
|
429 |
+
|
430 |
+
/// convert non-alphanumeric characters
|
431 |
+
// - see the rules below on the page
|
432 |
+
$owner = Mage::helper('catalog/product_url')->format($owner);
|
433 |
+
|
434 |
+
// replace remaining non-alphanumeric characters
|
435 |
+
// with dashes
|
436 |
+
$owner = preg_replace('#[^0-9a-z]+#i', '_', $owner);
|
437 |
+
|
438 |
+
// make it lowercase
|
439 |
+
$owner = strtolower($owner);
|
440 |
+
|
441 |
+
// trim dashes on the left and right
|
442 |
+
$owner = trim($owner, '_');
|
443 |
+
|
444 |
+
$filename .= '_'.$owner;
|
445 |
+
}
|
446 |
+
|
447 |
+
return $filename;
|
448 |
+
}
|
449 |
+
}
|
app/code/community/MDN/Antidot/Model/Resource/Advanced.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Resource_Advanced extends Mage_CatalogSearch_Model_Resource_Advanced
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Resource_Advanced extends Mage_CatalogSearch_Model_Resource_Advanced
|
app/code/community/MDN/Antidot/Model/Resource/Catalog/Product/Collection.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Resource_Catalog_Product_Collection extends Mage_Catalog_Model_Resource_Product_Collection
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Resource_Catalog_Product_Collection extends Mage_Catalog_Model_Resource_Product_Collection
|
app/code/community/MDN/Antidot/Model/Resource/Engine/Abstract.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
abstract class MDN_Antidot_Model_Resource_Engine_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
abstract class MDN_Antidot_Model_Resource_Engine_Abstract
|
app/code/community/MDN/Antidot/Model/Resource/Engine/Antidot.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resource_Engine_Abstract
|
@@ -163,10 +163,11 @@ class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resour
|
|
163 |
foreach ($value as $part) {
|
164 |
//explode values if facet is multi select
|
165 |
$isMultiSelect = $this->isMultiSelect($field);
|
166 |
-
if ($isMultiSelect)
|
167 |
-
$fieldCondition = array($field =>
|
168 |
-
else
|
169 |
$fieldCondition = array($field => $part);
|
|
|
170 |
break;
|
171 |
}
|
172 |
}
|
@@ -181,6 +182,24 @@ class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resour
|
|
181 |
return $result;
|
182 |
}
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
/**
|
185 |
* Return true if a facet allows multi select
|
186 |
*
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resource_Engine_Abstract
|
163 |
foreach ($value as $part) {
|
164 |
//explode values if facet is multi select
|
165 |
$isMultiSelect = $this->isMultiSelect($field);
|
166 |
+
if ($isMultiSelect) {
|
167 |
+
$fieldCondition = array($field => $this->extractMultiSelectValues($part));
|
168 |
+
} else {
|
169 |
$fieldCondition = array($field => $part);
|
170 |
+
}
|
171 |
break;
|
172 |
}
|
173 |
}
|
182 |
return $result;
|
183 |
}
|
184 |
|
185 |
+
/**
|
186 |
+
* Extract the multi select values from his raw value
|
187 |
+
*
|
188 |
+
* @param $rawValue
|
189 |
+
* @return array
|
190 |
+
*/
|
191 |
+
public function extractMultiSelectValues($rawValue)
|
192 |
+
{
|
193 |
+
/* MCNX-171 : String facet with coma were sent as two facet
|
194 |
+
* Correction : we use str_getcsv because fields are separated by , and enclosed by ", then we re-add the enclosing "
|
195 |
+
*/
|
196 |
+
$partArray = str_getcsv($rawValue);
|
197 |
+
array_walk($partArray, function(&$value, $key) {
|
198 |
+
$value='"' . $value . '"';
|
199 |
+
});
|
200 |
+
return $partArray;
|
201 |
+
}
|
202 |
+
|
203 |
/**
|
204 |
* Return true if a facet allows multi select
|
205 |
*
|
app/code/community/MDN/Antidot/Model/Search/Abstract.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Search_Abstract extends Mage_Core_Model_Abstract
|
@@ -28,12 +28,13 @@ class MDN_Antidot_Model_Search_Abstract extends Mage_Core_Model_Abstract
|
|
28 |
{
|
29 |
//set_include_path(get_include_path().':'.MAGENTO_ROOT.DS.'lib'.DS.'antidot'.DS);
|
30 |
require_once "antidot/afs_lib.php";
|
31 |
-
|
32 |
-
|
|
|
33 |
$this->afsHost = $config['host'];
|
34 |
$this->afsService = (int)$config['service'];
|
35 |
$this->afsStatus = $config['status'];
|
36 |
-
|
37 |
$this->isConfigured = true;
|
38 |
}
|
39 |
}
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Search_Abstract extends Mage_Core_Model_Abstract
|
28 |
{
|
29 |
//set_include_path(get_include_path().':'.MAGENTO_ROOT.DS.'lib'.DS.'antidot'.DS);
|
30 |
require_once "antidot/afs_lib.php";
|
31 |
+
|
32 |
+
$config = Mage::getStoreConfig('antidot/web_service');
|
33 |
+
if(isset($config['host']) && isset($config['service'])) {
|
34 |
$this->afsHost = $config['host'];
|
35 |
$this->afsService = (int)$config['service'];
|
36 |
$this->afsStatus = $config['status'];
|
37 |
+
|
38 |
$this->isConfigured = true;
|
39 |
}
|
40 |
}
|
app/code/community/MDN/Antidot/Model/Search/Search.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
|
app/code/community/MDN/Antidot/Model/Search/Suggest.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Search_Suggest extends MDN_Antidot_Model_Search_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Search_Suggest extends MDN_Antidot_Model_Search_Abstract
|
app/code/community/MDN/Antidot/Model/System/Config/ArticleAttribute.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_ArticleAttribute extends Mage_Eav_Model_Entity_Attribute_Source_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_ArticleAttribute extends Mage_Eav_Model_Entity_Attribute_Source_Abstract
|
app/code/community/MDN/Antidot/Model/System/Config/Backend/Engine.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Backend_Engine extends Mage_Core_Model_Config_Data
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Backend_Engine extends Mage_Core_Model_Config_Data
|
app/code/community/MDN/Antidot/Model/System/Config/CategoryAttribute.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_CategoryAttribute extends Mage_Eav_Model_Entity_Attribute_Source_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_CategoryAttribute extends Mage_Eav_Model_Entity_Attribute_Source_Abstract
|
app/code/community/MDN/Antidot/Model/System/Config/Dir.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Dir
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Dir
|
app/code/community/MDN/Antidot/Model/System/Config/DisableEnable.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_DisableEnable extends Mage_Adminhtml_Model_System_Config_Source_Enabledisable
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_DisableEnable extends Mage_Adminhtml_Model_System_Config_Source_Enabledisable
|
app/code/community/MDN/Antidot/Model/System/Config/Engine.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Engine
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Engine
|
app/code/community/MDN/Antidot/Model/System/Config/Facet.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Facet
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Facet
|
app/code/community/MDN/Antidot/Model/System/Config/Number.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Number
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Number
|
app/code/community/MDN/Antidot/Model/System/Config/Options.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Options
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Options
|
app/code/community/MDN/Antidot/Model/System/Config/ProductAttribute.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_ProductAttribute extends Mage_Eav_Model_Entity_Attribute_Source_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_ProductAttribute extends Mage_Eav_Model_Entity_Attribute_Source_Abstract
|
app/code/community/MDN/Antidot/Model/System/Config/PromoteRedirect.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_PromoteRedirect
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_PromoteRedirect
|
app/code/community/MDN/Antidot/Model/System/Config/Sort.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Sort
|
@@ -36,27 +36,25 @@ class MDN_Antidot_Model_System_Config_Sort
|
|
36 |
$this->initMarketingFields();
|
37 |
$options = array();
|
38 |
$options[] = array('value' => 'afs:relevance|Relevance', 'label' => Mage::helper('Antidot')->__('Relevance'));
|
39 |
-
//$options[] = array('value' => 'position|Position', 'label' => Mage::helper('Antidot')->__('Position'));
|
40 |
$options[] = array('value' => 'name|Name', 'label' => Mage::helper('Antidot')->__('Name'));
|
|
|
|
|
|
|
41 |
|
42 |
foreach($this->marketingFields as $field => $label) {
|
43 |
-
if(Mage::getStoreConfig('antidot/fields_product/'.$field)
|
44 |
$options[] = array('value' => $field.'|'.$label, 'label' => $label);
|
45 |
}
|
46 |
}
|
47 |
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
foreach(self::$options as &$option) {
|
52 |
-
if(preg_match('/^price_/', $option['value'])) {
|
53 |
-
$option['label'] = Mage::helper('Antidot')->__('Price');
|
54 |
-
$option['value'] = 'price|'.Mage::helper('Antidot')->__('Price');
|
55 |
}
|
56 |
}
|
57 |
|
|
|
58 |
}
|
59 |
-
|
60 |
return self::$options;
|
61 |
}
|
62 |
|
@@ -66,10 +64,17 @@ class MDN_Antidot_Model_System_Config_Sort
|
|
66 |
public function initMarketingFields()
|
67 |
{
|
68 |
$this->marketingFields = array(
|
69 |
-
'is_promotional' => Mage::helper('Antidot')->__('Is promotional'),
|
70 |
'is_new' => Mage::helper('Antidot')->__('Is new'),
|
71 |
'is_best_sale' => Mage::helper('Antidot')->__('Is top sale'),
|
72 |
'is_featured' => Mage::helper('Antidot')->__('Is featured'),
|
73 |
);
|
74 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
}
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Sort
|
36 |
$this->initMarketingFields();
|
37 |
$options = array();
|
38 |
$options[] = array('value' => 'afs:relevance|Relevance', 'label' => Mage::helper('Antidot')->__('Relevance'));
|
|
|
39 |
$options[] = array('value' => 'name|Name', 'label' => Mage::helper('Antidot')->__('Name'));
|
40 |
+
$options[] = array('value' => 'price|Price', 'label' => Mage::helper('Antidot')->__('Price'));
|
41 |
+
$options[] = array('value' => 'is_promotional|Is promotional', 'label' => Mage::helper('Antidot')->__('Is promotional'));
|
42 |
+
$options[] = array('value' => 'stock|Stock', 'label' => Mage::helper('Antidot')->__('Stock'));
|
43 |
|
44 |
foreach($this->marketingFields as $field => $label) {
|
45 |
+
if(Mage::getStoreConfig('antidot/fields_product/'.$field) != '') {
|
46 |
$options[] = array('value' => $field.'|'.$label, 'label' => $label);
|
47 |
}
|
48 |
}
|
49 |
|
50 |
+
foreach(Mage::getModel("Antidot/System_Config_Facet")->toOptionArray('STRING') as $facetOption) {
|
51 |
+
if(!preg_match('/^price_/', $facetOption['value'])) {
|
52 |
+
$options[] = $facetOption;
|
|
|
|
|
|
|
|
|
53 |
}
|
54 |
}
|
55 |
|
56 |
+
self::$options = $options;
|
57 |
}
|
|
|
58 |
return self::$options;
|
59 |
}
|
60 |
|
64 |
public function initMarketingFields()
|
65 |
{
|
66 |
$this->marketingFields = array(
|
|
|
67 |
'is_new' => Mage::helper('Antidot')->__('Is new'),
|
68 |
'is_best_sale' => Mage::helper('Antidot')->__('Is top sale'),
|
69 |
'is_featured' => Mage::helper('Antidot')->__('Is featured'),
|
70 |
);
|
71 |
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* flush options cache
|
75 |
+
* for unit test only !
|
76 |
+
*/
|
77 |
+
public function reinitOptions() {
|
78 |
+
self::$options = null;
|
79 |
+
}
|
80 |
}
|
app/code/community/MDN/Antidot/Model/System/Config/Suggest/Type.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Suggest_Type
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_Suggest_Type
|
app/code/community/MDN/Antidot/Model/System/Config/WSStatus.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_WSStatus
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_System_Config_WSStatus
|
app/code/community/MDN/Antidot/Model/Transport.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Transport extends Mage_Core_Model_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Transport extends Mage_Core_Model_Abstract
|
app/code/community/MDN/Antidot/Model/Transport/Abstract.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Transport_Abstract extends Mage_Core_Model_Abstract
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Transport_Abstract extends Mage_Core_Model_Abstract
|
app/code/community/MDN/Antidot/Model/Transport/File.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Transport_File extends MDN_Antidot_Model_Transport_Abstract implements MDN_Antidot_Model_Transport_Interface
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Transport_File extends MDN_Antidot_Model_Transport_Abstract implements MDN_Antidot_Model_Transport_Interface
|
app/code/community/MDN/Antidot/Model/Transport/Ftp.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Transport_Ftp extends MDN_Antidot_Model_Transport_Abstract implements MDN_Antidot_Model_Transport_Interface
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Transport_Ftp extends MDN_Antidot_Model_Transport_Abstract implements MDN_Antidot_Model_Transport_Interface
|
app/code/community/MDN/Antidot/Model/Transport/Http.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Transport_Http extends MDN_Antidot_Model_Transport_Abstract implements MDN_Antidot_Model_Transport_Interface
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Model_Transport_Http extends MDN_Antidot_Model_Transport_Abstract implements MDN_Antidot_Model_Transport_Interface
|
app/code/community/MDN/Antidot/Model/Transport/Interface.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
interface MDN_Antidot_Model_Transport_Interface
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
interface MDN_Antidot_Model_Transport_Interface
|
app/code/community/MDN/Antidot/Test/Block/System/Config/Button/AfsStore.php
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
+
*/
|
16 |
+
class MDN_Antidot_Test_Block_System_Config_Button_AfsStore extends EcomDev_PHPUnit_Test_Case
|
17 |
+
{
|
18 |
+
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
*/
|
23 |
+
public function testGetElementHtml()
|
24 |
+
{
|
25 |
+
|
26 |
+
/* @var $block MDN_Antidot_Block_System_Config_Button_AfsStore */
|
27 |
+
$block = Mage::app()->getLayout()->createBlock('Antidot/system_config_button_afsStore');
|
28 |
+
|
29 |
+
/**
|
30 |
+
* First test : session fr => button fr
|
31 |
+
*/
|
32 |
+
$mockSession = $this->getModelMock('adminhtml/session', array('getLocale'), false, array(), '', false);
|
33 |
+
//set the paramterer $callOriginalConstructor to false in order to not initialise session during unit test
|
34 |
+
$mockSession->expects($this->any())
|
35 |
+
->method('getLocale')
|
36 |
+
->will($this->returnCallBack(function(){return 'fr_FR';}));
|
37 |
+
|
38 |
+
$this->replaceByMock('singleton', 'adminhtml/session', $mockSession);
|
39 |
+
|
40 |
+
$html= MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($block, '_getElementHtml', array(new Varien_Data_Form_Element_Button()));
|
41 |
+
|
42 |
+
$expectedPattern = '#https://bo-store.afs-antidot.net/fr#';
|
43 |
+
|
44 |
+
$this->assertRegExp(
|
45 |
+
$expectedPattern,
|
46 |
+
$html
|
47 |
+
);
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Second test : session en => button en
|
51 |
+
*/
|
52 |
+
$mockSession = $this->getModelMock('adminhtml/session', array('getLocale'), false, array(), '', false);
|
53 |
+
//set the paramterer $callOriginalConstructor to false in order to not initialise session during unit test
|
54 |
+
$mockSession->expects($this->any())
|
55 |
+
->method('getLocale')
|
56 |
+
->will($this->returnCallBack(function(){return 'en_GB';}));
|
57 |
+
|
58 |
+
$this->replaceByMock('singleton', 'adminhtml/session', $mockSession);
|
59 |
+
|
60 |
+
$html= MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($block, '_getElementHtml', array(new Varien_Data_Form_Element_Button()));
|
61 |
+
|
62 |
+
$expectedPattern = '#https://bo-store.afs-antidot.net/en#';
|
63 |
+
|
64 |
+
$this->assertRegExp(
|
65 |
+
$expectedPattern,
|
66 |
+
$html
|
67 |
+
);
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Second test : session en => button en
|
71 |
+
*/
|
72 |
+
$mockSession = $this->getModelMock('adminhtml/session', array('getLocale'), false, array(), '', false);
|
73 |
+
//set the paramterer $callOriginalConstructor to false in order to not initialise session during unit test
|
74 |
+
$mockSession->expects($this->any())
|
75 |
+
->method('getLocale')
|
76 |
+
->will($this->returnCallBack(function(){return 'es_ES';}));
|
77 |
+
|
78 |
+
$this->replaceByMock('singleton', 'adminhtml/session', $mockSession);
|
79 |
+
|
80 |
+
$html= MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($block, '_getElementHtml', array(new Varien_Data_Form_Element_Button()));
|
81 |
+
|
82 |
+
$expectedPattern = '#https://bo-store.afs-antidot.net/en#';
|
83 |
+
|
84 |
+
$this->assertRegExp(
|
85 |
+
$expectedPattern,
|
86 |
+
$html
|
87 |
+
);
|
88 |
+
|
89 |
+
}
|
90 |
+
}
|
app/code/community/MDN/Antidot/Test/Model/Export/Article.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class MDN_Antidot_Test_Model_Export_Article extends EcomDev_PHPUnit_Test_Case
|
5 |
+
{
|
6 |
+
|
7 |
+
/*
|
8 |
+
* MCNX-56 add version number and run context in the feed tag
|
9 |
+
*/
|
10 |
+
public function testGetFeed() {
|
11 |
+
|
12 |
+
$export = Mage::getModel('Antidot/export_article');
|
13 |
+
|
14 |
+
$feed = $export->getFeed(array('run'=>'UI'));
|
15 |
+
|
16 |
+
$this->assertEquals(
|
17 |
+
'article UI v'.Mage::getConfig()->getNode()->modules->MDN_Antidot->version,
|
18 |
+
$feed
|
19 |
+
);
|
20 |
+
|
21 |
+
}
|
22 |
+
|
23 |
+
}
|
app/code/community/MDN/Antidot/Test/Model/Export/Category.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class MDN_Antidot_Test_Model_Export_Category extends EcomDev_PHPUnit_Test_Case
|
5 |
+
{
|
6 |
+
|
7 |
+
/*
|
8 |
+
* MCNX-56 add version number and run context in the feed tag
|
9 |
+
*/
|
10 |
+
public function testGetFeed() {
|
11 |
+
|
12 |
+
$export = Mage::getModel('Antidot/export_category');
|
13 |
+
|
14 |
+
$feed = $export->getFeed(array('run'=>'UI'));
|
15 |
+
|
16 |
+
$this->assertEquals(
|
17 |
+
'category UI v'.Mage::getConfig()->getNode()->modules->MDN_Antidot->version,
|
18 |
+
$feed
|
19 |
+
);
|
20 |
+
|
21 |
+
}
|
22 |
+
|
23 |
+
/*
|
24 |
+
* MCNX-170 don't generate file if there's no categories to export
|
25 |
+
* test the XmlWriter has not been initialised if there's no categories to export
|
26 |
+
*/
|
27 |
+
public function testEmptyFile() {
|
28 |
+
|
29 |
+
$export = Mage::getModel('Antidot/export_category');
|
30 |
+
|
31 |
+
$context = array();
|
32 |
+
$context['store_id'] = array(1);
|
33 |
+
$context['website_ids'] = array(1);
|
34 |
+
$context['stores'] = array(Mage::getModel('core/store')->load(1));
|
35 |
+
$nbItem = $export->writeXml($context, 'categories-magento_jetpulp_FULL-en.xml', MDN_Antidot_Model_Observer::GENERATE_FULL);
|
36 |
+
|
37 |
+
$this->assertEquals($nbItem, 0);
|
38 |
+
|
39 |
+
$this->assertEquals(
|
40 |
+
null,
|
41 |
+
MDN_Antidot_Test_PHPUnitUtil::getPrivateProperty($export, 'xml')
|
42 |
+
);
|
43 |
+
|
44 |
+
}
|
45 |
+
|
46 |
+
}
|
app/code/community/MDN/Antidot/Test/Model/Export/Product.php
ADDED
@@ -0,0 +1,543 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class MDN_Antidot_Test_Model_Export_Product extends EcomDev_PHPUnit_Test_Case
|
5 |
+
{
|
6 |
+
|
7 |
+
/**
|
8 |
+
* options filed used to get the values in db
|
9 |
+
*/
|
10 |
+
protected static $authorsOptions;
|
11 |
+
protected static $editorOptions;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Create needed attributes for the tests and stores his options values
|
15 |
+
*
|
16 |
+
* These are attributes created in admin UI, there are not created by magento installation
|
17 |
+
* scripts, then it can't be populated by EcomDev PHPUnit fixtures system
|
18 |
+
*
|
19 |
+
* We must recreate then on each test by setUp method
|
20 |
+
*
|
21 |
+
* Like this we can also store the id value in DB of the options of theses "dropdown-list" attributes,
|
22 |
+
* and use them in the tests.
|
23 |
+
*
|
24 |
+
*/
|
25 |
+
public static function setUpBeforeClass() {
|
26 |
+
|
27 |
+
//avoid errors when session_start is called during the test
|
28 |
+
@session_start();
|
29 |
+
|
30 |
+
$setup = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
31 |
+
$setup->startSetup();
|
32 |
+
|
33 |
+
//delete attributes in case of the precedent test had crashed
|
34 |
+
$attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'authors');
|
35 |
+
if ($attributeModel->getAttributeId()) {
|
36 |
+
self::removeProductAttribute($setup, $attributeModel);
|
37 |
+
}
|
38 |
+
|
39 |
+
$attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'editor');
|
40 |
+
if ($attributeModel->getAttributeId()) {
|
41 |
+
self::removeProductAttribute($setup, $attributeModel);
|
42 |
+
}
|
43 |
+
|
44 |
+
$attr = array(
|
45 |
+
'attribute_model' => null,
|
46 |
+
'backend' => null,
|
47 |
+
'type' => 'text',
|
48 |
+
'table' => null,
|
49 |
+
'frontend' => null,
|
50 |
+
'input' => 'multiselect',
|
51 |
+
'label' => 'Authors',
|
52 |
+
'frontend_class' => '',
|
53 |
+
'source' => 'eav/entity_attribute_source_table',
|
54 |
+
'required' => '0',
|
55 |
+
'user_defined' => '1',
|
56 |
+
'default' => null,
|
57 |
+
'unique' => '0',
|
58 |
+
'note' => '',
|
59 |
+
'input_renderer' => null,
|
60 |
+
'global' => '1',
|
61 |
+
'visible' => '1',
|
62 |
+
'searchable' => '1',
|
63 |
+
'filterable' => '0',
|
64 |
+
'comparable' => '0',
|
65 |
+
'visible_on_front' => '0',
|
66 |
+
'is_html_allowed_on_front' => '0',
|
67 |
+
'is_used_for_price_rules' => '1',
|
68 |
+
'filterable_in_search' => '0',
|
69 |
+
'used_in_product_listing' => '0',
|
70 |
+
'used_for_sort_by' => '0',
|
71 |
+
'is_configurable' => '1',
|
72 |
+
'apply_to' => 'simple,grouped,configurable',
|
73 |
+
'visible_in_advanced_search' => '1',
|
74 |
+
'position' => '1',
|
75 |
+
'wysiwyg_enabled' => '0',
|
76 |
+
'used_for_promo_rules' => '1',
|
77 |
+
'option' =>
|
78 |
+
array(
|
79 |
+
'values' =>
|
80 |
+
array(
|
81 |
+
0 => 'JK Rowling',
|
82 |
+
1 => 'Stephen King',
|
83 |
+
),
|
84 |
+
),
|
85 |
+
);
|
86 |
+
$setup->addAttribute('catalog_product','authors',$attr);
|
87 |
+
|
88 |
+
$attr = array(
|
89 |
+
'attribute_model' => null,
|
90 |
+
'backend' => null,
|
91 |
+
'type' => 'int',
|
92 |
+
'table' => null,
|
93 |
+
'frontend' => null,
|
94 |
+
'input' => 'select',
|
95 |
+
'label' => 'Editor',
|
96 |
+
'frontend_class' => '',
|
97 |
+
'source' => 'eav/entity_attribute_source_table',
|
98 |
+
'required' => '0',
|
99 |
+
'user_defined' => '1',
|
100 |
+
'default' => null,
|
101 |
+
'unique' => '0',
|
102 |
+
'note' => '',
|
103 |
+
'input_renderer' => null,
|
104 |
+
'global' => '1',
|
105 |
+
'visible' => '1',
|
106 |
+
'searchable' => '1',
|
107 |
+
'filterable' => '0',
|
108 |
+
'comparable' => '0',
|
109 |
+
'visible_on_front' => '0',
|
110 |
+
'is_html_allowed_on_front' => '0',
|
111 |
+
'is_used_for_price_rules' => '1',
|
112 |
+
'filterable_in_search' => '0',
|
113 |
+
'used_in_product_listing' => '0',
|
114 |
+
'used_for_sort_by' => '0',
|
115 |
+
'is_configurable' => '1',
|
116 |
+
'apply_to' => 'simple,grouped,configurable',
|
117 |
+
'visible_in_advanced_search' => '1',
|
118 |
+
'position' => '1',
|
119 |
+
'wysiwyg_enabled' => '0',
|
120 |
+
'used_for_promo_rules' => '1',
|
121 |
+
'option' =>
|
122 |
+
array(
|
123 |
+
'values' =>
|
124 |
+
array(
|
125 |
+
0 => 'Scholastic',
|
126 |
+
),
|
127 |
+
),
|
128 |
+
);
|
129 |
+
$setup->addAttribute('catalog_product','editor',$attr);
|
130 |
+
|
131 |
+
$setup->endSetup();
|
132 |
+
|
133 |
+
$attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'authors');
|
134 |
+
self::$authorsOptions = Mage::getResourceModel('eav/entity_attribute_option_collection')->setAttributeFilter($attributeModel->getId())->setStoreFilter($attributeModel->getStoreId());
|
135 |
+
$attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'editor');
|
136 |
+
self::$editorOptions = Mage::getResourceModel('eav/entity_attribute_option_collection')->setAttributeFilter($attributeModel->getId())->setStoreFilter($attributeModel->getStoreId());
|
137 |
+
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* gets the value in db of the option of author attribute
|
142 |
+
*/
|
143 |
+
protected function getAuthorOptionId($text) {
|
144 |
+
foreach ( self::$authorsOptions as $opt) {
|
145 |
+
if ($opt->getValue()==$text) {
|
146 |
+
return $opt->getOptionId();
|
147 |
+
}
|
148 |
+
}
|
149 |
+
return null;
|
150 |
+
}
|
151 |
+
|
152 |
+
/**
|
153 |
+
* gets the value in db of the option of editor attribute
|
154 |
+
*/
|
155 |
+
protected function getEditorOptionId($text) {
|
156 |
+
foreach ( self::$editorOptions as $opt) {
|
157 |
+
if ($opt->getValue()==$text) {
|
158 |
+
return $opt->getOptionId();
|
159 |
+
}
|
160 |
+
}
|
161 |
+
return null;
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* remove a product attribute
|
166 |
+
* @param Mage_Eav_Model_Attribute $attributeModel
|
167 |
+
*/
|
168 |
+
protected static function removeProductAttribute($setup, $attributeModel) {
|
169 |
+
|
170 |
+
$setup->removeAttribute('catalog_product',$attributeModel->getAttributeCode());
|
171 |
+
$setup->deleteTableRow('catalog/eav_attribute', 'attribute_id', $attributeModel->getAttributeId());
|
172 |
+
|
173 |
+
}
|
174 |
+
|
175 |
+
/**
|
176 |
+
* remove the created attributes and its options
|
177 |
+
*/
|
178 |
+
public static function tearDownAfterClass() {
|
179 |
+
|
180 |
+
$setup = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
181 |
+
$setup->startSetup();
|
182 |
+
|
183 |
+
$attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'authors');
|
184 |
+
self::removeProductAttribute($setup, $attributeModel);
|
185 |
+
|
186 |
+
$attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'editor');
|
187 |
+
self::removeProductAttribute($setup, $attributeModel);
|
188 |
+
|
189 |
+
$setup->endSetup();
|
190 |
+
|
191 |
+
foreach ( self::$authorsOptions as $opt) {
|
192 |
+
$opt->delete();
|
193 |
+
}
|
194 |
+
|
195 |
+
foreach ( self::$editorOptions as $opt) {
|
196 |
+
$opt->delete();
|
197 |
+
}
|
198 |
+
|
199 |
+
}
|
200 |
+
|
201 |
+
/**
|
202 |
+
* MCNX-56 add version number and run context in the feed tag
|
203 |
+
*/
|
204 |
+
public function testGetFeed() {
|
205 |
+
|
206 |
+
/** @var $export MDN_Antidot_Model_Export_Product */
|
207 |
+
$export = Mage::getModel('Antidot/export_product');
|
208 |
+
|
209 |
+
$feed = $export->getFeed(array('run'=>'UI'));
|
210 |
+
|
211 |
+
$this->assertEquals(
|
212 |
+
'catalog UI v'.Mage::getConfig()->getNode()->modules->MDN_Antidot->version,
|
213 |
+
$feed
|
214 |
+
);
|
215 |
+
|
216 |
+
}
|
217 |
+
|
218 |
+
/**
|
219 |
+
* MCNX-29 incremental product export without product
|
220 |
+
* test the XmlWriter has not been initialised if there's no product to export
|
221 |
+
*/
|
222 |
+
public function testEmptyFile() {
|
223 |
+
|
224 |
+
$export = Mage::getModel('Antidot/export_product');
|
225 |
+
|
226 |
+
$context = array();
|
227 |
+
$context['store_id'] = array(1);
|
228 |
+
$context['website_ids'] = array(1);
|
229 |
+
$nbItem = $export->writeXml($context, 'catalog-magento_jetpulp_FULL-en.xml', MDN_Antidot_Model_Observer::GENERATE_INC);
|
230 |
+
|
231 |
+
$this->assertEquals(0, $nbItem);
|
232 |
+
|
233 |
+
$this->assertEquals(
|
234 |
+
null,
|
235 |
+
MDN_Antidot_Test_PHPUnitUtil::getPrivateProperty($export, 'xml')
|
236 |
+
);
|
237 |
+
|
238 |
+
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
* MCNX-33 inconsistency in price off
|
242 |
+
*/
|
243 |
+
public function testComputePriceOff() {
|
244 |
+
|
245 |
+
/* @var $export \MDN_Antidot_Model_Export_Product */
|
246 |
+
$export = Mage::getModel('Antidot/export_product');
|
247 |
+
|
248 |
+
$off = MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export, 'computePriceOff', array(44.9, 35.92));
|
249 |
+
$this->assertEquals(20, $off);
|
250 |
+
|
251 |
+
$off = MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export, 'computePriceOff', array(44.7, 35.92));
|
252 |
+
$this->assertEquals(20, $off);
|
253 |
+
|
254 |
+
$off = MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export, 'computePriceOff', array(44.5, 35.92));
|
255 |
+
$this->assertEquals(19, $off);
|
256 |
+
|
257 |
+
}
|
258 |
+
|
259 |
+
/**
|
260 |
+
* MCNX-30 test the properties tag generation
|
261 |
+
* @test
|
262 |
+
* @loadFixture
|
263 |
+
*/
|
264 |
+
public function testWriteProperties() {
|
265 |
+
|
266 |
+
/* @var $export \MDN_Antidot_Model_Export_Product */
|
267 |
+
$export = Mage::getModel('Antidot/export_product');
|
268 |
+
|
269 |
+
$product = Mage::getModel('catalog/product')->load(1);
|
270 |
+
|
271 |
+
MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export,'initXml', array('product'));
|
272 |
+
/* @var $export \MDN_Antidot_Helper_Xml_Writer */
|
273 |
+
$xmlWriter = MDN_Antidot_Test_PHPUnitUtil::getPrivateProperty($export, 'xml');
|
274 |
+
$xmlWriter->flush();
|
275 |
+
|
276 |
+
MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export,'initFields', array('product'));
|
277 |
+
|
278 |
+
/*
|
279 |
+
* first test : we load the product without the properties attributes authors anf editor
|
280 |
+
* expected empty result in the xml writer
|
281 |
+
*/
|
282 |
+
MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export,'writeProperties', array($product));
|
283 |
+
|
284 |
+
$expected = '';
|
285 |
+
$this->assertEquals($expected, $xmlWriter->getXml());
|
286 |
+
|
287 |
+
/*
|
288 |
+
* second test : we add attribute value editor
|
289 |
+
* expected 2 property tag
|
290 |
+
*/
|
291 |
+
$xmlWriter->flush(); //empty the xmlwriter
|
292 |
+
$product->setEditor($this->getEditorOptionId('Scholastic'));
|
293 |
+
MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export,'writeProperties', array($product));
|
294 |
+
|
295 |
+
$expected = '<property name="editor" display_name="Editor" label="Scholastic" autocomplete="off" />';
|
296 |
+
$this->assertContains($expected, $xmlWriter->getXml());
|
297 |
+
|
298 |
+
/*
|
299 |
+
* third test : we add attribute values authors (multiselect)
|
300 |
+
* expected three property tag
|
301 |
+
*/
|
302 |
+
$xmlWriter->flush(); //empty the xmlwriter
|
303 |
+
$product->setAuthors($this->getAuthorOptionId('JK Rowling').','.$this->getAuthorOptionId('Stephen King'));
|
304 |
+
MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export,'writeProperties', array($product));
|
305 |
+
|
306 |
+
$expected = '<property name="authors" display_name="Authors" label="JK Rowling" autocomplete="off" />';
|
307 |
+
$expected .= '<property name="authors" display_name="Authors" label="Stephen King" autocomplete="off" />';
|
308 |
+
$expected .= '<property name="editor" display_name="Editor" label="Scholastic" autocomplete="off" />';
|
309 |
+
$this->assertContains($expected, $xmlWriter->getXml());
|
310 |
+
|
311 |
+
}
|
312 |
+
|
313 |
+
/**
|
314 |
+
* MCNX-31 : image url for multisite catalog
|
315 |
+
* @test
|
316 |
+
* @loadFixture
|
317 |
+
* @dataProvider dataProvider
|
318 |
+
*/
|
319 |
+
public function testWriteImageUrl($storeId, $expected) {
|
320 |
+
|
321 |
+
/* @var $export \MDN_Antidot_Model_Export_Product */
|
322 |
+
$export = Mage::getModel('Antidot/export_product');
|
323 |
+
|
324 |
+
Mage::app()->setCurrentStore($storeId);
|
325 |
+
$product = $this->loadProduct(1, $storeId);
|
326 |
+
|
327 |
+
MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export,'initXml', array('product'));
|
328 |
+
/* @var $export \MDN_Antidot_Helper_Xml_Writer */
|
329 |
+
$xmlWriter = MDN_Antidot_Test_PHPUnitUtil::getPrivateProperty($export, 'xml');
|
330 |
+
$xmlWriter->flush();
|
331 |
+
|
332 |
+
/*
|
333 |
+
* The writeImageUrl method is called with the product loaded in 3 different store (see dataProvider)
|
334 |
+
* expected data also in dataProvider
|
335 |
+
*/
|
336 |
+
MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export,'writeImageUrl', array($product));
|
337 |
+
|
338 |
+
$this->assertEquals($expected, $xmlWriter->getXml());
|
339 |
+
|
340 |
+
|
341 |
+
}
|
342 |
+
|
343 |
+
|
344 |
+
/**
|
345 |
+
* MCNX-146 : Multi website support : urls in acp.
|
346 |
+
* @test
|
347 |
+
* @loadFixture
|
348 |
+
* @dataProvider dataProvider
|
349 |
+
*/
|
350 |
+
public function testWriteProductUrl($storeId, $expected) {
|
351 |
+
|
352 |
+
/* @var $export \MDN_Antidot_Model_Export_Product */
|
353 |
+
$export = Mage::getModel('Antidot/export_product');
|
354 |
+
|
355 |
+
Mage::app()->setCurrentStore($storeId);
|
356 |
+
$product = $this->loadProduct(1, $storeId);
|
357 |
+
|
358 |
+
MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export,'initXml', array('product'));
|
359 |
+
/* @var $export \MDN_Antidot_Helper_Xml_Writer */
|
360 |
+
$xmlWriter = MDN_Antidot_Test_PHPUnitUtil::getPrivateProperty($export, 'xml');
|
361 |
+
$xmlWriter->flush();
|
362 |
+
|
363 |
+
/*
|
364 |
+
* The writeProductUrl method is called with the product loaded in 3 different stores (see dataProvider)
|
365 |
+
* expected data also in dataProvider
|
366 |
+
*/
|
367 |
+
MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export,'writeProductUrl', array($product));
|
368 |
+
|
369 |
+
$this->assertEquals($expected, $xmlWriter->getXml());
|
370 |
+
|
371 |
+
|
372 |
+
}
|
373 |
+
|
374 |
+
/**
|
375 |
+
*
|
376 |
+
* @param $productId
|
377 |
+
* @param $storeId
|
378 |
+
* @param bool $forceAvailabilityIndexing
|
379 |
+
* @return Mage_Catalog_Model_Product
|
380 |
+
*/
|
381 |
+
private function loadProduct($productId, $storeId, $forceAvailabilityIndexing = false) {
|
382 |
+
|
383 |
+
$product = Mage::getModel('catalog/product');
|
384 |
+
if ($storeId) {
|
385 |
+
$product->setStoreId($storeId);
|
386 |
+
}
|
387 |
+
$product->load($productId);
|
388 |
+
|
389 |
+
if ($forceAvailabilityIndexing){
|
390 |
+
/**
|
391 |
+
* HACK EcomDev : There's obviously a bug in the EcomDev Module with magento Enterprise 1.13 and 1.14
|
392 |
+
* (https://github.com/EcomDev/EcomDev_PHPUnit/issues/253 )
|
393 |
+
* The product fixture is not well indexed
|
394 |
+
* We force the stock reindexation by loading/update/saving the product
|
395 |
+
*/
|
396 |
+
if (Mage::helper('core')->isModuleEnabled('Enterprise_Catalog')) {
|
397 |
+
$stockItem = $product->getStockItem()->setQty(100)->save();
|
398 |
+
}
|
399 |
+
}
|
400 |
+
|
401 |
+
/**
|
402 |
+
* HACK EcomDev : with the product fixture, there's no data in core_url_rewrite, set request_path
|
403 |
+
* here in order to have rewrited URLs
|
404 |
+
*/
|
405 |
+
if (Mage::helper('core')->isModuleEnabled('Enterprise_Catalog')) { //compatibility with Enterprise version
|
406 |
+
$product->setData('request_path', $product->getData('url_key'));
|
407 |
+
} else {
|
408 |
+
$product->setData('request_path', $product->getData('url_key').'.html');
|
409 |
+
}
|
410 |
+
|
411 |
+
return $product;
|
412 |
+
|
413 |
+
}
|
414 |
+
/**
|
415 |
+
* Test Full file export
|
416 |
+
* @test
|
417 |
+
* @loadFixture
|
418 |
+
*/
|
419 |
+
public function testWriteXml() {
|
420 |
+
|
421 |
+
/** @var $product Mage_Catalog_Model_Product */
|
422 |
+
$product = $this->loadProduct(1, null, true);
|
423 |
+
|
424 |
+
/* @var $export \MDN_Antidot_Model_Export_Product */
|
425 |
+
$export = Mage::getModel('Antidot/export_product');
|
426 |
+
|
427 |
+
$context = array();
|
428 |
+
$context['owner'] = 'JETPULP';
|
429 |
+
$context['run'] = 'PHPUNIT';
|
430 |
+
$context['lang'] = 'fr';
|
431 |
+
|
432 |
+
$context['stores'] = array();
|
433 |
+
$context['website_ids'] = array();
|
434 |
+
//Store id 3 : site FR, id5 : site FR discount
|
435 |
+
$storeIds = array(3, 5);
|
436 |
+
foreach ($storeIds as $storeId) {
|
437 |
+
$store = Mage::getModel('core/store')->load($storeId);
|
438 |
+
$context['stores'][$storeId] = $store;
|
439 |
+
$context['website_ids'][] = $store->getWebsite()->getId();
|
440 |
+
}
|
441 |
+
$context['store_id'] = array_keys($context['stores']);
|
442 |
+
$context['langs'] = 1;
|
443 |
+
|
444 |
+
$type = MDN_Antidot_Model_Observer::GENERATE_FULL;
|
445 |
+
|
446 |
+
$filename = sys_get_temp_dir().DS.sprintf(MDN_Antidot_Model_Export_Product::FILENAME_XML, 'jetpulp', $type, $context['lang']);
|
447 |
+
|
448 |
+
$items = $export->writeXml($context, $filename, $type);
|
449 |
+
|
450 |
+
/*
|
451 |
+
* test one product is exported, number returned by the method
|
452 |
+
*/
|
453 |
+
$this->assertEquals(1, $items);
|
454 |
+
|
455 |
+
//replace generated_at by the one in the expected result
|
456 |
+
$result = file_get_contents($filename);
|
457 |
+
|
458 |
+
/**
|
459 |
+
* test the xml is valid
|
460 |
+
*
|
461 |
+
* Canceled sometimes the http://www.w3.org/2001/xml.xsd is not available and it causes errors
|
462 |
+
*
|
463 |
+
*/
|
464 |
+
// $xml = new DOMDocument();
|
465 |
+
// $xml->load($filename);
|
466 |
+
// $valid = $xml->schemaValidate(MDN_Antidot_Model_Export_Product::XSD);
|
467 |
+
// $this->assertTrue($valid);
|
468 |
+
|
469 |
+
/**
|
470 |
+
* test the xml contains the correct owner tag
|
471 |
+
*/
|
472 |
+
$this->assertContains('<owner>JETPULP</owner>', $result);
|
473 |
+
|
474 |
+
/**
|
475 |
+
* test the xml contains the correct feed tag
|
476 |
+
*/
|
477 |
+
$this->assertContains('<feed>catalog PHPUNIT v'.Mage::getConfig()->getNode()->modules->MDN_Antidot->version.'</feed>', $result);
|
478 |
+
|
479 |
+
/**
|
480 |
+
* test the xml contains the correct websites tag
|
481 |
+
*/
|
482 |
+
$this->assertContains('<websites><website id="3">French Website</website><website id="5">France Website_discount</website></websites>', $result);
|
483 |
+
|
484 |
+
/**
|
485 |
+
* test the xml contains the correct name tag
|
486 |
+
*/
|
487 |
+
$this->assertContains('<name><![CDATA[Book]]></name>', $result);
|
488 |
+
|
489 |
+
/**
|
490 |
+
* test the xml contains the variants variant fake tag
|
491 |
+
*/
|
492 |
+
$this->assertContains('<variants><variant id="fake">', $result);
|
493 |
+
|
494 |
+
/**
|
495 |
+
* test the xml contains the correct descriptions tag
|
496 |
+
*/
|
497 |
+
$this->assertContains('<descriptions><description type="short_description"><![CDATA[Book]]></description></descriptions>', $result);
|
498 |
+
|
499 |
+
/**
|
500 |
+
* test the xml contains the correct store tags
|
501 |
+
*/
|
502 |
+
$this->assertContains('<store id="3" name="France Store">', $result);
|
503 |
+
$this->assertContains('<store id="5" name="France Store Discount">', $result);
|
504 |
+
|
505 |
+
/**
|
506 |
+
* test the xml contains the price tag
|
507 |
+
*/
|
508 |
+
$this->assertContains('<prices><price currency="USD" type="PRICE_FINAL" vat_included="true" country="FR">12.99</price></prices>', $result);
|
509 |
+
|
510 |
+
/**
|
511 |
+
* test the xml contains the price tag
|
512 |
+
*/
|
513 |
+
$this->assertContains('<marketing><is_new>0</is_new><is_best_sale>0</is_best_sale><is_featured>0</is_featured><is_promotional>0</is_promotional></marketing>', $result);
|
514 |
+
|
515 |
+
/**
|
516 |
+
* test the xml contains the stock tags
|
517 |
+
*/
|
518 |
+
$this->assertContains('<stock>100</stock>', $result);
|
519 |
+
|
520 |
+
|
521 |
+
/**
|
522 |
+
* test the xml contains the correct url tags
|
523 |
+
*/
|
524 |
+
$this->assertContains('<url><![CDATA[http://www.monsiteweb.fr/catalog/product/view/id/1/s/book/]]></url>', $result);
|
525 |
+
$this->assertContains('<url><![CDATA[http://www.monsitediscount.fr/catalog/product/view/id/1/s/book/]]></url>', $result);
|
526 |
+
|
527 |
+
/**
|
528 |
+
* test the xml contains the correct images url tags
|
529 |
+
*/
|
530 |
+
$this->assertContains('<url_thumbnail><![CDATA[http://www.monsiteweb.fr/media/catalog/product/b/o/book_small.jpg]]></url_thumbnail>', $result);
|
531 |
+
$this->assertContains('<url_image><![CDATA[http://www.monsiteweb.fr/media/catalog/product/b/o/book.jpg]]>', $result);
|
532 |
+
$this->assertContains('<url_thumbnail><![CDATA[http://www.monsitediscount.fr/media/catalog/product/b/o/book_small.jpg]]></url_thumbnail>', $result);
|
533 |
+
$this->assertContains('<url_image><![CDATA[http://www.monsitediscount.fr/media/catalog/product/b/o/book.jpg]]>', $result);
|
534 |
+
|
535 |
+
/**
|
536 |
+
* test the xml contains the identifier
|
537 |
+
*/
|
538 |
+
$this->assertContains('<identifiers><identifier type="sku"><![CDATA[book]]></identifier></identifiers>', $result);
|
539 |
+
|
540 |
+
|
541 |
+
|
542 |
+
}
|
543 |
+
}
|
app/code/community/MDN/Antidot/Test/Model/Export/Product/fixtures/testWriteImageUrl.yaml
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
scope:
|
2 |
+
website: # Initialize websites
|
3 |
+
- website_id: 2
|
4 |
+
code: usa_website
|
5 |
+
name: USA Website
|
6 |
+
default_group_id: 2
|
7 |
+
- website_id: 3
|
8 |
+
code: french_website
|
9 |
+
name: French Website
|
10 |
+
default_group_id: 3
|
11 |
+
- website_id: 4
|
12 |
+
code: german_website
|
13 |
+
name: German Website
|
14 |
+
default_group_id: 4
|
15 |
+
group: # Initializes store groups
|
16 |
+
- group_id: 2
|
17 |
+
website_id: 2
|
18 |
+
name: USA Store Group
|
19 |
+
default_store_id: 2
|
20 |
+
root_category_id: 2 # Default Category
|
21 |
+
- group_id: 3
|
22 |
+
website_id: 3
|
23 |
+
name: French Store Group
|
24 |
+
default_store_id: 3
|
25 |
+
root_category_id: 2 # Default Category
|
26 |
+
- group_id: 4
|
27 |
+
website_id: 4
|
28 |
+
name: German Store Group
|
29 |
+
default_store_id: 4
|
30 |
+
root_category_id: 2 # Default Category
|
31 |
+
store: # Initializes store views
|
32 |
+
- store_id: 2
|
33 |
+
website_id: 2
|
34 |
+
group_id: 2
|
35 |
+
code: usa
|
36 |
+
name: USA Store
|
37 |
+
is_active: 1
|
38 |
+
- store_id: 3
|
39 |
+
website_id: 3
|
40 |
+
group_id: 3
|
41 |
+
code: france
|
42 |
+
name: France Store
|
43 |
+
is_active: 1
|
44 |
+
- store_id: 4
|
45 |
+
website_id: 4
|
46 |
+
group_id: 4
|
47 |
+
code: germany
|
48 |
+
name: Germany Store
|
49 |
+
is_active: 1
|
50 |
+
config:
|
51 |
+
default/antidot/fields_product/properties: a:2:{s:18:"_1426953698813_813";a:2:{s:5:"value";s:7:"authors";s:12:"autocomplete";s:1:"0";}s:18:"_1426953714346_346";a:2:{s:5:"value";s:6:"editor";s:12:"autocomplete";s:1:"0";}}
|
52 |
+
default/web/secure/base_url: http://www.mywebsite.com/
|
53 |
+
default/web/unsecure/base_url: http://www.mywebsite.com/
|
54 |
+
stores/usa/web/secure/base_url: http://www.mywebsite.com/
|
55 |
+
stores/france/web/secure/base_url: http://www.monsiteweb.fr/
|
56 |
+
stores/germany/web/secure/base_url: http://www.meinwebseite.de/
|
57 |
+
stores/usa/web/unsecure/base_url: http://www.mywebsite.com/
|
58 |
+
stores/france/web/unsecure/base_url: http://www.monsiteweb.fr/
|
59 |
+
stores/germany/web/unsecure/base_url: http://www.meinwebseite.de/
|
60 |
+
eav:
|
61 |
+
catalog_product:
|
62 |
+
- entity_id: 1
|
63 |
+
type_id: simple
|
64 |
+
attribute_set_id: 4 # Default
|
65 |
+
sku: book
|
66 |
+
name: Book
|
67 |
+
short_description: Book
|
68 |
+
description: Book
|
69 |
+
url_key: book
|
70 |
+
image: b/o/book.jpg
|
71 |
+
thumbnail: b/o/book_small.jpg
|
72 |
+
stock:
|
73 |
+
qty: 100.00
|
74 |
+
is_in_stock: 1
|
75 |
+
website_ids:
|
76 |
+
- usa_website
|
77 |
+
- french_website
|
78 |
+
- german_website
|
79 |
+
category_ids:
|
80 |
+
- 2 # Default Category
|
81 |
+
price: 12.99
|
82 |
+
tax_class_id: 2 # Taxable Goods
|
83 |
+
status: 1 # Enabled
|
84 |
+
visibility: 4 # Visible in Catalog & Search
|
85 |
+
/websites: # Set different prices per website
|
86 |
+
usa_website:
|
87 |
+
special_price: 9.99
|
88 |
+
german_website:
|
89 |
+
price: 9.99
|
90 |
+
special_price: 5.99
|
app/code/community/MDN/Antidot/Test/Model/Export/Product/fixtures/testWriteProductUrl.yaml
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
scope:
|
2 |
+
website: # Initialize websites
|
3 |
+
- website_id: 2
|
4 |
+
code: usa_website
|
5 |
+
name: USA Website
|
6 |
+
default_group_id: 2
|
7 |
+
- website_id: 3
|
8 |
+
code: french_website
|
9 |
+
name: French Website
|
10 |
+
default_group_id: 3
|
11 |
+
- website_id: 4
|
12 |
+
code: german_website
|
13 |
+
name: German Website
|
14 |
+
default_group_id: 4
|
15 |
+
group: # Initializes store groups
|
16 |
+
- group_id: 2
|
17 |
+
website_id: 2
|
18 |
+
name: USA Store Group
|
19 |
+
default_store_id: 2
|
20 |
+
root_category_id: 2 # Default Category
|
21 |
+
- group_id: 3
|
22 |
+
website_id: 3
|
23 |
+
name: French Store Group
|
24 |
+
default_store_id: 3
|
25 |
+
root_category_id: 2 # Default Category
|
26 |
+
- group_id: 4
|
27 |
+
website_id: 4
|
28 |
+
name: German Store Group
|
29 |
+
default_store_id: 4
|
30 |
+
root_category_id: 2 # Default Category
|
31 |
+
store: # Initializes store views
|
32 |
+
- store_id: 2
|
33 |
+
website_id: 2
|
34 |
+
group_id: 2
|
35 |
+
code: usa
|
36 |
+
name: USA Store
|
37 |
+
is_active: 1
|
38 |
+
- store_id: 3
|
39 |
+
website_id: 3
|
40 |
+
group_id: 3
|
41 |
+
code: france
|
42 |
+
name: France Store
|
43 |
+
is_active: 1
|
44 |
+
- store_id: 4
|
45 |
+
website_id: 4
|
46 |
+
group_id: 4
|
47 |
+
code: germany
|
48 |
+
name: Germany Store
|
49 |
+
is_active: 1
|
50 |
+
config:
|
51 |
+
default/antidot/fields_product/properties: a:2:{s:18:"_1426953698813_813";a:2:{s:5:"value";s:7:"authors";s:12:"autocomplete";s:1:"0";}s:18:"_1426953714346_346";a:2:{s:5:"value";s:6:"editor";s:12:"autocomplete";s:1:"0";}}
|
52 |
+
default/web/secure/base_url: http://www.mywebsite.com/
|
53 |
+
default/web/unsecure/base_url: http://www.mywebsite.com/
|
54 |
+
stores/usa/web/secure/base_url: http://www.mywebsite.com/
|
55 |
+
stores/france/web/secure/base_url: http://www.monsiteweb.fr/
|
56 |
+
stores/germany/web/secure/base_url: http://www.meinwebseite.de/
|
57 |
+
stores/usa/web/unsecure/base_url: http://www.mywebsite.com/
|
58 |
+
stores/france/web/unsecure/base_url: http://www.monsiteweb.fr/
|
59 |
+
stores/germany/web/unsecure/base_url: http://www.meinwebseite.de/
|
60 |
+
eav:
|
61 |
+
catalog_product:
|
62 |
+
- entity_id: 1
|
63 |
+
type_id: simple
|
64 |
+
attribute_set_id: 4 # Default
|
65 |
+
sku: book
|
66 |
+
name: Book
|
67 |
+
short_description: Book
|
68 |
+
description: Book
|
69 |
+
url_key: book
|
70 |
+
image: b/o/book.jpg
|
71 |
+
thumbnail: b/o/book_small.jpg
|
72 |
+
stock:
|
73 |
+
qty: 100.00
|
74 |
+
is_in_stock: 1
|
75 |
+
website_ids:
|
76 |
+
- usa_website
|
77 |
+
- french_website
|
78 |
+
- german_website
|
79 |
+
category_ids:
|
80 |
+
- 2 # Default Category
|
81 |
+
price: 12.99
|
82 |
+
tax_class_id: 2 # Taxable Goods
|
83 |
+
status: 1 # Enabled
|
84 |
+
visibility: 4 # Visible in Catalog & Search
|
85 |
+
/websites: # Set different prices per website
|
86 |
+
usa_website:
|
87 |
+
special_price: 9.99
|
88 |
+
german_website:
|
89 |
+
price: 9.99
|
90 |
+
special_price: 5.99
|
app/code/community/MDN/Antidot/Test/Model/Export/Product/fixtures/testWriteProperties.yaml
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
scope:
|
2 |
+
website: # Initialize websites
|
3 |
+
- website_id: 2
|
4 |
+
code: usa_website
|
5 |
+
name: USA Website
|
6 |
+
default_group_id: 2
|
7 |
+
- website_id: 3
|
8 |
+
code: french_website
|
9 |
+
name: French Website
|
10 |
+
default_group_id: 3
|
11 |
+
- website_id: 4
|
12 |
+
code: german_website
|
13 |
+
name: German Website
|
14 |
+
default_group_id: 4
|
15 |
+
group: # Initializes store groups
|
16 |
+
- group_id: 2
|
17 |
+
website_id: 2
|
18 |
+
name: USA Store Group
|
19 |
+
default_store_id: 2
|
20 |
+
root_category_id: 2 # Default Category
|
21 |
+
- group_id: 3
|
22 |
+
website_id: 3
|
23 |
+
name: French Store Group
|
24 |
+
default_store_id: 3
|
25 |
+
root_category_id: 2 # Default Category
|
26 |
+
- group_id: 4
|
27 |
+
website_id: 4
|
28 |
+
name: German Store Group
|
29 |
+
default_store_id: 4
|
30 |
+
root_category_id: 2 # Default Category
|
31 |
+
store: # Initializes store views
|
32 |
+
- store_id: 2
|
33 |
+
website_id: 2
|
34 |
+
group_id: 2
|
35 |
+
code: usa
|
36 |
+
name: USA Store
|
37 |
+
is_active: 1
|
38 |
+
- store_id: 3
|
39 |
+
website_id: 3
|
40 |
+
group_id: 3
|
41 |
+
code: france
|
42 |
+
name: France Store
|
43 |
+
is_active: 1
|
44 |
+
- store_id: 4
|
45 |
+
website_id: 4
|
46 |
+
group_id: 4
|
47 |
+
code: germany
|
48 |
+
name: Germany Store
|
49 |
+
is_active: 1
|
50 |
+
config:
|
51 |
+
default/antidot/fields_product/properties: a:2:{s:18:"_1426953698813_813";a:2:{s:5:"value";s:7:"authors";s:12:"autocomplete";s:1:"0";}s:18:"_1426953714346_346";a:2:{s:5:"value";s:6:"editor";s:12:"autocomplete";s:1:"0";}}
|
52 |
+
eav:
|
53 |
+
catalog_product:
|
54 |
+
- entity_id: 1
|
55 |
+
type_id: simple
|
56 |
+
attribute_set_id: 4 # Default
|
57 |
+
sku: book
|
58 |
+
name: Book
|
59 |
+
short_description: Book
|
60 |
+
description: Book
|
61 |
+
url_key: book
|
62 |
+
stock:
|
63 |
+
qty: 100.00
|
64 |
+
is_in_stock: 1
|
65 |
+
website_ids:
|
66 |
+
- usa_website
|
67 |
+
- french_website
|
68 |
+
- german_website
|
69 |
+
category_ids:
|
70 |
+
- 2 # Default Category
|
71 |
+
price: 12.99
|
72 |
+
tax_class_id: 2 # Taxable Goods
|
73 |
+
status: 1 # Enabled
|
74 |
+
visibility: 4 # Visible in Catalog & Search
|
75 |
+
/websites: # Set different prices per website
|
76 |
+
usa_website:
|
77 |
+
special_price: 9.99
|
78 |
+
german_website:
|
79 |
+
price: 9.99
|
80 |
+
special_price: 5.99
|
app/code/community/MDN/Antidot/Test/Model/Export/Product/fixtures/testWriteXml.yaml
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
scope:
|
2 |
+
website: # Initialize websites
|
3 |
+
- website_id: 2
|
4 |
+
code: usa_website
|
5 |
+
name: USA Website
|
6 |
+
default_group_id: 2
|
7 |
+
- website_id: 3
|
8 |
+
code: french_website
|
9 |
+
name: French Website
|
10 |
+
default_group_id: 3
|
11 |
+
- website_id: 4
|
12 |
+
code: german_website
|
13 |
+
name: German Website
|
14 |
+
default_group_id: 4
|
15 |
+
- website_id: 5
|
16 |
+
code: french_website_discount
|
17 |
+
name: France Website_discount
|
18 |
+
default_group_id: 5
|
19 |
+
group: # Initializes store groups
|
20 |
+
- group_id: 2
|
21 |
+
website_id: 2
|
22 |
+
name: USA Store Group
|
23 |
+
default_store_id: 2
|
24 |
+
root_category_id: 2 # Default Category
|
25 |
+
- group_id: 3
|
26 |
+
website_id: 3
|
27 |
+
name: French Store Group
|
28 |
+
default_store_id: 3
|
29 |
+
root_category_id: 2 # Default Category
|
30 |
+
- group_id: 4
|
31 |
+
website_id: 4
|
32 |
+
name: German Store Group
|
33 |
+
default_store_id: 4
|
34 |
+
root_category_id: 2 # Default Category
|
35 |
+
- group_id: 5
|
36 |
+
website_id: 5
|
37 |
+
name: French Store Group Discount
|
38 |
+
default_store_id: 5
|
39 |
+
root_category_id: 2 # Default Category
|
40 |
+
store: # Initializes store views
|
41 |
+
- store_id: 2
|
42 |
+
website_id: 2
|
43 |
+
group_id: 2
|
44 |
+
code: usa
|
45 |
+
name: USA Store
|
46 |
+
is_active: 1
|
47 |
+
- store_id: 3
|
48 |
+
website_id: 3
|
49 |
+
group_id: 3
|
50 |
+
code: france
|
51 |
+
name: France Store
|
52 |
+
is_active: 1
|
53 |
+
- store_id: 4
|
54 |
+
website_id: 4
|
55 |
+
group_id: 4
|
56 |
+
code: germany
|
57 |
+
name: Germany Store
|
58 |
+
is_active: 1
|
59 |
+
- store_id: 5
|
60 |
+
website_id: 5
|
61 |
+
group_id: 5
|
62 |
+
code: france_discount
|
63 |
+
name: France Store Discount
|
64 |
+
is_active: 1
|
65 |
+
|
66 |
+
config:
|
67 |
+
default/antidot/fields_product/model:
|
68 |
+
default/antidot/fields_product/gender:
|
69 |
+
default/antidot/fields_product/properties: a:2:{s:18:"_1426953698813_813";a:2:{s:5:"value";s:7:"authors";s:12:"autocomplete";s:1:"0";}s:18:"_1426953714346_346";a:2:{s:5:"value";s:6:"editor";s:12:"autocomplete";s:1:"0";}}
|
70 |
+
default/web/secure/base_url: http://www.mywebsite.com/
|
71 |
+
default/web/unsecure/base_url: http://www.mywebsite.com/
|
72 |
+
default/general/locale/code: zz
|
73 |
+
stores/usa/web/secure/base_url: http://www.mywebsite.com/
|
74 |
+
stores/usa/web/unsecure/base_url: http://www.mywebsite.com/
|
75 |
+
stores/usa/general/locale/code: en
|
76 |
+
stores/france/web/secure/base_url: http://www.monsiteweb.fr/
|
77 |
+
stores/france/web/unsecure/base_url: http://www.monsiteweb.fr/
|
78 |
+
stores/france/general/locale/code: fr
|
79 |
+
stores/germany/web/secure/base_url: http://www.meinwebseite.de/
|
80 |
+
stores/germany/web/unsecure/base_url: http://www.meinwebseite.de/
|
81 |
+
stores/germany/general/locale/code: de
|
82 |
+
stores/france_discount/web/secure/base_url: http://www.monsitediscount.fr/
|
83 |
+
stores/france_discount/web/unsecure/base_url: http://www.monsitediscount.fr/
|
84 |
+
stores/france_discount/general/locale/code: fr
|
85 |
+
eav:
|
86 |
+
catalog_product:
|
87 |
+
- entity_id: 1
|
88 |
+
type_id: simple
|
89 |
+
attribute_set_id: 4 # Default
|
90 |
+
sku: book
|
91 |
+
name: Book
|
92 |
+
short_description: Book
|
93 |
+
description: Book
|
94 |
+
url_key: book
|
95 |
+
image: b/o/book.jpg
|
96 |
+
thumbnail: b/o/book_small.jpg
|
97 |
+
stock:
|
98 |
+
qty: 100.00
|
99 |
+
is_in_stock: 1
|
100 |
+
website_ids:
|
101 |
+
- usa_website
|
102 |
+
- french_website
|
103 |
+
- german_website
|
104 |
+
- french_website_discount
|
105 |
+
category_ids:
|
106 |
+
- 2 # Default Category
|
107 |
+
price: 12.99
|
108 |
+
tax_class_id: 2 # Taxable Goods
|
109 |
+
status: 1 # Enabled
|
110 |
+
visibility: 4 # Visible in Catalog & Search
|
111 |
+
/websites: # Set different prices per website
|
112 |
+
usa_website:
|
113 |
+
special_price: 9.99
|
114 |
+
german_website:
|
115 |
+
price: 9.99
|
116 |
+
special_price: 5.99
|
app/code/community/MDN/Antidot/Test/Model/Export/Product/providers/testWriteImageUrl.yaml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
-
|
2 |
+
- 2
|
3 |
+
- <url_thumbnail><![CDATA[http://www.mywebsite.com/media/catalog/product/b/o/book_small.jpg]]></url_thumbnail><url_image><![CDATA[http://www.mywebsite.com/media/catalog/product/b/o/book.jpg]]></url_image>
|
4 |
+
-
|
5 |
+
- 3
|
6 |
+
- <url_thumbnail><![CDATA[http://www.monsiteweb.fr/media/catalog/product/b/o/book_small.jpg]]></url_thumbnail><url_image><![CDATA[http://www.monsiteweb.fr/media/catalog/product/b/o/book.jpg]]></url_image>
|
7 |
+
-
|
8 |
+
- 4
|
9 |
+
- <url_thumbnail><![CDATA[http://www.meinwebseite.de/media/catalog/product/b/o/book_small.jpg]]></url_thumbnail><url_image><![CDATA[http://www.meinwebseite.de/media/catalog/product/b/o/book.jpg]]></url_image>
|
app/code/community/MDN/Antidot/Test/Model/Export/Product/providers/testWriteProductUrl.yaml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
-
|
2 |
+
- 2
|
3 |
+
- <url><![CDATA[http://www.mywebsite.com/book.html]]></url>
|
4 |
+
-
|
5 |
+
- 3
|
6 |
+
- <url><![CDATA[http://www.monsiteweb.fr/book.html]]></url>
|
7 |
+
-
|
8 |
+
- 4
|
9 |
+
- <url><![CDATA[http://www.meinwebseite.de/book.html]]></url>
|
app/code/community/MDN/Antidot/Test/Model/Observer.php
ADDED
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class MDN_Antidot_Test_Model_Observer extends EcomDev_PHPUnit_Test_Case
|
5 |
+
{
|
6 |
+
|
7 |
+
/**
|
8 |
+
* MCNX-27 : Test owner for filename generation
|
9 |
+
*
|
10 |
+
* @test
|
11 |
+
* @dataProvider dataProvider
|
12 |
+
*/
|
13 |
+
public function testGetOwnerForFilename($owner, $expected) {
|
14 |
+
|
15 |
+
/** @var $observer MDN_Antidot_Model_Observer */
|
16 |
+
$observer = Mage::getModel('Antidot/observer');
|
17 |
+
|
18 |
+
$value= MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($observer, 'getOwnerForFilename', array($owner));
|
19 |
+
|
20 |
+
$this->assertEquals(
|
21 |
+
$expected,
|
22 |
+
$value
|
23 |
+
);
|
24 |
+
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* MCNX-169 : memory limit
|
29 |
+
* @test
|
30 |
+
*/
|
31 |
+
public function testMemoryLimit() {
|
32 |
+
|
33 |
+
/* store the default limit */
|
34 |
+
$initalLimit = ini_get('memory_limit');
|
35 |
+
|
36 |
+
|
37 |
+
/**
|
38 |
+
* First test : if the memory limit is under 2048M
|
39 |
+
* we force it to 2048M
|
40 |
+
*/
|
41 |
+
ini_set('memory_limit', '1024M');
|
42 |
+
/** @var $observer MDN_Antidot_Model_Observer */
|
43 |
+
$observer = Mage::getModel('Antidot/observer');
|
44 |
+
|
45 |
+
$this->assertEquals(
|
46 |
+
'2048M',
|
47 |
+
ini_get('memory_limit')
|
48 |
+
);
|
49 |
+
|
50 |
+
/**
|
51 |
+
* First test : if the memory limit is above 2048M
|
52 |
+
* we let it as it is
|
53 |
+
*/
|
54 |
+
ini_set('memory_limit', '4096M');
|
55 |
+
$observer = Mage::getModel('Antidot/observer');
|
56 |
+
|
57 |
+
$this->assertEquals(
|
58 |
+
'4096M',
|
59 |
+
ini_get('memory_limit')
|
60 |
+
);
|
61 |
+
|
62 |
+
/* restore the default limit */
|
63 |
+
ini_set('memory_limit', $initalLimit);
|
64 |
+
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* MCNX-2O5 : Test getDefaultContext method return the correct websites Ids
|
69 |
+
* (used in Export collection)
|
70 |
+
*
|
71 |
+
* @test
|
72 |
+
* @loadFixture
|
73 |
+
*/
|
74 |
+
public function testGetDefaultContext() {
|
75 |
+
|
76 |
+
//inactive default store id=1 which is not in the fixtures but created by magento on install
|
77 |
+
$defaultStore = Mage::getModel('core/store')->load(1);
|
78 |
+
if ($defaultStore->getId()) {
|
79 |
+
$defaultStore->setIsActive(0);
|
80 |
+
$defaultStore->save();
|
81 |
+
}
|
82 |
+
Mage::app()->reinitStores();
|
83 |
+
|
84 |
+
/** @var $observer MDN_Antidot_Model_Observer */
|
85 |
+
$observer = Mage::getModel('Antidot/observer');
|
86 |
+
|
87 |
+
$listContext= MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($observer, 'getDefaultContext', array('phpunit'));
|
88 |
+
|
89 |
+
$this->assertEquals(
|
90 |
+
2,
|
91 |
+
count($listContext[0]['stores'])
|
92 |
+
);
|
93 |
+
unset($listContext[0]['stores']);
|
94 |
+
|
95 |
+
$this->assertEquals(
|
96 |
+
1,
|
97 |
+
count($listContext[1]['stores'])
|
98 |
+
);
|
99 |
+
unset($listContext[1]['stores']);
|
100 |
+
|
101 |
+
$expected = array();
|
102 |
+
$expected[] = array (
|
103 |
+
'website_ids' => array ('3', '5'),
|
104 |
+
'owner' => 'JETPULP',
|
105 |
+
'run' => 'phpunit',
|
106 |
+
'lang' => 'fr',
|
107 |
+
'langs' => 2
|
108 |
+
);
|
109 |
+
$expected[] = array (
|
110 |
+
'website_ids' => array ('2'),
|
111 |
+
'owner' => 'JETPULP',
|
112 |
+
'run' => 'phpunit',
|
113 |
+
'lang' => 'en',
|
114 |
+
'langs' => 2
|
115 |
+
);
|
116 |
+
|
117 |
+
$this->assertEquals(
|
118 |
+
$expected,
|
119 |
+
$listContext
|
120 |
+
);
|
121 |
+
|
122 |
+
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
* MCNX-218 XSD not available mustn't generate a error of validation
|
126 |
+
*
|
127 |
+
*/
|
128 |
+
function testSchemaValidate() {
|
129 |
+
|
130 |
+
/** @var $observer MDN_Antidot_Model_Observer */
|
131 |
+
$observer = Mage::getModel('Antidot/observer');
|
132 |
+
|
133 |
+
$filename = tempnam(sys_get_temp_dir(), 'testSchemaValidate');
|
134 |
+
file_put_contents($filename, '<?xml version="1.0" encoding="utf-8"?><test></test>');
|
135 |
+
|
136 |
+
$errors= MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($observer, 'schemaValidate', array($filename, 'http://ref.antidot.net/store/latest/notexist-catalog.xsd'));
|
137 |
+
$this->assertEquals(
|
138 |
+
array(),
|
139 |
+
$errors
|
140 |
+
);
|
141 |
+
|
142 |
+
unlink($filename);
|
143 |
+
}
|
144 |
+
}
|
app/code/community/MDN/Antidot/Test/Model/Observer/fixtures/testGetDefaultContext.yaml
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
scope:
|
2 |
+
website: # Initialize websites
|
3 |
+
- website_id: 2
|
4 |
+
code: usa_website
|
5 |
+
name: USA Website
|
6 |
+
default_group_id: 2
|
7 |
+
- website_id: 3
|
8 |
+
code: french_website
|
9 |
+
name: French Website
|
10 |
+
default_group_id: 3
|
11 |
+
- website_id: 4
|
12 |
+
code: german_website
|
13 |
+
name: German Website
|
14 |
+
default_group_id: 4
|
15 |
+
- website_id: 5
|
16 |
+
code: french_website_discount
|
17 |
+
name: France Website_discount
|
18 |
+
default_group_id: 5
|
19 |
+
group: # Initializes store groups
|
20 |
+
- group_id: 2
|
21 |
+
website_id: 2
|
22 |
+
name: USA Store Group
|
23 |
+
default_store_id: 2
|
24 |
+
root_category_id: 2 # Default Category
|
25 |
+
- group_id: 3
|
26 |
+
website_id: 3
|
27 |
+
name: French Store Group
|
28 |
+
default_store_id: 3
|
29 |
+
root_category_id: 2 # Default Category
|
30 |
+
- group_id: 4
|
31 |
+
website_id: 4
|
32 |
+
name: German Store Group
|
33 |
+
default_store_id: 4
|
34 |
+
root_category_id: 2 # Default Category
|
35 |
+
- group_id: 5
|
36 |
+
website_id: 5
|
37 |
+
name: French Store Group Discount
|
38 |
+
default_store_id: 5
|
39 |
+
root_category_id: 2 # Default Category
|
40 |
+
store: # Initializes store views
|
41 |
+
- store_id: 2
|
42 |
+
website_id: 2
|
43 |
+
group_id: 2
|
44 |
+
code: usa
|
45 |
+
name: USA Store
|
46 |
+
is_active: 1
|
47 |
+
- store_id: 3
|
48 |
+
website_id: 3
|
49 |
+
group_id: 3
|
50 |
+
code: france
|
51 |
+
name: France Store
|
52 |
+
is_active: 1
|
53 |
+
- store_id: 4
|
54 |
+
website_id: 4
|
55 |
+
group_id: 4
|
56 |
+
code: germany
|
57 |
+
name: Germany Store
|
58 |
+
is_active: 0
|
59 |
+
- store_id: 5
|
60 |
+
website_id: 5
|
61 |
+
group_id: 5
|
62 |
+
code: france_discount
|
63 |
+
name: France Store Discount
|
64 |
+
is_active: 1
|
65 |
+
|
66 |
+
config:
|
67 |
+
default/antidot/general/owner: JETPULP
|
68 |
+
default/antidot/fields_product/model:
|
69 |
+
default/antidot/fields_product/gender:
|
70 |
+
default/antidot/fields_product/properties: a:2:{s:18:"_1426953698813_813";a:2:{s:5:"value";s:7:"authors";s:12:"autocomplete";s:1:"0";}s:18:"_1426953714346_346";a:2:{s:5:"value";s:6:"editor";s:12:"autocomplete";s:1:"0";}}
|
71 |
+
default/web/secure/base_url: http://www.mywebsite.com/
|
72 |
+
default/web/unsecure/base_url: http://www.mywebsite.com/
|
73 |
+
default/general/locale/code: zz
|
74 |
+
stores/usa/web/secure/base_url: http://www.mywebsite.com/
|
75 |
+
stores/usa/web/unsecure/base_url: http://www.mywebsite.com/
|
76 |
+
stores/usa/general/locale/code: en
|
77 |
+
stores/france/web/secure/base_url: http://www.monsiteweb.fr/
|
78 |
+
stores/france/web/unsecure/base_url: http://www.monsiteweb.fr/
|
79 |
+
stores/france/general/locale/code: fr
|
80 |
+
stores/germany/web/secure/base_url: http://www.meinwebseite.de/
|
81 |
+
stores/germany/web/unsecure/base_url: http://www.meinwebseite.de/
|
82 |
+
stores/germany/general/locale/code: de
|
83 |
+
stores/france_discount/web/secure/base_url: http://www.monsitediscount.fr/
|
84 |
+
stores/france_discount/web/unsecure/base_url: http://www.monsitediscount.fr/
|
85 |
+
stores/france_discount/general/locale/code: fr
|
app/code/community/MDN/Antidot/Test/Model/Observer/providers/testGetOwnerForFilename.yaml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
-
|
2 |
+
-
|
3 |
+
- magento
|
4 |
+
-
|
5 |
+
- JETPULP
|
6 |
+
- magento_jetpulp
|
7 |
+
-
|
8 |
+
- MON entreprise!@%
|
9 |
+
- magento_mon_entreprise_at
|
app/code/community/MDN/Antidot/Test/Model/Resource/Engine/Antidot.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class MDN_Antidot_Test_Model_Resource_Engine_Antidot extends EcomDev_PHPUnit_Test_Case
|
5 |
+
{
|
6 |
+
|
7 |
+
/**
|
8 |
+
* MCNX-171 Test extraction of the raw value of multiselect facet into array of values
|
9 |
+
*
|
10 |
+
* @test
|
11 |
+
*/
|
12 |
+
public function testExtractMultiSelectValues() {
|
13 |
+
|
14 |
+
/** @var $antidotEngine MDN_Antidot_Model_Resource_Engine_Antidot */
|
15 |
+
$antidotEngine = Mage::getResourceSingleton('Antidot/engine_antidot');
|
16 |
+
|
17 |
+
/**
|
18 |
+
* test if no value is well extracted
|
19 |
+
*/
|
20 |
+
$array = $antidotEngine->extractMultiSelectValues('');
|
21 |
+
$this->assertEquals($array, array('""'));
|
22 |
+
|
23 |
+
/**
|
24 |
+
* test if empty value is well extracted
|
25 |
+
*/
|
26 |
+
$array = $antidotEngine->extractMultiSelectValues('""');
|
27 |
+
$this->assertEquals($array, array('""'));
|
28 |
+
|
29 |
+
/**
|
30 |
+
* test if multi-value is well extracted
|
31 |
+
*/
|
32 |
+
$array = $antidotEngine->extractMultiSelectValues('"Pommes","Poires","Pêches"');
|
33 |
+
$this->assertEquals($array, array('"Pommes"','"Poires"','"Pêches"'));
|
34 |
+
|
35 |
+
/**
|
36 |
+
* test if a mono-value with coma is well extracted
|
37 |
+
*/
|
38 |
+
$array = $antidotEngine->extractMultiSelectValues('"Pommes,Poires,Pêches"');
|
39 |
+
$this->assertEquals($array, array('"Pommes,Poires,Pêches"'));
|
40 |
+
|
41 |
+
}
|
42 |
+
}
|
app/code/community/MDN/Antidot/Test/Model/System/Config/Sort.php
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class MDN_Antidot_Test_Model_System_Config_Sort extends EcomDev_PHPUnit_Test_Case
|
5 |
+
{
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Test toOptionArray method
|
9 |
+
* case 1
|
10 |
+
*
|
11 |
+
* @loadFixture
|
12 |
+
* @loadExpectation testToOptionArray.yaml
|
13 |
+
* @test
|
14 |
+
*/
|
15 |
+
public function testToOptionArray1()
|
16 |
+
{
|
17 |
+
$expected = $this->expected("1-1")->getOptions();
|
18 |
+
$this->toOptionArray($expected);
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Test toOptionArray method
|
23 |
+
* case 2
|
24 |
+
*
|
25 |
+
* @loadFixture
|
26 |
+
* @loadExpectation testToOptionArray.yaml
|
27 |
+
* @test
|
28 |
+
*/
|
29 |
+
public function testToOptionArray2()
|
30 |
+
{
|
31 |
+
$expected = $this->expected("1-2")->getOptions();
|
32 |
+
$this->toOptionArray($expected);
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Test toOptionArray method
|
37 |
+
* case 3
|
38 |
+
*
|
39 |
+
* @loadFixture
|
40 |
+
* @loadExpectation testToOptionArray.yaml
|
41 |
+
* @test
|
42 |
+
*/
|
43 |
+
public function testToOptionArray3()
|
44 |
+
{
|
45 |
+
$expected = $this->expected("1-3")->getOptions();
|
46 |
+
$this->toOptionArray($expected);
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Test toOptionArray method
|
51 |
+
*
|
52 |
+
* MCNX-28 : add stock, price and promotion as "static" option
|
53 |
+
*/
|
54 |
+
private function toOptionArray(array $expected)
|
55 |
+
{
|
56 |
+
|
57 |
+
/** @var $configSort MDN_Antidot_Model_System_Config_Sort */
|
58 |
+
$configSort = Mage::getModel('Antidot/system_config_sort');
|
59 |
+
$configSort->reinitOptions();
|
60 |
+
|
61 |
+
$value= $configSort->toOptionArray();
|
62 |
+
|
63 |
+
$this->assertEquals(
|
64 |
+
$expected,
|
65 |
+
$value
|
66 |
+
);
|
67 |
+
}
|
68 |
+
}
|
app/code/community/MDN/Antidot/Test/Model/System/Config/Sort/expectations/testToOptionArray.yaml
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
1-1:
|
2 |
+
options:
|
3 |
+
- value: afs:relevance|Relevance
|
4 |
+
label: Relevance
|
5 |
+
- value: name|Name
|
6 |
+
label: Name
|
7 |
+
- value: price|Price
|
8 |
+
label: Price
|
9 |
+
- value: is_promotional|Is promotional
|
10 |
+
label: Is promotional
|
11 |
+
- value: stock|Stock
|
12 |
+
label: Stock
|
13 |
+
1-2:
|
14 |
+
options:
|
15 |
+
- value: afs:relevance|Relevance
|
16 |
+
label: Relevance
|
17 |
+
- value: name|Name
|
18 |
+
label: Name
|
19 |
+
- value: price|Price
|
20 |
+
label: Price
|
21 |
+
- value: is_promotional|Is promotional
|
22 |
+
label: Is promotional
|
23 |
+
- value: stock|Stock
|
24 |
+
label: Stock
|
25 |
+
- value: is_best_sale|Is top sale
|
26 |
+
label: Is top sale
|
27 |
+
1-3:
|
28 |
+
options:
|
29 |
+
- value: afs:relevance|Relevance
|
30 |
+
label: Relevance
|
31 |
+
- value: name|Name
|
32 |
+
label: Name
|
33 |
+
- value: price|Price
|
34 |
+
label: Price
|
35 |
+
- value: is_promotional|Is promotional
|
36 |
+
label: Is promotional
|
37 |
+
- value: stock|Stock
|
38 |
+
label: Stock
|
39 |
+
- value: is_new|Is new
|
40 |
+
label: Is new
|
41 |
+
- value: is_best_sale|Is top sale
|
42 |
+
label: Is top sale
|
43 |
+
- value: is_featured|Is featured
|
44 |
+
label: Is featured
|
app/code/community/MDN/Antidot/Test/Model/System/Config/Sort/fixtures/testToOptionArray1.yaml
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
config:
|
2 |
+
default/antidot/fields_product/is_new: null
|
3 |
+
default/antidot/fields_product/is_best_sale: null
|
4 |
+
default/antidot/fields_product/is_featured: null
|
app/code/community/MDN/Antidot/Test/Model/System/Config/Sort/fixtures/testToOptionArray2.yaml
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
config:
|
2 |
+
default/antidot/fields_product/is_new: null
|
3 |
+
default/antidot/fields_product/is_best_sale: best
|
4 |
+
default/antidot/fields_product/is_featured: null
|
app/code/community/MDN/Antidot/Test/Model/System/Config/Sort/fixtures/testToOptionArray3.yaml
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
config:
|
2 |
+
default/antidot/fields_product/is_new: new
|
3 |
+
default/antidot/fields_product/is_best_sale: best
|
4 |
+
default/antidot/fields_product/is_featured: featured
|
app/code/community/MDN/Antidot/Test/PHPUnitUtil.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class MDN_Antidot_Test_PHPUnitUtil
|
3 |
+
{
|
4 |
+
public static function callPrivateMethod($obj, $name, array $args) {
|
5 |
+
$class = new \ReflectionClass($obj);
|
6 |
+
$method = $class->getMethod($name);
|
7 |
+
$method->setAccessible(true);
|
8 |
+
return $method->invokeArgs($obj, $args);
|
9 |
+
}
|
10 |
+
|
11 |
+
public static function getPrivateProperty($obj, $name) {
|
12 |
+
$class = new \ReflectionClass($obj);
|
13 |
+
$property = $class->getProperty($name);
|
14 |
+
$property->setAccessible(true);
|
15 |
+
return $property->getValue($obj);
|
16 |
+
}
|
17 |
+
|
18 |
+
}
|
app/code/community/MDN/Antidot/controllers/Admin/PushController.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Admin_PushController extends Mage_Adminhtml_Controller_Action
|
@@ -21,7 +21,23 @@ class MDN_Antidot_Admin_PushController extends Mage_Adminhtml_Controller_Action
|
|
21 |
*/
|
22 |
public function CategoryAction()
|
23 |
{
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
$this->_redirectReferer();
|
26 |
}
|
27 |
|
@@ -30,13 +46,21 @@ class MDN_Antidot_Admin_PushController extends Mage_Adminhtml_Controller_Action
|
|
30 |
*/
|
31 |
public function ProductAction()
|
32 |
{
|
33 |
-
try
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
}
|
37 |
-
catch(Exception $ex)
|
38 |
-
|
39 |
-
|
|
|
40 |
}
|
41 |
$this->_redirectReferer();
|
42 |
}
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Admin_PushController extends Mage_Adminhtml_Controller_Action
|
21 |
*/
|
22 |
public function CategoryAction()
|
23 |
{
|
24 |
+
try
|
25 |
+
{
|
26 |
+
if (Mage::getModel('Antidot/Observer')->categoriesFullExport('UI')) {
|
27 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(
|
28 |
+
Mage::helper('Antidot')->__('Categories exported')
|
29 |
+
);
|
30 |
+
} else {
|
31 |
+
Mage::getSingleton('adminhtml/session')->addWarning(
|
32 |
+
Mage::helper('Antidot')->__('No Category to export')
|
33 |
+
);
|
34 |
+
}
|
35 |
+
}
|
36 |
+
catch(Exception $ex) {
|
37 |
+
Mage::getSingleton('adminhtml/session')->addError(
|
38 |
+
Mage::helper('Antidot')->__('An error occured : %s', $ex->getMessage())
|
39 |
+
);
|
40 |
+
}
|
41 |
$this->_redirectReferer();
|
42 |
}
|
43 |
|
46 |
*/
|
47 |
public function ProductAction()
|
48 |
{
|
49 |
+
try {
|
50 |
+
if (Mage::getModel('Antidot/Observer')->catalogFullExport('UI')) {
|
51 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(
|
52 |
+
Mage::helper('Antidot')->__('Catalog exported')
|
53 |
+
);
|
54 |
+
} else {
|
55 |
+
Mage::getSingleton('adminhtml/session')->addWarning(
|
56 |
+
Mage::helper('Antidot')->__('No Product to export')
|
57 |
+
);
|
58 |
+
}
|
59 |
}
|
60 |
+
catch(Exception $ex) {
|
61 |
+
Mage::getSingleton('adminhtml/session')->addError(
|
62 |
+
Mage::helper('Antidot')->__('An error occured : %s', $ex->getMessage())
|
63 |
+
);
|
64 |
}
|
65 |
$this->_redirectReferer();
|
66 |
}
|
app/code/community/MDN/Antidot/controllers/Front/SearchController.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
-
* @copyright Copyright (c)
|
13 |
-
* @author :
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Front_SearchController extends Mage_Core_Controller_Front_Action
|
9 |
* It is also available through the world-wide-web at this URL:
|
10 |
* http://opensource.org/licenses/osl-3.0.php
|
11 |
*
|
12 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
13 |
+
* @author : Antidot devmagento@antidot.net
|
14 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
15 |
*/
|
16 |
class MDN_Antidot_Front_SearchController extends Mage_Core_Controller_Front_Action
|
app/code/community/MDN/Antidot/etc/config.xml
CHANGED
@@ -18,7 +18,7 @@
|
|
18 |
</crontab>
|
19 |
<modules>
|
20 |
<MDN_Antidot>
|
21 |
-
<version>1.0
|
22 |
</MDN_Antidot>
|
23 |
</modules>
|
24 |
<global>
|
@@ -203,6 +203,10 @@
|
|
203 |
<xsl:variable name="IN">in</xsl:variable>
|
204 |
<!-- Default search url: customize if needed -->
|
205 |
<xsl:variable name="searchUrl">/index.php/catalogsearch/result/?q=</xsl:variable>
|
|
|
|
|
|
|
|
|
206 |
|
207 |
<!-- Main HTML template -->
|
208 |
<xsl:template match="afs:replies">
|
@@ -258,17 +262,39 @@
|
|
258 |
</xsl:otherwise>
|
259 |
</xsl:choose>
|
260 |
</xsl:variable>
|
261 |
-
<
|
262 |
-
<
|
|
|
263 |
<xsl:value-of select="$title"/>
|
264 |
-
</
|
265 |
-
</
|
266 |
<xsl:apply-templates select="afs:reply"/>
|
267 |
</xsl:template>
|
268 |
|
269 |
<!-- Template common to basic and products replies -->
|
270 |
<xsl:template match="afs:reply">
|
271 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
<!-- Show thumbnail if any -->
|
273 |
<xsl:apply-templates select="afs:option[@key='url_thumbnail']" mode="url_thumbnail"/>
|
274 |
<a>
|
@@ -335,53 +361,63 @@
|
|
335 |
</a>
|
336 |
<!-- Needed to avoir cascaded results -->
|
337 |
<div style="clear:both;"/>
|
338 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
339 |
</xsl:template>
|
340 |
|
341 |
<!-- Thumbnail display -->
|
342 |
<xsl:template match="afs:option" mode="url_thumbnail">
|
343 |
-
<
|
344 |
-
<
|
|
|
|
|
345 |
<xsl:attribute name="width">
|
346 |
<xsl:value-of select="$thumbnail_width"/>
|
347 |
</xsl:attribute>
|
348 |
<xsl:attribute name="src">
|
349 |
-
<xsl:apply-templates select="@value"
|
350 |
</xsl:attribute>
|
351 |
-
</
|
352 |
-
</
|
353 |
</xsl:template>
|
354 |
|
355 |
<!-- Creates href link -->
|
356 |
<xsl:template match="afs:option" mode="href">
|
357 |
<xsl:attribute name="href">
|
358 |
-
<xsl:apply-templates select="@value"
|
359 |
</xsl:attribute>
|
360 |
</xsl:template>
|
361 |
|
362 |
-
<!-- Transform absolute url into a relative one -->
|
363 |
-
<xsl:template match="@value" mode="baseUri">
|
364 |
-
<xsl:choose>
|
365 |
-
<xsl:when test="contains(.,'http')">
|
366 |
-
<xsl:value-of select="concat('/',substring-after(substring-after(.,'http://'),'/'))"
|
367 |
-
/>
|
368 |
-
</xsl:when>
|
369 |
-
<xsl:otherwise>
|
370 |
-
<xsl:value-of select="."/>
|
371 |
-
</xsl:otherwise>
|
372 |
-
</xsl:choose>
|
373 |
-
</xsl:template>
|
374 |
-
|
375 |
<!-- Basic suggestion template with a custom rendering for categories -->
|
376 |
<xsl:template match="afs:reply" mode="basic">
|
377 |
-
<
|
|
|
378 |
<xsl:value-of select="@label"/>
|
379 |
<span style="padding-left: 5px;"/>
|
380 |
<xsl:if
|
381 |
test="$display_parent_category=true() and starts-with(ancestor::afs:replySet/@name,'categories')">
|
382 |
<xsl:apply-templates select="afs:option[@key='parent']" mode="parent"/>
|
383 |
</xsl:if>
|
384 |
-
</
|
385 |
</xsl:template>
|
386 |
|
387 |
<!-- Display parent category -->
|
@@ -395,7 +431,8 @@
|
|
395 |
|
396 |
<!-- Product rich template: uses custom metadata like price -->
|
397 |
<xsl:template match="afs:reply" mode="product">
|
398 |
-
<
|
|
|
399 |
<xsl:value-of select="@label"/>
|
400 |
<xsl:if test="$display_price=true()">
|
401 |
<xsl:variable name="price_display">
|
@@ -415,7 +452,7 @@
|
|
415 |
</xsl:choose>
|
416 |
</span>
|
417 |
</xsl:if>
|
418 |
-
</
|
419 |
</xsl:template>
|
420 |
|
421 |
<!-- Display price using regional settings -->
|
@@ -446,6 +483,7 @@
|
|
446 |
</xsl:when>
|
447 |
<xsl:otherwise>
|
448 |
<xsl:value-of select="translate(@value,'.',$decimal-separator)"/>
|
|
|
449 |
<xsl:value-of select="$currency"/>
|
450 |
</xsl:otherwise>
|
451 |
</xsl:choose>
|
@@ -543,4 +581,11 @@
|
|
543 |
</promote>
|
544 |
</antidot>
|
545 |
</default>
|
546 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
</crontab>
|
19 |
<modules>
|
20 |
<MDN_Antidot>
|
21 |
+
<version>1.1.0</version>
|
22 |
</MDN_Antidot>
|
23 |
</modules>
|
24 |
<global>
|
203 |
<xsl:variable name="IN">in</xsl:variable>
|
204 |
<!-- Default search url: customize if needed -->
|
205 |
<xsl:variable name="searchUrl">/index.php/catalogsearch/result/?q=</xsl:variable>
|
206 |
+
<!-- if set to false, will display 'promo text' instead of promo percentage -->
|
207 |
+
<xsl:variable name="display_promo" select="true()"/>
|
208 |
+
<xsl:variable name="display_price_off" select="true()"/>
|
209 |
+
<xsl:variable name="promo_text">PROMO</xsl:variable>
|
210 |
|
211 |
<!-- Main HTML template -->
|
212 |
<xsl:template match="afs:replies">
|
262 |
</xsl:otherwise>
|
263 |
</xsl:choose>
|
264 |
</xsl:variable>
|
265 |
+
<xsl:element name="li">
|
266 |
+
<xsl:attribute name="class">title</xsl:attribute>
|
267 |
+
<xsl:element name="span">
|
268 |
<xsl:value-of select="$title"/>
|
269 |
+
</xsl:element>
|
270 |
+
</xsl:element>
|
271 |
<xsl:apply-templates select="afs:reply"/>
|
272 |
</xsl:template>
|
273 |
|
274 |
<!-- Template common to basic and products replies -->
|
275 |
<xsl:template match="afs:reply">
|
276 |
+
<xsl:variable name="parent" select="parent::afs:replySet/@name"/>
|
277 |
+
<xsl:element name="li">
|
278 |
+
<!-- Add css class for custom rendering -->
|
279 |
+
<xsl:attribute name="class">
|
280 |
+
<xsl:choose>
|
281 |
+
<xsl:when test="starts-with($parent,'categories')">category</xsl:when>
|
282 |
+
<xsl:when test="starts-with($parent,'featured_products')">product</xsl:when>
|
283 |
+
<xsl:when test="starts-with($parent,'brands')">brand</xsl:when>
|
284 |
+
<xsl:when test="starts-with($parent,'property_')">
|
285 |
+
<xsl:value-of
|
286 |
+
select="substring(substring-after($parent,'property_'),1,string-length($parent)-14)"
|
287 |
+
/>
|
288 |
+
</xsl:when>
|
289 |
+
<xsl:otherwise>
|
290 |
+
<xsl:value-of select="$parent"/>
|
291 |
+
</xsl:otherwise>
|
292 |
+
</xsl:choose>
|
293 |
+
</xsl:attribute>
|
294 |
+
<!-- Show discount percentage if any -->
|
295 |
+
<xsl:if test="$display_promo">
|
296 |
+
<xsl:apply-templates select="afs:option[@key='price_off']" mode="price_off"/>
|
297 |
+
</xsl:if>
|
298 |
<!-- Show thumbnail if any -->
|
299 |
<xsl:apply-templates select="afs:option[@key='url_thumbnail']" mode="url_thumbnail"/>
|
300 |
<a>
|
361 |
</a>
|
362 |
<!-- Needed to avoir cascaded results -->
|
363 |
<div style="clear:both;"/>
|
364 |
+
</xsl:element>
|
365 |
+
</xsl:template>
|
366 |
+
|
367 |
+
<!-- Price discount percentage -->
|
368 |
+
<xsl:template match="afs:option" mode="price_off">
|
369 |
+
<xsl:element name="span">
|
370 |
+
<xsl:attribute name="class">promo_flag</xsl:attribute>
|
371 |
+
<!-- Default style: Feel free to customize by using above class -->
|
372 |
+
<xsl:attribute name="style">border-radius: 100px; background: #FE9A2E; color : white;
|
373 |
+
padding : 5px 5px;</xsl:attribute>
|
374 |
+
<xsl:choose>
|
375 |
+
<xsl:when test="$display_price_off">
|
376 |
+
<xsl:text>-</xsl:text>
|
377 |
+
<xsl:value-of select="@value"/>
|
378 |
+
<xsl:text>%</xsl:text>
|
379 |
+
</xsl:when>
|
380 |
+
<xsl:otherwise>
|
381 |
+
<xsl:value-of select="$promo_text"/>
|
382 |
+
</xsl:otherwise>
|
383 |
+
</xsl:choose>
|
384 |
+
</xsl:element>
|
385 |
</xsl:template>
|
386 |
|
387 |
<!-- Thumbnail display -->
|
388 |
<xsl:template match="afs:option" mode="url_thumbnail">
|
389 |
+
<xsl:element name="div">
|
390 |
+
<xsl:attribute name="class">image</xsl:attribute>
|
391 |
+
<xsl:attribute name="style">float: left; margin-right:5px;</xsl:attribute>
|
392 |
+
<xsl:element name="img">
|
393 |
<xsl:attribute name="width">
|
394 |
<xsl:value-of select="$thumbnail_width"/>
|
395 |
</xsl:attribute>
|
396 |
<xsl:attribute name="src">
|
397 |
+
<xsl:apply-templates select="@value"/>
|
398 |
</xsl:attribute>
|
399 |
+
</xsl:element>
|
400 |
+
</xsl:element>
|
401 |
</xsl:template>
|
402 |
|
403 |
<!-- Creates href link -->
|
404 |
<xsl:template match="afs:option" mode="href">
|
405 |
<xsl:attribute name="href">
|
406 |
+
<xsl:apply-templates select="@value"/>
|
407 |
</xsl:attribute>
|
408 |
</xsl:template>
|
409 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
410 |
<!-- Basic suggestion template with a custom rendering for categories -->
|
411 |
<xsl:template match="afs:reply" mode="basic">
|
412 |
+
<xsl:element name="div">
|
413 |
+
<xsl:attribute name="class">name</xsl:attribute>
|
414 |
<xsl:value-of select="@label"/>
|
415 |
<span style="padding-left: 5px;"/>
|
416 |
<xsl:if
|
417 |
test="$display_parent_category=true() and starts-with(ancestor::afs:replySet/@name,'categories')">
|
418 |
<xsl:apply-templates select="afs:option[@key='parent']" mode="parent"/>
|
419 |
</xsl:if>
|
420 |
+
</xsl:element>
|
421 |
</xsl:template>
|
422 |
|
423 |
<!-- Display parent category -->
|
431 |
|
432 |
<!-- Product rich template: uses custom metadata like price -->
|
433 |
<xsl:template match="afs:reply" mode="product">
|
434 |
+
<xsl:element name="div">
|
435 |
+
<xsl:attribute name="class">name</xsl:attribute>
|
436 |
<xsl:value-of select="@label"/>
|
437 |
<xsl:if test="$display_price=true()">
|
438 |
<xsl:variable name="price_display">
|
452 |
</xsl:choose>
|
453 |
</span>
|
454 |
</xsl:if>
|
455 |
+
</xsl:element>
|
456 |
</xsl:template>
|
457 |
|
458 |
<!-- Display price using regional settings -->
|
483 |
</xsl:when>
|
484 |
<xsl:otherwise>
|
485 |
<xsl:value-of select="translate(@value,'.',$decimal-separator)"/>
|
486 |
+
<xsl:text> </xsl:text>
|
487 |
<xsl:value-of select="$currency"/>
|
488 |
</xsl:otherwise>
|
489 |
</xsl:choose>
|
581 |
</promote>
|
582 |
</antidot>
|
583 |
</default>
|
584 |
+
<phpunit>
|
585 |
+
<suite>
|
586 |
+
<modules>
|
587 |
+
<MDN_Antidot />
|
588 |
+
</modules>
|
589 |
+
</suite>
|
590 |
+
</phpunit>
|
591 |
+
</config>
|
app/code/community/MDN/Antidot/etc/system.xml
CHANGED
@@ -12,20 +12,27 @@
|
|
12 |
<groups>
|
13 |
<general>
|
14 |
<label>General</label>
|
15 |
-
<comment><![CDATA[<a href="https://bo-store.afs-antidot.net/" target="_blank" style="font-size:16px">Antidot Back office (Analytics, Synonyms, Promote)</a>]]></comment>
|
16 |
<frontend_type>text</frontend_type>
|
17 |
<sort_order>1</sort_order>
|
18 |
<show_in_default>1</show_in_default>
|
19 |
<show_in_website>1</show_in_website>
|
20 |
<show_in_store>1</show_in_store>
|
21 |
<fields>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
<version translate="label">
|
23 |
<label>AFS@Store Extension Version</label>
|
24 |
<frontend_model>Antidot/System_Config_Html_Version</frontend_model>
|
25 |
-
<sort_order>
|
26 |
<show_in_default>1</show_in_default>
|
27 |
-
<show_in_website>
|
28 |
-
<show_in_store>
|
29 |
<comment>Communicate this version to the support team if you need help</comment>
|
30 |
</version>
|
31 |
<owner translate="label">
|
@@ -33,8 +40,8 @@
|
|
33 |
<frontend_type>text</frontend_type>
|
34 |
<sort_order>10</sort_order>
|
35 |
<show_in_default>1</show_in_default>
|
36 |
-
<show_in_website>
|
37 |
-
<show_in_store>
|
38 |
<comment>Useful for support team</comment>
|
39 |
</owner>
|
40 |
<email translate="label">
|
12 |
<groups>
|
13 |
<general>
|
14 |
<label>General</label>
|
|
|
15 |
<frontend_type>text</frontend_type>
|
16 |
<sort_order>1</sort_order>
|
17 |
<show_in_default>1</show_in_default>
|
18 |
<show_in_website>1</show_in_website>
|
19 |
<show_in_store>1</show_in_store>
|
20 |
<fields>
|
21 |
+
<afsstore translate="label">
|
22 |
+
<label>AFS@Store Back-Office</label>
|
23 |
+
<frontend_model>Antidot/System_Config_Button_AfsStore</frontend_model>
|
24 |
+
<sort_order>1</sort_order>
|
25 |
+
<show_in_default>1</show_in_default>
|
26 |
+
<show_in_website>0</show_in_website>
|
27 |
+
<show_in_store>0</show_in_store>
|
28 |
+
</afsstore>
|
29 |
<version translate="label">
|
30 |
<label>AFS@Store Extension Version</label>
|
31 |
<frontend_model>Antidot/System_Config_Html_Version</frontend_model>
|
32 |
+
<sort_order>2</sort_order>
|
33 |
<show_in_default>1</show_in_default>
|
34 |
+
<show_in_website>0</show_in_website>
|
35 |
+
<show_in_store>0</show_in_store>
|
36 |
<comment>Communicate this version to the support team if you need help</comment>
|
37 |
</version>
|
38 |
<owner translate="label">
|
40 |
<frontend_type>text</frontend_type>
|
41 |
<sort_order>10</sort_order>
|
42 |
<show_in_default>1</show_in_default>
|
43 |
+
<show_in_website>0</show_in_website>
|
44 |
+
<show_in_store>0</show_in_store>
|
45 |
<comment>Useful for support team</comment>
|
46 |
</owner>
|
47 |
<email translate="label">
|
i18n/i18n.php
CHANGED
@@ -1,4 +1,17 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
$ref = __DIR__."/en_US";
|
4 |
$toTranslate = array(
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* It is also available through the world-wide-web at this URL:
|
9 |
+
* http://opensource.org/licenses/osl-3.0.php
|
10 |
+
*
|
11 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
12 |
+
* @author : Antidot devmagento@antidot.net
|
13 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
+
*/
|
15 |
|
16 |
$ref = __DIR__."/en_US";
|
17 |
$toTranslate = array(
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Antidot_Antidot</name>
|
4 |
-
<version>1.0
|
5 |
<stability>stable</stability>
|
6 |
<license>LGPL</license>
|
7 |
<channel>community</channel>
|
@@ -17,9 +17,9 @@ Prevent to export empty categories node&#xD;
|
|
17 |
Add cdata for variant name&#xD;
|
18 |
Add variant details for grouped products</notes>
|
19 |
<authors><author><name>Antidot</name><user>antidot</user><email>contact@antidot.net</email></author><author><name>Antidot</name><user>antidot</user><email>contact@antidot.net</email></author></authors>
|
20 |
-
<date>2015-
|
21 |
-
<time>
|
22 |
-
<contents><target name="mage"><dir name="shell"><file name="antidotExport.php" hash="b5719d6cce70f9e3c1b2babc121ea5b1"/><file name="antidotExportCategory.php" hash="c6ec8609a42966292004123d5b40fe6e"/><file name="antidotExportInc.php" hash="1444df084b6f3dfacab5f6038a593e85"/><file name="antidotExportProduct.php" hash="3a6603f997db76b9b11524db6aa2d320"/></dir><dir name="i18n"><file name="de_DE" hash="f166a5ff29213a44fca77277b053897e"/><file name="en_US" hash="63c821044fda6f7c2a26dc84670b25bd"/><file name="es_ES" hash="f9319039054998955d63d51ed0930f3f"/><file name="fr_FR" hash="632367797f2fa9fef06e0b0c69377e01"/><file name="i18n.php" hash="104c26dcc76365069b274fa0e68588ec"/></dir></target><target name="magecommunity"><dir name="MDN"><dir name="Antidot"><dir name="Block"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="c8147e06452988877fd23de97e47ba7d"/><file name="Boolean.php" hash="0d301b2ca3c1c1e60a69dbfc043a8520"/><file name="Category.php" hash="695722041376ff47c15c78b233e32f29"/><file name="Decimal.php" hash="a5a605767a6b3322dcab4715f107b71c"/><file name="Price.php" hash="3e8fe52c943c4d7cc21062ebd63ff9a0"/></dir><file name="View.php" hash="95d6226dc5e264422511bc19dcf23358"/></dir></dir><dir name="Catalogsearch"><file name="Category.php" hash="e7fdd211e62b37cddac5649183e49dfe"/><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="4b7dd735852366d7d999afaf1c5ad4b9"/></dir></dir><file name="Layer.php" hash="c1d43a8ff0930cac311110fb28434e95"/><file name="Result.php" hash="ea9e7f3965136907768255817e0a2731"/></dir><dir name="Html"><file name="Select.php" hash="9e12a50fecdc9185fb1f009584368c88"/></dir><dir name="System"><dir name="Config"><dir name="Button"><file name="PushArticles.php" hash="33bcfed4c5d168e8f429cb52b1fbac7d"/><file name="PushBrands.php" hash="d91fa99b4e25d3ac9393f3a4b263f70c"/><file name="PushCategories.php" hash="2968e1ad8329329491768b61fb13063d"/><file name="PushProducts.php" hash="c536d094f60a1789011cbd6dd4ccd94e"/><file name="RestoreTemplate.php" hash="541d3141c4b1a8202e511a0978ec0de1"/><file name="ShowXml.php" hash="c70714536a6d46ce5d056d41fd62ead6"/></dir><dir name="Form"><dir name="Field"><dir name="Array"><file name="Additional.php" hash="a92ccc94d40b2c05ccf4b6dec8882eff"/><file name="AdditionalFeed.php" hash="b4489921424513278869ece9bbcd09be"/><file name="ArticleAdditional.php" hash="506594804d3b624523e04481e8925b35"/><file name="ArticleIdentifier.php" hash="6e85e062f65eeed99dd3274cc689c47f"/><file name="DefaultSort.php" hash="d12eb339e80a7b38c111a63aa003ce6e"/><file name="Facet.php" hash="7ffdd3568f12a9495d39b943402dd861"/><file name="Identifier.php" hash="669eb4a937943dec8a577881f3f20d3c"/><file name="ProductAdditionalFacet.php" hash="3fd8f3957e8c364b39258cf32100b70d"/><file name="ProductAdditionalField.php" hash="9c245ddfb26372a9af712815ace7497b"/><file name="ProductIdentifier.php" hash="14dcf3125eae94145df4c802344cbfcd"/><file name="Sort.php" hash="f1a565e63b90a249fbae162fa2b90e54"/></dir><file name="CategoryAttribute.php" hash="6f20dd2ee95865d458ab37318ea47ad5"/><file name="ProductAttribute.php" hash="9475af9768d2f0bd3e8a1078eb3a03f9"/></dir></dir><dir name="Html"><file name="Export.php" hash="9814c5ed5cacb5792020344bf3f6b863"/><file name="ShowXml.php" hash="4b4012d9973dd397a91734f73d09df17"/><file name="Version.php" hash="7e780d7a124dffb964c63e7136bf161a"/></dir></dir></dir></dir><dir name="Helper"><file name="Antidot.php" hash="2acc8b8ab743de5f0872dd5c983ebd67"/><dir name="CatalogSearch"><file name="Data.php" hash="ffbbd7d6f1965fce0403c5a5eda73063"/></dir><file name="Compress.php" hash="7d284da9ec13c64f436817fd65947d32"/><file name="Data.php" hash="36ae4060d3637b4df20b49ec34b136bb"/><dir name="Enterprise"><dir name="Search"><file name="Data.php" hash="8bfe0146c64511f86cb796638b65112f"/></dir></dir><file name="LogExport.php" hash="9bd67e1c49e7b37fc1c0effd22233f26"/><dir name="ManaFilters"><file name="Data.php" hash="e5dd65e6e52c03427aa68528cc1f140a"/></dir><file name="Url.php" hash="156f1fb9c829919144ebb7fd01588f7e"/><file name="XmlWriter.php" hash="91a30b09dd02cd12dd3f1f065476569c"/></dir><dir name="Model"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="4a95baa6605e8d47ecf315c3cbd995b1"/><file name="Boolean.php" hash="7151f37fda430c2ceea55db8e39b0dc4"/><file name="Category.php" hash="062b705848d8be4fbba569c7f6bdfbe5"/><file name="Decimal.php" hash="32dc400184631b7913e68224f9aac9a2"/><file name="Item.php" hash="10cb250f8c2e8a763a18cf16f0f1800e"/><file name="Price.php" hash="946b42279612884380b984fef527a212"/></dir></dir><file name="Layer.php" hash="c83e63e6725830e545ab13890f69c5b7"/></dir><dir name="Catalogsearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="1b5f705dceb4cc62d1e6375332414872"/></dir></dir><file name="Layer.php" hash="e99d8aee533b6179cf0898c08dcdedca"/><dir name="Resource"><file name="Attribute.php" hash="766e331e27af9d114b946e023522956a"/></dir></dir><dir name="Export"><file name="Abstract.php" hash="7f8c2e5383d30259d5957322d5797329"/><file name="Article.php" hash="a724568ff3b207b1ce465310ebd585fa"/><file name="Brand.php" hash="84e0ee8e7760a987c615b079f9f0a28d"/><file name="Category.php" hash="99fb2befa7b91073896ed74702a313b9"/><file name="Product.php" hash="bb0a23dcfe0d5daf96a5879a6a250b20"/></dir><file name="Observer.php" hash="29aa6b6d71a8db9dfd6589b00e805541"/><dir name="Resource"><file name="Advanced.php" hash="39a9d8a23da4824b32037b0365669c72"/><dir name="Catalog"><dir name="Product"><file name="Collection.php" hash="a136057b3cd365b36ac7a5f4cc1a7e0d"/></dir></dir><dir name="Engine"><file name="Abstract.php" hash="994a72dea3044cf66ca1ef2b28ec2120"/><file name="Antidot.php" hash="dd74d857c69cb49ca5908c5592ccf846"/></dir></dir><dir name="Search"><file name="Abstract.php" hash="0ccd58da349eca4f5f1fce005f441e5f"/><file name="Search.php" hash="7b01ae94b89b294e0283ce94088f6994"/><file name="Suggest.php" hash="559a124841f318be57c0217ce1debb6a"/></dir><dir name="System"><dir name="Config"><file name="ArticleAttribute.php" hash="1a826cf609a0f0c3c47bf4ef6564de24"/><dir name="Backend"><file name="Engine.php" hash="301dbcfff7ca9034b731443686b85a2e"/></dir><file name="CategoryAttribute.php" hash="7149c1efa8207038d7fd2023c9761c98"/><file name="Dir.php" hash="7df80dbf0ee36504dba95c1d243e88ff"/><file name="DisableEnable.php" hash="903763b2023bb0c8c53ba050a9effc0e"/><file name="Engine.php" hash="8547fb84cbdfb1e61526da1ac79e2d1c"/><file name="Facet.php" hash="0a5274c46a4dde0cbfc803464f35dd28"/><file name="Number.php" hash="addd25d977b6dfdab80e1d010ca3bd12"/><file name="Options.php" hash="341e4677d0a060a63731fb9015d66ae4"/><file name="ProductAttribute.php" hash="f8060f25a70a7e681f5021eedef5dfa8"/><file name="PromoteRedirect.php" hash="9639c16ad74cfc680bd3b727ba2cf331"/><file name="Sort.php" hash="ef8c019fd3ae439e1349d20d229af094"/><dir name="Suggest"><file name="Type.php" hash="f0c083bbaa7fd339832d14937afe1af1"/></dir><file name="WSStatus.php" hash="b469dc276dd3623e51f79ec433791bcc"/></dir></dir><dir name="Transport"><file name="Abstract.php" hash="1c1a1f70c5813872a871f5b558c21360"/><file name="File.php" hash="136190f20ed7f7a340771d3b78f03331"/><file name="Ftp.php" hash="d9814ef96a23f7111e2b8e5a48196786"/><file name="Http.php" hash="667a6f2d07034604b6ec6f2b48b55332"/><file name="Interface.php" hash="82c6c2d1748439a6850e90f6556fec92"/></dir><file name="Transport.php" hash="663e33aaf620ffd4f05292b4e6f27f42"/></dir><dir name="controllers"><dir name="Admin"><file name="PushController.php" hash="0cb3e55625acd83e255dac46704e82f3"/></dir><dir name="Front"><file name="SearchController.php" hash="c1514fc18b5412a9e9072bcca0352607"/></dir></dir><dir name="etc"><file name="config.xml" hash="777f28aefc87ec454abdaf6d867e12a7"/><file name="system.xml" hash="c26c85633d0771eee7804bdb281bf3ce"/></dir><dir name="sql"><dir name="Antidot_setup"><file name="mysql4-install-0.9.php" hash="62672bc47ea92dbd46966fb76e4251e0"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="antidot"><dir name="catalog"><dir name="layer"><file name="category.phtml" hash="3ec81f7b3e3b947317da8664c8e15927"/><file name="filter.phtml" hash="2304baebff9b798e0ebd977fbc891346"/></dir></dir><dir name="catalogsearch"><file name="result.phtml" hash="12c082ddff0e6c4fef74630b8253face"/></dir></dir></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="antidot.xml" hash="654b0cbb9d7c3f7a0a506e3f6adf164b"/></dir><dir name="template"><dir name="antidot"><dir name="catalogsearch"><dir name="result"><file name="category.phtml" hash="7413580b825508f2cfc08566d62369ae"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="MDN_Antidot.xml" hash="988c6b7e9da4e50f1727956833ab1696"/></dir></target><target name="magelocale"><dir name="de_AT"><file name="MDN_Antidot.csv" hash="f73ff4aa6f983793957a6b295e8e6488"/></dir><dir name="de_CH"><file name="MDN_Antidot.csv" hash="f73ff4aa6f983793957a6b295e8e6488"/></dir><dir name="de_DE"><file name="MDN_Antidot.csv" hash="f73ff4aa6f983793957a6b295e8e6488"/></dir><dir name="es_AR"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_CL"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_CO"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_CR"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_ES"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_MX"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_PA"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_PE"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_VE"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="fr_CA"><file name="MDN_Antidot.csv" hash="5a408d02979b224a1387c1be415caa37"/></dir><dir name="fr_FR"><file name="MDN_Antidot.csv" hash="aed12e90a30b556952e5c33dd904867a"/></dir></target><target name="mageweb"><dir name="js"><dir name="mdn"><dir name="antidot"><file name="CollapsibleLists.js" hash="86792ecde0c2759ba85e0d863dd147ce"/></dir></dir></dir></target><target name="magelib"><dir name="antidot"><dir name="AFS"><dir name="ACP"><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="acpConnectorTest.php" hash="25a8194f3dc8895640df4f4bba895d8e"/><file name="acpQueryTest.php" hash="74ad65a4af639a409ee72a75a2a043d6"/><file name="acpReplysetHelperTest.php" hash="4f0a0d471a06e139cd11c715b67ebe81"/><file name="acpResponseHelperTest.php" hash="6d30f99108db0d9956aef9ba5e1d88df"/><file name="acpTest.php" hash="d6119d150543e7943ba4e9907901ae5d"/></dir><file name="afs_acp.php" hash="78dbfbc92f68469c92898f1da4263e68"/><file name="afs_acp_configuration.php" hash="2d644cc6c5bf2cdaeca5780576c4bf0e"/><file name="afs_acp_connector.php" hash="cf872314b38a86ebe7bb56b19bce9236"/><file name="afs_acp_exception.php" hash="f610d2cc37a15d4b981d7b43939414ad"/><file name="afs_acp_query.php" hash="ced0629355f5d4fc1c219d1adb03297d"/><file name="afs_acp_query_manager.php" hash="b3348972a850c904fc664b4e27671439"/><file name="afs_acp_reply_helper.php" hash="b0259f24f10d2e92ed6e3b8cdaaacc44"/><file name="afs_acp_replyset_helper.php" hash="07e7fdb88a42a399c96261c47ffb0231"/><file name="afs_acp_response_helper.php" hash="33a66106fd3a94194514a0d8d39af1cd"/></dir><file name="Makefile" hash="7bb31592939024f74745d6b6cb7fec0b"/><dir name="SEARCH"><dir name="FILTER"><file name="Makefile" hash="d42338199c6857ded179af2117b9f571"/><dir name="TEST"><file name="Makefile" hash="ab37090c6c5e7af1b260376237737700"/><file name="filterBuilderTest.php" hash="161ff5c8e73914eef884d17456afa133"/><file name="filterCombinationTest.php" hash="2162288d5255d3b24fe94d75b939aa51"/><file name="filterTest.php" hash="1682c0a4d50158a8d2c9369d30e45a18"/><file name="groupFilterTest.php" hash="1ebe8ce7344ed64b93cf94632d3b0184"/></dir><file name="afs_combinable_filter.php" hash="336e6c6bc9ebae3f58602d23ef734182"/><file name="afs_combinator_filter.php" hash="e2fc560b9c0c31f20c73f2057a8b7b69"/><file name="afs_filter.php" hash="1efc032fd2615c82c350f69ba11860fa"/><file name="afs_filter_exception.php" hash="ccce583c63a4a65f7f0a27fc4a487505"/><file name="afs_filter_wrapper.php" hash="30dec104456abc037019ad93922b5afd"/><file name="afs_group_filter.php" hash="b95fa3bc0e26bc39dfc53a6010bce32f"/><file name="afs_operator_filter.php" hash="c7ea43c8d64eedbe33397f61737e0226"/><file name="afs_valued_filter.php" hash="483653071734f77972c9b9771e187d82"/></dir><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="clientDataHelperTest.php" hash="523abcf4ab7a42e16c39c2b02bae927c"/><file name="clusterHelperTest.php" hash="e112e7c756f63c8e8ceb554281b418c9"/><file name="conceptHelperTest.php" hash="b44e39b62d0537bf1f7b7feb23f8111f"/><file name="facetDefaultTest.php" hash="382e4ea35e1c7173371b4a84046a38e5"/><file name="facetHelperTest.php" hash="2c6fbec3f1d4dd6e37c089ac835a88b0"/><file name="facetManagerTest.php" hash="bbef8e207c387dbe6a26142fd55264d5"/><file name="facetTest.php" hash="f0264af2550394a4a3d944bc86dac667"/><file name="facetValuesSortOrderTest.php" hash="b650080bf9b2cce2ac42a245cb84c911"/><file name="feedCoderTest.php" hash="f2b5dfdd4fa3c4e5d14c790d15235146"/><file name="filterCoderTest.php" hash="46249fa13edccf1e5d5000daf2573b77"/><file name="headerHelperTest.php" hash="62185c34e1e9015bb12014d719287f06"/><file name="helperConfigurationTest.php" hash="be3f74e53e27744e8214f3c341172796"/><file name="intervalTest.php" hash="912389dad049853f6bf0b4eab2af5034"/><file name="metaHelperTest.php" hash="080f160b54636c4eee743544a6a12bee"/><file name="pagerHelperTest.php" hash="b756d39c29c1d3cfb2733ab13062542e"/><file name="promoteReplyHelperTest.php" hash="7cbb68a7f50c2bd2ef11a085ac94deb2"/><file name="promoteReplysetHelperTest.php" hash="749180b072997539d322c88c97c586d6"/><file name="queryCoderTest.php" hash="064979c30a7e215c486e34abce79b1b5"/><file name="queryTest.php" hash="c48bc5a88a788bbc4a26604b86d60454"/><file name="replyHelperTest.php" hash="5b3cfec02c640282bf4fec92353801d6"/><file name="replysetHelperTest.php" hash="fdb55d9a09f9198fb26b5fab3edc58c3"/><file name="responseHelperTest.php" hash="35969ff7882d97b93aa874fafd4b55c3"/><file name="searchConnectorTest.php" hash="9201de573884b643041b6c32bc535e7e"/><file name="searchQueryManagerTest.php" hash="2334d06f4247abfd69c2b4dc842cc404"/><file name="searchTest.php" hash="eeb7a86bd5b48108434fb93da4e0c0f2"/><file name="spellcheckHelperTest.php" hash="49960fb90055dcf265ef41e491c11325"/><file name="spellcheckTextVisitorTest.php" hash="203f0d08f548a39135517a41f6e9e43a"/><file name="textVisitorTest.php" hash="b722845dd0f5f953574cb51284ad025b"/></dir><file name="afs_base_reply_helper.php" hash="c1c3961f3cc03924fda382adf6e6c419"/><file name="afs_base_replyset_helper.php" hash="096b124a3ebdc6e8d6beb359bd8bb7c5"/><file name="afs_client_data_exception.php" hash="899957af974d04aa7eaca44903a7f86c"/><file name="afs_client_data_helper.php" hash="b2383fc244d6bbcda6de7387ae7b1b0d"/><file name="afs_cluster_exception.php" hash="86d97623db7aebaa28a20857ce2cf17f"/><file name="afs_cluster_helper.php" hash="60b7fbcc869a672929ef9fc6d840d2b2"/><file name="afs_coder_base.php" hash="fb87fbea43d12695154b3b6102e2a019"/><file name="afs_coder_interface.php" hash="3b179b2513e215751ee4edd190b2a719"/><file name="afs_concept_helper.php" hash="982cf3d2063c565cf19cc6136b049066"/><file name="afs_count.php" hash="9f83f3baa3cf4462c0db786f4eea479a"/><file name="afs_facet.php" hash="b5d89249e71741b0558dbb762ad1a077"/><file name="afs_facet_combination.php" hash="005e9742ee032194b86856195dd59f7d"/><file name="afs_facet_default.php" hash="cbcb5d28b7b00815ce5248017065e84b"/><file name="afs_facet_exception.php" hash="f1f0afdbf9a727b53c4731e5a40ac417"/><file name="afs_facet_helper.php" hash="63bf1e4b92cf1e1bdf06b7da54afd5f9"/><file name="afs_facet_helper_retriever.php" hash="5628cc41c50ab25fd3336df302d903f4"/><file name="afs_facet_layout.php" hash="c83f6fef1c13ba3cda667c611841ff87"/><file name="afs_facet_manager.php" hash="3f022435274cbb500699ea054461f4bf"/><file name="afs_facet_mode.php" hash="17f17d277168a017e66364be5ac85394"/><file name="afs_facet_sort.php" hash="0d7ba4059b10da9981b9c801355cb874"/><file name="afs_facet_type.php" hash="6df82cbfa627629f9523437994d1fbb1"/><file name="afs_facet_value_formatter.php" hash="d6580281f9ef5c0820615ac385aae863"/><file name="afs_facet_values_sort_mode.php" hash="17def98365132c810515f8cf3c6fb006"/><file name="afs_facet_values_sort_order.php" hash="f95f77cb5dd7015e4f2e6094ddba49a6"/><file name="afs_feed_coder.php" hash="0df08c2d4e30c9b99d56ce7fdbc1b40b"/><file name="afs_filter_coder.php" hash="6a528ece8d5999aab9eb0fffabea25e3"/><file name="afs_header_helper.php" hash="3b30d839efe9128773c82d47cbd591b8"/><file name="afs_helper_configuration.php" hash="dbd0378574fbc5729babfbddfef0fd67"/><file name="afs_interval.php" hash="dbf9749881be0a2b063f8a33dff214f3"/><file name="afs_interval_exception.php" hash="40f223de231df03aae59596c1a493065"/><file name="afs_meta_helper.php" hash="8403689868c98db725ebd11748508c8b"/><file name="afs_pager_helper.php" hash="8e93f8c060d2fedabbcbad5607a27807"/><file name="afs_producer.php" hash="7c8c515ccb8126523fa0d09a7f759dd5"/><file name="afs_promote_reply_helper.php" hash="b582c3064f0dff62514e28e91d715cf9"/><file name="afs_promote_replyset_helper.php" hash="fdefc6f8a686addb31ea9b6c0a3fa5ad"/><file name="afs_query.php" hash="015bc3e7d007943708f064a34582d6ef"/><file name="afs_query_coder.php" hash="87021c05f45168f11eae4045b999b347"/><file name="afs_query_coder_interface.php" hash="dd16f17b3606a7418c1c714475b19b51"/><file name="afs_query_object_interface.php" hash="a9af13e2c856e4136ccadfff60f72d36"/><file name="afs_raw_text_visitor.php" hash="fd574583c4c9110165c1cadc67b832de"/><file name="afs_reply_helper.php" hash="04a65217b88a53a951d687455986b2a6"/><file name="afs_reply_helper_factory.php" hash="119fba6f39a19ef27fb8c864158cc7a2"/><file name="afs_replyset_helper.php" hash="190b08443559c28a204e8cfb6826d441"/><file name="afs_response_exception.php" hash="0a865bb92fb700ae555dcb5ae675f644"/><file name="afs_response_helper.php" hash="1805fd45c11ef77121867bb84850bedd"/><file name="afs_search.php" hash="11770cf52edd84331988bf61228ab24a"/><file name="afs_search_connector.php" hash="17242fb6536f4596b2c0198a16986310"/><file name="afs_search_query_manager.php" hash="91ee821f87eaeb9f14d5313a19b3f807"/><file name="afs_sort_builtins.php" hash="0cc1617a62f1a834a28d7d2ac249b081"/><file name="afs_sort_coder.php" hash="543015ed1d40caa40317a231476ea06c"/><file name="afs_sort_order.php" hash="7755deb99386650c9974871474168cda"/><file name="afs_spellcheck_helper.php" hash="bb5465848ada7a9df9875f2565fb9686"/><file name="afs_spellcheck_text_helper.php" hash="3ca5c3118660aa600aadb504ceff6c4c"/><file name="afs_spellcheck_text_visitor.php" hash="c44c23ae21f61b065e457911bbc45ed2"/><file name="afs_text_helper.php" hash="59c4ae24560948c3af0f4adbf6bd1803"/><file name="afs_text_visitor.php" hash="867b44a280403cd4567358ec6d59588a"/></dir><file name="afs_configuration_base.php" hash="f26dd9efda4923cc2c71057f21be97d9"/><file name="afs_connector.php" hash="3e000a037ca1d64587a90f53dd6c888b"/><file name="afs_exception.php" hash="c1840fe279f9cb313cec151012ed4513"/><file name="afs_origin.php" hash="a6b7e39a687210572c116afcbea0e7cb"/><file name="afs_query_base.php" hash="63b8fba7bb5c17150e4af0e765deab27"/><file name="afs_response_helper_base.php" hash="b087f7bdad35ed0526566042ef9afc8c"/></dir><dir name="AIF"><file name="Makefile" hash="2d232abf9913fcabb44033d5e5d1ebfd"/><dir name="TEST"><file name="Makefile" hash="24d3030d27e88732028d14fb1d81c203"/><file name="afsMultipartResponseTest.php" hash="70a64d0d599ea01806fac2126fb3680a"/><file name="authenticationTest.php" hash="2e476e9ab15ee221ddd63bb555262a28"/><file name="bowsInformationTest.php" hash="3bbfe71f431a35f0285afdca40906874"/><file name="documentManagerTest.php" hash="ad90a6146f5aeee383355bb05425b3dd"/><file name="documentTest.php" hash="59b204b10b90cd764b259ad4c2bc043a"/><file name="pafConnectorTest.php" hash="ac2928b501d9ea167af43dbf3adafa7d"/><file name="pafLiveTest.php" hash="92862c31d151c34b2caf44bff9d0fb80"/></dir><file name="afs_about_connector.php" hash="8972264a9b7cce237ad1a4b47852b529"/><file name="afs_authentication.php" hash="4285035550c9681a047b85abbca64936"/><file name="afs_bows_connector.php" hash="47a6bcafd5eba2361d2cea409f60d3f7"/><file name="afs_bows_connector_interface.php" hash="8fdf9749f0500a39741d696feb55af14"/><file name="afs_bows_exception.php" hash="1bd8657a37b8b4a9e08bfc4eb6b7e416"/><file name="afs_bows_information.php" hash="1f96a4cd84b2332f1186f9e0cea8542d"/><file name="afs_bows_information_cache.php" hash="1ae9a9243342c4e58a52e70473b68472"/><file name="afs_document.php" hash="6a04f43252f67f6dd90cc23d03fa2b63"/><file name="afs_document_manager.php" hash="8c5c0105d9337b7ae6a9f041f643ea88"/><file name="afs_multipart_response.php" hash="f2077c9eaf121fabdb2fc26c23b2e256"/><file name="afs_paf_connector.php" hash="96111b0536c83874b7c06ada5577106b"/><file name="afs_paf_live_connector.php" hash="9efeb2716f6d95e666f9c37726869fe7"/><file name="afs_paf_upload_reply.php" hash="0cb4905d1c894637d5e6acbd2cffc112"/><file name="afs_token_authentication.php" hash="1f003310f156f0a71db1d273375172d8"/><file name="afs_user_authentication.php" hash="03deeead93ee32753f2f7f80cfc011f4"/></dir><dir name="COMMON"><file name="Makefile" hash="7bb31592939024f74745d6b6cb7fec0b"/><dir name="TEST"><file name="Makefile" hash="d568cfe3683543f363312aa4b6d2bbad"/><file name="languageTest.php" hash="ad0f75b1c2f320c81eba32cade86191c"/><file name="toolsTest.php" hash="9276cb1a275d697f8e8365f2ac340cdf"/><file name="userSessionManagerTest.php" hash="b2b78d6fa156f1a61065f8ee5bfc6e0b"/></dir><file name="afs_connector_base.php" hash="b6b1f091ec71e5b92e4a1e5ca958255f"/><file name="afs_connector_interface.php" hash="68ad5e20a861b85dbf198f79cd2afd4c"/><file name="afs_exception.php" hash="c45bcd565a4124da5d6b23a21d5845a5"/><file name="afs_helper_base.php" hash="839cca78a663c3a22b4a8e35d1460129"/><file name="afs_helper_format.php" hash="30a3f6e945db7412ef95e83e7b0b5898"/><file name="afs_language.php" hash="277acb15b86089b37c812c47f2141d3c"/><file name="afs_service.php" hash="12c00c906e130860120552c40fa9dbc2"/><file name="afs_service_status.php" hash="1dee172850a76b46987534df89013878"/><file name="afs_tools.php" hash="26f6c01c5a61987925385e7a35260399"/><file name="afs_user_session_manager.php" hash="abd625f6b7b5cecf386dac9d82887764"/><file name="afs_versions.php" hash="29dda789ed7b363dc512e3c52a9d80ce"/><dir name="php-SAI"><file name="README.md" hash="63ab581c83fe44918e6d074e20f08f95"/><dir name="lib"><dir name="Curl"><file name="Handle.php" hash="0fc7132737da7cee7df6b974447864ac"/></dir><file name="Curl.php" hash="358e4d3afca2035ee4d3f99f372ed15a"/><file name="CurlInterface.php" hash="714fa045dd4546d0c92cd022efb09422"/><file name="CurlStub.php" hash="fbdc0ece6321c5b5a1e27a65449f4a1f"/><dir name="rb_temp"><file name="HttpClient.php" hash="091b91c98acf9f1cd6c3d6d75cddfb88"/><file name="MultiCurl.php" hash="916e85d73bae6e136f889166ebc6db17"/><file name="SimpleCurl.php" hash="c296966a8bda96e03b464a1d3a9c8e06"/></dir></dir><dir name="tests"><file name="SAI_CurlStubTest.php" hash="bce69cbb17a40bd4eeba6bad1133216e"/></dir><file name=".gitignore" hash="455ed27e3ee2636761d16f833e4d3984"/></dir></dir><file name="COPYING" hash="b234ee4d69f5fce4486a80fdaf4a4263"/><file name="COPYING.LESSER" hash="4fbd65380cdd255951079008b364516c"/><file name="FAQ.md" hash="7d7c886674d70a0047303c5d93de6165"/><file name="Makefile" hash="225475a5a4a0204cecbb77621ff38bb2"/><file name="README.md" hash="c38fa0e7c5aa391c2842affdf89c4795"/><file name="afs_lib.doxygen" hash="4f5839371b1b6ba64f76029bc5865dbf"/><file name="afs_lib.php" hash="4e93523d71e8b083654ac85cb24f8c68"/><file name="afs_version.php" hash="c8db9ed5ee1881b6e31a60a471a81b8a"/><dir name="doc"><file name="afs_filter_documentation.dox" hash="3bf4b96e25d95ce5953b822038c6f135"/><file name="afs_paf_upload.dox" hash="d36893db0234f171e6cfb43f6e13d47c"/><file name="afs_search.dox" hash="b1c5ab8728703822f910852cd17561f4"/><file name="afs_search_coder.dox" hash="77709e1bc691301017f0982e0348a9b9"/><file name="afs_search_query.dox" hash="21dcd1734a165a4cb3b4f62c42a6a0be"/><file name="afs_search_reply.dox" hash="cdb1d42447671f4352927b40b3f8f37d"/><dir name="data"><file name="acp_helper_example.php" hash="2815890e7afbae78e7eb4e6fc5c88f6f"/><file name="full_example.php" hash="e152a964d06e55de460c596070c714d8"/><file name="full_lightweight_example.php" hash="eac3bb2d251052f547a9f737e5cd0461"/><file name="raw_example.php" hash="ed86e971114243f3b28fa39bcaa972b8"/><dir name="templates"><file name="error_template.html" hash="70f44bd0f45470d379a11d0a2fe507e4"/><file name="facet_template.html" hash="6836005a7dae45e9415273f1eb6b78e2"/><file name="facet_values_template.html" hash="9b41f2b55a1cecae5724b4fcd4a46cfb"/><file name="meta_template.html" hash="e664a3bb222d272ce2451fb10bf46de4"/><file name="pager_template.html" hash="2700ab5b60a1f9553b1c39374fda63d4"/><file name="result_template.html" hash="1572a4ef4e8dda0b3db1ea77bbed4a98"/><file name="spellcheck_template.html" hash="8042054a1f5a271b47c77f81436c4791"/></dir></dir><file name="detailled_integration_example_with_template.dox" hash="26ef377a6ef546b636a0e254d11d01f5"/><file name="lightweight_integration_example_with_template.dox" hash="5a388d2dbfad63ad6ec353407b79a6bb"/><file name="logo-antidot-long-200x41.png" hash="1ceac3fff767fb5e395bd767344a3d13"/><file name="main.dox" hash="ca3e97f95deead927fb3298ecafbad5e"/><file name="raw_integration_example.dox" hash="56a7126d008c2e49abdf9bf0b5ec9717"/><file name="template_prerequisites.dox" hash="baa24a943e19ff3654227850bd316abb"/><file name="templates_in_details.dox" hash="5e8db94382f1fbd6c4e0b424a9edc9a3"/></dir><file name="rules.mk" hash="9e3570d254b92d571849718d98492192"/><dir name="scripts"><file name="gen_doc.sh" hash="0f6fc60aca94da563397d3c710bd9d33"/><file name="increment_version.sh" hash="431db9c60d2f94d251be07957787fcb0"/><file name="print_version.sh" hash="a05ddc19cd27ff185721fe2bd0cffc25"/><file name="version_management.sh" hash="3d5ecd39f45ba081144b3033dbd14330"/></dir><file name=".gitignore" hash="14de6527ce1e67cea1543b75a2322165"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="mdn"><dir name="antidot"><file name="CollapsibleLists.css" hash="c956d83facc41a97bf14726dcb953edb"/></dir></dir></dir><dir name="images"><dir name="mdn"><dir name="antidot"><file name="base.gif" hash="1f71b021e061a4948d69adc4ff10ccad"/><file name="button-closed.png" hash="563b78324e0712c0902cb4f77cb9eb86"/><file name="button-open.png" hash="c710849a0d2b61ad1f0fc36c0e59d131"/><file name="button.png" hash="97f3055c5046c851eea2dad7e5227508"/><file name="cd.gif" hash="f41037663522fab5c5c31530c7fa43d8"/><file name="empty.gif" hash="df22aff6e941ff1cc577333d1712b584"/><file name="folder.gif" hash="ea16980ab437fa6ba4aba3d480e83e9e"/><file name="folderopen.gif" hash="18aa3d75315bf95bf080357733437fcc"/><file name="globe.gif" hash="d6b48614cf8dc9553e077c19197637d2"/><file name="imgfolder.gif" hash="1d488d377762e65ab4e8b691ba01e5a4"/><file name="join.gif" hash="4d5d614e0da056df815a4306d6368692"/><file name="joinbottom.gif" hash="4b3daa7f2cc584f1aac0d142275d7cba"/><file name="line.gif" hash="63ab38a6203262f15ca46c631232ea2c"/><file name="list-item-contents.png" hash="00ae24d5bc76df9eedaea597859963e4"/><file name="list-item-last-open.png" hash="615ddd71f81b240e9ed7d4e383b2c01a"/><file name="list-item-last.png" hash="e2bfb790f46855c378e50f3c0a82ea01"/><file name="list-item-open.png" hash="732d1cc59f3a488c89c624eb434eac98"/><file name="list-item-root.png" hash="5529d21e7ec68e9cb750a4895ff0b480"/><file name="list-item.png" hash="e03ec1bf3d9e16bb3005ccf8d26eaa6c"/><file name="minus.gif" hash="d647fbbd0ec410b8f3bb3357b62eedcf"/><file name="minusbottom.gif" hash="b09d684cca7135ef728141aaf2464baa"/><file name="musicfolder.gif" hash="21ece951734f23adb2f75befe1f31fc1"/><file name="nolines_minus.gif" hash="eb2243a354ffcfac93ba0fe948f7167d"/><file name="nolines_plus.gif" hash="ec92b634b63608fb4b0dbf114e3b89e1"/><file name="page.gif" hash="c25b136c1cb3bb145495c25b35d93754"/><file name="plus.gif" hash="5c55d798909c553deca31d610bd18fac"/><file name="plusbottom.gif" hash="1924ce363c38a992f888a4df48c0b274"/><file name="question.gif" hash="ea0ca196ce0ebfd625cc1210abfdec6c"/><file name="trash.gif" hash="6cbfd3ed29531044aed9b4edb3cca9ad"/></dir></dir></dir></dir></dir></dir></target></contents>
|
23 |
<compatible/>
|
24 |
<dependencies><required><php><min>5.2.0</min><max>5.6.0</max></php><extension><name>curl</name><min/><max/></extension></required></dependencies>
|
25 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Antidot_Antidot</name>
|
4 |
+
<version>1.1.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>LGPL</license>
|
7 |
<channel>community</channel>
|
17 |
Add cdata for variant name&#xD;
|
18 |
Add variant details for grouped products</notes>
|
19 |
<authors><author><name>Antidot</name><user>antidot</user><email>contact@antidot.net</email></author><author><name>Antidot</name><user>antidot</user><email>contact@antidot.net</email></author></authors>
|
20 |
+
<date>2015-05-12</date>
|
21 |
+
<time>09:47:33</time>
|
22 |
+
<contents><target name="mage"><dir name="shell"><file name="antidotExport.php" hash="84b760a0cab3cc225ff8b50d6d25ed61"/><file name="antidotExportCategory.php" hash="87ebde88a80a1eb1f919aca67a69984b"/><file name="antidotExportInc.php" hash="437d19933543a58c8becd250613e5c26"/><file name="antidotExportProduct.php" hash="62c1fda71a6929d6e19864df9654c8a9"/></dir><dir name="i18n"><file name="de_DE" hash="f166a5ff29213a44fca77277b053897e"/><file name="en_US" hash="63c821044fda6f7c2a26dc84670b25bd"/><file name="es_ES" hash="f9319039054998955d63d51ed0930f3f"/><file name="fr_FR" hash="632367797f2fa9fef06e0b0c69377e01"/><file name="i18n.php" hash="0780b44563432f6e70de78f7a9d60f54"/></dir></target><target name="magecommunity"><dir name="MDN"><dir name="Antidot"><dir name="Block"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="2158b991ccdf394c8cd47cab00829e4d"/><file name="Boolean.php" hash="d17b08e1ec9047cf4050442ababd0808"/><file name="Category.php" hash="78cb53233ad74a2b5496d6f7857d8837"/><file name="Decimal.php" hash="75b31617bca2a8f20ee7fe113e3534f2"/><file name="Price.php" hash="244068a33e8ba64423c126baf883d2b5"/></dir><file name="View.php" hash="bbdd9bb31663415001ab3751c6737cde"/></dir></dir><dir name="Catalogsearch"><file name="Category.php" hash="e9605415ba85929115a443b1b4f00ab0"/><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="2b274bf7d8f8dbd915bdf73f65e694fc"/></dir></dir><file name="Layer.php" hash="52a903855aa9cb7211eb0932d01368af"/><file name="Result.php" hash="8aaa0be7830f41616e266b2c7928604e"/></dir><dir name="Html"><file name="Select.php" hash="fc7fb19df1dd378d4e9e0860d2d47d07"/></dir><dir name="System"><dir name="Config"><dir name="Button"><file name="AfsStore.php" hash="c68e3a42a701267e9371972da60c22cb"/><file name="PushArticles.php" hash="a0cae65b4aba9b539421c0a6d06fb406"/><file name="PushCategories.php" hash="50e4b74388e1c5a65249c71dfae69400"/><file name="PushProducts.php" hash="bac543e1b17f91a558adef5da3012e28"/><file name="RestoreTemplate.php" hash="ffbbb0a73ff1ede611262a6a4da1a188"/><file name="ShowXml.php" hash="417ba0c9c62d8070b63f90397887dcc0"/></dir><dir name="Form"><dir name="Field"><dir name="Array"><file name="Additional.php" hash="acbde0308213fa976f55934fb45aba60"/><file name="AdditionalFeed.php" hash="b4489921424513278869ece9bbcd09be"/><file name="ArticleAdditional.php" hash="38c62d610f585c460151841f7350348b"/><file name="ArticleIdentifier.php" hash="ec9479fd1ca087a1fe924795cc9ff5f6"/><file name="DefaultSort.php" hash="61dec4828212e7a145b6eeda5c476858"/><file name="Facet.php" hash="dab308e0ac79a89be8d72e487739031e"/><file name="Identifier.php" hash="294c5d3bda7dae5637eabfdfdb08afc7"/><file name="ProductAdditionalFacet.php" hash="208e01078409951327f1794e17e11e89"/><file name="ProductAdditionalField.php" hash="9c9f9c9c1c940963e1a24c039a392cc4"/><file name="ProductIdentifier.php" hash="d30809119cb35018697533075f7ee485"/><file name="Sort.php" hash="6ece671c902cf6f5db66652a2c51e79f"/></dir><file name="CategoryAttribute.php" hash="1ba0dd22410eb27d18ac77b51f78ac49"/><file name="ProductAttribute.php" hash="3acbdaee390ce50e18d0ede1d641255d"/></dir></dir><dir name="Html"><file name="Export.php" hash="7cb82e5f21c769e5b39efc0be7b76473"/><file name="ShowXml.php" hash="7b70f39937aa9d24336edde6bdbdf97c"/><file name="Version.php" hash="34c624c382f3061cf322cfed52c416ac"/></dir></dir></dir></dir><dir name="Helper"><file name="Antidot.php" hash="7bbd2866c65a847e1415badb1ef0d015"/><dir name="CatalogSearch"><file name="Data.php" hash="81cc908609e68035d5714488f913e688"/></dir><file name="Compress.php" hash="9c057cf9d594b07e6d36c1142b9ceae6"/><file name="Data.php" hash="a0695759c4de3f81a07e46784761b7b2"/><dir name="Enterprise"><dir name="Search"><file name="Data.php" hash="8bfe0146c64511f86cb796638b65112f"/></dir></dir><file name="LogExport.php" hash="6d6b262327bf1d920fc2b5b112edfef6"/><dir name="ManaFilters"><file name="Data.php" hash="e5dd65e6e52c03427aa68528cc1f140a"/></dir><file name="Url.php" hash="1d2ee02a8e135bfc4b866f5219f62acd"/><file name="XmlWriter.php" hash="77addcc2f245646c50c3da4bcee16774"/></dir><dir name="Model"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="3cd18414abccea60c5497931bc95e21e"/><file name="Boolean.php" hash="dd0414e0d96833bec6e32aac321c2763"/><file name="Category.php" hash="9224a05ffa914bfcaded1c6c52bd92f9"/><file name="Decimal.php" hash="b9b1e2cff1d0332fab77d101dca4c3d2"/><file name="Item.php" hash="f7cd6f73001c61046277a4807c37c73b"/><file name="Price.php" hash="7529be0313a19896993f92eeb9dfc8a9"/></dir></dir><file name="Layer.php" hash="706000dd944a45f30826eccba2942862"/></dir><dir name="Catalogsearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="a83d6761a949c8196cba33948a48c8bf"/></dir></dir><file name="Layer.php" hash="1425db54170c23fc23e579284e4e1418"/><dir name="Resource"><file name="Attribute.php" hash="80d2a34d746f307109b6bf910b0f2958"/></dir></dir><dir name="Export"><file name="Abstract.php" hash="38d6d6dbb68872d0c46e26c61c38c30e"/><file name="Article.php" hash="91ea6e7acae1519413711abfc076ad0c"/><file name="Category.php" hash="a326b576f9a5f0f90cb5f57f3f155b26"/><file name="Product.php" hash="197f7ba0fe7f96808f2676d31313df22"/></dir><file name="Observer.php" hash="8d7d35c1362b1597a773a749377f9b28"/><dir name="Resource"><file name="Advanced.php" hash="f4810c1af8d5a15f7a424d7baf5fc777"/><dir name="Catalog"><dir name="Product"><file name="Collection.php" hash="144dd8688830992c9300d420ed203a23"/></dir></dir><dir name="Engine"><file name="Abstract.php" hash="6ad534401be39ac25229b11fea341804"/><file name="Antidot.php" hash="8b9b768bb91471260e927d33879b85c0"/></dir></dir><dir name="Search"><file name="Abstract.php" hash="fd71154b987b16f8d13bc3e10a3faeac"/><file name="Search.php" hash="aeef203f9a3794e9ae1e35a825f0eca3"/><file name="Suggest.php" hash="86586ee73cbc7aee0aef8c81d92fb34e"/></dir><dir name="System"><dir name="Config"><file name="ArticleAttribute.php" hash="f3a9596d45f275299f16530a56845c96"/><dir name="Backend"><file name="Engine.php" hash="68c93651655a77c74fd79d1de6d19be3"/></dir><file name="CategoryAttribute.php" hash="9f19b99e16c99b0e8052b1e31d2a6317"/><file name="Dir.php" hash="c80d83280ebc5ab91fd45d246ec47ba3"/><file name="DisableEnable.php" hash="6d08f33a1580b2fd1d58d87248104166"/><file name="Engine.php" hash="a3703b427ee777ce4ea58c8b31604158"/><file name="Facet.php" hash="84e108c99b57f88f6ce73931e5db0944"/><file name="Number.php" hash="7985ea6c495a35173d68291389319f93"/><file name="Options.php" hash="06930da994dec4bb05ebc3f3e8c8abb8"/><file name="ProductAttribute.php" hash="c74ad00177c3a12b03c8684928d12c40"/><file name="PromoteRedirect.php" hash="c167973ea7a0ef09f0e5fa0fd0a08926"/><file name="Sort.php" hash="608358f239a483a8b5b3217284c14896"/><dir name="Suggest"><file name="Type.php" hash="cef491efdb9fcef86d0df75030206a78"/></dir><file name="WSStatus.php" hash="ff4954e15d75dd3139290d96773d0abf"/></dir></dir><dir name="Transport"><file name="Abstract.php" hash="3272c44b08523a9836aa15c835e2ed25"/><file name="File.php" hash="0941fd452279605a2ea6a5d40f857000"/><file name="Ftp.php" hash="8d1aa862bb8f3656bd199d5ce592e0b1"/><file name="Http.php" hash="fb80d47a6d991b9f706418061a2cbd7e"/><file name="Interface.php" hash="32d1d3958e0cd726bc34cae482464ef8"/></dir><file name="Transport.php" hash="de133bf273352bcafead75745fb347ba"/></dir><dir name="Test"><dir name="Block"><dir name="System"><dir name="Config"><dir name="Button"><file name="AfsStore.php" hash="dcbfefb440b8512b1298b624a3582076"/></dir></dir></dir></dir><dir name="Model"><dir name="Export"><file name="Article.php" hash="c2d43ccf7c9b6648b633d122c657f27d"/><file name="Category.php" hash="c29dbe5ffb63eae4d51e57f7ff298bd3"/><dir name="Product"><dir name="fixtures"><file name="testWriteImageUrl.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWriteProductUrl.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWriteProperties.yaml" hash="d434749b80908bbceefd5781e2d0e998"/><file name="testWriteXml.yaml" hash="c53ef98d6dea648dc63cc34ce3ee9509"/></dir><dir name="providers"><file name="testWriteImageUrl.yaml" hash="666c33585c611bcc0b0ebe6e87dce1fc"/><file name="testWriteProductUrl.yaml" hash="18f511460efea04586fc888f5c85b3ea"/></dir></dir><file name="Product.php" hash="d2f3b44893933e339db77ba0515d1c3b"/></dir><dir name="Observer"><dir name="fixtures"><file name="testGetDefaultContext.yaml" hash="e9c8aa4acd4e2c3af2e69c8eb04996bc"/></dir><dir name="providers"><file name="testGetOwnerForFilename.yaml" hash="c5c07e73f536f9ffacc0c3ff6b5a13d1"/></dir></dir><file name="Observer.php" hash="86536c523b1249b9d100a5dc40ea7793"/><dir name="Resource"><dir name="Engine"><file name="Antidot.php" hash="7e59165d905a8679fe282a9dd8d0e285"/></dir></dir><dir name="System"><dir name="Config"><dir name="Sort"><dir name="expectations"><file name="testToOptionArray.yaml" hash="13fc5b4c17962fb267f443d03a2219b2"/></dir><dir name="fixtures"><file name="testToOptionArray1.yaml" hash="f1e09ff12a4c13817d3aafd9254d3f7c"/><file name="testToOptionArray2.yaml" hash="160c861aa7adf28b4d3dc1423dcc8d84"/><file name="testToOptionArray3.yaml" hash="bbb2d78972449929cac497c62ec6fef8"/></dir></dir><file name="Sort.php" hash="8173c08ae65d529ace25a745ffd4b3e6"/></dir></dir></dir><file name="PHPUnitUtil.php" hash="2a128a7c19f4c37cb9dd7fc60e679693"/></dir><dir name="controllers"><dir name="Admin"><file name="PushController.php" hash="fb131afc3d26e5e591968e8fa3ed5375"/></dir><dir name="Front"><file name="SearchController.php" hash="474f1bd0136e3bdea38e9991df361679"/></dir></dir><dir name="etc"><file name="config.xml" hash="ad7a33972038da10d70414ba4be650db"/><file name="system.xml" hash="f6e7ac229fe171ef4896ea9c97643aef"/></dir><dir name="sql"><dir name="Antidot_setup"><file name="mysql4-install-0.9.php" hash="62672bc47ea92dbd46966fb76e4251e0"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="antidot"><dir name="catalog"><dir name="layer"><file name="category.phtml" hash="3ec81f7b3e3b947317da8664c8e15927"/><file name="filter.phtml" hash="2304baebff9b798e0ebd977fbc891346"/></dir></dir><dir name="catalogsearch"><file name="result.phtml" hash="12c082ddff0e6c4fef74630b8253face"/></dir></dir></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="antidot.xml" hash="654b0cbb9d7c3f7a0a506e3f6adf164b"/></dir><dir name="template"><dir name="antidot"><dir name="catalogsearch"><dir name="result"><file name="category.phtml" hash="7413580b825508f2cfc08566d62369ae"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="MDN_Antidot.xml" hash="988c6b7e9da4e50f1727956833ab1696"/></dir></target><target name="magelocale"><dir name="de_AT"><file name="MDN_Antidot.csv" hash="f73ff4aa6f983793957a6b295e8e6488"/></dir><dir name="de_CH"><file name="MDN_Antidot.csv" hash="f73ff4aa6f983793957a6b295e8e6488"/></dir><dir name="de_DE"><file name="MDN_Antidot.csv" hash="f73ff4aa6f983793957a6b295e8e6488"/></dir><dir name="es_AR"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_CL"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_CO"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_CR"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_ES"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_MX"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_PA"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_PE"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="es_VE"><file name="MDN_Antidot.csv" hash="7a6a749b1da8b3fca7823e8b08f53add"/></dir><dir name="fr_CA"><file name="MDN_Antidot.csv" hash="5a408d02979b224a1387c1be415caa37"/></dir><dir name="fr_FR"><file name="MDN_Antidot.csv" hash="aed12e90a30b556952e5c33dd904867a"/></dir></target><target name="mageweb"><dir name="js"><dir name="mdn"><dir name="antidot"><file name="CollapsibleLists.js" hash="86792ecde0c2759ba85e0d863dd147ce"/></dir></dir></dir></target><target name="magelib"><dir name="antidot"><dir name="AFS"><dir name="ACP"><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="acpConnectorTest.php" hash="25a8194f3dc8895640df4f4bba895d8e"/><file name="acpQueryTest.php" hash="74ad65a4af639a409ee72a75a2a043d6"/><file name="acpReplysetHelperTest.php" hash="4f0a0d471a06e139cd11c715b67ebe81"/><file name="acpResponseHelperTest.php" hash="6d30f99108db0d9956aef9ba5e1d88df"/><file name="acpTest.php" hash="d6119d150543e7943ba4e9907901ae5d"/></dir><file name="afs_acp.php" hash="78dbfbc92f68469c92898f1da4263e68"/><file name="afs_acp_configuration.php" hash="2d644cc6c5bf2cdaeca5780576c4bf0e"/><file name="afs_acp_connector.php" hash="cf872314b38a86ebe7bb56b19bce9236"/><file name="afs_acp_exception.php" hash="f610d2cc37a15d4b981d7b43939414ad"/><file name="afs_acp_query.php" hash="ced0629355f5d4fc1c219d1adb03297d"/><file name="afs_acp_query_manager.php" hash="b3348972a850c904fc664b4e27671439"/><file name="afs_acp_reply_helper.php" hash="b0259f24f10d2e92ed6e3b8cdaaacc44"/><file name="afs_acp_replyset_helper.php" hash="07e7fdb88a42a399c96261c47ffb0231"/><file name="afs_acp_response_helper.php" hash="33a66106fd3a94194514a0d8d39af1cd"/></dir><file name="Makefile" hash="7bb31592939024f74745d6b6cb7fec0b"/><dir name="SEARCH"><dir name="FILTER"><file name="Makefile" hash="d42338199c6857ded179af2117b9f571"/><dir name="TEST"><file name="Makefile" hash="ab37090c6c5e7af1b260376237737700"/><file name="filterBuilderTest.php" hash="161ff5c8e73914eef884d17456afa133"/><file name="filterCombinationTest.php" hash="2162288d5255d3b24fe94d75b939aa51"/><file name="filterTest.php" hash="1682c0a4d50158a8d2c9369d30e45a18"/><file name="groupFilterTest.php" hash="1ebe8ce7344ed64b93cf94632d3b0184"/></dir><file name="afs_combinable_filter.php" hash="336e6c6bc9ebae3f58602d23ef734182"/><file name="afs_combinator_filter.php" hash="e2fc560b9c0c31f20c73f2057a8b7b69"/><file name="afs_filter.php" hash="1efc032fd2615c82c350f69ba11860fa"/><file name="afs_filter_exception.php" hash="ccce583c63a4a65f7f0a27fc4a487505"/><file name="afs_filter_wrapper.php" hash="30dec104456abc037019ad93922b5afd"/><file name="afs_group_filter.php" hash="b95fa3bc0e26bc39dfc53a6010bce32f"/><file name="afs_operator_filter.php" hash="c7ea43c8d64eedbe33397f61737e0226"/><file name="afs_valued_filter.php" hash="483653071734f77972c9b9771e187d82"/></dir><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="clientDataHelperTest.php" hash="523abcf4ab7a42e16c39c2b02bae927c"/><file name="clusterHelperTest.php" hash="e112e7c756f63c8e8ceb554281b418c9"/><file name="conceptHelperTest.php" hash="b44e39b62d0537bf1f7b7feb23f8111f"/><file name="facetDefaultTest.php" hash="382e4ea35e1c7173371b4a84046a38e5"/><file name="facetHelperTest.php" hash="2c6fbec3f1d4dd6e37c089ac835a88b0"/><file name="facetManagerTest.php" hash="bbef8e207c387dbe6a26142fd55264d5"/><file name="facetTest.php" hash="f0264af2550394a4a3d944bc86dac667"/><file name="facetValuesSortOrderTest.php" hash="b650080bf9b2cce2ac42a245cb84c911"/><file name="feedCoderTest.php" hash="f2b5dfdd4fa3c4e5d14c790d15235146"/><file name="filterCoderTest.php" hash="46249fa13edccf1e5d5000daf2573b77"/><file name="headerHelperTest.php" hash="62185c34e1e9015bb12014d719287f06"/><file name="helperConfigurationTest.php" hash="be3f74e53e27744e8214f3c341172796"/><file name="intervalTest.php" hash="912389dad049853f6bf0b4eab2af5034"/><file name="metaHelperTest.php" hash="080f160b54636c4eee743544a6a12bee"/><file name="pagerHelperTest.php" hash="b756d39c29c1d3cfb2733ab13062542e"/><file name="promoteReplyHelperTest.php" hash="7cbb68a7f50c2bd2ef11a085ac94deb2"/><file name="promoteReplysetHelperTest.php" hash="749180b072997539d322c88c97c586d6"/><file name="queryCoderTest.php" hash="064979c30a7e215c486e34abce79b1b5"/><file name="queryTest.php" hash="c48bc5a88a788bbc4a26604b86d60454"/><file name="replyHelperTest.php" hash="5b3cfec02c640282bf4fec92353801d6"/><file name="replysetHelperTest.php" hash="fdb55d9a09f9198fb26b5fab3edc58c3"/><file name="responseHelperTest.php" hash="35969ff7882d97b93aa874fafd4b55c3"/><file name="searchConnectorTest.php" hash="9201de573884b643041b6c32bc535e7e"/><file name="searchQueryManagerTest.php" hash="2334d06f4247abfd69c2b4dc842cc404"/><file name="searchTest.php" hash="eeb7a86bd5b48108434fb93da4e0c0f2"/><file name="spellcheckHelperTest.php" hash="49960fb90055dcf265ef41e491c11325"/><file name="spellcheckTextVisitorTest.php" hash="203f0d08f548a39135517a41f6e9e43a"/><file name="textVisitorTest.php" hash="b722845dd0f5f953574cb51284ad025b"/></dir><file name="afs_base_reply_helper.php" hash="c1c3961f3cc03924fda382adf6e6c419"/><file name="afs_base_replyset_helper.php" hash="096b124a3ebdc6e8d6beb359bd8bb7c5"/><file name="afs_client_data_exception.php" hash="899957af974d04aa7eaca44903a7f86c"/><file name="afs_client_data_helper.php" hash="b2383fc244d6bbcda6de7387ae7b1b0d"/><file name="afs_cluster_exception.php" hash="86d97623db7aebaa28a20857ce2cf17f"/><file name="afs_cluster_helper.php" hash="60b7fbcc869a672929ef9fc6d840d2b2"/><file name="afs_coder_base.php" hash="fb87fbea43d12695154b3b6102e2a019"/><file name="afs_coder_interface.php" hash="3b179b2513e215751ee4edd190b2a719"/><file name="afs_concept_helper.php" hash="982cf3d2063c565cf19cc6136b049066"/><file name="afs_count.php" hash="9f83f3baa3cf4462c0db786f4eea479a"/><file name="afs_facet.php" hash="b5d89249e71741b0558dbb762ad1a077"/><file name="afs_facet_combination.php" hash="005e9742ee032194b86856195dd59f7d"/><file name="afs_facet_default.php" hash="cbcb5d28b7b00815ce5248017065e84b"/><file name="afs_facet_exception.php" hash="f1f0afdbf9a727b53c4731e5a40ac417"/><file name="afs_facet_helper.php" hash="63bf1e4b92cf1e1bdf06b7da54afd5f9"/><file name="afs_facet_helper_retriever.php" hash="5628cc41c50ab25fd3336df302d903f4"/><file name="afs_facet_layout.php" hash="c83f6fef1c13ba3cda667c611841ff87"/><file name="afs_facet_manager.php" hash="3f022435274cbb500699ea054461f4bf"/><file name="afs_facet_mode.php" hash="17f17d277168a017e66364be5ac85394"/><file name="afs_facet_sort.php" hash="0d7ba4059b10da9981b9c801355cb874"/><file name="afs_facet_type.php" hash="6df82cbfa627629f9523437994d1fbb1"/><file name="afs_facet_value_formatter.php" hash="d6580281f9ef5c0820615ac385aae863"/><file name="afs_facet_values_sort_mode.php" hash="17def98365132c810515f8cf3c6fb006"/><file name="afs_facet_values_sort_order.php" hash="f95f77cb5dd7015e4f2e6094ddba49a6"/><file name="afs_feed_coder.php" hash="0df08c2d4e30c9b99d56ce7fdbc1b40b"/><file name="afs_filter_coder.php" hash="6a528ece8d5999aab9eb0fffabea25e3"/><file name="afs_header_helper.php" hash="3b30d839efe9128773c82d47cbd591b8"/><file name="afs_helper_configuration.php" hash="dbd0378574fbc5729babfbddfef0fd67"/><file name="afs_interval.php" hash="dbf9749881be0a2b063f8a33dff214f3"/><file name="afs_interval_exception.php" hash="40f223de231df03aae59596c1a493065"/><file name="afs_meta_helper.php" hash="8403689868c98db725ebd11748508c8b"/><file name="afs_pager_helper.php" hash="8e93f8c060d2fedabbcbad5607a27807"/><file name="afs_producer.php" hash="7c8c515ccb8126523fa0d09a7f759dd5"/><file name="afs_promote_reply_helper.php" hash="b582c3064f0dff62514e28e91d715cf9"/><file name="afs_promote_replyset_helper.php" hash="fdefc6f8a686addb31ea9b6c0a3fa5ad"/><file name="afs_query.php" hash="015bc3e7d007943708f064a34582d6ef"/><file name="afs_query_coder.php" hash="87021c05f45168f11eae4045b999b347"/><file name="afs_query_coder_interface.php" hash="dd16f17b3606a7418c1c714475b19b51"/><file name="afs_query_object_interface.php" hash="a9af13e2c856e4136ccadfff60f72d36"/><file name="afs_raw_text_visitor.php" hash="fd574583c4c9110165c1cadc67b832de"/><file name="afs_reply_helper.php" hash="04a65217b88a53a951d687455986b2a6"/><file name="afs_reply_helper_factory.php" hash="119fba6f39a19ef27fb8c864158cc7a2"/><file name="afs_replyset_helper.php" hash="190b08443559c28a204e8cfb6826d441"/><file name="afs_response_exception.php" hash="0a865bb92fb700ae555dcb5ae675f644"/><file name="afs_response_helper.php" hash="1805fd45c11ef77121867bb84850bedd"/><file name="afs_search.php" hash="11770cf52edd84331988bf61228ab24a"/><file name="afs_search_connector.php" hash="17242fb6536f4596b2c0198a16986310"/><file name="afs_search_query_manager.php" hash="91ee821f87eaeb9f14d5313a19b3f807"/><file name="afs_sort_builtins.php" hash="0cc1617a62f1a834a28d7d2ac249b081"/><file name="afs_sort_coder.php" hash="543015ed1d40caa40317a231476ea06c"/><file name="afs_sort_order.php" hash="7755deb99386650c9974871474168cda"/><file name="afs_spellcheck_helper.php" hash="bb5465848ada7a9df9875f2565fb9686"/><file name="afs_spellcheck_text_helper.php" hash="3ca5c3118660aa600aadb504ceff6c4c"/><file name="afs_spellcheck_text_visitor.php" hash="c44c23ae21f61b065e457911bbc45ed2"/><file name="afs_text_helper.php" hash="59c4ae24560948c3af0f4adbf6bd1803"/><file name="afs_text_visitor.php" hash="867b44a280403cd4567358ec6d59588a"/></dir><file name="afs_configuration_base.php" hash="f26dd9efda4923cc2c71057f21be97d9"/><file name="afs_connector.php" hash="3e000a037ca1d64587a90f53dd6c888b"/><file name="afs_exception.php" hash="c1840fe279f9cb313cec151012ed4513"/><file name="afs_origin.php" hash="a6b7e39a687210572c116afcbea0e7cb"/><file name="afs_query_base.php" hash="63b8fba7bb5c17150e4af0e765deab27"/><file name="afs_response_helper_base.php" hash="b087f7bdad35ed0526566042ef9afc8c"/></dir><dir name="AIF"><file name="Makefile" hash="2d232abf9913fcabb44033d5e5d1ebfd"/><dir name="TEST"><file name="Makefile" hash="24d3030d27e88732028d14fb1d81c203"/><file name="afsMultipartResponseTest.php" hash="70a64d0d599ea01806fac2126fb3680a"/><file name="authenticationTest.php" hash="2e476e9ab15ee221ddd63bb555262a28"/><file name="bowsInformationTest.php" hash="3bbfe71f431a35f0285afdca40906874"/><file name="documentManagerTest.php" hash="ad90a6146f5aeee383355bb05425b3dd"/><file name="documentTest.php" hash="59b204b10b90cd764b259ad4c2bc043a"/><file name="pafConnectorTest.php" hash="ac2928b501d9ea167af43dbf3adafa7d"/><file name="pafLiveTest.php" hash="92862c31d151c34b2caf44bff9d0fb80"/></dir><file name="afs_about_connector.php" hash="8972264a9b7cce237ad1a4b47852b529"/><file name="afs_authentication.php" hash="4285035550c9681a047b85abbca64936"/><file name="afs_bows_connector.php" hash="47a6bcafd5eba2361d2cea409f60d3f7"/><file name="afs_bows_connector_interface.php" hash="8fdf9749f0500a39741d696feb55af14"/><file name="afs_bows_exception.php" hash="1bd8657a37b8b4a9e08bfc4eb6b7e416"/><file name="afs_bows_information.php" hash="1f96a4cd84b2332f1186f9e0cea8542d"/><file name="afs_bows_information_cache.php" hash="1ae9a9243342c4e58a52e70473b68472"/><file name="afs_document.php" hash="6a04f43252f67f6dd90cc23d03fa2b63"/><file name="afs_document_manager.php" hash="8c5c0105d9337b7ae6a9f041f643ea88"/><file name="afs_multipart_response.php" hash="f2077c9eaf121fabdb2fc26c23b2e256"/><file name="afs_paf_connector.php" hash="96111b0536c83874b7c06ada5577106b"/><file name="afs_paf_live_connector.php" hash="9efeb2716f6d95e666f9c37726869fe7"/><file name="afs_paf_upload_reply.php" hash="0cb4905d1c894637d5e6acbd2cffc112"/><file name="afs_token_authentication.php" hash="1f003310f156f0a71db1d273375172d8"/><file name="afs_user_authentication.php" hash="03deeead93ee32753f2f7f80cfc011f4"/></dir><dir name="COMMON"><file name="Makefile" hash="7bb31592939024f74745d6b6cb7fec0b"/><dir name="TEST"><file name="Makefile" hash="d568cfe3683543f363312aa4b6d2bbad"/><file name="languageTest.php" hash="ad0f75b1c2f320c81eba32cade86191c"/><file name="toolsTest.php" hash="9276cb1a275d697f8e8365f2ac340cdf"/><file name="userSessionManagerTest.php" hash="b2b78d6fa156f1a61065f8ee5bfc6e0b"/></dir><file name="afs_connector_base.php" hash="b6b1f091ec71e5b92e4a1e5ca958255f"/><file name="afs_connector_interface.php" hash="68ad5e20a861b85dbf198f79cd2afd4c"/><file name="afs_exception.php" hash="c45bcd565a4124da5d6b23a21d5845a5"/><file name="afs_helper_base.php" hash="839cca78a663c3a22b4a8e35d1460129"/><file name="afs_helper_format.php" hash="30a3f6e945db7412ef95e83e7b0b5898"/><file name="afs_language.php" hash="277acb15b86089b37c812c47f2141d3c"/><file name="afs_service.php" hash="12c00c906e130860120552c40fa9dbc2"/><file name="afs_service_status.php" hash="1dee172850a76b46987534df89013878"/><file name="afs_tools.php" hash="26f6c01c5a61987925385e7a35260399"/><file name="afs_user_session_manager.php" hash="abd625f6b7b5cecf386dac9d82887764"/><file name="afs_versions.php" hash="29dda789ed7b363dc512e3c52a9d80ce"/><dir name="php-SAI"><file name="README.md" hash="63ab581c83fe44918e6d074e20f08f95"/><dir name="lib"><dir name="Curl"><file name="Handle.php" hash="0fc7132737da7cee7df6b974447864ac"/></dir><file name="Curl.php" hash="358e4d3afca2035ee4d3f99f372ed15a"/><file name="CurlInterface.php" hash="714fa045dd4546d0c92cd022efb09422"/><file name="CurlStub.php" hash="fbdc0ece6321c5b5a1e27a65449f4a1f"/><dir name="rb_temp"><file name="HttpClient.php" hash="091b91c98acf9f1cd6c3d6d75cddfb88"/><file name="MultiCurl.php" hash="916e85d73bae6e136f889166ebc6db17"/><file name="SimpleCurl.php" hash="c296966a8bda96e03b464a1d3a9c8e06"/></dir></dir><dir name="tests"><file name="SAI_CurlStubTest.php" hash="bce69cbb17a40bd4eeba6bad1133216e"/></dir><file name=".gitignore" hash="455ed27e3ee2636761d16f833e4d3984"/></dir></dir><file name="COPYING" hash="b234ee4d69f5fce4486a80fdaf4a4263"/><file name="COPYING.LESSER" hash="4fbd65380cdd255951079008b364516c"/><file name="FAQ.md" hash="7d7c886674d70a0047303c5d93de6165"/><file name="Makefile" hash="225475a5a4a0204cecbb77621ff38bb2"/><file name="README.md" hash="c38fa0e7c5aa391c2842affdf89c4795"/><file name="afs_lib.doxygen" hash="4f5839371b1b6ba64f76029bc5865dbf"/><file name="afs_lib.php" hash="4e93523d71e8b083654ac85cb24f8c68"/><file name="afs_version.php" hash="c8db9ed5ee1881b6e31a60a471a81b8a"/><dir name="doc"><file name="afs_filter_documentation.dox" hash="3bf4b96e25d95ce5953b822038c6f135"/><file name="afs_paf_upload.dox" hash="d36893db0234f171e6cfb43f6e13d47c"/><file name="afs_search.dox" hash="b1c5ab8728703822f910852cd17561f4"/><file name="afs_search_coder.dox" hash="77709e1bc691301017f0982e0348a9b9"/><file name="afs_search_query.dox" hash="21dcd1734a165a4cb3b4f62c42a6a0be"/><file name="afs_search_reply.dox" hash="cdb1d42447671f4352927b40b3f8f37d"/><dir name="data"><file name="acp_helper_example.php" hash="2815890e7afbae78e7eb4e6fc5c88f6f"/><file name="full_example.php" hash="e152a964d06e55de460c596070c714d8"/><file name="full_lightweight_example.php" hash="eac3bb2d251052f547a9f737e5cd0461"/><file name="raw_example.php" hash="ed86e971114243f3b28fa39bcaa972b8"/><dir name="templates"><file name="error_template.html" hash="70f44bd0f45470d379a11d0a2fe507e4"/><file name="facet_template.html" hash="6836005a7dae45e9415273f1eb6b78e2"/><file name="facet_values_template.html" hash="9b41f2b55a1cecae5724b4fcd4a46cfb"/><file name="meta_template.html" hash="e664a3bb222d272ce2451fb10bf46de4"/><file name="pager_template.html" hash="2700ab5b60a1f9553b1c39374fda63d4"/><file name="result_template.html" hash="1572a4ef4e8dda0b3db1ea77bbed4a98"/><file name="spellcheck_template.html" hash="8042054a1f5a271b47c77f81436c4791"/></dir></dir><file name="detailled_integration_example_with_template.dox" hash="26ef377a6ef546b636a0e254d11d01f5"/><file name="lightweight_integration_example_with_template.dox" hash="5a388d2dbfad63ad6ec353407b79a6bb"/><file name="logo-antidot-long-200x41.png" hash="1ceac3fff767fb5e395bd767344a3d13"/><file name="main.dox" hash="ca3e97f95deead927fb3298ecafbad5e"/><file name="raw_integration_example.dox" hash="56a7126d008c2e49abdf9bf0b5ec9717"/><file name="template_prerequisites.dox" hash="baa24a943e19ff3654227850bd316abb"/><file name="templates_in_details.dox" hash="5e8db94382f1fbd6c4e0b424a9edc9a3"/></dir><file name="rules.mk" hash="9e3570d254b92d571849718d98492192"/><dir name="scripts"><file name="gen_doc.sh" hash="0f6fc60aca94da563397d3c710bd9d33"/><file name="increment_version.sh" hash="431db9c60d2f94d251be07957787fcb0"/><file name="print_version.sh" hash="a05ddc19cd27ff185721fe2bd0cffc25"/><file name="version_management.sh" hash="3d5ecd39f45ba081144b3033dbd14330"/></dir><file name=".gitignore" hash="14de6527ce1e67cea1543b75a2322165"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="mdn"><dir name="antidot"><file name="CollapsibleLists.css" hash="c956d83facc41a97bf14726dcb953edb"/></dir></dir></dir><dir name="images"><dir name="mdn"><dir name="antidot"><file name="base.gif" hash="1f71b021e061a4948d69adc4ff10ccad"/><file name="button-closed.png" hash="563b78324e0712c0902cb4f77cb9eb86"/><file name="button-open.png" hash="c710849a0d2b61ad1f0fc36c0e59d131"/><file name="button.png" hash="97f3055c5046c851eea2dad7e5227508"/><file name="cd.gif" hash="f41037663522fab5c5c31530c7fa43d8"/><file name="empty.gif" hash="df22aff6e941ff1cc577333d1712b584"/><file name="folder.gif" hash="ea16980ab437fa6ba4aba3d480e83e9e"/><file name="folderopen.gif" hash="18aa3d75315bf95bf080357733437fcc"/><file name="globe.gif" hash="d6b48614cf8dc9553e077c19197637d2"/><file name="imgfolder.gif" hash="1d488d377762e65ab4e8b691ba01e5a4"/><file name="join.gif" hash="4d5d614e0da056df815a4306d6368692"/><file name="joinbottom.gif" hash="4b3daa7f2cc584f1aac0d142275d7cba"/><file name="line.gif" hash="63ab38a6203262f15ca46c631232ea2c"/><file name="list-item-contents.png" hash="00ae24d5bc76df9eedaea597859963e4"/><file name="list-item-last-open.png" hash="615ddd71f81b240e9ed7d4e383b2c01a"/><file name="list-item-last.png" hash="e2bfb790f46855c378e50f3c0a82ea01"/><file name="list-item-open.png" hash="732d1cc59f3a488c89c624eb434eac98"/><file name="list-item-root.png" hash="5529d21e7ec68e9cb750a4895ff0b480"/><file name="list-item.png" hash="e03ec1bf3d9e16bb3005ccf8d26eaa6c"/><file name="minus.gif" hash="d647fbbd0ec410b8f3bb3357b62eedcf"/><file name="minusbottom.gif" hash="b09d684cca7135ef728141aaf2464baa"/><file name="musicfolder.gif" hash="21ece951734f23adb2f75befe1f31fc1"/><file name="nolines_minus.gif" hash="eb2243a354ffcfac93ba0fe948f7167d"/><file name="nolines_plus.gif" hash="ec92b634b63608fb4b0dbf114e3b89e1"/><file name="page.gif" hash="c25b136c1cb3bb145495c25b35d93754"/><file name="plus.gif" hash="5c55d798909c553deca31d610bd18fac"/><file name="plusbottom.gif" hash="1924ce363c38a992f888a4df48c0b274"/><file name="question.gif" hash="ea0ca196ce0ebfd625cc1210abfdec6c"/><file name="trash.gif" hash="6cbfd3ed29531044aed9b4edb3cca9ad"/></dir></dir></dir></dir></dir></dir></target></contents>
|
23 |
<compatible/>
|
24 |
<dependencies><required><php><min>5.2.0</min><max>5.6.0</max></php><extension><name>curl</name><min/><max/></extension></required></dependencies>
|
25 |
</package>
|
shell/antidotExport.php
CHANGED
@@ -1,4 +1,17 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
require_once 'abstract.php';
|
4 |
|
@@ -15,9 +28,9 @@ class MDN_Shell_AntidotExport extends Mage_Shell_Abstract
|
|
15 |
|
16 |
$start = time();
|
17 |
|
18 |
-
Mage::getModel('Antidot/Observer')->categoriesFullExport();
|
19 |
|
20 |
-
Mage::getModel('Antidot/Observer')->catalogFullExport();
|
21 |
|
22 |
return true;
|
23 |
}
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* It is also available through the world-wide-web at this URL:
|
9 |
+
* http://opensource.org/licenses/osl-3.0.php
|
10 |
+
*
|
11 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
12 |
+
* @author : Antidot devmagento@antidot.net
|
13 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
+
*/
|
15 |
|
16 |
require_once 'abstract.php';
|
17 |
|
28 |
|
29 |
$start = time();
|
30 |
|
31 |
+
Mage::getModel('Antidot/Observer')->categoriesFullExport('cli');
|
32 |
|
33 |
+
Mage::getModel('Antidot/Observer')->catalogFullExport('cli');
|
34 |
|
35 |
return true;
|
36 |
}
|
shell/antidotExportCategory.php
CHANGED
@@ -1,4 +1,17 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
require_once 'abstract.php';
|
4 |
|
@@ -15,7 +28,7 @@ class MDN_Shell_AntidotExportCategory extends Mage_Shell_Abstract
|
|
15 |
|
16 |
$start = time();
|
17 |
|
18 |
-
Mage::getModel('Antidot/Observer')->categoriesFullExport();
|
19 |
|
20 |
return true;
|
21 |
}
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* It is also available through the world-wide-web at this URL:
|
9 |
+
* http://opensource.org/licenses/osl-3.0.php
|
10 |
+
*
|
11 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
12 |
+
* @author : Antidot devmagento@antidot.net
|
13 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
+
*/
|
15 |
|
16 |
require_once 'abstract.php';
|
17 |
|
28 |
|
29 |
$start = time();
|
30 |
|
31 |
+
Mage::getModel('Antidot/Observer')->categoriesFullExport('cli');
|
32 |
|
33 |
return true;
|
34 |
}
|
shell/antidotExportInc.php
CHANGED
@@ -1,4 +1,17 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
require_once 'abstract.php';
|
4 |
|
@@ -15,7 +28,7 @@ class MDN_Shell_AntidotExportInc extends Mage_Shell_Abstract
|
|
15 |
|
16 |
$start = time();
|
17 |
|
18 |
-
Mage::getModel('Antidot/Observer')->catalogIncExport();
|
19 |
|
20 |
return true;
|
21 |
}
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* It is also available through the world-wide-web at this URL:
|
9 |
+
* http://opensource.org/licenses/osl-3.0.php
|
10 |
+
*
|
11 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
12 |
+
* @author : Antidot devmagento@antidot.net
|
13 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
+
*/
|
15 |
|
16 |
require_once 'abstract.php';
|
17 |
|
28 |
|
29 |
$start = time();
|
30 |
|
31 |
+
Mage::getModel('Antidot/Observer')->catalogIncExport('cli');
|
32 |
|
33 |
return true;
|
34 |
}
|
shell/antidotExportProduct.php
CHANGED
@@ -1,4 +1,17 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
require_once 'abstract.php';
|
4 |
|
@@ -15,7 +28,7 @@ class MDN_Shell_AntidotExport extends Mage_Shell_Abstract
|
|
15 |
|
16 |
$start = time();
|
17 |
|
18 |
-
Mage::getModel('Antidot/Observer')->catalogFullExport();
|
19 |
|
20 |
return true;
|
21 |
}
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* It is also available through the world-wide-web at this URL:
|
9 |
+
* http://opensource.org/licenses/osl-3.0.php
|
10 |
+
*
|
11 |
+
* @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
|
12 |
+
* @author : Antidot devmagento@antidot.net
|
13 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
+
*/
|
15 |
|
16 |
require_once 'abstract.php';
|
17 |
|
28 |
|
29 |
$start = time();
|
30 |
|
31 |
+
Mage::getModel('Antidot/Observer')->catalogFullExport('cli');
|
32 |
|
33 |
return true;
|
34 |
}
|