tutorial source pricing plataforma open español magento

source - magento tutorial



Magento-¿Cómo agregar/eliminar enlaces en la navegación de mi cuenta? (11)

Estoy tratando de eliminar enlaces en la navegación de mi cuenta. Miré la plantilla cliente / cuenta / navegación.phtml. La plantilla toma enlaces por $ this-> getLinks (). ¿Cómo edito el método getLinks () para poder eliminar algunos enlaces?


Abre navigation.phtml

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

reemplazar

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

con el enlace no definido que desea eliminar

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


Además, debe hacer algo como esto en config.xml si está desarrollando un módulo personalizado

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


La forma más fácil de eliminar cualquier enlace del panel Mi Cuenta en Magento es copiar primero:

app / design / frontend / base / default / template / cliente / cuenta / navigation.phtml

a

aplicación / diseño / frontend / enterprise / YOURSITE / template / customer / account / navigation.phtml

Abra el archivo y multa esta línea, debe estar alrededor de la línea 34:

<?php $_index = 1; ?>

Justo debajo agrega esto:

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

Simplemente elimine cualquiera de los enlaces que desea que aparezcan aquí.


La mayoría del trabajo anterior, pero para mí, este fue el más fácil.

Instale el complemento, cierre de sesión, inicie sesión, sistema, avanzado, administrador de enlaces frontales, marque y desmarque las opciones que desea mostrar. También funciona en cualquiera de los navegadores frontales de tu sitio.

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


La respuesta a tu pregunta es, en última instancia, depende. Los enlaces en esa navegación se agregan a través de diferentes archivos XML de diseño. Aquí está el código que primero define el bloque en layout/customer.xml . Tenga en cuenta que también define algunos enlaces para agregar al menú:

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

Otros elementos del menú se definen en otros archivos de diseño. Por ejemplo, el módulo Revisiones usa layout/review.xml para definir su diseño y contiene lo siguiente:

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

Para eliminar este enlace, simplemente comente o elimine la etiqueta <action method=...> y el elemento del menú desaparecerá. Si desea buscar todos los elementos del menú a la vez, use su búsqueda de archivos favorita y busque cualquier instancia de name="customer_account_navigation" , que es el manejador que Magento usa para ese bloque de navegación.


Mi solución fue eliminar completamente el bloque en local.xml y crearlo con los bloques que necesitaba, así que, por ejemplo

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


Si desea eliminar selectivamente enlaces sin tener que copiar / editar archivos xml completos, puede encontrar una buena solución en esta publicación en los foros de magento

En esta solución, anula el bloque Mage_Customer_Block_Account_Navigation con una versión local, que agrega un método removeLinkByName , que luego usa en sus archivos layout.xml , de esta manera:

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


Su trabajo al 100% estoy seguro.

Paso 1: Ir a (YourTemplate / customer / account / navigation.phtml)

Paso 2: Reemplace esta línea: <?php $_count = count($_links); ?> <?php $_count = count($_links); ?> Con:

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

?>


Técnicamente, la respuesta de zlovelady es preferible, pero como solo tenía que eliminar elementos de la navegación, el enfoque de desarmar los elementos de navegación innecesarios en la plantilla fue la forma más rápida / más fácil para mí:

Solo duplicar

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

a

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

y desarmar los ítems de navegación innecesarios antes de la renderización, por ejemplo:

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


También puede desactivar los elementos del menú a través del servidor, sin tener que tocar ningún código. Entrar en:

System > Configuration > Advanced

Se te presentará una larga lista de opciones. Estos son algunos de los módulos clave para establecer en ''Desactivado'':

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

También deshabilité Mage_Poll, ya que tiene una tendencia a aparecer en otras plantillas de página y puede ser molesto si no lo estás usando.