2010-12-13 6 views
6

¿Es posible deshabilitar una declaración <remove name="left"> definida en un archivo .xml de diseño predeterminado, desde el archivo local.xml?Cómo deshabilitar una instrucción remove de local.xml en Magento

Por ejemplo, en el checkout.xml en la sección <checkout_cart_index>, la declaración <remove name="left"/> se define allí, pero puede usted desactivar esa línea desde el archivo local.xml, por lo que aún ver el menú de la izquierda en la página de pago?

Respuesta

12

De forma predeterminada, Magento no proporciona una etiqueta <unremove /> para local.xml. Sin embargo, el sistema de diseño contiene los eventos correctos, de modo que puede implementarlo usted mismo. Y por "usted mismo", me refiero a que tengo created an experimental extension que agrega dicha etiqueta. Comentarios son bienvenidos.

+3

Gracias Alan. Tu extensión es increíble y funciona sin problemas aquí. Exactamente lo que estaba buscando! –

1

su respuesta es no para desactivar la eliminación, pero para agregarlo de nuevo en su local.xml

+0

¿Puede darme un ejemplo de cómo agregar un bloque eliminado de nuevo? –

+0

desenterrar la aplicación/diseño/frontend/base/default/layout/page.xml en la línea 78 y ver cómo se agrega –

+0

Hmm, eso no parece funcionar, agrego el bloque 'izquierda' en una referencia a la raíz, como en la página.xml, y no aparece nada, incluso después de definir explícitamente otro bloque dentro del bloque izquierdo, como el bloque de newsletter, ¿qué estoy haciendo mal? –

-3

En lugar de tratar de reconstruir todo el conjunto de bloques, comentar el remove dentro del XML original. Esta será menos de un dolor de cabeza de mantenimiento de tratar de reconstruir los bloques y la preocupación de precedencia de los archivos XML, etc.

su vez, esto

<remove name="left" /> 

En

<!-- disabling remove because X --> 
<!-- <remove name="left" /> --> 
+0

Tendría que editar los archivos de Magento Core para esta solución, lo cual nunca es una buena idea. No puede actualizar su sistema una vez que haya cambiado los archivos Core. – Handfeger

2

Cuando un bloque es eliminado, no se destruye, solo se ignora. Usted puede ser capaz de 'volver a habilitar' con:

<checkout_cart_index> 
    <reference name="root"> 
     <action method="append"><block>left</block></action> 
    </reference> 
</checkout_cart_index> 

nunca he utilizado esto mismo y no me gustaría, si usted está haciendo un tema personalizado a continuación, copiar los archivos de diseño de base y editarlos directamente tal como lo recomiendan las otras respuestas.

+2

Desafortunadamente, esto no parece funcionar. Hubiera sido una solución perfecta si lo hubiera hecho. –

+0

Desafortunadamente cierto. No funciona ¿Alguna solución adicional de esta manera desde ese momento? – DarkCowboy

+0

Sí. Esta es una respuesta muy antigua y si alguna vez funcionó definitivamente ya no funciona. – clockworkgeek

5

Las dos formas en que hago esto son; excelente complemento unremove

  1. Uso de la tormenta sobre Alan.

  2. Vuelva a insertar el bloque eliminado en local.xml con un nuevo atributo de nombre pero el mismo alias o atributo 'como'.

El nombre del atributo tiene que ser diferente porque <remove name="foo" /> de Magento es mundial - que elimina todas las instancias de <block name="foo" /> incluso si se añaden después de la instrucción de eliminación. Para volver a agregar la columna de la izquierda, por ejemplo;

<reference name="root"> 
    <block name="left.2" as="left" type="core/text_list"> 
    <!-- New left column is empty, so you'll need to add your left-column blocks into it here. --> 
    </block> 
</reference> 

name = "left.2" significa la acción de eliminación no matará a este bloque, como = "left" significa que todavía se insertará en la plantilla a través de <?php echo $this->getChildHtml('left') ?>.

Desafortunadamente, su columna izquierda recién insertada está vacía. Así que tendrías que volver a insertar cualquier bloque allí que quieras mostrar también. Creo que el complemento de Alan Storm es más útil.

+0

+ método 2 funcionó para mí. –

Cuestiones relacionadas