¿Quiero eliminar los siguientes enlaces en el panel izquierdo del panel de la cuenta del cliente?
- mis aplicaciónes
- Registro de regalos
- Puntos de recompensa
- Enlace de tarjeta de regalo
Estoy trabajando en la edición comunitaria de Magento 1.7. Cualquier ayuda será apreciada.
magento-1.7
customer
Oshan
fuente
fuente
Respuestas:
Paso 1: vaya a (yourPackage / YourTemplate / customer / account / navigation.phtml)
Paso 2: Reemplace la línea de abajo
El fragmento de código anterior contiene la forma de eliminar todos los enlaces de navegación. Espero que esto ayude a todos.
Enlace de referencia: https://github.com/Aproducktion/Magento-Remove-Dashboard-Links
fuente
If you can't
?Veo 2 opciones aquí.
Primero y más fácil: solo busque los archivos de diseño que agregan estos elementos de menú y comente el código para ellos.
Por ejemplo,
My applications
se agrega aapp/design/frontend/{interface}/{theme}/layout/oauth.xml
través de esta parte de XMLEl segundo método, que no estoy 100% seguro de que funcionará es agregar este xml dentro del
local.xml
archivo de diseño de su tema:Debe agregar una
<action>
etiqueta para cada enlace que desea eliminar.También existe la tercera opción, si no está utilizando los módulos, desactívelos. Esto también puede aumentar el rendimiento.
Para esto crea este archivo:
app/etc/modules/Zzzz.xml
con este contenido:Puede tener algunos problemas aquí, hay algunos otros módulos que desea utilizar, dependiendo de los que desea deshabilitar.
fuente
Mage_Customer_Block_Account_Navigation
no hereda deMage_Page_Block_Template_Links
.Hay una extensión FOSS que agrega la opción de back-end a los enlaces de cuenta remota.
Hay un segundo módulo (también FOSS) que agrega el
removeLink
método para que pueda usar lo siguiente en sulocal.xml
Descargo de responsabilidad: soy desarrollador de la segunda extensión.
fuente
La solución más sencilla (aplicación y uso) que he encontrado es para reemplazar
Mage_Customer_Block_Account_Navigation
enapp/code/local
y añadir unremoveLinkByName
método, que hace lo mismo que lo la respuesta de Oshan hace, pero es utilizable a partir de archivos de diseño. Una reescritura de clase más tradicional también funcionaría, pero podría causar conflictos con un complemento.¡Advertencia! ¡No probado!
Una solución más complicada sería escribir su propio módulo con uno
Block
que extiendaMage_Customer_Block_Account_Navigation
e incluya unremoveLinkByName
método. Para que esto funcione, tendría que quitar / desarmar elcustomer_account_navigation
bloque y reemplazarlo con el de su nuevo módulo. A partir de entonces, cada vez quecustomer_account_navigation
se haga referencia en el diseño, obtendrá una instancia conremoveLinkByName
.fuente
Una solución rápida para eliminar todos los elementos de la lista Mi cuenta debajo de Mis pedidos, incluidos los Acuerdos de facturación, Perfiles recurrentes, Mis aplicaciones y Mis productos descargables. También eliminará los enlaces Mi lista de deseos y Mi boletín informativo, a través del sitio, probados en Magento 1.9:
Comente las líneas 31 - 66 de app / design / frontend / default / YOURTHEME / layout / wishlist.xml (si no existe, cópielo de app / design / frontend / rwd / default / layout / wishlist.xml)
Comente las líneas 47 - 65 de app / design / frontend / default / YOURTHEME / layout / newsletter.xml (si no existe, cópielo de app / design / frontend / rwd / default / layout / newsletter.xml)
newsletter </name> newsletter / manage / </path> Suscripciones a boletines </label> </action> </reference> </customer_account-->
CSS (ajuste según sus requisitos)
fuente
Para evitar eliminar los enlaces, recomendaría asignar valores de ID basados en la variable $ _index, para que pueda ocultar los enlaces a través de CSS.
Esto es lo que he hecho:
Desde yourPackage / YourTemplate / customer / account / navigation.phtml
Entonces obviamente puedes irte
No hay una sola forma de desollar a un gato, pero esta es una opción rápida y fácil sin comprometer realmente ninguna funcionalidad.
fuente
Pensé que una mejor solución sería reescribir el bloque. Esto se mencionó anteriormente pero no hubo ningún ejemplo:
Agregue la reescritura a su config.xml en la sección global:
Anule addLink en Mage_Customer_Block_Account_Navigation:
La matriz exclude_links podría extraer una configuración si no desea codificar los enlaces excluidos.
fuente
esto es lo que busqué en Google sobre esto: http://magebase.com/magento-tutorials/5-useful-tricks-for-your-magento-local-xml/
fuente
Primero quisiera que dijera que hay diferentes maneras de resolver sus problemas.
Es la forma más fácil de encontrar el código en el
layout.xml
archivo dentro de la base que desea eliminar, por ejemplo: si quiero eliminar "Mis etiquetas", simplemente comente la parte.Pero sabe que no debemos modificar el archivo base, por lo que otro método simple que se podría realizar es
Desarmando el enlace en su archivo de plantilla. Para eso copie su
navigation.phtml
archivo a su tema (Nota: la estructura de la carpeta debe ser la misma) desdebase\default\template\customer\account\navigation.phtml
. que se muestra en la respuesta anterior.Otra tarea tediosa es reescribir su módulo principal y crear un método "RemoveLinkByName".
fuente
Una solución completa para eliminar las funciones del panel de la cuenta incluye una modificación tanto del lado del cliente como del lado del servidor. Si solo se elimina y / u oculta el lado del cliente, entonces no hay nada que impida que los usuarios expertos en tecnología sigan accediendo a las funciones mediante la elaboración manual de las rutas en su navegador o mediante el uso de un "ataque" CURL más sofisticado (que puede incluir el correcto Token CSRF y deslizamiento directo).
El lado del cliente se logra fácilmente a través de actualizaciones XML como lo indica la gran cantidad de respuestas ya dadas.
El lado del servidor es un poco más complejo y requiere una comprensión de la funcionalidad que se está eliminando.
Personalmente, seguiría la ruta del uso de observadores para devolver condicionalmente los códigos de estado HTTP prohibidos en cada una de las rutas de la función que se elimina. Para averiguar qué rutas observar, abra el archivo del controlador asociado y encuentre cada una de las acciones de front-end que ya no deberían estar disponibles. Luego, cree un módulo que defina los campos de configuración del sistema para desactivar dicha función. Usando estos campos de configuración del sistema, actualice condicionalmente el XML de diseño de la interfaz y, de forma similar, devuelva los códigos de respuesta HTTP adecuados para cada ruta observada.
Los ejemplos de código para cada uno de los pasos anteriores se pueden encontrar a través de su motor de búsqueda favorito.
fuente
Agregue a un archivo local.xml este código
Probado en Magento 1.7.0.2
fuente