Mirasvit Search AutoComplete Box Missing After Enabling LiteMage
Problem
If you have added header
in LiteMage's **Customized Block Names for "toplinks" Tag** setting, the entire header will be treated as one big ESI block. When LiteMage is enabled, the default search box will show up in the header, but not the customized Mirasvit search box.
Cause
The Mirasvit search block is not directly added to header block in the layout, but is added later in the addSearchAutocomplete
action method call. The related code is located in the Mirasvit_SearchAutocomplete_Block_Layout addForm()
function in file app/code/local/Mirasvit/SearchAutocomplete/Block/Layout.php
. When LiteMage renders the ESI block header based on layout, it is not aware of this replaced search box, thus the default search box is used.
Solution
To fix this:
- Locate the layout XML added by Misrasvit search box. In our example this is located in
design/frontend/base/default/layout/mst_searchautocomplete.xml
.
In the default handle, it adds search.block.<default> … <block type="searchautocomplete/layout" name="search.block"> <action method="addSearchAutocomplete" ifconfig="searchautocomplete/general/enabled" /> </block> … </default>
- Add this block to the header block in the layout file, allowing the related layout xml to be picked up by LiteMage. Modify the above layout file, wrapping the block with a header reference.
<default> … <reference name="header"> <block type="searchautocomplete/layout" name="search.block"> <action method="addSearchAutocomplete" ifconfig="searchautocomplete/general/enabled" /> </block> </reference> … </default>
- Flush the Magento configuration cache and LiteMage cache. The customized search box should now appear as normal.