Magento catalogsearch.xml中的自定义块

时间:2012-12-11 07:38:38

标签: php xml magento magento-1.5 magento-1.7

我创建了一个示例模块Web。我也为此创建了一个样本块。我在app / design / frontend / default / default / template文件夹中有一个web.phtml文件,在app / desing / fronted / default / default / layout文件中有一个web.xml文件。下面是我的web.xml文件

<?xml version="1.0"?>
<layout version="0.1.0">
    <default>
    </default>
    <web_index_index>
    <reference name="root">
          <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
    </reference>
        <reference name="content">
            <block type="web/web" name="web" template="web/web.phtml" />
        </reference>
    </web_index_index>
</layout> 

它在我的http://mydomain.com/magento/web中正常运作。

现在我从app / desing / fronted / base / default / layout复制了一个catalogsearch.xml文件并将其粘贴到app / desing / fronted / default / default / layout中,并在results.phtml之后添加了块代码但是我我无法在我的catalogsearch页面中看到该块。

<block type="web/web" name="web" template="web/web.phtml" /> 

我在这里缺少什么?在catalogsearch.xml文件中添加块的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

布局更新指令出现的文件(通常)不相关。什么范围布局XML指令是布局更新句柄。

对于catalogsearch结果,如果您想在简单和高级搜索结果视图中使用它,则需要将块添加到两个句柄;将其添加到 web.xml 布局文件中:

<catalogsearch_result_index>
    <reference name="content">
        <block type="web/web" name="web" template="web/web.phtml" after="-" /> 
    </reference>
</catalogsearch_result_index>

<catalogsearch_advanced_result>
    <reference name="content">
        <block type="web/web" name="web" template="web/web.phtml" after="-" /> 
    </reference>
</catalogsearch_advanced_result>

现在,大多数开发人员都会想到重复代码。上面的指令可以在实用程序句柄中编写一次,然后可以使用实用程序句柄将结果应用于其他地方:

<web_addToContent>
    <reference name="content">
        <block type="web/web" name="web" template="web/web.phtml" after="-" /> 
    </reference>
</web_addToContent>

<catalogsearch_advanced_result>
    <update handle="web_addToContent" />
</catalogsearch_advanced_result>

<catalogsearch_advanced_result>
    <update handle="web_addToContent" />
</catalogsearch_advanced_result>

如果块出现在内容的开头(尽管after="-"),则可能需要在目录搜索模块之后加载Web模块的配置XML。