Version Notes
- UPDATED: added a config to disable logging
- UPDATED: better instant search UI
- FIX: various design improvements
- FIX: take into account "Include in Navigation" for categories
- FIX: sorting in instant search page
- FIX: wrong price for configurable products
- FIX: mass action delete
Download this release
Release Info
Developer | Algolia Team |
Extension | algoliasearch |
Version | 1.5.3 |
Comparing to | |
See all releases |
Code changes from version 1.5.2 to 1.5.3
- app/code/community/Algolia/Algoliasearch/Helper/Algoliahelper.php +1 -1
- app/code/community/Algolia/Algoliasearch/Helper/Config.php +1 -1
- app/code/community/Algolia/Algoliasearch/Helper/Data.php +2 -2
- app/code/community/Algolia/Algoliasearch/Helper/Entity/Categoryhelper.php +1 -2
- app/code/community/Algolia/Algoliasearch/Helper/Entity/Producthelper.php +8 -7
- app/code/community/Algolia/Algoliasearch/Helper/Logger.php +9 -7
- app/code/community/Algolia/Algoliasearch/Model/Indexer/Algolia.php +13 -5
- app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliaadditionalsections.php +2 -2
- app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliacategories.php +4 -5
- app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliapages.php +2 -2
- app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliaqueuerunner.php +2 -2
- app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliasuggestions.php +2 -2
- app/code/community/Algolia/Algoliasearch/Model/Queue.php +3 -3
- app/code/community/Algolia/Algoliasearch/Model/Resource/Engine.php +11 -11
- app/code/community/Algolia/Algoliasearch/Model/Resource/Fulltext.php +3 -3
- app/code/community/Algolia/Algoliasearch/etc/config.xml +3 -2
- app/code/community/Algolia/Algoliasearch/etc/system.xml +21 -3
- app/design/frontend/base/default/template/algoliasearch/topsearch.phtml +30 -16
- app/etc/modules/Algolia_Algoliasearch.xml +1 -1
- package.xml +11 -15
- skin/frontend/base/default/algoliasearch/algoliasearch.css +33 -12
app/code/community/Algolia/Algoliasearch/Helper/Algoliahelper.php
CHANGED
@@ -12,7 +12,7 @@ if (class_exists('AlgoliaSearch\Client', false) == false)
|
|
12 |
class Algolia_Algoliasearch_Helper_Algoliahelper extends Mage_Core_Helper_Abstract
|
13 |
{
|
14 |
protected $client;
|
15 |
-
|
16 |
|
17 |
public function __construct()
|
18 |
{
|
12 |
class Algolia_Algoliasearch_Helper_Algoliahelper extends Mage_Core_Helper_Abstract
|
13 |
{
|
14 |
protected $client;
|
15 |
+
protected $config;
|
16 |
|
17 |
public function __construct()
|
18 |
{
|
app/code/community/Algolia/Algoliasearch/Helper/Config.php
CHANGED
@@ -56,7 +56,7 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
|
|
56 |
const AUTOCOMPLETE_SELECTOR = 'algoliasearch/advanced/autocomplete_selector';
|
57 |
|
58 |
const SHOW_OUT_OF_STOCK = 'cataloginventory/options/show_out_of_stock';
|
59 |
-
const LOGGING_ENABLED = '
|
60 |
|
61 |
protected $_productTypeMap = array();
|
62 |
|
56 |
const AUTOCOMPLETE_SELECTOR = 'algoliasearch/advanced/autocomplete_selector';
|
57 |
|
58 |
const SHOW_OUT_OF_STOCK = 'cataloginventory/options/show_out_of_stock';
|
59 |
+
const LOGGING_ENABLED = 'algoliasearch/credentials/debug';
|
60 |
|
61 |
protected $_productTypeMap = array();
|
62 |
|
app/code/community/Algolia/Algoliasearch/Helper/Data.php
CHANGED
@@ -25,7 +25,7 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
|
|
25 |
|
26 |
public function __construct()
|
27 |
{
|
28 |
-
\AlgoliaSearch\Version::$custom_value = " Magento (1.5.
|
29 |
|
30 |
$this->algolia_helper = Mage::helper('algoliasearch/algoliahelper');
|
31 |
|
@@ -427,7 +427,7 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
|
|
427 |
$this->stopEmulation($emulationInfoPage);
|
428 |
}
|
429 |
|
430 |
-
|
431 |
{
|
432 |
$indexData = array();
|
433 |
|
25 |
|
26 |
public function __construct()
|
27 |
{
|
28 |
+
\AlgoliaSearch\Version::$custom_value = " Magento (1.5.3)";
|
29 |
|
30 |
$this->algolia_helper = Mage::helper('algoliasearch/algoliahelper');
|
31 |
|
427 |
$this->stopEmulation($emulationInfoPage);
|
428 |
}
|
429 |
|
430 |
+
protected function getProductsRecords($storeId, $collection)
|
431 |
{
|
432 |
$indexData = array();
|
433 |
|
app/code/community/Algolia/Algoliasearch/Helper/Entity/Categoryhelper.php
CHANGED
@@ -57,8 +57,6 @@ class Algolia_Algoliasearch_Helper_Entity_Categoryhelper extends Algolia_Algolia
|
|
57 |
{
|
58 |
$storeRootCategoryPath = sprintf('%d/%d', $this->getRootCategoryId(), Mage::app()->getStore($storeId)->getRootCategoryId());
|
59 |
|
60 |
-
$index_name = $this->getIndexName($storeId);
|
61 |
-
|
62 |
$categories = Mage::getResourceModel('catalog/category_collection'); /** @var $categories Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */
|
63 |
|
64 |
$unserializedCategorysAttrs = $this->config->getCategoryAdditionalAttributes($storeId);
|
@@ -74,6 +72,7 @@ class Algolia_Algoliasearch_Helper_Entity_Categoryhelper extends Algolia_Algolia
|
|
74 |
->addUrlRewriteToResult()
|
75 |
->addIsActiveFilter()
|
76 |
->setStoreId($storeId)
|
|
|
77 |
->addAttributeToSelect(array_merge(array('name'), $additionalAttr))
|
78 |
->addFieldToFilter('level', array('gt' => 1));
|
79 |
|
57 |
{
|
58 |
$storeRootCategoryPath = sprintf('%d/%d', $this->getRootCategoryId(), Mage::app()->getStore($storeId)->getRootCategoryId());
|
59 |
|
|
|
|
|
60 |
$categories = Mage::getResourceModel('catalog/category_collection'); /** @var $categories Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */
|
61 |
|
62 |
$unserializedCategorysAttrs = $this->config->getCategoryAdditionalAttributes($storeId);
|
72 |
->addUrlRewriteToResult()
|
73 |
->addIsActiveFilter()
|
74 |
->setStoreId($storeId)
|
75 |
+
->addAttributeToFilter('include_in_menu', '1')
|
76 |
->addAttributeToSelect(array_merge(array('name'), $additionalAttr))
|
77 |
->addFieldToFilter('level', array('gt' => 1));
|
78 |
|
app/code/community/Algolia/Algoliasearch/Helper/Entity/Producthelper.php
CHANGED
@@ -234,7 +234,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
|
|
234 |
|
235 |
$suffix_index_name = 'group_' . $group_id;
|
236 |
|
237 |
-
$sort_attribute = strpos($values['attribute'], 'price') !== false ? $values['attribute'].'.'.$suffix_index_name : $values['attribute'];
|
238 |
|
239 |
$mergeSettings['ranking'] = array($values['sort'].'('.$sort_attribute.')', 'typo', 'geo', 'words', 'proximity', 'attribute', 'exact', 'custom');
|
240 |
|
@@ -244,7 +244,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
|
|
244 |
}
|
245 |
else
|
246 |
{
|
247 |
-
$sort_attribute = strpos($values['attribute'], 'price') !== false ? $values['attribute'].'.'.'default' : $values['attribute'];
|
248 |
|
249 |
$mergeSettings['ranking'] = array($values['sort'].'('.$sort_attribute.')', 'typo', 'geo', 'words', 'proximity', 'attribute', 'exact', 'custom');
|
250 |
|
@@ -258,7 +258,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
|
|
258 |
}
|
259 |
}
|
260 |
|
261 |
-
|
262 |
{
|
263 |
$tax_helper = Mage::helper('tax');
|
264 |
|
@@ -271,7 +271,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
|
|
271 |
return array('price' => false, 'price_with_tax' => true);
|
272 |
}
|
273 |
|
274 |
-
|
275 |
{
|
276 |
if (!isset(static::$_currencies[$currency_code]))
|
277 |
{
|
@@ -286,7 +286,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
|
|
286 |
return $price;
|
287 |
}
|
288 |
|
289 |
-
|
290 |
{
|
291 |
$fields = $this->getFields($product->getStore());
|
292 |
$customer_groups_enabled = $this->config->isCustomerGroupsEnabled($product->getStoreId());
|
@@ -371,7 +371,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
|
|
371 |
}
|
372 |
}
|
373 |
|
374 |
-
if ($type == '
|
375 |
{
|
376 |
$min = PHP_INT_MAX;
|
377 |
$max = 0;
|
@@ -383,7 +383,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
|
|
383 |
list($min, $max) = $_priceModel->getTotalPrices($product, null, $with_tax, true);
|
384 |
}
|
385 |
|
386 |
-
if ($type == 'grouped'
|
387 |
{
|
388 |
if (count($sub_products) > 0)
|
389 |
{
|
@@ -508,6 +508,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
|
|
508 |
$categoryCollection = Mage::getResourceModel('catalog/category_collection')
|
509 |
->addAttributeToSelect('name')
|
510 |
->addAttributeToFilter('entity_id', $_categoryIds)
|
|
|
511 |
->addFieldToFilter('level', array('gt' => 1))
|
512 |
->addIsActiveFilter();
|
513 |
|
234 |
|
235 |
$suffix_index_name = 'group_' . $group_id;
|
236 |
|
237 |
+
$sort_attribute = strpos($values['attribute'], 'price') !== false ? $values['attribute'].'.'.$currencies[0].'.'.$suffix_index_name : $values['attribute'];
|
238 |
|
239 |
$mergeSettings['ranking'] = array($values['sort'].'('.$sort_attribute.')', 'typo', 'geo', 'words', 'proximity', 'attribute', 'exact', 'custom');
|
240 |
|
244 |
}
|
245 |
else
|
246 |
{
|
247 |
+
$sort_attribute = strpos($values['attribute'], 'price') !== false ? $values['attribute'].'.'.$currencies[0].'.'.'default' : $values['attribute'];
|
248 |
|
249 |
$mergeSettings['ranking'] = array($values['sort'].'('.$sort_attribute.')', 'typo', 'geo', 'words', 'proximity', 'attribute', 'exact', 'custom');
|
250 |
|
258 |
}
|
259 |
}
|
260 |
|
261 |
+
protected function getFields($store)
|
262 |
{
|
263 |
$tax_helper = Mage::helper('tax');
|
264 |
|
271 |
return array('price' => false, 'price_with_tax' => true);
|
272 |
}
|
273 |
|
274 |
+
protected function formatPrice($price, $includeContainer, $currency_code)
|
275 |
{
|
276 |
if (!isset(static::$_currencies[$currency_code]))
|
277 |
{
|
286 |
return $price;
|
287 |
}
|
288 |
|
289 |
+
protected function handlePrice(&$product, $sub_products, &$customData)
|
290 |
{
|
291 |
$fields = $this->getFields($product->getStore());
|
292 |
$customer_groups_enabled = $this->config->isCustomerGroupsEnabled($product->getStoreId());
|
371 |
}
|
372 |
}
|
373 |
|
374 |
+
if ($type == 'grouped' || $type == 'bundle')
|
375 |
{
|
376 |
$min = PHP_INT_MAX;
|
377 |
$max = 0;
|
383 |
list($min, $max) = $_priceModel->getTotalPrices($product, null, $with_tax, true);
|
384 |
}
|
385 |
|
386 |
+
if ($type == 'grouped')
|
387 |
{
|
388 |
if (count($sub_products) > 0)
|
389 |
{
|
508 |
$categoryCollection = Mage::getResourceModel('catalog/category_collection')
|
509 |
->addAttributeToSelect('name')
|
510 |
->addAttributeToFilter('entity_id', $_categoryIds)
|
511 |
+
->addAttributeToFilter('include_in_menu', '1')
|
512 |
->addFieldToFilter('level', array('gt' => 1))
|
513 |
->addIsActiveFilter();
|
514 |
|
app/code/community/Algolia/Algoliasearch/Helper/Logger.php
CHANGED
@@ -2,10 +2,10 @@
|
|
2 |
|
3 |
class Algolia_Algoliasearch_Helper_Logger extends Mage_Core_Helper_Abstract
|
4 |
{
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
|
10 |
public function __construct()
|
11 |
{
|
@@ -53,11 +53,13 @@ class Algolia_Algoliasearch_Helper_Logger extends Mage_Core_Helper_Abstract
|
|
53 |
|
54 |
public function log($message)
|
55 |
{
|
56 |
-
|
|
|
|
|
57 |
}
|
58 |
|
59 |
-
|
60 |
{
|
61 |
return ($end - $begin).'sec';
|
62 |
}
|
63 |
-
}
|
2 |
|
3 |
class Algolia_Algoliasearch_Helper_Logger extends Mage_Core_Helper_Abstract
|
4 |
{
|
5 |
+
protected $enabled;
|
6 |
+
protected $config;
|
7 |
+
protected $timers = array();
|
8 |
+
protected $stores = array();
|
9 |
|
10 |
public function __construct()
|
11 |
{
|
53 |
|
54 |
public function log($message)
|
55 |
{
|
56 |
+
if ($this->config->isLoggingEnabled()) {
|
57 |
+
Mage::log($message, null, 'algolia.log');
|
58 |
+
}
|
59 |
}
|
60 |
|
61 |
+
protected function formatTime($begin, $end)
|
62 |
{
|
63 |
return ($end - $begin).'sec';
|
64 |
}
|
65 |
+
}
|
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algolia.php
CHANGED
@@ -5,14 +5,14 @@ class Algolia_Algoliasearch_Model_Indexer_Algolia extends Mage_Index_Model_Index
|
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
|
7 |
/** @var Algolia_Algoliasearch_Model_Resource_Engine */
|
8 |
-
|
9 |
-
|
10 |
|
11 |
public static $product_categories = array();
|
12 |
-
|
13 |
|
14 |
/** @var Algolia_Algoliasearch_Helper_Logger */
|
15 |
-
|
16 |
|
17 |
public function __construct()
|
18 |
{
|
@@ -196,7 +196,15 @@ class Algolia_Algoliasearch_Model_Indexer_Algolia extends Mage_Index_Model_Index
|
|
196 |
}
|
197 |
|
198 |
$reindexData['catalogsearch_force_reindex'] = TRUE;
|
199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
|
201 |
foreach ($reindexData as $k => $v)
|
202 |
{
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
|
7 |
/** @var Algolia_Algoliasearch_Model_Resource_Engine */
|
8 |
+
protected $engine;
|
9 |
+
protected $config;
|
10 |
|
11 |
public static $product_categories = array();
|
12 |
+
protected static $credential_error = false;
|
13 |
|
14 |
/** @var Algolia_Algoliasearch_Helper_Logger */
|
15 |
+
protected $logger;
|
16 |
|
17 |
public function __construct()
|
18 |
{
|
196 |
}
|
197 |
|
198 |
$reindexData['catalogsearch_force_reindex'] = TRUE;
|
199 |
+
|
200 |
+
if ($actionObject->getIsDeleted())
|
201 |
+
{
|
202 |
+
$reindexData['catalogsearch_delete_product_id'] = $actionObject->getProductIds();
|
203 |
+
}
|
204 |
+
else
|
205 |
+
{
|
206 |
+
$reindexData['catalogsearch_product_ids'] = $actionObject->getProductIds();
|
207 |
+
}
|
208 |
|
209 |
foreach ($reindexData as $k => $v)
|
210 |
{
|
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliaadditionalsections.php
CHANGED
@@ -5,8 +5,8 @@ class Algolia_Algoliasearch_Model_Indexer_Algoliaadditionalsections extends Mage
|
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
|
7 |
/** @var Algolia_Algoliasearch_Model_Resource_Engine */
|
8 |
-
|
9 |
-
|
10 |
|
11 |
public function __construct()
|
12 |
{
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
|
7 |
/** @var Algolia_Algoliasearch_Model_Resource_Engine */
|
8 |
+
protected $engine;
|
9 |
+
protected $config;
|
10 |
|
11 |
public function __construct()
|
12 |
{
|
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliacategories.php
CHANGED
@@ -5,10 +5,10 @@ class Algolia_Algoliasearch_Model_Indexer_Algoliacategories extends Mage_Index_M
|
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
|
7 |
/** @var Algolia_Algoliasearch_Model_Resource_Engine */
|
8 |
-
|
9 |
-
|
10 |
|
11 |
-
|
12 |
|
13 |
public function __construct()
|
14 |
{
|
@@ -70,7 +70,7 @@ class Algolia_Algoliasearch_Model_Indexer_Algoliacategories extends Mage_Index_M
|
|
70 |
$category = $event->getDataObject();
|
71 |
$productIds = $category->getAffectedProductIds();
|
72 |
|
73 |
-
if (! $category->getData('is_active'))
|
74 |
{
|
75 |
$event->addNewData('catalogsearch_delete_category_id', array_merge(array($category->getId()), $category->getAllChildren(TRUE)));
|
76 |
|
@@ -78,7 +78,6 @@ class Algolia_Algoliasearch_Model_Indexer_Algoliacategories extends Mage_Index_M
|
|
78 |
{
|
79 |
$event->addNewData('catalogsearch_update_product_id', $productIds);
|
80 |
}
|
81 |
-
|
82 |
}
|
83 |
elseif ($productIds)
|
84 |
{
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
|
7 |
/** @var Algolia_Algoliasearch_Model_Resource_Engine */
|
8 |
+
protected $engine;
|
9 |
+
protected $config;
|
10 |
|
11 |
+
protected static $credential_error = false;
|
12 |
|
13 |
public function __construct()
|
14 |
{
|
70 |
$category = $event->getDataObject();
|
71 |
$productIds = $category->getAffectedProductIds();
|
72 |
|
73 |
+
if (! $category->getData('is_active') || ! $category->getData('include_in_menu'))
|
74 |
{
|
75 |
$event->addNewData('catalogsearch_delete_category_id', array_merge(array($category->getId()), $category->getAllChildren(TRUE)));
|
76 |
|
78 |
{
|
79 |
$event->addNewData('catalogsearch_update_product_id', $productIds);
|
80 |
}
|
|
|
81 |
}
|
82 |
elseif ($productIds)
|
83 |
{
|
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliapages.php
CHANGED
@@ -5,8 +5,8 @@ class Algolia_Algoliasearch_Model_Indexer_Algoliapages extends Mage_Index_Model_
|
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
|
7 |
/** @var Algolia_Algoliasearch_Model_Resource_Engine */
|
8 |
-
|
9 |
-
|
10 |
|
11 |
public function __construct()
|
12 |
{
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
|
7 |
/** @var Algolia_Algoliasearch_Model_Resource_Engine */
|
8 |
+
protected $engine;
|
9 |
+
protected $config;
|
10 |
|
11 |
public function __construct()
|
12 |
{
|
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliaqueuerunner.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
class Algolia_Algoliasearch_Model_Indexer_Algoliaqueuerunner extends Mage_Index_Model_Indexer_Abstract
|
4 |
{
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
-
|
7 |
/** @var Algolia_Algoliasearch_Model_Queue */
|
8 |
-
|
9 |
|
10 |
public function __construct()
|
11 |
{
|
3 |
class Algolia_Algoliasearch_Model_Indexer_Algoliaqueuerunner extends Mage_Index_Model_Indexer_Abstract
|
4 |
{
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
+
protected $config;
|
7 |
/** @var Algolia_Algoliasearch_Model_Queue */
|
8 |
+
protected $queue;
|
9 |
|
10 |
public function __construct()
|
11 |
{
|
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliasuggestions.php
CHANGED
@@ -5,8 +5,8 @@ class Algolia_Algoliasearch_Model_Indexer_Algoliasuggestions extends Mage_Index_
|
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
|
7 |
/** @var Algolia_Algoliasearch_Model_Resource_Engine */
|
8 |
-
|
9 |
-
|
10 |
|
11 |
public function __construct()
|
12 |
{
|
5 |
const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
|
6 |
|
7 |
/** @var Algolia_Algoliasearch_Model_Resource_Engine */
|
8 |
+
protected $engine;
|
9 |
+
protected $config;
|
10 |
|
11 |
public function __construct()
|
12 |
{
|
app/code/community/Algolia/Algoliasearch/Model/Queue.php
CHANGED
@@ -12,7 +12,7 @@ class Algolia_Algoliasearch_Model_Queue
|
|
12 |
/** @var Algolia_Algoliasearch_Helper_Logger */
|
13 |
protected $logger;
|
14 |
|
15 |
-
|
16 |
|
17 |
public function __construct()
|
18 |
{
|
@@ -51,7 +51,7 @@ class Algolia_Algoliasearch_Model_Queue
|
|
51 |
$this->run($nbJobs);
|
52 |
}
|
53 |
|
54 |
-
|
55 |
{
|
56 |
if ($j1['class'] !== $j2['class'])
|
57 |
return false;
|
@@ -79,7 +79,7 @@ class Algolia_Algoliasearch_Model_Queue
|
|
79 |
return true;
|
80 |
}
|
81 |
|
82 |
-
|
83 |
{
|
84 |
usort($old_jobs, function ($a, $b) {
|
85 |
if (strcmp($a['class'], $b['class']) !== 0)
|
12 |
/** @var Algolia_Algoliasearch_Helper_Logger */
|
13 |
protected $logger;
|
14 |
|
15 |
+
protected $by_page;
|
16 |
|
17 |
public function __construct()
|
18 |
{
|
51 |
$this->run($nbJobs);
|
52 |
}
|
53 |
|
54 |
+
protected function mergeable($j1, $j2)
|
55 |
{
|
56 |
if ($j1['class'] !== $j2['class'])
|
57 |
return false;
|
79 |
return true;
|
80 |
}
|
81 |
|
82 |
+
protected function sortAndMergeJob($old_jobs)
|
83 |
{
|
84 |
usort($old_jobs, function ($a, $b) {
|
85 |
if (strcmp($a['class'], $b['class']) !== 0)
|
app/code/community/Algolia/Algoliasearch/Model/Resource/Engine.php
CHANGED
@@ -6,12 +6,12 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
|
|
6 |
{
|
7 |
const ONE_TIME_AMOUNT = 100;
|
8 |
/** @var Algolia_Algoliasearch_Helper_Logger */
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
|
16 |
public function _construct()
|
17 |
{
|
@@ -37,11 +37,11 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
|
|
37 |
{
|
38 |
$ids = Algolia_Algoliasearch_Helper_Entity_Helper::getStores($storeId);
|
39 |
|
|
|
|
|
|
|
40 |
foreach ($ids as $id)
|
41 |
{
|
42 |
-
if (is_array($product_ids) == false)
|
43 |
-
$product_ids = array($product_ids);
|
44 |
-
|
45 |
$by_page = $this->config->getNumberOfElementByPage();
|
46 |
|
47 |
if (is_array($product_ids) && count($product_ids) > $by_page)
|
@@ -236,7 +236,7 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
|
|
236 |
return $this;
|
237 |
}
|
238 |
|
239 |
-
|
240 |
{
|
241 |
if ($categoryIds == null || count($categoryIds) == 0)
|
242 |
{
|
@@ -257,7 +257,7 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
|
|
257 |
return $this;
|
258 |
}
|
259 |
|
260 |
-
|
261 |
{
|
262 |
if ($productIds == null || count($productIds) == 0)
|
263 |
{
|
6 |
{
|
7 |
const ONE_TIME_AMOUNT = 100;
|
8 |
/** @var Algolia_Algoliasearch_Helper_Logger */
|
9 |
+
protected $logger;
|
10 |
+
protected $queue;
|
11 |
+
protected $config;
|
12 |
+
protected $product_helper;
|
13 |
+
protected $category_helper;
|
14 |
+
protected $suggestion_helper;
|
15 |
|
16 |
public function _construct()
|
17 |
{
|
37 |
{
|
38 |
$ids = Algolia_Algoliasearch_Helper_Entity_Helper::getStores($storeId);
|
39 |
|
40 |
+
if (is_array($product_ids) == false)
|
41 |
+
$product_ids = array($product_ids);
|
42 |
+
|
43 |
foreach ($ids as $id)
|
44 |
{
|
|
|
|
|
|
|
45 |
$by_page = $this->config->getNumberOfElementByPage();
|
46 |
|
47 |
if (is_array($product_ids) && count($product_ids) > $by_page)
|
236 |
return $this;
|
237 |
}
|
238 |
|
239 |
+
protected function _rebuildCategoryIndex($storeId, $categoryIds = null)
|
240 |
{
|
241 |
if ($categoryIds == null || count($categoryIds) == 0)
|
242 |
{
|
257 |
return $this;
|
258 |
}
|
259 |
|
260 |
+
protected function _rebuildProductIndex($storeId, $productIds = null)
|
261 |
{
|
262 |
if ($productIds == null || count($productIds) == 0)
|
263 |
{
|
app/code/community/Algolia/Algoliasearch/Model/Resource/Fulltext.php
CHANGED
@@ -5,11 +5,11 @@ class Algolia_Algoliasearch_Model_Resource_Fulltext extends Mage_CatalogSearch_M
|
|
5 |
|
6 |
/** Empty because we need it to do nothing (no mysql stuff), Indexing is handled by Model/Indexer/Algolia */
|
7 |
|
8 |
-
|
9 |
-
|
10 |
|
11 |
/** @var Algolia_Algoliasearch_Helper_Logger */
|
12 |
-
|
13 |
|
14 |
public function __construct()
|
15 |
{
|
5 |
|
6 |
/** Empty because we need it to do nothing (no mysql stuff), Indexing is handled by Model/Indexer/Algolia */
|
7 |
|
8 |
+
protected $engine;
|
9 |
+
protected $config;
|
10 |
|
11 |
/** @var Algolia_Algoliasearch_Helper_Logger */
|
12 |
+
protected $logger;
|
13 |
|
14 |
public function __construct()
|
15 |
{
|
app/code/community/Algolia/Algoliasearch/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Algolia_Algoliasearch>
|
5 |
-
<version>1.5.
|
6 |
</Algolia_Algoliasearch>
|
7 |
</modules>
|
8 |
<frontend>
|
@@ -140,9 +140,10 @@
|
|
140 |
<application_id></application_id>
|
141 |
<search_only_api_key></search_only_api_key>
|
142 |
<api_key></api_key>
|
|
|
143 |
<index_prefix>magento_</index_prefix>
|
144 |
<is_popup_enabled>1</is_popup_enabled>
|
145 |
-
<is_instant_enabled>
|
146 |
</credentials>
|
147 |
<products>
|
148 |
<number_product_results>9</number_product_results>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Algolia_Algoliasearch>
|
5 |
+
<version>1.5.3</version>
|
6 |
</Algolia_Algoliasearch>
|
7 |
</modules>
|
8 |
<frontend>
|
140 |
<application_id></application_id>
|
141 |
<search_only_api_key></search_only_api_key>
|
142 |
<api_key></api_key>
|
143 |
+
<debug>0</debug>
|
144 |
<index_prefix>magento_</index_prefix>
|
145 |
<is_popup_enabled>1</is_popup_enabled>
|
146 |
+
<is_instant_enabled>0</is_instant_enabled>
|
147 |
</credentials>
|
148 |
<products>
|
149 |
<number_product_results>9</number_product_results>
|
app/code/community/Algolia/Algoliasearch/etc/system.xml
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
<algoliasearch translate="label" module="algoliasearch">
|
5 |
<label>
|
6 |
<![CDATA[
|
7 |
-
Algolia Search 1.5.
|
8 |
<style>
|
9 |
.algoliasearch-admin-menu span {
|
10 |
padding-left: 38px !important;
|
@@ -85,6 +85,21 @@
|
|
85 |
]]>
|
86 |
</comment>
|
87 |
</enable_frontend>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
<application_id translate="label">
|
89 |
<label>Application ID</label>
|
90 |
<frontend_type>text</frontend_type>
|
@@ -146,6 +161,9 @@
|
|
146 |
<comment>
|
147 |
<![CDATA[
|
148 |
If set to Yes, the products inside the results pages will be searchable the refined results updated as-you-type. It requires your theme to expose a <code>top.search</code> and <code>content</code> block.
|
|
|
|
|
|
|
149 |
]]>
|
150 |
</comment>
|
151 |
</is_instant_enabled>
|
@@ -549,7 +567,7 @@
|
|
549 |
<![CDATA[
|
550 |
Number of jobs to run each time the cron is run. Default value is 10.
|
551 |
<br><br>
|
552 |
-
<span style="font-size: 20px; color: #D83900">⚠</span>
|
553 |
products.
|
554 |
]]>
|
555 |
</comment>
|
@@ -617,7 +635,7 @@
|
|
617 |
<show_in_default>1</show_in_default>
|
618 |
<show_in_website>1</show_in_website>
|
619 |
<show_in_store>1</show_in_store>
|
620 |
-
<comment>Choose if
|
621 |
</make_seo_request>
|
622 |
<remove_branding translate="label comment">
|
623 |
<label>Remove branding logo</label>
|
4 |
<algoliasearch translate="label" module="algoliasearch">
|
5 |
<label>
|
6 |
<![CDATA[
|
7 |
+
Algolia Search 1.5.3
|
8 |
<style>
|
9 |
.algoliasearch-admin-menu span {
|
10 |
padding-left: 38px !important;
|
85 |
]]>
|
86 |
</comment>
|
87 |
</enable_frontend>
|
88 |
+
<debug translate="label comment">
|
89 |
+
<label>Enable Logging</label>
|
90 |
+
<frontend_type>select</frontend_type>
|
91 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
92 |
+
<sort_order>0</sort_order>
|
93 |
+
<show_in_default>1</show_in_default>
|
94 |
+
<show_in_website>1</show_in_website>
|
95 |
+
<show_in_store>1</show_in_store>
|
96 |
+
<depends><enable_backend>1</enable_backend></depends>
|
97 |
+
<comment>
|
98 |
+
<![CDATA[
|
99 |
+
NOTICE: Debug logging generates a significant amount of data and can affect performance of indexing
|
100 |
+
]]>
|
101 |
+
</comment>
|
102 |
+
</debug>
|
103 |
<application_id translate="label">
|
104 |
<label>Application ID</label>
|
105 |
<frontend_type>text</frontend_type>
|
161 |
<comment>
|
162 |
<![CDATA[
|
163 |
If set to Yes, the products inside the results pages will be searchable the refined results updated as-you-type. It requires your theme to expose a <code>top.search</code> and <code>content</code> block.
|
164 |
+
<br><br>
|
165 |
+
<span style="font-size: 30px; color: #D83900">⚠</span> Enabling instant search can potentially break your design, some work will be required to have a good integration into your theme
|
166 |
+
products.
|
167 |
]]>
|
168 |
</comment>
|
169 |
</is_instant_enabled>
|
567 |
<![CDATA[
|
568 |
Number of jobs to run each time the cron is run. Default value is 10.
|
569 |
<br><br>
|
570 |
+
<span style="font-size: 20px; color: #D83900">⚠</span> Each time the cron runs it will process ("Max number of element per indexing job" * "Number of jobs to run each time the cron is run")
|
571 |
products.
|
572 |
]]>
|
573 |
</comment>
|
635 |
<show_in_default>1</show_in_default>
|
636 |
<show_in_website>1</show_in_website>
|
637 |
<show_in_store>1</show_in_store>
|
638 |
+
<comment>Choose if a query to Algolia is done by the backend for SEO when instant search is enabled</comment>
|
639 |
</make_seo_request>
|
640 |
<remove_branding translate="label comment">
|
641 |
<label>Remove branding logo</label>
|
app/design/frontend/base/default/template/algoliasearch/topsearch.phtml
CHANGED
@@ -244,20 +244,25 @@ $placeholder = $this->__('Search for products, categories, ...');
|
|
244 |
{{#second_bar}}
|
245 |
<div id="instant-search-bar-container">
|
246 |
<div id="instant-search-box">
|
247 |
-
<
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
<
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
|
|
|
|
|
|
|
|
|
|
261 |
</div>
|
262 |
</div>
|
263 |
{{/second_bar}}
|
@@ -269,7 +274,12 @@ $placeholder = $this->__('Search for products, categories, ...');
|
|
269 |
<div class="hits">
|
270 |
<div class="infos">
|
271 |
<div class="pull-left" id="algolia-stats"></div>
|
272 |
-
<div class="pull-right"
|
|
|
|
|
|
|
|
|
|
|
273 |
<div class="clearfix"></div>
|
274 |
</div>
|
275 |
<div id="instant-search-results-container"></div>
|
@@ -561,7 +571,7 @@ $placeholder = $this->__('Search for products, categories, ...');
|
|
561 |
content += '<div class="popular-searches">';
|
562 |
|
563 |
if (algoliaConfig.showSuggestionsOnNoResultsPage && this.suggestions.length > 0) {
|
564 |
-
content += '<div><?php echo $this->__('You can can try one of
|
565 |
}
|
566 |
|
567 |
content += '</div>';
|
@@ -778,6 +788,10 @@ $placeholder = $this->__('Search for products, categories, ...');
|
|
778 |
.on('autocomplete:updated', function (e) {
|
779 |
fixAutocompleteCssHeight(menu);
|
780 |
});
|
|
|
|
|
|
|
|
|
781 |
});
|
782 |
}
|
783 |
});
|
244 |
{{#second_bar}}
|
245 |
<div id="instant-search-bar-container">
|
246 |
<div id="instant-search-box">
|
247 |
+
<div class="instant-search-bar-label">
|
248 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="magnifying-glass" width="24" height="24" viewBox="0 0 128 128">
|
249 |
+
<g transform="scale(4)">
|
250 |
+
<path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
|
251 |
+
<circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
|
252 |
+
<path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z"></path>
|
253 |
+
</g>
|
254 |
+
</svg>
|
255 |
+
<span>Current search</span>
|
256 |
+
</div>
|
257 |
+
<div class="instant-search-bar-wrapper">
|
258 |
+
<label for="instant-search-bar">
|
259 |
+
<?php echo $this->__('Search :'); ?>
|
260 |
+
</label>
|
261 |
+
|
262 |
+
<input placeholder="<?php echo $this->__('Search for products'); ?>" id="instant-search-bar" type="text" autocomplete="off" spellcheck="false" autocorrect="off" autocapitalize="off" />
|
263 |
+
|
264 |
+
<img class="clear-query-instant" src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross.png" />
|
265 |
+
</div>
|
266 |
</div>
|
267 |
</div>
|
268 |
{{/second_bar}}
|
274 |
<div class="hits">
|
275 |
<div class="infos">
|
276 |
<div class="pull-left" id="algolia-stats"></div>
|
277 |
+
<div class="pull-right">
|
278 |
+
<div class="sort-by-label pull-left">
|
279 |
+
<?php echo $this->__('SORT BY'); ?>
|
280 |
+
</div>
|
281 |
+
<div class="pull-left" id="algolia-sorts"></div>
|
282 |
+
</div>
|
283 |
<div class="clearfix"></div>
|
284 |
</div>
|
285 |
<div id="instant-search-results-container"></div>
|
571 |
content += '<div class="popular-searches">';
|
572 |
|
573 |
if (algoliaConfig.showSuggestionsOnNoResultsPage && this.suggestions.length > 0) {
|
574 |
+
content += '<div><?php echo $this->__('You can can try one of the popular search queries'); ?></div>' + this.suggestions.join(', ');
|
575 |
}
|
576 |
|
577 |
content += '</div>';
|
788 |
.on('autocomplete:updated', function (e) {
|
789 |
fixAutocompleteCssHeight(menu);
|
790 |
});
|
791 |
+
|
792 |
+
$(window).resize(function () {
|
793 |
+
fixAutocompleteCssSticky(menu);
|
794 |
+
});
|
795 |
});
|
796 |
}
|
797 |
});
|
app/etc/modules/Algolia_Algoliasearch.xml
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
<Algolia_Algoliasearch>
|
5 |
<active>true</active>
|
6 |
<codePool>community</codePool>
|
7 |
-
<version>1.5.
|
8 |
</Algolia_Algoliasearch>
|
9 |
</modules>
|
10 |
</config>
|
4 |
<Algolia_Algoliasearch>
|
5 |
<active>true</active>
|
6 |
<codePool>community</codePool>
|
7 |
+
<version>1.5.3</version>
|
8 |
</Algolia_Algoliasearch>
|
9 |
</modules>
|
10 |
</config>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>algoliasearch</name>
|
4 |
-
<version>1.5.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="https://github.com/algolia/algoliasearch-magento/blob/master/LICENSE.txt">MIT</license>
|
7 |
<channel>community</channel>
|
@@ -11,21 +11,17 @@
|
|
11 |

|
12 |
This extension replaces Magento's FullText Search module and provide an as-you-type auto-completion menu in your searchbar.
|
13 |
</description>
|
14 |
-
<notes
|
15 |
-

|
16 |
-
|
17 |
-

|
18 |
-
|
19 |
-

|
20 |
-
-
|
21 |
-
- UPDATED: improve errors/warnings for reindexing 
|
22 |
-
- FIX: handle both secure and unsecure base url for images
|
23 |
-
- FIX: ability to have only instant search
|
24 |
-
- FIX: method to get product and categories url</notes>
|
25 |
<authors><author><name>Algolia Team</name><user>algolia</user><email>support@algolia.com</email></author></authors>
|
26 |
-
<date>2016-
|
27 |
-
<time>
|
28 |
-
<contents><target name="mageetc"><dir name="modules"><file name="Algolia_Algoliasearch.xml" hash="
|
29 |
<compatible/>
|
30 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
31 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>algoliasearch</name>
|
4 |
+
<version>1.5.3</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="https://github.com/algolia/algoliasearch-magento/blob/master/LICENSE.txt">MIT</license>
|
7 |
<channel>community</channel>
|
11 |

|
12 |
This extension replaces Magento's FullText Search module and provide an as-you-type auto-completion menu in your searchbar.
|
13 |
</description>
|
14 |
+
<notes>- UPDATED: added a config to disable logging
|
15 |
+
- UPDATED: better instant search UI
|
16 |
+
- FIX: various design improvements
|
17 |
+
- FIX: take into account "Include in Navigation" for categories
|
18 |
+
- FIX: sorting in instant search page
|
19 |
+
- FIX: wrong price for configurable products
|
20 |
+
- FIX: mass action delete</notes>
|
|
|
|
|
|
|
|
|
21 |
<authors><author><name>Algolia Team</name><user>algolia</user><email>support@algolia.com</email></author></authors>
|
22 |
+
<date>2016-02-10</date>
|
23 |
+
<time>10:48:28</time>
|
24 |
+
<contents><target name="mageetc"><dir name="modules"><file name="Algolia_Algoliasearch.xml" hash="e24e009d6be20415482cf3f9d39f3ff7"/></dir></target><target name="magecommunity"><dir name="Algolia"><dir name="Algoliasearch"><dir name="Block"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Custompages.php" hash="f87a9cf7b5559717cd9d6570374dcda7"/><file name="Customrankingcategory.php" hash="6d9575c12dbaecf9054de1cf12736025"/><file name="Customrankingproduct.php" hash="6d1b145e37c4f22d5b56f5783ac47511"/><file name="Customsortorder.php" hash="786c8f8fca2e4b41b8732f5fe270491b"/><file name="Customsortordercategory.php" hash="9908ea7f463138d3047c51b98591db9c"/><file name="Customsortorderproduct.php" hash="ee62901a3911bb7784467e1ca5cd8e84"/><file name="Facets.php" hash="b8c6217811a1c9afd64119d2b021cc5f"/><file name="Sections.php" hash="7aa62da4fb45f693bf81ad4aa0421ac3"/><file name="Select.php" hash="6e3cb4c1798775048bebbdc878e90aa9"/><file name="Sorts.php" hash="fede73c4ecbe39bf0344fbf6de46ed95"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Algoliahelper.php" hash="100ba0799077cb39ad868c08e162014f"/><file name="Config.php" hash="3b69cfe95213652fde2357b789e60960"/><file name="Data.php" hash="b1c3f5976e2fba3cadd3fc25ae9b6988"/><dir name="Entity"><file name="Additionalsectionshelper.php" hash="d4f67429e539e9ee9a5365ba45808770"/><file name="Categoryhelper.php" hash="5f3a80ddd98dd190148d47c3946ec9e7"/><file name="Helper.php" hash="85d9be2a624e882996cb27fc0ff38826"/><file name="Pagehelper.php" hash="b9ccdbdc677eae9442741f96d648d991"/><file name="Producthelper.php" hash="853af95ca4a0fdeb05c4ed468bd85f5c"/><file name="Suggestionhelper.php" hash="6bbc72c1bbc17b13f8d9be1e0bb46fa2"/></dir><file name="Image.php" hash="876292c0612fa87194d1657a7facb916"/><file name="Logger.php" hash="0431f992b1cda07a0c552392fc67d89b"/></dir><dir name="Model"><dir name="Indexer"><file name="Algolia.php" hash="9401b46d5c57b38fe97c5b28c7cf8cc2"/><file name="Algoliaadditionalsections.php" hash="649d4468a899f055d33dc959e758a688"/><file name="Algoliacategories.php" hash="7dda3999434d4fd44f11327240621e25"/><file name="Algoliapages.php" hash="22230967d949c89f92a794bd46fc6fa9"/><file name="Algoliaqueuerunner.php" hash="dbad890d433eee91732f44e36b6ac7e2"/><file name="Algoliasuggestions.php" hash="7a6702e8299f646356749fed8f57ca0a"/></dir><file name="Observer.php" hash="73ee1e9eb227085407bd130a4665a3ab"/><file name="Queue.php" hash="c3ec68c4441305ff9acc033d123a7823"/><dir name="Resource"><file name="Engine.php" hash="6030a8dbb933ce9f1c423ec1ef078f9d"/><dir name="Fulltext"><file name="Collection.php" hash="cf6c1b8ecaea31619db8186ccae8a2d4"/></dir><file name="Fulltext.php" hash="014ac885c31abeaa8e8ec56bbe54ff3d"/></dir><dir name="System"><file name="Imagetype.php" hash="5fd4dbd98818a15b0253c5988a65a785"/><file name="Removewords.php" hash="25408eb3e3d278da2f2ec1a6b6e6d8e8"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="ea4176ed43885e531f90d1f5369f29ee"/><file name="config.xml" hash="5a106ef22affb1ec9cc76d586d6ed31f"/><file name="system.xml" hash="71efc23cd58c9a6ba065f21149cc3e33"/></dir><dir name="sql"><dir name="algoliasearch_setup"><file name="mysql4-install-0.1.0.php" hash="fffd964f9c60be7909ec216260c37ba0"/><file name="mysql4-upgrade-0.1.0-1.4.8.php" hash="5224f8f1031a0659c64d393392a7f199"/><file name="mysql4-upgrade-1.4.8-1.5.0.php" hash="fa8be181b2d43e955e75dce1ed4a19ca"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="algoliasearch.xml" hash="28b9676bd76adfdbb9eecb54ce9c5f02"/></dir><dir name="template"><dir name="algoliasearch"><file name="beforecontent.phtml" hash="19f2ee9532f4e46c77ade0157976b780"/><file name="beforetopsearch.phtml" hash="2f9a42fa61b0f2be0bc2452ca924c2fb"/><file name="frontjs.phtml" hash="7d2cdf7bb5c2f47c0f118eac0ba1ead1"/><file name="topsearch.phtml" hash="724abb8b9b5d4276492557f48492e05f"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="algoliasearch"><file name="adminjs.phtml" hash="a5842a5c608c1496060dd4610c5c774f"/></dir></dir><dir name="layout"><file name="algoliasearch.xml" hash="312ecb88cb4ae694d098bda8f580d29e"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="algoliasearch"><file name="algolia-admin-menu.png" hash="9202a559c30a43d4d4bbc2f9ee774fd9"/><file name="algolia-logo.png" hash="190884b3e8652f3517754ae15bca31de"/><file name="algoliasearch.css" hash="d7c32abcd1151b88c156bd92253ec5f9"/><file name="cross-circle.png" hash="a9ae2fa7ec458ffaf7c32613ca9593da"/><file name="cross.png" hash="a046cd95cba9761c824063fbd30a26b5"/><dir name="images"><file name="ui-bg_diagonals-thick_18_b81900_40x40.png" hash="62568c006bb1066f40fd5f9cfe4489be"/><file name="ui-bg_diagonals-thick_20_666666_40x40.png" hash="406541454ec466d93217826588335194"/><file name="ui-bg_flat_10_000000_40x100.png" hash="85243ed808c91ae60d33bda3a6bdee3c"/><file name="ui-bg_glass_100_f6f6f6_1x400.png" hash="f912ffca9b1919ab26c64cf1332c5322"/><file name="ui-bg_glass_100_fdf5ce_1x400.png" hash="a9b41e3f4db0fb9be1cd2c649deb253f"/><file name="ui-bg_glass_65_ffffff_1x400.png" hash="ff9e9b45e03f11808144324fd5350612"/><file name="ui-bg_gloss-wave_35_f6a828_500x100.png" hash="08ece8908c07b1c0d18b8db076ff50fc"/><file name="ui-bg_highlight-soft_100_eeeeee_1x100.png" hash="72fe4b0e1bbb83dfd6787989d3583fbe"/><file name="ui-bg_highlight-soft_75_ffe45c_1x100.png" hash="81262299ac7f591fd1763c1ccee0691f"/><file name="ui-icons_222222_256x240.png" hash="3a3c5468f484f07ac4a320d9e22acb8c"/><file name="ui-icons_228ef1_256x240.png" hash="92b29683b6a48eae7de7eb4b1cfa039c"/><file name="ui-icons_ef8c08_256x240.png" hash="f492970693640894fb54166c75dd2925"/><file name="ui-icons_ffd27a_256x240.png" hash="dda1b6f694b0d196aefc66a1d6d758f6"/><file name="ui-icons_ffffff_256x240.png" hash="41612b0f4a034424f8321c9f824a94da"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="algoliasearch"><file name="Function.prototype.bind.js" hash="eb15975feb0cc976face88cb194294ae"/><file name="admin_scripts.js" hash="877a9fcbc5d3d627772464a9311ae0b3"/><file name="algoliaAdminBundle.min.js" hash="7cbce3614ccb065595a5c2ff56e32419"/><file name="algoliaBundle.min.js" hash="c81fc78bf11c34d73dddc5600611dc47"/></dir></dir><dir name="lib"><dir name="AlgoliaSearch"><file name="AlgoliaException.php" hash="4acaa7c9142e19d1084295a3b8ba18e2"/><file name="Client.php" hash="11ad687a9868a9f574ae6a069800dd2c"/><file name="ClientContext.php" hash="77d2449636d263162460a7ccaea4e6b6"/><file name="Index.php" hash="5c1eacc54cd503bff296e9bbbd402895"/><file name="Version.php" hash="0c37eb6324361991364e0efd2696e56d"/><dir name="resources"><file name="ca-bundle.crt" hash="47961e7ef15667c93cd99be01b51f00a"/></dir></dir></dir></target></contents>
|
25 |
<compatible/>
|
26 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
27 |
</package>
|
skin/frontend/base/default/algoliasearch/algoliasearch.css
CHANGED
@@ -367,6 +367,7 @@ a.ais-current-refined-values--link:hover
|
|
367 |
@media (min-width: 992px) {
|
368 |
#algolia-autocomplete-container .aa-dropdown-menu {
|
369 |
width: 71.1%;
|
|
|
370 |
}
|
371 |
}
|
372 |
|
@@ -752,18 +753,15 @@ a.ais-current-refined-values--link:hover
|
|
752 |
overflow: hidden;
|
753 |
}
|
754 |
|
755 |
-
#instant-search-bar-container {
|
756 |
-
width: 100%;
|
757 |
-
position: relative;
|
758 |
-
}
|
759 |
-
|
760 |
#algolia_instant_selector #instant-search-bar {
|
761 |
-
|
|
|
762 |
height: 40px;
|
763 |
font-family: "Raleway", "Helvetica Neue", Verdana, Arial, sans-serif;
|
764 |
-
border:
|
765 |
-
border-
|
766 |
-
padding-left:
|
|
|
767 |
}
|
768 |
|
769 |
#algolia_instant_selector.with-facets #algolia-right-container {
|
@@ -786,6 +784,10 @@ a.ais-current-refined-values--link:hover
|
|
786 |
color: #555;
|
787 |
}
|
788 |
|
|
|
|
|
|
|
|
|
789 |
#algolia_instant_selector .hits .no-results {
|
790 |
margin: 40px 25px;
|
791 |
color: #636363;
|
@@ -965,6 +967,14 @@ a.ais-current-refined-values--link:hover
|
|
965 |
#algolia_instant_selector #instant-search-bar-container {
|
966 |
padding-top: 0px;
|
967 |
margin-bottom: 15px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
968 |
}
|
969 |
|
970 |
#algolia_instant_selector .as-search-box--input {
|
@@ -982,12 +992,23 @@ a.ais-current-refined-values--link:hover
|
|
982 |
display: none;
|
983 |
}
|
984 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
985 |
#algolia_instant_selector #instant-search-box svg.magnifying-glass {
|
986 |
position: absolute;
|
987 |
top: 8px;
|
988 |
-
left:
|
989 |
-
fill: #
|
990 |
-
stroke: #
|
991 |
}
|
992 |
|
993 |
#algolia_instant_selector .before_special {
|
367 |
@media (min-width: 992px) {
|
368 |
#algolia-autocomplete-container .aa-dropdown-menu {
|
369 |
width: 71.1%;
|
370 |
+
min-width: 800px;
|
371 |
}
|
372 |
}
|
373 |
|
753 |
overflow: hidden;
|
754 |
}
|
755 |
|
|
|
|
|
|
|
|
|
|
|
756 |
#algolia_instant_selector #instant-search-bar {
|
757 |
+
float: left;
|
758 |
+
width: calc(100% - 140px);
|
759 |
height: 40px;
|
760 |
font-family: "Raleway", "Helvetica Neue", Verdana, Arial, sans-serif;
|
761 |
+
border: solid 2px #54A5CD;
|
762 |
+
border-left: none;
|
763 |
+
padding-left: 6px;
|
764 |
+
padding-top: 2px;
|
765 |
}
|
766 |
|
767 |
#algolia_instant_selector.with-facets #algolia-right-container {
|
784 |
color: #555;
|
785 |
}
|
786 |
|
787 |
+
#algolia_instant_selector .hits .sort-by-label {
|
788 |
+
margin-right: 8px;
|
789 |
+
}
|
790 |
+
|
791 |
#algolia_instant_selector .hits .no-results {
|
792 |
margin: 40px 25px;
|
793 |
color: #636363;
|
967 |
#algolia_instant_selector #instant-search-bar-container {
|
968 |
padding-top: 0px;
|
969 |
margin-bottom: 15px;
|
970 |
+
width: 100%;
|
971 |
+
position: relative;
|
972 |
+
}
|
973 |
+
|
974 |
+
#algolia_instant_selector #instant-search-bar-container:after {
|
975 |
+
clear: both;
|
976 |
+
content: "";
|
977 |
+
display: block;
|
978 |
}
|
979 |
|
980 |
#algolia_instant_selector .as-search-box--input {
|
992 |
display: none;
|
993 |
}
|
994 |
|
995 |
+
#algolia_instant_selector .instant-search-bar-label {
|
996 |
+
background-color: #54A5CD;
|
997 |
+
height: 40px;
|
998 |
+
line-height: 24px;
|
999 |
+
padding: 8px 12px;
|
1000 |
+
color: white;
|
1001 |
+
float: left;
|
1002 |
+
width: 140px;
|
1003 |
+
text-align: right;
|
1004 |
+
}
|
1005 |
+
|
1006 |
#algolia_instant_selector #instant-search-box svg.magnifying-glass {
|
1007 |
position: absolute;
|
1008 |
top: 8px;
|
1009 |
+
left: 8px;
|
1010 |
+
fill: #FFFFFF;
|
1011 |
+
stroke: #FFFFFF;
|
1012 |
}
|
1013 |
|
1014 |
#algolia_instant_selector .before_special {
|