这就是我在我的一个项目中处理这种情况的方式:
添加带有评论的标签
<block type="catalog/product_view_tabs" name="product.info.tabs" as="info_tabs" template="catalog/product/view/tabs.phtml" >
<action method="addTab" translate="title" module="catalog"><alias>tab_review_list</alias><title>Product Reviews</title><block>review/product_view_list</block><template>catalog/product/view/tabs/reviews.phtml</template></action>
</block>
现在,评论表单由不同类型的块处理,通常是评论页面的子块。没有办法用addTab
动作制作嵌套块,但您可以<reference>
在标签中创建审查块后使用处理程序,如下所示:
<reference name="tab_review_list">
<block type="review/form" name="tab_review_form" as="review_form" template="catalog/product/view/tabs/review_form.phtml" />
</reference>
name
in <reference>
handler 必须等于 in<alias>
在addTab
action
而在catalog/product/view/tabs/reviews.phtml
你只是使用
echo $this->getChildHtml('review_form');
您可以使用<reference>
处理程序将更多块添加到审阅列表和审阅表单。
当然,您必须在template
参数中输入的路径中创建评论列表和评论表单的文件,因此在这种情况下您需要创建catalog/product/view/tabs/reviews.phtml
和catalog/product/view/tabs/review_form.phtml
. review/form.phtml
如果您不需要更改那里的代码,或者您将仅在该选项卡中使用它,您可以将审阅表单模板更改为默认模板,但审阅列表可能需要对 html 结构进行更多更改,因此最好为其创建单独的文件并根据需要使用部分默认代码。