Algolia Magento扩展:由于Off-Canvas菜单渲染两次,不使用Algolia结果页面

时间:2015-11-13 15:02:09

标签: javascript magento canvas algolia

我尽我所能去试图找出这里发生的事情无济于事。

我按照说明在我的客户网站的本地开发实例上安装了Algolia。禁用Elasticsearch后,我可以检查元素并看到algolia-searchbox div正确显示。但是,它没有按预期工作。它似乎正在使用magento搜索功能,即使该搜索位于algolia搜索框内。

我挖得更深了一点。我发现由于画布外菜单,topsearch在页面上呈现了两次。当我将窗口缩小到适合只显示小型渲染的大小时,搜索也在该部分中,但实际上它可以在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>

所以第一个问题是:使用非画布菜单功能的响应式设计能够使用它的最佳方法是什么?第二次渲染的非画布菜单最终会覆盖正常的topsearch区域,因为它渲染了两次,这是一个很大的问题

到目前为止,我能够在普通标题上看到正确的搜索栏的唯一方法是将其放在algoliasearch.xml中:

这完全摆脱了我的标题,但它实际上显示了正确的搜索栏。我知道它不是正确的合成文件,但在进行故障排除时......

我面临的第二个问题是,即使我利用实际显示的搜索栏(通过上面的标题xml片段或使用较小的浏览器大小来渲染画布菜单搜索),结果页面I最终是正常的Magento结果页面。当我在搜索栏中输入时,我可以在“网络”面板中看到活动,但是一旦我提交,它就会消失并保持空白。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

在我的特定情况下所做的所有更改都是在app \ design \ frontend \ base \ default \ template \ algoliasearch \ topsearch.phtml文件中进行的

  1. 在第546行附近,我用[id =“search”]替换“搜索”。这将绑定到两个输入,而不是仅绑定到最近呈现的输入。

  2. 进行了以下添加(基本上,在 algoliaBundle正下方添加 $(文档).ready(function(){。$(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) to if($(algoliaConfig.instant.selector).length&lt; 1)

  4. 将即时选择器从.main更改为.main-container