2011-10-05 6 views
21

En este momento estoy explorando la parte interna de la sección de administración de Magento y me encontré con este pedazo de XML:¿Qué hace el elemento "actualizar" en el diseño XML de Magento?

del archivo: app/design/adminhtml/default/default/layout/catalog.xml, alrededor de la línea 55

50   <block type="core/template" template="catalog/wysiwyg/js.phtml"/> 
51  </reference> 
52 </adminhtml_catalog_product_new> 
53  
54 <adminhtml_catalog_product_edit> 
55  <update handle="editor"/> 
56  <reference name="content"> 
57   <block type="adminhtml/catalog_product_edit" name="product_edit"></block> 
58  </reference> 

¿Qué hace la etiqueta <update />?

Respuesta

50

El <update> básicamente conecta otro asa.

Suponga que tiene esto:

<layout> 
    <foo> 
     <reference name="header"> 
      <block type="cms/block" name="some_block" as="someBlock"> 
       <action method="setBlockId"><block_id>some_block</block_id></action> 
      </block> 
     </reference> 
     <reference name="left"> 
      <block type="cms/block" name="some_totally_different_block" as="someTotallyDifferentBlock"> 
       <action method="setBlockId"><block_id>some_totally_different_block</block_id></action> 
      </block> 
     </reference> 
    </foo> 
    <bar> 
     <update handle="foo" /> 
     <reference name="header"> 
      <block type="cms/block" name="some_other_block" as="someOtherBlock"> 
       <action method="setBlockId"><block_id>some_other_block</block_id></action> 
      </block> 
     </reference> 
    </bar> 
</layout> 

El XML resultante para bar sería:

<layout> 
    <bar> 
     <reference name="header"> 
      <!-- Start of part pulled in from foo --> 
      <block type="cms/block" name="some_block" as="someBlock"> 
       <action method="setBlockId"><block_id>some_block</block_id></action> 
      </block> 
      <!-- End of part pulled in from foo --> 
      <block type="cms/block" name="some_other_block" as="someOtherBlock"> 
       <action method="setBlockId"><block_id>some_other_block</block_id></action> 
      </block> 
     </reference> 
     <!-- Start of part pulled in from foo --> 
     <reference name="left"> 
      <block type="cms/block" name="some_totally_different_block" as="someTotallyDifferentBlock"> 
       <action method="setBlockId"><block_id>some_totally_different_block</block_id></action> 
      </block> 
     </reference> 
     <!-- End of part pulled in from foo --> 
    </bar> 
</layout> 

tl; dr: El mango update es básicamente un "Combinar este diseño con mi actual diseño".

+1

¿Cómo puedo reemplazar el diseño ... –

7

Este identificador se utiliza para combinar los identificadores de diseño existentes con su diseño actual. En su ejemplo <update handle="editor"/> se sumará a la <adminhtml_catalog_product_edit> siguiente contenido:

<editor> 
      <reference name="head"> 
       <action method="setCanLoadExtJs"><flag>1</flag></action> 
       <action method="addJs"><script>mage/adminhtml/variables.js</script></action> 
       <action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action> 
       <action method="addJs"><script>lib/flex.js</script></action> 
       <action method="addJs"><script>lib/FABridge.js</script></action> 
       <action method="addJs"><script>mage/adminhtml/flexuploader.js</script></action> 
       <action method="addJs"><script>mage/adminhtml/browser.js</script></action> 
       <action method="addJs"><script>prototype/window.js</script></action> 
       <action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action> 
       <action method="addItem"><type>js_css</type><name>prototype/windows/themes/magento.css</name></action> 
      </reference> 
</editor> 

("editor" mango se define en app/design/adminhtml/default/default/layout/main.xml)

+2

¿Cómo sabrá que Magento es mango dentro de main.xml? ¿Qué sucede si otro archivo xml personalizado contiene el identificador ? ¿Eso también se fusionará? –

+0

Creo que Magento fusionará esas dos asas. –

+1

¿Hmmm significa eso que Magento buscará todos los archivos xml en la carpeta de diseño para los identificadores ? Lo siento pero no lo entiendo del todo. –

Cuestiones relacionadas