Magento - Wie man hinzufügen / entfernen Links meinetwegen Navigation?

stimmen
30

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?

Veröffentlicht am 30/12/2009 um 01:38
quelle vom benutzer
In anderen Sprachen...                            


11 antworten

stimmen
33

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

Beantwortet am 30/12/2009 um 04:49
quelle vom benutzer

stimmen
4

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>
Beantwortet am 25/02/2010 um 06:41
quelle vom benutzer

stimmen
43

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_NavigationBlock mit einer lokalen Version, die eine fügt removeLinkByNameMethode, die Sie dann in Ihren verwenden layout.xmlDateien, 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>
Beantwortet am 03/12/2010 um 07:37
quelle vom benutzer

stimmen
5

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']);
?>
Beantwortet am 02/05/2012 um 11:58
quelle vom benutzer

stimmen
16

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.

Beantwortet am 10/06/2012 um 00:45
quelle vom benutzer

stimmen
21

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.

Beantwortet am 08/11/2012 um 20:11
quelle vom benutzer

stimmen
0

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

Beantwortet am 03/09/2013 um 16:28
quelle vom benutzer

stimmen
7

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 */

?>

Beantwortet am 16/01/2015 um 06:59
quelle vom benutzer

stimmen
0

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:

  1. Entscheiden Sie per Menüpunkt anzeigen oder ausblenden es mit einem Klick im Magento-Backend.
  2. Benennen Sie Menüpunkte leicht.
Beantwortet am 16/07/2015 um 07:46
quelle vom benutzer

stimmen
0

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>
Beantwortet am 04/03/2016 um 11:29
quelle vom benutzer

stimmen
1

Ö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
?>
Beantwortet am 07/03/2017 um 11:47
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more