回答:
Amitの代替アプローチは、テーマのlocal.xml
親ブロックcustomer_account_navigationを完全に置き換え、表示するリンクのみを追加することです。以下を使用して、不要な行を削除してください。今後他のリンクを追加する必要がある場合は、表示するためにそれらをにコピーする必要があることに注意してくださいlocal.xml
。追加の特典として、アイテムを簡単に並べ替えることができます。
<?xml version="1.0"?>
<layout version="0.1.0">
<customer_account>
<block type="customer/account_navigation" name="customer_account_navigation" before="-" template="customer/account/navigation.phtml">
<action method="addLink" translate="label" module="customer"><name>account</name><path>customer/account/</path><label>Account Dashboard</label></action>
<action method="addLink" translate="label" module="customer"><name>account_edit</name><path>customer/account/edit/</path><label>Account Information</label></action>
<action method="addLink" translate="label" module="customer"><name>address_book</name><path>customer/address/</path><label>Address Book</label></action>
<action method="addLink" translate="label" module="downloadable"><name>downloadable_products</name><path>downloadable/customer/products</path><label>My Downloadable Products</label></action>
<action method="addLink" translate="label" module="newsletter"><name>newsletter</name><path>newsletter/manage/</path><label>Newsletter Subscriptions</label></action>
<action method="addLink" translate="label" module="review"><name>reviews</name><path>review/customer</path><label>My Product Reviews</label></action>
<action method="addLink" translate="label" module="sales"><name>orders</name><path>sales/order/history/</path><label>My Orders</label></action>
<action method="addLink" translate="label" module="tag"><name>tags</name><path>tag/customer/</path><label>My Tags</label></action>
<action method="addLink" translate="label" module="wishlist" ifconfig="wishlist/general/active"><name>wishlist</name><path>wishlist/</path><label>My Wishlist</label></action>
<action method="addLink" translate="label" module="oauth">
<name>OAuth Customer Tokens</name>
<path>oauth/customer_token</path>
<label>My Applications</label>
</action>
</block>
</customer_account>
</layout>
これをlocal.xmlで行うだけです
<customer_account>
<reference name="customer_account_navigation" >
<!-- remove the link using your custom method -->
<action method="removeLinkByName"><name>recurring_profiles</name> </action>
<action method="removeLinkByName"><name>billing_agreements</name></action>
<action method="removeLinkByName"><name>reviews</name></action>
<action method="removeLinkByName"><name>downloadable_products</name></action>
<action method="removeLinkByName"><name>OAuth Customer Tokens</name></action>
<action method="removeLinkByName"><name>account</name></action>
<action method="removeLinkByName"><name>account_edit</name></action>
<action method="removeLinkByName"><name>address_book</name></action>
<action method="removeLinkByName"><name>orders</name></action>
<action method="removeLinkByName"><name>tags</name></action>
<action method="removeLinkByName"><name>wishlist</name></action>
<action method="removeLinkByName"><name>newsletter</name></action>
</reference>
</customer_account>
保持するリンクを削除します。:-)
Magentoは、こちらの機能をcustomer account left
使用して、手元にリンクを追加addLink
しMage_Customer_Block_Account_Navigation
ます
public function addLink($name, $path, $label, $urlParams=array())
{
$this->_links[$name] = new Varien_Object(array(
'name' => $name,
'path' => $path,
'label' => $label,
'url' => $this->getUrl($path, $urlParams),
));
return $this;
}
Magentoはこのxmlコードでこれらのリンクを追加します
<action method="addLink" translate="label" module="customer"><name>account</name>
<path>customer/account/</path><label>Account Dashboard</label></action>
のlot of layout xml
ようなファイルがありますtag.xml,outh.xml,customer.xml,checkout.xml
link on left navigation using addLink function
レイアウトフォルダーにapp/design/frontend/your package/your template/layout/
これらのファイルが含まれて いなかった場合links are available
は、account left navigation
magentoフォールバックロジックに従って、それらをからapp/design/frontend/base/default/layout/
にコピーする必要がありますapp/design/frontend/your package/your template/layout/
。
次に、このコードをこれらのファイルにコメントします。
layout xmls file
検索 <action method="addLink"
コードに移動してそれらのコードを削除するには
Mage_Customer_Block_Account_Navigation
以下のコードを使用してリンクを削除するときにメソッドを作成します
public function removeLink($removename)
{
unset($this->_links[$removename]);
return $this;
}
このための拡張を作成する必要があります
ステップ1:クラスMage_Customer_Block_Account_Navigation
を使用してクラスを書き換える Amit_RemoveNavigation_Block_Customer_Account_Navigation
app \ code \ local \ Amit \ RemoveNavigation \ Block \ Customer \ AccountにNavigation.phpファイルを作成します
<?php
class Amit_RemoveNavigation_Block_Customer_Account_Navigation extends Mage_Customer_Block_Account_Navigation
{
public function removeLink($removename)
{
unset($this->_links[$removename]);
return $this;
}
}
ステップ2:作成config.xml
時app\code\local\Amit\RemoveNavigation\etc
と
<?xml version="1.0"?>
<config>
<modules>
<Amit_RemoveNavigation>
<version>1.0.0</version>
</Amit_RemoveNavigation>
</modules>
<global>
<helpers>
<removenavigation>
<class>Amit_RemoveNavigation_Helper</class>
</removenavigation>
</helpers>
<blocks>
<removenavigation>
<class>Amit_RemoveNavigation_Block</class>
</removenavigation>
<customer>
<rewrite>
<account_navigation>Amit_RemoveNavigation_Block_Customer_Account_Navigation</account_navigation>
</rewrite>
</customer>
</blocks>
</global>
</config>
ステップ3:このモジュールのヘルパークラスを作成 Data.php
するpp\code\local\Amit\RemoveNavigation\Helper
<?php
class Amit_RemoveNavigation_Helper_Data extends Mage_Core_Helper_Abstract
{
}
ステップ4:でモジュール制御ファイルAmit_RemoveNavigation.xml
を作成するapp/etc/modules/
<?xml version="1.0"?>
<config>
<modules>
<Amit_RemoveNavigation>
<active>true</active>
<codePool>local</codePool>
<version>1.0.0</version>
</Amit_RemoveNavigation>
</modules>
</config>
あなたはouth.xmlでこのコードを見るでしょう
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="oauth">
<name>OAuth Customer Tokens</name>
<path>oauth/customer_token</path>
<label>My Applications</label>
</action>
</reference>
左側のナビゲーションのアプリケーションリンクに追加されます
で作成 local.xml
するapp/design/frontend/your package/your template/layout/
このコードを追加
<?xml version="1.0"?>
<layout version="0.1.0">
<reference name="customer_account_navigation">
<action method="removeLink" translate="label" module="oauth">
<name>OAuth Customer Tokens</name> <!-- remove by name -->
</action>
</reference>
</layout>
以下のコードが表示されます downloadable.xml
<customer_account>
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="downloadable"><name>downloadable_products</name><path>downloadable/customer/products</path><label>My Downloadable Products</label></action>
</reference>
</customer_account>
タグでリンクを削除して追加した<name>downloadable_products</name>
ので、local.xmlコードを追加しました。
<?xml version="1.0"?>
<layout version="0.1.0">
<reference name="customer_account_navigation">
<action method="removeLink" translate="label" module="oauth">
<name>OAuth Customer Tokens</name> <!-- remove by name -->
</action>
<action method="removeLink" translate="label" module="oauth">
<name>downloadable_products</name> <!-- remove by name -->
</action>
</reference>
</layout>
マジェントでこれを追加します
この ロジックに従ってタグ付け
<name>recurring_profiles</name>
<name>billing_agreements</name>
<name>reviews</name>
<name>downloadable_products</name>
<name>OAuth Customer Tokens</name>
<name>account</name>
<name>account_edit</name>
<name>address_book</name>
<name>orders</name>
<name>tags</name>
<name>wishlist</name>
<name>newsletter</name>
CE 1.9.3では、次のことができます。
まず、アカウントナビゲーションブロックを完全に削除します。
<!--Unset the whole block then add back later-->
<action method="unsetChild">
<name>customer_account_navigation</name>
</action>
<block type="customer/account_navigation" name="customer_account_navigation" before="-" template="customer/account/navigation.phtml">
<action method="addLink" translate="label" module="customer">
<name>account</name>
<path>customer/account/</path>
<label>Account Dashboard</label>
</action>
<action method="addLink" translate="label" module="customer">
<name>account_edit</name>
<path>customer/account/edit/</path>
<label>Account Information</label>
</action>
<action method="addLink" translate="label" module="customer">
<name>address_book</name>
<path>customer/address/</path>
<label>Address Book</label>
</action>
<action method="addLink" translate="label" module="sales">
<name>orders</name>
<path>sales/order/history/</path>
<label>My Orders</label>
</action>
<action method="addLink" translate="label" module="wishlist" ifconfig="wishlist/general/active">
<name>wishlist</name>
<path>wishlist/</path>
<label>My Favorite</label>
</action>
<action method="addLink" translate="label" module="newsletter">
<name>newsletter</name>
<path>newsletter/manage/</path>
<label>Newsletter Subscriptions</label>
</action>
</block>
顧客アカウントのナビゲーションブロックを再度追加して、必要なリンクを追加します。