0

我创建了一个示例模块 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 之后添加了块代码,但我无法在我的目录搜索页面中查看该块。

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

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

4

1 回答 1

0

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

对于目录搜索结果,如果您想要在简单和高级搜索结果视图中添加块,则需要将其添加到两个句柄;将此添加到您的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。

于 2012-12-11T12:22:55.150 回答