カスタマイズ製品をカスタマアカウントページにカスタマイズします
-
12-12-2019 - |
質問
マゼントに新しい、そして私はこの問題に苦しんでいます。カスタマイズをカスタマアカウントページに追加したいので、カスタマイズブロックをに作成しました。
\template\catalog\product\compare\mycompare.phtml
.
と私のlocal.xmlでを追加
<action method="addLink" translate="label" module="catalog">
<name>catalog.compare.list</name>
<path>index.php/catalog/product_compare/index/</path>
<label>My Compare</label>
</action>
<catalog_product_compare_index>
<label>Catalog Product Compare List</label>
<!-- Mage_Catalog -->
<update handle="customer_account"/>
<reference name="my.account.wrapper">
<block type="catalog/product_compare_list" name="catalog.compare.list" template="catalog/product/compare/mycompare.phtml"/>
</reference>
</catalog_product_compare_index>
.
仕事は仕事ですが、そのブロックは2回呼び出されました。そしてオリジナルの商品比較(クリックしたときに新しいウィンドウを持つもの)もレイアウトを変更しました!修正するにはどうすればいいですか??
解決
問題は、ポップアップ比較製品と同じ経路を使用しているためです。
<path>index.php/catalog/product_compare/index/</path>
.
とこのコード
<catalog_product_compare_index>
<label>Catalog Product Compare List</label>
<!-- Mage_Catalog -->
<update handle="customer_account"/>
<reference name="my.account.wrapper">
<block type="catalog/product_compare_list" name="catalog.compare.list" template="catalog/product/compare/mycompare.phtml"/>
</reference>
</catalog_product_compare_index>
.
ポップアップを変更する製品レイアウトを比較します。
だから、私が新しいモジュールを作成するためだけにここで何をしています。IndexController
、を使用してindexAction
を作成します
public function indexAction() {
$this->loadLayout();
$this->getLayout()->getBlock('head')->setTitle($this->__('My Compare'));
$this->renderLayout();
}
.
とlocal.xml
:にコードを変更する:
<action method="addLink" translate="label" module="mycompare">
<name>mycompare</name>
<path>mycompare/index</path>
<label>My Compare</label>
</action>
<mycompare_index>
<label>Catalog Product Compare List</label>
<!-- Mage_Catalog -->
<update handle="customer_account"/>
<reference name="my.account.wrapper">
<block type="catalog/product_compare_list" name="mycompare" as="mycompare" template="catalog/product/compare/mycompare.phtml"/>
</reference>
</mycompare_index>
. 他のヒント
あなたが達成したいものがよくわからないので、2つの異なる解決策を提供します:
解決策1 製品の比較の複製を削除する必要がある場合は、製品の比較ウィンドウを追加する必要がある場合は、local.xml
に次のように実装する必要があります。
.
<catalog_product_compare_index>
<update handle="customer_account"/>
<reference name="content">
<action method="unsetChild"><name>catalog.compare.list</name></action>
</reference>
<reference name="my.account.wrapper">
<block type="catalog/product_compare_list" name="catalog.compare.list" template="catalog/product/compare/mycompare.phtml"/>
</reference>
</catalog_product_compare_index>
解決策2. カスタム比較製品テンプレートブロックをカスタマアカウントダッシュボードページに追加する必要がある場合は、local.xml
:に次のように実装する必要があります。
.<customer_account_index>
<reference name="my.account.wrapper">
<block type="catalog/product_compare_list" name="catalog.compare.list" template="catalog/product/compare/mycompare.phtml"/>
</reference>
</customer_account_index>