Расширение Algolia Magento: рендеринг дважды из-за меню вне холста, без использования страницы результатов Algolia

Я сделал все, что мог, чтобы попытаться выяснить, что здесь происходит, но безрезультатно.

Я установил Algolia в соответствии с инструкциями на свой локальный экземпляр клиентского веб-сайта. После отключения Elasticsearch я могу проверить элемент и увидеть, что div algolia-searchbox отображается правильно. Однако он не работает так, как должен. Кажется, он использует функцию поиска magento, хотя этот поиск находится в окне поиска algolia.

Я копнул немного глубже. Я обнаружил, что топпоиск дважды отображался на странице из-за меню вне холста. Когда я уменьшаю свое окно до подходящего размера для рендеринга show-for-small-only, поиск ТАКЖЕ находится в этом разделе, но на самом деле он работает так, как должен работать поиск Algolia.

<reference name="header">
   <remove name="top.search"/>
   <block type="algoliasearch/search_form" name="top.algoliasearch" as="topSearch"/>
   <action method="setTemplate"><template>algoliasearch/topsearch.phtml</template></action>
</reference>

Итак, первый вопрос: как лучше всего заставить это работать с адаптивным дизайном, используя функциональные возможности меню вне холста? Меню вне холста, отображаемое вторым, в конечном итоге переопределяет то, что было сделано с обычной областью поиска из-за того, что оно отображается дважды, и это огромная проблема.

Единственный способ, которым я смог увидеть правильную панель поиска в обычном заголовке, — это поместить ее в файл algoliasearch.xml:

Это полностью избавляет меня от моего заголовка, но на самом деле отображает правильную панель поиска. Я знаю, что это неправильный синтаксис, но при устранении неполадок...

Вторая проблема, с которой я сталкиваюсь, заключается в том, что даже когда я использую панель поиска, которая действительно отображается (через приведенный выше фрагмент заголовка xml или с помощью меньшего размера браузера для отображения поиска в меню вне холста), страница результатов, на которой я оказываюсь это обычная страница результатов Magento. Я вижу активность на панели «Сеть», когда ввожу текст в строку поиска, но как только я отправляю запрос, все исчезает и остается пустым.

Спасибо за любую помощь, которую вы можете предложить.


person R. Nichols    schedule 13.11.2015    source источник
comment
Решено github.com/algolia/algoliasearch-magento/issues/249.   -  person R. Nichols    schedule 13.11.2015
comment
Привет, Р. Николс, не могли бы вы добавить ответ, объясняющий решение, и принять его?   -  person Jerska    schedule 19.11.2015


Ответы (1)


Все изменения, сделанные в моем конкретном случае, были сделаны в файле app\design\frontend\base\default\template\algoliasearch\topsearch.phtml.

  1. Примерно в строке 546 я заменил «поиск» на [id = «search»]. Это привязывается к обоим входам, а не только к последнему обработанному входу.

  2. Были внесены следующие дополнения (в основном добавление $(document).ready(function () { прямо под algoliaBundle.$(function($) {/strong> в строке 536 а также оборачивая все это: https://github.com/algolia/algoliasearch-magento/blob/master/design/frontend/template/topsearch.phtml#L536
    https://github.com/algolia/algoliasearch-magento/blob/master/design/frontend/template/topsearch.phtml#L1735

  3. Строка 1284: изменено: if ($(algoliaConfig.instant.selector).length !== 1) на if ($(algoliaConfig.instant.selector).length ‹ 1)

  4. Изменен мгновенный селектор с .main на .main-container

person R. Nichols    schedule 20.11.2015