Antidot_Antidot - Version 1.0.17

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.0.17
Comparing to
See all releases


Code changes from version 1.0.16 to 1.0.17

app/code/community/MDN/Antidot/Block/Catalogsearch/Layer.php CHANGED
@@ -81,7 +81,11 @@ class MDN_Antidot_Block_Catalogsearch_Layer extends Mage_CatalogSearch_Block_Lay
81
  */
82
  public function canShowBlock()
83
  {
84
- return ($this->canShowOptions() || count($this->getLayer()->getState()->getFilters()));
 
 
 
 
85
  }
86
 
87
  /**
81
  */
82
  public function canShowBlock()
83
  {
84
+ $helper = Mage::helper('Antidot');
85
+ if ($helper->isActiveEngine()) {
86
+ return ($this->canShowOptions() || count($this->getLayer()->getState()->getFilters()));
87
+ }
88
+ return parent::canShowBlock();
89
  }
90
 
91
  /**
app/code/community/MDN/Antidot/Block/System/Config/Button/PushArticles.php CHANGED
@@ -22,7 +22,7 @@ class MDN_Antidot_Block_System_Config_Button_PushArticles extends Mage_Adminhtml
22
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
23
  {
24
  $this->setElement($element);
25
- $url = $this->getUrl('Antidot/Admin_Push/Article');
26
 
27
  $html = $this->getLayout()->createBlock('adminhtml/widget_button')
28
  ->setType('button')
22
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
23
  {
24
  $this->setElement($element);
25
+ $url = $this->getUrl('Antidotadmin/Admin_Push/Article');
26
 
27
  $html = $this->getLayout()->createBlock('adminhtml/widget_button')
28
  ->setType('button')
app/code/community/MDN/Antidot/Block/System/Config/Button/PushBrands.php CHANGED
@@ -22,7 +22,7 @@ class MDN_Antidot_Block_System_Config_Button_PushBrands extends Mage_Adminhtml_B
22
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
23
  {
24
  $this->setElement($element);
25
- $url = $this->getUrl('Antidot/Admin_Push/Brand');
26
 
27
  $html = $this->getLayout()->createBlock('adminhtml/widget_button')
28
  ->setType('button')
22
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
23
  {
24
  $this->setElement($element);
25
+ $url = $this->getUrl('Antidotadmin/Admin_Push/Brand');
26
 
27
  $html = $this->getLayout()->createBlock('adminhtml/widget_button')
28
  ->setType('button')
app/code/community/MDN/Antidot/Block/System/Config/Button/PushCategories.php CHANGED
@@ -22,7 +22,7 @@ class MDN_Antidot_Block_System_Config_Button_PushCategories extends Mage_Adminht
22
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
23
  {
24
  $this->setElement($element);
25
- $url = $this->getUrl('Antidot/Admin_Push/Category');
26
 
27
  $html = $this->getLayout()->createBlock('adminhtml/widget_button')
28
  ->setType('button')
22
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
23
  {
24
  $this->setElement($element);
25
+ $url = $this->getUrl('Antidotadmin/Admin_Push/Category');
26
 
27
  $html = $this->getLayout()->createBlock('adminhtml/widget_button')
28
  ->setType('button')
app/code/community/MDN/Antidot/Block/System/Config/Button/PushProducts.php CHANGED
@@ -22,7 +22,7 @@ class MDN_Antidot_Block_System_Config_Button_PushProducts extends Mage_Adminhtml
22
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
23
  {
24
  $this->setElement($element);
25
- $url = $this->getUrl('Antidot/Admin_Push/Product');
26
 
27
  $html = $this->getLayout()->createBlock('adminhtml/widget_button')
28
  ->setType('button')
22
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
23
  {
24
  $this->setElement($element);
25
+ $url = $this->getUrl('Antidotadmin/Admin_Push/Product');
26
 
27
  $html = $this->getLayout()->createBlock('adminhtml/widget_button')
28
  ->setType('button')
app/code/community/MDN/Antidot/Helper/XmlWriter.php CHANGED
@@ -17,7 +17,8 @@ class MDN_Antidot_Helper_XmlWriter extends Mage_Core_Helper_Abstract
17
  {
18
 
19
  protected $xml;
20
- protected $indent;
 
21
  protected $stack = array();
22
 
23
  /**
@@ -25,10 +26,14 @@ class MDN_Antidot_Helper_XmlWriter extends Mage_Core_Helper_Abstract
25
  *
26
  * @param string $indent
27
  */
28
- public function init($indent = ' ')
29
  {
30
- $this->indent = $indent;
31
- $this->xml = '<?xml version="1.0" encoding="utf-8"?>' . "\n";
 
 
 
 
32
  }
33
 
34
  /**
@@ -56,7 +61,7 @@ class MDN_Antidot_Helper_XmlWriter extends Mage_Core_Helper_Abstract
56
  $this->xml.= ' ' . $key . '="' . $value . '"';
57
  }
58
  }
59
- $this->xml.= ">\n";
60
  $this->stack[] = $element;
61
  }
62
 
@@ -78,7 +83,7 @@ class MDN_Antidot_Helper_XmlWriter extends Mage_Core_Helper_Abstract
78
  }
79
 
80
  $content = Mage::helper('Antidot/Url')->isUtf8($content) === false ? mb_convert_encoding($content, "UTF-8") : $content;
81
- $this->xml.= '>' . ($content) . '</' . $element . '>' . "\n";
82
  }
83
 
84
  /**
@@ -96,7 +101,7 @@ class MDN_Antidot_Helper_XmlWriter extends Mage_Core_Helper_Abstract
96
  $this->xml.= ' ' . $key . '="' . $value . '"';
97
  }
98
  }
99
- $this->xml.= " />\n";
100
  }
101
 
102
  /**
@@ -121,7 +126,7 @@ class MDN_Antidot_Helper_XmlWriter extends Mage_Core_Helper_Abstract
121
  {
122
  $element = array_pop($this->stack);
123
  $this->indent();
124
- $this->xml.= "</$element>\n";
125
  }
126
 
127
  /**
17
  {
18
 
19
  protected $xml;
20
+ protected $indent = "";
21
+ protected $cr = "";
22
  protected $stack = array();
23
 
24
  /**
26
  *
27
  * @param string $indent
28
  */
29
+ public function init($debug = false)
30
  {
31
+ if ($debug) {
32
+ $this->indent= " ";
33
+ $this->cr= "\n";
34
+ }
35
+
36
+ $this->xml = '<?xml version="1.0" encoding="utf-8"?>' . $this->cr;
37
  }
38
 
39
  /**
61
  $this->xml.= ' ' . $key . '="' . $value . '"';
62
  }
63
  }
64
+ $this->xml.= ">".$this->cr;
65
  $this->stack[] = $element;
66
  }
67
 
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
 
89
  /**
101
  $this->xml.= ' ' . $key . '="' . $value . '"';
102
  }
103
  }
104
+ $this->xml.= " />".$this->cr;
105
  }
106
 
107
  /**
126
  {
127
  $element = array_pop($this->stack);
128
  $this->indent();
129
+ $this->xml.= "</$element>".$this->cr;
130
  }
131
 
132
  /**
app/code/community/MDN/Antidot/Model/Export/Product.php CHANGED
@@ -69,59 +69,62 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
69
  $this->onlyProductsWithStock = !(boolean)Mage::getStoreConfig('antidot/fields_product/in_stock_only');
70
  $this->autoCompleteProducts = Mage::getStoreConfig('antidot/suggest/enable') === 'Antidot/engine_antidot' ? 'on' : 'off';
71
 
72
- $this->initXml();
73
- $this->initPropertyLabel();
74
- $this->initProductsWithOperations();
75
- $this->initFields('product');
76
- $this->initEnabledStores();
77
- $this->setFilename($filename);
78
 
79
- $this->xml->push('catalog', array('xmlns' => "http://ref.antidot.net/store/afs#"));
80
- $this->writeHeader($context);
81
- $this->writePart($this->xml->flush());
82
-
83
- $this->lang = $context['lang'];
84
- $productIds = $this->getProductIds($context['store_id'], $type);
85
-
86
  Mage::log('Products to export : '.count($productIds), null, 'antidot.log');
87
-
88
- $chunkId = 1;
89
- $chunkCount = (int)(count($productIds) / 500);
90
- $lastExecutionTime = time();
91
- foreach(array_chunk($productIds, 500) as $productId) {
92
-
93
- Mage::log('Process chunk # '.$chunkId .' / '.$chunkCount. ' - memory usage = '.memory_get_usage().' - last took '.(time() - $lastExecutionTime).' sec', null, 'antidot.log');
94
- $lastExecutionTime = time();
95
- //force current store to admin to prevent the use of the flat catalog
96
- Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
97
-
98
- $collection = Mage::getModel('catalog/product')
99
- ->getCollection()
100
- ->addAttributeToSelect('*')
101
- ->addAttributeToFilter('entity_id', array('in', $productId))
102
- ->joinField('qty',
103
- 'cataloginventory/stock_item',
104
- 'qty',
105
- 'product_id = entity_id',
106
- '{{table}}.stock_id = 1')
107
- ;
108
-
109
- foreach($collection as $product) {
110
- //if($context['langs'] > 1) {
111
- $store = current($this->getProductStores($product, $context)); //we take the "first" store of the current lang
112
- if ($store)
113
- $product = Mage::getModel('catalog/product')->setStoreId($store->getId())->load($product->getId());
114
- //}
115
- $this->writeProduct($product, $context);
116
-
117
- $product->clearInstance(); //memory flush
118
- }
119
- $this->writePart($this->xml->flush());
120
-
121
- $chunkId++;
122
- }
123
- $this->xml->pop();
124
- $this->writePart($this->xml->flush(), true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
 
126
  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
127
  Mage::log('Products parsing complete', null, 'antidot.log');
@@ -206,7 +209,9 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
206
 
207
  $this->xml->push('websites');
208
  $websites = array();
 
209
  foreach($stores as $store) {
 
210
  $website = $this->getWebSiteByStore($store);
211
  if (!array_key_exists($website->getId(), $websites))
212
  {
@@ -230,7 +235,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
230
  $this->writeDescriptions($product);
231
  $this->xml->element('url', $this->xml->encloseCData($product->getProductUrl()));
232
  $this->writeImageUrl($product);
233
- $this->writeClassification($product);
234
  $this->writeProperties($product, $stores);
235
  $this->writeBrand($product);
236
  $this->writeMaterials($product);
@@ -439,9 +444,9 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
439
  *
440
  * @param Product $product
441
  */
442
- protected function writeClassification($product)
443
  {
444
- $categories = $this->getProductCategories($product);
445
  if(count($categories) > 0) {
446
  $this->xml->push('classification');
447
  foreach($categories as $category) {
@@ -513,9 +518,22 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
513
  * @param Product $product
514
  * @return array
515
  */
516
- protected function getProductCategories($product)
517
  {
518
- $categories = $product->getCategoryCollection()->setStoreId($product->getStoreId())->addAttributeToSelect('name')->addAttributeToSelect('image')->addAttributeToSelect('url_key')->addAttributeToFilter('name', array('neq' => ''));
 
 
 
 
 
 
 
 
 
 
 
 
 
519
  $productCategories = array();
520
  foreach($categories as $category) {
521
  //Force the store on the url in order to generate the store code in url if it is configured in system > config
@@ -629,42 +647,46 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
629
 
630
 
631
  $attribute = $product->getResource()->getAttribute($property['value']);
632
- $value = $attribute->getFrontend()->getValue($product);
633
- $label = $attribute->getStoreLabel();
634
- if (!$label) {
635
- $labels = $attribute->getStoreLabels();
636
- if (isset($labels[current($stores)->getId()])) {
637
- $label = $labels[current($stores)->getId()];
638
- }
639
- }
640
-
641
- $labels = array();
642
- switch($attribute->getfrontend_input())
643
- {
644
- case 'multiselect':
645
- $values = explode(',', $value);
646
- foreach($values as $value)
647
- {
648
- $value = trim($value);
649
- $properties[] = array(
650
- 'name' => $property['value'],
651
- 'display_name' => substr($label, 0, 79),
652
- 'label' => substr($value, 0, 79),
653
- 'autocomplete' => ($property['autocomplete'] == 1 ? 'on' : 'off'));
654
- }
655
- break;
656
- default:
657
- $optionName = $value;
658
- if(!empty($this->propertyLabel[$property['value']]['options'][$id]['per_store'][current($stores)->getId()])) {
659
- $optionName = $this->propertyLabel[$property['value']]['options'][$id]['per_store'][current($stores)->getId()];
660
- }
661
- $value = is_bool($value) ? (int)$value : $value;
662
- $properties[] = array(
663
- 'name' => $property['value'],
664
- 'display_name' => substr($label, 0, 79),
665
- 'label' => substr($optionName, 0, 79),
666
- 'autocomplete' => ($property['autocomplete'] == 1 ? 'on' : 'off'));
667
- break;
 
 
 
 
668
  }
669
 
670
  }
@@ -689,10 +711,6 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
689
  {
690
  $prices = ($this->getPrices($parentProduct->getId(), $store->getWebsiteId()));
691
 
692
- if($product->getTypeID() === Mage_Catalog_Model_Product_Type::TYPE_BUNDLE) {
693
- $prices['price'] = $prices['min_price'];
694
- }
695
-
696
  $price = Mage::helper('tax')->getPrice($product, $prices['price'], true);
697
 
698
  //try to get price & pricecut
@@ -776,13 +794,16 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
776
 
777
  if (($result['min_price']))
778
  {
779
- if (!($result['price']))
780
- $result['price'] = $result['min_price'];
781
- if (!($result['final_price']))
 
 
782
  $result['final_price'] = $result['min_price'];
 
783
  }
784
 
785
- if ((!$result['min_price']) && (!$result['price']) && (!$result['final_price']))
786
  {
787
  $product = Mage::getModel('catalog/product')->load($productId);
788
  $result['min_price'] = $product->getPrice();
@@ -790,7 +811,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
790
  $result['final_price'] = $product->getPrice();
791
  $product->clearInstance();
792
  }
793
-
794
  return $result;
795
  }
796
 
@@ -958,7 +979,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
958
  }
959
 
960
  $res = fwrite($this->file, $xml);
961
- if (!$res)
962
  throw new Exception('Can not write in : '.$filename);
963
 
964
  if ($close) {
@@ -999,12 +1020,13 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
999
  * @param string $type
1000
  * @return array
1001
  */
1002
- protected function getProductIds($storeIds, $type)
1003
  {
1004
  $productsInStock = $this->onlyProductsWithStock ? ' AND is_in_stock = 1' : '';
1005
  $collection = Mage::getModel('catalog/product')
1006
  ->getCollection()
1007
  ->setStoreId($storeIds)
 
1008
  ->addAttributeToFilter('visibility', $this->productVisible)
1009
  ->addAttributeToFilter('status', 1)
1010
  ->joinField('qty',
@@ -1020,7 +1042,7 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
1020
  }
1021
  $collection->addAttributeToFilter('updated_at', array('gteq' => $this->lastGeneration));
1022
  }
1023
-
1024
  return $collection->getAllIds();
1025
  }
1026
  }
69
  $this->onlyProductsWithStock = !(boolean)Mage::getStoreConfig('antidot/fields_product/in_stock_only');
70
  $this->autoCompleteProducts = Mage::getStoreConfig('antidot/suggest/enable') === 'Antidot/engine_antidot' ? 'on' : 'off';
71
 
72
+ $productIds = $this->getProductIds($context['store_id'], $context['website_ids'], $type);
 
 
 
 
 
73
 
 
 
 
 
 
 
 
74
  Mage::log('Products to export : '.count($productIds), null, 'antidot.log');
75
+ if (count($productIds) > 0) {
76
+
77
+ $this->initXml();
78
+ $this->initPropertyLabel();
79
+ $this->initProductsWithOperations();
80
+ $this->initFields('product');
81
+ $this->initEnabledStores();
82
+ $this->setFilename($filename);
83
+
84
+ $this->xml->push('catalog', array('xmlns' => "http://ref.antidot.net/store/afs#"));
85
+ $this->writeHeader($context);
86
+ $this->writePart($this->xml->flush());
87
+
88
+ $this->lang = $context['lang'];
89
+
90
+ $chunkId = 1;
91
+ $chunkCount = (int)(count($productIds) / 500);
92
+ $lastExecutionTime = time();
93
+ foreach(array_chunk($productIds, 500) as $productId) {
94
+
95
+ Mage::log('Process chunk # '.$chunkId .' / '.$chunkCount. ' - memory usage = '.memory_get_usage().' - last took '.(time() - $lastExecutionTime).' sec', null, 'antidot.log');
96
+ $lastExecutionTime = time();
97
+ //force current store to admin to prevent the use of the flat catalog
98
+ Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
99
+
100
+ $collection = Mage::getModel('catalog/product')
101
+ ->getCollection()
102
+ ->addAttributeToSelect('*')
103
+ ->addAttributeToFilter('entity_id', array('in', $productId))
104
+ ->joinField('qty',
105
+ 'cataloginventory/stock_item',
106
+ 'qty',
107
+ 'product_id = entity_id',
108
+ '{{table}}.stock_id = 1')
109
+ ;
110
+
111
+ foreach($collection as $product) {
112
+ //if($context['langs'] > 1) {
113
+ $store = current($this->getProductStores($product, $context)); //we take the "first" store of the current lang
114
+ if ($store)
115
+ $product = Mage::getModel('catalog/product')->setStoreId($store->getId())->load($product->getId());
116
+ //}
117
+ $this->writeProduct($product, $context);
118
+
119
+ $product->clearInstance(); //memory flush
120
+ }
121
+ $this->writePart($this->xml->flush());
122
+
123
+ $chunkId++;
124
+ }
125
+ $this->xml->pop();
126
+ $this->writePart($this->xml->flush(), true);
127
+ }
128
 
129
  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
130
  Mage::log('Products parsing complete', null, 'antidot.log');
209
 
210
  $this->xml->push('websites');
211
  $websites = array();
212
+ $rootCategoriesIds = array(); //the root categories of the stores of this context, used for exporting only the categories within theses roots
213
  foreach($stores as $store) {
214
+ $rootCategoriesIds[] = $store->getRootCategoryId();
215
  $website = $this->getWebSiteByStore($store);
216
  if (!array_key_exists($website->getId(), $websites))
217
  {
235
  $this->writeDescriptions($product);
236
  $this->xml->element('url', $this->xml->encloseCData($product->getProductUrl()));
237
  $this->writeImageUrl($product);
238
+ $this->writeClassification($product, $rootCategoriesIds);
239
  $this->writeProperties($product, $stores);
240
  $this->writeBrand($product);
241
  $this->writeMaterials($product);
444
  *
445
  * @param Product $product
446
  */
447
+ protected function writeClassification($product, $rootCategoriesIds)
448
  {
449
+ $categories = $this->getProductCategories($product, $rootCategoriesIds);
450
  if(count($categories) > 0) {
451
  $this->xml->push('classification');
452
  foreach($categories as $category) {
518
  * @param Product $product
519
  * @return array
520
  */
521
+ protected function getProductCategories($product, $rootCategoriesIds)
522
  {
523
+ $categories = $product->getCategoryCollection();
524
+ $categories->setStoreId($product->getStoreId());
525
+ $categories->addAttributeToSelect('name');
526
+ $categories->addAttributeToSelect('image');
527
+ $categories->addAttributeToSelect('url_key');
528
+ $categories->addAttributeToFilter('name', array('neq' => ''));
529
+
530
+ //Add a filter on the path in order to export only the categories whose root category is used on the exported stores
531
+ $rootCategoryCondition = array();
532
+ foreach ($rootCategoriesIds as $rootCategoryId) {
533
+ $rootCategoryCondition[] = array('like' => '1/'.$rootCategoryId.'/%');
534
+ }
535
+ $categories->addAttributeToFilter('path', $rootCategoryCondition);
536
+
537
  $productCategories = array();
538
  foreach($categories as $category) {
539
  //Force the store on the url in order to generate the store code in url if it is configured in system > config
647
 
648
 
649
  $attribute = $product->getResource()->getAttribute($property['value']);
650
+ if ($attribute) {
651
+ $value = $attribute->getFrontend()->getValue($product);
652
+ $label = $attribute->getStoreLabel();
653
+ if (!$label) {
654
+ $labels = $attribute->getStoreLabels();
655
+ if (isset($labels[current($stores)->getId()])) {
656
+ $label = $labels[current($stores)->getId()];
657
+ }
658
+ }
659
+
660
+ $labels = array();
661
+ switch($attribute->getfrontend_input())
662
+ {
663
+ case 'multiselect':
664
+ $values = explode(',', $value);
665
+ foreach($values as $value)
666
+ {
667
+ $value = trim($value);
668
+ $properties[] = array(
669
+ 'name' => $property['value'],
670
+ 'display_name' => substr($label, 0, 79),
671
+ 'label' => substr($value, 0, 79),
672
+ 'autocomplete' => ($property['autocomplete'] == 1 ? 'on' : 'off'));
673
+ }
674
+ break;
675
+ default:
676
+ $optionName = $value;
677
+ if(!empty($this->propertyLabel[$property['value']]['options'][$id]['per_store'][current($stores)->getId()])) {
678
+ $optionName = $this->propertyLabel[$property['value']]['options'][$id]['per_store'][current($stores)->getId()];
679
+ }
680
+ $value = is_bool($value) ? (int)$value : $value;
681
+ $properties[] = array(
682
+ 'name' => $property['value'],
683
+ 'display_name' => substr($label, 0, 79),
684
+ 'label' => substr($optionName, 0, 79),
685
+ 'autocomplete' => ($property['autocomplete'] == 1 ? 'on' : 'off'));
686
+ break;
687
+ }
688
+ } else {
689
+ Mage::log('Attribute with code : '.$property['value'].' not present in product', null, 'antidot.log');
690
  }
691
 
692
  }
711
  {
712
  $prices = ($this->getPrices($parentProduct->getId(), $store->getWebsiteId()));
713
 
 
 
 
 
714
  $price = Mage::helper('tax')->getPrice($product, $prices['price'], true);
715
 
716
  //try to get price & pricecut
794
 
795
  if (($result['min_price']))
796
  {
797
+ //on bundle product, only min_price is set
798
+ if ($result['price'] == 0) {
799
+ $result['price'] = $result['min_price'];
800
+ }
801
+ if ($result['final_price'] == 0) {
802
  $result['final_price'] = $result['min_price'];
803
+ }
804
  }
805
 
806
+ if (($result['min_price'] == 0) && ($result['price'] == 0) && ($result['final_price'] == 0))
807
  {
808
  $product = Mage::getModel('catalog/product')->load($productId);
809
  $result['min_price'] = $product->getPrice();
811
  $result['final_price'] = $product->getPrice();
812
  $product->clearInstance();
813
  }
814
+
815
  return $result;
816
  }
817
 
979
  }
980
 
981
  $res = fwrite($this->file, $xml);
982
+ if ($res === false)
983
  throw new Exception('Can not write in : '.$filename);
984
 
985
  if ($close) {
1020
  * @param string $type
1021
  * @return array
1022
  */
1023
+ protected function getProductIds($storeIds, $websiteIds, $type)
1024
  {
1025
  $productsInStock = $this->onlyProductsWithStock ? ' AND is_in_stock = 1' : '';
1026
  $collection = Mage::getModel('catalog/product')
1027
  ->getCollection()
1028
  ->setStoreId($storeIds)
1029
+ ->addWebsiteFilter($websiteIds)
1030
  ->addAttributeToFilter('visibility', $this->productVisible)
1031
  ->addAttributeToFilter('status', 1)
1032
  ->joinField('qty',
1042
  }
1043
  $collection->addAttributeToFilter('updated_at', array('gteq' => $this->lastGeneration));
1044
  }
1045
+
1046
  return $collection->getAllIds();
1047
  }
1048
  }
app/code/community/MDN/Antidot/Model/Observer.php CHANGED
@@ -278,16 +278,25 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
278
  {
279
  $listStore = array();
280
  foreach (Mage::app()->getStores() as $store) {
281
- list($lang) = explode('_', Mage::getStoreConfig('general/locale/code', $store->getId()));
282
- $listStore[$lang][$store->getId()] = $store;
 
 
283
  }
284
 
285
  $listContext = array();
 
286
  foreach($listStore as $lang => $stores) {
287
  $defaultOwner = 'AFS@Store for Magento v'.Mage::getConfig()->getNode()->modules->MDN_Antidot->version;
288
  $context['owner'] = Mage::getStoreConfig('antidot/general/owner') === '' ? $defaultOwner : Mage::getStoreConfig('antidot/general/owner');
289
  $context['lang'] = $lang;
290
  $context['stores'] = $stores;
 
 
 
 
 
 
291
  $context['langs'] = count($listStore);
292
 
293
  $listContext[] = $context;
278
  {
279
  $listStore = array();
280
  foreach (Mage::app()->getStores() as $store) {
281
+ if ($store->getIsActive()) {
282
+ list($lang) = explode('_', Mage::getStoreConfig('general/locale/code', $store->getId()));
283
+ $listStore[$lang][$store->getId()] = $store;
284
+ }
285
  }
286
 
287
  $listContext = array();
288
+ $context['website_ids'] = array();
289
  foreach($listStore as $lang => $stores) {
290
  $defaultOwner = 'AFS@Store for Magento v'.Mage::getConfig()->getNode()->modules->MDN_Antidot->version;
291
  $context['owner'] = Mage::getStoreConfig('antidot/general/owner') === '' ? $defaultOwner : Mage::getStoreConfig('antidot/general/owner');
292
  $context['lang'] = $lang;
293
  $context['stores'] = $stores;
294
+ foreach ($stores as $store) {
295
+ $websiteId = $store->getWebsite()->getId();
296
+ if (!in_array($websiteId, $context['website_ids'])) {
297
+ $context['website_ids'][] = $websiteId;
298
+ }
299
+ }
300
  $context['langs'] = count($listStore);
301
 
302
  $listContext[] = $context;
app/code/community/MDN/Antidot/Model/Resource/Catalog/Product/Collection.php CHANGED
@@ -384,4 +384,15 @@ class MDN_Antidot_Model_Resource_Catalog_Product_Collection extends Mage_Catalog
384
  {
385
  return $this->_searchQueryText;
386
  }
 
 
 
 
 
 
 
 
 
 
 
387
  }
384
  {
385
  return $this->_searchQueryText;
386
  }
387
+
388
+ /**
389
+ * Stub method for compatibility with other search engine in magento E.E
390
+ * (TODO : check is it normal that Enterprise_Search_Model_Catalog_Layer get a MDN_Antidot_Model_Resource_Catalog_Product_Collection ? )
391
+ *
392
+ * @return MDN_Antidot_Model_Resource_Catalog_Product_Collection
393
+ */
394
+ public function setGeneralDefaultQuery()
395
+ {
396
+ return $this;
397
+ }
398
  }
app/code/community/MDN/Antidot/Model/Resource/Engine/Antidot.php CHANGED
@@ -337,7 +337,7 @@ class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resour
337
  );
338
  }
339
 
340
- if ($resultAntidot->replyset !== null && $resultAntidot->replyset->has_facet()) {
341
  $result['facets'] = $this->prepareFacetsQueryResponse($resultAntidot->replyset->get_facets());
342
  }
343
 
@@ -345,7 +345,7 @@ class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resour
345
  $result['category_ids'] = $this->prepareQueryResponse($resultAntidot->replysetCategories, 'Categories');
346
  }
347
 
348
- if($promote = $resultAntidot->promote && $replies = $resultAntidot->promote->get_replies()) {
349
  if((Mage::getStoreConfig('antidot/promote/redirect') === 'no_result' && $result['total_count'] == 0) || Mage::getStoreConfig('antidot/promote/redirect') === 'always') {
350
  $promote = current($replies);
351
  if($promote->uri !== 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']) {
@@ -355,7 +355,7 @@ class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resour
355
  }
356
  }
357
 
358
- if (!$this->addedNote && $result['total_count'] == 0) {
359
  if($spellcheck = $resultAntidot->spellcheck) {
360
  $link = '<a href="'.Mage::helper('catalogsearch')->getResultUrl($spellcheck).'">'.$spellcheck.'</a>';
361
  $spellcheck = str_replace('{spellcheck}', $link, Mage::getStoreConfig('antidot/engine/spellcheck'));
@@ -403,4 +403,18 @@ class MDN_Antidot_Model_Resource_Engine_Antidot extends MDN_Antidot_Model_Resour
403
  {
404
  return false;
405
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
406
  }
337
  );
338
  }
339
 
340
+ if (isset($resultAntidot->replyset) && $resultAntidot->replyset !== null && $resultAntidot->replyset->has_facet()) {
341
  $result['facets'] = $this->prepareFacetsQueryResponse($resultAntidot->replyset->get_facets());
342
  }
343
 
345
  $result['category_ids'] = $this->prepareQueryResponse($resultAntidot->replysetCategories, 'Categories');
346
  }
347
 
348
+ if(isset($resultAntidot->promote) && $resultAntidot->promote && $replies = $resultAntidot->promote->get_replies()) {
349
  if((Mage::getStoreConfig('antidot/promote/redirect') === 'no_result' && $result['total_count'] == 0) || Mage::getStoreConfig('antidot/promote/redirect') === 'always') {
350
  $promote = current($replies);
351
  if($promote->uri !== 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']) {
355
  }
356
  }
357
 
358
+ if (!$this->addedNote && $result['total_count'] == 0 && isset($resultAntidot->spellcheck)) {
359
  if($spellcheck = $resultAntidot->spellcheck) {
360
  $link = '<a href="'.Mage::helper('catalogsearch')->getResultUrl($spellcheck).'">'.$spellcheck.'</a>';
361
  $spellcheck = str_replace('{spellcheck}', $link, Mage::getStoreConfig('antidot/engine/spellcheck'));
403
  {
404
  return false;
405
  }
406
+
407
+ /**
408
+ * Checks search engine availability.
409
+ * - Antidot search is disabled on the magento advanced search
410
+ * - TODO : see Jira MCNX-19 : Extension should be able to detect bad web service configuration,
411
+ * set antidotServiceAvailable to false if the webservice isn't available
412
+ * @return bool
413
+ */
414
+ public function test()
415
+ {
416
+ $notInAdvancedSearch = (Mage::app()->getRequest()->getControllerName() != 'advanced');
417
+ $antidotServiceAvailable = true;
418
+ return $antidotServiceAvailable && $notInAdvancedSearch;
419
+ }
420
  }
app/code/community/MDN/Antidot/Model/Search/Search.php CHANGED
@@ -220,8 +220,12 @@ class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
220
  }
221
  }
222
 
223
- if (isset($params['limit']) && is_numeric($params['limit'])) {
224
  $query = $query->set_replies((int)$params['limit']);
 
 
 
 
225
  }
226
 
227
  if (isset($params['page']) && is_numeric($params['page'])) {
220
  }
221
  }
222
 
223
+ if (isset($params['limit']) && is_numeric($params['limit']) && $params['limit']>0) {
224
  $query = $query->set_replies((int)$params['limit']);
225
+ } else {
226
+ $query = $query->set_replies(100);
227
+ //when limit=all or limit=0, set limit to 100 in order to have enought results and avoid
228
+ //performances issues on very big numbers of results (instead AFStore defaut of 20 is used)
229
  }
230
 
231
  if (isset($params['page']) && is_numeric($params['page'])) {
app/code/community/MDN/Antidot/Model/Search/Suggest.php CHANGED
@@ -214,7 +214,7 @@ class MDN_Antidot_Model_Search_Suggest extends MDN_Antidot_Model_Search_Abstract
214
 
215
  $attributes = array(
216
  'key' => $field,
217
- 'value' => str_replace('&', '&amp;', html_entity_decode($value)),
218
  );
219
  $xml->emptyelement('afs:option', $attributes);
220
  }
@@ -304,15 +304,28 @@ class MDN_Antidot_Model_Search_Suggest extends MDN_Antidot_Model_Search_Abstract
304
  */
305
  protected function transformToXml($suggestXml)
306
  {
 
307
  libxml_use_internal_errors(true);
308
  $xml = simplexml_load_string($suggestXml);
 
 
 
 
 
309
  $xsl = simplexml_load_string($this->template);
 
 
 
 
 
310
 
311
  $xslt = new XSLTProcessor();
312
  $xslt->importStylesheet($xsl);
313
 
314
- if(!$xml = $xslt->transformToXml($xml)) {
315
- Mage::log(print_r(libxml_get_errors(), true), null, 'antidot.log');
 
 
316
  return '';
317
  }
318
 
214
 
215
  $attributes = array(
216
  'key' => $field,
217
+ 'value' => html_entity_decode($value),
218
  );
219
  $xml->emptyelement('afs:option', $attributes);
220
  }
304
  */
305
  protected function transformToXml($suggestXml)
306
  {
307
+
308
  libxml_use_internal_errors(true);
309
  $xml = simplexml_load_string($suggestXml);
310
+ if ($xml === false) {
311
+ Mage::log('Error loading xml (suggest) : ', null, 'antidot.log');
312
+ Mage::log(print_r(libxml_get_errors(), true), null, 'antidot.log');
313
+ return '';
314
+ }
315
  $xsl = simplexml_load_string($this->template);
316
+ if ($xsl === false) {
317
+ Mage::log('Error loading xsl template (suggest) : ', null, 'antidot.log');
318
+ Mage::log(print_r(libxml_get_errors(), true), null, 'antidot.log');
319
+ return '';
320
+ }
321
 
322
  $xslt = new XSLTProcessor();
323
  $xslt->importStylesheet($xsl);
324
 
325
+ $xml = $xslt->transformToXml($xml);
326
+ if ($xml === false) {
327
+ Mage::log('Error during xslt transformation (suggest) : ', null, 'antidot.log');
328
+ Mage::log(print_r(libxml_get_errors(), true), null, 'antidot.log');
329
  return '';
330
  }
331
 
app/code/community/MDN/Antidot/Test/Model/Observer.php DELETED
@@ -1,29 +0,0 @@
1
- <?php
2
-
3
-
4
- class MDN_Antidot_Test_Model_Observer extends EcomDev_PHPUnit_Test_Case
5
- {
6
-
7
- /**
8
- * Test owner for filename generation
9
- *
10
- * @test
11
- * loadFixture
12
- * doNotIndexAll
13
- * dataProvider dataProvider
14
- */
15
- public function testGetOwnerForFilename() {
16
-
17
- $observer = Mage::getModel('Antidot/observer');
18
-
19
- $value= MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($observer, 'getOwnerForFilename', array());
20
-
21
- $this->assertEquals(
22
- 'magento',
23
- $value
24
- );
25
-
26
- //TODO : loadFixture with different cas of owners in database
27
-
28
- }
29
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/MDN/Antidot/Test/PHPUnitUtil.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- class MDN_Antidot_Test_PHPUnitUtil
3
- {
4
- public static function callPrivateMethod($obj, $name, array $args) {
5
- $class = new \ReflectionClass($obj);
6
- $method = $class->getMethod($name);
7
- $method->setAccessible(true);
8
- return $method->invokeArgs($obj, $args);
9
- }
10
- }
 
 
 
 
 
 
 
 
 
 
app/code/community/MDN/Antidot/etc/config.xml CHANGED
@@ -18,7 +18,7 @@
18
  </crontab>
19
  <modules>
20
  <MDN_Antidot>
21
- <version>1.0.16</version>
22
  </MDN_Antidot>
23
  </modules>
24
  <global>
@@ -149,13 +149,13 @@
149
 
150
  <admin>
151
  <routers>
152
- <Antidot>
153
  <use>admin</use>
154
  <args>
155
  <module>MDN_Antidot</module>
156
- <frontName>Antidot</frontName>
157
  </args>
158
- </Antidot>
159
  </routers>
160
  </admin>
161
 
18
  </crontab>
19
  <modules>
20
  <MDN_Antidot>
21
+ <version>1.0.17</version>
22
  </MDN_Antidot>
23
  </modules>
24
  <global>
149
 
150
  <admin>
151
  <routers>
152
+ <Antidotadmin>
153
  <use>admin</use>
154
  <args>
155
  <module>MDN_Antidot</module>
156
+ <frontName>Antidotadmin</frontName>
157
  </args>
158
+ </Antidotadmin>
159
  </routers>
160
  </admin>
161
 
app/code/community/MDN/Antidot/etc/system.xml CHANGED
@@ -374,8 +374,8 @@
374
  </products>
375
  <products_displayed translate="label">
376
  <label>Number of products displayed</label>
377
- <frontend_type>select</frontend_type>
378
- <source_model>Antidot/System_Config_Number</source_model>
379
  <sort_order>21</sort_order>
380
  <show_in_default>1</show_in_default>
381
  <show_in_website>1</show_in_website>
@@ -394,8 +394,8 @@
394
  </brands>
395
  <brands_displayed translate="label">
396
  <label>Number of brands displayed</label>
397
- <frontend_type>select</frontend_type>
398
- <source_model>Antidot/System_Config_Number</source_model>
399
  <sort_order>31</sort_order>
400
  <show_in_default>1</show_in_default>
401
  <show_in_website>1</show_in_website>
@@ -414,8 +414,8 @@
414
  </categories>
415
  <categories_displayed translate="label">
416
  <label>Number of categories displayed</label>
417
- <frontend_type>select</frontend_type>
418
- <source_model>Antidot/System_Config_Number</source_model>
419
  <sort_order>41</sort_order>
420
  <show_in_default>1</show_in_default>
421
  <show_in_website>1</show_in_website>
@@ -531,6 +531,7 @@
531
  <facet_options translate="label">
532
  <label>Max number of facet values</label>
533
  <frontend_type>text</frontend_type>
 
534
  <sort_order>60</sort_order>
535
  <show_in_default>1</show_in_default>
536
  <show_in_website>1</show_in_website>
374
  </products>
375
  <products_displayed translate="label">
376
  <label>Number of products displayed</label>
377
+ <frontend_type>text</frontend_type>
378
+ <validate>validate-digits</validate>
379
  <sort_order>21</sort_order>
380
  <show_in_default>1</show_in_default>
381
  <show_in_website>1</show_in_website>
394
  </brands>
395
  <brands_displayed translate="label">
396
  <label>Number of brands displayed</label>
397
+ <frontend_type>text</frontend_type>
398
+ <validate>validate-digits</validate>
399
  <sort_order>31</sort_order>
400
  <show_in_default>1</show_in_default>
401
  <show_in_website>1</show_in_website>
414
  </categories>
415
  <categories_displayed translate="label">
416
  <label>Number of categories displayed</label>
417
+ <frontend_type>text</frontend_type>
418
+ <validate>validate-digits</validate>
419
  <sort_order>41</sort_order>
420
  <show_in_default>1</show_in_default>
421
  <show_in_website>1</show_in_website>
531
  <facet_options translate="label">
532
  <label>Max number of facet values</label>
533
  <frontend_type>text</frontend_type>
534
+ <validate>validate-digits</validate>
535
  <sort_order>60</sort_order>
536
  <show_in_default>1</show_in_default>
537
  <show_in_website>1</show_in_website>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Antidot_Antidot</name>
4
- <version>1.0.16</version>
5
  <stability>stable</stability>
6
  <license>LGPL</license>
7
  <channel>community</channel>
@@ -17,9 +17,9 @@ Prevent to export empty categories node&amp;#xD;
17
  Add cdata for variant name&amp;#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-02-27</date>
21
- <time>10:36:54</time>
22
- <contents><target name="mage"><dir name="shell"><file name="antidotExport.php" hash="b5719d6cce70f9e3c1b2babc121ea5b1"/><file name="antidotExportCategory.php" hash="c6ec8609a42966292004123d5b40fe6e"/><file name="antidotExportInc.php" hash="1444df084b6f3dfacab5f6038a593e85"/><file name="antidotExportProduct.php" hash="3a6603f997db76b9b11524db6aa2d320"/></dir><dir name="i18n"><file name="de_DE" hash="f166a5ff29213a44fca77277b053897e"/><file name="en_US" hash="63c821044fda6f7c2a26dc84670b25bd"/><file name="es_ES" hash="f9319039054998955d63d51ed0930f3f"/><file name="fr_FR" hash="632367797f2fa9fef06e0b0c69377e01"/><file name="i18n.php" hash="104c26dcc76365069b274fa0e68588ec"/></dir></target><target name="magecommunity"><dir name="MDN"><dir name="Antidot"><dir name="Block"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="c8147e06452988877fd23de97e47ba7d"/><file name="Boolean.php" hash="0d301b2ca3c1c1e60a69dbfc043a8520"/><file name="Category.php" hash="695722041376ff47c15c78b233e32f29"/><file name="Decimal.php" hash="a5a605767a6b3322dcab4715f107b71c"/><file name="Price.php" hash="3e8fe52c943c4d7cc21062ebd63ff9a0"/></dir><file name="View.php" hash="95d6226dc5e264422511bc19dcf23358"/></dir></dir><dir name="Catalogsearch"><file name="Category.php" hash="e7fdd211e62b37cddac5649183e49dfe"/><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="4b7dd735852366d7d999afaf1c5ad4b9"/></dir></dir><file name="Layer.php" hash="af32668e618033cda4adab8a12ebabcc"/><file name="Result.php" hash="9c3076c2a22ebf198f24f36a6d19f75c"/></dir><dir name="Html"><file name="Select.php" hash="9e12a50fecdc9185fb1f009584368c88"/></dir><dir name="System"><dir name="Config"><dir name="Button"><file name="PushArticles.php" hash="6de266a07e63e47ab9b32903f124608d"/><file name="PushBrands.php" hash="a98dfa0d019fee4fd7327084298361d9"/><file name="PushCategories.php" hash="93948e44a97c0d236bce2d976268794c"/><file name="PushProducts.php" hash="ab6c58cdb5b431fa5418979f16206911"/><file name="RestoreTemplate.php" hash="541d3141c4b1a8202e511a0978ec0de1"/><file name="ShowXml.php" hash="c70714536a6d46ce5d056d41fd62ead6"/></dir><dir name="Form"><dir name="Field"><dir name="Array"><file name="Additional.php" hash="a92ccc94d40b2c05ccf4b6dec8882eff"/><file name="ArticleAdditional.php" hash="506594804d3b624523e04481e8925b35"/><file name="ArticleIdentifier.php" hash="6e85e062f65eeed99dd3274cc689c47f"/><file name="DefaultSort.php" hash="d12eb339e80a7b38c111a63aa003ce6e"/><file name="Facet.php" hash="7ffdd3568f12a9495d39b943402dd861"/><file name="Identifier.php" hash="669eb4a937943dec8a577881f3f20d3c"/><file name="ProductAdditionalFacet.php" hash="3fd8f3957e8c364b39258cf32100b70d"/><file name="ProductAdditionalField.php" hash="9c245ddfb26372a9af712815ace7497b"/><file name="ProductIdentifier.php" hash="14dcf3125eae94145df4c802344cbfcd"/><file name="Sort.php" hash="f1a565e63b90a249fbae162fa2b90e54"/></dir><file name="CategoryAttribute.php" hash="6f20dd2ee95865d458ab37318ea47ad5"/><file name="ProductAttribute.php" hash="9475af9768d2f0bd3e8a1078eb3a03f9"/></dir></dir><dir name="Html"><file name="Export.php" hash="9814c5ed5cacb5792020344bf3f6b863"/><file name="ShowXml.php" hash="4b4012d9973dd397a91734f73d09df17"/><file name="Version.php" hash="7e780d7a124dffb964c63e7136bf161a"/></dir></dir></dir></dir><dir name="Helper"><file name="Antidot.php" hash="2acc8b8ab743de5f0872dd5c983ebd67"/><dir name="CatalogSearch"><file name="Data.php" hash="ffbbd7d6f1965fce0403c5a5eda73063"/></dir><file name="Compress.php" hash="7d284da9ec13c64f436817fd65947d32"/><file name="Data.php" hash="36ae4060d3637b4df20b49ec34b136bb"/><dir name="Enterprise"><dir name="Search"><file name="Data.php" hash="8bfe0146c64511f86cb796638b65112f"/></dir></dir><file name="LogExport.php" hash="9bd67e1c49e7b37fc1c0effd22233f26"/><dir name="ManaFilters"><file name="Data.php" hash="e5dd65e6e52c03427aa68528cc1f140a"/></dir><file name="Url.php" hash="156f1fb9c829919144ebb7fd01588f7e"/><file name="XmlWriter.php" hash="e2fc516875648d230da0cb276369b907"/></dir><dir name="Model"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="4a95baa6605e8d47ecf315c3cbd995b1"/><file name="Boolean.php" hash="7151f37fda430c2ceea55db8e39b0dc4"/><file name="Category.php" hash="062b705848d8be4fbba569c7f6bdfbe5"/><file name="Decimal.php" hash="32dc400184631b7913e68224f9aac9a2"/><file name="Item.php" hash="10cb250f8c2e8a763a18cf16f0f1800e"/><file name="Price.php" hash="946b42279612884380b984fef527a212"/></dir></dir><file name="Layer.php" hash="c83e63e6725830e545ab13890f69c5b7"/></dir><dir name="Catalogsearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="1b5f705dceb4cc62d1e6375332414872"/></dir></dir><file name="Layer.php" hash="e99d8aee533b6179cf0898c08dcdedca"/><dir name="Resource"><file name="Attribute.php" hash="766e331e27af9d114b946e023522956a"/></dir></dir><dir name="Export"><file name="Abstract.php" hash="7f8c2e5383d30259d5957322d5797329"/><file name="Article.php" hash="a724568ff3b207b1ce465310ebd585fa"/><file name="Brand.php" hash="84e0ee8e7760a987c615b079f9f0a28d"/><file name="Category.php" hash="99fb2befa7b91073896ed74702a313b9"/><file name="Product.php" hash="30fff92280cc13c38ed2f24426e76e62"/></dir><file name="Observer.php" hash="c0c03b2e05c5208d027337cbf523bf10"/><dir name="Resource"><file name="Advanced.php" hash="39a9d8a23da4824b32037b0365669c72"/><dir name="Catalog"><dir name="Product"><file name="Collection.php" hash="f253ebede0e548be73d85c374fd8a331"/></dir></dir><dir name="Engine"><file name="Abstract.php" hash="994a72dea3044cf66ca1ef2b28ec2120"/><file name="Antidot.php" hash="cc00b76451bb8375c5bba16495f38a22"/></dir></dir><dir name="Search"><file name="Abstract.php" hash="0ccd58da349eca4f5f1fce005f441e5f"/><file name="Search.php" hash="8d3dd7fd24a4757ed9995de5aeac18a2"/><file name="Suggest.php" hash="b98262c23946c303968a48152463c843"/></dir><dir name="System"><dir name="Config"><file name="ArticleAttribute.php" hash="1a826cf609a0f0c3c47bf4ef6564de24"/><dir name="Backend"><file name="Engine.php" hash="301dbcfff7ca9034b731443686b85a2e"/></dir><file name="CategoryAttribute.php" hash="7149c1efa8207038d7fd2023c9761c98"/><file name="Dir.php" hash="7df80dbf0ee36504dba95c1d243e88ff"/><file name="DisableEnable.php" hash="903763b2023bb0c8c53ba050a9effc0e"/><file name="Engine.php" hash="8547fb84cbdfb1e61526da1ac79e2d1c"/><file name="Facet.php" hash="0a5274c46a4dde0cbfc803464f35dd28"/><file name="Number.php" hash="addd25d977b6dfdab80e1d010ca3bd12"/><file name="Options.php" hash="341e4677d0a060a63731fb9015d66ae4"/><file name="ProductAttribute.php" hash="f8060f25a70a7e681f5021eedef5dfa8"/><file name="PromoteRedirect.php" hash="9639c16ad74cfc680bd3b727ba2cf331"/><file name="Sort.php" hash="ef8c019fd3ae439e1349d20d229af094"/><dir name="Suggest"><file name="Type.php" hash="f0c083bbaa7fd339832d14937afe1af1"/></dir><file name="WSStatus.php" hash="b469dc276dd3623e51f79ec433791bcc"/></dir></dir><dir name="Transport"><file name="Abstract.php" hash="1c1a1f70c5813872a871f5b558c21360"/><file name="File.php" hash="136190f20ed7f7a340771d3b78f03331"/><file name="Ftp.php" hash="d3fb3cd39a1fb7314757f3f82f8f4f95"/><file name="Http.php" hash="667a6f2d07034604b6ec6f2b48b55332"/><file name="Interface.php" hash="82c6c2d1748439a6850e90f6556fec92"/></dir><file name="Transport.php" hash="663e33aaf620ffd4f05292b4e6f27f42"/></dir><dir name="Test"><dir name="Model"><file name="Observer.php" hash="dbb68eeb8bf058173bf8efeff4be7cfc"/></dir><file name="PHPUnitUtil.php" hash="75929d9a9e18d0d3ab022a092399f043"/></dir><dir name="controllers"><dir name="Admin"><file name="PushController.php" hash="0cb3e55625acd83e255dac46704e82f3"/></dir><dir name="Front"><file name="SearchController.php" hash="c1514fc18b5412a9e9072bcca0352607"/></dir></dir><dir name="etc"><file name="config.xml" hash="0ac4c68f793a9f1637e8b58b1364793f"/><file name="system.xml" hash="859244584e7476d457077e3d8c420095"/></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="c45d0a82747927c46d886f94ab2304be"/></dir><dir name="de_CH"><file name="MDN_Antidot.csv" hash="c45d0a82747927c46d886f94ab2304be"/></dir><dir name="de_DE"><file name="MDN_Antidot.csv" hash="c45d0a82747927c46d886f94ab2304be"/></dir><dir name="es_AR"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_CL"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_CO"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_CR"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_ES"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_MX"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_PE"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_VE"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="fr_CA"><file name="MDN_Antidot.csv" hash="c72a1b1173e18386e86c1fc528965a7e"/></dir><dir name="fr_FR"><file name="MDN_Antidot.csv" hash="1abf2703c391918be00d576c06509285"/></dir></target><target name="mageweb"><dir name="js"><dir name="mdn"><dir name="antidot"><file name="CollapsibleLists.js" hash="86792ecde0c2759ba85e0d863dd147ce"/></dir></dir></dir></target><target name="magelib"><dir name="antidot"><dir name="AFS"><dir name="ACP"><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="acpConnectorTest.php" hash="25a8194f3dc8895640df4f4bba895d8e"/><file name="acpQueryTest.php" hash="74ad65a4af639a409ee72a75a2a043d6"/><file name="acpReplysetHelperTest.php" hash="4f0a0d471a06e139cd11c715b67ebe81"/><file name="acpResponseHelperTest.php" hash="6d30f99108db0d9956aef9ba5e1d88df"/><file name="acpTest.php" hash="d6119d150543e7943ba4e9907901ae5d"/></dir><file name="afs_acp.php" hash="78dbfbc92f68469c92898f1da4263e68"/><file name="afs_acp_configuration.php" hash="2d644cc6c5bf2cdaeca5780576c4bf0e"/><file name="afs_acp_connector.php" hash="cf872314b38a86ebe7bb56b19bce9236"/><file name="afs_acp_exception.php" hash="f610d2cc37a15d4b981d7b43939414ad"/><file name="afs_acp_query.php" hash="ced0629355f5d4fc1c219d1adb03297d"/><file name="afs_acp_query_manager.php" hash="b3348972a850c904fc664b4e27671439"/><file name="afs_acp_reply_helper.php" hash="b0259f24f10d2e92ed6e3b8cdaaacc44"/><file name="afs_acp_replyset_helper.php" hash="07e7fdb88a42a399c96261c47ffb0231"/><file name="afs_acp_response_helper.php" hash="33a66106fd3a94194514a0d8d39af1cd"/></dir><file name="Makefile" hash="7bb31592939024f74745d6b6cb7fec0b"/><dir name="SEARCH"><dir name="FILTER"><file name="Makefile" hash="d42338199c6857ded179af2117b9f571"/><dir name="TEST"><file name="Makefile" hash="ab37090c6c5e7af1b260376237737700"/><file name="filterBuilderTest.php" hash="161ff5c8e73914eef884d17456afa133"/><file name="filterCombinationTest.php" hash="2162288d5255d3b24fe94d75b939aa51"/><file name="filterTest.php" hash="1682c0a4d50158a8d2c9369d30e45a18"/><file name="groupFilterTest.php" hash="1ebe8ce7344ed64b93cf94632d3b0184"/></dir><file name="afs_combinable_filter.php" hash="336e6c6bc9ebae3f58602d23ef734182"/><file name="afs_combinator_filter.php" hash="e2fc560b9c0c31f20c73f2057a8b7b69"/><file name="afs_filter.php" hash="1efc032fd2615c82c350f69ba11860fa"/><file name="afs_filter_exception.php" hash="ccce583c63a4a65f7f0a27fc4a487505"/><file name="afs_filter_wrapper.php" hash="30dec104456abc037019ad93922b5afd"/><file name="afs_group_filter.php" hash="b95fa3bc0e26bc39dfc53a6010bce32f"/><file name="afs_operator_filter.php" hash="c7ea43c8d64eedbe33397f61737e0226"/><file name="afs_valued_filter.php" hash="483653071734f77972c9b9771e187d82"/></dir><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="clientDataHelperTest.php" hash="523abcf4ab7a42e16c39c2b02bae927c"/><file name="clusterHelperTest.php" hash="e112e7c756f63c8e8ceb554281b418c9"/><file name="conceptHelperTest.php" hash="b44e39b62d0537bf1f7b7feb23f8111f"/><file name="facetDefaultTest.php" hash="382e4ea35e1c7173371b4a84046a38e5"/><file name="facetHelperTest.php" hash="2c6fbec3f1d4dd6e37c089ac835a88b0"/><file name="facetManagerTest.php" hash="bbef8e207c387dbe6a26142fd55264d5"/><file name="facetTest.php" hash="f0264af2550394a4a3d944bc86dac667"/><file name="facetValuesSortOrderTest.php" hash="b650080bf9b2cce2ac42a245cb84c911"/><file name="feedCoderTest.php" hash="f2b5dfdd4fa3c4e5d14c790d15235146"/><file name="filterCoderTest.php" hash="46249fa13edccf1e5d5000daf2573b77"/><file name="headerHelperTest.php" hash="62185c34e1e9015bb12014d719287f06"/><file name="helperConfigurationTest.php" hash="be3f74e53e27744e8214f3c341172796"/><file name="intervalTest.php" hash="912389dad049853f6bf0b4eab2af5034"/><file name="metaHelperTest.php" hash="080f160b54636c4eee743544a6a12bee"/><file name="pagerHelperTest.php" hash="b756d39c29c1d3cfb2733ab13062542e"/><file name="promoteReplyHelperTest.php" hash="7cbb68a7f50c2bd2ef11a085ac94deb2"/><file name="promoteReplysetHelperTest.php" hash="749180b072997539d322c88c97c586d6"/><file name="queryCoderTest.php" hash="064979c30a7e215c486e34abce79b1b5"/><file name="queryTest.php" hash="c48bc5a88a788bbc4a26604b86d60454"/><file name="replyHelperTest.php" hash="5b3cfec02c640282bf4fec92353801d6"/><file name="replysetHelperTest.php" hash="fdb55d9a09f9198fb26b5fab3edc58c3"/><file name="responseHelperTest.php" hash="35969ff7882d97b93aa874fafd4b55c3"/><file name="searchConnectorTest.php" hash="9201de573884b643041b6c32bc535e7e"/><file name="searchQueryManagerTest.php" hash="2334d06f4247abfd69c2b4dc842cc404"/><file name="searchTest.php" hash="eeb7a86bd5b48108434fb93da4e0c0f2"/><file name="spellcheckHelperTest.php" hash="49960fb90055dcf265ef41e491c11325"/><file name="spellcheckTextVisitorTest.php" hash="203f0d08f548a39135517a41f6e9e43a"/><file name="textVisitorTest.php" hash="b722845dd0f5f953574cb51284ad025b"/></dir><file name="afs_base_reply_helper.php" hash="c1c3961f3cc03924fda382adf6e6c419"/><file name="afs_base_replyset_helper.php" hash="096b124a3ebdc6e8d6beb359bd8bb7c5"/><file name="afs_client_data_exception.php" hash="899957af974d04aa7eaca44903a7f86c"/><file name="afs_client_data_helper.php" hash="b2383fc244d6bbcda6de7387ae7b1b0d"/><file name="afs_cluster_exception.php" hash="86d97623db7aebaa28a20857ce2cf17f"/><file name="afs_cluster_helper.php" hash="60b7fbcc869a672929ef9fc6d840d2b2"/><file name="afs_coder_base.php" hash="fb87fbea43d12695154b3b6102e2a019"/><file name="afs_coder_interface.php" hash="3b179b2513e215751ee4edd190b2a719"/><file name="afs_concept_helper.php" hash="982cf3d2063c565cf19cc6136b049066"/><file name="afs_count.php" hash="9f83f3baa3cf4462c0db786f4eea479a"/><file name="afs_facet.php" hash="b5d89249e71741b0558dbb762ad1a077"/><file name="afs_facet_combination.php" hash="005e9742ee032194b86856195dd59f7d"/><file name="afs_facet_default.php" hash="cbcb5d28b7b00815ce5248017065e84b"/><file name="afs_facet_exception.php" hash="f1f0afdbf9a727b53c4731e5a40ac417"/><file name="afs_facet_helper.php" hash="63bf1e4b92cf1e1bdf06b7da54afd5f9"/><file name="afs_facet_helper_retriever.php" hash="5628cc41c50ab25fd3336df302d903f4"/><file name="afs_facet_layout.php" hash="c83f6fef1c13ba3cda667c611841ff87"/><file name="afs_facet_manager.php" hash="3f022435274cbb500699ea054461f4bf"/><file name="afs_facet_mode.php" hash="17f17d277168a017e66364be5ac85394"/><file name="afs_facet_sort.php" hash="0d7ba4059b10da9981b9c801355cb874"/><file name="afs_facet_type.php" hash="6df82cbfa627629f9523437994d1fbb1"/><file name="afs_facet_value_formatter.php" hash="d6580281f9ef5c0820615ac385aae863"/><file name="afs_facet_values_sort_mode.php" hash="17def98365132c810515f8cf3c6fb006"/><file name="afs_facet_values_sort_order.php" hash="f95f77cb5dd7015e4f2e6094ddba49a6"/><file name="afs_feed_coder.php" hash="0df08c2d4e30c9b99d56ce7fdbc1b40b"/><file name="afs_filter_coder.php" hash="6a528ece8d5999aab9eb0fffabea25e3"/><file name="afs_header_helper.php" hash="3b30d839efe9128773c82d47cbd591b8"/><file name="afs_helper_configuration.php" hash="dbd0378574fbc5729babfbddfef0fd67"/><file name="afs_interval.php" hash="dbf9749881be0a2b063f8a33dff214f3"/><file name="afs_interval_exception.php" hash="40f223de231df03aae59596c1a493065"/><file name="afs_meta_helper.php" hash="8403689868c98db725ebd11748508c8b"/><file name="afs_pager_helper.php" hash="8e93f8c060d2fedabbcbad5607a27807"/><file name="afs_producer.php" hash="7c8c515ccb8126523fa0d09a7f759dd5"/><file name="afs_promote_reply_helper.php" hash="b582c3064f0dff62514e28e91d715cf9"/><file name="afs_promote_replyset_helper.php" hash="fdefc6f8a686addb31ea9b6c0a3fa5ad"/><file name="afs_query.php" hash="015bc3e7d007943708f064a34582d6ef"/><file name="afs_query_coder.php" hash="87021c05f45168f11eae4045b999b347"/><file name="afs_query_coder_interface.php" hash="dd16f17b3606a7418c1c714475b19b51"/><file name="afs_query_object_interface.php" hash="a9af13e2c856e4136ccadfff60f72d36"/><file name="afs_raw_text_visitor.php" hash="fd574583c4c9110165c1cadc67b832de"/><file name="afs_reply_helper.php" hash="04a65217b88a53a951d687455986b2a6"/><file name="afs_reply_helper_factory.php" hash="119fba6f39a19ef27fb8c864158cc7a2"/><file name="afs_replyset_helper.php" hash="190b08443559c28a204e8cfb6826d441"/><file name="afs_response_exception.php" hash="0a865bb92fb700ae555dcb5ae675f644"/><file name="afs_response_helper.php" hash="1805fd45c11ef77121867bb84850bedd"/><file name="afs_search.php" hash="11770cf52edd84331988bf61228ab24a"/><file name="afs_search_connector.php" hash="17242fb6536f4596b2c0198a16986310"/><file name="afs_search_query_manager.php" hash="91ee821f87eaeb9f14d5313a19b3f807"/><file name="afs_sort_builtins.php" hash="0cc1617a62f1a834a28d7d2ac249b081"/><file name="afs_sort_coder.php" hash="543015ed1d40caa40317a231476ea06c"/><file name="afs_sort_order.php" hash="7755deb99386650c9974871474168cda"/><file name="afs_spellcheck_helper.php" hash="bb5465848ada7a9df9875f2565fb9686"/><file name="afs_spellcheck_text_helper.php" hash="3ca5c3118660aa600aadb504ceff6c4c"/><file name="afs_spellcheck_text_visitor.php" hash="c44c23ae21f61b065e457911bbc45ed2"/><file name="afs_text_helper.php" hash="59c4ae24560948c3af0f4adbf6bd1803"/><file name="afs_text_visitor.php" hash="867b44a280403cd4567358ec6d59588a"/></dir><file name="afs_configuration_base.php" hash="f26dd9efda4923cc2c71057f21be97d9"/><file name="afs_connector.php" hash="3e000a037ca1d64587a90f53dd6c888b"/><file name="afs_exception.php" hash="c1840fe279f9cb313cec151012ed4513"/><file name="afs_origin.php" hash="a6b7e39a687210572c116afcbea0e7cb"/><file name="afs_query_base.php" hash="63b8fba7bb5c17150e4af0e765deab27"/><file name="afs_response_helper_base.php" hash="b087f7bdad35ed0526566042ef9afc8c"/></dir><dir name="AIF"><file name="Makefile" hash="2d232abf9913fcabb44033d5e5d1ebfd"/><dir name="TEST"><file name="Makefile" hash="24d3030d27e88732028d14fb1d81c203"/><file name="afsMultipartResponseTest.php" hash="70a64d0d599ea01806fac2126fb3680a"/><file name="authenticationTest.php" hash="2e476e9ab15ee221ddd63bb555262a28"/><file name="bowsInformationTest.php" hash="3bbfe71f431a35f0285afdca40906874"/><file name="documentManagerTest.php" hash="ad90a6146f5aeee383355bb05425b3dd"/><file name="documentTest.php" hash="59b204b10b90cd764b259ad4c2bc043a"/><file name="pafConnectorTest.php" hash="ac2928b501d9ea167af43dbf3adafa7d"/><file name="pafLiveTest.php" hash="92862c31d151c34b2caf44bff9d0fb80"/></dir><file name="afs_about_connector.php" hash="8972264a9b7cce237ad1a4b47852b529"/><file name="afs_authentication.php" hash="4285035550c9681a047b85abbca64936"/><file name="afs_bows_connector.php" hash="47a6bcafd5eba2361d2cea409f60d3f7"/><file name="afs_bows_connector_interface.php" hash="8fdf9749f0500a39741d696feb55af14"/><file name="afs_bows_exception.php" hash="1bd8657a37b8b4a9e08bfc4eb6b7e416"/><file name="afs_bows_information.php" hash="1f96a4cd84b2332f1186f9e0cea8542d"/><file name="afs_bows_information_cache.php" hash="1ae9a9243342c4e58a52e70473b68472"/><file name="afs_document.php" hash="6a04f43252f67f6dd90cc23d03fa2b63"/><file name="afs_document_manager.php" hash="8c5c0105d9337b7ae6a9f041f643ea88"/><file name="afs_multipart_response.php" hash="f2077c9eaf121fabdb2fc26c23b2e256"/><file name="afs_paf_connector.php" hash="96111b0536c83874b7c06ada5577106b"/><file name="afs_paf_live_connector.php" hash="9efeb2716f6d95e666f9c37726869fe7"/><file name="afs_paf_upload_reply.php" hash="0cb4905d1c894637d5e6acbd2cffc112"/><file name="afs_token_authentication.php" hash="1f003310f156f0a71db1d273375172d8"/><file name="afs_user_authentication.php" hash="03deeead93ee32753f2f7f80cfc011f4"/></dir><dir name="COMMON"><file name="Makefile" hash="7bb31592939024f74745d6b6cb7fec0b"/><dir name="TEST"><file name="Makefile" hash="d568cfe3683543f363312aa4b6d2bbad"/><file name="languageTest.php" hash="ad0f75b1c2f320c81eba32cade86191c"/><file name="toolsTest.php" hash="9276cb1a275d697f8e8365f2ac340cdf"/><file name="userSessionManagerTest.php" hash="b2b78d6fa156f1a61065f8ee5bfc6e0b"/></dir><file name="afs_connector_base.php" hash="b6b1f091ec71e5b92e4a1e5ca958255f"/><file name="afs_connector_interface.php" hash="68ad5e20a861b85dbf198f79cd2afd4c"/><file name="afs_exception.php" hash="c45bcd565a4124da5d6b23a21d5845a5"/><file name="afs_helper_base.php" hash="839cca78a663c3a22b4a8e35d1460129"/><file name="afs_helper_format.php" hash="30a3f6e945db7412ef95e83e7b0b5898"/><file name="afs_language.php" hash="277acb15b86089b37c812c47f2141d3c"/><file name="afs_service.php" hash="12c00c906e130860120552c40fa9dbc2"/><file name="afs_service_status.php" hash="1dee172850a76b46987534df89013878"/><file name="afs_tools.php" hash="26f6c01c5a61987925385e7a35260399"/><file name="afs_user_session_manager.php" hash="abd625f6b7b5cecf386dac9d82887764"/><file name="afs_versions.php" hash="29dda789ed7b363dc512e3c52a9d80ce"/><dir name="php-SAI"><file name="README.md" hash="63ab581c83fe44918e6d074e20f08f95"/><dir name="lib"><dir name="Curl"><file name="Handle.php" hash="0fc7132737da7cee7df6b974447864ac"/></dir><file name="Curl.php" hash="358e4d3afca2035ee4d3f99f372ed15a"/><file name="CurlInterface.php" hash="714fa045dd4546d0c92cd022efb09422"/><file name="CurlStub.php" hash="fbdc0ece6321c5b5a1e27a65449f4a1f"/><dir name="rb_temp"><file name="HttpClient.php" hash="091b91c98acf9f1cd6c3d6d75cddfb88"/><file name="MultiCurl.php" hash="916e85d73bae6e136f889166ebc6db17"/><file name="SimpleCurl.php" hash="c296966a8bda96e03b464a1d3a9c8e06"/></dir></dir><dir name="tests"><file name="SAI_CurlStubTest.php" hash="bce69cbb17a40bd4eeba6bad1133216e"/></dir><file name=".gitignore" hash="455ed27e3ee2636761d16f833e4d3984"/></dir></dir><file name="COPYING" hash="b234ee4d69f5fce4486a80fdaf4a4263"/><file name="COPYING.LESSER" hash="4fbd65380cdd255951079008b364516c"/><file name="FAQ.md" hash="7d7c886674d70a0047303c5d93de6165"/><file name="Makefile" hash="225475a5a4a0204cecbb77621ff38bb2"/><file name="README.md" hash="c38fa0e7c5aa391c2842affdf89c4795"/><file name="afs_lib.doxygen" hash="4f5839371b1b6ba64f76029bc5865dbf"/><file name="afs_lib.php" hash="4e93523d71e8b083654ac85cb24f8c68"/><file name="afs_version.php" hash="c8db9ed5ee1881b6e31a60a471a81b8a"/><dir name="doc"><file name="afs_filter_documentation.dox" hash="3bf4b96e25d95ce5953b822038c6f135"/><file name="afs_paf_upload.dox" hash="d36893db0234f171e6cfb43f6e13d47c"/><file name="afs_search.dox" hash="b1c5ab8728703822f910852cd17561f4"/><file name="afs_search_coder.dox" hash="77709e1bc691301017f0982e0348a9b9"/><file name="afs_search_query.dox" hash="21dcd1734a165a4cb3b4f62c42a6a0be"/><file name="afs_search_reply.dox" hash="cdb1d42447671f4352927b40b3f8f37d"/><dir name="data"><file name="acp_helper_example.php" hash="2815890e7afbae78e7eb4e6fc5c88f6f"/><file name="full_example.php" hash="e152a964d06e55de460c596070c714d8"/><file name="full_lightweight_example.php" hash="eac3bb2d251052f547a9f737e5cd0461"/><file name="raw_example.php" hash="ed86e971114243f3b28fa39bcaa972b8"/><dir name="templates"><file name="error_template.html" hash="70f44bd0f45470d379a11d0a2fe507e4"/><file name="facet_template.html" hash="6836005a7dae45e9415273f1eb6b78e2"/><file name="facet_values_template.html" hash="9b41f2b55a1cecae5724b4fcd4a46cfb"/><file name="meta_template.html" hash="e664a3bb222d272ce2451fb10bf46de4"/><file name="pager_template.html" hash="2700ab5b60a1f9553b1c39374fda63d4"/><file name="result_template.html" hash="1572a4ef4e8dda0b3db1ea77bbed4a98"/><file name="spellcheck_template.html" hash="8042054a1f5a271b47c77f81436c4791"/></dir></dir><file name="detailled_integration_example_with_template.dox" hash="26ef377a6ef546b636a0e254d11d01f5"/><file name="lightweight_integration_example_with_template.dox" hash="5a388d2dbfad63ad6ec353407b79a6bb"/><file name="logo-antidot-long-200x41.png" hash="1ceac3fff767fb5e395bd767344a3d13"/><file name="main.dox" hash="ca3e97f95deead927fb3298ecafbad5e"/><file name="raw_integration_example.dox" hash="56a7126d008c2e49abdf9bf0b5ec9717"/><file name="template_prerequisites.dox" hash="baa24a943e19ff3654227850bd316abb"/><file name="templates_in_details.dox" hash="5e8db94382f1fbd6c4e0b424a9edc9a3"/></dir><file name="rules.mk" hash="9e3570d254b92d571849718d98492192"/><dir name="scripts"><file name="gen_doc.sh" hash="0f6fc60aca94da563397d3c710bd9d33"/><file name="increment_version.sh" hash="431db9c60d2f94d251be07957787fcb0"/><file name="print_version.sh" hash="a05ddc19cd27ff185721fe2bd0cffc25"/><file name="version_management.sh" hash="3d5ecd39f45ba081144b3033dbd14330"/></dir><file name=".gitignore" hash="14de6527ce1e67cea1543b75a2322165"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="mdn"><dir name="antidot"><file name="CollapsibleLists.css" hash="c956d83facc41a97bf14726dcb953edb"/></dir></dir></dir><dir name="images"><dir name="mdn"><dir name="antidot"><file name="base.gif" hash="1f71b021e061a4948d69adc4ff10ccad"/><file name="button-closed.png" hash="563b78324e0712c0902cb4f77cb9eb86"/><file name="button-open.png" hash="c710849a0d2b61ad1f0fc36c0e59d131"/><file name="button.png" hash="97f3055c5046c851eea2dad7e5227508"/><file name="cd.gif" hash="f41037663522fab5c5c31530c7fa43d8"/><file name="empty.gif" hash="df22aff6e941ff1cc577333d1712b584"/><file name="folder.gif" hash="ea16980ab437fa6ba4aba3d480e83e9e"/><file name="folderopen.gif" hash="18aa3d75315bf95bf080357733437fcc"/><file name="globe.gif" hash="d6b48614cf8dc9553e077c19197637d2"/><file name="imgfolder.gif" hash="1d488d377762e65ab4e8b691ba01e5a4"/><file name="join.gif" hash="4d5d614e0da056df815a4306d6368692"/><file name="joinbottom.gif" hash="4b3daa7f2cc584f1aac0d142275d7cba"/><file name="line.gif" hash="63ab38a6203262f15ca46c631232ea2c"/><file name="list-item-contents.png" hash="00ae24d5bc76df9eedaea597859963e4"/><file name="list-item-last-open.png" hash="615ddd71f81b240e9ed7d4e383b2c01a"/><file name="list-item-last.png" hash="e2bfb790f46855c378e50f3c0a82ea01"/><file name="list-item-open.png" hash="732d1cc59f3a488c89c624eb434eac98"/><file name="list-item-root.png" hash="5529d21e7ec68e9cb750a4895ff0b480"/><file name="list-item.png" hash="e03ec1bf3d9e16bb3005ccf8d26eaa6c"/><file name="minus.gif" hash="d647fbbd0ec410b8f3bb3357b62eedcf"/><file name="minusbottom.gif" hash="b09d684cca7135ef728141aaf2464baa"/><file name="musicfolder.gif" hash="21ece951734f23adb2f75befe1f31fc1"/><file name="nolines_minus.gif" hash="eb2243a354ffcfac93ba0fe948f7167d"/><file name="nolines_plus.gif" hash="ec92b634b63608fb4b0dbf114e3b89e1"/><file name="page.gif" hash="c25b136c1cb3bb145495c25b35d93754"/><file name="plus.gif" hash="5c55d798909c553deca31d610bd18fac"/><file name="plusbottom.gif" hash="1924ce363c38a992f888a4df48c0b274"/><file name="question.gif" hash="ea0ca196ce0ebfd625cc1210abfdec6c"/><file name="trash.gif" hash="6cbfd3ed29531044aed9b4edb3cca9ad"/></dir></dir></dir></dir></dir></dir></target></contents>
23
  <compatible/>
24
  <dependencies><required><php><min>5.2.0</min><max>5.6.0</max></php><extension><name>curl</name><min/><max/></extension></required></dependencies>
25
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Antidot_Antidot</name>
4
+ <version>1.0.17</version>
5
  <stability>stable</stability>
6
  <license>LGPL</license>
7
  <channel>community</channel>
17
  Add cdata for variant name&amp;#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-03-13</date>
21
+ <time>11:33:11</time>
22
+ <contents><target name="mage"><dir name="shell"><file name="antidotExport.php" hash="b5719d6cce70f9e3c1b2babc121ea5b1"/><file name="antidotExportCategory.php" hash="c6ec8609a42966292004123d5b40fe6e"/><file name="antidotExportInc.php" hash="1444df084b6f3dfacab5f6038a593e85"/><file name="antidotExportProduct.php" hash="3a6603f997db76b9b11524db6aa2d320"/></dir><dir name="i18n"><file name="de_DE" hash="f166a5ff29213a44fca77277b053897e"/><file name="en_US" hash="63c821044fda6f7c2a26dc84670b25bd"/><file name="es_ES" hash="f9319039054998955d63d51ed0930f3f"/><file name="fr_FR" hash="632367797f2fa9fef06e0b0c69377e01"/><file name="i18n.php" hash="104c26dcc76365069b274fa0e68588ec"/></dir></target><target name="magecommunity"><dir name="MDN"><dir name="Antidot"><dir name="Block"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="c8147e06452988877fd23de97e47ba7d"/><file name="Boolean.php" hash="0d301b2ca3c1c1e60a69dbfc043a8520"/><file name="Category.php" hash="695722041376ff47c15c78b233e32f29"/><file name="Decimal.php" hash="a5a605767a6b3322dcab4715f107b71c"/><file name="Price.php" hash="3e8fe52c943c4d7cc21062ebd63ff9a0"/></dir><file name="View.php" hash="95d6226dc5e264422511bc19dcf23358"/></dir></dir><dir name="Catalogsearch"><file name="Category.php" hash="e7fdd211e62b37cddac5649183e49dfe"/><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="4b7dd735852366d7d999afaf1c5ad4b9"/></dir></dir><file name="Layer.php" hash="c1d43a8ff0930cac311110fb28434e95"/><file name="Result.php" hash="9c3076c2a22ebf198f24f36a6d19f75c"/></dir><dir name="Html"><file name="Select.php" hash="9e12a50fecdc9185fb1f009584368c88"/></dir><dir name="System"><dir name="Config"><dir name="Button"><file name="PushArticles.php" hash="33bcfed4c5d168e8f429cb52b1fbac7d"/><file name="PushBrands.php" hash="d91fa99b4e25d3ac9393f3a4b263f70c"/><file name="PushCategories.php" hash="2968e1ad8329329491768b61fb13063d"/><file name="PushProducts.php" hash="c536d094f60a1789011cbd6dd4ccd94e"/><file name="RestoreTemplate.php" hash="541d3141c4b1a8202e511a0978ec0de1"/><file name="ShowXml.php" hash="c70714536a6d46ce5d056d41fd62ead6"/></dir><dir name="Form"><dir name="Field"><dir name="Array"><file name="Additional.php" hash="a92ccc94d40b2c05ccf4b6dec8882eff"/><file name="ArticleAdditional.php" hash="506594804d3b624523e04481e8925b35"/><file name="ArticleIdentifier.php" hash="6e85e062f65eeed99dd3274cc689c47f"/><file name="DefaultSort.php" hash="d12eb339e80a7b38c111a63aa003ce6e"/><file name="Facet.php" hash="7ffdd3568f12a9495d39b943402dd861"/><file name="Identifier.php" hash="669eb4a937943dec8a577881f3f20d3c"/><file name="ProductAdditionalFacet.php" hash="3fd8f3957e8c364b39258cf32100b70d"/><file name="ProductAdditionalField.php" hash="9c245ddfb26372a9af712815ace7497b"/><file name="ProductIdentifier.php" hash="14dcf3125eae94145df4c802344cbfcd"/><file name="Sort.php" hash="f1a565e63b90a249fbae162fa2b90e54"/></dir><file name="CategoryAttribute.php" hash="6f20dd2ee95865d458ab37318ea47ad5"/><file name="ProductAttribute.php" hash="9475af9768d2f0bd3e8a1078eb3a03f9"/></dir></dir><dir name="Html"><file name="Export.php" hash="9814c5ed5cacb5792020344bf3f6b863"/><file name="ShowXml.php" hash="4b4012d9973dd397a91734f73d09df17"/><file name="Version.php" hash="7e780d7a124dffb964c63e7136bf161a"/></dir></dir></dir></dir><dir name="Helper"><file name="Antidot.php" hash="2acc8b8ab743de5f0872dd5c983ebd67"/><dir name="CatalogSearch"><file name="Data.php" hash="ffbbd7d6f1965fce0403c5a5eda73063"/></dir><file name="Compress.php" hash="7d284da9ec13c64f436817fd65947d32"/><file name="Data.php" hash="36ae4060d3637b4df20b49ec34b136bb"/><dir name="Enterprise"><dir name="Search"><file name="Data.php" hash="8bfe0146c64511f86cb796638b65112f"/></dir></dir><file name="LogExport.php" hash="9bd67e1c49e7b37fc1c0effd22233f26"/><dir name="ManaFilters"><file name="Data.php" hash="e5dd65e6e52c03427aa68528cc1f140a"/></dir><file name="Url.php" hash="156f1fb9c829919144ebb7fd01588f7e"/><file name="XmlWriter.php" hash="91a30b09dd02cd12dd3f1f065476569c"/></dir><dir name="Model"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="4a95baa6605e8d47ecf315c3cbd995b1"/><file name="Boolean.php" hash="7151f37fda430c2ceea55db8e39b0dc4"/><file name="Category.php" hash="062b705848d8be4fbba569c7f6bdfbe5"/><file name="Decimal.php" hash="32dc400184631b7913e68224f9aac9a2"/><file name="Item.php" hash="10cb250f8c2e8a763a18cf16f0f1800e"/><file name="Price.php" hash="946b42279612884380b984fef527a212"/></dir></dir><file name="Layer.php" hash="c83e63e6725830e545ab13890f69c5b7"/></dir><dir name="Catalogsearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="1b5f705dceb4cc62d1e6375332414872"/></dir></dir><file name="Layer.php" hash="e99d8aee533b6179cf0898c08dcdedca"/><dir name="Resource"><file name="Attribute.php" hash="766e331e27af9d114b946e023522956a"/></dir></dir><dir name="Export"><file name="Abstract.php" hash="7f8c2e5383d30259d5957322d5797329"/><file name="Article.php" hash="a724568ff3b207b1ce465310ebd585fa"/><file name="Brand.php" hash="84e0ee8e7760a987c615b079f9f0a28d"/><file name="Category.php" hash="99fb2befa7b91073896ed74702a313b9"/><file name="Product.php" hash="d8066ce44f4cd683f676bd57f21767a8"/></dir><file name="Observer.php" hash="785bfcfc560bec199d0013bea70ec0f1"/><dir name="Resource"><file name="Advanced.php" hash="39a9d8a23da4824b32037b0365669c72"/><dir name="Catalog"><dir name="Product"><file name="Collection.php" hash="a136057b3cd365b36ac7a5f4cc1a7e0d"/></dir></dir><dir name="Engine"><file name="Abstract.php" hash="994a72dea3044cf66ca1ef2b28ec2120"/><file name="Antidot.php" hash="9b974d8077db52d080a92cb8c68bfda8"/></dir></dir><dir name="Search"><file name="Abstract.php" hash="0ccd58da349eca4f5f1fce005f441e5f"/><file name="Search.php" hash="7b01ae94b89b294e0283ce94088f6994"/><file name="Suggest.php" hash="931bbac84d6ecfc565507596d850d598"/></dir><dir name="System"><dir name="Config"><file name="ArticleAttribute.php" hash="1a826cf609a0f0c3c47bf4ef6564de24"/><dir name="Backend"><file name="Engine.php" hash="301dbcfff7ca9034b731443686b85a2e"/></dir><file name="CategoryAttribute.php" hash="7149c1efa8207038d7fd2023c9761c98"/><file name="Dir.php" hash="7df80dbf0ee36504dba95c1d243e88ff"/><file name="DisableEnable.php" hash="903763b2023bb0c8c53ba050a9effc0e"/><file name="Engine.php" hash="8547fb84cbdfb1e61526da1ac79e2d1c"/><file name="Facet.php" hash="0a5274c46a4dde0cbfc803464f35dd28"/><file name="Number.php" hash="addd25d977b6dfdab80e1d010ca3bd12"/><file name="Options.php" hash="341e4677d0a060a63731fb9015d66ae4"/><file name="ProductAttribute.php" hash="f8060f25a70a7e681f5021eedef5dfa8"/><file name="PromoteRedirect.php" hash="9639c16ad74cfc680bd3b727ba2cf331"/><file name="Sort.php" hash="ef8c019fd3ae439e1349d20d229af094"/><dir name="Suggest"><file name="Type.php" hash="f0c083bbaa7fd339832d14937afe1af1"/></dir><file name="WSStatus.php" hash="b469dc276dd3623e51f79ec433791bcc"/></dir></dir><dir name="Transport"><file name="Abstract.php" hash="1c1a1f70c5813872a871f5b558c21360"/><file name="File.php" hash="136190f20ed7f7a340771d3b78f03331"/><file name="Ftp.php" hash="d3fb3cd39a1fb7314757f3f82f8f4f95"/><file name="Http.php" hash="667a6f2d07034604b6ec6f2b48b55332"/><file name="Interface.php" hash="82c6c2d1748439a6850e90f6556fec92"/></dir><file name="Transport.php" hash="663e33aaf620ffd4f05292b4e6f27f42"/></dir><dir name="controllers"><dir name="Admin"><file name="PushController.php" hash="0cb3e55625acd83e255dac46704e82f3"/></dir><dir name="Front"><file name="SearchController.php" hash="c1514fc18b5412a9e9072bcca0352607"/></dir></dir><dir name="etc"><file name="config.xml" hash="5a5036ee21f3465e82671e26bfc2987f"/><file name="system.xml" hash="5eb159f7b09a3e97247d324db7b883b7"/></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="c45d0a82747927c46d886f94ab2304be"/></dir><dir name="de_CH"><file name="MDN_Antidot.csv" hash="c45d0a82747927c46d886f94ab2304be"/></dir><dir name="de_DE"><file name="MDN_Antidot.csv" hash="c45d0a82747927c46d886f94ab2304be"/></dir><dir name="es_AR"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_CL"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_CO"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_CR"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_ES"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_MX"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_PE"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="es_VE"><file name="MDN_Antidot.csv" hash="03913d2a662791641b86b02955ef2c51"/></dir><dir name="fr_CA"><file name="MDN_Antidot.csv" hash="c72a1b1173e18386e86c1fc528965a7e"/></dir><dir name="fr_FR"><file name="MDN_Antidot.csv" hash="1abf2703c391918be00d576c06509285"/></dir></target><target name="mageweb"><dir name="js"><dir name="mdn"><dir name="antidot"><file name="CollapsibleLists.js" hash="86792ecde0c2759ba85e0d863dd147ce"/></dir></dir></dir></target><target name="magelib"><dir name="antidot"><dir name="AFS"><dir name="ACP"><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="acpConnectorTest.php" hash="25a8194f3dc8895640df4f4bba895d8e"/><file name="acpQueryTest.php" hash="74ad65a4af639a409ee72a75a2a043d6"/><file name="acpReplysetHelperTest.php" hash="4f0a0d471a06e139cd11c715b67ebe81"/><file name="acpResponseHelperTest.php" hash="6d30f99108db0d9956aef9ba5e1d88df"/><file name="acpTest.php" hash="d6119d150543e7943ba4e9907901ae5d"/></dir><file name="afs_acp.php" hash="78dbfbc92f68469c92898f1da4263e68"/><file name="afs_acp_configuration.php" hash="2d644cc6c5bf2cdaeca5780576c4bf0e"/><file name="afs_acp_connector.php" hash="cf872314b38a86ebe7bb56b19bce9236"/><file name="afs_acp_exception.php" hash="f610d2cc37a15d4b981d7b43939414ad"/><file name="afs_acp_query.php" hash="ced0629355f5d4fc1c219d1adb03297d"/><file name="afs_acp_query_manager.php" hash="b3348972a850c904fc664b4e27671439"/><file name="afs_acp_reply_helper.php" hash="b0259f24f10d2e92ed6e3b8cdaaacc44"/><file name="afs_acp_replyset_helper.php" hash="07e7fdb88a42a399c96261c47ffb0231"/><file name="afs_acp_response_helper.php" hash="33a66106fd3a94194514a0d8d39af1cd"/></dir><file name="Makefile" hash="7bb31592939024f74745d6b6cb7fec0b"/><dir name="SEARCH"><dir name="FILTER"><file name="Makefile" hash="d42338199c6857ded179af2117b9f571"/><dir name="TEST"><file name="Makefile" hash="ab37090c6c5e7af1b260376237737700"/><file name="filterBuilderTest.php" hash="161ff5c8e73914eef884d17456afa133"/><file name="filterCombinationTest.php" hash="2162288d5255d3b24fe94d75b939aa51"/><file name="filterTest.php" hash="1682c0a4d50158a8d2c9369d30e45a18"/><file name="groupFilterTest.php" hash="1ebe8ce7344ed64b93cf94632d3b0184"/></dir><file name="afs_combinable_filter.php" hash="336e6c6bc9ebae3f58602d23ef734182"/><file name="afs_combinator_filter.php" hash="e2fc560b9c0c31f20c73f2057a8b7b69"/><file name="afs_filter.php" hash="1efc032fd2615c82c350f69ba11860fa"/><file name="afs_filter_exception.php" hash="ccce583c63a4a65f7f0a27fc4a487505"/><file name="afs_filter_wrapper.php" hash="30dec104456abc037019ad93922b5afd"/><file name="afs_group_filter.php" hash="b95fa3bc0e26bc39dfc53a6010bce32f"/><file name="afs_operator_filter.php" hash="c7ea43c8d64eedbe33397f61737e0226"/><file name="afs_valued_filter.php" hash="483653071734f77972c9b9771e187d82"/></dir><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="clientDataHelperTest.php" hash="523abcf4ab7a42e16c39c2b02bae927c"/><file name="clusterHelperTest.php" hash="e112e7c756f63c8e8ceb554281b418c9"/><file name="conceptHelperTest.php" hash="b44e39b62d0537bf1f7b7feb23f8111f"/><file name="facetDefaultTest.php" hash="382e4ea35e1c7173371b4a84046a38e5"/><file name="facetHelperTest.php" hash="2c6fbec3f1d4dd6e37c089ac835a88b0"/><file name="facetManagerTest.php" hash="bbef8e207c387dbe6a26142fd55264d5"/><file name="facetTest.php" hash="f0264af2550394a4a3d944bc86dac667"/><file name="facetValuesSortOrderTest.php" hash="b650080bf9b2cce2ac42a245cb84c911"/><file name="feedCoderTest.php" hash="f2b5dfdd4fa3c4e5d14c790d15235146"/><file name="filterCoderTest.php" hash="46249fa13edccf1e5d5000daf2573b77"/><file name="headerHelperTest.php" hash="62185c34e1e9015bb12014d719287f06"/><file name="helperConfigurationTest.php" hash="be3f74e53e27744e8214f3c341172796"/><file name="intervalTest.php" hash="912389dad049853f6bf0b4eab2af5034"/><file name="metaHelperTest.php" hash="080f160b54636c4eee743544a6a12bee"/><file name="pagerHelperTest.php" hash="b756d39c29c1d3cfb2733ab13062542e"/><file name="promoteReplyHelperTest.php" hash="7cbb68a7f50c2bd2ef11a085ac94deb2"/><file name="promoteReplysetHelperTest.php" hash="749180b072997539d322c88c97c586d6"/><file name="queryCoderTest.php" hash="064979c30a7e215c486e34abce79b1b5"/><file name="queryTest.php" hash="c48bc5a88a788bbc4a26604b86d60454"/><file name="replyHelperTest.php" hash="5b3cfec02c640282bf4fec92353801d6"/><file name="replysetHelperTest.php" hash="fdb55d9a09f9198fb26b5fab3edc58c3"/><file name="responseHelperTest.php" hash="35969ff7882d97b93aa874fafd4b55c3"/><file name="searchConnectorTest.php" hash="9201de573884b643041b6c32bc535e7e"/><file name="searchQueryManagerTest.php" hash="2334d06f4247abfd69c2b4dc842cc404"/><file name="searchTest.php" hash="eeb7a86bd5b48108434fb93da4e0c0f2"/><file name="spellcheckHelperTest.php" hash="49960fb90055dcf265ef41e491c11325"/><file name="spellcheckTextVisitorTest.php" hash="203f0d08f548a39135517a41f6e9e43a"/><file name="textVisitorTest.php" hash="b722845dd0f5f953574cb51284ad025b"/></dir><file name="afs_base_reply_helper.php" hash="c1c3961f3cc03924fda382adf6e6c419"/><file name="afs_base_replyset_helper.php" hash="096b124a3ebdc6e8d6beb359bd8bb7c5"/><file name="afs_client_data_exception.php" hash="899957af974d04aa7eaca44903a7f86c"/><file name="afs_client_data_helper.php" hash="b2383fc244d6bbcda6de7387ae7b1b0d"/><file name="afs_cluster_exception.php" hash="86d97623db7aebaa28a20857ce2cf17f"/><file name="afs_cluster_helper.php" hash="60b7fbcc869a672929ef9fc6d840d2b2"/><file name="afs_coder_base.php" hash="fb87fbea43d12695154b3b6102e2a019"/><file name="afs_coder_interface.php" hash="3b179b2513e215751ee4edd190b2a719"/><file name="afs_concept_helper.php" hash="982cf3d2063c565cf19cc6136b049066"/><file name="afs_count.php" hash="9f83f3baa3cf4462c0db786f4eea479a"/><file name="afs_facet.php" hash="b5d89249e71741b0558dbb762ad1a077"/><file name="afs_facet_combination.php" hash="005e9742ee032194b86856195dd59f7d"/><file name="afs_facet_default.php" hash="cbcb5d28b7b00815ce5248017065e84b"/><file name="afs_facet_exception.php" hash="f1f0afdbf9a727b53c4731e5a40ac417"/><file name="afs_facet_helper.php" hash="63bf1e4b92cf1e1bdf06b7da54afd5f9"/><file name="afs_facet_helper_retriever.php" hash="5628cc41c50ab25fd3336df302d903f4"/><file name="afs_facet_layout.php" hash="c83f6fef1c13ba3cda667c611841ff87"/><file name="afs_facet_manager.php" hash="3f022435274cbb500699ea054461f4bf"/><file name="afs_facet_mode.php" hash="17f17d277168a017e66364be5ac85394"/><file name="afs_facet_sort.php" hash="0d7ba4059b10da9981b9c801355cb874"/><file name="afs_facet_type.php" hash="6df82cbfa627629f9523437994d1fbb1"/><file name="afs_facet_value_formatter.php" hash="d6580281f9ef5c0820615ac385aae863"/><file name="afs_facet_values_sort_mode.php" hash="17def98365132c810515f8cf3c6fb006"/><file name="afs_facet_values_sort_order.php" hash="f95f77cb5dd7015e4f2e6094ddba49a6"/><file name="afs_feed_coder.php" hash="0df08c2d4e30c9b99d56ce7fdbc1b40b"/><file name="afs_filter_coder.php" hash="6a528ece8d5999aab9eb0fffabea25e3"/><file name="afs_header_helper.php" hash="3b30d839efe9128773c82d47cbd591b8"/><file name="afs_helper_configuration.php" hash="dbd0378574fbc5729babfbddfef0fd67"/><file name="afs_interval.php" hash="dbf9749881be0a2b063f8a33dff214f3"/><file name="afs_interval_exception.php" hash="40f223de231df03aae59596c1a493065"/><file name="afs_meta_helper.php" hash="8403689868c98db725ebd11748508c8b"/><file name="afs_pager_helper.php" hash="8e93f8c060d2fedabbcbad5607a27807"/><file name="afs_producer.php" hash="7c8c515ccb8126523fa0d09a7f759dd5"/><file name="afs_promote_reply_helper.php" hash="b582c3064f0dff62514e28e91d715cf9"/><file name="afs_promote_replyset_helper.php" hash="fdefc6f8a686addb31ea9b6c0a3fa5ad"/><file name="afs_query.php" hash="015bc3e7d007943708f064a34582d6ef"/><file name="afs_query_coder.php" hash="87021c05f45168f11eae4045b999b347"/><file name="afs_query_coder_interface.php" hash="dd16f17b3606a7418c1c714475b19b51"/><file name="afs_query_object_interface.php" hash="a9af13e2c856e4136ccadfff60f72d36"/><file name="afs_raw_text_visitor.php" hash="fd574583c4c9110165c1cadc67b832de"/><file name="afs_reply_helper.php" hash="04a65217b88a53a951d687455986b2a6"/><file name="afs_reply_helper_factory.php" hash="119fba6f39a19ef27fb8c864158cc7a2"/><file name="afs_replyset_helper.php" hash="190b08443559c28a204e8cfb6826d441"/><file name="afs_response_exception.php" hash="0a865bb92fb700ae555dcb5ae675f644"/><file name="afs_response_helper.php" hash="1805fd45c11ef77121867bb84850bedd"/><file name="afs_search.php" hash="11770cf52edd84331988bf61228ab24a"/><file name="afs_search_connector.php" hash="17242fb6536f4596b2c0198a16986310"/><file name="afs_search_query_manager.php" hash="91ee821f87eaeb9f14d5313a19b3f807"/><file name="afs_sort_builtins.php" hash="0cc1617a62f1a834a28d7d2ac249b081"/><file name="afs_sort_coder.php" hash="543015ed1d40caa40317a231476ea06c"/><file name="afs_sort_order.php" hash="7755deb99386650c9974871474168cda"/><file name="afs_spellcheck_helper.php" hash="bb5465848ada7a9df9875f2565fb9686"/><file name="afs_spellcheck_text_helper.php" hash="3ca5c3118660aa600aadb504ceff6c4c"/><file name="afs_spellcheck_text_visitor.php" hash="c44c23ae21f61b065e457911bbc45ed2"/><file name="afs_text_helper.php" hash="59c4ae24560948c3af0f4adbf6bd1803"/><file name="afs_text_visitor.php" hash="867b44a280403cd4567358ec6d59588a"/></dir><file name="afs_configuration_base.php" hash="f26dd9efda4923cc2c71057f21be97d9"/><file name="afs_connector.php" hash="3e000a037ca1d64587a90f53dd6c888b"/><file name="afs_exception.php" hash="c1840fe279f9cb313cec151012ed4513"/><file name="afs_origin.php" hash="a6b7e39a687210572c116afcbea0e7cb"/><file name="afs_query_base.php" hash="63b8fba7bb5c17150e4af0e765deab27"/><file name="afs_response_helper_base.php" hash="b087f7bdad35ed0526566042ef9afc8c"/></dir><dir name="AIF"><file name="Makefile" hash="2d232abf9913fcabb44033d5e5d1ebfd"/><dir name="TEST"><file name="Makefile" hash="24d3030d27e88732028d14fb1d81c203"/><file name="afsMultipartResponseTest.php" hash="70a64d0d599ea01806fac2126fb3680a"/><file name="authenticationTest.php" hash="2e476e9ab15ee221ddd63bb555262a28"/><file name="bowsInformationTest.php" hash="3bbfe71f431a35f0285afdca40906874"/><file name="documentManagerTest.php" hash="ad90a6146f5aeee383355bb05425b3dd"/><file name="documentTest.php" hash="59b204b10b90cd764b259ad4c2bc043a"/><file name="pafConnectorTest.php" hash="ac2928b501d9ea167af43dbf3adafa7d"/><file name="pafLiveTest.php" hash="92862c31d151c34b2caf44bff9d0fb80"/></dir><file name="afs_about_connector.php" hash="8972264a9b7cce237ad1a4b47852b529"/><file name="afs_authentication.php" hash="4285035550c9681a047b85abbca64936"/><file name="afs_bows_connector.php" hash="47a6bcafd5eba2361d2cea409f60d3f7"/><file name="afs_bows_connector_interface.php" hash="8fdf9749f0500a39741d696feb55af14"/><file name="afs_bows_exception.php" hash="1bd8657a37b8b4a9e08bfc4eb6b7e416"/><file name="afs_bows_information.php" hash="1f96a4cd84b2332f1186f9e0cea8542d"/><file name="afs_bows_information_cache.php" hash="1ae9a9243342c4e58a52e70473b68472"/><file name="afs_document.php" hash="6a04f43252f67f6dd90cc23d03fa2b63"/><file name="afs_document_manager.php" hash="8c5c0105d9337b7ae6a9f041f643ea88"/><file name="afs_multipart_response.php" hash="f2077c9eaf121fabdb2fc26c23b2e256"/><file name="afs_paf_connector.php" hash="96111b0536c83874b7c06ada5577106b"/><file name="afs_paf_live_connector.php" hash="9efeb2716f6d95e666f9c37726869fe7"/><file name="afs_paf_upload_reply.php" hash="0cb4905d1c894637d5e6acbd2cffc112"/><file name="afs_token_authentication.php" hash="1f003310f156f0a71db1d273375172d8"/><file name="afs_user_authentication.php" hash="03deeead93ee32753f2f7f80cfc011f4"/></dir><dir name="COMMON"><file name="Makefile" hash="7bb31592939024f74745d6b6cb7fec0b"/><dir name="TEST"><file name="Makefile" hash="d568cfe3683543f363312aa4b6d2bbad"/><file name="languageTest.php" hash="ad0f75b1c2f320c81eba32cade86191c"/><file name="toolsTest.php" hash="9276cb1a275d697f8e8365f2ac340cdf"/><file name="userSessionManagerTest.php" hash="b2b78d6fa156f1a61065f8ee5bfc6e0b"/></dir><file name="afs_connector_base.php" hash="b6b1f091ec71e5b92e4a1e5ca958255f"/><file name="afs_connector_interface.php" hash="68ad5e20a861b85dbf198f79cd2afd4c"/><file name="afs_exception.php" hash="c45bcd565a4124da5d6b23a21d5845a5"/><file name="afs_helper_base.php" hash="839cca78a663c3a22b4a8e35d1460129"/><file name="afs_helper_format.php" hash="30a3f6e945db7412ef95e83e7b0b5898"/><file name="afs_language.php" hash="277acb15b86089b37c812c47f2141d3c"/><file name="afs_service.php" hash="12c00c906e130860120552c40fa9dbc2"/><file name="afs_service_status.php" hash="1dee172850a76b46987534df89013878"/><file name="afs_tools.php" hash="26f6c01c5a61987925385e7a35260399"/><file name="afs_user_session_manager.php" hash="abd625f6b7b5cecf386dac9d82887764"/><file name="afs_versions.php" hash="29dda789ed7b363dc512e3c52a9d80ce"/><dir name="php-SAI"><file name="README.md" hash="63ab581c83fe44918e6d074e20f08f95"/><dir name="lib"><dir name="Curl"><file name="Handle.php" hash="0fc7132737da7cee7df6b974447864ac"/></dir><file name="Curl.php" hash="358e4d3afca2035ee4d3f99f372ed15a"/><file name="CurlInterface.php" hash="714fa045dd4546d0c92cd022efb09422"/><file name="CurlStub.php" hash="fbdc0ece6321c5b5a1e27a65449f4a1f"/><dir name="rb_temp"><file name="HttpClient.php" hash="091b91c98acf9f1cd6c3d6d75cddfb88"/><file name="MultiCurl.php" hash="916e85d73bae6e136f889166ebc6db17"/><file name="SimpleCurl.php" hash="c296966a8bda96e03b464a1d3a9c8e06"/></dir></dir><dir name="tests"><file name="SAI_CurlStubTest.php" hash="bce69cbb17a40bd4eeba6bad1133216e"/></dir><file name=".gitignore" hash="455ed27e3ee2636761d16f833e4d3984"/></dir></dir><file name="COPYING" hash="b234ee4d69f5fce4486a80fdaf4a4263"/><file name="COPYING.LESSER" hash="4fbd65380cdd255951079008b364516c"/><file name="FAQ.md" hash="7d7c886674d70a0047303c5d93de6165"/><file name="Makefile" hash="225475a5a4a0204cecbb77621ff38bb2"/><file name="README.md" hash="c38fa0e7c5aa391c2842affdf89c4795"/><file name="afs_lib.doxygen" hash="4f5839371b1b6ba64f76029bc5865dbf"/><file name="afs_lib.php" hash="4e93523d71e8b083654ac85cb24f8c68"/><file name="afs_version.php" hash="c8db9ed5ee1881b6e31a60a471a81b8a"/><dir name="doc"><file name="afs_filter_documentation.dox" hash="3bf4b96e25d95ce5953b822038c6f135"/><file name="afs_paf_upload.dox" hash="d36893db0234f171e6cfb43f6e13d47c"/><file name="afs_search.dox" hash="b1c5ab8728703822f910852cd17561f4"/><file name="afs_search_coder.dox" hash="77709e1bc691301017f0982e0348a9b9"/><file name="afs_search_query.dox" hash="21dcd1734a165a4cb3b4f62c42a6a0be"/><file name="afs_search_reply.dox" hash="cdb1d42447671f4352927b40b3f8f37d"/><dir name="data"><file name="acp_helper_example.php" hash="2815890e7afbae78e7eb4e6fc5c88f6f"/><file name="full_example.php" hash="e152a964d06e55de460c596070c714d8"/><file name="full_lightweight_example.php" hash="eac3bb2d251052f547a9f737e5cd0461"/><file name="raw_example.php" hash="ed86e971114243f3b28fa39bcaa972b8"/><dir name="templates"><file name="error_template.html" hash="70f44bd0f45470d379a11d0a2fe507e4"/><file name="facet_template.html" hash="6836005a7dae45e9415273f1eb6b78e2"/><file name="facet_values_template.html" hash="9b41f2b55a1cecae5724b4fcd4a46cfb"/><file name="meta_template.html" hash="e664a3bb222d272ce2451fb10bf46de4"/><file name="pager_template.html" hash="2700ab5b60a1f9553b1c39374fda63d4"/><file name="result_template.html" hash="1572a4ef4e8dda0b3db1ea77bbed4a98"/><file name="spellcheck_template.html" hash="8042054a1f5a271b47c77f81436c4791"/></dir></dir><file name="detailled_integration_example_with_template.dox" hash="26ef377a6ef546b636a0e254d11d01f5"/><file name="lightweight_integration_example_with_template.dox" hash="5a388d2dbfad63ad6ec353407b79a6bb"/><file name="logo-antidot-long-200x41.png" hash="1ceac3fff767fb5e395bd767344a3d13"/><file name="main.dox" hash="ca3e97f95deead927fb3298ecafbad5e"/><file name="raw_integration_example.dox" hash="56a7126d008c2e49abdf9bf0b5ec9717"/><file name="template_prerequisites.dox" hash="baa24a943e19ff3654227850bd316abb"/><file name="templates_in_details.dox" hash="5e8db94382f1fbd6c4e0b424a9edc9a3"/></dir><file name="rules.mk" hash="9e3570d254b92d571849718d98492192"/><dir name="scripts"><file name="gen_doc.sh" hash="0f6fc60aca94da563397d3c710bd9d33"/><file name="increment_version.sh" hash="431db9c60d2f94d251be07957787fcb0"/><file name="print_version.sh" hash="a05ddc19cd27ff185721fe2bd0cffc25"/><file name="version_management.sh" hash="3d5ecd39f45ba081144b3033dbd14330"/></dir><file name=".gitignore" hash="14de6527ce1e67cea1543b75a2322165"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="mdn"><dir name="antidot"><file name="CollapsibleLists.css" hash="c956d83facc41a97bf14726dcb953edb"/></dir></dir></dir><dir name="images"><dir name="mdn"><dir name="antidot"><file name="base.gif" hash="1f71b021e061a4948d69adc4ff10ccad"/><file name="button-closed.png" hash="563b78324e0712c0902cb4f77cb9eb86"/><file name="button-open.png" hash="c710849a0d2b61ad1f0fc36c0e59d131"/><file name="button.png" hash="97f3055c5046c851eea2dad7e5227508"/><file name="cd.gif" hash="f41037663522fab5c5c31530c7fa43d8"/><file name="empty.gif" hash="df22aff6e941ff1cc577333d1712b584"/><file name="folder.gif" hash="ea16980ab437fa6ba4aba3d480e83e9e"/><file name="folderopen.gif" hash="18aa3d75315bf95bf080357733437fcc"/><file name="globe.gif" hash="d6b48614cf8dc9553e077c19197637d2"/><file name="imgfolder.gif" hash="1d488d377762e65ab4e8b691ba01e5a4"/><file name="join.gif" hash="4d5d614e0da056df815a4306d6368692"/><file name="joinbottom.gif" hash="4b3daa7f2cc584f1aac0d142275d7cba"/><file name="line.gif" hash="63ab38a6203262f15ca46c631232ea2c"/><file name="list-item-contents.png" hash="00ae24d5bc76df9eedaea597859963e4"/><file name="list-item-last-open.png" hash="615ddd71f81b240e9ed7d4e383b2c01a"/><file name="list-item-last.png" hash="e2bfb790f46855c378e50f3c0a82ea01"/><file name="list-item-open.png" hash="732d1cc59f3a488c89c624eb434eac98"/><file name="list-item-root.png" hash="5529d21e7ec68e9cb750a4895ff0b480"/><file name="list-item.png" hash="e03ec1bf3d9e16bb3005ccf8d26eaa6c"/><file name="minus.gif" hash="d647fbbd0ec410b8f3bb3357b62eedcf"/><file name="minusbottom.gif" hash="b09d684cca7135ef728141aaf2464baa"/><file name="musicfolder.gif" hash="21ece951734f23adb2f75befe1f31fc1"/><file name="nolines_minus.gif" hash="eb2243a354ffcfac93ba0fe948f7167d"/><file name="nolines_plus.gif" hash="ec92b634b63608fb4b0dbf114e3b89e1"/><file name="page.gif" hash="c25b136c1cb3bb145495c25b35d93754"/><file name="plus.gif" hash="5c55d798909c553deca31d610bd18fac"/><file name="plusbottom.gif" hash="1924ce363c38a992f888a4df48c0b274"/><file name="question.gif" hash="ea0ca196ce0ebfd625cc1210abfdec6c"/><file name="trash.gif" hash="6cbfd3ed29531044aed9b4edb3cca9ad"/></dir></dir></dir></dir></dir></dir></target></contents>
23
  <compatible/>
24
  <dependencies><required><php><min>5.2.0</min><max>5.6.0</max></php><extension><name>curl</name><min/><max/></extension></required></dependencies>
25
  </package>