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.3 |
Comparing to | |
See all releases |
Code changes from version 1.1.2 to 1.1.3
- app/code/community/MDN/Antidot/Block/Catalogsearch/Result.php +0 -2
- app/code/community/MDN/Antidot/Block/System/Config/Fieldset/Notice.php +56 -0
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Additional.php +1 -1
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/AdditionalFeed.php +1 -1
- 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 +7 -6
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Identifier.php +1 -1
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ProductAdditionalFacet.php +1 -1
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Sort.php +1 -1
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/CategoryAttribute.php +1 -1
- app/code/community/MDN/Antidot/Block/System/Config/Form/Field/ProductAttribute.php +1 -1
- app/code/community/MDN/Antidot/Block/System/Config/Html/Export.php +1 -1
- app/code/community/MDN/Antidot/Helper/Compress.php +1 -1
- app/code/community/MDN/Antidot/Helper/Data.php +41 -3
- app/code/community/MDN/Antidot/Helper/XmlWriter.php +1 -1
- app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Category.php +1 -1
- app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Item.php +1 -1
- app/code/community/MDN/Antidot/Model/Export/Abstract.php +127 -2
- app/code/community/MDN/Antidot/Model/Export/Article.php +1 -1
- app/code/community/MDN/Antidot/Model/Export/Product.php +117 -35
- app/code/community/MDN/Antidot/Model/Observer.php +22 -50
- app/code/community/MDN/Antidot/Model/Resource/Engine/Abstract.php +6 -6
- app/code/community/MDN/Antidot/Model/Resource/Engine/Antidot.php +2 -3
- app/code/community/MDN/Antidot/Model/Search/Search.php +17 -6
- app/code/community/MDN/Antidot/Model/System/Config/Facet.php +3 -2
- app/code/community/MDN/Antidot/Model/Transport.php +1 -1
- app/code/community/MDN/Antidot/Test/Helper/Data.php +36 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Abstract.php +34 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Abstract/fixtures/testGarbageCollection.yaml +3 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Category.php +13 -4
- app/code/community/MDN/Antidot/Test/Model/Export/Category/fixtures/testEmptyFile.yaml +19 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Product.php +33 -0
- app/code/community/MDN/Antidot/Test/Model/Export/Product/fixtures/testGetProductCategories.yaml +101 -0
- app/code/community/MDN/Antidot/Test/Model/System/Config/Facet.php +45 -2
- app/code/community/MDN/Antidot/controllers/Admin/PushController.php +2 -2
- app/code/community/MDN/Antidot/etc/config.xml +24 -1
- app/code/community/MDN/Antidot/etc/system.xml +9 -2
- app/design/frontend/{default → base}/default/layout/antidot.xml +1 -0
- app/design/frontend/{default → base}/default/template/antidot/catalogsearch/result/category.phtml +0 -0
- app/locale/de_AT/MDN_Antidot.csv +6 -1
- app/locale/de_CH/MDN_Antidot.csv +6 -1
- app/locale/de_DE/MDN_Antidot.csv +6 -1
- app/locale/es_AR/MDN_Antidot.csv +7 -2
- app/locale/es_CL/MDN_Antidot.csv +7 -2
- app/locale/es_CO/MDN_Antidot.csv +7 -2
- app/locale/es_CR/MDN_Antidot.csv +7 -2
- app/locale/es_ES/MDN_Antidot.csv +7 -2
- app/locale/es_MX/MDN_Antidot.csv +7 -2
- app/locale/es_PA/MDN_Antidot.csv +7 -2
- app/locale/es_PE/MDN_Antidot.csv +7 -2
- app/locale/es_VE/MDN_Antidot.csv +7 -2
- app/locale/fr_CA/MDN_Antidot.csv +6 -1
- app/locale/fr_FR/MDN_Antidot.csv +6 -1
- package.xml +4 -4
- shell/antidotExport.php +3 -1
- shell/antidotExportCategory.php +3 -1
- shell/antidotExportInc.php +3 -1
- shell/antidotExportProduct.php +5 -3
app/code/community/MDN/Antidot/Block/Catalogsearch/Result.php
CHANGED
@@ -85,8 +85,6 @@ class MDN_Antidot_Block_CatalogSearch_Result extends Mage_CatalogSearch_Block_Re
|
|
85 |
*/
|
86 |
public function _toHtml()
|
87 |
{
|
88 |
-
$this->setTemplate('antidot/catalogsearch/result.phtml');
|
89 |
-
|
90 |
return parent::_toHtml();
|
91 |
}
|
92 |
}
|
85 |
*/
|
86 |
public function _toHtml()
|
87 |
{
|
|
|
|
|
88 |
return parent::_toHtml();
|
89 |
}
|
90 |
}
|
app/code/community/MDN/Antidot/Block/System/Config/Fieldset/Notice.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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_Fieldset_Notice
|
17 |
+
extends Mage_Adminhtml_Block_Abstract
|
18 |
+
implements Varien_Data_Form_Element_Renderer_Interface
|
19 |
+
{
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Render fieldset html
|
23 |
+
*
|
24 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
25 |
+
* @return string
|
26 |
+
*/
|
27 |
+
public function render(Varien_Data_Form_Element_Abstract $element)
|
28 |
+
{
|
29 |
+
$helper = Mage::helper('Antidot');
|
30 |
+
$html = '<div class="be2bill-api-notice">';
|
31 |
+
$html .= '<ul style="margin:10px;color:red">';
|
32 |
+
if (!class_exists('DOMDocument')) {
|
33 |
+
$html .= "<li><strong>" . $helper->__("DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither") . "</strong></li>";
|
34 |
+
}
|
35 |
+
if (!class_exists('XSLTProcessor')) {
|
36 |
+
$html .= "<li><strong>" . $helper->__("XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly") . "</strong></li>";
|
37 |
+
}
|
38 |
+
if (!class_exists('ZipArchive')) {
|
39 |
+
$html .= "<li><strong>" . $helper->__("ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly") . "</strong></li>";
|
40 |
+
}
|
41 |
+
$extensions = get_loaded_extensions();
|
42 |
+
if (!in_array('curl', $extensions)) {
|
43 |
+
$html .= "<li><strong>" . $helper->__("The curl php extension is not installed, it's required to upload export files") . "</strong></li>";
|
44 |
+
} else {
|
45 |
+
$curl_version = curl_version();
|
46 |
+
if (!isset($curl_version['protocols']) || !in_array("sftp", $curl_version['protocols'])) {
|
47 |
+
$html .= "<li><strong>" . $helper->__("The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded") . "</strong></li>";
|
48 |
+
}
|
49 |
+
}
|
50 |
+
|
51 |
+
$html .= '</ul>';
|
52 |
+
$html .= '</div>';
|
53 |
+
return $html;
|
54 |
+
}
|
55 |
+
|
56 |
+
}
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Additional.php
CHANGED
@@ -46,7 +46,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_Additional extends Mage_A
|
|
46 |
{
|
47 |
if (!$this->_valueRenderer) {
|
48 |
$this->_valueRenderer = $this->getLayout()
|
49 |
-
->createBlock('Antidot/
|
50 |
->setIsRenderToJsTemplate(true);
|
51 |
}
|
52 |
return $this->_valueRenderer;
|
46 |
{
|
47 |
if (!$this->_valueRenderer) {
|
48 |
$this->_valueRenderer = $this->getLayout()
|
49 |
+
->createBlock('Antidot/html_select')
|
50 |
->setIsRenderToJsTemplate(true);
|
51 |
}
|
52 |
return $this->_valueRenderer;
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/AdditionalFeed.php
CHANGED
@@ -46,7 +46,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_AdditionalFeed extends Ma
|
|
46 |
{
|
47 |
if (!$this->_valueRenderer) {
|
48 |
$this->_valueRenderer = $this->getLayout()
|
49 |
-
->createBlock('Antidot/
|
50 |
->setIsRenderToJsTemplate(true);
|
51 |
}
|
52 |
return $this->_valueRenderer;
|
46 |
{
|
47 |
if (!$this->_valueRenderer) {
|
48 |
$this->_valueRenderer = $this->getLayout()
|
49 |
+
->createBlock('Antidot/html_select')
|
50 |
->setIsRenderToJsTemplate(true);
|
51 |
}
|
52 |
return $this->_valueRenderer;
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/DefaultSort.php
CHANGED
@@ -64,7 +64,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_DefaultSort extends Mage_
|
|
64 |
{
|
65 |
if (!$this->_fieldRenderer) {
|
66 |
$this->_fieldRenderer = $this->getLayout()
|
67 |
-
->createBlock('Antidot/
|
68 |
->setIsRenderToJsTemplate(true);
|
69 |
}
|
70 |
return $this->_fieldRenderer;
|
@@ -77,7 +77,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_DefaultSort extends Mage_
|
|
77 |
{
|
78 |
if (!$this->_dirRenderer) {
|
79 |
$this->_dirRenderer = $this->getLayout()
|
80 |
-
->createBlock('Antidot/
|
81 |
->setIsRenderToJsTemplate(true);
|
82 |
}
|
83 |
return $this->_dirRenderer;
|
64 |
{
|
65 |
if (!$this->_fieldRenderer) {
|
66 |
$this->_fieldRenderer = $this->getLayout()
|
67 |
+
->createBlock('Antidot/html_select')
|
68 |
->setIsRenderToJsTemplate(true);
|
69 |
}
|
70 |
return $this->_fieldRenderer;
|
77 |
{
|
78 |
if (!$this->_dirRenderer) {
|
79 |
$this->_dirRenderer = $this->getLayout()
|
80 |
+
->createBlock('Antidot/html_select')
|
81 |
->setIsRenderToJsTemplate(true);
|
82 |
}
|
83 |
return $this->_dirRenderer;
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Facet.php
CHANGED
@@ -76,7 +76,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_Facet extends Mage_Adminh
|
|
76 |
{
|
77 |
if (!$this->_facetRenderer) {
|
78 |
$this->_facetRenderer = $this->getLayout()
|
79 |
-
->createBlock('Antidot/
|
80 |
->setIsRenderToJsTemplate(true);
|
81 |
}
|
82 |
return $this->_facetRenderer;
|
@@ -89,7 +89,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_Facet extends Mage_Adminh
|
|
89 |
{
|
90 |
if (!$this->_orderRenderer) {
|
91 |
$this->_orderRenderer = $this->getLayout()
|
92 |
-
->createBlock('Antidot/
|
93 |
->setIsRenderToJsTemplate(true);
|
94 |
}
|
95 |
return $this->_orderRenderer;
|
@@ -102,7 +102,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_Facet extends Mage_Adminh
|
|
102 |
{
|
103 |
if (!$this->_multipleRenderer) {
|
104 |
$this->_multipleRenderer = $this->getLayout()
|
105 |
-
->createBlock('Antidot/
|
106 |
->setIsRenderToJsTemplate(true);
|
107 |
}
|
108 |
return $this->_multipleRenderer;
|
@@ -147,9 +147,10 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_Facet extends Mage_Adminh
|
|
147 |
$element = $this->getElement();
|
148 |
if ($element->getValue() && is_array($element->getValue())) {
|
149 |
foreach ($element->getValue() as $rowId => $row) {
|
150 |
-
//
|
151 |
-
|
152 |
-
|
|
|
153 |
$row['_id'] = $rowId;
|
154 |
$result[$rowId] = new Varien_Object($row);
|
155 |
$this->_prepareArrayRow($result[$rowId]);
|
76 |
{
|
77 |
if (!$this->_facetRenderer) {
|
78 |
$this->_facetRenderer = $this->getLayout()
|
79 |
+
->createBlock('Antidot/html_select')
|
80 |
->setIsRenderToJsTemplate(true);
|
81 |
}
|
82 |
return $this->_facetRenderer;
|
89 |
{
|
90 |
if (!$this->_orderRenderer) {
|
91 |
$this->_orderRenderer = $this->getLayout()
|
92 |
+
->createBlock('Antidot/html_select')
|
93 |
->setIsRenderToJsTemplate(true);
|
94 |
}
|
95 |
return $this->_orderRenderer;
|
102 |
{
|
103 |
if (!$this->_multipleRenderer) {
|
104 |
$this->_multipleRenderer = $this->getLayout()
|
105 |
+
->createBlock('Antidot/html_select')
|
106 |
->setIsRenderToJsTemplate(true);
|
107 |
}
|
108 |
return $this->_multipleRenderer;
|
147 |
$element = $this->getElement();
|
148 |
if ($element->getValue() && is_array($element->getValue())) {
|
149 |
foreach ($element->getValue() as $rowId => $row) {
|
150 |
+
//MCNX-232 : escape single quote for javascript, it cause error in javascript facet editor in BO
|
151 |
+
foreach ($row as $key => $value) {
|
152 |
+
$row[$key] = $this->jsQuoteEscape($value);
|
153 |
+
}
|
154 |
$row['_id'] = $rowId;
|
155 |
$result[$rowId] = new Varien_Object($row);
|
156 |
$this->_prepareArrayRow($result[$rowId]);
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Identifier.php
CHANGED
@@ -48,7 +48,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_Identifier extends Mage_A
|
|
48 |
{
|
49 |
if (!$this->_valueRenderer) {
|
50 |
$this->_valueRenderer = $this->getLayout()
|
51 |
-
->createBlock('Antidot/
|
52 |
->setIsRenderToJsTemplate(true);
|
53 |
}
|
54 |
return $this->_valueRenderer;
|
48 |
{
|
49 |
if (!$this->_valueRenderer) {
|
50 |
$this->_valueRenderer = $this->getLayout()
|
51 |
+
->createBlock('Antidot/html_select')
|
52 |
->setIsRenderToJsTemplate(true);
|
53 |
}
|
54 |
return $this->_valueRenderer;
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/ProductAdditionalFacet.php
CHANGED
@@ -58,7 +58,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_ProductAdditionalFacet ex
|
|
58 |
{
|
59 |
if (!$this->_autocompleteRenderer) {
|
60 |
$this->_autocompleteRenderer = $this->getLayout()
|
61 |
-
->createBlock('Antidot/
|
62 |
->setIsRenderToJsTemplate(true);
|
63 |
}
|
64 |
return $this->_autocompleteRenderer;
|
58 |
{
|
59 |
if (!$this->_autocompleteRenderer) {
|
60 |
$this->_autocompleteRenderer = $this->getLayout()
|
61 |
+
->createBlock('Antidot/html_select')
|
62 |
->setIsRenderToJsTemplate(true);
|
63 |
}
|
64 |
return $this->_autocompleteRenderer;
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/Array/Sort.php
CHANGED
@@ -57,7 +57,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_Array_Sort extends Mage_Adminht
|
|
57 |
{
|
58 |
if (!$this->_sortRenderer) {
|
59 |
$this->_sortRenderer = $this->getLayout()
|
60 |
-
->createBlock('Antidot/
|
61 |
->setIsRenderToJsTemplate(true);
|
62 |
}
|
63 |
return $this->_sortRenderer;
|
57 |
{
|
58 |
if (!$this->_sortRenderer) {
|
59 |
$this->_sortRenderer = $this->getLayout()
|
60 |
+
->createBlock('Antidot/html_select')
|
61 |
->setIsRenderToJsTemplate(true);
|
62 |
}
|
63 |
return $this->_sortRenderer;
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/CategoryAttribute.php
CHANGED
@@ -31,7 +31,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_CategoryAttribute extends Mage_
|
|
31 |
protected function _getRenderer()
|
32 |
{
|
33 |
return $this->getLayout()
|
34 |
-
->createBlock('Antidot/
|
35 |
->setIsRenderToJsTemplate(true);
|
36 |
}
|
37 |
}
|
31 |
protected function _getRenderer()
|
32 |
{
|
33 |
return $this->getLayout()
|
34 |
+
->createBlock('Antidot/html_select')
|
35 |
->setIsRenderToJsTemplate(true);
|
36 |
}
|
37 |
}
|
app/code/community/MDN/Antidot/Block/System/Config/Form/Field/ProductAttribute.php
CHANGED
@@ -31,7 +31,7 @@ class MDN_Antidot_Block_System_Config_Form_Field_ProductAttribute extends Mage_A
|
|
31 |
protected function _getRenderer()
|
32 |
{
|
33 |
return $this->getLayout()
|
34 |
-
->createBlock('Antidot/
|
35 |
->setIsRenderToJsTemplate(true);
|
36 |
}
|
37 |
}
|
31 |
protected function _getRenderer()
|
32 |
{
|
33 |
return $this->getLayout()
|
34 |
+
->createBlock('Antidot/html_select')
|
35 |
->setIsRenderToJsTemplate(true);
|
36 |
}
|
37 |
}
|
app/code/community/MDN/Antidot/Block/System/Config/Html/Export.php
CHANGED
@@ -43,7 +43,7 @@ class MDN_Antidot_Block_System_Config_Html_Export extends Mage_Adminhtml_Block_S
|
|
43 |
|
44 |
$rows = '';
|
45 |
$rowExport = '<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>';
|
46 |
-
foreach(Mage::helper('Antidot/
|
47 |
$rows.= sprintf(
|
48 |
$rowExport,
|
49 |
$export['begin_at'],
|
43 |
|
44 |
$rows = '';
|
45 |
$rowExport = '<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>';
|
46 |
+
foreach(Mage::helper('Antidot/logExport')->getAllLastGeneration() as $export) {
|
47 |
$rows.= sprintf(
|
48 |
$rowExport,
|
49 |
$export['begin_at'],
|
app/code/community/MDN/Antidot/Helper/Compress.php
CHANGED
@@ -39,7 +39,7 @@ class MDN_Antidot_Helper_Compress extends Mage_Core_Helper_Abstract {
|
|
39 |
Mage::log('Add '.$file.' to archive', null, 'antidot.log');
|
40 |
$zip->addFile($file, basename($file));
|
41 |
}
|
42 |
-
$zip->close(
|
43 |
}
|
44 |
else
|
45 |
{
|
39 |
Mage::log('Add '.$file.' to archive', null, 'antidot.log');
|
40 |
$zip->addFile($file, basename($file));
|
41 |
}
|
42 |
+
$zip->close();
|
43 |
}
|
44 |
else
|
45 |
{
|
app/code/community/MDN/Antidot/Helper/Data.php
CHANGED
@@ -212,11 +212,12 @@ class MDN_Antidot_Helper_Data extends Mage_Core_Helper_Abstract
|
|
212 |
*/
|
213 |
public function translateFacetName($facetcode, $defaultValue)
|
214 |
{
|
215 |
-
$model = Mage::getModel('Antidot/
|
216 |
|
217 |
$label = $defaultValue;
|
218 |
-
|
219 |
-
|
|
|
220 |
return $label;
|
221 |
}
|
222 |
|
@@ -247,4 +248,41 @@ class MDN_Antidot_Helper_Data extends Mage_Core_Helper_Abstract
|
|
247 |
return $number;
|
248 |
}
|
249 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
}
|
212 |
*/
|
213 |
public function translateFacetName($facetcode, $defaultValue)
|
214 |
{
|
215 |
+
$model = Mage::getModel('Antidot/search_search');
|
216 |
|
217 |
$label = $defaultValue;
|
218 |
+
$translations = $model->getLastSearchTranslations();
|
219 |
+
if (isset($translations[$facetcode]))
|
220 |
+
$label = $translations[$facetcode];
|
221 |
return $label;
|
222 |
}
|
223 |
|
248 |
return $number;
|
249 |
}
|
250 |
|
251 |
+
/**
|
252 |
+
* Gives the value in bytes
|
253 |
+
* used for ini_get('memory_limit')
|
254 |
+
*/
|
255 |
+
public function returnBytes ($val)
|
256 |
+
{
|
257 |
+
if(empty($val))return 0;
|
258 |
+
|
259 |
+
$val = trim($val);
|
260 |
+
|
261 |
+
preg_match('#([0-9]+)[\s]*([a-z]+)#i', $val, $matches);
|
262 |
+
|
263 |
+
$last = '';
|
264 |
+
if(isset($matches[2])){
|
265 |
+
$last = $matches[2];
|
266 |
+
}
|
267 |
+
|
268 |
+
if(isset($matches[1])){
|
269 |
+
$val = (int) $matches[1];
|
270 |
+
}
|
271 |
+
|
272 |
+
switch (strtolower($last))
|
273 |
+
{
|
274 |
+
case 'g':
|
275 |
+
case 'gb':
|
276 |
+
$val *= 1024;
|
277 |
+
case 'm':
|
278 |
+
case 'mb':
|
279 |
+
$val *= 1024;
|
280 |
+
case 'k':
|
281 |
+
case 'kb':
|
282 |
+
$val *= 1024;
|
283 |
+
}
|
284 |
+
|
285 |
+
return (int) $val;
|
286 |
+
}
|
287 |
+
|
288 |
}
|
app/code/community/MDN/Antidot/Helper/XmlWriter.php
CHANGED
@@ -82,7 +82,7 @@ class MDN_Antidot_Helper_XmlWriter extends Mage_Core_Helper_Abstract
|
|
82 |
}
|
83 |
}
|
84 |
|
85 |
-
$content = Mage::helper('Antidot/
|
86 |
$this->xml.= '>' . ($content) . '</' . $element . '>' . $this->cr;
|
87 |
}
|
88 |
|
82 |
}
|
83 |
}
|
84 |
|
85 |
+
$content = Mage::helper('Antidot/url')->isUtf8($content) === false ? mb_convert_encoding($content, "UTF-8") : $content;
|
86 |
$this->xml.= '>' . ($content) . '</' . $element . '>' . $this->cr;
|
87 |
}
|
88 |
|
app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Category.php
CHANGED
@@ -75,7 +75,7 @@ class MDN_Antidot_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model
|
|
75 |
}
|
76 |
|
77 |
if (!$filter) {
|
78 |
-
$this->addCategoryFilter($category
|
79 |
return $this;
|
80 |
}
|
81 |
|
75 |
}
|
76 |
|
77 |
if (!$filter) {
|
78 |
+
$this->addCategoryFilter($category);
|
79 |
return $this;
|
80 |
}
|
81 |
|
app/code/community/MDN/Antidot/Model/Catalog/Layer/Filter/Item.php
CHANGED
@@ -159,7 +159,7 @@ class MDN_Antidot_Model_Catalog_Layer_Filter_Item extends Mage_Catalog_Model_Lay
|
|
159 |
$selected = Mage::getSingleton('core/app')->getRequest()->getParam($filter);
|
160 |
|
161 |
if ($selected) {
|
162 |
-
$antidotEngine = Mage::getResourceSingleton('Antidot/
|
163 |
return $antidotEngine->extractMultiSelectValues($selected);
|
164 |
} else {
|
165 |
return array();
|
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();
|
app/code/community/MDN/Antidot/Model/Export/Abstract.php
CHANGED
@@ -44,14 +44,14 @@ class MDN_Antidot_Model_Export_Abstract extends Mage_Core_Model_Abstract
|
|
44 |
'identifier',
|
45 |
'description'
|
46 |
);
|
47 |
-
|
48 |
/**
|
49 |
* Init the xml writer
|
50 |
*/
|
51 |
protected function initXml()
|
52 |
{
|
53 |
if($this->xml === null) {
|
54 |
-
$this->xml = Mage::helper('Antidot/
|
55 |
$this->xml->init();
|
56 |
}
|
57 |
}
|
@@ -160,4 +160,129 @@ class MDN_Antidot_Model_Export_Abstract extends Mage_Core_Model_Abstract
|
|
160 |
return strtolower($this::TYPE) . ' ' . $context['run'] . ' v' . Mage::getConfig()->getNode()->modules->MDN_Antidot->version;
|
161 |
}
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
}
|
44 |
'identifier',
|
45 |
'description'
|
46 |
);
|
47 |
+
|
48 |
/**
|
49 |
* Init the xml writer
|
50 |
*/
|
51 |
protected function initXml()
|
52 |
{
|
53 |
if($this->xml === null) {
|
54 |
+
$this->xml = Mage::helper('Antidot/xmlWriter');
|
55 |
$this->xml->init();
|
56 |
}
|
57 |
}
|
160 |
return strtolower($this::TYPE) . ' ' . $context['run'] . ' v' . Mage::getConfig()->getNode()->modules->MDN_Antidot->version;
|
161 |
}
|
162 |
|
163 |
+
/**
|
164 |
+
* Free some memory if the memory used is higher than 80% of the
|
165 |
+
* memory limit, and if garbage collection if configured .
|
166 |
+
*
|
167 |
+
* @return boolean (true if garbage collection has been done, for tests)
|
168 |
+
*/
|
169 |
+
protected function garbageCollection() {
|
170 |
+
|
171 |
+
$gc_enabled = Mage::getStoreConfig('antidot/export/gc_enabled');
|
172 |
+
$gc_percentage_limit = Mage::getStoreConfig('antidot/export/gc_percentage_limit');
|
173 |
+
if ($gc_enabled) {
|
174 |
+
$memoryUsed = memory_get_usage(true);
|
175 |
+
|
176 |
+
$memoryLimit = Mage::helper('Antidot')->returnBytes(ini_get('memory_limit'));
|
177 |
+
if ($memoryUsed > ($gc_percentage_limit * $memoryLimit / 100)) {
|
178 |
+
gc_collect_cycles();
|
179 |
+
Mage::log("Garbage Collection : memory used : $memoryUsed, memory limit : $memoryLimit, memory after gc_collect_cylces : ".memory_get_usage(true), null, 'antidot.log');
|
180 |
+
return true;
|
181 |
+
}
|
182 |
+
}
|
183 |
+
return false;
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* Log profiler informations :
|
188 |
+
*
|
189 |
+
* SQL : number of queries, time consumed, average, top slower queries
|
190 |
+
*
|
191 |
+
* Varien_Profiler most time consuming items
|
192 |
+
*
|
193 |
+
*/
|
194 |
+
protected function profile() {
|
195 |
+
|
196 |
+
$profiler = Mage::getStoreConfig('antidot/export/profiler_enable');
|
197 |
+
if ($profiler) {
|
198 |
+
|
199 |
+
Mage::log('################### ', null, 'antidot.log');
|
200 |
+
Mage::log('#### STATS DB ##### ', null, 'antidot.log');
|
201 |
+
Mage::log('################### ', null, 'antidot.log');
|
202 |
+
$_profiler = Mage::getSingleton('core/resource')->getConnection('core_read')->getProfiler();
|
203 |
+
$_queries = $_profiler->getQueryProfiles();
|
204 |
+
uasort($_queries, array('self', 'compareElapsedSecs'));
|
205 |
+
|
206 |
+
|
207 |
+
Mage::log(
|
208 |
+
sprintf(
|
209 |
+
'Executed: %s queries in %s seconds',
|
210 |
+
$_profiler->getTotalNumQueries(),
|
211 |
+
$_profiler->getTotalElapsedSecs()
|
212 |
+
),
|
213 |
+
null,
|
214 |
+
'antidot.log'
|
215 |
+
);
|
216 |
+
Mage::log(
|
217 |
+
sprintf(
|
218 |
+
'Average query length: %s seconds',
|
219 |
+
$_profiler->getTotalNumQueries() && $_profiler->getTotalElapsedSecs(
|
220 |
+
) ? $_profiler->getTotalElapsedSecs() / $_profiler->getTotalNumQueries() : 0
|
221 |
+
),
|
222 |
+
null,
|
223 |
+
'antidot.log'
|
224 |
+
);
|
225 |
+
Mage::log(
|
226 |
+
sprintf(
|
227 |
+
'Queries per second: %s ',
|
228 |
+
($_profiler->getTotalNumQueries() && $_profiler->getTotalElapsedSecs(
|
229 |
+
) ? $_profiler->getTotalNumQueries() / $_profiler->getTotalElapsedSecs() : 0)
|
230 |
+
),
|
231 |
+
null,
|
232 |
+
'antidot.log'
|
233 |
+
);
|
234 |
+
|
235 |
+
$profiler_nb_queries = Mage::getStoreConfig('antidot/export/profiler_nb_lowest_queries');
|
236 |
+
Mage::log("TOP $profiler_nb_queries lowest queries : ", null, 'antidot.log');
|
237 |
+
$i=0;
|
238 |
+
foreach ($_queries as $_query) {
|
239 |
+
if ($i<$profiler_nb_queries) {
|
240 |
+
Mage::log($_query->getElapsedSecs().' '.$_query->getQuery(), null, 'antidot.log');
|
241 |
+
$i++;
|
242 |
+
}
|
243 |
+
}
|
244 |
+
|
245 |
+
Mage::log('################### ', null, 'antidot.log');
|
246 |
+
Mage::log('#### PROFILER ##### ', null, 'antidot.log');
|
247 |
+
Mage::log('###########################################', null, 'antidot.log');
|
248 |
+
Mage::log("# durée # nbs # emalloc #", null, 'antidot.log');
|
249 |
+
Mage::log('###########################################', null, 'antidot.log');
|
250 |
+
|
251 |
+
$timers = Varien_Profiler::getTimers();
|
252 |
+
$totalTime = 0;
|
253 |
+
foreach ($timers as $key => $value) {
|
254 |
+
$timers[$key]['sum'] = Varien_Profiler::fetch($key,'sum');
|
255 |
+
$totalTime += $timers[$key]['sum'];
|
256 |
+
}
|
257 |
+
uasort($timers, array('self', 'compareTimers'));
|
258 |
+
|
259 |
+
$profiler_varien_quota = Mage::getStoreConfig('antidot/export/profiler_varien_quota');
|
260 |
+
foreach ($timers as $timerName => $timerData) {
|
261 |
+
if ($timerData['sum'] > $totalTime * $profiler_varien_quota) {
|
262 |
+
Mage::log("# "
|
263 |
+
. str_pad(number_format($timerData['sum'], 6), 12, ' ', STR_PAD_LEFT ) . 's # '
|
264 |
+
. str_pad($timerData['count'], 6, ' ', STR_PAD_LEFT ) . ' # '
|
265 |
+
. str_pad(number_format($timerData['emalloc']), 14, ' ', STR_PAD_LEFT ) . ' # '
|
266 |
+
. $timerName,
|
267 |
+
null,
|
268 |
+
'antidot.log'
|
269 |
+
);
|
270 |
+
}
|
271 |
+
}
|
272 |
+
|
273 |
+
|
274 |
+
}
|
275 |
+
|
276 |
+
}
|
277 |
+
|
278 |
+
static public function compareTimers(array $timerA, array $timerB)
|
279 |
+
{
|
280 |
+
return $timerA['sum'] < $timerB['sum'];
|
281 |
+
}
|
282 |
+
|
283 |
+
static public function compareElapsedSecs(array $queryA, array $queryB)
|
284 |
+
{
|
285 |
+
return $queryA->getElapsedSecs() < $queryB->getElapsedSecs();
|
286 |
+
}
|
287 |
+
|
288 |
}
|
app/code/community/MDN/Antidot/Model/Export/Article.php
CHANGED
@@ -92,7 +92,7 @@ class MDN_Antidot_Model_Export_Article extends MDN_Antidot_Model_Export_Product
|
|
92 |
{
|
93 |
if ($manufacturer = $this->getField($article, 'manufacturer')) {
|
94 |
$this->xml->push('brands');
|
95 |
-
$brandUrl = Mage::getModel('Antidot/
|
96 |
$this->xml->element('brand', $this->xml->encloseCData($article->getAttributeText('manufacturer')), array('id' => $manufacturer, 'url' => $brandUrl));
|
97 |
$this->xml->pop();
|
98 |
}
|
92 |
{
|
93 |
if ($manufacturer = $this->getField($article, 'manufacturer')) {
|
94 |
$this->xml->push('brands');
|
95 |
+
$brandUrl = Mage::getModel('Antidot/export_brand')->getUrl($article->getAttributeText('manufacturer'));
|
96 |
$this->xml->element('brand', $this->xml->encloseCData($article->getAttributeText('manufacturer')), array('id' => $manufacturer, 'url' => $brandUrl));
|
97 |
$this->xml->pop();
|
98 |
}
|
app/code/community/MDN/Antidot/Model/Export/Product.php
CHANGED
@@ -73,7 +73,14 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
73 |
Mage::log('Starting product XML export, filename = '.$filename, null, 'antidot.log');
|
74 |
|
75 |
$db = Mage::getSingleton('core/resource')->getConnection('core_read');
|
76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
|
78 |
$this->onlyProductsWithStock = !(boolean)Mage::getStoreConfig('antidot/fields_product/in_stock_only');
|
79 |
$this->autoCompleteProducts = Mage::getStoreConfig('antidot/suggest/enable') === 'Antidot/engine_antidot' ? 'on' : 'off';
|
@@ -94,16 +101,26 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
94 |
|
95 |
if ($type === MDN_Antidot_Model_Observer::GENERATE_INC) {
|
96 |
if($this->lastGeneration === null) {
|
97 |
-
$this->lastGeneration = Mage::helper('Antidot/
|
98 |
}
|
99 |
$collection->addAttributeToFilter('updated_at', array('gteq' => $this->lastGeneration));
|
100 |
}
|
101 |
-
|
|
|
|
|
|
|
|
|
|
|
102 |
|
103 |
$productsCount = $collection->getSize();
|
104 |
Mage::log('Products to export : '.$productsCount, null, 'antidot.log');
|
105 |
$chunkCount = $collection->getLastPageNumber();
|
106 |
|
|
|
|
|
|
|
|
|
|
|
107 |
if ($productsCount > 0) {
|
108 |
|
109 |
$this->initXml();
|
@@ -142,7 +159,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
142 |
$product->clearInstance(); //memory flush
|
143 |
$product = null;
|
144 |
unset($product);
|
145 |
-
|
146 |
}
|
147 |
|
148 |
}
|
@@ -151,7 +168,9 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
151 |
$collection->clear();
|
152 |
|
153 |
Mage::log('Process chunk # '.$chunkId .' / '.$chunkCount. ' - memory usage = '.memory_get_usage().' - took '.(time() - $lastExecutionTime).' sec', null, 'antidot.log');
|
154 |
-
|
|
|
|
|
155 |
|
156 |
}
|
157 |
$this->xml->pop();
|
@@ -161,6 +180,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
161 |
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); //in order to stay on the admin and not be redirected to the last indexed frontend store
|
162 |
Mage::log('Products parsing complete', null, 'antidot.log');
|
163 |
|
|
|
|
|
164 |
return $productsCount;
|
165 |
}
|
166 |
|
@@ -186,7 +207,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
186 |
foreach($attributes as $att) {
|
187 |
$k = $att->getAttributeCode();
|
188 |
$this->propertyLabel[$k] = array();
|
189 |
-
$this->propertyLabel[$k]['default'] = $att->
|
190 |
$this->propertyLabel[$k]['per_store'] = $att->getStoreLabels();
|
191 |
|
192 |
$this->propertyLabel[$k]['options'] = array();
|
@@ -197,14 +218,19 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
197 |
}
|
198 |
|
199 |
$this->propertyLabel[$k]['options'][$option['value']] = array();
|
|
|
200 |
$this->propertyLabel[$k]['options'][$option['value']]['per_store'] = array();
|
201 |
-
$
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
|
|
|
|
|
|
|
|
208 |
}
|
209 |
}
|
210 |
}
|
@@ -218,6 +244,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
218 |
*/
|
219 |
protected function writeProduct($product, $stores)
|
220 |
{
|
|
|
221 |
|
222 |
//skip product if no websites
|
223 |
if (count($stores) == 0)
|
@@ -268,8 +295,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
268 |
}
|
269 |
$this->xml->pop();
|
270 |
|
271 |
-
//$this->xml->
|
272 |
-
//$this->xml->
|
273 |
|
274 |
$this->xml->element('name', $this->xml->encloseCData($this->utf8CharacterValidation($this->getField($product, 'name'))));
|
275 |
if($shortName = $this->getField($product, 'short_name')) {
|
@@ -291,6 +318,9 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
291 |
$this->writeVariants($product, $variantProducts, $stores);
|
292 |
|
293 |
$this->xml->pop();
|
|
|
|
|
|
|
294 |
}
|
295 |
|
296 |
/**
|
@@ -301,6 +331,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
301 |
*/
|
302 |
protected function writeStore($product, $stores, $variantProduct)
|
303 |
{
|
|
|
|
|
304 |
$this->xml->push('stores');
|
305 |
|
306 |
/* Qty is the same for all stores, better compute it outside the loop: */
|
@@ -345,28 +377,17 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
345 |
$reloadedVariantProduct->clearInstance(); //memory flush
|
346 |
$reloadedVariantProduct = null;
|
347 |
unset($reloadedVariantProduct);
|
348 |
-
|
349 |
}
|
350 |
|
351 |
|
352 |
}
|
353 |
$this->xml->pop();
|
354 |
-
}
|
355 |
-
|
356 |
-
/**
|
357 |
-
* Get catalog/product model
|
358 |
-
*
|
359 |
-
* @return Model
|
360 |
-
*/
|
361 |
-
protected function getCatalogProduct()
|
362 |
-
{
|
363 |
-
if(!$this->catalogProduct) {
|
364 |
-
$this->catalogProduct = Mage::getModel('catalog/product');
|
365 |
-
}
|
366 |
|
367 |
-
|
368 |
-
}
|
369 |
|
|
|
|
|
370 |
/**
|
371 |
* Get product stores
|
372 |
*
|
@@ -393,6 +414,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
393 |
*/
|
394 |
protected function writeDescriptions($product)
|
395 |
{
|
|
|
|
|
396 |
if(!empty($this->fields['description'])) {
|
397 |
$this->xml->push('descriptions');
|
398 |
foreach($this->fields['description'] as $description) {
|
@@ -403,6 +426,9 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
403 |
}
|
404 |
$this->xml->pop();
|
405 |
}
|
|
|
|
|
|
|
406 |
}
|
407 |
|
408 |
/**
|
@@ -435,6 +461,9 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
435 |
*/
|
436 |
protected function writeIdentifiers($product)
|
437 |
{
|
|
|
|
|
|
|
438 |
if($gtin = $this->getField($product, 'gtin')) {
|
439 |
if(!preg_match('/^[0-9]{12,14}$/', $gtin)) {
|
440 |
$gtin = false;
|
@@ -464,6 +493,9 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
464 |
|
465 |
$this->xml->pop();
|
466 |
}
|
|
|
|
|
|
|
467 |
}
|
468 |
|
469 |
/**
|
@@ -473,6 +505,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
473 |
*/
|
474 |
protected function writeBrand($product)
|
475 |
{
|
|
|
|
|
476 |
if ($manufacturer = $this->getField($product, 'manufacturer')) {
|
477 |
if(!empty($manufacturer)) {
|
478 |
$field = empty($this->fields['manufacturer']) ? 'manufacturer' : $this->fields['manufacturer'];
|
@@ -485,6 +519,9 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
485 |
}
|
486 |
}
|
487 |
}
|
|
|
|
|
|
|
488 |
}
|
489 |
|
490 |
/**
|
@@ -495,7 +532,10 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
495 |
*/
|
496 |
protected function writeProductUrl($product)
|
497 |
{
|
|
|
498 |
$this->xml->element('url', $this->xml->encloseCData($product->getProductUrl(false)));
|
|
|
|
|
499 |
}
|
500 |
|
501 |
|
@@ -507,8 +547,10 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
507 |
*/
|
508 |
protected function writeImageUrl($product, $urlImg = true)
|
509 |
{
|
510 |
-
|
511 |
-
|
|
|
|
|
512 |
Mage::app()->setCurrentStore($product->getStoreId());
|
513 |
|
514 |
try {
|
@@ -516,7 +558,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
516 |
$this->xml->element('url_thumbnail', $this->xml->encloseCData(Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getThumbnail())));
|
517 |
}
|
518 |
} catch(Exception $e) {
|
519 |
-
Mage::log($e, Zend_Log::ERR, 'antidot.log');
|
520 |
}
|
521 |
|
522 |
try {
|
@@ -524,8 +566,11 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
524 |
$this->xml->element('url_image', $this->xml->encloseCData(Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getImage())));
|
525 |
}
|
526 |
} catch(Exception $e) {
|
527 |
-
Mage::log(
|
528 |
}
|
|
|
|
|
|
|
529 |
}
|
530 |
|
531 |
/**
|
@@ -535,6 +580,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
535 |
*/
|
536 |
protected function writeClassification($product, $rootCategoriesIds)
|
537 |
{
|
|
|
538 |
$categories = $this->getProductCategories($product, $rootCategoriesIds);
|
539 |
if(count($categories) > 0) {
|
540 |
$this->xml->push('classification');
|
@@ -543,6 +589,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
543 |
}
|
544 |
$this->xml->pop();
|
545 |
}
|
|
|
|
|
546 |
}
|
547 |
|
548 |
/**
|
@@ -628,6 +676,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
628 |
$rootCategoryCondition[] = array('like' => '1/'.$rootCategoryId.'/%');
|
629 |
}
|
630 |
$categories->addAttributeToFilter('path', $rootCategoryCondition);
|
|
|
631 |
|
632 |
//Mage::log($categories->getSelect()->__toString(), null, 'antidot.log');
|
633 |
|
@@ -663,11 +712,13 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
663 |
*/
|
664 |
protected function writeMaterials($product)
|
665 |
{
|
|
|
666 |
if(!empty($this->fields['materials']) && $materials = $product->getAttributeText($this->fields['materials'])) {
|
667 |
$this->xml->push('materials');
|
668 |
$this->xml->element('material', $this->xml->encloseCData($materials));
|
669 |
$this->xml->pop();
|
670 |
}
|
|
|
671 |
}
|
672 |
|
673 |
/**
|
@@ -677,11 +728,13 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
677 |
*/
|
678 |
protected function writeColors($product)
|
679 |
{
|
|
|
680 |
if(!empty($this->fields['colors']) && $color = $product->getAttributeText($this->fields['colors'])) {
|
681 |
$this->xml->push('colors');
|
682 |
$this->xml->element('color', $this->xml->encloseCData($color));
|
683 |
$this->xml->pop();
|
684 |
}
|
|
|
685 |
}
|
686 |
|
687 |
/**
|
@@ -691,11 +744,13 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
691 |
*/
|
692 |
protected function writeModels($product)
|
693 |
{
|
|
|
694 |
if(!empty($this->fields['models']) && $models = $this->getField($product, $this->fields['models'])) {
|
695 |
$this->xml->push('models', array('autocomplete' => 'off'));
|
696 |
$this->xml->element('model', $this->xml->encloseCData(substr($models, 0, 40)));
|
697 |
$this->xml->pop();
|
698 |
}
|
|
|
699 |
}
|
700 |
|
701 |
/**
|
@@ -705,11 +760,13 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
705 |
*/
|
706 |
protected function writeSizes($product)
|
707 |
{
|
|
|
708 |
if(!empty($this->fields['sizes']) && $size = $product->getAttributeText($this->fields['sizes'])) {
|
709 |
$this->xml->push('sizes');
|
710 |
$this->xml->element('size', $this->xml->encloseCData($size));
|
711 |
$this->xml->pop();
|
712 |
}
|
|
|
713 |
}
|
714 |
|
715 |
/**
|
@@ -719,6 +776,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
719 |
*/
|
720 |
protected function writeGenders($product)
|
721 |
{
|
|
|
722 |
if(!empty($this->fields['gender']) && $gender = $product->getAttributeText($this->fields['gender'])) {
|
723 |
$this->xml->push('audience');
|
724 |
$this->xml->push('genders');
|
@@ -726,6 +784,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
726 |
$this->xml->pop();
|
727 |
$this->xml->pop();
|
728 |
}
|
|
|
729 |
}
|
730 |
|
731 |
/**
|
@@ -735,6 +794,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
735 |
*/
|
736 |
protected function writeProperties($product)
|
737 |
{
|
|
|
738 |
$properties = array();
|
739 |
if(!empty($this->fields['properties'])) {
|
740 |
foreach($this->fields['properties'] as $property) {
|
@@ -803,6 +863,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
803 |
}
|
804 |
$this->xml->pop();
|
805 |
}
|
|
|
|
|
806 |
}
|
807 |
|
808 |
/**
|
@@ -812,6 +874,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
812 |
*/
|
813 |
protected function writePrices($product, $parentProduct, $context, $store)
|
814 |
{
|
|
|
815 |
|
816 |
/**
|
817 |
* MCNX-222 : Add Fixed Taxs to prices
|
@@ -863,6 +926,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
863 |
}
|
864 |
|
865 |
$this->xml->pop();
|
|
|
|
|
866 |
}
|
867 |
|
868 |
/**
|
@@ -938,7 +1003,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
938 |
$product->clearInstance(); //memory flush
|
939 |
$product = null;
|
940 |
unset($product);
|
941 |
-
|
942 |
}
|
943 |
|
944 |
return $result;
|
@@ -952,6 +1017,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
952 |
*/
|
953 |
protected function writeMarketing($product, $operations)
|
954 |
{
|
|
|
|
|
955 |
$this->xml->push('marketing');
|
956 |
$this->xml->element('is_new', ($this->getField($product, 'is_new') ? 1 : 0));
|
957 |
$this->xml->element('is_best_sale', ($this->getField($product, 'is_best_sale') ? 1 : 0));
|
@@ -968,6 +1035,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
968 |
$this->xml->element('is_promotional', (int)$isPromotional);
|
969 |
|
970 |
$this->xml->pop();
|
|
|
971 |
}
|
972 |
|
973 |
/**
|
@@ -1018,6 +1086,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
1018 |
*/
|
1019 |
protected function writeMisc($product)
|
1020 |
{
|
|
|
1021 |
$this->xml->push('misc');
|
1022 |
$this->xml->element('product_type', $this->xml->encloseCData($product->getTypeID()));
|
1023 |
if(!empty($this->fields['misc'])) {
|
@@ -1026,6 +1095,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
1026 |
}
|
1027 |
}
|
1028 |
$this->xml->pop();
|
|
|
1029 |
}
|
1030 |
|
1031 |
/**
|
@@ -1037,6 +1107,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
1037 |
*/
|
1038 |
protected function writeVariants($product, $variantProducts, $stores)
|
1039 |
{
|
|
|
1040 |
$this->xml->push('variants');
|
1041 |
|
1042 |
$this->xml->push('variant', array('id' => 'fake'));
|
@@ -1051,6 +1122,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
1051 |
}
|
1052 |
|
1053 |
$this->xml->pop();
|
|
|
|
|
1054 |
}
|
1055 |
|
1056 |
/**
|
@@ -1062,6 +1135,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
1062 |
*/
|
1063 |
protected function writeVariant($variantProduct, $product, $stores)
|
1064 |
{
|
|
|
|
|
1065 |
$this->xml->element('name', $this->xml->encloseCData($this->utf8CharacterValidation($variantProduct->getName())));
|
1066 |
$this->writeDescriptions($variantProduct);
|
1067 |
$this->writeStore($product, $stores, $variantProduct);
|
@@ -1073,6 +1148,9 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
1073 |
$this->writeSizes($variantProduct);
|
1074 |
$this->writeGenders($product);
|
1075 |
$this->writeMisc($variantProduct);
|
|
|
|
|
|
|
1076 |
}
|
1077 |
|
1078 |
/**
|
@@ -1083,6 +1161,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
1083 |
*/
|
1084 |
protected function writePart($xml, $close = false)
|
1085 |
{
|
|
|
|
|
1086 |
$filename = $this->getFilename();
|
1087 |
if ($this->file === null) {
|
1088 |
$this->file = fopen($filename, 'a+');
|
@@ -1098,6 +1178,8 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
|
|
1098 |
fclose($this->file);
|
1099 |
$this->file = null;
|
1100 |
}
|
|
|
|
|
1101 |
}
|
1102 |
|
1103 |
/**
|
73 |
Mage::log('Starting product XML export, filename = '.$filename, null, 'antidot.log');
|
74 |
|
75 |
$db = Mage::getSingleton('core/resource')->getConnection('core_read');
|
76 |
+
if (Mage::getStoreConfig('antidot/export/profiler_enable')) {
|
77 |
+
$db->getProfiler()->setEnabled(true);
|
78 |
+
Varien_Profiler::enable();
|
79 |
+
} else {
|
80 |
+
$db->getProfiler()->setEnabled(false);
|
81 |
+
}
|
82 |
+
|
83 |
+
Varien_Profiler::start("export_product_writeXml");
|
84 |
|
85 |
$this->onlyProductsWithStock = !(boolean)Mage::getStoreConfig('antidot/fields_product/in_stock_only');
|
86 |
$this->autoCompleteProducts = Mage::getStoreConfig('antidot/suggest/enable') === 'Antidot/engine_antidot' ? 'on' : 'off';
|
101 |
|
102 |
if ($type === MDN_Antidot_Model_Observer::GENERATE_INC) {
|
103 |
if($this->lastGeneration === null) {
|
104 |
+
$this->lastGeneration = Mage::helper('Antidot/logExport')->getLastGeneration(self::TYPE);
|
105 |
}
|
106 |
$collection->addAttributeToFilter('updated_at', array('gteq' => $this->lastGeneration));
|
107 |
}
|
108 |
+
|
109 |
+
$chunkSize = Mage::getStoreConfig('antidot/export/chunk_size');
|
110 |
+
if (!$chunkSize) {
|
111 |
+
$chunkSize = 500;
|
112 |
+
}
|
113 |
+
$collection->setPageSize($chunkSize);
|
114 |
|
115 |
$productsCount = $collection->getSize();
|
116 |
Mage::log('Products to export : '.$productsCount, null, 'antidot.log');
|
117 |
$chunkCount = $collection->getLastPageNumber();
|
118 |
|
119 |
+
/** if profiling is enabled process only one chunk */
|
120 |
+
if (Mage::getStoreConfig('antidot/export/profiler_enable')) {
|
121 |
+
$chunkCount = 1;
|
122 |
+
}
|
123 |
+
|
124 |
if ($productsCount > 0) {
|
125 |
|
126 |
$this->initXml();
|
159 |
$product->clearInstance(); //memory flush
|
160 |
$product = null;
|
161 |
unset($product);
|
162 |
+
$this->garbageCollection();
|
163 |
}
|
164 |
|
165 |
}
|
168 |
$collection->clear();
|
169 |
|
170 |
Mage::log('Process chunk # '.$chunkId .' / '.$chunkCount. ' - memory usage = '.memory_get_usage().' - took '.(time() - $lastExecutionTime).' sec', null, 'antidot.log');
|
171 |
+
$lastExecutionTime = time();
|
172 |
+
|
173 |
+
$this->profile();
|
174 |
|
175 |
}
|
176 |
$this->xml->pop();
|
180 |
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); //in order to stay on the admin and not be redirected to the last indexed frontend store
|
181 |
Mage::log('Products parsing complete', null, 'antidot.log');
|
182 |
|
183 |
+
Varien_Profiler::stop("export_product_writeXml");
|
184 |
+
|
185 |
return $productsCount;
|
186 |
}
|
187 |
|
207 |
foreach($attributes as $att) {
|
208 |
$k = $att->getAttributeCode();
|
209 |
$this->propertyLabel[$k] = array();
|
210 |
+
$this->propertyLabel[$k]['default'] = $att->getFrontendLabel();
|
211 |
$this->propertyLabel[$k]['per_store'] = $att->getStoreLabels();
|
212 |
|
213 |
$this->propertyLabel[$k]['options'] = array();
|
218 |
}
|
219 |
|
220 |
$this->propertyLabel[$k]['options'][$option['value']] = array();
|
221 |
+
$this->propertyLabel[$k]['options'][$option['value']]['default'] = $option['label'];
|
222 |
$this->propertyLabel[$k]['options'][$option['value']]['per_store'] = array();
|
223 |
+
if ($att->getSourceModel()=='eav/entity_attribute_source_table') {
|
224 |
+
$query = 'SELECT store_id, value FROM '
|
225 |
+
.Mage::getConfig()->getTablePrefix().'eav_attribute_option_value '
|
226 |
+
.'WHERE option_id = "'.$option['value'].'"';
|
227 |
+
|
228 |
+
$valuesCollection = Mage::getSingleton('core/resource')->getConnection('core_read')->fetchAll(
|
229 |
+
$query
|
230 |
+
);
|
231 |
+
foreach ($valuesCollection as $item) {
|
232 |
+
$this->propertyLabel[$k]['options'][$option['value']]['per_store'][$item['store_id']] = $item['value'];
|
233 |
+
}
|
234 |
}
|
235 |
}
|
236 |
}
|
244 |
*/
|
245 |
protected function writeProduct($product, $stores)
|
246 |
{
|
247 |
+
Varien_Profiler::start("export_product_writeProduct");
|
248 |
|
249 |
//skip product if no websites
|
250 |
if (count($stores) == 0)
|
295 |
}
|
296 |
$this->xml->pop();
|
297 |
|
298 |
+
//$this->xml->writeElement('created_at', $product->getCreated_at()); AFM-83
|
299 |
+
//$this->xml->writeElement('last_updated_at', $product->getUpdated_at()); AFM-92
|
300 |
|
301 |
$this->xml->element('name', $this->xml->encloseCData($this->utf8CharacterValidation($this->getField($product, 'name'))));
|
302 |
if($shortName = $this->getField($product, 'short_name')) {
|
318 |
$this->writeVariants($product, $variantProducts, $stores);
|
319 |
|
320 |
$this->xml->pop();
|
321 |
+
|
322 |
+
Varien_Profiler::stop("export_product_writeProduct");
|
323 |
+
|
324 |
}
|
325 |
|
326 |
/**
|
331 |
*/
|
332 |
protected function writeStore($product, $stores, $variantProduct)
|
333 |
{
|
334 |
+
Varien_Profiler::start("export_product_writeStore");
|
335 |
+
|
336 |
$this->xml->push('stores');
|
337 |
|
338 |
/* Qty is the same for all stores, better compute it outside the loop: */
|
377 |
$reloadedVariantProduct->clearInstance(); //memory flush
|
378 |
$reloadedVariantProduct = null;
|
379 |
unset($reloadedVariantProduct);
|
380 |
+
$this->garbageCollection();
|
381 |
}
|
382 |
|
383 |
|
384 |
}
|
385 |
$this->xml->pop();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
386 |
|
387 |
+
Varien_Profiler::stop("export_product_writeStore");
|
|
|
388 |
|
389 |
+
}
|
390 |
+
|
391 |
/**
|
392 |
* Get product stores
|
393 |
*
|
414 |
*/
|
415 |
protected function writeDescriptions($product)
|
416 |
{
|
417 |
+
Varien_Profiler::start("export_product_writeDescriptions");
|
418 |
+
|
419 |
if(!empty($this->fields['description'])) {
|
420 |
$this->xml->push('descriptions');
|
421 |
foreach($this->fields['description'] as $description) {
|
426 |
}
|
427 |
$this->xml->pop();
|
428 |
}
|
429 |
+
|
430 |
+
Varien_Profiler::stop("export_product_writeDescriptions");
|
431 |
+
|
432 |
}
|
433 |
|
434 |
/**
|
461 |
*/
|
462 |
protected function writeIdentifiers($product)
|
463 |
{
|
464 |
+
|
465 |
+
Varien_Profiler::start("export_product_writeIdentifiers");
|
466 |
+
|
467 |
if($gtin = $this->getField($product, 'gtin')) {
|
468 |
if(!preg_match('/^[0-9]{12,14}$/', $gtin)) {
|
469 |
$gtin = false;
|
493 |
|
494 |
$this->xml->pop();
|
495 |
}
|
496 |
+
|
497 |
+
Varien_Profiler::stop("export_product_writeIdentifiers");
|
498 |
+
|
499 |
}
|
500 |
|
501 |
/**
|
505 |
*/
|
506 |
protected function writeBrand($product)
|
507 |
{
|
508 |
+
Varien_Profiler::start("export_product_writeBrand");
|
509 |
+
|
510 |
if ($manufacturer = $this->getField($product, 'manufacturer')) {
|
511 |
if(!empty($manufacturer)) {
|
512 |
$field = empty($this->fields['manufacturer']) ? 'manufacturer' : $this->fields['manufacturer'];
|
519 |
}
|
520 |
}
|
521 |
}
|
522 |
+
|
523 |
+
Varien_Profiler::stop("export_product_writeBrand");
|
524 |
+
|
525 |
}
|
526 |
|
527 |
/**
|
532 |
*/
|
533 |
protected function writeProductUrl($product)
|
534 |
{
|
535 |
+
Varien_Profiler::start("export_product_writeProductUrl");
|
536 |
$this->xml->element('url', $this->xml->encloseCData($product->getProductUrl(false)));
|
537 |
+
Varien_Profiler::stop("export_product_writeProductUrl");
|
538 |
+
|
539 |
}
|
540 |
|
541 |
|
547 |
*/
|
548 |
protected function writeImageUrl($product, $urlImg = true)
|
549 |
{
|
550 |
+
|
551 |
+
Varien_Profiler::start("export_product_writeImageUrl");
|
552 |
+
|
553 |
+
//Set the current store to generate correct URls (even in unit tests)
|
554 |
Mage::app()->setCurrentStore($product->getStoreId());
|
555 |
|
556 |
try {
|
558 |
$this->xml->element('url_thumbnail', $this->xml->encloseCData(Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getThumbnail())));
|
559 |
}
|
560 |
} catch(Exception $e) {
|
561 |
+
Mage::log("writeImageUrl Exception : " . $e->getMessage(), Zend_Log::ERR, 'antidot.log');
|
562 |
}
|
563 |
|
564 |
try {
|
566 |
$this->xml->element('url_image', $this->xml->encloseCData(Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getImage())));
|
567 |
}
|
568 |
} catch(Exception $e) {
|
569 |
+
Mage::log("writeImageUrl Exception : " .$e->getMessage(), Zend_Log::ERR, 'antidot.log');
|
570 |
}
|
571 |
+
|
572 |
+
Varien_Profiler::stop("export_product_writeImageUrl");
|
573 |
+
|
574 |
}
|
575 |
|
576 |
/**
|
580 |
*/
|
581 |
protected function writeClassification($product, $rootCategoriesIds)
|
582 |
{
|
583 |
+
Varien_Profiler::start("export_product_writeClassification");
|
584 |
$categories = $this->getProductCategories($product, $rootCategoriesIds);
|
585 |
if(count($categories) > 0) {
|
586 |
$this->xml->push('classification');
|
589 |
}
|
590 |
$this->xml->pop();
|
591 |
}
|
592 |
+
Varien_Profiler::stop("export_product_writeClassification");
|
593 |
+
|
594 |
}
|
595 |
|
596 |
/**
|
676 |
$rootCategoryCondition[] = array('like' => '1/'.$rootCategoryId.'/%');
|
677 |
}
|
678 |
$categories->addAttributeToFilter('path', $rootCategoryCondition);
|
679 |
+
$categories->addAttributeToFilter('is_active', 1); //MCNX-236
|
680 |
|
681 |
//Mage::log($categories->getSelect()->__toString(), null, 'antidot.log');
|
682 |
|
712 |
*/
|
713 |
protected function writeMaterials($product)
|
714 |
{
|
715 |
+
Varien_Profiler::start("export_product_writeMaterials");
|
716 |
if(!empty($this->fields['materials']) && $materials = $product->getAttributeText($this->fields['materials'])) {
|
717 |
$this->xml->push('materials');
|
718 |
$this->xml->element('material', $this->xml->encloseCData($materials));
|
719 |
$this->xml->pop();
|
720 |
}
|
721 |
+
Varien_Profiler::stop("export_product_writeMaterials");
|
722 |
}
|
723 |
|
724 |
/**
|
728 |
*/
|
729 |
protected function writeColors($product)
|
730 |
{
|
731 |
+
Varien_Profiler::start("export_product_writeColors");
|
732 |
if(!empty($this->fields['colors']) && $color = $product->getAttributeText($this->fields['colors'])) {
|
733 |
$this->xml->push('colors');
|
734 |
$this->xml->element('color', $this->xml->encloseCData($color));
|
735 |
$this->xml->pop();
|
736 |
}
|
737 |
+
Varien_Profiler::stop("export_product_writeColors");
|
738 |
}
|
739 |
|
740 |
/**
|
744 |
*/
|
745 |
protected function writeModels($product)
|
746 |
{
|
747 |
+
Varien_Profiler::start("export_product_writeModels");
|
748 |
if(!empty($this->fields['models']) && $models = $this->getField($product, $this->fields['models'])) {
|
749 |
$this->xml->push('models', array('autocomplete' => 'off'));
|
750 |
$this->xml->element('model', $this->xml->encloseCData(substr($models, 0, 40)));
|
751 |
$this->xml->pop();
|
752 |
}
|
753 |
+
Varien_Profiler::stop("export_product_writeModels");
|
754 |
}
|
755 |
|
756 |
/**
|
760 |
*/
|
761 |
protected function writeSizes($product)
|
762 |
{
|
763 |
+
Varien_Profiler::start("export_product_writeSizes");
|
764 |
if(!empty($this->fields['sizes']) && $size = $product->getAttributeText($this->fields['sizes'])) {
|
765 |
$this->xml->push('sizes');
|
766 |
$this->xml->element('size', $this->xml->encloseCData($size));
|
767 |
$this->xml->pop();
|
768 |
}
|
769 |
+
Varien_Profiler::stop("export_product_writeSizes");
|
770 |
}
|
771 |
|
772 |
/**
|
776 |
*/
|
777 |
protected function writeGenders($product)
|
778 |
{
|
779 |
+
Varien_Profiler::start("export_product_writeGenders");
|
780 |
if(!empty($this->fields['gender']) && $gender = $product->getAttributeText($this->fields['gender'])) {
|
781 |
$this->xml->push('audience');
|
782 |
$this->xml->push('genders');
|
784 |
$this->xml->pop();
|
785 |
$this->xml->pop();
|
786 |
}
|
787 |
+
Varien_Profiler::stop("export_product_writeGenders");
|
788 |
}
|
789 |
|
790 |
/**
|
794 |
*/
|
795 |
protected function writeProperties($product)
|
796 |
{
|
797 |
+
Varien_Profiler::start("export_product_writeProperties");
|
798 |
$properties = array();
|
799 |
if(!empty($this->fields['properties'])) {
|
800 |
foreach($this->fields['properties'] as $property) {
|
863 |
}
|
864 |
$this->xml->pop();
|
865 |
}
|
866 |
+
Varien_Profiler::stop("export_product_writeProperties");
|
867 |
+
|
868 |
}
|
869 |
|
870 |
/**
|
874 |
*/
|
875 |
protected function writePrices($product, $parentProduct, $context, $store)
|
876 |
{
|
877 |
+
Varien_Profiler::start("export_product_writePrices");
|
878 |
|
879 |
/**
|
880 |
* MCNX-222 : Add Fixed Taxs to prices
|
926 |
}
|
927 |
|
928 |
$this->xml->pop();
|
929 |
+
Varien_Profiler::stop("export_product_writePrices");
|
930 |
+
|
931 |
}
|
932 |
|
933 |
/**
|
1003 |
$product->clearInstance(); //memory flush
|
1004 |
$product = null;
|
1005 |
unset($product);
|
1006 |
+
$this->garbageCollection();
|
1007 |
}
|
1008 |
|
1009 |
return $result;
|
1017 |
*/
|
1018 |
protected function writeMarketing($product, $operations)
|
1019 |
{
|
1020 |
+
Varien_Profiler::start("export_product_writeMarketing");
|
1021 |
+
|
1022 |
$this->xml->push('marketing');
|
1023 |
$this->xml->element('is_new', ($this->getField($product, 'is_new') ? 1 : 0));
|
1024 |
$this->xml->element('is_best_sale', ($this->getField($product, 'is_best_sale') ? 1 : 0));
|
1035 |
$this->xml->element('is_promotional', (int)$isPromotional);
|
1036 |
|
1037 |
$this->xml->pop();
|
1038 |
+
Varien_Profiler::stop("export_product_writeMarketing");
|
1039 |
}
|
1040 |
|
1041 |
/**
|
1086 |
*/
|
1087 |
protected function writeMisc($product)
|
1088 |
{
|
1089 |
+
Varien_Profiler::start("export_product_writeMisc");
|
1090 |
$this->xml->push('misc');
|
1091 |
$this->xml->element('product_type', $this->xml->encloseCData($product->getTypeID()));
|
1092 |
if(!empty($this->fields['misc'])) {
|
1095 |
}
|
1096 |
}
|
1097 |
$this->xml->pop();
|
1098 |
+
Varien_Profiler::stop("export_product_writeMisc");
|
1099 |
}
|
1100 |
|
1101 |
/**
|
1107 |
*/
|
1108 |
protected function writeVariants($product, $variantProducts, $stores)
|
1109 |
{
|
1110 |
+
Varien_Profiler::start("export_product_writeVariants");
|
1111 |
$this->xml->push('variants');
|
1112 |
|
1113 |
$this->xml->push('variant', array('id' => 'fake'));
|
1122 |
}
|
1123 |
|
1124 |
$this->xml->pop();
|
1125 |
+
Varien_Profiler::stop("export_product_writeVariants");
|
1126 |
+
|
1127 |
}
|
1128 |
|
1129 |
/**
|
1135 |
*/
|
1136 |
protected function writeVariant($variantProduct, $product, $stores)
|
1137 |
{
|
1138 |
+
Varien_Profiler::start("export_product_writeVariant");
|
1139 |
+
|
1140 |
$this->xml->element('name', $this->xml->encloseCData($this->utf8CharacterValidation($variantProduct->getName())));
|
1141 |
$this->writeDescriptions($variantProduct);
|
1142 |
$this->writeStore($product, $stores, $variantProduct);
|
1148 |
$this->writeSizes($variantProduct);
|
1149 |
$this->writeGenders($product);
|
1150 |
$this->writeMisc($variantProduct);
|
1151 |
+
|
1152 |
+
Varien_Profiler::stop("export_product_writeVariant");
|
1153 |
+
|
1154 |
}
|
1155 |
|
1156 |
/**
|
1161 |
*/
|
1162 |
protected function writePart($xml, $close = false)
|
1163 |
{
|
1164 |
+
Varien_Profiler::start("export_product_writePart");
|
1165 |
+
|
1166 |
$filename = $this->getFilename();
|
1167 |
if ($this->file === null) {
|
1168 |
$this->file = fopen($filename, 'a+');
|
1178 |
fclose($this->file);
|
1179 |
$this->file = null;
|
1180 |
}
|
1181 |
+
Varien_Profiler::stop("export_product_writePart");
|
1182 |
+
|
1183 |
}
|
1184 |
|
1185 |
/**
|
app/code/community/MDN/Antidot/Model/Observer.php
CHANGED
@@ -49,52 +49,23 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
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 |
-
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
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 |
*/
|
@@ -124,7 +95,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
124 |
public function catalogFullExport($runContext = 'cron')
|
125 |
{
|
126 |
$this->log('FULL EXPORT');
|
127 |
-
return $this->generate(Mage::getModel('Antidot/
|
128 |
}
|
129 |
|
130 |
/**
|
@@ -132,7 +103,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
132 |
*/
|
133 |
public function catalogIncExport($runContext = 'cron')
|
134 |
{
|
135 |
-
return $this->generate(Mage::getModel('Antidot/
|
136 |
}
|
137 |
|
138 |
/**
|
@@ -140,7 +111,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
140 |
*/
|
141 |
public function categoriesFullExport($runContext = 'cron')
|
142 |
{
|
143 |
-
return $this->generate(Mage::getModel('Antidot/
|
144 |
}
|
145 |
|
146 |
/**
|
@@ -208,7 +179,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
208 |
$log['status'] = 'SUCCESS';
|
209 |
} else {
|
210 |
$log['status'] = 'FAILED';
|
211 |
-
$lastError = current(Mage::helper('Antidot/
|
212 |
if ($lastError) {
|
213 |
$log['error'][] = $lastError;
|
214 |
} else {
|
@@ -232,7 +203,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
232 |
$this->log('generate '.$exportModel::TYPE.' '.$context['owner']);
|
233 |
$this->log('end');
|
234 |
|
235 |
-
Mage::helper('Antidot/
|
236 |
|
237 |
if ( count($log['error']) ) {
|
238 |
//send error alert mail
|
@@ -282,7 +253,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
282 |
$this->log('compress the file');
|
283 |
|
284 |
$compressFile = dirname(current($files)).'/'.$compressFile;
|
285 |
-
Mage::helper('Antidot/
|
286 |
|
287 |
return $compressFile;
|
288 |
}
|
@@ -297,7 +268,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
297 |
{
|
298 |
$this->log('send the file');
|
299 |
|
300 |
-
$transport = Mage::getModel('Antidot/
|
301 |
|
302 |
return $transport->send($filename, $transport::TRANS_FTP);
|
303 |
}
|
@@ -315,9 +286,10 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
315 |
$errors = array();
|
316 |
|
317 |
//disable schema validation
|
318 |
-
if (Mage::getStoreConfig('antidot/
|
319 |
-
|
320 |
-
|
|
|
321 |
} else {
|
322 |
|
323 |
libxml_use_internal_errors(true);
|
@@ -332,7 +304,7 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
|
|
332 |
$this->log('Schema validated');
|
333 |
} else {
|
334 |
|
335 |
-
$errors = Mage::helper('Antidot/
|
336 |
|
337 |
$match = array();
|
338 |
if (preg_match('#Warning 1549: failed to load external entity "(.*)\.xsd"#', $errors[0], $match)) {
|
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 |
+
* @var $antidotHelper MDN_Antidot_Helper_Data
|
57 |
*/
|
58 |
+
$antidotHelper = Mage::helper('Antidot');
|
59 |
+
$memoryLimit = Mage::getStoreConfig('antidot/export/memory_limit');
|
60 |
+
if (!$memoryLimit) {
|
61 |
+
$memoryLimit = self::MINIMUM_MEMORY_LIMIT;
|
62 |
+
}
|
63 |
+
if ($antidotHelper->returnBytes(ini_get('memory_limit')) < $antidotHelper->returnBytes($memoryLimit)) {
|
64 |
+
ini_set('memory_limit', $memoryLimit);
|
65 |
}
|
66 |
|
67 |
}
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
/**
|
70 |
* Init the tmp directory
|
71 |
*/
|
95 |
public function catalogFullExport($runContext = 'cron')
|
96 |
{
|
97 |
$this->log('FULL EXPORT');
|
98 |
+
return $this->generate(Mage::getModel('Antidot/export_product'), self::GENERATE_FULL, $runContext);
|
99 |
}
|
100 |
|
101 |
/**
|
103 |
*/
|
104 |
public function catalogIncExport($runContext = 'cron')
|
105 |
{
|
106 |
+
return $this->generate(Mage::getModel('Antidot/export_product'), self::GENERATE_INC, $runContext);
|
107 |
}
|
108 |
|
109 |
/**
|
111 |
*/
|
112 |
public function categoriesFullExport($runContext = 'cron')
|
113 |
{
|
114 |
+
return $this->generate(Mage::getModel('Antidot/export_category'), self::GENERATE_FULL, $runContext);
|
115 |
}
|
116 |
|
117 |
/**
|
179 |
$log['status'] = 'SUCCESS';
|
180 |
} else {
|
181 |
$log['status'] = 'FAILED';
|
182 |
+
$lastError = current(Mage::helper('Antidot/xmlWriter')->getErrors());
|
183 |
if ($lastError) {
|
184 |
$log['error'][] = $lastError;
|
185 |
} else {
|
203 |
$this->log('generate '.$exportModel::TYPE.' '.$context['owner']);
|
204 |
$this->log('end');
|
205 |
|
206 |
+
Mage::helper('Antidot/logExport')->add($log['reference'], $type, $exportModel::TYPE, $log['begin'], $log['end'], $log['items'], $log['status'], implode(',', $log['error']));
|
207 |
|
208 |
if ( count($log['error']) ) {
|
209 |
//send error alert mail
|
253 |
$this->log('compress the file');
|
254 |
|
255 |
$compressFile = dirname(current($files)).'/'.$compressFile;
|
256 |
+
Mage::helper('Antidot/compress')->zip($files, $compressFile);
|
257 |
|
258 |
return $compressFile;
|
259 |
}
|
268 |
{
|
269 |
$this->log('send the file');
|
270 |
|
271 |
+
$transport = Mage::getModel('Antidot/transport');
|
272 |
|
273 |
return $transport->send($filename, $transport::TRANS_FTP);
|
274 |
}
|
286 |
$errors = array();
|
287 |
|
288 |
//disable schema validation
|
289 |
+
if (Mage::getStoreConfig('antidot/export/xsd_validation_disable') == 1) {
|
290 |
+
$this->log('schema validation is DISABLED due to configuration');
|
291 |
+
} elseif (!class_exists('DOMDocument')) {
|
292 |
+
$this->log('schema validation is DISABLED due to lack of libxml DOMDocument Class');
|
293 |
} else {
|
294 |
|
295 |
libxml_use_internal_errors(true);
|
304 |
$this->log('Schema validated');
|
305 |
} else {
|
306 |
|
307 |
+
$errors = Mage::helper('Antidot/xmlWriter')->getErrors();
|
308 |
|
309 |
$match = array();
|
310 |
if (preg_match('#Warning 1549: failed to load external entity "(.*)\.xsd"#', $errors[0], $match)) {
|
app/code/community/MDN/Antidot/Model/Resource/Engine/Abstract.php
CHANGED
@@ -86,12 +86,12 @@ abstract class MDN_Antidot_Model_Resource_Engine_Abstract
|
|
86 |
* @param string $type
|
87 |
* @return array
|
88 |
*/
|
89 |
-
public function getIdsByQuery($query, $params = array()
|
90 |
{
|
91 |
$paramsHash = md5(json_encode($params));
|
92 |
if (!isset($this->_idsByQuery[$paramsHash])) {
|
93 |
$ids = array();
|
94 |
-
$resultTmp = $this->search($query, $params
|
95 |
if (!empty($resultTmp['ids'])) {
|
96 |
foreach ($resultTmp['ids'] as $id) {
|
97 |
$ids[] = $id['id'];
|
@@ -149,7 +149,7 @@ abstract class MDN_Antidot_Model_Resource_Engine_Abstract
|
|
149 |
*/
|
150 |
public function getStats($query, $params = array(), $type = 'product')
|
151 |
{
|
152 |
-
return $this->_search($query, $params
|
153 |
}
|
154 |
|
155 |
/**
|
@@ -180,16 +180,16 @@ abstract class MDN_Antidot_Model_Resource_Engine_Abstract
|
|
180 |
* @param string $type
|
181 |
* @return array
|
182 |
*/
|
183 |
-
public function search($query, $params = array()
|
184 |
{
|
185 |
$result = array();
|
186 |
try {
|
187 |
Varien_Profiler::start('Antidot');
|
188 |
-
$result = $this->_search($query, $params
|
189 |
Varien_Profiler::stop('Antidot');
|
190 |
|
191 |
} catch (Exception $e) {
|
192 |
-
Mage::
|
193 |
}
|
194 |
|
195 |
return $result;
|
86 |
* @param string $type
|
87 |
* @return array
|
88 |
*/
|
89 |
+
public function getIdsByQuery($query, $params = array())
|
90 |
{
|
91 |
$paramsHash = md5(json_encode($params));
|
92 |
if (!isset($this->_idsByQuery[$paramsHash])) {
|
93 |
$ids = array();
|
94 |
+
$resultTmp = $this->search($query, $params);
|
95 |
if (!empty($resultTmp['ids'])) {
|
96 |
foreach ($resultTmp['ids'] as $id) {
|
97 |
$ids[] = $id['id'];
|
149 |
*/
|
150 |
public function getStats($query, $params = array(), $type = 'product')
|
151 |
{
|
152 |
+
return $this->_search($query, $params);
|
153 |
}
|
154 |
|
155 |
/**
|
180 |
* @param string $type
|
181 |
* @return array
|
182 |
*/
|
183 |
+
public function search($query, $params = array())
|
184 |
{
|
185 |
$result = array();
|
186 |
try {
|
187 |
Varien_Profiler::start('Antidot');
|
188 |
+
$result = $this->_search($query, $params);
|
189 |
Varien_Profiler::stop('Antidot');
|
190 |
|
191 |
} catch (Exception $e) {
|
192 |
+
Mage::log($e->getMessage(), null, 'antidot.log');
|
193 |
}
|
194 |
|
195 |
return $result;
|
app/code/community/MDN/Antidot/Model/Resource/Engine/Antidot.php
CHANGED
@@ -27,7 +27,7 @@ class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resour
|
|
27 |
*/
|
28 |
public function __construct()
|
29 |
{
|
30 |
-
$this->client = Mage::getModel('Antidot/
|
31 |
}
|
32 |
|
33 |
/**
|
@@ -37,7 +37,7 @@ class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resour
|
|
37 |
*/
|
38 |
protected function _getHelper()
|
39 |
{
|
40 |
-
return Mage::helper('Antidot/
|
41 |
}
|
42 |
|
43 |
/**
|
@@ -291,7 +291,6 @@ class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resour
|
|
291 |
*
|
292 |
* @param string $query
|
293 |
* @param array $params
|
294 |
-
* @param string $type
|
295 |
* @return array
|
296 |
*/
|
297 |
protected function _search($query, $params = array())
|
27 |
*/
|
28 |
public function __construct()
|
29 |
{
|
30 |
+
$this->client = Mage::getModel('Antidot/search_search');
|
31 |
}
|
32 |
|
33 |
/**
|
37 |
*/
|
38 |
protected function _getHelper()
|
39 |
{
|
40 |
+
return Mage::helper('Antidot/antidot');
|
41 |
}
|
42 |
|
43 |
/**
|
291 |
*
|
292 |
* @param string $query
|
293 |
* @param array $params
|
|
|
294 |
* @return array
|
295 |
*/
|
296 |
protected function _search($query, $params = array())
|
app/code/community/MDN/Antidot/Model/Search/Search.php
CHANGED
@@ -32,6 +32,11 @@ class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
|
|
32 |
*/
|
33 |
protected $afsSearch;
|
34 |
|
|
|
|
|
|
|
|
|
|
|
35 |
/**
|
36 |
* {@inherit}
|
37 |
*/
|
@@ -54,6 +59,10 @@ class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
|
|
54 |
}
|
55 |
}
|
56 |
|
|
|
|
|
|
|
|
|
57 |
/**
|
58 |
* Get the suggest list
|
59 |
*
|
@@ -167,16 +176,18 @@ class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
|
|
167 |
*/
|
168 |
public function getFacets()
|
169 |
{
|
170 |
-
|
|
|
171 |
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
|
|
176 |
}
|
177 |
}
|
178 |
|
179 |
-
return $facets;
|
180 |
}
|
181 |
|
182 |
/**
|
32 |
*/
|
33 |
protected $afsSearch;
|
34 |
|
35 |
+
/**
|
36 |
+
* @var array facets
|
37 |
+
*/
|
38 |
+
protected $facets;
|
39 |
+
|
40 |
/**
|
41 |
* {@inherit}
|
42 |
*/
|
59 |
}
|
60 |
}
|
61 |
|
62 |
+
public function getLastSearchTranslations() {
|
63 |
+
return self::$lastSearchTranslations;
|
64 |
+
}
|
65 |
+
|
66 |
/**
|
67 |
* Get the suggest list
|
68 |
*
|
176 |
*/
|
177 |
public function getFacets()
|
178 |
{
|
179 |
+
if (!$this->facets) {
|
180 |
+
$this->facets = array();
|
181 |
|
182 |
+
$resultAntidot = $this->search(null, array('limit' => 1), true);
|
183 |
+
if (isset($resultAntidot->replyset) && $resultAntidot->replyset) {
|
184 |
+
foreach ($resultAntidot->replyset->facets as $facet) {
|
185 |
+
$this->facets[$facet->id] = $facet;
|
186 |
+
}
|
187 |
}
|
188 |
}
|
189 |
|
190 |
+
return $this->facets;
|
191 |
}
|
192 |
|
193 |
/**
|
app/code/community/MDN/Antidot/Model/System/Config/Facet.php
CHANGED
@@ -25,7 +25,7 @@ class MDN_Antidot_Model_System_Config_Facet
|
|
25 |
{
|
26 |
if (!$this->options) {
|
27 |
try {
|
28 |
-
$search = Mage::
|
29 |
|
30 |
$this->options = array();
|
31 |
if (count($search->getFacets()) > 0) {
|
@@ -46,8 +46,9 @@ class MDN_Antidot_Model_System_Config_Facet
|
|
46 |
|
47 |
foreach ($search->getFacets() as $facetId => $facet) {
|
48 |
if ($typeExclude === null || $facet->get_type() !== $typeExclude) {
|
|
|
49 |
$this->options[] = array(
|
50 |
-
'value' => $facetId.'|'
|
51 |
'label' => $facetId.' ('.$facet->get_type().')'
|
52 |
);
|
53 |
|
25 |
{
|
26 |
if (!$this->options) {
|
27 |
try {
|
28 |
+
$search = Mage::getSingleton('Antidot/search_search');
|
29 |
|
30 |
$this->options = array();
|
31 |
if (count($search->getFacets()) > 0) {
|
46 |
|
47 |
foreach ($search->getFacets() as $facetId => $facet) {
|
48 |
if ($typeExclude === null || $facet->get_type() !== $typeExclude) {
|
49 |
+
//MCNX-235 : escape single quote for javascript, it cause error in javascript facet editor in BO
|
50 |
$this->options[] = array(
|
51 |
+
'value' => $facetId.'|'.Mage::helper('core')->jsQuoteEscape($facet->get_label()),
|
52 |
'label' => $facetId.' ('.$facet->get_type().')'
|
53 |
);
|
54 |
|
app/code/community/MDN/Antidot/Model/Transport.php
CHANGED
@@ -28,7 +28,7 @@ class MDN_Antidot_Model_Transport extends Mage_Core_Model_Abstract
|
|
28 |
*/
|
29 |
public function send($file, $type = self::TRANS_FILE)
|
30 |
{
|
31 |
-
if($transport = Mage::getModel('Antidot/
|
32 |
return $transport->send($file);
|
33 |
}
|
34 |
|
28 |
*/
|
29 |
public function send($file, $type = self::TRANS_FILE)
|
30 |
{
|
31 |
+
if($transport = Mage::getModel('Antidot/transport_'.ucfirst($type))) {
|
32 |
return $transport->send($file);
|
33 |
}
|
34 |
|
app/code/community/MDN/Antidot/Test/Helper/Data.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
class MDN_Antidot_Test_Helper_Data extends EcomDev_PHPUnit_Test_Case
|
16 |
+
{
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Test method MDN_Antidot_Model_Observer returnBytes
|
20 |
+
*/
|
21 |
+
function testReturnBytes()
|
22 |
+
{
|
23 |
+
/** @var $observer MDN_Antidot_Model_Observer */
|
24 |
+
$helper = Mage::helper('Antidot');
|
25 |
+
|
26 |
+
foreach (array("2048M" => "2147483648", "512M" => "536870912", "4G" => "4294967296") as $value => $expected) {
|
27 |
+
$result = $helper->returnBytes($value);
|
28 |
+
$this->assertEquals(
|
29 |
+
$result,
|
30 |
+
$expected
|
31 |
+
);
|
32 |
+
}
|
33 |
+
|
34 |
+
}
|
35 |
+
|
36 |
+
}
|
app/code/community/MDN/Antidot/Test/Model/Export/Abstract.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class MDN_Antidot_Test_Model_Export_Abstract extends EcomDev_PHPUnit_Test_Case
|
5 |
+
{
|
6 |
+
|
7 |
+
/**
|
8 |
+
* test Garbage Collection
|
9 |
+
*
|
10 |
+
* gc is enabled in fixture
|
11 |
+
* percentage is set to 10% in fixture
|
12 |
+
*
|
13 |
+
* @loadFixture
|
14 |
+
*/
|
15 |
+
public function testGarbageCollection() {
|
16 |
+
|
17 |
+
$export = Mage::getModel('Antidot/export_product');
|
18 |
+
/* store the default limit */
|
19 |
+
$initialLimit = ini_get('memory_limit');
|
20 |
+
|
21 |
+
//set memory limit to 5x the used memory : then the used memory will be more than 10% of the limit
|
22 |
+
ini_set('memory_limit', memory_get_usage(true) * 5);
|
23 |
+
$done = MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export, 'garbageCollection', array());
|
24 |
+
$this->assertTrue($done);
|
25 |
+
|
26 |
+
//set memory limit to 10x the used memory : then the used memory will be less than 10% of the limit
|
27 |
+
ini_set('memory_limit', memory_get_usage(true) * 10);
|
28 |
+
$done = MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export, 'garbageCollection', array());
|
29 |
+
$this->assertFalse($done);
|
30 |
+
|
31 |
+
ini_set('memory_limit', $initialLimit);
|
32 |
+
}
|
33 |
+
|
34 |
+
}
|
app/code/community/MDN/Antidot/Test/Model/Export/Abstract/fixtures/testGarbageCollection.yaml
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
config:
|
2 |
+
default/antidot/export/gc_enabled: 1
|
3 |
+
default/antidot/export/gc_percentage_limit: 10
|
app/code/community/MDN/Antidot/Test/Model/Export/Category.php
CHANGED
@@ -4,6 +4,11 @@
|
|
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 |
*/
|
@@ -23,15 +28,19 @@ class MDN_Antidot_Test_Model_Export_Category extends EcomDev_PHPUnit_Test_Case
|
|
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(
|
33 |
-
$context['website_ids'] = array(
|
34 |
-
$context['stores'] = array(Mage::getModel('core/store')->load(
|
|
|
|
|
|
|
35 |
$nbItem = $export->writeXml($context, 'categories-magento_jetpulp_FULL-en.xml', MDN_Antidot_Model_Observer::GENERATE_FULL);
|
36 |
|
37 |
$this->assertEquals($nbItem, 0);
|
@@ -43,4 +52,4 @@ class MDN_Antidot_Test_Model_Export_Category extends EcomDev_PHPUnit_Test_Case
|
|
43 |
|
44 |
}
|
45 |
|
46 |
-
}
|
4 |
class MDN_Antidot_Test_Model_Export_Category extends EcomDev_PHPUnit_Test_Case
|
5 |
{
|
6 |
|
7 |
+
public static function setUpBeforeClass()
|
8 |
+
{
|
9 |
+
//avoid errors when session_start is called during the test
|
10 |
+
@session_start();
|
11 |
+
}
|
12 |
/*
|
13 |
* MCNX-56 add version number and run context in the feed tag
|
14 |
*/
|
28 |
/*
|
29 |
* MCNX-170 don't generate file if there's no categories to export
|
30 |
* test the XmlWriter has not been initialised if there's no categories to export
|
31 |
+
* @loadFixture
|
32 |
*/
|
33 |
public function testEmptyFile() {
|
34 |
|
35 |
$export = Mage::getModel('Antidot/export_category');
|
36 |
|
37 |
$context = array();
|
38 |
+
$context['store_id'] = array(2);
|
39 |
+
$context['website_ids'] = array(2);
|
40 |
+
$context['stores'] = array(Mage::getModel('core/store')->load(2));
|
41 |
+
$context['owner'] = 'JETPULP';
|
42 |
+
$context['run'] = 'phpunit';
|
43 |
+
$context['lang'] = 'en';
|
44 |
$nbItem = $export->writeXml($context, 'categories-magento_jetpulp_FULL-en.xml', MDN_Antidot_Model_Observer::GENERATE_FULL);
|
45 |
|
46 |
$this->assertEquals($nbItem, 0);
|
52 |
|
53 |
}
|
54 |
|
55 |
+
}
|
app/code/community/MDN/Antidot/Test/Model/Export/Category/fixtures/testEmptyFile.yaml
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
scope:
|
2 |
+
website: # Initialize websites
|
3 |
+
- website_id: 2
|
4 |
+
code: usa_website
|
5 |
+
name: USA Website
|
6 |
+
default_group_id: 2
|
7 |
+
group: # Initializes store groups
|
8 |
+
- group_id: 2
|
9 |
+
website_id: 2
|
10 |
+
name: USA Store Group
|
11 |
+
default_store_id: 2
|
12 |
+
root_category_id: 99 # Default Category
|
13 |
+
store: # Initializes store views
|
14 |
+
- store_id: 2
|
15 |
+
website_id: 2
|
16 |
+
group_id: 2
|
17 |
+
code: usa
|
18 |
+
name: USA Store
|
19 |
+
is_active: 1
|
app/code/community/MDN/Antidot/Test/Model/Export/Product.php
CHANGED
@@ -453,8 +453,41 @@ class MDN_Antidot_Test_Model_Export_Product extends EcomDev_PHPUnit_Test_Case
|
|
453 |
$expected='<prices><price currency="EUR" type="PRICE_FINAL" vat_included="true" country="FR">15.99</price></prices>';
|
454 |
$this->assertEquals($expected, $xmlWriter->getXml());
|
455 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
456 |
|
457 |
}
|
|
|
458 |
/**
|
459 |
*
|
460 |
* @param $productId
|
453 |
$expected='<prices><price currency="EUR" type="PRICE_FINAL" vat_included="true" country="FR">15.99</price></prices>';
|
454 |
$this->assertEquals($expected, $xmlWriter->getXml());
|
455 |
|
456 |
+
}
|
457 |
+
|
458 |
+
/**
|
459 |
+
* MCNX-236 : test getProductCategories
|
460 |
+
* @loadFixture
|
461 |
+
*/
|
462 |
+
public function testGetProductCategories()
|
463 |
+
{
|
464 |
+
|
465 |
+
/* @var $export \MDN_Antidot_Model_Export_Product */
|
466 |
+
$export = Mage::getModel('Antidot/export_product');
|
467 |
+
|
468 |
+
/**
|
469 |
+
* create mock product to simulate getCategoryCollection returning list of the to category of the product
|
470 |
+
* beacause fixture doesn't simulate it...
|
471 |
+
*/
|
472 |
+
$mockModel = $this->getModelMock('catalog/product', array('getCategoryCollection', 'getStoreId'));
|
473 |
+
$mockModel->expects($this->any())
|
474 |
+
->method('getCategoryCollection')
|
475 |
+
->will($this->returnValue(Mage::getResourceModel('catalog/category_collection')->addAttributeToFilter('entity_id', array(10,11))));
|
476 |
+
$mockModel->expects($this->any())
|
477 |
+
->method('getStoreId')
|
478 |
+
->will($this->returnValue(3));
|
479 |
+
|
480 |
+
/**
|
481 |
+
* Categories 10 and 11 are affected to the product in fixtures
|
482 |
+
* Category 11 is not active.
|
483 |
+
* We expect one category associated to the product
|
484 |
+
*/
|
485 |
+
$categories = MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($export,'getProductCategories', array($mockModel, array(2)));
|
486 |
+
|
487 |
+
$this->assertEquals(1, count($categories));
|
488 |
|
489 |
}
|
490 |
+
|
491 |
/**
|
492 |
*
|
493 |
* @param $productId
|
app/code/community/MDN/Antidot/Test/Model/Export/Product/fixtures/testGetProductCategories.yaml
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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/web/secure/base_url: http://www.mywebsite.com/
|
52 |
+
default/web/unsecure/base_url: http://www.mywebsite.com/
|
53 |
+
stores/usa/web/secure/base_url: http://www.mywebsite.com/
|
54 |
+
stores/france/web/secure/base_url: http://www.monsiteweb.fr/
|
55 |
+
stores/germany/web/secure/base_url: http://www.meinwebseite.de/
|
56 |
+
stores/usa/web/unsecure/base_url: http://www.mywebsite.com/
|
57 |
+
stores/france/web/unsecure/base_url: http://www.monsiteweb.fr/
|
58 |
+
stores/germany/web/unsecure/base_url: http://www.meinwebseite.de/
|
59 |
+
eav:
|
60 |
+
catalog_product:
|
61 |
+
- entity_id: 1
|
62 |
+
type_id: simple
|
63 |
+
attribute_set_id: 4 # Default
|
64 |
+
sku: book
|
65 |
+
name: Book
|
66 |
+
short_description: Book
|
67 |
+
description: Book
|
68 |
+
url_key: book
|
69 |
+
image: b/o/book.jpg
|
70 |
+
thumbnail: b/o/book_small.jpg
|
71 |
+
stock:
|
72 |
+
qty: 100.00
|
73 |
+
is_in_stock: 1
|
74 |
+
website_ids:
|
75 |
+
- usa_website
|
76 |
+
- french_website
|
77 |
+
- german_website
|
78 |
+
category_ids:
|
79 |
+
- 10,11
|
80 |
+
price: 12.99
|
81 |
+
tax_class_id: 2 # Taxable Goods
|
82 |
+
status: 1 # Enabled
|
83 |
+
visibility: 4 # Visible in Catalog & Search
|
84 |
+
/websites: # Set different prices per website
|
85 |
+
usa_website:
|
86 |
+
special_price: 9.99
|
87 |
+
german_website:
|
88 |
+
price: 9.99
|
89 |
+
special_price: 5.99
|
90 |
+
eav:
|
91 |
+
catalog_category:
|
92 |
+
- entity_id: 10
|
93 |
+
path: 1/2/10
|
94 |
+
name: Categorie active
|
95 |
+
is_active: 1
|
96 |
+
parent_id: 2
|
97 |
+
- entity_id: 11
|
98 |
+
path: 1/2/11
|
99 |
+
name: Categorie inactive
|
100 |
+
is_active: 0
|
101 |
+
parent_id: 2
|
app/code/community/MDN/Antidot/Test/Model/System/Config/Facet.php
CHANGED
@@ -28,11 +28,11 @@ class MDN_Antidot_Test_Model_System_Config_Facet extends EcomDev_PHPUnit_Test_Ca
|
|
28 |
->method('get_labels')
|
29 |
->will($this->returnValue(array('de'=>'Verfügbarkeit', 'fr' => 'Disponibilité', 'en' => 'Availability')));
|
30 |
|
31 |
-
$mockSearch = $this->getModelMock('Antidot/
|
32 |
$mockSearch->expects($this->any())
|
33 |
->method('getFacets')
|
34 |
->will($this->returnValue(array('is_available'=> $mockAFSHelper )));
|
35 |
-
$this->replaceByMock('model', 'Antidot/
|
36 |
|
37 |
|
38 |
Mage::app()->setCurrentStore(0);
|
@@ -76,6 +76,49 @@ class MDN_Antidot_Test_Model_System_Config_Facet extends EcomDev_PHPUnit_Test_Ca
|
|
76 |
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
}
|
80 |
class MDN_Antidot_Test_Model_System_Config_Facet_MockAFSHelper
|
81 |
{
|
28 |
->method('get_labels')
|
29 |
->will($this->returnValue(array('de'=>'Verfügbarkeit', 'fr' => 'Disponibilité', 'en' => 'Availability')));
|
30 |
|
31 |
+
$mockSearch = $this->getModelMock('Antidot/search_search', array('getFacets'));
|
32 |
$mockSearch->expects($this->any())
|
33 |
->method('getFacets')
|
34 |
->will($this->returnValue(array('is_available'=> $mockAFSHelper )));
|
35 |
+
$this->replaceByMock('model', 'Antidot/search_search', $mockSearch);
|
36 |
|
37 |
|
38 |
Mage::app()->setCurrentStore(0);
|
76 |
|
77 |
}
|
78 |
|
79 |
+
/**
|
80 |
+
* Test toOptionArray method
|
81 |
+
*
|
82 |
+
* MCNX-235 : escape single quote in label
|
83 |
+
*/
|
84 |
+
public function testToOptionArrayEscapeQuote()
|
85 |
+
{
|
86 |
+
|
87 |
+
/*
|
88 |
+
*
|
89 |
+
*/
|
90 |
+
$mockAFSHelper = $this->getMock('MDN_Antidot_Test_Model_System_Config_Facet_MockAFSHelper');
|
91 |
+
$mockAFSHelper->expects($this->any())
|
92 |
+
->method('get_type')
|
93 |
+
->will($this->returnValue('boolean'));
|
94 |
+
$mockAFSHelper->expects($this->any())
|
95 |
+
->method('get_label')
|
96 |
+
->will($this->returnValue("Type d'accessoire"));
|
97 |
+
$mockAFSHelper->expects($this->any())
|
98 |
+
->method('get_labels')
|
99 |
+
->will($this->returnValue(array("fr"=>"Type d'accessoire")));
|
100 |
+
|
101 |
+
$mockSearch = $this->getModelMock('Antidot/search_search', array('getFacets'));
|
102 |
+
$mockSearch->expects($this->any())
|
103 |
+
->method('getFacets')
|
104 |
+
->will($this->returnValue(array('type_accessoire'=> $mockAFSHelper )));
|
105 |
+
$this->replaceByMock('model', 'Antidot/search_search', $mockSearch);
|
106 |
+
|
107 |
+
|
108 |
+
Mage::app()->setCurrentStore(0);
|
109 |
+
/** @var $configSort MDN_Antidot_Model_System_Config_Facet */
|
110 |
+
$configFacet = Mage::getModel('Antidot/system_config_facet');
|
111 |
+
|
112 |
+
$values = $configFacet->toOptionArray('STRING');
|
113 |
+
|
114 |
+
$this->assertEquals(
|
115 |
+
array(array("value"=>"type_accessoire|Type d\'accessoire", 'label' => 'type_accessoire (boolean)')),
|
116 |
+
$values
|
117 |
+
);
|
118 |
+
|
119 |
+
|
120 |
+
}
|
121 |
+
|
122 |
}
|
123 |
class MDN_Antidot_Test_Model_System_Config_Facet_MockAFSHelper
|
124 |
{
|
app/code/community/MDN/Antidot/controllers/Admin/PushController.php
CHANGED
@@ -23,7 +23,7 @@ class MDN_Antidot_Admin_PushController extends Mage_Adminhtml_Controller_Action
|
|
23 |
{
|
24 |
try
|
25 |
{
|
26 |
-
if (Mage::getModel('Antidot/
|
27 |
Mage::getSingleton('adminhtml/session')->addSuccess(
|
28 |
Mage::helper('Antidot')->__('Categories exported')
|
29 |
);
|
@@ -47,7 +47,7 @@ class MDN_Antidot_Admin_PushController extends Mage_Adminhtml_Controller_Action
|
|
47 |
public function ProductAction()
|
48 |
{
|
49 |
try {
|
50 |
-
if (Mage::getModel('Antidot/
|
51 |
Mage::getSingleton('adminhtml/session')->addSuccess(
|
52 |
Mage::helper('Antidot')->__('Catalog exported')
|
53 |
);
|
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 |
);
|
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 |
);
|
app/code/community/MDN/Antidot/etc/config.xml
CHANGED
@@ -18,7 +18,7 @@
|
|
18 |
</crontab>
|
19 |
<modules>
|
20 |
<MDN_Antidot>
|
21 |
-
<version>1.1.
|
22 |
</MDN_Antidot>
|
23 |
</modules>
|
24 |
<global>
|
@@ -605,6 +605,29 @@
|
|
605 |
<promote>
|
606 |
<redirect>no_result</redirect>
|
607 |
</promote>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
608 |
</antidot>
|
609 |
</default>
|
610 |
<phpunit>
|
18 |
</crontab>
|
19 |
<modules>
|
20 |
<MDN_Antidot>
|
21 |
+
<version>1.1.3</version>
|
22 |
</MDN_Antidot>
|
23 |
</modules>
|
24 |
<global>
|
605 |
<promote>
|
606 |
<redirect>no_result</redirect>
|
607 |
</promote>
|
608 |
+
<!-- Export Parameters :-->
|
609 |
+
<!-- For developpers : these parameters are set with default values which fit most of systems, but they can be tweak here : -->
|
610 |
+
<!-- (Flush magento config cache after modifiying them) -->
|
611 |
+
<export>
|
612 |
+
<!-- Memory Limit : this value is set as memory_limit if default one is below, you can increase it if you run into out of memory error -->
|
613 |
+
<memory_limit>2048M</memory_limit>
|
614 |
+
<!-- If you run into out of memory error, but can't increase memory limit, you can set gc_enabled to 1, -->
|
615 |
+
<!-- it will trigger some gc_collect_cycles to free some memory, however it will slow down process -->
|
616 |
+
<gc_enabled>0</gc_enabled>
|
617 |
+
<!-- if garbage collection is enabled, the gc_collect_cycles will be trigger when memory used exceeds gc_percentage_limit of memory_limit -->
|
618 |
+
<gc_percentage_limit>80</gc_percentage_limit>
|
619 |
+
<!-- number of product processed before flush xml in file -->
|
620 |
+
<chunk_size>500</chunk_size>
|
621 |
+
<!-- disable xsd validation -->
|
622 |
+
<xsd_validation_disable>0</xsd_validation_disable>
|
623 |
+
<!-- enable profiler and debug mode -->
|
624 |
+
<!-- it collect mysql queries, methods timers and limit to 1 chunk the process -->
|
625 |
+
<profiler_enable>0</profiler_enable>
|
626 |
+
<!-- number of slowest mysql queries logged -->
|
627 |
+
<profiler_nb_lowest_queries>10</profiler_nb_lowest_queries>
|
628 |
+
<!-- varien_profiler items time consuming quota of total time logged -->
|
629 |
+
<profiler_varien_quota>0.001</profiler_varien_quota>
|
630 |
+
</export>
|
631 |
</antidot>
|
632 |
</default>
|
633 |
<phpunit>
|
app/code/community/MDN/Antidot/etc/system.xml
CHANGED
@@ -18,10 +18,17 @@
|
|
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>
|
25 |
<show_in_default>1</show_in_default>
|
26 |
<show_in_website>0</show_in_website>
|
27 |
<show_in_store>0</show_in_store>
|
@@ -29,7 +36,7 @@
|
|
29 |
<version translate="label">
|
30 |
<label>AFS@Store Extension Version</label>
|
31 |
<frontend_model>Antidot/System_Config_Html_Version</frontend_model>
|
32 |
-
<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>
|
18 |
<show_in_website>1</show_in_website>
|
19 |
<show_in_store>1</show_in_store>
|
20 |
<fields>
|
21 |
+
<notice>
|
22 |
+
<frontend_model>Antidot/System_Config_Fieldset_Notice</frontend_model>
|
23 |
+
<sort_order>1</sort_order>
|
24 |
+
<show_in_default>1</show_in_default>
|
25 |
+
<show_in_website>0</show_in_website>
|
26 |
+
<show_in_store>0</show_in_store>
|
27 |
+
</notice>
|
28 |
<afsstore translate="label">
|
29 |
<label>AFS@Store Back-Office</label>
|
30 |
<frontend_model>Antidot/System_Config_Button_AfsStore</frontend_model>
|
31 |
+
<sort_order>2</sort_order>
|
32 |
<show_in_default>1</show_in_default>
|
33 |
<show_in_website>0</show_in_website>
|
34 |
<show_in_store>0</show_in_store>
|
36 |
<version translate="label">
|
37 |
<label>AFS@Store Extension Version</label>
|
38 |
<frontend_model>Antidot/System_Config_Html_Version</frontend_model>
|
39 |
+
<sort_order>3</sort_order>
|
40 |
<show_in_default>1</show_in_default>
|
41 |
<show_in_website>0</show_in_website>
|
42 |
<show_in_store>0</show_in_store>
|
app/design/frontend/{default → base}/default/layout/antidot.xml
RENAMED
@@ -4,6 +4,7 @@
|
|
4 |
|
5 |
<catalogsearch_result_index>
|
6 |
<reference name="search.result">
|
|
|
7 |
<block type="Antidot/Catalogsearch_Category" name="search_result_category" as="search_result_category" template="antidot/catalogsearch/result/category.phtml" />
|
8 |
</reference>
|
9 |
</catalogsearch_result_index>
|
4 |
|
5 |
<catalogsearch_result_index>
|
6 |
<reference name="search.result">
|
7 |
+
<action method="setTemplate"><template>antidot/catalogsearch/result.phtml</template></action>
|
8 |
<block type="Antidot/Catalogsearch_Category" name="search_result_category" as="search_result_category" template="antidot/catalogsearch/result/category.phtml" />
|
9 |
</reference>
|
10 |
</catalogsearch_result_index>
|
app/design/frontend/{default → base}/default/template/antidot/catalogsearch/result/category.phtml
RENAMED
File without changes
|
app/locale/de_AT/MDN_Antidot.csv
CHANGED
@@ -139,4 +139,9 @@ Price,Preis
|
|
139 |
"Feed ID","Futter ID"
|
140 |
"Add a feed","fügen Sie ein Futter"
|
141 |
"Additionnal feed","Additionnal Futter"
|
142 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Fügen Sie eine zusätzliche Einspeisung in den AKP- Reaktion , typicaly einer Hitparade oder andere Futtermittel in AFSStore Back-Office konfiguriert ist."
|
|
|
|
|
|
|
|
|
|
139 |
"Feed ID","Futter ID"
|
140 |
"Add a feed","fügen Sie ein Futter"
|
141 |
"Additionnal feed","Additionnal Futter"
|
142 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Fügen Sie eine zusätzliche Einspeisung in den AKP- Reaktion , typicaly einer Hitparade oder andere Futtermittel in AFSStore Back-Office konfiguriert ist."
|
143 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","XSLTProcessor Klasse nicht vorhanden ist, müssen Sie php xsl extension zu installieren, da sonst die Autovervollständigung werden nicht ordnungsgemäß ausgeführt"
|
144 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","ZipArchive Klasse nicht vorhanden ist, müssen Sie php zip extension zu installieren, sonst wird die Zip-Betrieb während der Export möglicherweise nicht korrekt ausgeführt"
|
145 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","DOMDocument Klasse nicht vorhanden ist, müssen Sie php libxml extension zu installieren, da sonst die XSD-Validierung während des Exports wird nicht ausgeführt und weder Autovervollständigung"
|
146 |
+
"The curl php extension is not installed, it's required to upload export files","Die php curl extension nicht installiert ist, es ist erforderlich , um den Export Dateien hochladen"
|
147 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","Die php curl extension nicht SFTP-Protokoll unterstützen, müssen libcurl auf Ihrem System aktualisiert werden , sonst werden die Exportdateien werden nicht hochgeladen werden"
|
app/locale/de_CH/MDN_Antidot.csv
CHANGED
@@ -139,4 +139,9 @@ Price,Preis
|
|
139 |
"Feed ID","Futter ID"
|
140 |
"Add a feed","fügen Sie ein Futter"
|
141 |
"Additionnal feed","Additionnal Futter"
|
142 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Fügen Sie eine zusätzliche Einspeisung in den AKP- Reaktion , typicaly einer Hitparade oder andere Futtermittel in AFSStore Back-Office konfiguriert ist."
|
|
|
|
|
|
|
|
|
|
139 |
"Feed ID","Futter ID"
|
140 |
"Add a feed","fügen Sie ein Futter"
|
141 |
"Additionnal feed","Additionnal Futter"
|
142 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Fügen Sie eine zusätzliche Einspeisung in den AKP- Reaktion , typicaly einer Hitparade oder andere Futtermittel in AFSStore Back-Office konfiguriert ist."
|
143 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","XSLTProcessor Klasse nicht vorhanden ist, müssen Sie php xsl extension zu installieren, da sonst die Autovervollständigung werden nicht ordnungsgemäß ausgeführt"
|
144 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","ZipArchive Klasse nicht vorhanden ist, müssen Sie php zip extension zu installieren, sonst wird die Zip-Betrieb während der Export möglicherweise nicht korrekt ausgeführt"
|
145 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","DOMDocument Klasse nicht vorhanden ist, müssen Sie php libxml extension zu installieren, da sonst die XSD-Validierung während des Exports wird nicht ausgeführt und weder Autovervollständigung"
|
146 |
+
"The curl php extension is not installed, it's required to upload export files","Die php curl extension nicht installiert ist, es ist erforderlich , um den Export Dateien hochladen"
|
147 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","Die php curl extension nicht SFTP-Protokoll unterstützen, müssen libcurl auf Ihrem System aktualisiert werden , sonst werden die Exportdateien werden nicht hochgeladen werden"
|
app/locale/de_DE/MDN_Antidot.csv
CHANGED
@@ -139,4 +139,9 @@ Price,Preis
|
|
139 |
"Feed ID","Futter ID"
|
140 |
"Add a feed","fügen Sie ein Futter"
|
141 |
"Additionnal feed","Additionnal Futter"
|
142 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Fügen Sie eine zusätzliche Einspeisung in den AKP- Reaktion , typicaly einer Hitparade oder andere Futtermittel in AFSStore Back-Office konfiguriert ist."
|
|
|
|
|
|
|
|
|
|
139 |
"Feed ID","Futter ID"
|
140 |
"Add a feed","fügen Sie ein Futter"
|
141 |
"Additionnal feed","Additionnal Futter"
|
142 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Fügen Sie eine zusätzliche Einspeisung in den AKP- Reaktion , typicaly einer Hitparade oder andere Futtermittel in AFSStore Back-Office konfiguriert ist."
|
143 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","XSLTProcessor Klasse nicht vorhanden ist, müssen Sie php xsl extension zu installieren, da sonst die Autovervollständigung werden nicht ordnungsgemäß ausgeführt"
|
144 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","ZipArchive Klasse nicht vorhanden ist, müssen Sie php zip extension zu installieren, sonst wird die Zip-Betrieb während der Export möglicherweise nicht korrekt ausgeführt"
|
145 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","DOMDocument Klasse nicht vorhanden ist, müssen Sie php libxml extension zu installieren, da sonst die XSD-Validierung während des Exports wird nicht ausgeführt und weder Autovervollständigung"
|
146 |
+
"The curl php extension is not installed, it's required to upload export files","Die php curl extension nicht installiert ist, es ist erforderlich , um den Export Dateien hochladen"
|
147 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","Die php curl extension nicht SFTP-Protokoll unterstützen, müssen libcurl auf Ihrem System aktualisiert werden , sonst werden die Exportdateien werden nicht hochgeladen werden"
|
app/locale/es_AR/MDN_Antidot.csv
CHANGED
@@ -23,7 +23,7 @@ Term,"Palabra clave"
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
-
"Useful for support team","
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
@@ -138,4 +138,9 @@ Price,Precio
|
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
|
|
|
|
|
|
|
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
+
"Useful for support team","Útil para el equipo del soporte"
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
142 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","Clase XSLTProcessor no existe, debe instalar el extensión php xsl, de lo contrario el autocompletado no funcionará correctamente"
|
143 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","Clase ZipArchive no existe, debe instalar el extensión php postal, de lo contrario la operación postal durante la exportación puede no funcionará correctamente"
|
144 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","Clase DOMDocument no existe, debe instalar el extensión php libxml, de lo contrario la validación xsd durante la exportación no se ejecutará y autocompletar ni"
|
145 |
+
"The curl php extension is not installed, it's required to upload export files","La extensión php curl no está instalado, se requiere para subir archivos de exportación"
|
146 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","La extensión php curl no soporta el protocolo sftp , libcurl se debe actualizar en su sistema , de lo contrario no se subirán los archivos de exportación"
|
app/locale/es_CL/MDN_Antidot.csv
CHANGED
@@ -23,7 +23,7 @@ Term,"Palabra clave"
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
-
"Useful for support team","
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
@@ -138,4 +138,9 @@ Price,Precio
|
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
|
|
|
|
|
|
|
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
+
"Useful for support team","Útil para el equipo del soporte"
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
142 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","Clase XSLTProcessor no existe, debe instalar el extensión php xsl, de lo contrario el autocompletado no funcionará correctamente"
|
143 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","Clase ZipArchive no existe, debe instalar el extensión php postal, de lo contrario la operación postal durante la exportación puede no funcionará correctamente"
|
144 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","Clase DOMDocument no existe, debe instalar el extensión php libxml, de lo contrario la validación xsd durante la exportación no se ejecutará y autocompletar ni"
|
145 |
+
"The curl php extension is not installed, it's required to upload export files","La extensión php curl no está instalado, se requiere para subir archivos de exportación"
|
146 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","La extensión php curl no soporta el protocolo sftp , libcurl se debe actualizar en su sistema , de lo contrario no se subirán los archivos de exportación"
|
app/locale/es_CO/MDN_Antidot.csv
CHANGED
@@ -23,7 +23,7 @@ Term,"Palabra clave"
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
-
"Useful for support team","
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
@@ -138,4 +138,9 @@ Price,Precio
|
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
|
|
|
|
|
|
|
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
+
"Useful for support team","Útil para el equipo del soporte"
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
142 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","Clase XSLTProcessor no existe, debe instalar el extensión php xsl, de lo contrario el autocompletado no funcionará correctamente"
|
143 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","Clase ZipArchive no existe, debe instalar el extensión php postal, de lo contrario la operación postal durante la exportación puede no funcionará correctamente"
|
144 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","Clase DOMDocument no existe, debe instalar el extensión php libxml, de lo contrario la validación xsd durante la exportación no se ejecutará y autocompletar ni"
|
145 |
+
"The curl php extension is not installed, it's required to upload export files","La extensión php curl no está instalado, se requiere para subir archivos de exportación"
|
146 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","La extensión php curl no soporta el protocolo sftp , libcurl se debe actualizar en su sistema , de lo contrario no se subirán los archivos de exportación"
|
app/locale/es_CR/MDN_Antidot.csv
CHANGED
@@ -23,7 +23,7 @@ Term,"Palabra clave"
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
-
"Useful for support team","
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
@@ -138,4 +138,9 @@ Price,Precio
|
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
|
|
|
|
|
|
|
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
+
"Useful for support team","Útil para el equipo del soporte"
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
142 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","Clase XSLTProcessor no existe, debe instalar el extensión php xsl, de lo contrario el autocompletado no funcionará correctamente"
|
143 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","Clase ZipArchive no existe, debe instalar el extensión php postal, de lo contrario la operación postal durante la exportación puede no funcionará correctamente"
|
144 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","Clase DOMDocument no existe, debe instalar el extensión php libxml, de lo contrario la validación xsd durante la exportación no se ejecutará y autocompletar ni"
|
145 |
+
"The curl php extension is not installed, it's required to upload export files","La extensión php curl no está instalado, se requiere para subir archivos de exportación"
|
146 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","La extensión php curl no soporta el protocolo sftp , libcurl se debe actualizar en su sistema , de lo contrario no se subirán los archivos de exportación"
|
app/locale/es_ES/MDN_Antidot.csv
CHANGED
@@ -23,7 +23,7 @@ Term,"Palabra clave"
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
-
"Useful for support team","
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
@@ -138,4 +138,9 @@ Price,Precio
|
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
|
|
|
|
|
|
|
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
+
"Useful for support team","Útil para el equipo del soporte"
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
142 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","Clase XSLTProcessor no existe, debe instalar el extensión php xsl, de lo contrario el autocompletado no funcionará correctamente"
|
143 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","Clase ZipArchive no existe, debe instalar el extensión php postal, de lo contrario la operación postal durante la exportación puede no funcionará correctamente"
|
144 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","Clase DOMDocument no existe, debe instalar el extensión php libxml, de lo contrario la validación xsd durante la exportación no se ejecutará y autocompletar ni"
|
145 |
+
"The curl php extension is not installed, it's required to upload export files","La extensión php curl no está instalado, se requiere para subir archivos de exportación"
|
146 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","La extensión php curl no soporta el protocolo sftp , libcurl se debe actualizar en su sistema , de lo contrario no se subirán los archivos de exportación"
|
app/locale/es_MX/MDN_Antidot.csv
CHANGED
@@ -23,7 +23,7 @@ Term,"Palabra clave"
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
-
"Useful for support team","
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
@@ -138,4 +138,9 @@ Price,Precio
|
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
|
|
|
|
|
|
|
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
+
"Useful for support team","Útil para el equipo del soporte"
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
142 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","Clase XSLTProcessor no existe, debe instalar el extensión php xsl, de lo contrario el autocompletado no funcionará correctamente"
|
143 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","Clase ZipArchive no existe, debe instalar el extensión php postal, de lo contrario la operación postal durante la exportación puede no funcionará correctamente"
|
144 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","Clase DOMDocument no existe, debe instalar el extensión php libxml, de lo contrario la validación xsd durante la exportación no se ejecutará y autocompletar ni"
|
145 |
+
"The curl php extension is not installed, it's required to upload export files","La extensión php curl no está instalado, se requiere para subir archivos de exportación"
|
146 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","La extensión php curl no soporta el protocolo sftp , libcurl se debe actualizar en su sistema , de lo contrario no se subirán los archivos de exportación"
|
app/locale/es_PA/MDN_Antidot.csv
CHANGED
@@ -23,7 +23,7 @@ Term,"Palabra clave"
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
-
"Useful for support team","
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
@@ -138,4 +138,9 @@ Price,Precio
|
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
|
|
|
|
|
|
|
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
+
"Useful for support team","Útil para el equipo del soporte"
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
142 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","Clase XSLTProcessor no existe, debe instalar el extensión php xsl, de lo contrario el autocompletado no funcionará correctamente"
|
143 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","Clase ZipArchive no existe, debe instalar el extensión php postal, de lo contrario la operación postal durante la exportación puede no funcionará correctamente"
|
144 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","Clase DOMDocument no existe, debe instalar el extensión php libxml, de lo contrario la validación xsd durante la exportación no se ejecutará y autocompletar ni"
|
145 |
+
"The curl php extension is not installed, it's required to upload export files","La extensión php curl no está instalado, se requiere para subir archivos de exportación"
|
146 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","La extensión php curl no soporta el protocolo sftp , libcurl se debe actualizar en su sistema , de lo contrario no se subirán los archivos de exportación"
|
app/locale/es_PE/MDN_Antidot.csv
CHANGED
@@ -23,7 +23,7 @@ Term,"Palabra clave"
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
-
"Useful for support team","
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
@@ -138,4 +138,9 @@ Price,Precio
|
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
|
|
|
|
|
|
|
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
+
"Useful for support team","Útil para el equipo del soporte"
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
142 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","Clase XSLTProcessor no existe, debe instalar el extensión php xsl, de lo contrario el autocompletado no funcionará correctamente"
|
143 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","Clase ZipArchive no existe, debe instalar el extensión php postal, de lo contrario la operación postal durante la exportación puede no funcionará correctamente"
|
144 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","Clase DOMDocument no existe, debe instalar el extensión php libxml, de lo contrario la validación xsd durante la exportación no se ejecutará y autocompletar ni"
|
145 |
+
"The curl php extension is not installed, it's required to upload export files","La extensión php curl no está instalado, se requiere para subir archivos de exportación"
|
146 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","La extensión php curl no soporta el protocolo sftp , libcurl se debe actualizar en su sistema , de lo contrario no se subirán los archivos de exportación"
|
app/locale/es_VE/MDN_Antidot.csv
CHANGED
@@ -23,7 +23,7 @@ Term,"Palabra clave"
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
-
"Useful for support team","
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
@@ -138,4 +138,9 @@ Price,Precio
|
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
|
|
|
|
|
|
|
|
|
23 |
"AFS@Store Extension Version","Versión de la extensión AFS@Store"
|
24 |
"Communicate this version to the support team if you need help","Si es necesario, comunique esta versión al equipo del soporte"
|
25 |
"Organization name","Nombre de la organización"
|
26 |
+
"Useful for support team","Útil para el equipo del soporte"
|
27 |
E-mail,"Correo electrónico"
|
28 |
"Used to send alert when an error occured","Utilizado para enviar una alerta cuando ocurre un error"
|
29 |
"Data upload parameters","Parámetros de carga de datos"
|
138 |
"Feed ID","Flujo ID"
|
139 |
"Add a feed","Añadir flujo"
|
140 |
"Additionnal feed","flujo adicional"
|
141 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Agregar una fuente adicional para la respuesta ACP , Typicaly un hit -parade o cualquier otro alimento configurado en AFSStore Back-office."
|
142 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","Clase XSLTProcessor no existe, debe instalar el extensión php xsl, de lo contrario el autocompletado no funcionará correctamente"
|
143 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","Clase ZipArchive no existe, debe instalar el extensión php postal, de lo contrario la operación postal durante la exportación puede no funcionará correctamente"
|
144 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","Clase DOMDocument no existe, debe instalar el extensión php libxml, de lo contrario la validación xsd durante la exportación no se ejecutará y autocompletar ni"
|
145 |
+
"The curl php extension is not installed, it's required to upload export files","La extensión php curl no está instalado, se requiere para subir archivos de exportación"
|
146 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","La extensión php curl no soporta el protocolo sftp , libcurl se debe actualizar en su sistema , de lo contrario no se subirán los archivos de exportación"
|
app/locale/fr_CA/MDN_Antidot.csv
CHANGED
@@ -139,4 +139,9 @@ Price,Prix
|
|
139 |
"Feed ID","Identifiant du flux"
|
140 |
"Add a feed","Ajouter un flux"
|
141 |
"Additionnal feed","Flux additionnel"
|
142 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office","Ajoute un flux additionnel à la réponse de l'ACP, typiquement un hit-parade ou bien tout autre flux configuré dans le Back-Office AFSStore"
|
|
|
|
|
|
|
|
|
|
139 |
"Feed ID","Identifiant du flux"
|
140 |
"Add a feed","Ajouter un flux"
|
141 |
"Additionnal feed","Flux additionnel"
|
142 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Ajoute un flux additionnel à la réponse de l'ACP, typiquement un hit-parade ou bien tout autre flux configuré dans le Back-Office AFSStore."
|
143 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","La classe XSLTProcessor n'existe pas, vous devez installer le extension php xsl, sinon l'auto-complétion ne fonctionnera pas correctement"
|
144 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","La classe ZipArchive n'existe pas, vous devez installer le extension php zip, sinon l'opération de zip lors de l'export pourrait ne pas fonctionner correctement"
|
145 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","La classe DOMDocument n'existe pas, vous devez installer le extension php libxml, sinon la validation xsd lors de l'export ne fonctionnera pas et l'auto-complétion non plus"
|
146 |
+
"The curl php extension is not installed, it's required to upload export files","L'extension php curl n'est pas installée, elle est nécéssaire à l'upload des fichiers d'export"
|
147 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","L'extension php curl ne supporte pas le protocol sftp, libcurl doit être mis à jour sur le système, sinon l'upload des fichiers d'export ne se fera pas"
|
app/locale/fr_FR/MDN_Antidot.csv
CHANGED
@@ -139,4 +139,9 @@ Price,Prix
|
|
139 |
"Feed ID","Identifiant du flux"
|
140 |
"Add a feed","Ajouter un flux"
|
141 |
"Additionnal feed","Flux additionnel"
|
142 |
-
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Ajoute un flux additionnel à la réponse de l'ACP, typiquement un hit-parade ou bien tout autre flux configuré dans le Back-Office AFSStore."
|
|
|
|
|
|
|
|
|
|
139 |
"Feed ID","Identifiant du flux"
|
140 |
"Add a feed","Ajouter un flux"
|
141 |
"Additionnal feed","Flux additionnel"
|
142 |
+
"Add an additional feed to the ACP response, typicaly an hit-parade or any other feed configured in AFSStore Back-office.","Ajoute un flux additionnel à la réponse de l'ACP, typiquement un hit-parade ou bien tout autre flux configuré dans le Back-Office AFSStore."
|
143 |
+
"XSLTProcessor class doesn't exist, you must install php xsl extension, otherwise the autocomplete will not run correctly","La classe XSLTProcessor n'existe pas, vous devez installer le extension php xsl, sinon l'auto-complétion ne fonctionnera pas correctement"
|
144 |
+
"ZipArchive class doesn't exist, you must install php zip extension, otherwise the zip operation during export may not run correctly","La classe ZipArchive n'existe pas, vous devez installer le extension php zip, sinon l'opération de zip lors de l'export pourrait ne pas fonctionner correctement"
|
145 |
+
"DOMDocument class doesn't exist, you must install php libxml extension, otherwise the xsd validation during export will not run and autocomplete neither","La classe DOMDocument n'existe pas, vous devez installer le extension php libxml, sinon la validation xsd lors de l'export ne fonctionnera pas et l'auto-complétion non plus"
|
146 |
+
"The curl php extension is not installed, it's required to upload export files","L'extension php curl n'est pas installée, elle est nécéssaire à l'upload des fichiers d'export"
|
147 |
+
"The curl php extension doesn't support sftp protocol, libcurl must be upgraded on your system, otherwise the export files won't be uploaded","L'extension php curl ne supporte pas le protocol sftp, libcurl doit être mis à jour sur le système, sinon l'upload des fichiers d'export ne se fera pas"
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Antidot_Antidot</name>
|
4 |
-
<version>1.1.
|
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-06-
|
21 |
-
<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="a4ba017431be528922bbebe5b9da1542"/><file name="Result.php" hash="77394f05e3a99f820bcfcd597b856446"/></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="4f00570d46d27d1cf89785e8db42a332"/><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="1314ee9767341e6654de90c0ccfdced9"/><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="b5aa8e2cc24f1b1362749049f1cdec32"/><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="4163be5219a5ba37afad555047f921b1"/></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="6caac0bb7683b1d330049ed0d606f36f"/></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="b769f0d5c27cdad0ca3c9371977060fd"/><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="e0d2c1e72f56894b75baebcb6c4b8609"/><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="Catalogsearch"><file name="Layer.php" hash="49725570e661d72db50daab46e0e18af"/></dir><dir name="System"><dir name="Config"><dir name="Button"><file name="AfsStore.php" hash="dcbfefb440b8512b1298b624a3582076"/></dir></dir></dir></dir><dir name="Helper"><dir name="CatalogSearch"><file name="Data.php" hash="a40c1e58b5000432763aa07dd49d4b5d"/></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="testWritePricesFixedtax.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWriteProductNoVariant.yaml" hash="626a27b35977e5a52b02f85011c5e216"/><file name="testWriteProductUrl.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWriteProperties.yaml" hash="d434749b80908bbceefd5781e2d0e998"/><file name="testWriteXml.yaml" hash="790c0ecc8aaf15cc1d6b80a2328f2280"/></dir><dir name="providers"><file name="testWriteImageUrl.yaml" hash="666c33585c611bcc0b0ebe6e87dce1fc"/><file name="testWriteProductUrl.yaml" hash="18f511460efea04586fc888f5c85b3ea"/></dir></dir><file name="Product.php" hash="9dc6adb78d5d9fb1d9b43b39a9766208"/></dir><dir name="Observer"><dir name="fixtures"><file name="testGetDefaultContext.yaml" hash="5b3998808a9667ba79e8138104e24b00"/></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="Search"><dir name="Suggest"><dir name="fixtures"><file name="testSuggest.yaml" hash="e845f0311d93608e3221fb0678f429cc"/></dir></dir><file name="Suggest.php" hash="d97172c8ec094146f953a9704f8e1936"/></dir><dir name="System"><dir name="Config"><dir name="Facet"><dir name="fixtures"><file name="testToOptionArray.yaml" hash="b76143bd57f68be024a31d905da9cabe"/></dir></dir><file name="Facet.php" hash="79a25eeeccdb23589e4564cbadc734fc"/><dir name="Sort"><dir name="expectations"><file name="testToOptionArray.yaml" hash="13fc5b4c17962fb267f443d03a2219b2"/></dir><dir name="fixtures"><file name="testToOptionArray1.yaml" hash="3160d541123737644dfea5c70db35f41"/><file name="testToOptionArray2.yaml" hash="74fd97f93892920908ab7eab0124eeb6"/><file name="testToOptionArray3.yaml" hash="fe9c8a5da75f3c0d66304a39c473a3bb"/></dir></dir><file name="Sort.php" hash="3435402ae9aa30d18c8265433d643d21"/></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="d220bd4628830ea238775ed9788e0674"/></dir></dir><dir name="etc"><file name="config.xml" hash="922c99e6a2d43da46ba02853fd1e5675"/><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="e8934b63a9f0d668f07ae95287637e28"/></dir><dir name="de_CH"><file name="MDN_Antidot.csv" hash="e8934b63a9f0d668f07ae95287637e28"/></dir><dir name="de_DE"><file name="MDN_Antidot.csv" hash="e8934b63a9f0d668f07ae95287637e28"/></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="b72439562b02024e0b9629c18394985d"/><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="6dbfc8c668cd48510cc9a9243d1bf4c3"/><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_native_function_filter.php" hash="37176bdbc66cc3dca18149132921f0a5"/><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="1556ab047e1df23447586d529768befd"/><file name="clusterHelperTest.php" hash="e112e7c756f63c8e8ceb554281b418c9"/><file name="conceptHelperTest.php" hash="b44e39b62d0537bf1f7b7feb23f8111f"/><file name="facetDefaultTest.php" hash="382e4ea35e1c7173371b4a84046a38e5"/><file name="facetHelperTest.php" hash="d51a714bc116e77f5f115c26e9640f10"/><file name="facetManagerTest.php" hash="bbef8e207c387dbe6a26142fd55264d5"/><file name="facetTest.php" hash="26123aa75cb2597a3ededfa9d778095d"/><file name="facetValuesSortOrderTest.php" hash="b650080bf9b2cce2ac42a245cb84c911"/><file name="feedCoderTest.php" hash="f2b5dfdd4fa3c4e5d14c790d15235146"/><file name="filterCoderTest.php" hash="46249fa13edccf1e5d5000daf2573b77"/><file name="headerHelperTest.php" hash="8eb9450972ce082c35d7b66be7735d79"/><file name="helperConfigurationTest.php" hash="be3f74e53e27744e8214f3c341172796"/><file name="intervalTest.php" hash="912389dad049853f6bf0b4eab2af5034"/><file name="metaHelperTest.php" hash="080f160b54636c4eee743544a6a12bee"/><file name="pagerHelperTest.php" hash="d96a9891523e453647493f3219e86357"/><file name="promoteBannerReplyHelper.php" hash="94c3c14517536437e9800eaa706fbe29"/><file name="promoteRedirectReplyHelper.php" hash="ed00c66be5127d8b374f6416abf328ef"/><file name="promoteReplyHelperTest.php" hash="7cbb68a7f50c2bd2ef11a085ac94deb2"/><file name="promoteReplysetHelperTest.php" hash="ac2f1e3073015143dc7b2b705711c845"/><file name="queryCoderTest.php" hash="03983a114c6697464f8bf016822ff4a3"/><file name="queryTest.php" hash="338264d8e6dbbc09e88bd9a8179e8be4"/><file name="replyHelperTest.php" hash="4d86f19ea7de2aece5d7fd9c143c3dbc"/><file name="replysetHelperTest.php" hash="897f074b8382c6853f51b06a5ee50b0a"/><file name="responseHelperTest.php" hash="ebb167e1c330af6aa0e6a2b917431040"/><file name="searchConnectorTest.php" hash="9201de573884b643041b6c32bc535e7e"/><file name="searchQueryManagerTest.php" hash="2188b262a1c11422bcc8133f68fa6dd9"/><file name="searchTest.php" hash="fa47a7819b5c7c71172d6b1f1e7a02f7"/><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="57abe4828b7ed7126db963764faa718a"/><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="4700218e2400350014fde428bc86806b"/><file name="afs_cluster_exception.php" hash="86d97623db7aebaa28a20857ce2cf17f"/><file name="afs_cluster_helper.php" hash="60b7fbcc869a672929ef9fc6d840d2b2"/><file name="afs_cluster_parameter.php" hash="20ed527d3ed1a6cf2bc80e032ecd2c7e"/><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="1b4d7d35ebe8ed4894fda4881d0b168f"/><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="fe1ca1e7242c319bac96488b1f5e2063"/><file name="afs_facet_helper_retriever.php" hash="5628cc41c50ab25fd3336df302d903f4"/><file name="afs_facet_layout.php" hash="c83f6fef1c13ba3cda667c611841ff87"/><file name="afs_facet_manager.php" hash="a3fabb34d56a9614d4a0a2917f6fea0c"/><file name="afs_facet_mode.php" hash="8dcac389a37f8267a367400377631dba"/><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="ed7b40e872a7ed5aa30adbcffc05de56"/><file name="afs_filter_coder.php" hash="4edbdcf6760d80465e5d2533014ba307"/><file name="afs_filter_parameter.php" hash="2b03c2c83ffe2e2968aaf50ad4903921"/><file name="afs_fts_mode.php" hash="edbd9342cd9625183e1e01ed81b79fc3"/><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="077052931e0cffb1e589c21b57156b38"/><file name="afs_producer.php" hash="7c8c515ccb8126523fa0d09a7f759dd5"/><file name="afs_promote_banner_reply_helper.php" hash="418702b3c053029b3aa8fcb2775c65bd"/><file name="afs_promote_redirect_reply_helper.php" hash="be17eda6f8b4552b9ec21183362171a2"/><file name="afs_promote_reply_helper.php" hash="0e2a4f67cd307f74e8b64cd3b158235c"/><file name="afs_promote_replyset_helper.php" hash="fdefc6f8a686addb31ea9b6c0a3fa5ad"/><file name="afs_query.php" hash="bd969a62cd4bbbcb5b9996eaa19353f7"/><file name="afs_query_coder.php" hash="ca0bfad66b8d8549ab3f33380d716732"/><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="3919f9e83cba62be9bc67117b1087b03"/><file name="afs_reply_helper_factory.php" hash="f159f7d0ef7e5a209fb872a970d0d582"/><file name="afs_replyset_helper.php" hash="cb8f81391d9a59904dcb0c3d6ae31999"/><file name="afs_response_exception.php" hash="0a865bb92fb700ae555dcb5ae675f644"/><file name="afs_response_helper.php" hash="2fec8d101712087660dc6aba5119e3c2"/><file name="afs_search.php" hash="3f2e3ef447515a2fa05b270654ef2969"/><file name="afs_search_connector.php" hash="17242fb6536f4596b2c0198a16986310"/><file name="afs_search_query_manager.php" hash="77e30683ee4ba9e004e9c7c12d9c811d"/><file name="afs_sort_builtins.php" hash="0cc1617a62f1a834a28d7d2ac249b081"/><file name="afs_sort_coder.php" hash="1dfe2d32278383d8465df67535cb91dd"/><file name="afs_sort_order.php" hash="7755deb99386650c9974871474168cda"/><file name="afs_sort_parameter.php" hash="bfb8c59c1560ec8a3b597dc45aa8ecd5"/><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="aa04a21163b57ef338bf96bd55e95882"/><file name="afs_exception.php" hash="c1840fe279f9cb313cec151012ed4513"/><file name="afs_feed.php" hash="005305cace79a3aa7719a3c942df9da7"/><file name="afs_multiple_values_parameter.php" hash="96dc30f1fbf137cbfd73c2b195d9f9ef"/><file name="afs_origin.php" hash="a6b7e39a687210572c116afcbea0e7cb"/><file name="afs_query_base.php" hash="7209115a714d9b7de209a0af691c1d22"/><file name="afs_query_parameter.php" hash="6552428d955d0a48c015e1f98ba62815"/><file name="afs_response_helper_base.php" hash="b087f7bdad35ed0526566042ef9afc8c"/><file name="afs_single_value_parameter.php" hash="65d002d7ac6b6e8dd6170309b4c84649"/></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="c0003ec962a79b9d3f642b17bade0fff"/><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="b8eed4376088ae3003d0b77cc523e732"/><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="556c912ff7f19f5083c4fb44d4d40ac6"/><dir name="lib"><dir name="JsonPath"><file name="JsonPath.php" hash="baa12e1baa9f8a20a095463042e96ad3"/><file name="JsonStore.php" hash="a9632aeb2126e98db9a49403a8f2ff77"/></dir></dir><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="09e625dea07b4d4098b19ec998d266f9"/></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="7ecfd33825a0e6bc50cca099c1c0e50e"/><file name="afs_lib.doxygen" hash="8128d53d894cc57e08142377d13c72f4"/><file name="afs_lib.php" hash="946834742cd313e818f79bb96b6dfb52"/><file name="afs_version.php" hash="d2d295f9758c29cb26173f9095ff1400"/><file name="composer.json" hash="39190df70fafa99d7eb5ab566e8edf3f"/><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="703356b9284e7fe904cf1334abbe08c9"/><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="ff48aa6a5c40e31b3f38aba1267e9a71"/><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="0292f51c0906b2092255872c69603f29"/><file name=".travis.yml" hash="4330b9c449e9cd0e97829f679c2a2786"/></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.3</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-06-16</date>
|
21 |
+
<time>07:30:10</time>
|
22 |
+
<contents><target name="mage"><dir name="shell"><file name="antidotExport.php" hash="a4e184cdf1add5d42484e6997ea6f59c"/><file name="antidotExportCategory.php" hash="10de34988223fc8ca26e6f30c4070733"/><file name="antidotExportInc.php" hash="18f1b60b93245e2daf423c614dcd7efa"/><file name="antidotExportProduct.php" hash="9ddd7f0ba8e54b24665a32d26e5231b4"/></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="a4ba017431be528922bbebe5b9da1542"/><file name="Result.php" hash="82e928664d7f1e0688f377cfbb5700bb"/></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="4f00570d46d27d1cf89785e8db42a332"/><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="Fieldset"><file name="Notice.php" hash="c9bc2155889cd1cfa573f625a8baf59b"/></dir><dir name="Form"><dir name="Field"><dir name="Array"><file name="Additional.php" hash="d62316e3631c1c2b6a0119134c8002a8"/><file name="AdditionalFeed.php" hash="dcfb6d37d765a10e4a07465e70133dda"/><file name="ArticleAdditional.php" hash="38c62d610f585c460151841f7350348b"/><file name="ArticleIdentifier.php" hash="ec9479fd1ca087a1fe924795cc9ff5f6"/><file name="DefaultSort.php" hash="4989d99a73f57bed1fb994060cc38a72"/><file name="Facet.php" hash="7217f2296afaf11f514e4212a7a82cb9"/><file name="Identifier.php" hash="a9fa99227182bd72e59c9a315d580247"/><file name="ProductAdditionalFacet.php" hash="8d46e427d9efbac7e6ba04fdc88d4728"/><file name="ProductAdditionalField.php" hash="9c9f9c9c1c940963e1a24c039a392cc4"/><file name="ProductIdentifier.php" hash="d30809119cb35018697533075f7ee485"/><file name="Sort.php" hash="f986fbb048bf3f6aec813cdc1c70ec15"/></dir><file name="CategoryAttribute.php" hash="c119ca65f23950e7abb1f0d60e8b4755"/><file name="ProductAttribute.php" hash="6a61b98a9f6ac883a5e162e3edab300d"/></dir></dir><dir name="Html"><file name="Export.php" hash="f36beeca11c51e1a2e9678955d8cf1b8"/><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="5dc3c4024386a5ec288cd598efe8853b"/><file name="Data.php" hash="ef571e1089eb0166ba463e2a564636c7"/><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="66cf65d950caddf895c823c5575a1912"/></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="4dea470cb36708e0ae4b95bd0a24a85f"/><file name="Decimal.php" hash="b9b1e2cff1d0332fab77d101dca4c3d2"/><file name="Item.php" hash="c89bbca267af18a0447e0daf3e7cc8eb"/><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="b5aa8e2cc24f1b1362749049f1cdec32"/><dir name="Resource"><file name="Attribute.php" hash="80d2a34d746f307109b6bf910b0f2958"/></dir></dir><dir name="Export"><file name="Abstract.php" hash="8c180f1d84dc88771885115348cc5dde"/><file name="Article.php" hash="b723ff65293cd517d247757ad43040d8"/><file name="Category.php" hash="a326b576f9a5f0f90cb5f57f3f155b26"/><file name="Product.php" hash="7171a405d23f2b8ee401ec5d7465f451"/></dir><file name="Observer.php" hash="e03106bc6632ca063ccbb60e55cd2d66"/><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="3af987c91cd85c2e5d93e009187963d7"/><file name="Antidot.php" hash="8f152b420a4a14a6a3944348cf36bbe1"/></dir></dir><dir name="Search"><file name="Abstract.php" hash="fd71154b987b16f8d13bc3e10a3faeac"/><file name="Search.php" hash="aed2de6c2d73b4a7336f689287f0659a"/><file name="Suggest.php" hash="6caac0bb7683b1d330049ed0d606f36f"/></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="8b771072a32f32e81a087581ace7fd72"/><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="e0d2c1e72f56894b75baebcb6c4b8609"/><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="96c10d2ff359849de991d8a045cc9353"/></dir><dir name="Test"><dir name="Block"><dir name="Catalogsearch"><file name="Layer.php" hash="49725570e661d72db50daab46e0e18af"/></dir><dir name="System"><dir name="Config"><dir name="Button"><file name="AfsStore.php" hash="dcbfefb440b8512b1298b624a3582076"/></dir></dir></dir></dir><dir name="Helper"><dir name="CatalogSearch"><file name="Data.php" hash="a40c1e58b5000432763aa07dd49d4b5d"/></dir><file name="Data.php" hash="9c21bd8bfa43dab48d95a886812587e6"/></dir><dir name="Model"><dir name="Export"><dir name="Abstract"><dir name="fixtures"><file name="testGarbageCollection.yaml" hash="de6c8672be0c24a102ebfed004f2361b"/></dir></dir><file name="Abstract.php" hash="f9ed7f39ba478e9e8e81b93684a8ffbe"/><file name="Article.php" hash="c2d43ccf7c9b6648b633d122c657f27d"/><dir name="Category"><dir name="fixtures"><file name="testEmptyFile.yaml" hash="9573e620466cfe8260f8a87e274c8261"/></dir></dir><file name="Category.php" hash="4f3e57931e5cffca23648acab82cf08e"/><dir name="Product"><dir name="fixtures"><file name="testGetProductCategories.yaml" hash="4c9aa76866c740bcd44bdbbdf98ac2f5"/><file name="testWriteImageUrl.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWritePricesFixedtax.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWriteProductNoVariant.yaml" hash="626a27b35977e5a52b02f85011c5e216"/><file name="testWriteProductUrl.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWriteProperties.yaml" hash="d434749b80908bbceefd5781e2d0e998"/><file name="testWriteXml.yaml" hash="790c0ecc8aaf15cc1d6b80a2328f2280"/></dir><dir name="providers"><file name="testWriteImageUrl.yaml" hash="666c33585c611bcc0b0ebe6e87dce1fc"/><file name="testWriteProductUrl.yaml" hash="18f511460efea04586fc888f5c85b3ea"/></dir></dir><file name="Product.php" hash="d9a3d373a8d87303af091bcd00dc74c9"/></dir><dir name="Observer"><dir name="fixtures"><file name="testGetDefaultContext.yaml" hash="5b3998808a9667ba79e8138104e24b00"/></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="Search"><dir name="Suggest"><dir name="fixtures"><file name="testSuggest.yaml" hash="e845f0311d93608e3221fb0678f429cc"/></dir></dir><file name="Suggest.php" hash="d97172c8ec094146f953a9704f8e1936"/></dir><dir name="System"><dir name="Config"><dir name="Facet"><dir name="fixtures"><file name="testToOptionArray.yaml" hash="b76143bd57f68be024a31d905da9cabe"/></dir></dir><file name="Facet.php" hash="3e3ef7aa45b4226df9eaf177ed69326f"/><dir name="Sort"><dir name="expectations"><file name="testToOptionArray.yaml" hash="13fc5b4c17962fb267f443d03a2219b2"/></dir><dir name="fixtures"><file name="testToOptionArray1.yaml" hash="3160d541123737644dfea5c70db35f41"/><file name="testToOptionArray2.yaml" hash="74fd97f93892920908ab7eab0124eeb6"/><file name="testToOptionArray3.yaml" hash="fe9c8a5da75f3c0d66304a39c473a3bb"/></dir></dir><file name="Sort.php" hash="3435402ae9aa30d18c8265433d643d21"/></dir></dir></dir><file name="PHPUnitUtil.php" hash="2a128a7c19f4c37cb9dd7fc60e679693"/></dir><dir name="controllers"><dir name="Admin"><file name="PushController.php" hash="3f7be8a53c7a01cfd11aa5a8a8fcfac6"/></dir><dir name="Front"><file name="SearchController.php" hash="d220bd4628830ea238775ed9788e0674"/></dir></dir><dir name="etc"><file name="config.xml" hash="bae082d060f4c5a6e6fa3c7fa464dcc6"/><file name="system.xml" hash="a636f06591b6c01e1e5375aa46a644fb"/></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="layout"><file name="antidot.xml" hash="c79056de55d92a84cd087444f7a9d6c9"/></dir><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"><dir name="result"><file name="category.phtml" hash="7413580b825508f2cfc08566d62369ae"/></dir><file name="result.phtml" hash="12c082ddff0e6c4fef74630b8253face"/></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="6d55b32bb063457c70296109170f944c"/></dir><dir name="de_CH"><file name="MDN_Antidot.csv" hash="6d55b32bb063457c70296109170f944c"/></dir><dir name="de_DE"><file name="MDN_Antidot.csv" hash="6d55b32bb063457c70296109170f944c"/></dir><dir name="es_AR"><file name="MDN_Antidot.csv" hash="b7f7906a0af8c8a524033fe6565b8da1"/></dir><dir name="es_CL"><file name="MDN_Antidot.csv" hash="b7f7906a0af8c8a524033fe6565b8da1"/></dir><dir name="es_CO"><file name="MDN_Antidot.csv" hash="b7f7906a0af8c8a524033fe6565b8da1"/></dir><dir name="es_CR"><file name="MDN_Antidot.csv" hash="b7f7906a0af8c8a524033fe6565b8da1"/></dir><dir name="es_ES"><file name="MDN_Antidot.csv" hash="b7f7906a0af8c8a524033fe6565b8da1"/></dir><dir name="es_MX"><file name="MDN_Antidot.csv" hash="b7f7906a0af8c8a524033fe6565b8da1"/></dir><dir name="es_PA"><file name="MDN_Antidot.csv" hash="b7f7906a0af8c8a524033fe6565b8da1"/></dir><dir name="es_PE"><file name="MDN_Antidot.csv" hash="b7f7906a0af8c8a524033fe6565b8da1"/></dir><dir name="es_VE"><file name="MDN_Antidot.csv" hash="b7f7906a0af8c8a524033fe6565b8da1"/></dir><dir name="fr_CA"><file name="MDN_Antidot.csv" hash="cb32f785ce819fe925347b7863d8de36"/></dir><dir name="fr_FR"><file name="MDN_Antidot.csv" hash="cb32f785ce819fe925347b7863d8de36"/></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="b72439562b02024e0b9629c18394985d"/><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="6dbfc8c668cd48510cc9a9243d1bf4c3"/><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_native_function_filter.php" hash="37176bdbc66cc3dca18149132921f0a5"/><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="1556ab047e1df23447586d529768befd"/><file name="clusterHelperTest.php" hash="e112e7c756f63c8e8ceb554281b418c9"/><file name="conceptHelperTest.php" hash="b44e39b62d0537bf1f7b7feb23f8111f"/><file name="facetDefaultTest.php" hash="382e4ea35e1c7173371b4a84046a38e5"/><file name="facetHelperTest.php" hash="d51a714bc116e77f5f115c26e9640f10"/><file name="facetManagerTest.php" hash="bbef8e207c387dbe6a26142fd55264d5"/><file name="facetTest.php" hash="26123aa75cb2597a3ededfa9d778095d"/><file name="facetValuesSortOrderTest.php" hash="b650080bf9b2cce2ac42a245cb84c911"/><file name="feedCoderTest.php" hash="f2b5dfdd4fa3c4e5d14c790d15235146"/><file name="filterCoderTest.php" hash="46249fa13edccf1e5d5000daf2573b77"/><file name="headerHelperTest.php" hash="8eb9450972ce082c35d7b66be7735d79"/><file name="helperConfigurationTest.php" hash="be3f74e53e27744e8214f3c341172796"/><file name="intervalTest.php" hash="912389dad049853f6bf0b4eab2af5034"/><file name="metaHelperTest.php" hash="080f160b54636c4eee743544a6a12bee"/><file name="pagerHelperTest.php" hash="d96a9891523e453647493f3219e86357"/><file name="promoteBannerReplyHelper.php" hash="94c3c14517536437e9800eaa706fbe29"/><file name="promoteRedirectReplyHelper.php" hash="ed00c66be5127d8b374f6416abf328ef"/><file name="promoteReplyHelperTest.php" hash="7cbb68a7f50c2bd2ef11a085ac94deb2"/><file name="promoteReplysetHelperTest.php" hash="ac2f1e3073015143dc7b2b705711c845"/><file name="queryCoderTest.php" hash="03983a114c6697464f8bf016822ff4a3"/><file name="queryTest.php" hash="338264d8e6dbbc09e88bd9a8179e8be4"/><file name="replyHelperTest.php" hash="4d86f19ea7de2aece5d7fd9c143c3dbc"/><file name="replysetHelperTest.php" hash="897f074b8382c6853f51b06a5ee50b0a"/><file name="responseHelperTest.php" hash="ebb167e1c330af6aa0e6a2b917431040"/><file name="searchConnectorTest.php" hash="9201de573884b643041b6c32bc535e7e"/><file name="searchQueryManagerTest.php" hash="2188b262a1c11422bcc8133f68fa6dd9"/><file name="searchTest.php" hash="fa47a7819b5c7c71172d6b1f1e7a02f7"/><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="57abe4828b7ed7126db963764faa718a"/><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="4700218e2400350014fde428bc86806b"/><file name="afs_cluster_exception.php" hash="86d97623db7aebaa28a20857ce2cf17f"/><file name="afs_cluster_helper.php" hash="60b7fbcc869a672929ef9fc6d840d2b2"/><file name="afs_cluster_parameter.php" hash="20ed527d3ed1a6cf2bc80e032ecd2c7e"/><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="1b4d7d35ebe8ed4894fda4881d0b168f"/><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="fe1ca1e7242c319bac96488b1f5e2063"/><file name="afs_facet_helper_retriever.php" hash="5628cc41c50ab25fd3336df302d903f4"/><file name="afs_facet_layout.php" hash="c83f6fef1c13ba3cda667c611841ff87"/><file name="afs_facet_manager.php" hash="a3fabb34d56a9614d4a0a2917f6fea0c"/><file name="afs_facet_mode.php" hash="8dcac389a37f8267a367400377631dba"/><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="ed7b40e872a7ed5aa30adbcffc05de56"/><file name="afs_filter_coder.php" hash="4edbdcf6760d80465e5d2533014ba307"/><file name="afs_filter_parameter.php" hash="2b03c2c83ffe2e2968aaf50ad4903921"/><file name="afs_fts_mode.php" hash="edbd9342cd9625183e1e01ed81b79fc3"/><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="077052931e0cffb1e589c21b57156b38"/><file name="afs_producer.php" hash="7c8c515ccb8126523fa0d09a7f759dd5"/><file name="afs_promote_banner_reply_helper.php" hash="418702b3c053029b3aa8fcb2775c65bd"/><file name="afs_promote_redirect_reply_helper.php" hash="be17eda6f8b4552b9ec21183362171a2"/><file name="afs_promote_reply_helper.php" hash="0e2a4f67cd307f74e8b64cd3b158235c"/><file name="afs_promote_replyset_helper.php" hash="fdefc6f8a686addb31ea9b6c0a3fa5ad"/><file name="afs_query.php" hash="bd969a62cd4bbbcb5b9996eaa19353f7"/><file name="afs_query_coder.php" hash="ca0bfad66b8d8549ab3f33380d716732"/><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="3919f9e83cba62be9bc67117b1087b03"/><file name="afs_reply_helper_factory.php" hash="f159f7d0ef7e5a209fb872a970d0d582"/><file name="afs_replyset_helper.php" hash="cb8f81391d9a59904dcb0c3d6ae31999"/><file name="afs_response_exception.php" hash="0a865bb92fb700ae555dcb5ae675f644"/><file name="afs_response_helper.php" hash="2fec8d101712087660dc6aba5119e3c2"/><file name="afs_search.php" hash="3f2e3ef447515a2fa05b270654ef2969"/><file name="afs_search_connector.php" hash="17242fb6536f4596b2c0198a16986310"/><file name="afs_search_query_manager.php" hash="77e30683ee4ba9e004e9c7c12d9c811d"/><file name="afs_sort_builtins.php" hash="0cc1617a62f1a834a28d7d2ac249b081"/><file name="afs_sort_coder.php" hash="1dfe2d32278383d8465df67535cb91dd"/><file name="afs_sort_order.php" hash="7755deb99386650c9974871474168cda"/><file name="afs_sort_parameter.php" hash="bfb8c59c1560ec8a3b597dc45aa8ecd5"/><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="aa04a21163b57ef338bf96bd55e95882"/><file name="afs_exception.php" hash="c1840fe279f9cb313cec151012ed4513"/><file name="afs_feed.php" hash="005305cace79a3aa7719a3c942df9da7"/><file name="afs_multiple_values_parameter.php" hash="96dc30f1fbf137cbfd73c2b195d9f9ef"/><file name="afs_origin.php" hash="a6b7e39a687210572c116afcbea0e7cb"/><file name="afs_query_base.php" hash="7209115a714d9b7de209a0af691c1d22"/><file name="afs_query_parameter.php" hash="6552428d955d0a48c015e1f98ba62815"/><file name="afs_response_helper_base.php" hash="b087f7bdad35ed0526566042ef9afc8c"/><file name="afs_single_value_parameter.php" hash="65d002d7ac6b6e8dd6170309b4c84649"/></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="c0003ec962a79b9d3f642b17bade0fff"/><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="b8eed4376088ae3003d0b77cc523e732"/><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="556c912ff7f19f5083c4fb44d4d40ac6"/><dir name="lib"><dir name="JsonPath"><file name="JsonPath.php" hash="baa12e1baa9f8a20a095463042e96ad3"/><file name="JsonStore.php" hash="a9632aeb2126e98db9a49403a8f2ff77"/></dir></dir><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="09e625dea07b4d4098b19ec998d266f9"/></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="7ecfd33825a0e6bc50cca099c1c0e50e"/><file name="afs_lib.doxygen" hash="8128d53d894cc57e08142377d13c72f4"/><file name="afs_lib.php" hash="946834742cd313e818f79bb96b6dfb52"/><file name="afs_version.php" hash="d2d295f9758c29cb26173f9095ff1400"/><file name="composer.json" hash="39190df70fafa99d7eb5ab566e8edf3f"/><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="703356b9284e7fe904cf1334abbe08c9"/><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="ff48aa6a5c40e31b3f38aba1267e9a71"/><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="0292f51c0906b2092255872c69603f29"/><file name=".travis.yml" hash="4330b9c449e9cd0e97829f679c2a2786"/></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
@@ -13,7 +13,9 @@
|
|
13 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
*/
|
15 |
|
16 |
-
|
|
|
|
|
17 |
|
18 |
class MDN_Shell_AntidotExport extends Mage_Shell_Abstract
|
19 |
{
|
13 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
*/
|
15 |
|
16 |
+
//with modman we use symlinks and we need realpath
|
17 |
+
$basepath = dirname($_SERVER['SCRIPT_FILENAME']).DIRECTORY_SEPARATOR;
|
18 |
+
require_once $basepath.'abstract.php';
|
19 |
|
20 |
class MDN_Shell_AntidotExport extends Mage_Shell_Abstract
|
21 |
{
|
shell/antidotExportCategory.php
CHANGED
@@ -13,7 +13,9 @@
|
|
13 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
*/
|
15 |
|
16 |
-
|
|
|
|
|
17 |
|
18 |
class MDN_Shell_AntidotExportCategory extends Mage_Shell_Abstract
|
19 |
{
|
13 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
*/
|
15 |
|
16 |
+
//with modman we use symlinks and we need realpath
|
17 |
+
$basepath = dirname($_SERVER['SCRIPT_FILENAME']).DIRECTORY_SEPARATOR;
|
18 |
+
require_once $basepath.'abstract.php';
|
19 |
|
20 |
class MDN_Shell_AntidotExportCategory extends Mage_Shell_Abstract
|
21 |
{
|
shell/antidotExportInc.php
CHANGED
@@ -13,7 +13,9 @@
|
|
13 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
*/
|
15 |
|
16 |
-
|
|
|
|
|
17 |
|
18 |
class MDN_Shell_AntidotExportInc extends Mage_Shell_Abstract
|
19 |
{
|
13 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
*/
|
15 |
|
16 |
+
//with modman we use symlinks and we need realpath
|
17 |
+
$basepath = dirname($_SERVER['SCRIPT_FILENAME']).DIRECTORY_SEPARATOR;
|
18 |
+
require_once $basepath.'abstract.php';
|
19 |
|
20 |
class MDN_Shell_AntidotExportInc extends Mage_Shell_Abstract
|
21 |
{
|
shell/antidotExportProduct.php
CHANGED
@@ -13,9 +13,11 @@
|
|
13 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
*/
|
15 |
|
16 |
-
|
|
|
|
|
17 |
|
18 |
-
class
|
19 |
{
|
20 |
|
21 |
/**
|
@@ -34,5 +36,5 @@ class MDN_Shell_AntidotExport extends Mage_Shell_Abstract
|
|
34 |
}
|
35 |
}
|
36 |
|
37 |
-
$shell = new
|
38 |
$shell->run();
|
13 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
14 |
*/
|
15 |
|
16 |
+
//with modman we use symlinks and we need realpath
|
17 |
+
$basepath = dirname($_SERVER['SCRIPT_FILENAME']).DIRECTORY_SEPARATOR;
|
18 |
+
require_once $basepath.'abstract.php';
|
19 |
|
20 |
+
class MDN_Shell_AntidotExportProduct extends Mage_Shell_Abstract
|
21 |
{
|
22 |
|
23 |
/**
|
36 |
}
|
37 |
}
|
38 |
|
39 |
+
$shell = new MDN_Shell_AntidotExportProduct();
|
40 |
$shell->run();
|