0

重複の可能性:
製品ビュー ページにレビュー タブを追加する方法

商品ページのタブにレビューフォームとレビューを表示する方法。私はcatalog.xmlで次のことをしていました

<!--action method="addTab" translate="title" module="catalog"><alias>review</alias><title>Review</title><block>review/product_view_list</block><template>review/product/view/list.phtml</template></action--> <!--For getting the review datails-->

<action method="addTab" translate="title" module="catalog"><alias>review</alias><title>Review</title><block>review/form</block><template>review/form.phtml</template></action>  <!--For displaying review form-->

4

1 に答える 1

5

これは、私のプロジェクトの 1 つでこの状況をどのように処理したかです。

レビュー付きのタブを追加

<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>

nameinハンドラーは、実行中の<reference>ものと等しくなければなりません<alias>addTab

そして、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.phtmlreview/form.phtmlコードを変更する必要がない場合、またはそのタブでのみ使用する場合は、レビューフォームテンプレートをデフォルトのものに変更できますが、レビューリストはhtml構造にさらに変更が必要になる可能性があるため、別のファイルを作成することをお勧めします必要に応じてデフォルト コードの一部を使用します。

于 2012-08-30T19:57:53.540 に答える