Antidot_Antidot - Version 1.2.4

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


Code changes from version 1.2.3 to 1.2.4

Files changed (34) hide show
  1. app/code/community/MDN/Antidot/Model/Export/Article.php +5 -1
  2. app/code/community/MDN/Antidot/Model/Export/Product.php +9 -4
  3. app/code/community/MDN/Antidot/Model/Feed.php +48 -0
  4. app/code/community/MDN/Antidot/Model/Observer.php +1 -0
  5. app/code/community/MDN/Antidot/Model/Search/Abstract.php +17 -0
  6. app/code/community/MDN/Antidot/Model/Search/Search.php +59 -4
  7. app/code/community/MDN/Antidot/Model/Search/Suggest.php +3 -2
  8. app/code/community/MDN/Antidot/Model/System/Config/Facet.php +47 -26
  9. app/code/community/MDN/Antidot/Model/System/Config/Observer.php +46 -0
  10. app/code/community/MDN/Antidot/Model/System/Config/Sort.php +6 -2
  11. app/code/community/MDN/Antidot/Model/System/Config/Source/Engine.php +8 -4
  12. app/code/community/MDN/Antidot/Test/Model/Export/Article.php +3 -3
  13. app/code/community/MDN/Antidot/Test/Model/Feed.php +51 -0
  14. app/code/community/MDN/Antidot/Test/Model/Search/Search.php +67 -0
  15. app/code/community/MDN/Antidot/Test/Model/Search/Suggest.php +58 -0
  16. app/code/community/MDN/Antidot/Test/Model/System/Config/Facet.php +9 -2
  17. app/code/community/MDN/Antidot/Test/Model/System/Config/Observer.php +45 -0
  18. app/code/community/MDN/Antidot/Test/Model/System/Config/Sort.php +19 -0
  19. app/code/community/MDN/Antidot/Test/Model/System/Config/Sort/expectations/testToOptionArray.yaml +6 -0
  20. app/code/community/MDN/Antidot/etc/config.xml +26 -3
  21. lib/antidot/.travis.yml +1 -0
  22. lib/antidot/AFS/SEARCH/TEST/DATA/introspection_responses.php +4 -0
  23. lib/antidot/AFS/SEARCH/TEST/introspectionTest.php +7 -0
  24. lib/antidot/AFS/SEARCH/TEST/responseHelperTest.php +48 -0
  25. lib/antidot/AFS/SEARCH/afs_introspection.php +23 -0
  26. lib/antidot/AFS/SEARCH/afs_metadata_helper.php +3 -1
  27. lib/antidot/AFS/SEARCH/afs_search_connector.php +1 -1
  28. lib/antidot/AIF/afs_about_connector.php +1 -0
  29. lib/antidot/AIF/afs_paf_connector.php +4 -8
  30. lib/antidot/README.md +1 -1
  31. lib/antidot/afs_lib.php +5 -6
  32. lib/antidot/afs_version.php +1 -1
  33. lib/antidot/composer.json +8 -0
  34. package.xml +4 -4
app/code/community/MDN/Antidot/Model/Export/Article.php CHANGED
@@ -133,7 +133,11 @@ class MDN_Antidot_Model_Export_Article extends MDN_Antidot_Model_Export_Product
133
  'subtitle',
134
  $this->xml->encloseCData($this->getField($article, 'content_heading'))
135
  );
136
- $this->xml->element('text', $this->xml->encloseCData($this->getField($article, 'content')));
 
 
 
 
137
 
138
  $urlStoreId = $website->getDefaultStore()->getId();
139
  if (!in_array($urlStoreId, $storeIds) && count($storeIds) && $storeIds[0]!=0) {
133
  'subtitle',
134
  $this->xml->encloseCData($this->getField($article, 'content_heading'))
135
  );
136
+
137
+ //remove html tags, and script tags, can cause xml validation failure
138
+ $content = $this->getField($article, 'content');
139
+ $content = html_entity_decode(strip_tags( str_replace( '<', ' <',$content )));
140
+ $this->xml->element('text', $this->xml->encloseCData($content));
141
 
142
  $urlStoreId = $website->getDefaultStore()->getId();
143
  if (!in_array($urlStoreId, $storeIds) && count($storeIds) && $storeIds[0]!=0) {
app/code/community/MDN/Antidot/Model/Export/Product.php CHANGED
@@ -97,10 +97,15 @@ class MDN_Antidot_Model_Export_Product extends MDN_Antidot_Model_Export_Abstract
97
  $productsInStock = $this->onlyProductsWithStock ? ' AND is_in_stock = 1' : '';
98
  $collection = Mage::getModel('Antidot/export_model_product')
99
  ->getCollection()
100
- ->addWebsiteFilter($context->getWebsiteIds())
101
- ->addAttributeToFilter('visibility', $this->productVisible)
102
- ->addAttributeToFilter('status', 1)
103
- ->joinTable('cataloginventory/stock_item',
 
 
 
 
 
104
  'product_id=entity_id', // warning : no spaces between = and entity_id , magento1.5 isn't robust enought
105
  array('qty', 'is_in_stock'),
106
  '{{table}}.stock_id = 1'.$productsInStock)
97
  $productsInStock = $this->onlyProductsWithStock ? ' AND is_in_stock = 1' : '';
98
  $collection = Mage::getModel('Antidot/export_model_product')
99
  ->getCollection()
100
+ ->addWebsiteFilter($context->getWebsiteIds());
101
+
102
+ $allProducts = Mage::getStoreConfig('antidot/export/select_allproduct_globally');
103
+ if (!$allProducts) {
104
+ $collection->addAttributeToFilter('visibility', $this->productVisible)
105
+ ->addAttributeToFilter('status', 1);
106
+ }
107
+
108
+ $collection->joinTable('cataloginventory/stock_item',
109
  'product_id=entity_id', // warning : no spaces between = and entity_id , magento1.5 isn't robust enought
110
  array('qty', 'is_in_stock'),
111
  '{{table}}.stock_id = 1'.$productsInStock)
app/code/community/MDN/Antidot/Model/Feed.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * It is also available through the world-wide-web at this URL:
9
+ * http://opensource.org/licenses/osl-3.0.php
10
+ *
11
+ * @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
12
+ * @author : Antidot devmagento@antidot.net
13
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
14
+ */
15
+
16
+ class MDN_Antidot_Model_Feed extends Mage_AdminNotification_Model_Feed {
17
+
18
+ /**
19
+ * Return the rss feed to check for latest notifications
20
+ * @return string RssFeedUrl
21
+ */
22
+ public function getFeedUrl() {
23
+ if (is_null($this->_feedUrl)) {
24
+ $this->_feedUrl = 'http://ref.antidot.net/store/magento/notifications.rss';
25
+ }
26
+ return $this->_feedUrl;
27
+ }
28
+
29
+ public function observe() {
30
+ $this->checkUpdate();
31
+ }
32
+
33
+ /**
34
+ * Set the time of the last rss feed check
35
+ */
36
+ public function setLastUpdate() {
37
+ Mage::app()->saveCache(time(), 'antidot_notifications_lastcheck');
38
+ return $this;
39
+ }
40
+
41
+ /**
42
+ * Get the time of the last rss feed check
43
+ * @return int LastCheckTimestamp
44
+ */
45
+ public function getLastUpdate() {
46
+ return Mage::app()->loadCache('antidot_notifications_lastcheck');
47
+ }
48
+ }
app/code/community/MDN/Antidot/Model/Observer.php CHANGED
@@ -519,4 +519,5 @@ class MDN_Antidot_Model_Observer extends Mage_Core_Model_Abstract
519
 
520
  return $filename;
521
  }
 
522
  }
519
 
520
  return $filename;
521
  }
522
+
523
  }
app/code/community/MDN/Antidot/Model/Search/Abstract.php CHANGED
@@ -54,4 +54,21 @@ class MDN_Antidot_Model_Search_Abstract extends Mage_Core_Model_Abstract
54
 
55
  return $antidotSession;
56
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  }
54
 
55
  return $antidotSession;
56
  }
57
+
58
+ /**
59
+ * Return the user Id
60
+ *
61
+ * @return string
62
+ */
63
+ protected function getUserId()
64
+ {
65
+ $session = Mage::getSingleton('customer/session');
66
+ if ($session->isLoggedIn()) {
67
+ $customerSession = $session->getCustomerId();
68
+ } else {
69
+ $customerSession = $this->getSession();
70
+ }
71
+ return $customerSession;
72
+ }
73
+
74
  }
app/code/community/MDN/Antidot/Model/Search/Search.php CHANGED
@@ -42,6 +42,11 @@ class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
42
  */
43
  protected $additionalFeeds = array();
44
 
 
 
 
 
 
45
  /**
46
  * {@inherit}
47
  */
@@ -70,6 +75,11 @@ class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
70
 
71
  if ($this->isConfigured) {
72
  $this->afsSearch = new AfsSearch($this->afsHost, $this->afsService, $this->afsStatus);
 
 
 
 
 
73
  }
74
  }
75
 
@@ -218,12 +228,19 @@ class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
218
  if (!$this->facets) {
219
  $this->facets = array();
220
 
221
- $resultAntidot = $this->search(null, array('limit' => 1), true);
222
- if (isset($resultAntidot->replyset) && $resultAntidot->replyset) {
223
- foreach ($resultAntidot->replyset->facets as $facet) {
224
- $this->facets[$facet->id] = $facet;
 
 
 
 
 
 
225
  }
226
  }
 
227
  }
228
 
229
  return $this->facets;
@@ -241,6 +258,7 @@ class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
241
  $query = new AfsQuery();
242
  $query = $query->set_query($search);
243
  $query = $query->set_session_id($this->getSession());
 
244
 
245
  foreach ($this->feeds as $feed) {
246
  $query = $query->add_feed($feed);
@@ -329,4 +347,41 @@ class MDN_Antidot_Model_Search_Search extends MDN_Antidot_Model_Search_Abstract
329
 
330
  return $query;
331
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
332
  }
42
  */
43
  protected $additionalFeeds = array();
44
 
45
+ /**
46
+ * @var AfsIntrospection
47
+ */
48
+ protected $introspector;
49
+
50
  /**
51
  * {@inherit}
52
  */
75
 
76
  if ($this->isConfigured) {
77
  $this->afsSearch = new AfsSearch($this->afsHost, $this->afsService, $this->afsStatus);
78
+ } else {
79
+ //FOR UNIT TEST only : pass the afsSearch mock objetc through Mage::registry
80
+ if (Mage::registry('test_afsSearch')) {
81
+ $this->afsSearch = Mage::registry('test_afsSearch');
82
+ }
83
  }
84
  }
85
 
228
  if (!$this->facets) {
229
  $this->facets = array();
230
 
231
+ $introspector = $this->getAfsIntrospector();
232
+ $metadata = $introspector->get_all_metadata();
233
+
234
+ if (isset($metadata['Catalog']) ) {
235
+ foreach ($metadata['Catalog']->get_facets_and_filters_info() as $facet) {
236
+ //exclude some facets from AFSStore
237
+ $excludedFacets = array('afs:PaFId', 'afs:uri', 'afs:validity', 'magento_type', 'name', 'product', 'product_id', 'price', 'price_from', 'price_off');
238
+ if (!in_array($facet->get_id() , $excludedFacets)) {
239
+ $this->facets[$facet->get_id()] = $facet;
240
+ }
241
  }
242
  }
243
+
244
  }
245
 
246
  return $this->facets;
258
  $query = new AfsQuery();
259
  $query = $query->set_query($search);
260
  $query = $query->set_session_id($this->getSession());
261
+ $query = $query->set_user_id($this->getUserId());
262
 
263
  foreach ($this->feeds as $feed) {
264
  $query = $query->add_feed($feed);
347
 
348
  return $query;
349
  }
350
+
351
+ /**
352
+ * @return AfsIntrospection
353
+ */
354
+ private function getAfsIntrospector()
355
+ {
356
+ if (!$this->introspector && $this->afsSearch) {
357
+ $this->introspector = (new AfsIntrospection($this->afsSearch));
358
+ }
359
+ return $this->introspector;
360
+ }
361
+
362
+ /**
363
+ * @return boolean
364
+ */
365
+ public function isInstantSearch() {
366
+
367
+ if (Mage::app()->getRequest()->getActionName()=='save') {
368
+ //no need to call introspection on save
369
+ return false;
370
+ }
371
+ if (!$this->getAfsIntrospector()) {
372
+ Mage::getSingleton('adminhtml/session')->addWarning(
373
+ Mage::helper('Antidot')->__('You need to configure your AFS@Store credentials and your webservices settings')
374
+ );
375
+ //if the webservice host is not yet configured, we consider as instant search and hide engine config
376
+ return true;
377
+ }
378
+ if ($this->getAfsIntrospector()->in_error()) {
379
+ Mage::getSingleton('adminhtml/session')->addWarning(
380
+ Mage::helper('Antidot')->__('Your AFS@Store credentials or webservices settings are incorrects')
381
+ );
382
+ //if the webservice is not well configured, we consider as instant search and hide engine config
383
+ return true;
384
+ }
385
+ return ("instantSearch" === $this->getAfsIntrospector()->get_query_parameter("afs:storeContract"));
386
+ }
387
  }
app/code/community/MDN/Antidot/Model/Search/Suggest.php CHANGED
@@ -16,7 +16,7 @@
16
  class MDN_Antidot_Model_Search_Suggest extends MDN_Antidot_Model_Search_Abstract
17
  {
18
 
19
- const URI = 'http://%s/acp?afs:service=%s&afs:status=%s&afs:output=xml&afs:feed=%s&afs:feedOrder=%s&afs:replies=%s&afs:query=%s&afs:sessionId=%s';
20
 
21
  const DEFAULT_REPLIES_NUMBER = 10;
22
  /**
@@ -257,7 +257,8 @@ class MDN_Antidot_Model_Search_Suggest extends MDN_Antidot_Model_Search_Abstract
257
  $this->getFeedOrder(),
258
  $this->getReplies(),
259
  urlencode($query),
260
- $this->getSession());
 
261
  return $url;
262
  }
263
 
16
  class MDN_Antidot_Model_Search_Suggest extends MDN_Antidot_Model_Search_Abstract
17
  {
18
 
19
+ const URI = 'http://%s/acp?afs:service=%s&afs:status=%s&afs:output=xml&afs:feed=%s&afs:feedOrder=%s&afs:replies=%s&afs:query=%s&afs:sessionId=%s&afs:userId=%s';
20
 
21
  const DEFAULT_REPLIES_NUMBER = 10;
22
  /**
257
  $this->getFeedOrder(),
258
  $this->getReplies(),
259
  urlencode($query),
260
+ $this->getSession(),
261
+ $this->getUserId());
262
  return $url;
263
  }
264
 
app/code/community/MDN/Antidot/Model/System/Config/Facet.php CHANGED
@@ -16,18 +16,21 @@
16
  class MDN_Antidot_Model_System_Config_Facet
17
  {
18
 
19
- protected $options = false;
 
20
 
21
  /**
22
  * {@inherit}
23
  */
24
- public function toOptionArray($typeExclude = null)
25
  {
26
- if (!$this->options) {
27
  try {
 
28
  $search = Mage::getSingleton('Antidot/search_search');
29
 
30
- $this->options = array();
 
31
  if (count($search->getFacets()) > 0) {
32
 
33
  /*
@@ -44,43 +47,61 @@ class MDN_Antidot_Model_System_Config_Facet
44
  /* @var $resource Mage_Core_Model_Mysql4_Translate_String */
45
  $resource = Mage::getResourceModel('core/translate_string');
46
 
 
47
  foreach ($search->getFacets() as $facetId => $facet) {
48
- if ($typeExclude === null || $facet->get_type() !== $typeExclude) {
49
- //MCNX-235 : escape single quote for javascript, it cause error in javascript facet editor in BO
50
- $this->options[] = array(
51
- 'value' => $facetId.'|'.Mage::helper('core')->jsQuoteEscape($facet->get_label()),
52
- 'label' => $facetId.' ('.$facet->get_type().')'
53
- );
54
-
55
- //MCNX-217 : Store translated labels in magento core_translate table
56
- // use the original label as the key string in order to let module upgrade ok
57
- if ($typeExclude != null) {
58
- $originLabel = $facet->get_label();
59
- $translatedlabels = $facet->get_labels();
60
- foreach ($translatedlabels as $lang => $translatedLabel) {
61
- if (isset($locales[$lang])) {
62
- $locale = $locales[$lang];
63
- $resource->saveTranslate($originLabel, $translatedLabel, $locale, 0);
64
- }
65
- }
 
66
  }
67
  }
 
 
 
 
 
 
 
 
 
 
 
 
68
  }
69
 
70
  //MCNX-217 : flush the translations cache in order to make this nes translation immediatly availables
71
  Mage::app()->getCacheInstance()->cleanType('translate');
72
 
73
  //sort facets
74
- usort($this->options, array("MDN_Antidot_Model_System_Config_Facet", "sortFacetPerLabel"));
 
75
  }
76
 
77
- return $this->options;
78
  } catch(Exception $e) {
79
  $this->options = array();
80
  }
81
  }
82
-
83
- return $this->options;
 
 
 
 
84
  }
85
 
86
  public static function sortFacetPerLabel($a, $b)
16
  class MDN_Antidot_Model_System_Config_Facet
17
  {
18
 
19
+ protected $facetsOptions = false;
20
+ protected $filtersOptions = false;
21
 
22
  /**
23
  * {@inherit}
24
  */
25
+ public function toOptionArray($forSortOptions = false)
26
  {
27
+ if (!$this->facetsOptions) {
28
  try {
29
+
30
  $search = Mage::getSingleton('Antidot/search_search');
31
 
32
+ $this->facetsOptions = array();
33
+ $this->filtersOptions = array();
34
  if (count($search->getFacets()) > 0) {
35
 
36
  /*
47
  /* @var $resource Mage_Core_Model_Mysql4_Translate_String */
48
  $resource = Mage::getResourceModel('core/translate_string');
49
 
50
+ /* @var $facet AfsFacetInfo */
51
  foreach ($search->getFacets() as $facetId => $facet) {
52
+ //MCNX-217 : Store translated labels in magento core_translate table
53
+ $translatedlabels = $facet->get_labels();
54
+ $originLabel = null;
55
+ foreach ($translatedlabels as $lang => $translatedLabel) {
56
+ $lang = mb_strtolower($lang);
57
+ if ($originLabel == null) { //on prend le premier libellé renvoyé => rétro compatibilité avec MCNX-217, c'est ce qui était fait dans get_label() du ws de search
58
+ $originLabel = $translatedLabel;
59
+ }
60
+ if (isset($locales[$lang])) {
61
+ $locale = $locales[$lang];
62
+ $resource->saveTranslate($originLabel, $translatedLabel, $locale, 0);
63
+ }
64
+ }
65
+
66
+ //cas de afs:lang qui n'a pas de label dans le WS d'introspection ..
67
+ if ($originLabel == null) {
68
+ $originLabel=$facetId;
69
+ if ($originLabel=='afs:lang') {
70
+ $originLabel='Language';
71
  }
72
  }
73
+
74
+ //MCNX-235 : escape single quote for javascript, it cause error in javascript facet editor in BO
75
+ $option = array(
76
+ 'value' => $facetId.'|'.Mage::helper('core')->jsQuoteEscape($originLabel),
77
+ 'label' => $facetId.' ('.$facet->get_type().')'
78
+ );
79
+
80
+ if (!$facet->is_filter()) {
81
+ $this->facetsOptions[] = $option;
82
+ }
83
+ $this->sortOptions[] = $option;
84
+
85
  }
86
 
87
  //MCNX-217 : flush the translations cache in order to make this nes translation immediatly availables
88
  Mage::app()->getCacheInstance()->cleanType('translate');
89
 
90
  //sort facets
91
+ usort($this->facetsOptions, array("MDN_Antidot_Model_System_Config_Facet", "sortFacetPerLabel"));
92
+ usort($this->filtersOptions, array("MDN_Antidot_Model_System_Config_Facet", "sortFacetPerLabel"));
93
  }
94
 
 
95
  } catch(Exception $e) {
96
  $this->options = array();
97
  }
98
  }
99
+
100
+ if ($forSortOptions) {
101
+ return $this->sortOptions;
102
+ } else {
103
+ return $this->facetsOptions;
104
+ }
105
  }
106
 
107
  public static function sortFacetPerLabel($a, $b)
app/code/community/MDN/Antidot/Model/System/Config/Observer.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @copyright Copyright (c) 2015 Antidot (http://www.antidot.net)
13
+ * @author : Antidot devmagento@antidot.net
14
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
15
+ */
16
+ class MDN_Antidot_Model_System_Config_Observer extends Mage_Core_Model_Abstract
17
+ {
18
+
19
+ /**
20
+ * Instant Search :
21
+ * Hide Search Engine parameters on "Instant Search" contracts
22
+ *
23
+ * @param Varien_Event_Observer $observe
24
+ * @return $this
25
+ */
26
+ public function onInstantSearchHideEngine(Varien_Event_Observer $observe)
27
+ {
28
+ $config = $observe->getConfig();
29
+
30
+ /** @var MDN_Antidot_Model_Search_Search $search */
31
+ $search = Mage::getSingleton('Antidot/search_search');
32
+ if ($search->isInstantSearch()) {
33
+ $antidotEngine = $config->getNode('sections/antidot/groups/engine');
34
+ $antidotEngine->show_in_default = "0";
35
+ $antidotEngine->show_in_website = "0";
36
+ $antidotEngine->show_in_store = "0";
37
+
38
+ $promoteEngine = $config->getNode('sections/antidot/groups/promote');
39
+ $promoteEngine->show_in_default = "0";
40
+ $promoteEngine->show_in_website = "0";
41
+ $promoteEngine->show_in_store = "0";
42
+ }
43
+
44
+ return $this;
45
+ }
46
+ }
app/code/community/MDN/Antidot/Model/System/Config/Sort.php CHANGED
@@ -47,12 +47,16 @@ class MDN_Antidot_Model_System_Config_Sort
47
  }
48
  }
49
 
50
- foreach(Mage::getModel("Antidot/System_Config_Facet")->toOptionArray('STRING') as $facetOption) {
51
- if(!preg_match('/^price_/', $facetOption['value'])) {
 
 
 
52
  $options[] = $facetOption;
53
  }
54
  }
55
 
 
56
  self::$options = $options;
57
  }
58
  return self::$options;
47
  }
48
  }
49
 
50
+ foreach(Mage::getModel("Antidot/System_Config_Facet")->toOptionArray(true) as $facetOption) {
51
+ //exclude some filters from AFSStore, and the ones already set up there
52
+ $excludedFilters = array('is_best_sale', 'is_featured', 'is_new', 'is_promotional');
53
+ $filter = explode('|', $facetOption['value']);
54
+ if (!in_array($filter[0], $excludedFilters)) {
55
  $options[] = $facetOption;
56
  }
57
  }
58
 
59
+
60
  self::$options = $options;
61
  }
62
  return self::$options;
app/code/community/MDN/Antidot/Model/System/Config/Source/Engine.php CHANGED
@@ -54,10 +54,14 @@ class MDN_Antidot_Model_System_Config_Source_Engine extends Enterprise_Search_Mo
54
  {
55
  $options = array_reverse(parent::toOptionArray());
56
 
57
- $options[] = array(
58
- 'value' => 'Antidot/engine_antidot',
59
- 'label' => Mage::helper('adminhtml')->__('AFS@Store')
60
- );
 
 
 
 
61
 
62
  return array_reverse($options);
63
  }
54
  {
55
  $options = array_reverse(parent::toOptionArray());
56
 
57
+ /** @var MDN_Antidot_Model_Search_Search $search */
58
+ $search = Mage::getSingleton('Antidot/search_search');
59
+ if (!$search->isInstantSearch()) {
60
+ $options[] = array(
61
+ 'value' => 'Antidot/engine_antidot',
62
+ 'label' => Mage::helper('adminhtml')->__('AFS@Store')
63
+ );
64
+ }
65
 
66
  return array_reverse($options);
67
  }
app/code/community/MDN/Antidot/Test/Model/Export/Article.php CHANGED
@@ -99,9 +99,9 @@ class MDN_Antidot_Test_Model_Export_Article extends EcomDev_PHPUnit_Test_Case
99
  /**
100
  * test the xml contains the correct text tag
101
  */
102
- $this->assertEquals('test contenu A<br>test', (string)$xml->article[0]->text);
103
- $this->assertEquals('test contenu B<br>test', (string)$xml->article[1]->text);
104
- $this->assertEquals('test contenu B<br>test', (string)$xml->article[2]->text);
105
 
106
 
107
  /**
99
  /**
100
  * test the xml contains the correct text tag
101
  */
102
+ $this->assertEquals('test contenu A test', (string)$xml->article[0]->text);
103
+ $this->assertEquals('test contenu B test', (string)$xml->article[1]->text);
104
+ $this->assertEquals('test contenu B test', (string)$xml->article[2]->text);
105
 
106
 
107
  /**
app/code/community/MDN/Antidot/Test/Model/Feed.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class MDN_Antidot_Test_Model_Feed extends EcomDev_PHPUnit_Test_Case
4
+ {
5
+
6
+
7
+ public function testFeedNotification() {
8
+ $notificationText = 'Antidot Test Item';
9
+
10
+ $stub = $this->getMockBuilder('MDN_Antidot_Model_Feed')->setMethods(array('getFeedData', 'getLastUpdate'))
11
+ ->getMock();
12
+ $stub->method('getLastUpdate')->willReturn(0);
13
+ $stub->method('getFeedData')->willReturn($this->_getFeed($notificationText));
14
+
15
+ $res = $stub->checkUpdate();
16
+ $notifications = Mage::getModel('adminnotification/inbox')->getCollection()->getItems();
17
+ $notificationTitles = array_map(function($elem) {
18
+ return $elem->title;
19
+ }, $notifications);
20
+
21
+ $this->assertContains($notificationText, $notificationTitles);
22
+ }
23
+
24
+ private function _getFeed($notification) {
25
+ $data = '<?xml version="1.0" encoding="utf-8" ?>
26
+ <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
27
+ <channel>
28
+ <atom:link
29
+ href="http://ref.antidot.net/store/magento/notifications.rss"
30
+ rel="self" type="application/rss+xml"/>
31
+ <title>MagentoCommerce</title>
32
+ <link>http://www.magentocommerce.com/</link>
33
+ <description>MagentoCommerce</description>
34
+ <copyright>Copyright (c) 2015 Antidot</copyright>
35
+ <webMaster>magento@antidot.net (Magento support)</webMaster>
36
+ <language>en</language>
37
+ <lastBuildDate>Thu, 22 Jan 2015 17:47:27 UTC</lastBuildDate>
38
+ <ttl>300</ttl>
39
+ <item>
40
+ <title><![CDATA['.$notification.']]></title>
41
+ <link><![CDATA['.$notification.']]></link>
42
+ <severity>4</severity>
43
+ <description><![CDATA['.$notification.']]></description>
44
+ <pubDate>Thu, 22 Jan 2015 17:47:27 UTC</pubDate>
45
+ </item>
46
+ </channel>
47
+ </rss>';
48
+ $xml = new SimpleXMLElement($data);
49
+ return $xml;
50
+ }
51
+ }
app/code/community/MDN/Antidot/Test/Model/Search/Search.php CHANGED
@@ -13,6 +13,11 @@
13
  * @author : Antidot devmagento@antidot.net
14
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
15
  */
 
 
 
 
 
16
  class MDN_Antidot_Test_Model_Search_Search extends EcomDev_PHPUnit_Test_Case
17
  {
18
 
@@ -52,4 +57,66 @@ class MDN_Antidot_Test_Model_Search_Search extends EcomDev_PHPUnit_Test_Case
52
 
53
  }
54
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  }
13
  * @author : Antidot devmagento@antidot.net
14
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
15
  */
16
+
17
+ require_once('lib/antidot/COMMON/php-SAI/lib/CurlStub.php');
18
+ require_once('lib/antidot/AFS/SEARCH/TEST/DATA/introspection_responses.php');
19
+ require_once('lib/antidot/afs_lib.php');
20
+
21
  class MDN_Antidot_Test_Model_Search_Search extends EcomDev_PHPUnit_Test_Case
22
  {
23
 
57
 
58
  }
59
 
60
+ /**
61
+ * Check the facets
62
+ * @test
63
+ */
64
+ public function testGetFacets() {
65
+
66
+ $curlConnector = new SAI_CurlStub();
67
+ $mockBaseUrl = "localhost";
68
+ $aboutRequestOpts = array(CURLOPT_URL => "http://$mockBaseUrl/bo-ws/about");
69
+ $aboutResponse = ABOUT_RESPONSE;
70
+
71
+ $curlConnector->setResponse($aboutResponse, $aboutRequestOpts);
72
+ $curlConnector->setResponse(RESPONSE_FACETS_MULTIFEED);
73
+ $afsSearch = new AfsSearch($mockBaseUrl, '71003', AfsServiceStatus::STABLE, $curlConnector);
74
+
75
+ Mage::unregister('test_afsSearch');
76
+ Mage::register('test_afsSearch', $afsSearch);
77
+
78
+ /** @var $search MDN_Antidot_Model_Search_Search */
79
+ $search = Mage::getModel('Antidot/search_search');
80
+
81
+ $facets = $search->getFacets();
82
+
83
+ $this->assertEquals(
84
+ 1,
85
+ count($facets)
86
+ );
87
+
88
+ $this->assertTrue(
89
+ array_key_exists('model',$facets)
90
+ );
91
+
92
+ }
93
+
94
+ /**
95
+ * Check instant search
96
+ * @test
97
+ */
98
+ public function testIsInstantSearch() {
99
+
100
+ $curlConnector = new SAI_CurlStub();
101
+ $mockBaseUrl = "localhost";
102
+ $aboutRequestOpts = array(CURLOPT_URL => "http://$mockBaseUrl/bo-ws/about");
103
+ $aboutResponse = ABOUT_RESPONSE;
104
+
105
+ $curlConnector->setResponse($aboutResponse, $aboutRequestOpts);
106
+ $curlConnector->setResponse(RESULT_WITH_FACETS_FLAT);
107
+
108
+ $afsSearch = new AfsSearch($mockBaseUrl, '71003', AfsServiceStatus::STABLE, $curlConnector);
109
+
110
+ Mage::unregister('test_afsSearch');
111
+ Mage::register('test_afsSearch', $afsSearch);
112
+
113
+ /** @var $search MDN_Antidot_Model_Search_Search */
114
+ $search = Mage::getModel('Antidot/search_search');
115
+
116
+ $instantSearch = $search->isInstantSearch();
117
+
118
+ $this->assertTrue($instantSearch);
119
+
120
+
121
+ }
122
  }
app/code/community/MDN/Antidot/Test/Model/Search/Suggest.php CHANGED
@@ -93,4 +93,62 @@ class MDN_Antidot_Test_Model_Search_Suggest extends EcomDev_PHPUnit_Test_Case
93
 
94
 
95
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  }
93
 
94
 
95
  }
96
+
97
+ public function testUserIdInBuildedUrl() {
98
+ $mock = $this->getMockBuilder('MDN_Antidot_Model_Search_Suggest')->setMethods(array('getSession', 'getUserId'))->getMock();
99
+ // We mock the getSession and getUserId as we don't have sessions in test env
100
+ $mock->method('getSession')->willReturn('testSession');
101
+ $mock->method('getUserId')->willReturn('testUserId');
102
+
103
+ $buildedUrl = MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($mock, 'buildUrl', array(''));
104
+ $this->assertRegExp('/.*(afs:userId=testUserId($|&)).*/', $buildedUrl);
105
+ }
106
+
107
+ public function testgetUserIdLoggedIn() {
108
+ $defaultCustomerId = 42;
109
+
110
+ // We force the return of an customer id
111
+ $mockSession = $this->getMockBuilder('Mage_Customer_Model_Session')
112
+ ->disableOriginalConstructor()
113
+ ->getMock();
114
+ $mockSession->method('isLoggedIn')->willReturn(true);
115
+ $mockSession->method('getCustomerId')->willReturn($defaultCustomerId);
116
+ $this->replaceByMock('singleton', 'customer/session', $mockSession);
117
+
118
+ // We also mock this Session model to avoid a warning when getSession
119
+ // is called into buildUrl function
120
+ $mockCoreSession = $this->getMockBuilder('Mage_Core_Model_Session')
121
+ ->disableOriginalConstructor()
122
+ ->getMock();
123
+ $this->replaceByMock('singleton', 'core/session', $mockCoreSession);
124
+
125
+
126
+ $suggest = Mage::getModel('Antidot/search_suggest');
127
+ $buildedUrl = MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($suggest, 'buildUrl', array(''));
128
+
129
+ $this->assertRegExp('/.*(afs:userId='.$defaultCustomerId.'($|&)).*/', $buildedUrl);
130
+ }
131
+
132
+ public function testgetUserIdNotLoggedIn() {
133
+ $defaultCustomerId = 42;
134
+
135
+ $mockSession = $this->getMockBuilder('Mage_Customer_Model_Session')
136
+ ->disableOriginalConstructor()
137
+ ->getMock();
138
+ $mockSession->method('isLoggedIn')->willReturn(false);
139
+ $this->replaceByMock('singleton', 'customer/session', $mockSession);
140
+
141
+ // We force the return of an antidot session id
142
+ $mockCoreSession = $this->getMockBuilder('Mage_Core_Model_Session')
143
+ ->disableOriginalConstructor()
144
+ ->getMock();
145
+ $mockCoreSession->method('getData')->with('antidot_session')->will($this->returnValue($defaultCustomerId));
146
+ $this->replaceByMock('singleton', 'core/session', $mockCoreSession);
147
+
148
+ $suggest = Mage::getModel('Antidot/search_suggest');
149
+ $buildedUrl = MDN_Antidot_Test_PHPUnitUtil::callPrivateMethod($suggest, 'buildUrl', array(''));
150
+
151
+ $this->assertRegExp('/.*(afs:userId='.$defaultCustomerId.'($|&)).*/', $buildedUrl);
152
+ }
153
+
154
  }
app/code/community/MDN/Antidot/Test/Model/System/Config/Facet.php CHANGED
@@ -28,6 +28,9 @@ class MDN_Antidot_Test_Model_System_Config_Facet extends EcomDev_PHPUnit_Test_Ca
28
  $mockAFSHelper->expects($this->any())
29
  ->method('get_labels')
30
  ->will($this->returnValue(array('de'=>'Verfügbarkeit', 'fr' => 'Disponibilité', 'en' => 'Availability')));
 
 
 
31
 
32
  $mockSearch = $this->getModelMock('Antidot/search_search', array('getFacets'));
33
  $mockSearch->expects($this->any())
@@ -40,7 +43,7 @@ class MDN_Antidot_Test_Model_System_Config_Facet extends EcomDev_PHPUnit_Test_Ca
40
  /** @var $configSort MDN_Antidot_Model_System_Config_Facet */
41
  $configFacet = Mage::getModel('Antidot/system_config_facet');
42
 
43
- $values = $configFacet->toOptionArray('STRING');
44
 
45
  $this->assertEquals(
46
  array(array('value'=>'is_available|Verfügbarkeit', 'label' => 'is_available (boolean)')),
@@ -98,6 +101,9 @@ class MDN_Antidot_Test_Model_System_Config_Facet extends EcomDev_PHPUnit_Test_Ca
98
  $mockAFSHelper->expects($this->any())
99
  ->method('get_labels')
100
  ->will($this->returnValue(array("fr"=>"Type d'accessoire")));
 
 
 
101
 
102
  $mockSearch = $this->getModelMock('Antidot/search_search', array('getFacets'));
103
  $mockSearch->expects($this->any())
@@ -110,7 +116,7 @@ class MDN_Antidot_Test_Model_System_Config_Facet extends EcomDev_PHPUnit_Test_Ca
110
  /** @var $configSort MDN_Antidot_Model_System_Config_Facet */
111
  $configFacet = Mage::getModel('Antidot/system_config_facet');
112
 
113
- $values = $configFacet->toOptionArray('STRING');
114
 
115
  $this->assertEquals(
116
  array(array("value"=>"type_accessoire|Type d\'accessoire", 'label' => 'type_accessoire (boolean)')),
@@ -126,4 +132,5 @@ class MDN_Antidot_Test_Model_System_Config_Facet_MockAFSHelper
126
  function get_type() {}
127
  function get_label() {}
128
  function get_labels() {}
 
129
  }
28
  $mockAFSHelper->expects($this->any())
29
  ->method('get_labels')
30
  ->will($this->returnValue(array('de'=>'Verfügbarkeit', 'fr' => 'Disponibilité', 'en' => 'Availability')));
31
+ $mockAFSHelper->expects($this->any())
32
+ ->method('is_filter')
33
+ ->will($this->returnValue(true));
34
 
35
  $mockSearch = $this->getModelMock('Antidot/search_search', array('getFacets'));
36
  $mockSearch->expects($this->any())
43
  /** @var $configSort MDN_Antidot_Model_System_Config_Facet */
44
  $configFacet = Mage::getModel('Antidot/system_config_facet');
45
 
46
+ $values = $configFacet->toOptionArray(true);
47
 
48
  $this->assertEquals(
49
  array(array('value'=>'is_available|Verfügbarkeit', 'label' => 'is_available (boolean)')),
101
  $mockAFSHelper->expects($this->any())
102
  ->method('get_labels')
103
  ->will($this->returnValue(array("fr"=>"Type d'accessoire")));
104
+ $mockAFSHelper->expects($this->any())
105
+ ->method('is_filter')
106
+ ->will($this->returnValue(true));
107
 
108
  $mockSearch = $this->getModelMock('Antidot/search_search', array('getFacets'));
109
  $mockSearch->expects($this->any())
116
  /** @var $configSort MDN_Antidot_Model_System_Config_Facet */
117
  $configFacet = Mage::getModel('Antidot/system_config_facet');
118
 
119
+ $values = $configFacet->toOptionArray(true);
120
 
121
  $this->assertEquals(
122
  array(array("value"=>"type_accessoire|Type d\'accessoire", 'label' => 'type_accessoire (boolean)')),
132
  function get_type() {}
133
  function get_label() {}
134
  function get_labels() {}
135
+ function is_filter() {}
136
  }
app/code/community/MDN/Antidot/Test/Model/System/Config/Observer.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ class MDN_Antidot_Test_Model_System_Config_Observer extends EcomDev_PHPUnit_Test_Case
5
+ {
6
+
7
+ public static function setUpBeforeClass()
8
+ {
9
+ //avoid errors when session_start is called during the test
10
+ @session_start();
11
+ }
12
+
13
+ /**
14
+ * Instant search
15
+ */
16
+ function testOnInstantSearchHideEngine() {
17
+
18
+ /** mock Antidot/search_search */
19
+ $mockSearch = $this->getModelMock('Antidot/search_search', array('isInstantSearch'));
20
+ $mockSearch->expects($this->any())
21
+ ->method('isInstantSearch')
22
+ ->will($this->returnValue(true));
23
+ $this->replaceByMock('model', 'Antidot/search_search', $mockSearch);
24
+
25
+ /** @var $observer MDN_Antidot_Model_System_Config_Observer */
26
+ $observer = Mage::getModel('Antidot/system_config_observer');
27
+
28
+ $config = Mage::getConfig()->loadModulesConfiguration('system.xml')
29
+ ->applyExtends();
30
+
31
+ $observe = new Varien_Event_Observer();
32
+ $observe->setData('config', $config);
33
+
34
+ $observer->onInstantSearchHideEngine($observe);
35
+
36
+ $engineNode = $config->getNode('sections/antidot/groups/engine');
37
+
38
+ $this->assertEquals("0", $engineNode->show_in_default);
39
+
40
+ $promoteNode = $config->getNode('sections/antidot/groups/promote');
41
+
42
+ $this->assertEquals("0", $promoteNode->show_in_default);
43
+
44
+ }
45
+ }
app/code/community/MDN/Antidot/Test/Model/System/Config/Sort.php CHANGED
@@ -1,9 +1,28 @@
1
  <?php
2
 
 
 
 
3
 
4
  class MDN_Antidot_Test_Model_System_Config_Sort extends EcomDev_PHPUnit_Test_Case
5
  {
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  /**
8
  * Test toOptionArray method
9
  * case 1
1
  <?php
2
 
3
+ require_once('lib/antidot/COMMON/php-SAI/lib/CurlStub.php');
4
+ require_once('lib/antidot/AFS/SEARCH/TEST/DATA/introspection_responses.php');
5
+ require_once('lib/antidot/afs_lib.php');
6
 
7
  class MDN_Antidot_Test_Model_System_Config_Sort extends EcomDev_PHPUnit_Test_Case
8
  {
9
 
10
+
11
+ public static function setUpBeforeClass()
12
+ {
13
+ $curlConnector = new SAI_CurlStub();
14
+ $mockBaseUrl = "localhost";
15
+ $aboutRequestOpts = array(CURLOPT_URL => "http://$mockBaseUrl/bo-ws/about");
16
+ $aboutResponse = ABOUT_RESPONSE;
17
+
18
+ $curlConnector->setResponse($aboutResponse, $aboutRequestOpts);
19
+ $curlConnector->setResponse(RESPONSE_FACETS_MULTIFEED);
20
+ $afsSearch = new AfsSearch($mockBaseUrl, '71003', AfsServiceStatus::STABLE, $curlConnector);
21
+
22
+ Mage::unregister('test_afsSearch');
23
+ Mage::register('test_afsSearch', $afsSearch);
24
+ }
25
+
26
  /**
27
  * Test toOptionArray method
28
  * case 1
app/code/community/MDN/Antidot/Test/Model/System/Config/Sort/expectations/testToOptionArray.yaml CHANGED
@@ -10,6 +10,8 @@
10
  label: Is promotional
11
  - value: stock|Stock
12
  label: Stock
 
 
13
  1-2:
14
  options:
15
  - value: afs:relevance|Relevance
@@ -24,6 +26,8 @@
24
  label: Stock
25
  - value: is_best_sale|Is top sale
26
  label: Is top sale
 
 
27
  1-3:
28
  options:
29
  - value: afs:relevance|Relevance
@@ -42,3 +46,5 @@
42
  label: Is top sale
43
  - value: is_featured|Is featured
44
  label: Is featured
 
 
10
  label: Is promotional
11
  - value: stock|Stock
12
  label: Stock
13
+ - value: model|Modèle
14
+ label: model (STRING)
15
  1-2:
16
  options:
17
  - value: afs:relevance|Relevance
26
  label: Stock
27
  - value: is_best_sale|Is top sale
28
  label: Is top sale
29
+ - value: model|Modèle
30
+ label: model (STRING)
31
  1-3:
32
  options:
33
  - value: afs:relevance|Relevance
46
  label: Is top sale
47
  - value: is_featured|Is featured
48
  label: Is featured
49
+ - value: model|Modèle
50
+ label: model (STRING)
app/code/community/MDN/Antidot/etc/config.xml CHANGED
@@ -26,7 +26,7 @@
26
  </crontab>
27
  <modules>
28
  <MDN_Antidot>
29
- <version>1.2.3</version>
30
  </MDN_Antidot>
31
  </modules>
32
  <global>
@@ -120,10 +120,30 @@
120
  <use>core_read</use>
121
  </connection>
122
  </Antidot_read>
123
- </resources>
124
-
 
 
 
 
 
 
 
 
 
125
  </global>
126
  <adminhtml>
 
 
 
 
 
 
 
 
 
 
 
127
  <translate>
128
  <modules>
129
  <MDN_Antidot>
@@ -636,6 +656,9 @@
636
  <gc_percentage_limit>80</gc_percentage_limit>
637
  <!-- number of product processed before flush xml in file -->
638
  <chunk_size>500</chunk_size>
 
 
 
639
  <!-- disable xsd validation -->
640
  <xsd_validation_disable>0</xsd_validation_disable>
641
  <!-- enable profiler and debug mode -->
26
  </crontab>
27
  <modules>
28
  <MDN_Antidot>
29
+ <version>1.2.4</version>
30
  </MDN_Antidot>
31
  </modules>
32
  <global>
120
  <use>core_read</use>
121
  </connection>
122
  </Antidot_read>
123
+ </resources>
124
+ <events>
125
+ <adminhtml_init_system_config>
126
+ <observers>
127
+ <antidot_init_system_config>
128
+ <class>Antidot/system_config_observer</class>
129
+ <method>onInstantSearchHideEngine</method>
130
+ </antidot_init_system_config>
131
+ </observers>
132
+ </adminhtml_init_system_config>
133
+ </events>
134
  </global>
135
  <adminhtml>
136
+ <events>
137
+ <controller_action_predispatch>
138
+ <observers>
139
+ <antidot_notification>
140
+ <type>singleton</type>
141
+ <class>MDN_Antidot_Model_Feed</class>
142
+ <method>observe</method>
143
+ </antidot_notification>
144
+ </observers>
145
+ </controller_action_predispatch>
146
+ </events>
147
  <translate>
148
  <modules>
149
  <MDN_Antidot>
656
  <gc_percentage_limit>80</gc_percentage_limit>
657
  <!-- number of product processed before flush xml in file -->
658
  <chunk_size>500</chunk_size>
659
+ <!-- Select all the product (even disabled ones) in the first global scope loop : can be useful if
660
+ you have disabled prduct on the global scope but activated on store scope , careful ; can reduce performances -->
661
+ <select_allproduct_globally>0</select_allproduct_globally>
662
  <!-- disable xsd validation -->
663
  <xsd_validation_disable>0</xsd_validation_disable>
664
  <!-- enable profiler and debug mode -->
lib/antidot/.travis.yml CHANGED
@@ -5,6 +5,7 @@ php:
5
  - 5.5
6
  - 5.4
7
  - 5.3
 
8
 
9
  before_install:
10
  - sudo apt-get update > /dev/null
5
  - 5.5
6
  - 5.4
7
  - 5.3
8
+ - 7.0
9
 
10
  before_install:
11
  - sudo apt-get update > /dev/null
lib/antidot/AFS/SEARCH/TEST/DATA/introspection_responses.php CHANGED
@@ -101,6 +101,10 @@ define('RESULT_WITH_FACETS_FLAT', '{
101
  {
102
  "name": "afs:sort",
103
  "value": "afs:relevance,DESC;category_level,ASC;category_broader_length,ASC;category_name_length,ASC"
 
 
 
 
104
  }
105
  ],
106
  "mainCtx": {
101
  {
102
  "name": "afs:sort",
103
  "value": "afs:relevance,DESC;category_level,ASC;category_broader_length,ASC;category_name_length,ASC"
104
+ },
105
+ {
106
+ "name": "afs:storeContract",
107
+ "value": "instantSearch"
108
  }
109
  ],
110
  "mainCtx": {
lib/antidot/AFS/SEARCH/TEST/introspectionTest.php CHANGED
@@ -84,6 +84,13 @@ class IntrospectionTest extends PHPUnit_Framework_TestCase {
84
  $this->check_facet_info($model, 'model', false, false, 'STRING', 'TREE', $expected_labels);
85
  }
86
 
 
 
 
 
 
 
 
87
  private function check_facet_info($facet_info, $expected_name, $is_sticky, $is_filter, $expected_type,
88
  $expected_layout, $expected_labels=null)
89
  {
84
  $this->check_facet_info($model, 'model', false, false, 'STRING', 'TREE', $expected_labels);
85
  }
86
 
87
+ public function testInstantSearch() {
88
+ $introspector = $this->init_introspector(RESULT_WITHOUT_FACETS);
89
+ $this->assertNotEquals($introspector->get_query_parameter('afs:storeContract'), 'instantSearch');
90
+ $introspector = $this->init_introspector(RESULT_WITH_FACETS_FLAT);
91
+ $this->assertEquals($introspector->get_query_parameter('afs:storeContract'), 'instantSearch');
92
+ }
93
+
94
  private function check_facet_info($facet_info, $expected_name, $is_sticky, $is_filter, $expected_type,
95
  $expected_layout, $expected_labels=null)
96
  {
lib/antidot/AFS/SEARCH/TEST/responseHelperTest.php CHANGED
@@ -606,6 +606,54 @@ class ResponseHelperTest extends PHPUnit_Framework_TestCase
606
  $this->assertTrue($response_helper->has_metadata('Catalog'));
607
  $this->assertNotNull($response_helper->get_feed_metadata('Catalog'));
608
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
609
  }
610
 
611
 
606
  $this->assertTrue($response_helper->has_metadata('Catalog'));
607
  $this->assertNotNull($response_helper->get_feed_metadata('Catalog'));
608
  }
609
+
610
+ public function testGetQueryParameter()
611
+ {
612
+ $input = json_decode('{
613
+ "header": {
614
+ "query": {
615
+ "userId": "foo",
616
+ "sessionId": "bar",
617
+ "queryParam": [
618
+ {
619
+ "name": "afs:storeContract",
620
+ "value": "instantSearch"
621
+ }]
622
+ },
623
+ "user": { },
624
+ "performance": {
625
+ "durationMs": 215
626
+ },
627
+ "info": { }
628
+ }
629
+ }');
630
+
631
+ $config = new AfsHelperConfiguration();
632
+ $query = new AfsQuery();
633
+ $response = new AfsResponseHelper($input, $query, $config);
634
+ $this->assertEquals($response->get_query_parameter('afs:storeContract'), 'instantSearch');
635
+
636
+ $input = json_decode('{
637
+ "header": {
638
+ "query": {
639
+ "userId": "foo",
640
+ "sessionId": "bar",
641
+ "queryParam": []
642
+ },
643
+ "user": { },
644
+ "performance": {
645
+ "durationMs": 215
646
+ },
647
+ "info": { }
648
+ }
649
+ }');
650
+
651
+ $config = new AfsHelperConfiguration();
652
+ $query = new AfsQuery();
653
+ $response = new AfsResponseHelper($input, $query, $config);
654
+ $this->assertNotEquals($response->get_query_parameter('afs:storeContract'), 'instantSearch');
655
+
656
+ }
657
  }
658
 
659
 
lib/antidot/AFS/SEARCH/afs_introspection.php CHANGED
@@ -8,6 +8,7 @@
8
  */
9
  class AfsIntrospection {
10
  private $feeds_metadata = array();
 
11
 
12
  public function __construct($search) {
13
  $this->build_metadata($search);
@@ -47,11 +48,33 @@ class AfsIntrospection {
47
  }
48
  }
49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  private function build_metadata($search) {
51
  $params = array('afs:what' => 'meta');
52
  $query = AfsQuery::create_from_parameters($params);
 
53
  $result = $search->execute($query);
54
  $this->feeds_metadata = $result->get_all_metadata();
 
55
  }
56
 
57
  private function setup_feeds_filters($search) {
8
  */
9
  class AfsIntrospection {
10
  private $feeds_metadata = array();
11
+ private $result;
12
 
13
  public function __construct($search) {
14
  $this->build_metadata($search);
48
  }
49
  }
50
 
51
+ /**
52
+ *@brief Retrieve query parameter stored in header
53
+ * @input $key : Name of the parameter
54
+ * @return value of the parameter
55
+ */
56
+ public function get_query_parameter($key)
57
+ {
58
+ return $this->result->get_query_parameter($key);
59
+ }
60
+
61
+ /** @brief Checks whether an error occured.
62
+ *
63
+ * You are encouraged to check error before accessing any other data.
64
+ * @return @c True on error, @c false otherwise.
65
+ */
66
+ public function in_error()
67
+ {
68
+ return !$this->result || $this->result->in_error();
69
+ }
70
+
71
  private function build_metadata($search) {
72
  $params = array('afs:what' => 'meta');
73
  $query = AfsQuery::create_from_parameters($params);
74
+ /** @var AfsResponseHelper $result */
75
  $result = $search->execute($query);
76
  $this->feeds_metadata = $result->get_all_metadata();
77
+ $this->result = $result;
78
  }
79
 
80
  private function setup_feeds_filters($search) {
lib/antidot/AFS/SEARCH/afs_metadata_helper.php CHANGED
@@ -15,7 +15,9 @@ class AfsMetadataHelper {
15
  }
16
 
17
  private function initialize_facets_info($meta) {
18
- $this->initialize_facets_info_rec($meta->meta->info->searchFeedInfo->setInfos);
 
 
19
  }
20
 
21
  private function initialize_facets_info_rec($setInfos) {
15
  }
16
 
17
  private function initialize_facets_info($meta) {
18
+ if (isset($meta->meta->info->searchFeedInfo)) {
19
+ $this->initialize_facets_info_rec($meta->meta->info->searchFeedInfo->setInfos);
20
+ }
21
  }
22
 
23
  private function initialize_facets_info_rec($setInfos) {
lib/antidot/AFS/SEARCH/afs_search_connector.php CHANGED
@@ -23,7 +23,7 @@ class AfsSearchConnector extends AfsConnector
23
  {
24
  parent::__construct($host, $service, $scheme, $curlConnector);
25
  if ($scheme != AFS_SCHEME_HTTP)
26
- throw InvalidArgumentException('Search connector support only HTTTP connection');
27
  }
28
 
29
  /** @brief Retrieves web service name.
23
  {
24
  parent::__construct($host, $service, $scheme, $curlConnector);
25
  if ($scheme != AFS_SCHEME_HTTP)
26
+ throw new InvalidArgumentException('Search connector support only HTTP connection');
27
  }
28
 
29
  /** @brief Retrieves web service name.
lib/antidot/AIF/afs_about_connector.php CHANGED
@@ -2,6 +2,7 @@
2
  require_once 'AIF/afs_bows_connector.php';
3
  require_once 'AIF/afs_bows_connector_interface.php';
4
  require_once 'AIF/afs_bows_information.php';
 
5
 
6
 
7
  /** @brief Simple connector to retrieve AFS Back Office information. */
2
  require_once 'AIF/afs_bows_connector.php';
3
  require_once 'AIF/afs_bows_connector_interface.php';
4
  require_once 'AIF/afs_bows_information.php';
5
+ require_once 'AIF/afs_token_authentication.php';
6
 
7
 
8
  /** @brief Simple connector to retrieve AFS Back Office information. */
lib/antidot/AIF/afs_paf_connector.php CHANGED
@@ -112,20 +112,16 @@ class AfsPafConnector extends AfsBOWSConnector implements AfsBOWSConnectorInterf
112
  $doc_no = 1;
113
  $documents = array();
114
  foreach ($mgr->get_documents() as $doc) {
115
-
116
- // PHP 5.5 introduced a CurlFile object that deprecates the old @filename syntax
117
- // See: https://wiki.php.net/rfc/curl-file-upload
118
- if (function_exists('curl_file_create')) {
119
- $documents['file'.$doc_no] = curl_file_create(
120
  $doc->get_filename(),
121
  $doc->get_mime_type(),
122
  basename($doc->get_filename())
123
  );
124
  } else {
125
- $documents['file'.$doc_no] = '@'.$doc->get_filename().';type='
126
- .$doc->get_mime_type().';filename='.basename($doc->get_filename());
127
  }
128
-
129
  $doc_no++;
130
  }
131
  $opts = array(CURLOPT_POSTFIELDS => $documents);
112
  $doc_no = 1;
113
  $documents = array();
114
  foreach ($mgr->get_documents() as $doc) {
115
+ if (class_exists('CURLFile')) {
116
+ $documents['file' . $doc_no] = new CURLFile(
 
 
 
117
  $doc->get_filename(),
118
  $doc->get_mime_type(),
119
  basename($doc->get_filename())
120
  );
121
  } else {
122
+ $documents['file' . $doc_no] = '@' . $doc->get_filename() . ';type='
123
+ . $doc->get_mime_type() . ';filename=' . basename($doc->get_filename());
124
  }
 
125
  $doc_no++;
126
  }
127
  $opts = array(CURLOPT_POSTFIELDS => $documents);
lib/antidot/README.md CHANGED
@@ -1,7 +1,7 @@
1
  PHP API
2
  =======
3
 
4
- This API allows you to simplify integration of Antidot products.
5
 
6
  License
7
  -------
1
  PHP API
2
  =======
3
 
4
+ This API allows you to simplify integration of Antidot products (AFS, AIF, AFS@Store, ...).
5
 
6
  License
7
  -------
lib/antidot/afs_lib.php CHANGED
@@ -16,10 +16,9 @@ require_once 'AFS/SEARCH/FILTER/afs_filter.php';
16
 
17
  require_once 'AFS/ACP/afs_acp.php';
18
 
19
- /**
20
- * Paf Upload
21
- */
22
- require_once 'AIF/afs_document.php';
23
  require_once 'AIF/afs_paf_connector.php';
24
- require_once 'AIF/afs_authentication.php';
25
- require_once 'AIF/afs_user_authentication.php';
 
 
 
16
 
17
  require_once 'AFS/ACP/afs_acp.php';
18
 
 
 
 
 
19
  require_once 'AIF/afs_paf_connector.php';
20
+ require_once 'AIF/afs_bows_connector.php';
21
+ require_once 'AIF/afs_paf_live_connector.php';
22
+ require_once 'COMMON/afs_service.php';
23
+
24
+
lib/antidot/afs_version.php CHANGED
@@ -15,7 +15,7 @@ define('AFS_API_VERSION_MINOR', 16);
15
  /** @brief API fix version number.
16
  *
17
  * You should increase this number as soon as a bug is fixed.*/
18
- define('AFS_API_VERSION_FIX', 6);
19
 
20
  /** @brief API full version number. */
21
  define('AFS_API_VERSION', implode('.', array(AFS_API_VERSION_MAJOR, AFS_API_VERSION_MINOR, AFS_API_VERSION_FIX)));
15
  /** @brief API fix version number.
16
  *
17
  * You should increase this number as soon as a bug is fixed.*/
18
+ define('AFS_API_VERSION_FIX', 7);
19
 
20
  /** @brief API full version number. */
21
  define('AFS_API_VERSION', implode('.', array(AFS_API_VERSION_MAJOR, AFS_API_VERSION_MINOR, AFS_API_VERSION_FIX)));
lib/antidot/composer.json CHANGED
@@ -4,5 +4,13 @@
4
  "license" : "LGPL",
5
  "require": {
6
  "php": ">=5.3.0"
 
 
 
 
 
 
 
 
7
  }
8
  }
4
  "license" : "LGPL",
5
  "require": {
6
  "php": ">=5.3.0"
7
+ },
8
+ "autoload": {
9
+ "files": [ "afs_lib.php" ]
10
+ },
11
+ "extra": {
12
+ "branch-alias": {
13
+ "dev-master": "0.16.x-dev"
14
+ }
15
  }
16
  }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Antidot_Antidot</name>
4
- <version>1.2.3</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>2016-04-14</date>
21
- <time>08:33:28</time>
22
- <contents><target name="mage"><dir name="shell"><file name="antidotExport.php" hash="a4e184cdf1add5d42484e6997ea6f59c"/><file name="antidotExportCategory.php" hash="10de34988223fc8ca26e6f30c4070733"/><file name="antidotExportInc.php" hash="18f1b60b93245e2daf423c614dcd7efa"/><file name="antidotExportProduct.php" hash="9ddd7f0ba8e54b24665a32d26e5231b4"/></dir><dir name="i18n"><file name="de_DE" hash="f166a5ff29213a44fca77277b053897e"/><file name="en_US" hash="63c821044fda6f7c2a26dc84670b25bd"/><file name="es_ES" hash="f9319039054998955d63d51ed0930f3f"/><file name="fr_FR" hash="632367797f2fa9fef06e0b0c69377e01"/><file name="i18n.php" hash="0780b44563432f6e70de78f7a9d60f54"/></dir></target><target name="magecommunity"><dir name="MDN"><dir name="Antidot"><dir name="Block"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="2158b991ccdf394c8cd47cab00829e4d"/><file name="Boolean.php" hash="d17b08e1ec9047cf4050442ababd0808"/><file name="Category.php" hash="78cb53233ad74a2b5496d6f7857d8837"/><file name="Decimal.php" hash="75b31617bca2a8f20ee7fe113e3534f2"/><file name="Price.php" hash="244068a33e8ba64423c126baf883d2b5"/></dir><file name="View.php" hash="bbdd9bb31663415001ab3751c6737cde"/></dir></dir><dir name="Catalogsearch"><file name="Articles.php" hash="6c3bff571dce7e4141af09ded261773f"/><file name="Banner.php" hash="cbeb4d71c146a75cbbd0eb15a0f5727f"/><file name="Category.php" hash="e9605415ba85929115a443b1b4f00ab0"/><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="2b274bf7d8f8dbd915bdf73f65e694fc"/></dir></dir><file name="Layer.php" hash="3ba32c0f20c4b7447229843f45b06d3f"/><file name="Result.php" hash="887530a08ce375d1722fc327eebc64fc"/><file name="Stores.php" hash="3e5caa7f44d4634ed40a9f520dbed9e7"/></dir><dir name="Html"><file name="Select.php" hash="fc7fb19df1dd378d4e9e0860d2d47d07"/></dir><dir name="System"><dir name="Config"><dir name="Button"><file name="AfsStore.php" hash="4f00570d46d27d1cf89785e8db42a332"/><file name="Forward.php" hash="3917a1882c3d55837138782e60791167"/><file name="PushArticles.php" hash="c7d0ce7326c7f706c0432a2ffb57fee2"/><file name="PushCategories.php" hash="2caeb40ae6a5abe77be2ca666c01ed81"/><file name="PushProducts.php" hash="3eb6538ab55257b0a83021ff1ecbf632"/><file name="PushStores.php" hash="665af5f753ed11a077e03a0c77628573"/><file name="RestoreTemplate.php" hash="ffbbb0a73ff1ede611262a6a4da1a188"/><file name="ShowXml.php" hash="417ba0c9c62d8070b63f90397887dcc0"/></dir><dir name="Fieldset"><file name="Notice.php" hash="cf5aa45ebac84546ede622b9beb9d588"/></dir><dir name="Form"><dir name="Field"><dir name="Array"><file name="AcpFeeds.php" hash="27d2e08c2efb798f6e675b4db6479ca3"/><file name="Additional.php" hash="d62316e3631c1c2b6a0119134c8002a8"/><file name="AdditionalFeed.php" hash="dcfb6d37d765a10e4a07465e70133dda"/><file name="ArticleAdditional.php" hash="38c62d610f585c460151841f7350348b"/><file name="ArticleIdentifier.php" hash="ec9479fd1ca087a1fe924795cc9ff5f6"/><file name="DefaultSort.php" hash="4989d99a73f57bed1fb994060cc38a72"/><file name="Facet.php" hash="43146cf961a469f371aeb24418a6f401"/><file name="Identifier.php" hash="a9fa99227182bd72e59c9a315d580247"/><file name="ProductAdditionalFacet.php" hash="8d46e427d9efbac7e6ba04fdc88d4728"/><file name="ProductAdditionalField.php" hash="9c9f9c9c1c940963e1a24c039a392cc4"/><file name="ProductIdentifier.php" hash="d30809119cb35018697533075f7ee485"/><file name="Sort.php" hash="f986fbb048bf3f6aec813cdc1c70ec15"/><file name="Tabs.php" hash="3d1d5d89ae6263b0a0ec61eb549658ec"/></dir><file name="CategoryAttribute.php" hash="c119ca65f23950e7abb1f0d60e8b4755"/><file name="ProductAttribute.php" hash="6a61b98a9f6ac883a5e162e3edab300d"/></dir></dir><dir name="Html"><file name="Export.php" hash="f36beeca11c51e1a2e9678955d8cf1b8"/><file name="ShowXml.php" hash="7b70f39937aa9d24336edde6bdbdf97c"/><file name="Version.php" hash="34c624c382f3061cf322cfed52c416ac"/></dir></dir></dir></dir><dir name="Helper"><file name="Antidot.php" hash="7bbd2866c65a847e1415badb1ef0d015"/><dir name="CatalogSearch"><file name="Data.php" hash="25d8f53c6165bbe8f90c83108654fcf8"/></dir><file name="Compress.php" hash="12fa64a9c9f519a3f249954ab780e01c"/><file name="Data.php" hash="453edcc9b2810e4e554fc3828e22452e"/><dir name="Enterprise"><dir name="Search"><file name="Data.php" hash="8bfe0146c64511f86cb796638b65112f"/></dir></dir><file name="LogExport.php" hash="bb599102015fef0d060f3d4d47adb3cb"/><dir name="ManaFilters"><file name="Data.php" hash="f4f4e92c5e33c6142904cf27a75f6d23"/></dir><file name="Url.php" hash="1d2ee02a8e135bfc4b866f5219f62acd"/><file name="XmlWriter.php" hash="66cf65d950caddf895c823c5575a1912"/></dir><dir name="Model"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="3cd18414abccea60c5497931bc95e21e"/><file name="Boolean.php" hash="dd0414e0d96833bec6e32aac321c2763"/><file name="Category.php" hash="4dea470cb36708e0ae4b95bd0a24a85f"/><file name="Decimal.php" hash="b9b1e2cff1d0332fab77d101dca4c3d2"/><file name="Item.php" hash="c89bbca267af18a0447e0daf3e7cc8eb"/><file name="Price.php" hash="7529be0313a19896993f92eeb9dfc8a9"/></dir></dir><file name="Layer.php" hash="706000dd944a45f30826eccba2942862"/></dir><dir name="Catalogsearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="a83d6761a949c8196cba33948a48c8bf"/></dir></dir><file name="Layer.php" hash="b5aa8e2cc24f1b1362749049f1cdec32"/><dir name="Resource"><file name="Attribute.php" hash="80d2a34d746f307109b6bf910b0f2958"/></dir></dir><dir name="Export"><file name="Abstract.php" hash="8d20574426b00a9103b26597205abe12"/><file name="Article.php" hash="7237e30c0f9253af4477cbe0b63a3c73"/><file name="Category.php" hash="e4c1f09bd75f6cda693ab6aab084e5b4"/><file name="Context.php" hash="4b453ee785553ed148ed8459ac9258e9"/><dir name="Model"><dir name="Product"><file name="Link.php" hash="6f764a25fcde9b315d10f46189a428d1"/><dir name="Type"><file name="Configurable.php" hash="4bb627c1f5d1fbadd37a6b54e681406f"/><file name="Grouped.php" hash="8770d1ddf8228a2db136325da494de51"/></dir></dir><file name="Product.php" hash="a56c7e50bbd95c57570e38d911976962"/></dir><file name="Product.php" hash="b6944fe749783a600c27fa516884e8a0"/><file name="Store.php" hash="3503a5e743efa257755a76c2c017bbd2"/></dir><file name="Observer.php" hash="c7916b674f1388985328e3af7695fa93"/><dir name="Resource"><file name="Advanced.php" hash="989026021706cbcfb269451187002c19"/><dir name="Catalog"><dir name="Product"><file name="Collection.php" hash="7c0a02eeda1d6c0ada06ea49493f2b01"/></dir></dir><dir name="Engine"><file name="Abstract.php" hash="bdd9813de433ae197ee1bc290ff88bce"/><file name="Antidot.php" hash="4e19a0fe05be0a1e0aa2be26eedf6ffd"/></dir><dir name="Export"><dir name="Product"><file name="Collection.php" hash="dfa31e927797fb1887aec5fcec2747d1"/><dir name="Link"><dir name="Product"><file name="Collection.php" hash="a50b67c39520422770b4b16d4ab51ba0"/></dir></dir><dir name="Type"><dir name="Configurable"><dir name="Product"><file name="Collection.php" hash="79d359ae0e176d3499225452d983c210"/></dir></dir></dir></dir><file name="Product.php" hash="f3e87d35ea55e911948f3909274e29b3"/></dir></dir><dir name="Search"><file name="Abstract.php" hash="fd71154b987b16f8d13bc3e10a3faeac"/><file name="Search.php" hash="fa499c1b185ced3eb1be2b4940037e24"/><file name="Suggest.php" hash="668438520f2e91b6b332f044c676b769"/></dir><dir name="System"><dir name="Config"><file name="ArticleAttribute.php" hash="f3a9596d45f275299f16530a56845c96"/><dir name="Backend"><file name="Engine.php" hash="68c93651655a77c74fd79d1de6d19be3"/></dir><file name="CategoryAttribute.php" hash="9f19b99e16c99b0e8052b1e31d2a6317"/><file name="Dir.php" hash="c80d83280ebc5ab91fd45d246ec47ba3"/><file name="DisableEnable.php" hash="6d08f33a1580b2fd1d58d87248104166"/><file name="ExportType.php" hash="940a74862d74f7873258b35c33b7b87a"/><file name="Facet.php" hash="8b771072a32f32e81a087581ace7fd72"/><file name="Number.php" hash="7985ea6c495a35173d68291389319f93"/><file name="Options.php" hash="06930da994dec4bb05ebc3f3e8c8abb8"/><file name="ProductAttribute.php" hash="c74ad00177c3a12b03c8684928d12c40"/><file name="PromoteRedirect.php" hash="c167973ea7a0ef09f0e5fa0fd0a08926"/><file name="Sort.php" hash="e0d2c1e72f56894b75baebcb6c4b8609"/><dir name="Source"><file name="Acpengine.php" hash="fdf8d5030d8823c325d707d8bb5b7208"/><file name="Engine.php" hash="0491592c4612779ffc7890456f6b946d"/><file name="Redirect.php" hash="ea6cb67ab98a0303d5c30c49099f5708"/></dir><dir name="Suggest"><file name="Type.php" hash="cef491efdb9fcef86d0df75030206a78"/></dir><file name="WSStatus.php" hash="ff4954e15d75dd3139290d96773d0abf"/></dir></dir><dir name="Transport"><file name="Abstract.php" hash="3272c44b08523a9836aa15c835e2ed25"/><file name="File.php" hash="4b0b2ef7940fc8cd60e96cc74a2c84f0"/><file name="Ftp.php" hash="73056ec4decef2fe9c459641e0a0ae7e"/><file name="Http.php" hash="807dfd219fad274e5a0f959c5ca2accc"/><file name="Interface.php" hash="40cfaad8efccad7dc3ff7a920dee871a"/></dir><file name="Transport.php" hash="dfbe060f5575304736ba805f597f7393"/></dir><dir name="Test"><dir name="Block"><dir name="Catalogsearch"><file name="Layer.php" hash="49725570e661d72db50daab46e0e18af"/><dir name="Result"><dir name="fixtures"><file name="testSetListOrders.yaml" hash="3077a3199216b898963f1bcf9f4d7396"/></dir></dir><file name="Result.php" hash="a780e377612d4481c4f0c96311005620"/></dir><dir name="System"><dir name="Config"><dir name="Button"><file name="AfsStore.php" hash="dcbfefb440b8512b1298b624a3582076"/></dir><dir name="Form"><dir name="Field"><dir name="Array"><file name="AcpFeeds.php" hash="11c6c503d9af481d7872d7a43994a9c3"/></dir></dir></dir></dir></dir></dir><dir name="Helper"><dir name="CatalogSearch"><file name="Data.php" hash="a40c1e58b5000432763aa07dd49d4b5d"/></dir><dir name="Data"><dir name="fixtures"><file name="testGetActiveResultTabsCase1.yaml" hash="3b8a646c590f59910155a0a7e3d9283c"/><file name="testGetActiveResultTabsCase2.yaml" hash="4a0f99d4ea1b63cf51abc9ff83c822ea"/></dir></dir><file name="Data.php" hash="8cfba839e315c050c42dc2798d18bf8b"/></dir><dir name="Model"><dir name="Export"><dir name="Abstract"><dir name="fixtures"><file name="testGarbageCollection.yaml" hash="de6c8672be0c24a102ebfed004f2361b"/></dir></dir><file name="Abstract.php" hash="434f7a81228d7cb4554bbd2da4c86d5f"/><dir name="Article"><dir name="fixtures"><file name="testWriteXml.yaml" hash="e8f832fb8e943b78920495e0ca4d55e9"/></dir></dir><file name="Article.php" hash="8b250685c1575480754c31969cb1edfd"/><dir name="Category"><dir name="fixtures"><file name="testEmptyFile.yaml" hash="9573e620466cfe8260f8a87e274c8261"/></dir></dir><file name="Category.php" hash="42164121852311eb200af116e0a20d58"/><dir name="Context"><dir name="fixtures"><file name="testContext.yaml" hash="d912a7bd71a209f591043a3644de3ceb"/></dir></dir><file name="Context.php" hash="c5af056a47ee7acdacbe7072a825ce90"/><dir name="Model"><dir name="Product"><dir name="fixtures"><file name="testGetIsInStock.yaml" hash="b9a95c8ad5b3999221d027192d79fe55"/></dir></dir><file name="Product.php" hash="a3b6765c5c663caa1a50dc511c78db5e"/></dir><dir name="Product"><dir name="fixtures"><file name="testInactiveParentCategory.yaml" hash="3ef9bcefae6399ccdc23e026746a1743"/><file name="testWriteImageUrl.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWritePricesFixedtax.yaml" hash="698da07581100c1eff5a1a85e2be6d3b"/><file name="testWriteProductNoVariant.yaml" hash="626a27b35977e5a52b02f85011c5e216"/><file name="testWriteProductNoVariantInStock.yaml" hash="9aa7736a422276842350ac73c6f4ba55"/><file name="testWriteProductUrl.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWriteProperties.yaml" hash="d434749b80908bbceefd5781e2d0e998"/><file name="testWriteXml.yaml" hash="8a702dfbd07f2d773d991679a2c219a0"/></dir><dir name="providers"><file name="testWriteImageUrl.yaml" hash="666c33585c611bcc0b0ebe6e87dce1fc"/><file name="testWriteProductUrl.yaml" hash="18f511460efea04586fc888f5c85b3ea"/></dir></dir><file name="Product.php" hash="032f8ca084fb1ec71aeac8ca0ffb2d6f"/><file name="Store.php" hash="cc5f45a688f200b19f538ae3924f2b08"/></dir><dir name="Observer"><dir name="fixtures"><file name="testGetDefaultContext.yaml" hash="d77af9c502bf7e7c90fdb3aad609c087"/></dir><dir name="providers"><file name="testGetOwnerForFilename.yaml" hash="c5c07e73f536f9ffacc0c3ff6b5a13d1"/></dir></dir><file name="Observer.php" hash="f4eef1f9853d0a95e7380a4c0d89ca78"/><dir name="Resource"><dir name="Catalog"><dir name="Product"><file name="Collection.php" hash="2ad006d8e096ade9043a9a370177782d"/></dir></dir><dir name="Engine"><dir name="Antidot"><dir name="fixtures"><file name="testFormatResult.yaml" hash="f4aa0a050156b55c5733c5d30f4255ed"/></dir></dir><file name="Antidot.php" hash="5dff5053128f275557772330716da04c"/></dir></dir><dir name="Search"><file name="Search.php" hash="508a9b666ae171344224cd59ed70e59d"/><dir name="Suggest"><dir name="fixtures"><file name="testFeedConfig.yaml" hash="e20aa186fc8b152840b889a7c7956592"/><file name="testSuggest.yaml" hash="e845f0311d93608e3221fb0678f429cc"/></dir></dir><file name="Suggest.php" hash="76ba005020802384a7ad4da5322562dc"/></dir><dir name="System"><dir name="Config"><dir name="Facet"><dir name="fixtures"><file name="testToOptionArray.yaml" hash="b76143bd57f68be024a31d905da9cabe"/></dir></dir><file name="Facet.php" hash="0115c27c5881ff9d35f18a251686dc68"/><dir name="Sort"><dir name="expectations"><file name="testToOptionArray.yaml" hash="13fc5b4c17962fb267f443d03a2219b2"/></dir><dir name="fixtures"><file name="testToOptionArray1.yaml" hash="3160d541123737644dfea5c70db35f41"/><file name="testToOptionArray2.yaml" hash="74fd97f93892920908ab7eab0124eeb6"/><file name="testToOptionArray3.yaml" hash="fe9c8a5da75f3c0d66304a39c473a3bb"/></dir></dir><file name="Sort.php" hash="3435402ae9aa30d18c8265433d643d21"/><dir name="Source"><file name="Acpengine.php" hash="482bcb056949d9d52eda623ee9bdca0d"/><file name="Engine.php" hash="dcbee0d360773c28faa8a894cbed22ad"/><file name="Redirect.php" hash="2dbbaecbb8453ba1025e2e9b5a5957c3"/></dir></dir></dir><dir name="Transport"><file name="Http.php" hash="6ca0294a1e1b076bca777dc34500623d"/><dir name="fixtures"><file name="testSend.yaml" hash="af0bc3c97a109e63aaf018f57ddad6cd"/></dir></dir></dir><file name="PHPUnitUtil.php" hash="2a128a7c19f4c37cb9dd7fc60e679693"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Antidot"><file name="PushController.php" hash="328ec7b1c8198ca714468fff8937f2f3"/></dir></dir><dir name="Front"><file name="SearchController.php" hash="d220bd4628830ea238775ed9788e0674"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="7190cd220b09b657ba9b767614aeebb2"/><file name="config.xml" hash="18c1950a48be4c9a97aec9daf04321a0"/><file name="system.xml" hash="b5113a4b6a2012ef82f81c337ed5ed51"/></dir><dir name="sql"><dir name="Antidot_setup"><file name="mysql4-install-0.9.php" hash="62672bc47ea92dbd46966fb76e4251e0"/><file name="mysql4-upgrade-1.2.1-1.2.2.php" hash="fe774495c51921c2affeb8a472c049ff"/><file name="mysql4-upgrade-1.2.2-1.2.3.php" hash="d48b875617e5acd372e7e91d95babe13"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="antidot"><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="acpfeeds.phtml" hash="df37a23d2bd1e2d351eeffa97e97998c"/><file name="tabs.phtml" hash="7ae0f16afb6783b48ed965825dcfa356"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="antidot.xml" hash="090bfc2f9ca454bbb58f629be359ea03"/></dir><dir name="template"><dir name="antidot"><dir name="catalog"><dir name="layer"><file name="category.phtml" hash="125de3812ded3b341ab6f1a1f2f92777"/><file name="filter.phtml" hash="2304baebff9b798e0ebd977fbc891346"/></dir></dir><dir name="catalogsearch"><dir name="result"><file name="articles.phtml" hash="5131ea46e2c4c9db67b07991e848e59a"/><file name="banner.phtml" hash="4dc4b69ef2dd51aad9689dbfb2bf8f48"/><file name="category.phtml" hash="7413580b825508f2cfc08566d62369ae"/><file name="stores.phtml" hash="fd33169d4d4bf1d7dbeefc31cb3b91be"/></dir><file name="result.phtml" hash="de6eecf5bd733d3440c843133afea8b6"/></dir><dir name="page"><file name="antidot_results.phtml" hash="32a5e10491b1e856514841e9ae90727e"/></dir></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="template"><dir name="antidot"><dir name="page"><file name="antidot_results.phtml" hash="544cac2df5b1e6e20b9eb2673a869774"/></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="1ad37187a5e7327ab3a5abf797c06d3c"/></dir><dir name="de_CH"><file name="MDN_Antidot.csv" hash="1ad37187a5e7327ab3a5abf797c06d3c"/></dir><dir name="de_DE"><file name="MDN_Antidot.csv" hash="1ad37187a5e7327ab3a5abf797c06d3c"/></dir><dir name="es_AR"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_CL"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_CO"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_CR"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_ES"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_MX"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_PA"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_PE"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_VE"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="fr_CA"><file name="MDN_Antidot.csv" hash="fb817b50d4bba5e35dbb50cc17c523f8"/></dir><dir name="fr_FR"><file name="MDN_Antidot.csv" hash="fb817b50d4bba5e35dbb50cc17c523f8"/></dir></target><target name="mageweb"><dir name="js"><dir name="mdn"><dir name="antidot"><file name="CollapsibleLists.js" hash="86792ecde0c2759ba85e0d863dd147ce"/></dir></dir></dir></target><target name="magelib"><dir name="antidot"><dir name="AFS"><dir name="ACP"><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="acpConnectorTest.php" hash="25a8194f3dc8895640df4f4bba895d8e"/><file name="acpQueryTest.php" hash="74ad65a4af639a409ee72a75a2a043d6"/><file name="acpReplysetHelperTest.php" hash="4f0a0d471a06e139cd11c715b67ebe81"/><file name="acpResponseHelperTest.php" hash="6d30f99108db0d9956aef9ba5e1d88df"/><file name="acpTest.php" hash="d6119d150543e7943ba4e9907901ae5d"/></dir><file name="afs_acp.php" hash="78dbfbc92f68469c92898f1da4263e68"/><file name="afs_acp_configuration.php" hash="2d644cc6c5bf2cdaeca5780576c4bf0e"/><file name="afs_acp_connector.php" hash="b72439562b02024e0b9629c18394985d"/><file name="afs_acp_exception.php" hash="f610d2cc37a15d4b981d7b43939414ad"/><file name="afs_acp_query.php" hash="ced0629355f5d4fc1c219d1adb03297d"/><file name="afs_acp_query_manager.php" hash="b3348972a850c904fc664b4e27671439"/><file name="afs_acp_reply_helper.php" hash="b0259f24f10d2e92ed6e3b8cdaaacc44"/><file name="afs_acp_replyset_helper.php" hash="07e7fdb88a42a399c96261c47ffb0231"/><file name="afs_acp_response_helper.php" hash="33a66106fd3a94194514a0d8d39af1cd"/></dir><file name="Makefile" hash="7bb31592939024f74745d6b6cb7fec0b"/><dir name="SEARCH"><dir name="FILTER"><file name="Makefile" hash="d42338199c6857ded179af2117b9f571"/><dir name="TEST"><file name="Makefile" hash="ab37090c6c5e7af1b260376237737700"/><file name="filterBuilderTest.php" hash="161ff5c8e73914eef884d17456afa133"/><file name="filterCombinationTest.php" hash="2162288d5255d3b24fe94d75b939aa51"/><file name="filterTest.php" hash="1682c0a4d50158a8d2c9369d30e45a18"/><file name="groupFilterTest.php" hash="1ebe8ce7344ed64b93cf94632d3b0184"/></dir><file name="afs_combinable_filter.php" hash="336e6c6bc9ebae3f58602d23ef734182"/><file name="afs_combinator_filter.php" hash="e2fc560b9c0c31f20c73f2057a8b7b69"/><file name="afs_filter.php" hash="6dbfc8c668cd48510cc9a9243d1bf4c3"/><file name="afs_filter_exception.php" hash="ccce583c63a4a65f7f0a27fc4a487505"/><file name="afs_filter_wrapper.php" hash="30dec104456abc037019ad93922b5afd"/><file name="afs_group_filter.php" hash="b95fa3bc0e26bc39dfc53a6010bce32f"/><file name="afs_native_function_filter.php" hash="37176bdbc66cc3dca18149132921f0a5"/><file name="afs_operator_filter.php" hash="c7ea43c8d64eedbe33397f61737e0226"/><file name="afs_valued_filter.php" hash="483653071734f77972c9b9771e187d82"/></dir><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><dir name="DATA"><file name="introspection_responses.php" hash="f07c0b4031d798b80e9a2647cc44f20c"/></dir><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="clientDataHelperTest.php" hash="1556ab047e1df23447586d529768befd"/><file name="clusterHelperTest.php" hash="e112e7c756f63c8e8ceb554281b418c9"/><file name="conceptHelperTest.php" hash="b44e39b62d0537bf1f7b7feb23f8111f"/><file name="facetDefaultTest.php" hash="382e4ea35e1c7173371b4a84046a38e5"/><file name="facetHelperTest.php" hash="4af0256294abbea651d1b8d06832556b"/><file name="facetManagerTest.php" hash="bbef8e207c387dbe6a26142fd55264d5"/><file name="facetTest.php" hash="26123aa75cb2597a3ededfa9d778095d"/><file name="facetValuesSortOrderTest.php" hash="b650080bf9b2cce2ac42a245cb84c911"/><file name="feedCoderTest.php" hash="f2b5dfdd4fa3c4e5d14c790d15235146"/><file name="filterCoderTest.php" hash="46249fa13edccf1e5d5000daf2573b77"/><file name="headerHelperTest.php" hash="62185c34e1e9015bb12014d719287f06"/><file name="helperConfigurationTest.php" hash="be3f74e53e27744e8214f3c341172796"/><file name="intervalTest.php" hash="912389dad049853f6bf0b4eab2af5034"/><file name="introspectionTest.php" hash="351c963d3e1b077c74d029a0d0f58539"/><file name="metaHelperTest.php" hash="080f160b54636c4eee743544a6a12bee"/><file name="metadataHelperTest.php" hash="15435661053dbc0b780f57fdcc343b33"/><file name="pagerHelperTest.php" hash="d96a9891523e453647493f3219e86357"/><file name="promoteBannerReplyHelper.php" hash="94c3c14517536437e9800eaa706fbe29"/><file name="promoteRedirectReplyHelper.php" hash="ed00c66be5127d8b374f6416abf328ef"/><file name="promoteReplyHelperTest.php" hash="7cbb68a7f50c2bd2ef11a085ac94deb2"/><file name="promoteReplysetHelperTest.php" hash="ac2f1e3073015143dc7b2b705711c845"/><file name="queryCoderTest.php" hash="03983a114c6697464f8bf016822ff4a3"/><file name="queryOrchestrationTest.php" hash="02867da7662cdb9f005eb9c1e73dfa30"/><file name="queryTest.php" hash="338264d8e6dbbc09e88bd9a8179e8be4"/><file name="replyHelperTest.php" hash="4d86f19ea7de2aece5d7fd9c143c3dbc"/><file name="replysetHelperTest.php" hash="897f074b8382c6853f51b06a5ee50b0a"/><file name="responseHelperTest.php" hash="269c1af42785d8bcc90ff9139565b0d3"/><file name="searchConnectorTest.php" hash="9201de573884b643041b6c32bc535e7e"/><file name="searchQueryManagerTest.php" hash="2188b262a1c11422bcc8133f68fa6dd9"/><file name="searchTest.php" hash="fa47a7819b5c7c71172d6b1f1e7a02f7"/><file name="spellcheckHelperTest.php" hash="49960fb90055dcf265ef41e491c11325"/><file name="spellcheckTextVisitorTest.php" hash="203f0d08f548a39135517a41f6e9e43a"/><file name="textVisitorTest.php" hash="b722845dd0f5f953574cb51284ad025b"/></dir><file name="afs_base_reply_helper.php" hash="57abe4828b7ed7126db963764faa718a"/><file name="afs_base_replyset_helper.php" hash="096b124a3ebdc6e8d6beb359bd8bb7c5"/><file name="afs_client_data_exception.php" hash="899957af974d04aa7eaca44903a7f86c"/><file name="afs_client_data_helper.php" hash="4700218e2400350014fde428bc86806b"/><file name="afs_cluster_exception.php" hash="86d97623db7aebaa28a20857ce2cf17f"/><file name="afs_cluster_helper.php" hash="60b7fbcc869a672929ef9fc6d840d2b2"/><file name="afs_cluster_parameter.php" hash="20ed527d3ed1a6cf2bc80e032ecd2c7e"/><file name="afs_coder_base.php" hash="fb87fbea43d12695154b3b6102e2a019"/><file name="afs_coder_interface.php" hash="3b179b2513e215751ee4edd190b2a719"/><file name="afs_concept_helper.php" hash="982cf3d2063c565cf19cc6136b049066"/><file name="afs_count.php" hash="9f83f3baa3cf4462c0db786f4eea479a"/><file name="afs_facet.php" hash="1b4d7d35ebe8ed4894fda4881d0b168f"/><file name="afs_facet_combination.php" hash="005e9742ee032194b86856195dd59f7d"/><file name="afs_facet_default.php" hash="cbcb5d28b7b00815ce5248017065e84b"/><file name="afs_facet_exception.php" hash="f1f0afdbf9a727b53c4731e5a40ac417"/><file name="afs_facet_helper.php" hash="b8ad96c57ec80f40bd21a39bb9b5fbb5"/><file name="afs_facet_helper_retriever.php" hash="5628cc41c50ab25fd3336df302d903f4"/><file name="afs_facet_layout.php" hash="c83f6fef1c13ba3cda667c611841ff87"/><file name="afs_facet_manager.php" hash="a3fabb34d56a9614d4a0a2917f6fea0c"/><file name="afs_facet_mode.php" hash="8dcac389a37f8267a367400377631dba"/><file name="afs_facet_sort.php" hash="0d7ba4059b10da9981b9c801355cb874"/><file name="afs_facet_type.php" hash="6df82cbfa627629f9523437994d1fbb1"/><file name="afs_facet_value_formatter.php" hash="d6580281f9ef5c0820615ac385aae863"/><file name="afs_facet_values_sort_mode.php" hash="17def98365132c810515f8cf3c6fb006"/><file name="afs_facet_values_sort_order.php" hash="f95f77cb5dd7015e4f2e6094ddba49a6"/><file name="afs_feed_coder.php" hash="ed7b40e872a7ed5aa30adbcffc05de56"/><file name="afs_filter_coder.php" hash="4edbdcf6760d80465e5d2533014ba307"/><file name="afs_filter_parameter.php" hash="2b03c2c83ffe2e2968aaf50ad4903921"/><file name="afs_fts_mode.php" hash="edbd9342cd9625183e1e01ed81b79fc3"/><file name="afs_header_helper.php" hash="c123aeb736bf2e0506e56831fe516800"/><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_introspection.php" hash="24fdebf9ce3ca4755f6c67233661684c"/><file name="afs_meta_helper.php" hash="8403689868c98db725ebd11748508c8b"/><file name="afs_metadata_helper.php" hash="749c506ea001f63e483934a0647067e6"/><file name="afs_pager_helper.php" hash="077052931e0cffb1e589c21b57156b38"/><file name="afs_producer.php" hash="7c8c515ccb8126523fa0d09a7f759dd5"/><file name="afs_promote_banner_reply_helper.php" hash="418702b3c053029b3aa8fcb2775c65bd"/><file name="afs_promote_redirect_reply_helper.php" hash="be17eda6f8b4552b9ec21183362171a2"/><file name="afs_promote_reply_helper.php" hash="0e2a4f67cd307f74e8b64cd3b158235c"/><file name="afs_promote_replyset_helper.php" hash="fdefc6f8a686addb31ea9b6c0a3fa5ad"/><file name="afs_query.php" hash="bd969a62cd4bbbcb5b9996eaa19353f7"/><file name="afs_query_coder.php" hash="ca0bfad66b8d8549ab3f33380d716732"/><file name="afs_query_coder_interface.php" hash="dd16f17b3606a7418c1c714475b19b51"/><file name="afs_query_object_interface.php" hash="a9af13e2c856e4136ccadfff60f72d36"/><file name="afs_raw_text_visitor.php" hash="fd574583c4c9110165c1cadc67b832de"/><file name="afs_reply_helper.php" hash="3919f9e83cba62be9bc67117b1087b03"/><file name="afs_reply_helper_factory.php" hash="f159f7d0ef7e5a209fb872a970d0d582"/><file name="afs_replyset_helper.php" hash="cb8f81391d9a59904dcb0c3d6ae31999"/><file name="afs_response_exception.php" hash="0a865bb92fb700ae555dcb5ae675f644"/><file name="afs_response_helper.php" hash="f14628e4a9b9d1259af466dd5dadae26"/><file name="afs_search.php" hash="3f2e3ef447515a2fa05b270654ef2969"/><file name="afs_search_connector.php" hash="17242fb6536f4596b2c0198a16986310"/><file name="afs_search_query_manager.php" hash="77e30683ee4ba9e004e9c7c12d9c811d"/><file name="afs_sort_builtins.php" hash="0cc1617a62f1a834a28d7d2ac249b081"/><file name="afs_sort_coder.php" hash="1dfe2d32278383d8465df67535cb91dd"/><file name="afs_sort_order.php" hash="7755deb99386650c9974871474168cda"/><file name="afs_sort_parameter.php" hash="bfb8c59c1560ec8a3b597dc45aa8ecd5"/><file name="afs_spellcheck_helper.php" hash="bb5465848ada7a9df9875f2565fb9686"/><file name="afs_spellcheck_text_helper.php" hash="3ca5c3118660aa600aadb504ceff6c4c"/><file name="afs_spellcheck_text_visitor.php" hash="c44c23ae21f61b065e457911bbc45ed2"/><file name="afs_text_helper.php" hash="59c4ae24560948c3af0f4adbf6bd1803"/><file name="afs_text_visitor.php" hash="867b44a280403cd4567358ec6d59588a"/></dir><file name="afs_configuration_base.php" hash="f26dd9efda4923cc2c71057f21be97d9"/><file name="afs_connector.php" hash="aa04a21163b57ef338bf96bd55e95882"/><file name="afs_exception.php" hash="c1840fe279f9cb313cec151012ed4513"/><file name="afs_feed.php" hash="005305cace79a3aa7719a3c942df9da7"/><file name="afs_multiple_values_parameter.php" hash="96dc30f1fbf137cbfd73c2b195d9f9ef"/><file name="afs_origin.php" hash="a6b7e39a687210572c116afcbea0e7cb"/><file name="afs_query_base.php" hash="7209115a714d9b7de209a0af691c1d22"/><file name="afs_query_parameter.php" hash="6552428d955d0a48c015e1f98ba62815"/><file name="afs_response_helper_base.php" hash="b087f7bdad35ed0526566042ef9afc8c"/><file name="afs_single_value_parameter.php" hash="65d002d7ac6b6e8dd6170309b4c84649"/><file name="orchestration_type.php" hash="047eab54be2eba5500ef747ab7f139b9"/></dir><dir name="AIF"><file name="Makefile" hash="2d232abf9913fcabb44033d5e5d1ebfd"/><dir name="TEST"><file name="Makefile" hash="24d3030d27e88732028d14fb1d81c203"/><file name="afsMultipartResponseTest.php" hash="70a64d0d599ea01806fac2126fb3680a"/><file name="authenticationTest.php" hash="2e476e9ab15ee221ddd63bb555262a28"/><file name="bowsInformationTest.php" hash="3bbfe71f431a35f0285afdca40906874"/><file name="documentManagerTest.php" hash="ad90a6146f5aeee383355bb05425b3dd"/><file name="documentTest.php" hash="59b204b10b90cd764b259ad4c2bc043a"/><file name="pafConnectorTest.php" hash="ac2928b501d9ea167af43dbf3adafa7d"/><file name="pafLiveTest.php" hash="92862c31d151c34b2caf44bff9d0fb80"/></dir><file name="afs_about_connector.php" hash="8972264a9b7cce237ad1a4b47852b529"/><file name="afs_authentication.php" hash="4285035550c9681a047b85abbca64936"/><file name="afs_bows_connector.php" hash="47a6bcafd5eba2361d2cea409f60d3f7"/><file name="afs_bows_connector_interface.php" hash="8fdf9749f0500a39741d696feb55af14"/><file name="afs_bows_exception.php" hash="1bd8657a37b8b4a9e08bfc4eb6b7e416"/><file name="afs_bows_information.php" hash="1f96a4cd84b2332f1186f9e0cea8542d"/><file name="afs_bows_information_cache.php" hash="1ae9a9243342c4e58a52e70473b68472"/><file name="afs_document.php" hash="c0003ec962a79b9d3f642b17bade0fff"/><file name="afs_document_manager.php" hash="8c5c0105d9337b7ae6a9f041f643ea88"/><file name="afs_multipart_response.php" hash="f2077c9eaf121fabdb2fc26c23b2e256"/><file name="afs_paf_connector.php" hash="e787ede85ec77a7bb2c25e666e0c0403"/><file name="afs_paf_live_connector.php" hash="87be0a822a7e18c24ed770050523b4cf"/><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="e9fc1284316d907b98f61ce7a43e1721"/><file name="afs_connector_interface.php" hash="68ad5e20a861b85dbf198f79cd2afd4c"/><file name="afs_exception.php" hash="b8eed4376088ae3003d0b77cc523e732"/><file name="afs_helper_base.php" hash="839cca78a663c3a22b4a8e35d1460129"/><file name="afs_helper_format.php" hash="30a3f6e945db7412ef95e83e7b0b5898"/><file name="afs_language.php" hash="277acb15b86089b37c812c47f2141d3c"/><file name="afs_service.php" hash="12c00c906e130860120552c40fa9dbc2"/><file name="afs_service_status.php" hash="1dee172850a76b46987534df89013878"/><file name="afs_tools.php" hash="26f6c01c5a61987925385e7a35260399"/><file name="afs_user_session_manager.php" hash="abd625f6b7b5cecf386dac9d82887764"/><file name="afs_versions.php" hash="556c912ff7f19f5083c4fb44d4d40ac6"/><dir name="lib"><dir name="JsonPath"><file name="JsonPath.php" hash="baa12e1baa9f8a20a095463042e96ad3"/><file name="JsonStore.php" hash="a9632aeb2126e98db9a49403a8f2ff77"/></dir></dir><dir name="php-SAI"><file name="README.md" hash="63ab581c83fe44918e6d074e20f08f95"/><dir name="lib"><dir name="Curl"><file name="Handle.php" hash="0fc7132737da7cee7df6b974447864ac"/></dir><file name="Curl.php" hash="358e4d3afca2035ee4d3f99f372ed15a"/><file name="CurlInterface.php" hash="714fa045dd4546d0c92cd022efb09422"/><file name="CurlStub.php" hash="fbdc0ece6321c5b5a1e27a65449f4a1f"/><dir name="rb_temp"><file name="HttpClient.php" hash="091b91c98acf9f1cd6c3d6d75cddfb88"/><file name="MultiCurl.php" hash="916e85d73bae6e136f889166ebc6db17"/><file name="SimpleCurl.php" hash="c296966a8bda96e03b464a1d3a9c8e06"/></dir></dir><dir name="tests"><file name="SAI_CurlStubTest.php" hash="bce69cbb17a40bd4eeba6bad1133216e"/></dir><file name=".gitignore" hash="09e625dea07b4d4098b19ec998d266f9"/></dir></dir><file name="COPYING" hash="b234ee4d69f5fce4486a80fdaf4a4263"/><file name="COPYING.LESSER" hash="4fbd65380cdd255951079008b364516c"/><file name="FAQ.md" hash="7d7c886674d70a0047303c5d93de6165"/><file name="Makefile" hash="225475a5a4a0204cecbb77621ff38bb2"/><file name="README.md" hash="7ecfd33825a0e6bc50cca099c1c0e50e"/><file name="afs_lib.doxygen" hash="8128d53d894cc57e08142377d13c72f4"/><file name="afs_lib.php" hash="3983ce6bee84b7aeb3f8769f06547978"/><file name="afs_version.php" hash="d6c378547ae2155e8756e6abb9cb7ddd"/><file name="composer.json" hash="39190df70fafa99d7eb5ab566e8edf3f"/><dir name="doc"><file name="afs_filter_documentation.dox" hash="3bf4b96e25d95ce5953b822038c6f135"/><file name="afs_paf_upload.dox" hash="d36893db0234f171e6cfb43f6e13d47c"/><file name="afs_search.dox" hash="b1c5ab8728703822f910852cd17561f4"/><file name="afs_search_coder.dox" hash="77709e1bc691301017f0982e0348a9b9"/><file name="afs_search_query.dox" hash="21dcd1734a165a4cb3b4f62c42a6a0be"/><file name="afs_search_reply.dox" hash="cdb1d42447671f4352927b40b3f8f37d"/><dir name="data"><file name="acp_helper_example.php" hash="2815890e7afbae78e7eb4e6fc5c88f6f"/><file name="full_example.php" hash="e152a964d06e55de460c596070c714d8"/><file name="full_lightweight_example.php" hash="eac3bb2d251052f547a9f737e5cd0461"/><file name="raw_example.php" hash="703356b9284e7fe904cf1334abbe08c9"/><dir name="templates"><file name="error_template.html" hash="70f44bd0f45470d379a11d0a2fe507e4"/><file name="facet_template.html" hash="6836005a7dae45e9415273f1eb6b78e2"/><file name="facet_values_template.html" hash="9b41f2b55a1cecae5724b4fcd4a46cfb"/><file name="meta_template.html" hash="e664a3bb222d272ce2451fb10bf46de4"/><file name="pager_template.html" hash="2700ab5b60a1f9553b1c39374fda63d4"/><file name="result_template.html" hash="1572a4ef4e8dda0b3db1ea77bbed4a98"/><file name="spellcheck_template.html" hash="8042054a1f5a271b47c77f81436c4791"/></dir></dir><file name="detailled_integration_example_with_template.dox" hash="26ef377a6ef546b636a0e254d11d01f5"/><file name="lightweight_integration_example_with_template.dox" hash="5a388d2dbfad63ad6ec353407b79a6bb"/><file name="logo-antidot-long-200x41.png" hash="1ceac3fff767fb5e395bd767344a3d13"/><file name="main.dox" hash="ca3e97f95deead927fb3298ecafbad5e"/><file name="raw_integration_example.dox" hash="56a7126d008c2e49abdf9bf0b5ec9717"/><file name="template_prerequisites.dox" hash="baa24a943e19ff3654227850bd316abb"/><file name="templates_in_details.dox" hash="5e8db94382f1fbd6c4e0b424a9edc9a3"/></dir><file name="rules.mk" hash="ff48aa6a5c40e31b3f38aba1267e9a71"/><dir name="scripts"><file name="gen_doc.sh" hash="0f6fc60aca94da563397d3c710bd9d33"/><file name="increment_version.sh" hash="431db9c60d2f94d251be07957787fcb0"/><file name="print_version.sh" hash="a05ddc19cd27ff185721fe2bd0cffc25"/><file name="version_management.sh" hash="3d5ecd39f45ba081144b3033dbd14330"/></dir><file name=".gitignore" hash="0292f51c0906b2092255872c69603f29"/><file name=".travis.yml" hash="583ae2ce82dac5eb2fac498ae3ce1dec"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="antidot"><file name="CollapsibleLists.css" hash="fa3d62a3b773c4a3cd7559843761f6d8"/><file name="catalogsearch.css" hash="88f7b8e6175e017a3f5d64548d2a0203"/></dir></dir><dir name="images"><dir name="antidot"><file name="button-closed.png" hash="563b78324e0712c0902cb4f77cb9eb86"/><file name="button-open.png" hash="c710849a0d2b61ad1f0fc36c0e59d131"/><file name="button.png" hash="97f3055c5046c851eea2dad7e5227508"/></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.2.4</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>2016-09-30</date>
21
+ <time>10:34:22</time>
22
+ <contents><target name="mage"><dir name="shell"><file name="antidotExport.php" hash="a4e184cdf1add5d42484e6997ea6f59c"/><file name="antidotExportCategory.php" hash="10de34988223fc8ca26e6f30c4070733"/><file name="antidotExportInc.php" hash="18f1b60b93245e2daf423c614dcd7efa"/><file name="antidotExportProduct.php" hash="9ddd7f0ba8e54b24665a32d26e5231b4"/></dir><dir name="i18n"><file name="de_DE" hash="f166a5ff29213a44fca77277b053897e"/><file name="en_US" hash="63c821044fda6f7c2a26dc84670b25bd"/><file name="es_ES" hash="f9319039054998955d63d51ed0930f3f"/><file name="fr_FR" hash="632367797f2fa9fef06e0b0c69377e01"/><file name="i18n.php" hash="0780b44563432f6e70de78f7a9d60f54"/></dir></target><target name="magecommunity"><dir name="MDN"><dir name="Antidot"><dir name="Block"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="2158b991ccdf394c8cd47cab00829e4d"/><file name="Boolean.php" hash="d17b08e1ec9047cf4050442ababd0808"/><file name="Category.php" hash="78cb53233ad74a2b5496d6f7857d8837"/><file name="Decimal.php" hash="75b31617bca2a8f20ee7fe113e3534f2"/><file name="Price.php" hash="244068a33e8ba64423c126baf883d2b5"/></dir><file name="View.php" hash="bbdd9bb31663415001ab3751c6737cde"/></dir></dir><dir name="Catalogsearch"><file name="Articles.php" hash="6c3bff571dce7e4141af09ded261773f"/><file name="Banner.php" hash="cbeb4d71c146a75cbbd0eb15a0f5727f"/><file name="Category.php" hash="e9605415ba85929115a443b1b4f00ab0"/><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="2b274bf7d8f8dbd915bdf73f65e694fc"/></dir></dir><file name="Layer.php" hash="3ba32c0f20c4b7447229843f45b06d3f"/><file name="Result.php" hash="887530a08ce375d1722fc327eebc64fc"/><file name="Stores.php" hash="3e5caa7f44d4634ed40a9f520dbed9e7"/></dir><dir name="Html"><file name="Select.php" hash="fc7fb19df1dd378d4e9e0860d2d47d07"/></dir><dir name="System"><dir name="Config"><dir name="Button"><file name="AfsStore.php" hash="4f00570d46d27d1cf89785e8db42a332"/><file name="Forward.php" hash="3917a1882c3d55837138782e60791167"/><file name="PushArticles.php" hash="c7d0ce7326c7f706c0432a2ffb57fee2"/><file name="PushCategories.php" hash="2caeb40ae6a5abe77be2ca666c01ed81"/><file name="PushProducts.php" hash="3eb6538ab55257b0a83021ff1ecbf632"/><file name="PushStores.php" hash="665af5f753ed11a077e03a0c77628573"/><file name="RestoreTemplate.php" hash="ffbbb0a73ff1ede611262a6a4da1a188"/><file name="ShowXml.php" hash="417ba0c9c62d8070b63f90397887dcc0"/></dir><dir name="Fieldset"><file name="Notice.php" hash="cf5aa45ebac84546ede622b9beb9d588"/></dir><dir name="Form"><dir name="Field"><dir name="Array"><file name="AcpFeeds.php" hash="27d2e08c2efb798f6e675b4db6479ca3"/><file name="Additional.php" hash="d62316e3631c1c2b6a0119134c8002a8"/><file name="AdditionalFeed.php" hash="dcfb6d37d765a10e4a07465e70133dda"/><file name="ArticleAdditional.php" hash="38c62d610f585c460151841f7350348b"/><file name="ArticleIdentifier.php" hash="ec9479fd1ca087a1fe924795cc9ff5f6"/><file name="DefaultSort.php" hash="4989d99a73f57bed1fb994060cc38a72"/><file name="Facet.php" hash="43146cf961a469f371aeb24418a6f401"/><file name="Identifier.php" hash="a9fa99227182bd72e59c9a315d580247"/><file name="ProductAdditionalFacet.php" hash="8d46e427d9efbac7e6ba04fdc88d4728"/><file name="ProductAdditionalField.php" hash="9c9f9c9c1c940963e1a24c039a392cc4"/><file name="ProductIdentifier.php" hash="d30809119cb35018697533075f7ee485"/><file name="Sort.php" hash="f986fbb048bf3f6aec813cdc1c70ec15"/><file name="Tabs.php" hash="3d1d5d89ae6263b0a0ec61eb549658ec"/></dir><file name="CategoryAttribute.php" hash="c119ca65f23950e7abb1f0d60e8b4755"/><file name="ProductAttribute.php" hash="6a61b98a9f6ac883a5e162e3edab300d"/></dir></dir><dir name="Html"><file name="Export.php" hash="f36beeca11c51e1a2e9678955d8cf1b8"/><file name="ShowXml.php" hash="7b70f39937aa9d24336edde6bdbdf97c"/><file name="Version.php" hash="34c624c382f3061cf322cfed52c416ac"/></dir></dir></dir></dir><dir name="Helper"><file name="Antidot.php" hash="7bbd2866c65a847e1415badb1ef0d015"/><dir name="CatalogSearch"><file name="Data.php" hash="25d8f53c6165bbe8f90c83108654fcf8"/></dir><file name="Compress.php" hash="12fa64a9c9f519a3f249954ab780e01c"/><file name="Data.php" hash="453edcc9b2810e4e554fc3828e22452e"/><dir name="Enterprise"><dir name="Search"><file name="Data.php" hash="8bfe0146c64511f86cb796638b65112f"/></dir></dir><file name="LogExport.php" hash="bb599102015fef0d060f3d4d47adb3cb"/><dir name="ManaFilters"><file name="Data.php" hash="f4f4e92c5e33c6142904cf27a75f6d23"/></dir><file name="Url.php" hash="1d2ee02a8e135bfc4b866f5219f62acd"/><file name="XmlWriter.php" hash="66cf65d950caddf895c823c5575a1912"/></dir><dir name="Model"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="3cd18414abccea60c5497931bc95e21e"/><file name="Boolean.php" hash="dd0414e0d96833bec6e32aac321c2763"/><file name="Category.php" hash="4dea470cb36708e0ae4b95bd0a24a85f"/><file name="Decimal.php" hash="b9b1e2cff1d0332fab77d101dca4c3d2"/><file name="Item.php" hash="c89bbca267af18a0447e0daf3e7cc8eb"/><file name="Price.php" hash="7529be0313a19896993f92eeb9dfc8a9"/></dir></dir><file name="Layer.php" hash="706000dd944a45f30826eccba2942862"/></dir><dir name="Catalogsearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="a83d6761a949c8196cba33948a48c8bf"/></dir></dir><file name="Layer.php" hash="b5aa8e2cc24f1b1362749049f1cdec32"/><dir name="Resource"><file name="Attribute.php" hash="80d2a34d746f307109b6bf910b0f2958"/></dir></dir><dir name="Export"><file name="Abstract.php" hash="8d20574426b00a9103b26597205abe12"/><file name="Article.php" hash="56f73c17cc03abbc3266d6a7c1e8bcc2"/><file name="Category.php" hash="e4c1f09bd75f6cda693ab6aab084e5b4"/><file name="Context.php" hash="4b453ee785553ed148ed8459ac9258e9"/><dir name="Model"><dir name="Product"><file name="Link.php" hash="6f764a25fcde9b315d10f46189a428d1"/><dir name="Type"><file name="Configurable.php" hash="4bb627c1f5d1fbadd37a6b54e681406f"/><file name="Grouped.php" hash="8770d1ddf8228a2db136325da494de51"/></dir></dir><file name="Product.php" hash="a56c7e50bbd95c57570e38d911976962"/></dir><file name="Product.php" hash="9bddb42063c946b536dc37a68cff082a"/><file name="Store.php" hash="3503a5e743efa257755a76c2c017bbd2"/></dir><file name="Feed.php" hash="9769748ef17bffb9ff657b24ccb74ef2"/><file name="Observer.php" hash="abfcc488c6dbc5d608d84c9101645409"/><dir name="Resource"><file name="Advanced.php" hash="989026021706cbcfb269451187002c19"/><dir name="Catalog"><dir name="Product"><file name="Collection.php" hash="7c0a02eeda1d6c0ada06ea49493f2b01"/></dir></dir><dir name="Engine"><file name="Abstract.php" hash="bdd9813de433ae197ee1bc290ff88bce"/><file name="Antidot.php" hash="4e19a0fe05be0a1e0aa2be26eedf6ffd"/></dir><dir name="Export"><dir name="Product"><file name="Collection.php" hash="dfa31e927797fb1887aec5fcec2747d1"/><dir name="Link"><dir name="Product"><file name="Collection.php" hash="a50b67c39520422770b4b16d4ab51ba0"/></dir></dir><dir name="Type"><dir name="Configurable"><dir name="Product"><file name="Collection.php" hash="79d359ae0e176d3499225452d983c210"/></dir></dir></dir></dir><file name="Product.php" hash="f3e87d35ea55e911948f3909274e29b3"/></dir></dir><dir name="Search"><file name="Abstract.php" hash="8c972e9047333d4c5d979b2a24aca142"/><file name="Search.php" hash="3f851afb198226ccc04372720852755b"/><file name="Suggest.php" hash="fe9a817575fb20edb37c204f8c763f76"/></dir><dir name="System"><dir name="Config"><file name="ArticleAttribute.php" hash="f3a9596d45f275299f16530a56845c96"/><dir name="Backend"><file name="Engine.php" hash="68c93651655a77c74fd79d1de6d19be3"/></dir><file name="CategoryAttribute.php" hash="9f19b99e16c99b0e8052b1e31d2a6317"/><file name="Dir.php" hash="c80d83280ebc5ab91fd45d246ec47ba3"/><file name="DisableEnable.php" hash="6d08f33a1580b2fd1d58d87248104166"/><file name="ExportType.php" hash="940a74862d74f7873258b35c33b7b87a"/><file name="Facet.php" hash="0bf484362ba7593750a76a95c96d7cce"/><file name="Number.php" hash="7985ea6c495a35173d68291389319f93"/><file name="Observer.php" hash="89db6f278cce86ca68f33a4eebec4631"/><file name="Options.php" hash="06930da994dec4bb05ebc3f3e8c8abb8"/><file name="ProductAttribute.php" hash="c74ad00177c3a12b03c8684928d12c40"/><file name="PromoteRedirect.php" hash="c167973ea7a0ef09f0e5fa0fd0a08926"/><file name="Sort.php" hash="6e67c32eb0e44056678e6777ef3bc93e"/><dir name="Source"><file name="Acpengine.php" hash="fdf8d5030d8823c325d707d8bb5b7208"/><file name="Engine.php" hash="14c63b2ea4ce3bfe2e62b4379b968da5"/><file name="Redirect.php" hash="ea6cb67ab98a0303d5c30c49099f5708"/></dir><dir name="Suggest"><file name="Type.php" hash="cef491efdb9fcef86d0df75030206a78"/></dir><file name="WSStatus.php" hash="ff4954e15d75dd3139290d96773d0abf"/></dir></dir><dir name="Transport"><file name="Abstract.php" hash="3272c44b08523a9836aa15c835e2ed25"/><file name="File.php" hash="4b0b2ef7940fc8cd60e96cc74a2c84f0"/><file name="Ftp.php" hash="73056ec4decef2fe9c459641e0a0ae7e"/><file name="Http.php" hash="807dfd219fad274e5a0f959c5ca2accc"/><file name="Interface.php" hash="40cfaad8efccad7dc3ff7a920dee871a"/></dir><file name="Transport.php" hash="dfbe060f5575304736ba805f597f7393"/></dir><dir name="Test"><dir name="Block"><dir name="Catalogsearch"><file name="Layer.php" hash="49725570e661d72db50daab46e0e18af"/><dir name="Result"><dir name="fixtures"><file name="testSetListOrders.yaml" hash="3077a3199216b898963f1bcf9f4d7396"/></dir></dir><file name="Result.php" hash="a780e377612d4481c4f0c96311005620"/></dir><dir name="System"><dir name="Config"><dir name="Button"><file name="AfsStore.php" hash="dcbfefb440b8512b1298b624a3582076"/></dir><dir name="Form"><dir name="Field"><dir name="Array"><file name="AcpFeeds.php" hash="11c6c503d9af481d7872d7a43994a9c3"/></dir></dir></dir></dir></dir></dir><dir name="Helper"><dir name="CatalogSearch"><file name="Data.php" hash="a40c1e58b5000432763aa07dd49d4b5d"/></dir><dir name="Data"><dir name="fixtures"><file name="testGetActiveResultTabsCase1.yaml" hash="3b8a646c590f59910155a0a7e3d9283c"/><file name="testGetActiveResultTabsCase2.yaml" hash="4a0f99d4ea1b63cf51abc9ff83c822ea"/></dir></dir><file name="Data.php" hash="8cfba839e315c050c42dc2798d18bf8b"/></dir><dir name="Model"><dir name="Export"><dir name="Abstract"><dir name="fixtures"><file name="testGarbageCollection.yaml" hash="de6c8672be0c24a102ebfed004f2361b"/></dir></dir><file name="Abstract.php" hash="434f7a81228d7cb4554bbd2da4c86d5f"/><dir name="Article"><dir name="fixtures"><file name="testWriteXml.yaml" hash="e8f832fb8e943b78920495e0ca4d55e9"/></dir></dir><file name="Article.php" hash="395ce6b4574b4feb33654f020e6113a6"/><dir name="Category"><dir name="fixtures"><file name="testEmptyFile.yaml" hash="9573e620466cfe8260f8a87e274c8261"/></dir></dir><file name="Category.php" hash="42164121852311eb200af116e0a20d58"/><dir name="Context"><dir name="fixtures"><file name="testContext.yaml" hash="d912a7bd71a209f591043a3644de3ceb"/></dir></dir><file name="Context.php" hash="c5af056a47ee7acdacbe7072a825ce90"/><dir name="Model"><dir name="Product"><dir name="fixtures"><file name="testGetIsInStock.yaml" hash="b9a95c8ad5b3999221d027192d79fe55"/></dir></dir><file name="Product.php" hash="a3b6765c5c663caa1a50dc511c78db5e"/></dir><dir name="Product"><dir name="fixtures"><file name="testInactiveParentCategory.yaml" hash="3ef9bcefae6399ccdc23e026746a1743"/><file name="testWriteImageUrl.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWritePricesFixedtax.yaml" hash="698da07581100c1eff5a1a85e2be6d3b"/><file name="testWriteProductNoVariant.yaml" hash="626a27b35977e5a52b02f85011c5e216"/><file name="testWriteProductNoVariantInStock.yaml" hash="9aa7736a422276842350ac73c6f4ba55"/><file name="testWriteProductUrl.yaml" hash="a4e08b8f1565eba67a16553cf57e1004"/><file name="testWriteProperties.yaml" hash="d434749b80908bbceefd5781e2d0e998"/><file name="testWriteXml.yaml" hash="8a702dfbd07f2d773d991679a2c219a0"/></dir><dir name="providers"><file name="testWriteImageUrl.yaml" hash="666c33585c611bcc0b0ebe6e87dce1fc"/><file name="testWriteProductUrl.yaml" hash="18f511460efea04586fc888f5c85b3ea"/></dir></dir><file name="Product.php" hash="032f8ca084fb1ec71aeac8ca0ffb2d6f"/><file name="Store.php" hash="cc5f45a688f200b19f538ae3924f2b08"/></dir><file name="Feed.php" hash="61a021049253ce5ef0676e78cd7ee87d"/><dir name="Observer"><dir name="fixtures"><file name="testGetDefaultContext.yaml" hash="d77af9c502bf7e7c90fdb3aad609c087"/></dir><dir name="providers"><file name="testGetOwnerForFilename.yaml" hash="c5c07e73f536f9ffacc0c3ff6b5a13d1"/></dir></dir><file name="Observer.php" hash="f4eef1f9853d0a95e7380a4c0d89ca78"/><dir name="Resource"><dir name="Catalog"><dir name="Product"><file name="Collection.php" hash="2ad006d8e096ade9043a9a370177782d"/></dir></dir><dir name="Engine"><dir name="Antidot"><dir name="fixtures"><file name="testFormatResult.yaml" hash="f4aa0a050156b55c5733c5d30f4255ed"/></dir></dir><file name="Antidot.php" hash="5dff5053128f275557772330716da04c"/></dir></dir><dir name="Search"><file name="Search.php" hash="b880870ded93e41e6b3fb02353c5fcb8"/><dir name="Suggest"><dir name="fixtures"><file name="testFeedConfig.yaml" hash="e20aa186fc8b152840b889a7c7956592"/><file name="testSuggest.yaml" hash="e845f0311d93608e3221fb0678f429cc"/></dir></dir><file name="Suggest.php" hash="05e0121608916207c7148f6f520215d1"/></dir><dir name="System"><dir name="Config"><dir name="Facet"><dir name="fixtures"><file name="testToOptionArray.yaml" hash="b76143bd57f68be024a31d905da9cabe"/></dir></dir><file name="Facet.php" hash="37fa34e99252a606e6538ac3a1242eee"/><file name="Observer.php" hash="3e6cbcd2983741353fb58a9e3ff2c815"/><dir name="Sort"><dir name="expectations"><file name="testToOptionArray.yaml" hash="cafba67393f96e171d7946dc8358f288"/></dir><dir name="fixtures"><file name="testToOptionArray1.yaml" hash="3160d541123737644dfea5c70db35f41"/><file name="testToOptionArray2.yaml" hash="74fd97f93892920908ab7eab0124eeb6"/><file name="testToOptionArray3.yaml" hash="fe9c8a5da75f3c0d66304a39c473a3bb"/></dir></dir><file name="Sort.php" hash="2a22450dc209b9e7e6c87b45897fe7c4"/><dir name="Source"><file name="Acpengine.php" hash="482bcb056949d9d52eda623ee9bdca0d"/><file name="Engine.php" hash="dcbee0d360773c28faa8a894cbed22ad"/><file name="Redirect.php" hash="2dbbaecbb8453ba1025e2e9b5a5957c3"/></dir></dir></dir><dir name="Transport"><file name="Http.php" hash="6ca0294a1e1b076bca777dc34500623d"/><dir name="fixtures"><file name="testSend.yaml" hash="af0bc3c97a109e63aaf018f57ddad6cd"/></dir></dir></dir><file name="PHPUnitUtil.php" hash="2a128a7c19f4c37cb9dd7fc60e679693"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Antidot"><file name="PushController.php" hash="328ec7b1c8198ca714468fff8937f2f3"/></dir></dir><dir name="Front"><file name="SearchController.php" hash="d220bd4628830ea238775ed9788e0674"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="7190cd220b09b657ba9b767614aeebb2"/><file name="config.xml" hash="03cfaa657f347ba6ed5c5bd6f99bd16d"/><file name="system.xml" hash="b5113a4b6a2012ef82f81c337ed5ed51"/></dir><dir name="sql"><dir name="Antidot_setup"><file name="mysql4-install-0.9.php" hash="62672bc47ea92dbd46966fb76e4251e0"/><file name="mysql4-upgrade-1.2.1-1.2.2.php" hash="fe774495c51921c2affeb8a472c049ff"/><file name="mysql4-upgrade-1.2.2-1.2.3.php" hash="d48b875617e5acd372e7e91d95babe13"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="antidot"><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="acpfeeds.phtml" hash="df37a23d2bd1e2d351eeffa97e97998c"/><file name="tabs.phtml" hash="7ae0f16afb6783b48ed965825dcfa356"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="antidot.xml" hash="090bfc2f9ca454bbb58f629be359ea03"/></dir><dir name="template"><dir name="antidot"><dir name="catalog"><dir name="layer"><file name="category.phtml" hash="125de3812ded3b341ab6f1a1f2f92777"/><file name="filter.phtml" hash="2304baebff9b798e0ebd977fbc891346"/></dir></dir><dir name="catalogsearch"><dir name="result"><file name="articles.phtml" hash="5131ea46e2c4c9db67b07991e848e59a"/><file name="banner.phtml" hash="4dc4b69ef2dd51aad9689dbfb2bf8f48"/><file name="category.phtml" hash="7413580b825508f2cfc08566d62369ae"/><file name="stores.phtml" hash="fd33169d4d4bf1d7dbeefc31cb3b91be"/></dir><file name="result.phtml" hash="de6eecf5bd733d3440c843133afea8b6"/></dir><dir name="page"><file name="antidot_results.phtml" hash="32a5e10491b1e856514841e9ae90727e"/></dir></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="template"><dir name="antidot"><dir name="page"><file name="antidot_results.phtml" hash="544cac2df5b1e6e20b9eb2673a869774"/></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="1ad37187a5e7327ab3a5abf797c06d3c"/></dir><dir name="de_CH"><file name="MDN_Antidot.csv" hash="1ad37187a5e7327ab3a5abf797c06d3c"/></dir><dir name="de_DE"><file name="MDN_Antidot.csv" hash="1ad37187a5e7327ab3a5abf797c06d3c"/></dir><dir name="es_AR"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_CL"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_CO"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_CR"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_ES"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_MX"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_PA"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_PE"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="es_VE"><file name="MDN_Antidot.csv" hash="2481c7e88271fc44b1105e9d63adb8d7"/></dir><dir name="fr_CA"><file name="MDN_Antidot.csv" hash="fb817b50d4bba5e35dbb50cc17c523f8"/></dir><dir name="fr_FR"><file name="MDN_Antidot.csv" hash="fb817b50d4bba5e35dbb50cc17c523f8"/></dir></target><target name="mageweb"><dir name="js"><dir name="mdn"><dir name="antidot"><file name="CollapsibleLists.js" hash="86792ecde0c2759ba85e0d863dd147ce"/></dir></dir></dir></target><target name="magelib"><dir name="antidot"><dir name="AFS"><dir name="ACP"><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="acpConnectorTest.php" hash="25a8194f3dc8895640df4f4bba895d8e"/><file name="acpQueryTest.php" hash="74ad65a4af639a409ee72a75a2a043d6"/><file name="acpReplysetHelperTest.php" hash="4f0a0d471a06e139cd11c715b67ebe81"/><file name="acpResponseHelperTest.php" hash="6d30f99108db0d9956aef9ba5e1d88df"/><file name="acpTest.php" hash="d6119d150543e7943ba4e9907901ae5d"/></dir><file name="afs_acp.php" hash="78dbfbc92f68469c92898f1da4263e68"/><file name="afs_acp_configuration.php" hash="2d644cc6c5bf2cdaeca5780576c4bf0e"/><file name="afs_acp_connector.php" hash="b72439562b02024e0b9629c18394985d"/><file name="afs_acp_exception.php" hash="f610d2cc37a15d4b981d7b43939414ad"/><file name="afs_acp_query.php" hash="ced0629355f5d4fc1c219d1adb03297d"/><file name="afs_acp_query_manager.php" hash="b3348972a850c904fc664b4e27671439"/><file name="afs_acp_reply_helper.php" hash="b0259f24f10d2e92ed6e3b8cdaaacc44"/><file name="afs_acp_replyset_helper.php" hash="07e7fdb88a42a399c96261c47ffb0231"/><file name="afs_acp_response_helper.php" hash="33a66106fd3a94194514a0d8d39af1cd"/></dir><file name="Makefile" hash="7bb31592939024f74745d6b6cb7fec0b"/><dir name="SEARCH"><dir name="FILTER"><file name="Makefile" hash="d42338199c6857ded179af2117b9f571"/><dir name="TEST"><file name="Makefile" hash="ab37090c6c5e7af1b260376237737700"/><file name="filterBuilderTest.php" hash="161ff5c8e73914eef884d17456afa133"/><file name="filterCombinationTest.php" hash="2162288d5255d3b24fe94d75b939aa51"/><file name="filterTest.php" hash="1682c0a4d50158a8d2c9369d30e45a18"/><file name="groupFilterTest.php" hash="1ebe8ce7344ed64b93cf94632d3b0184"/></dir><file name="afs_combinable_filter.php" hash="336e6c6bc9ebae3f58602d23ef734182"/><file name="afs_combinator_filter.php" hash="e2fc560b9c0c31f20c73f2057a8b7b69"/><file name="afs_filter.php" hash="6dbfc8c668cd48510cc9a9243d1bf4c3"/><file name="afs_filter_exception.php" hash="ccce583c63a4a65f7f0a27fc4a487505"/><file name="afs_filter_wrapper.php" hash="30dec104456abc037019ad93922b5afd"/><file name="afs_group_filter.php" hash="b95fa3bc0e26bc39dfc53a6010bce32f"/><file name="afs_native_function_filter.php" hash="37176bdbc66cc3dca18149132921f0a5"/><file name="afs_operator_filter.php" hash="c7ea43c8d64eedbe33397f61737e0226"/><file name="afs_valued_filter.php" hash="483653071734f77972c9b9771e187d82"/></dir><file name="Makefile" hash="0f76232bfabc275a3dac973666fb5dae"/><dir name="TEST"><dir name="DATA"><file name="introspection_responses.php" hash="4dd251759cd642d4560cb81e6a936489"/></dir><file name="Makefile" hash="ce56cc786e1df50148e1d3222c05e5f8"/><file name="clientDataHelperTest.php" hash="1556ab047e1df23447586d529768befd"/><file name="clusterHelperTest.php" hash="e112e7c756f63c8e8ceb554281b418c9"/><file name="conceptHelperTest.php" hash="b44e39b62d0537bf1f7b7feb23f8111f"/><file name="facetDefaultTest.php" hash="382e4ea35e1c7173371b4a84046a38e5"/><file name="facetHelperTest.php" hash="4af0256294abbea651d1b8d06832556b"/><file name="facetManagerTest.php" hash="bbef8e207c387dbe6a26142fd55264d5"/><file name="facetTest.php" hash="26123aa75cb2597a3ededfa9d778095d"/><file name="facetValuesSortOrderTest.php" hash="b650080bf9b2cce2ac42a245cb84c911"/><file name="feedCoderTest.php" hash="f2b5dfdd4fa3c4e5d14c790d15235146"/><file name="filterCoderTest.php" hash="46249fa13edccf1e5d5000daf2573b77"/><file name="headerHelperTest.php" hash="62185c34e1e9015bb12014d719287f06"/><file name="helperConfigurationTest.php" hash="be3f74e53e27744e8214f3c341172796"/><file name="intervalTest.php" hash="912389dad049853f6bf0b4eab2af5034"/><file name="introspectionTest.php" hash="4958662f630f75417fdbf0a9e45d602c"/><file name="metaHelperTest.php" hash="080f160b54636c4eee743544a6a12bee"/><file name="metadataHelperTest.php" hash="15435661053dbc0b780f57fdcc343b33"/><file name="pagerHelperTest.php" hash="d96a9891523e453647493f3219e86357"/><file name="promoteBannerReplyHelper.php" hash="94c3c14517536437e9800eaa706fbe29"/><file name="promoteRedirectReplyHelper.php" hash="ed00c66be5127d8b374f6416abf328ef"/><file name="promoteReplyHelperTest.php" hash="7cbb68a7f50c2bd2ef11a085ac94deb2"/><file name="promoteReplysetHelperTest.php" hash="ac2f1e3073015143dc7b2b705711c845"/><file name="queryCoderTest.php" hash="03983a114c6697464f8bf016822ff4a3"/><file name="queryOrchestrationTest.php" hash="02867da7662cdb9f005eb9c1e73dfa30"/><file name="queryTest.php" hash="338264d8e6dbbc09e88bd9a8179e8be4"/><file name="replyHelperTest.php" hash="4d86f19ea7de2aece5d7fd9c143c3dbc"/><file name="replysetHelperTest.php" hash="897f074b8382c6853f51b06a5ee50b0a"/><file name="responseHelperTest.php" hash="a5bd4dab21ab639c69f649eeac3bd81e"/><file name="searchConnectorTest.php" hash="9201de573884b643041b6c32bc535e7e"/><file name="searchQueryManagerTest.php" hash="2188b262a1c11422bcc8133f68fa6dd9"/><file name="searchTest.php" hash="fa47a7819b5c7c71172d6b1f1e7a02f7"/><file name="spellcheckHelperTest.php" hash="49960fb90055dcf265ef41e491c11325"/><file name="spellcheckTextVisitorTest.php" hash="203f0d08f548a39135517a41f6e9e43a"/><file name="textVisitorTest.php" hash="b722845dd0f5f953574cb51284ad025b"/></dir><file name="afs_base_reply_helper.php" hash="57abe4828b7ed7126db963764faa718a"/><file name="afs_base_replyset_helper.php" hash="096b124a3ebdc6e8d6beb359bd8bb7c5"/><file name="afs_client_data_exception.php" hash="899957af974d04aa7eaca44903a7f86c"/><file name="afs_client_data_helper.php" hash="4700218e2400350014fde428bc86806b"/><file name="afs_cluster_exception.php" hash="86d97623db7aebaa28a20857ce2cf17f"/><file name="afs_cluster_helper.php" hash="60b7fbcc869a672929ef9fc6d840d2b2"/><file name="afs_cluster_parameter.php" hash="20ed527d3ed1a6cf2bc80e032ecd2c7e"/><file name="afs_coder_base.php" hash="fb87fbea43d12695154b3b6102e2a019"/><file name="afs_coder_interface.php" hash="3b179b2513e215751ee4edd190b2a719"/><file name="afs_concept_helper.php" hash="982cf3d2063c565cf19cc6136b049066"/><file name="afs_count.php" hash="9f83f3baa3cf4462c0db786f4eea479a"/><file name="afs_facet.php" hash="1b4d7d35ebe8ed4894fda4881d0b168f"/><file name="afs_facet_combination.php" hash="005e9742ee032194b86856195dd59f7d"/><file name="afs_facet_default.php" hash="cbcb5d28b7b00815ce5248017065e84b"/><file name="afs_facet_exception.php" hash="f1f0afdbf9a727b53c4731e5a40ac417"/><file name="afs_facet_helper.php" hash="b8ad96c57ec80f40bd21a39bb9b5fbb5"/><file name="afs_facet_helper_retriever.php" hash="5628cc41c50ab25fd3336df302d903f4"/><file name="afs_facet_layout.php" hash="c83f6fef1c13ba3cda667c611841ff87"/><file name="afs_facet_manager.php" hash="a3fabb34d56a9614d4a0a2917f6fea0c"/><file name="afs_facet_mode.php" hash="8dcac389a37f8267a367400377631dba"/><file name="afs_facet_sort.php" hash="0d7ba4059b10da9981b9c801355cb874"/><file name="afs_facet_type.php" hash="6df82cbfa627629f9523437994d1fbb1"/><file name="afs_facet_value_formatter.php" hash="d6580281f9ef5c0820615ac385aae863"/><file name="afs_facet_values_sort_mode.php" hash="17def98365132c810515f8cf3c6fb006"/><file name="afs_facet_values_sort_order.php" hash="f95f77cb5dd7015e4f2e6094ddba49a6"/><file name="afs_feed_coder.php" hash="ed7b40e872a7ed5aa30adbcffc05de56"/><file name="afs_filter_coder.php" hash="4edbdcf6760d80465e5d2533014ba307"/><file name="afs_filter_parameter.php" hash="2b03c2c83ffe2e2968aaf50ad4903921"/><file name="afs_fts_mode.php" hash="edbd9342cd9625183e1e01ed81b79fc3"/><file name="afs_header_helper.php" hash="c123aeb736bf2e0506e56831fe516800"/><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_introspection.php" hash="f5e3dbc5983d3216a6fdd71b009a3f02"/><file name="afs_meta_helper.php" hash="8403689868c98db725ebd11748508c8b"/><file name="afs_metadata_helper.php" hash="f701c0332084e534c618e114cc905d53"/><file name="afs_pager_helper.php" hash="077052931e0cffb1e589c21b57156b38"/><file name="afs_producer.php" hash="7c8c515ccb8126523fa0d09a7f759dd5"/><file name="afs_promote_banner_reply_helper.php" hash="418702b3c053029b3aa8fcb2775c65bd"/><file name="afs_promote_redirect_reply_helper.php" hash="be17eda6f8b4552b9ec21183362171a2"/><file name="afs_promote_reply_helper.php" hash="0e2a4f67cd307f74e8b64cd3b158235c"/><file name="afs_promote_replyset_helper.php" hash="fdefc6f8a686addb31ea9b6c0a3fa5ad"/><file name="afs_query.php" hash="bd969a62cd4bbbcb5b9996eaa19353f7"/><file name="afs_query_coder.php" hash="ca0bfad66b8d8549ab3f33380d716732"/><file name="afs_query_coder_interface.php" hash="dd16f17b3606a7418c1c714475b19b51"/><file name="afs_query_object_interface.php" hash="a9af13e2c856e4136ccadfff60f72d36"/><file name="afs_raw_text_visitor.php" hash="fd574583c4c9110165c1cadc67b832de"/><file name="afs_reply_helper.php" hash="3919f9e83cba62be9bc67117b1087b03"/><file name="afs_reply_helper_factory.php" hash="f159f7d0ef7e5a209fb872a970d0d582"/><file name="afs_replyset_helper.php" hash="cb8f81391d9a59904dcb0c3d6ae31999"/><file name="afs_response_exception.php" hash="0a865bb92fb700ae555dcb5ae675f644"/><file name="afs_response_helper.php" hash="f14628e4a9b9d1259af466dd5dadae26"/><file name="afs_search.php" hash="3f2e3ef447515a2fa05b270654ef2969"/><file name="afs_search_connector.php" hash="492415352e2f7d3860a6a00301aa7617"/><file name="afs_search_query_manager.php" hash="77e30683ee4ba9e004e9c7c12d9c811d"/><file name="afs_sort_builtins.php" hash="0cc1617a62f1a834a28d7d2ac249b081"/><file name="afs_sort_coder.php" hash="1dfe2d32278383d8465df67535cb91dd"/><file name="afs_sort_order.php" hash="7755deb99386650c9974871474168cda"/><file name="afs_sort_parameter.php" hash="bfb8c59c1560ec8a3b597dc45aa8ecd5"/><file name="afs_spellcheck_helper.php" hash="bb5465848ada7a9df9875f2565fb9686"/><file name="afs_spellcheck_text_helper.php" hash="3ca5c3118660aa600aadb504ceff6c4c"/><file name="afs_spellcheck_text_visitor.php" hash="c44c23ae21f61b065e457911bbc45ed2"/><file name="afs_text_helper.php" hash="59c4ae24560948c3af0f4adbf6bd1803"/><file name="afs_text_visitor.php" hash="867b44a280403cd4567358ec6d59588a"/></dir><file name="afs_configuration_base.php" hash="f26dd9efda4923cc2c71057f21be97d9"/><file name="afs_connector.php" hash="aa04a21163b57ef338bf96bd55e95882"/><file name="afs_exception.php" hash="c1840fe279f9cb313cec151012ed4513"/><file name="afs_feed.php" hash="005305cace79a3aa7719a3c942df9da7"/><file name="afs_multiple_values_parameter.php" hash="96dc30f1fbf137cbfd73c2b195d9f9ef"/><file name="afs_origin.php" hash="a6b7e39a687210572c116afcbea0e7cb"/><file name="afs_query_base.php" hash="7209115a714d9b7de209a0af691c1d22"/><file name="afs_query_parameter.php" hash="6552428d955d0a48c015e1f98ba62815"/><file name="afs_response_helper_base.php" hash="b087f7bdad35ed0526566042ef9afc8c"/><file name="afs_single_value_parameter.php" hash="65d002d7ac6b6e8dd6170309b4c84649"/><file name="orchestration_type.php" hash="047eab54be2eba5500ef747ab7f139b9"/></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="cd6d54d86ce0d1e9ab603b4d34622917"/><file name="afs_authentication.php" hash="4285035550c9681a047b85abbca64936"/><file name="afs_bows_connector.php" hash="47a6bcafd5eba2361d2cea409f60d3f7"/><file name="afs_bows_connector_interface.php" hash="8fdf9749f0500a39741d696feb55af14"/><file name="afs_bows_exception.php" hash="1bd8657a37b8b4a9e08bfc4eb6b7e416"/><file name="afs_bows_information.php" hash="1f96a4cd84b2332f1186f9e0cea8542d"/><file name="afs_bows_information_cache.php" hash="1ae9a9243342c4e58a52e70473b68472"/><file name="afs_document.php" hash="c0003ec962a79b9d3f642b17bade0fff"/><file name="afs_document_manager.php" hash="8c5c0105d9337b7ae6a9f041f643ea88"/><file name="afs_multipart_response.php" hash="f2077c9eaf121fabdb2fc26c23b2e256"/><file name="afs_paf_connector.php" hash="9604aeaea8241cc9c3dcb705f2926de3"/><file name="afs_paf_live_connector.php" hash="87be0a822a7e18c24ed770050523b4cf"/><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="e9fc1284316d907b98f61ce7a43e1721"/><file name="afs_connector_interface.php" hash="68ad5e20a861b85dbf198f79cd2afd4c"/><file name="afs_exception.php" hash="b8eed4376088ae3003d0b77cc523e732"/><file name="afs_helper_base.php" hash="839cca78a663c3a22b4a8e35d1460129"/><file name="afs_helper_format.php" hash="30a3f6e945db7412ef95e83e7b0b5898"/><file name="afs_language.php" hash="277acb15b86089b37c812c47f2141d3c"/><file name="afs_service.php" hash="12c00c906e130860120552c40fa9dbc2"/><file name="afs_service_status.php" hash="1dee172850a76b46987534df89013878"/><file name="afs_tools.php" hash="26f6c01c5a61987925385e7a35260399"/><file name="afs_user_session_manager.php" hash="abd625f6b7b5cecf386dac9d82887764"/><file name="afs_versions.php" hash="556c912ff7f19f5083c4fb44d4d40ac6"/><dir name="lib"><dir name="JsonPath"><file name="JsonPath.php" hash="baa12e1baa9f8a20a095463042e96ad3"/><file name="JsonStore.php" hash="a9632aeb2126e98db9a49403a8f2ff77"/></dir></dir><dir name="php-SAI"><file name="README.md" hash="63ab581c83fe44918e6d074e20f08f95"/><dir name="lib"><dir name="Curl"><file name="Handle.php" hash="0fc7132737da7cee7df6b974447864ac"/></dir><file name="Curl.php" hash="358e4d3afca2035ee4d3f99f372ed15a"/><file name="CurlInterface.php" hash="714fa045dd4546d0c92cd022efb09422"/><file name="CurlStub.php" hash="fbdc0ece6321c5b5a1e27a65449f4a1f"/><dir name="rb_temp"><file name="HttpClient.php" hash="091b91c98acf9f1cd6c3d6d75cddfb88"/><file name="MultiCurl.php" hash="916e85d73bae6e136f889166ebc6db17"/><file name="SimpleCurl.php" hash="c296966a8bda96e03b464a1d3a9c8e06"/></dir></dir><dir name="tests"><file name="SAI_CurlStubTest.php" hash="bce69cbb17a40bd4eeba6bad1133216e"/></dir><file name=".gitignore" hash="09e625dea07b4d4098b19ec998d266f9"/></dir></dir><file name="COPYING" hash="b234ee4d69f5fce4486a80fdaf4a4263"/><file name="COPYING.LESSER" hash="4fbd65380cdd255951079008b364516c"/><file name="FAQ.md" hash="7d7c886674d70a0047303c5d93de6165"/><file name="Makefile" hash="225475a5a4a0204cecbb77621ff38bb2"/><file name="README.md" hash="820cb3035dd8ba0af934760ff935cb4b"/><file name="afs_lib.doxygen" hash="8128d53d894cc57e08142377d13c72f4"/><file name="afs_lib.php" hash="87c6355397681ec86df73cbe783a2950"/><file name="afs_version.php" hash="68b6da5be047d6c606902fc5af021820"/><file name="composer.json" hash="8281b7d1cbca6dba29341de676c818e1"/><dir name="doc"><file name="afs_filter_documentation.dox" hash="3bf4b96e25d95ce5953b822038c6f135"/><file name="afs_paf_upload.dox" hash="d36893db0234f171e6cfb43f6e13d47c"/><file name="afs_search.dox" hash="b1c5ab8728703822f910852cd17561f4"/><file name="afs_search_coder.dox" hash="77709e1bc691301017f0982e0348a9b9"/><file name="afs_search_query.dox" hash="21dcd1734a165a4cb3b4f62c42a6a0be"/><file name="afs_search_reply.dox" hash="cdb1d42447671f4352927b40b3f8f37d"/><dir name="data"><file name="acp_helper_example.php" hash="2815890e7afbae78e7eb4e6fc5c88f6f"/><file name="full_example.php" hash="e152a964d06e55de460c596070c714d8"/><file name="full_lightweight_example.php" hash="eac3bb2d251052f547a9f737e5cd0461"/><file name="raw_example.php" hash="703356b9284e7fe904cf1334abbe08c9"/><dir name="templates"><file name="error_template.html" hash="70f44bd0f45470d379a11d0a2fe507e4"/><file name="facet_template.html" hash="6836005a7dae45e9415273f1eb6b78e2"/><file name="facet_values_template.html" hash="9b41f2b55a1cecae5724b4fcd4a46cfb"/><file name="meta_template.html" hash="e664a3bb222d272ce2451fb10bf46de4"/><file name="pager_template.html" hash="2700ab5b60a1f9553b1c39374fda63d4"/><file name="result_template.html" hash="1572a4ef4e8dda0b3db1ea77bbed4a98"/><file name="spellcheck_template.html" hash="8042054a1f5a271b47c77f81436c4791"/></dir></dir><file name="detailled_integration_example_with_template.dox" hash="26ef377a6ef546b636a0e254d11d01f5"/><file name="lightweight_integration_example_with_template.dox" hash="5a388d2dbfad63ad6ec353407b79a6bb"/><file name="logo-antidot-long-200x41.png" hash="1ceac3fff767fb5e395bd767344a3d13"/><file name="main.dox" hash="ca3e97f95deead927fb3298ecafbad5e"/><file name="raw_integration_example.dox" hash="56a7126d008c2e49abdf9bf0b5ec9717"/><file name="template_prerequisites.dox" hash="baa24a943e19ff3654227850bd316abb"/><file name="templates_in_details.dox" hash="5e8db94382f1fbd6c4e0b424a9edc9a3"/></dir><file name="rules.mk" hash="ff48aa6a5c40e31b3f38aba1267e9a71"/><dir name="scripts"><file name="gen_doc.sh" hash="0f6fc60aca94da563397d3c710bd9d33"/><file name="increment_version.sh" hash="431db9c60d2f94d251be07957787fcb0"/><file name="print_version.sh" hash="a05ddc19cd27ff185721fe2bd0cffc25"/><file name="version_management.sh" hash="3d5ecd39f45ba081144b3033dbd14330"/></dir><file name=".gitignore" hash="0292f51c0906b2092255872c69603f29"/><file name=".travis.yml" hash="98fde7afc2d389a2de3e94cec0f3bfe5"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="antidot"><file name="CollapsibleLists.css" hash="fa3d62a3b773c4a3cd7559843761f6d8"/><file name="catalogsearch.css" hash="88f7b8e6175e017a3f5d64548d2a0203"/></dir></dir><dir name="images"><dir name="antidot"><file name="button-closed.png" hash="563b78324e0712c0902cb4f77cb9eb86"/><file name="button-open.png" hash="c710849a0d2b61ad1f0fc36c0e59d131"/><file name="button.png" hash="97f3055c5046c851eea2dad7e5227508"/></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>