1

新しい商品タイプがあり、カート ページで、そのカスタム商品タイプに対して別の cart.phtml を表示する必要があります。このように設定すると、すべての商品タイプでこの新しい cart.phtml が使用されます。

<checkout_cart_index>
   <reference name="checkout.cart">
      <action method="setTemplate">
         <template>mymodule/checkout/cart.phtml</template>
      </action>
   </reference>
</checkout_cart_index>

しかし、これを使用すると、うまくいきません。

<PRODUCT_TYPE_custom module="catalog">
   <reference name="checkout.cart">
      <action method="setTemplate">
         <template>mymodule/checkout/cart.phtml</template>
      </action>
   </reference>
</PRODUCT_TYPE_custom>

他に方法はありますか?前もって感謝します。

4

1 に答える 1

0

ハンドル PRODUCT_TYPE_custom は商品ページでのみ使用されます。カートに特定の製品が含まれているかどうかをコントローラーで確認し、レイアウトの更新で使用できるカスタム レイアウト ハンドルを追加することができます。この場合、チェックアウト コントローラーをオーバーライドする必要があります。ただし、コントローラーはロジックを配置するのに最適な場所ではありません。より良い解決策は、 *controller_action_layout_load_before* のようなイベントを使用し、オブザーバー オブザーバーにこのロジックを追加することです。

$update = $observer->getEvent()->getLayout()->getUpdate();
$update->addHandle('custom_checkout_handle_name');

次に、レイアウトの更新に xml を追加します。

<custom_checkout_handle_name>
    <reference name="checkout.cart">
        <action method="setTemplate"><template>checkout/cart_alternative.phtml</template></action>
    </reference>
</custom_checkout_handle_name>

もちろん、これは完全な解決策ではありませんが、次の考えの良い方向性です ;)

于 2013-11-06T21:59:23.307 に答える