我正試圖移除帳戶導航中的鏈接。我看了一下customer/account/navigation.phtml模板。該模板通過$ this-> getLinks()獲取鏈接。如何編輯getLinks()方法,以便我可以刪除一些鏈接?Magento - 如何添加/刪除我的帳戶導航鏈接?
回答
您的問題的答案最終取決於您的問題。該導航中的鏈接通過不同的佈局XML文件添加。以下是首先在layout/customer.xml
中定義塊的代碼。請注意,它還定義了一些鏈接添加到菜單:
<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>
</block>
其它菜單項在其他佈局文件中定義。例如,評價模塊使用layout/review.xml
來定義它的佈局,幷包含以下內容:
<customer_account>
<!-- Mage_Review -->
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="review"><name>reviews</name><path>review/customer</path><label>My Product Reviews</label></action>
</reference>
</customer_account>
要刪除此鏈接,只需註釋掉或刪除<action method=...>
標籤和菜單項目將消失。如果您想一次查找所有菜單項,請使用您最喜歡的文件搜索並找到任何name="customer_account_navigation"
的實例,這是Magento用於該導航塊的句柄。
這個解決方案的創建之前廣泛採用的修改通過在local.xml中執行更新而無需觸摸基本模板文件進行佈局。修改基本模板文件當然是一個很大的禁忌,因爲修改可能在Magento版本更改中丟失。 – 2012-04-17 13:48:49
(zlovelady的解決方案是正確的) – 2012-04-17 13:49:05
自由「[前端鏈接管理器](http://www.magentocommerce.com/magento-connect/MagePsycho/extension/7905/frontend_links_manager)」擴展可以讓你做到這一點,除了「我的應用程序」,從控制面板。 – ehartwell 2013-03-17 14:51:19
此外,你需要做的config.xml中這樣的事情,如果你正在開發一個定製的模塊
<frontend>
<layout>
<updates>
<hpcustomer>
<file>hpcustomer.xml</file>
</hpcustomer>
</updates>
</layout>
</frontend>
如果你想選擇刪除鏈接,而無需複製/編輯整個XML文件,一個漂亮的解決方案可以在this post in the magento forums
發現在此解決方案,覆蓋Mage_Customer_Block_Account_Navigation
塊與本地版本,增加了一個removeLinkByName
方法,然後您可以在您的layout.xml
文件中使用,就像這樣:
<?xml version="1.0"?>
<layout version="0.1.0">
<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>
</reference>
</customer_account>
</layout>
這就是論壇,其解決方案是有效的,請註明那麼,如果u能 – 2014-10-20 08:38:24
瑞安Christofferson了更好的答案,謝謝 – 2014-11-07 10:55:45
@PratikCJoshi看到http://stackoverflow.com/a/5976641/794071 – 2015-10-09 06:55:31
技術上zlovelady的答案是可取的,但因爲我以前只從導航刪除項目,在模板取消設置的不需要的導航項目的方法對我來說是最快/最簡單的方法:
只是重複
app/design/frontend/base/default/template/customer/account/navigation
到
app/design/frontend/YOUR_THEME/default/template/customer/account/navigation
和取消不需要的導航項目之前得到呈現,如:
<?php $_links = $this->getLinks(); ?>
<?php
unset($_links['recurring_profiles']);
?>
+1最好的選擇是不修改核心文件,並把它放在一個地方 – 2012-07-31 23:17:58
您還可以通過後端禁用菜單項,而無需觸摸任何代碼。進入:
System > Configuration > Advanced
您將看到一長串選項。以下是一些關鍵模塊設置爲「已禁用」:
Mage_Downloadable -> My Downloadable Products
Mage_Newsletter -> My Newsletter
Mage_Review -> My Reviews
Mage_Tag -> My Tags
Mage_Wishlist -> My Wishlist
我也被禁用Mage_Poll,因爲它在其他頁面模板,顯示了一個趨勢,如果你不使用它可以是惱人。
以去除在Magento我的帳戶面板中的任何鏈接的最簡單方法是先複製:
應用程序/設計/前端/基/默認/模板/客戶/帳號/ navigation.phtml
到
應用程序/設計/前端/企業/ YOURSITE /模板/客戶/帳號/ navigation.phtml
打開該文件,並罰款這一行,它應該在第34行:
<?php $_index = 1; ?>
右鍵下方補充一點:
<?php $_count = count($_links); /* Add or Remove Account Left Navigation Links Here -*/
unset($_links['tags']); /* My Tags */
unset($_links['invitations']); /* My Invitations */
unset($_links['enterprise_customerbalance']); /* Store Credit */
unset($_links['OAuth Customer Tokens']); /* My Applications */
unset($_links['enterprise_reward']); /* Reward Points */
unset($_links['giftregistry']); /* Gift Registry */
unset($_links['downloadable_products']); /* My Downloadable Products */
unset($_links['recurring_profiles']); /* Recurring Profiles */
unset($_links['billing_agreements']); /* Billing Agreements */
unset($_links['enterprise_giftcardaccount']); /* Gift Card Link */
?>
只是刪除任何這裏的鏈接,你希望出現的。
大部分上述工作,但對我來說,這是最簡單的。
安裝插件,註銷,登錄系統高級前端鏈接管理器,選中並取消選中要顯示的選項。它也適用於您網站上的任何前端導航。
http://www.magentocommerce.com/magento-connect/frontend-links-manager.html
使用起來非常簡單。 – 2014-03-04 17:49:03
其工作100%,我相信。
第1步:進入(YourTemplate /客戶/帳號/ navigation.phtml)
步驟2:替換該行:<?php $_count = count($_links); ?>
帶:
<?php $_count = count($_links); /* Add or Remove Account Left Navigation Links Here -*/
unset($_links['account']); /* Account Info */
unset($_links['account_edit']); /* Account Info */
unset($_links['tags']); /* My Tags */
unset($_links['invitations']); /* My Invitations */
unset($_links['reviews']); /* Reviews */
unset($_links['wishlist']); /* Wishlist */
unset($_links['newsletter']); /* Newsletter */
unset($_links['orders']); /* My Orders */
unset($_links['address_book']); /* Address */
unset($_links['enterprise_customerbalance']); /* Store Credit */
unset($_links['OAuth Customer Tokens']); /* My Applications */
unset($_links['enterprise_reward']); /* Reward Points */
unset($_links['giftregistry']); /* Gift Registry */
unset($_links['downloadable_products']); /* My Downloadable Products */
unset($_links['recurring_profiles']); /* Recurring Profiles */
unset($_links['billing_agreements']); /* Billing Agreements */
unset($_links['enterprise_giftcardaccount']); /* Gift Card Link */
>
你可以也可以使用這個免費的即插即用擴展:
http://www.magentocommerce.com/magento-connect/manage-customer-account-menu.html
此擴展程序不會觸及任何Magento核心文件。
有了這個擴展,你可以:每個菜單項
- 決定顯示或在Magento的後端點擊隱藏它。
- 輕鬆重命名菜單項。
我的解決辦法,完全除去塊和那個local.xml與我所需要的塊創建它,所以,例如
<customer_account>
<reference name="left">
<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>
</block>
</reference>
</customer_account>
打開導航。PHTML
app/design/frontend/yourtheme/default/template/customer/account/navigation.phtml
與您要刪除
<?php
$_count = count($_links);
unset($_links['account']); // Account Information
unset($_links['account_edit']); // Account Information
unset($_links['address_book']); // Address Book
unset($_links['orders']); // My Orders
unset($_links['billing_agreements']); // Billing Agreements
unset($_links['recurring_profiles']); // Recurring Profiles
unset($_links['reviews']); // My Product Reviews
unset($_links['wishlist']); // My Wishlist
unset($_links['OAuth Customer Tokens']); // My Applications
unset($_links['newsletter']); // Newsletter Subscriptions
unset($_links['downloadable_products']); // My Downloadable Products
unset($_links['tags']); // My Tags
unset($_links['invitations']); // My Invitations
unset($_links['enterprise_customerbalance']); // Store Credit
unset($_links['enterprise_reward']); // Reward Points
unset($_links['giftregistry']); // Gift Registry
unset($_links['enterprise_giftcardaccount']); // Gift Card Link
?>
- 1. 在magento中動態添加「我的帳戶導航」鏈接
- 2. Magento - 在主菜單中添加到我的帳戶的鏈接導航欄
- 3. 顯示我的帳戶導航鏈接
- 4. 在Magento客戶帳戶導航上使用jQuery Block UI。鏈接
- 5. 如何將活動類添加到magento中的導航鏈接?
- 6. 刪除結帳頂部鏈接magento
- 7. 無法在客戶導航magento上添加心願單鏈接
- 8. 如何添加fishpig「博客」鏈接到magento主導航
- 9. Magento「我的帳戶」鏈接部分
- 10. 在magento中如何添加或刪除標題中的鏈接
- 11. Magento刪除反向鏈接創建一個帳戶頁面
- 12. 如何刪除Magento中的「我的購物車」和「結帳」菜單鏈接?
- 13. OpenCart 2.1.0.2刪除帳戶鏈接
- 14. 如何從鏈接添加/刪除類
- 15. 如何在magento的頂部鏈接中只顯示我的帳戶鏈接?
- 16. Magento - 如何添加導航菜單
- 17. 如何從magento網站頂部導航子類別中刪除鏈接?
- 18. magento - 添加鏈接頁腳,但不是頂部導航菜單
- 19. 在Magento中添加靜態鏈接到頂部導航菜單
- 20. 導航欄的JQuery添加/刪除類
- 21. 導航鏈接添加的路徑
- 22. 如何刪除我的bluemix帳戶ID?
- 23. 如何刪除每個頁面上的主頁導航鏈接?
- 24. Magento中隱藏左側導航欄但顯示帳戶控制面板鏈接
- 25. Magento 1.9導航到首頁的鏈接
- 26. Magento - 從Magento導航菜單中刪除+(加號)
- 27. 如何確保引導導航欄鏈接有當添加
- 28. jQuery添加和刪除導航類
- 29. jQuery在導航上添加/刪除類
- 30. 從Android帳戶管理器「添加帳戶」刪除我的應用程序
自由「[前端鏈接管理器](http://www.magentocommerce.com/magento未設置鏈接替換
-connect/MagePsycho/extension/7905/frontend_links_manager)'擴展程序可讓您從控制面板執行此操作,除了「我的應用程序」。 – ehartwell 2013-03-17 14:38:11
非常好的細節和例子來幫助你在Mangeto添加和刪除排名靠前的使用'local.xml'文件:http://www.classyllama.com/development/magento-development/editing-magentos-top-links-the - 更好的路 – 2012-05-12 15:16:40
您可以使用此模塊:https://github.com/netz98/N98_LayoutHelper – Alex 2012-09-26 14:39:43