it-swarm.com.de

Magento - Wie füge ich Links zu meiner Kontonavigation hinzu?

Ich versuche, Links in meiner Kontonavigation zu entfernen. Ich habe mir die Vorlage customer/account/navigation.phtml angesehen. Die Vorlage erfasst Links von $ this-> getLinks (). Wie bearbeite ich die getLinks () -Methode, damit ich einige Links entfernen kann?

30
Moon

Die Antwort auf Ihre Frage lautet letztlich, es kommt darauf an. Die Links in dieser Navigation werden über verschiedene Layout-XML-Dateien hinzugefügt. Hier ist der Code, der zuerst den Block in layout/customer.xml definiert. Beachten Sie, dass es auch einige Links definiert, die Sie dem Menü hinzufügen möchten:

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

Andere Menüelemente sind in anderen Layoutdateien definiert. Das Modul Reviews verwendet beispielsweise layout/review.xml zur Definition seines Layouts und enthält Folgendes:

<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, kommentieren Sie einfach das <action method=...>-Tag aus oder entfernen Sie es. Das Menüelement wird ausgeblendet. Wenn Sie alle Menüelemente auf einmal suchen möchten, verwenden Sie Ihre bevorzugte Dateisuche, und suchen Sie nach Instanzen von name="customer_account_navigation", der von Magento für diesen Navigationsblock verwendet wird.

34
Joseph Mastey

Wenn Sie Verknüpfungen selektiv entfernen möchten, ohne komplette XML-Dateien kopieren/bearbeiten zu müssen, finden Sie eine Lösung von Nice in diesen Beitrag in den Magento-Foren

In dieser Lösung überschreiben Sie den Mage_Customer_Block_Account_Navigation-Block mit einer lokalen Version, die eine removeLinkByName-Methode hinzufügt, die Sie dann in Ihren layout.xml-Dateien verwenden, wie folgt:

<?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>
43
zlovelady

Der einfachste Weg, um einen Link aus dem Bereich Mein Konto in Magento zu entfernen, ist das erste Kopieren:

app/Design/Frontend/Basis/Standard/Vorlage/Kunde/Konto/Navigation.phtml

zu

app/Design/Frontend/Enterprise/YOURSITE/Vorlage/Kunde/Konto/Navigation.phtml

Öffnen Sie die Datei und ordnen Sie diese Zeile in der Zeile 34 ein:

<?php $_index = 1; ?>

Direkt darunter fügen Sie Folgendes hinzu:

 <?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 alle Links, die Sie NICHT anzeigen möchten.

22

Sie können die Menüelemente auch über das Backend deaktivieren, ohne einen Code berühren zu müssen. Gehen in:

System > Configuration > Advanced

Sie werden mit einer langen Liste von Optionen angezeigt. Hier sind einige der wichtigsten Module, die auf "Deaktiviert" gesetzt werden:

Mage_Downloadable -> My Downloadable Products
Mage_Newsletter -> My Newsletter
Mage_Review -> My Reviews
Mage_Tag -> My Tags
Mage_Wishlist -> My Wishlist

Ich habe auch Mage_Poll deaktiviert, da es tendenziell in anderen Seitenvorlagen angezeigt wird und ärgerlich sein kann, wenn Sie es nicht verwenden.

16
Ryan

Seine Arbeit ist zu 100% sicher.

Schritt 1: Gehe zu (YourTemplate/customer/account/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 */

?> 

7
Umesh Kumar

Technisch ist die Antwort von zlovelady vorzuziehen, aber da ich nur Elemente aus der Navigation entfernen musste, war der Ansatz, die nicht benötigten Navigationselemente in der Vorlage zu deaktivieren, der schnellste/einfachste Weg für mich:

Einfach duplizieren

app/design/frontend/base/default/template/customer/account/navigation

zu 

app/design/frontend/YOUR_THEME/default/template/customer/account/navigation

und setzen Sie die nicht benötigten Navigationselemente vor dem Rendern zurück, z.

<?php $_links = $this->getLinks(); ?>    
<?php 
    unset($_links['recurring_profiles']);
?>
5
Nebel54

Wenn Sie ein benutzerdefiniertes Modul entwickeln, müssen Sie dies auch in config.xml tun

    <frontend>
        <layout>
            <updates>
                <hpcustomer>
                    <file>hpcustomer.xml</file>
                </hpcustomer>
            </updates>
        </layout>
    </frontend>
4
Xuefeng

Öffnen Sie die navigation.phtml

app/design/frontend/yourtheme/default/template/customer/account/navigation.phtml

ersetzen 

<?php $_links = $this->getLinks(); ?>

mit dem nicht gesetzten 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
?>
1
Prince Patel

Sie können auch diese kostenlose Plug-and-Play-Erweiterung verwenden:

http://www.magentocommerce.com/magento-connect/manage-customer-account-menu.html

Diese Erweiterung berührt keine der Magento-Kerndateien.

Mit dieser Erweiterung können Sie:

  1. Entscheiden Sie sich für ein Menüelement, um es mit einem Klick im Magento-Backend anzuzeigen oder auszublenden.
  2. Menüpunkte einfach umbenennen.
0

Die meisten der oben genannten Arbeiten, aber für mich war dies die einfachste.

Installieren Sie das Plugin, melden Sie sich ab, loggen Sie sich ein, System, Erweitert, Front-End-Links-Manager, und aktivieren Sie das Kontrollkästchen. Es funktioniert auch auf jeder Frontend-Navigation Ihrer Website.

http://www.magentocommerce.com/magento-connect/frontend-links-manager.html

0
WEGIII

Meine Lösung bestand darin, den Block in local.xml vollständig zu entfernen und ihn mit den Blöcken zu erstellen, die ich zum Beispiel benötigt

<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>
0
Full