我创建了一个示例模块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文件中添加块的正确方法是什么?
答案 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。