カスタマイズ製品をカスタマアカウントページにカスタマイズします

magento.stackexchange https://magento.stackexchange.com//questions/45669

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

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top