Ich versuche, Links auf meinem Konto Navigation zu entfernen. Ich schaute auf den Kunden / Konto / navigation.phtml Vorlage. Die Vorlage packt Links von $ this-> getLinks (). Wie bearbeite ich getLinks () -Methode, so dass ich einige Links entfernen?
Magento - Wie man hinzufügen / entfernen Links meinetwegen Navigation?

Die Antwort auf Ihre Frage ist letztlich, es hängt davon ab. Die Links in diesem Navigation über verschiedene Layout - XML - Dateien hinzugefügt. Hier ist der Code, der zuerst den Block in definiert layout/customer.xml
. Beachten Sie, dass es auch einige Links definiert , um zum Menü hinzufügen:
<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>
Weitere Menüpunkte werden in anderen Layout - Dateien definiert. Zum Beispiel verwendet die Bewertungen Modul layout/review.xml
das Layout zu definieren, und enthält folgende Komponenten :
<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>
Um diesen Link zu entfernen, nur kommentieren Sie oder entfernt <action method=...>
Tag und der Menüpunkt verschwindet. Wenn Sie alle Menüpunkte auf einmal finden wollen, Ihre Lieblings - Dateisuche verwenden und alle Instanzen von finden name="customer_account_navigation"
, die der Griff ist , dass Magento für den Navigationsblock verwendet.
Außerdem müssen Sie so etwas wie dies in config.xml tun, wenn Sie ein maßgeschneidertes Modul entwickeln
<frontend>
<layout>
<updates>
<hpcustomer>
<file>hpcustomer.xml</file>
</hpcustomer>
</updates>
</layout>
</frontend>
Wenn Sie möchten , Links selektiv entfernen , ohne dass ganze XML - Dateien kopieren / bearbeiten, eine schöne Lösung finden Sie in diesem Beitrag in den Foren magento
Bei dieser Lösung überschreiben Sie den Mage_Customer_Block_Account_Navigation
Block mit einer lokalen Version, die eine fügt removeLinkByName
Methode, die Sie dann in Ihren verwenden layout.xml
Dateien, etwa so:
<?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>
Technisch gesehen ist die Antwort von zlovelady bevorzugt, aber da ich nur hatte Elemente aus der Navigation zu entfernen, wird der Ansatz von unsetting die nicht benötigten Navigationselementen in der Vorlage war der schnellste / einfachste Weg für mich:
nur duplizieren
app/design/frontend/base/default/template/customer/account/navigation
zu
app/design/frontend/YOUR_THEME/default/template/customer/account/navigation
und ungesetzt die nicht benötigten Navigationselemente vor dem gemacht, zum Beispiel erhalten:
<?php $_links = $this->getLinks(); ?>
<?php
unset($_links['recurring_profiles']);
?>
Sie können auch die Menüpunkte durch das Backend deaktivieren, ohne Code zu berühren. Gehen in:
System > Configuration > Advanced
Sie werden mit einer langen Liste von Optionen zur Auswahl. Hier sind einige der wichtigsten Module auf ‚Deaktiviert‘ zu setzen:
Mage_Downloadable -> My Downloadable Products
Mage_Newsletter -> My Newsletter
Mage_Review -> My Reviews
Mage_Tag -> My Tags
Mage_Wishlist -> My Wishlist
Ich auch Mage_Poll deaktiviert, da es eine Tendenz hat, in anderen Seitenvorlagen zu zeigen, und ärgerlich sein kann, wenn man sie nicht verwenden.
Der einfachste Weg, einen Link von der Mein Konto-Panel in Magento zu entfernen, ist bis zur ersten Kopie:
app / design / frontend / base / default / template / Kunde / Konto / navigation.phtml
zu
app / design / frontend / Unternehmen / ihre_site / template / Kunde / Konto / navigation.phtml
Öffnen Sie die Datei und Fein diese Zeile, sollte es um die Linie 34:
<?php $_index = 1; ?>
Rechts unten, damit er fügen Sie diese:
<?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 */
?>
Entfernen Sie einfach auf einen der Links hier, die Sie wollen, erscheinen.
Die meisten der oben genannten Arbeiten, aber für mich war dies die einfachste.
Installieren Sie das Plugin, sich abzumelden, melden Sie sich an, System, fortgeschrittene, Frontend-Links-Manager, überprüfen und deaktivieren Sie die Optionen, die Sie anzeigen möchten. Es funktioniert auch auf einen der Front-End-Navigations die auf Ihrer Website.
http://www.magentocommerce.com/magento-connect/frontend-links-manager.html
Seine Arbeit 100% Ich bin sicher.
Schritt 1: Lesen Sie (yourtemplate / Kunde / Konto / navigation.phtml)
Schritt 2: Ersetzen Sie diese Zeile: <?php $_count = count($_links); ?>
Mit:
<?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 */
?>
Sie können auch diese kostenlose Plug-and-Play-Erweiterung verwenden:
http://www.magentocommerce.com/magento-connect/manage-customer-account-menu.html
Diese Erweiterung nicht berührt eine der Magento Core-Dateien.
Mit dieser Erweiterung sind Sie in der Lage:
- Entscheiden Sie per Menüpunkt anzeigen oder ausblenden es mit einem Klick im Magento-Backend.
- Benennen Sie Menüpunkte leicht.
Meine Lösung war vollständig den Block in local.xml zu entfernen, und erstellen Sie es mit den Blöcken I benötigt, so zum Beispiel
<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>
Öffnen navigation.phtml
app/design/frontend/yourtheme/default/template/customer/account/navigation.phtml
ersetzen
<?php $_links = $this->getLinks(); ?>
mit ungesetzt Link, den Sie entfernen möchten
<?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
?>