Je souhaite supprimer les liens suivants dans le panneau de gauche du tableau de bord du compte client?
- mes applications
- Registre des cadeaux
- Points de récompense
- Lien de carte cadeau
Je travaille dans Magento 1.7 Community Edition. Toute aide serait appréciée.
magento-1.7
customer
Oshan
la source
la source
Réponses:
Étape 1: Accédez à (yourPackage / YourTemplate / customer / account / navigation.phtml).
Étape 2: remplacez la ligne ci-dessous
L'extrait de code ci-dessus contient le moyen de supprimer tous les liens de navigation. J'espère que cela aidera tous.
Lien de référence: https://github.com/Aproducktion/Magento-Remove-Dashboard-Links
la source
If you can't
??Je vois 2 options ici.
Le premier et le plus simple: il suffit de rechercher les fichiers de mise en page qui ajoutent ces éléments de menu et de commenter le code correspondant.
Par exemple
My applications
est ajouté àapp/design/frontend/{interface}/{theme}/layout/oauth.xml
travers ce morceau de XMLLa deuxième méthode, pour laquelle je ne suis pas sûr à 100% que cela fonctionnera, consiste à ajouter ce XML dans le
local.xml
fichier de mise en page de votre thème:Vous devez ajouter une
<action>
balise pour chaque lien à supprimer.Il existe également la troisième option. Si vous n'utilisez pas les modules, désactivez-les. Cela peut également améliorer les performances.
Pour cela créer ce fichier:
app/etc/modules/Zzzz.xml
avec ce contenu:Vous avez peut-être des problèmes avec d'autres modules que vous souhaitez utiliser, dépend de ceux que vous souhaitez désactiver.
la source
Mage_Customer_Block_Account_Navigation
elle n’hérite pas deMage_Page_Block_Template_Links
.Il existe une extension FOSS qui ajoute l’option backend aux liens de comptes distants.
Il existe un second module (également FOSS) qui ajoute la
removeLink
méthode afin que vous puissiez utiliser les éléments suivants dans votrelocal.xml
Disclaimer: Je suis un développeur de la deuxième extension.
la source
La solution la plus simple (implémentation et utilisation) que j'ai trouvée consiste à remplacer
Mage_Customer_Block_Account_Navigation
inapp/code/local
et à ajouter uneremoveLinkByName
méthode qui fait la même chose que la réponse d'Oshan , mais qui est utilisable à partir de fichiers de présentation. Une réécriture de classe plus traditionnelle fonctionnerait également, mais pourrait potentiellement causer des conflits avec un plugin.Attention! Non testé!
Une solution plus compliquée consisterait à écrire votre propre module avec une
Block
extensionMage_Customer_Block_Account_Navigation
et uneremoveLinkByName
méthode. Pour que cela fonctionne, vous devez supprimer / annuler la définition ducustomer_account_navigation
bloc et le remplacer par celui de votre nouveau module. À partir de ce moment-là, chaque fois que la dispositioncustomer_account_navigation
est référencée, vous obtenez une instance avecremoveLinkByName
.la source
Solution rapide: supprimer tous les éléments de la liste Mon compte situés sous Mes commandes, notamment les accords de facturation, les profils récurrents, les applications et les produits téléchargeables. Supprime également les liens Ma liste de souhaits et Ma newsletter, sur l'ensemble du site, testés sur Magento 1.9:
Commentez les lignes 31 à 66 de app / design / frontend / default / YOURTHEME / layout / wishlist.xml (sinon, copiez-le depuis app / design / frontend / rwd / default / layout / wishlist.xml)
Commentez les lignes 47 à 65 de app / design / frontend / default / YOURTHEME / layout / newsletter.xml (sinon, copiez-le depuis app / design / frontend / rwd / default / layout / newsletter.xml)
newsletter </ name> newsletter / gérer / </ path> Abonnements à la newsletter </ label> </ action> </ reference> </ customer_account ->
CSS (ajuster selon vos besoins)
la source
Pour éviter de supprimer les liens, je vous recommande d'attribuer des valeurs d'ID basées sur la variable $ _index, afin que vous puissiez masquer les liens via CSS.
Voici ce que j'ai fait:
À partir de votrePackage / YourTemplate / customer / account / navigation.phtml
Alors évidemment, vous pouvez y aller
Il n’ya pas un seul moyen de dépouiller un chat, mais c’est une option simple et rapide sans compromettre les fonctionnalités.
la source
Je pensais qu'une meilleure solution serait de réécrire le bloc. Cela a été mentionné ci-dessus, mais il n'y avait pas d'exemple:
Ajoutez la réécriture à votre config.xml dans la section globale:
Remplacez addLink dans Mage_Customer_Block_Account_Navigation:
Le tableau exclude_links peut être extrait d'un paramètre de configuration si vous ne souhaitez pas coder en dur les liens exclus.
la source
C'est ce que j'ai googlé à ce sujet: http://magebase.com/magento-tutorials/5-useful-tricks-for-your-magento-local-xml/
la source
J'aimerais tout d'abord que vous disiez qu'il existe différentes façons de résoudre vos problèmes.
C'est le moyen le plus simple qui consiste à trouver le code dans le
layout.xml
fichier à l'intérieur de la base que vous souhaitez supprimer, par exemple: si je souhaite supprimer les "Mes tags", il suffit de commenter la partie.Mais vous savez que nous ne devrions pas modifier le fichier de base, une autre méthode simple suivante peut être exécutée.
Suppression du lien dans votre fichier de modèle.Pour copier votre
navigation.phtml
fichier dans votre thème (Remarque: la structure des dossiers doit être identique) à partir dubase\default\template\customer\account\navigation.phtml
. qui est indiqué dans la réponse ci-dessus.Une autre tâche fastidieuse consiste à réécrire votre module principal et à créer une méthode "RemoveLinkByName".
la source
Une solution complète pour supprimer les fonctionnalités du tableau de bord du compte comprend à la fois une modification côté client et une modification côté serveur. Si seul le côté client est supprimé et / ou masqué, rien n'empêche les utilisateurs avisés d'accéder aux fonctionnalités en construisant manuellement les itinéraires dans leur navigateur ou en utilisant une "attaque" CURL plus sophistiquée (pouvant inclure la CSRF jeton et glisser à travers).
Le côté client est facilement atteint par le biais de mises à jour XML, comme l’indique la pléthore de réponses déjà données.
Le côté serveur est un peu plus complexe et nécessite une compréhension de la fonctionnalité à supprimer.
Personnellement, je voudrais utiliser des observateurs pour renvoyer sous condition des codes d’état HTTP interdits sur chacun des itinéraires de la fonctionnalité à supprimer. Afin de déterminer les itinéraires à observer, ouvrez le fichier de contrôleur associé et recherchez chacune des actions frontales qui ne devraient plus être disponibles. Créez ensuite un module qui définit les champs de configuration du système pour la désactivation logicielle de cette fonctionnalité. À l'aide de ces champs de configuration système, mettez à jour de manière conditionnelle le XML de présentation de l'interface et renvoyez de manière conditionnelle les codes de réponse HTTP appropriés pour chaque route observée.
Des exemples de code pour chacune des étapes ci-dessus peuvent être trouvés via votre moteur de recherche préféré.
la source
Ajouter à un fichier local.xml ce code
Testé dans Magento 1.7.0.2
la source