Diferencia entre <remove name = ”" /> y <action method = ”unsetChild”> en el diseño

21

¿Cuál es la diferencia entre <action method=”unsetChild”>y <remove name=""/>?

Ambas funciones se utilizan para eliminar un bloque del diseño.

¿Alguien podría explicar con un ejemplo?

MeenakshiSundaram R
fuente

Respuestas:

21

<remove name="" />opera en el ámbito de bloque global de Mage_Core_Model_Layout. Estos se recogen en Mage_Core_Model_Layout::generateXml()y usados para prevenir el bloque con el nombre especificado de siquiera ser instanciado . Además, cualquier bloques del niño declaradas para un <remove />bloque ed serán tampoco pueden crear instancias .

<action method="" />aka Mage_Core_Block_Abstract::unsetChild()es un método de nivel de bloque que elimina la lista del bloque secundario indicado (por alias , no por nombre ) de la instancia del bloque primario en el que se llama la acción. Esto a menudo resulta en que el bloque "desaparezca" de la salida renderizada, aunque la instancia del bloque todavía se crea. Utilizado en combinación con los métodos ::append()o ::insert(), se utiliza para realizar un "movimiento".

puntos de referencia
fuente
Solo para agregar a esto, si el bloque no tiene un alias, entonces coincidirá con el nombre.
Ben Crook
2
Correcto, cuando no se proporciona ningún alias, el aliaspara un niño se establece en su name. 👍
puntos de referencia
2

<remove name="" />, Cuando termine con todos los diseños, Magento eliminará por completo el bloque con el nombre indicado = "", independientemente del controlador de diseño al que se haya agregado. Con este método, es imposible eliminar un bloque de una ubicación y luego agregarlo a otra

<action method="unsetChild">opera solo en el contexto donde se está utilizando. unsetChild se crea para mover bloques existentes de un lugar a otro. Debe utilizar este método si desea eliminar un bloque específico de un controlador de diseño específico y luego insertarlo en otra posición o controlador de diseño.

Sohel Rana
fuente
No exactamente; Vea mi respuesta para las correcciones.
puntos de referencia del