2010-05-29 22 views
10

Soy un poco nuevo en el Magento, ¡así que perdónenme por mi estúpida pregunta! Como entiendo, todo el concepto de Magento se basa en anular los componentes básicos que están disponibles en Magento.¡Anulación del diseño de Magento!

Por lo tanto, según tengo entendido, decidí actualizar el diseño de la descarga de una página en Magento. Creé mi propio diseño y en el conjunto de archivos de configuración mi diseño actualiza el diseño del módulo de pago. ¡Pero el problema es que en realidad no actualiza el diseño base, sino que lo reemplaza con el diseño base! ¿Debería actuar así o estoy equivocado?

+1

Por favor, publique las etiquetas de diseño que ha agregado en su archivo de diseño para que podamos ayudarlo. –

Respuesta

19

De hecho, el nodo en su archivo config.xml no hace una "actualización". Como cuestión de hecho, creo que ha hecho esto en su config.xml:

<config> 
    <frontend> 
     <layout> 
      <updates> 
        <checkout> 
         <file>mylayout.xml</file> 
        </checkout> 
      </updates> 
     </layout> 
    </frontend> 
</config> 

y se han hecho modificaciones en mylayout.xml.

De hecho, lo que tiene que hacer:

<config> 
    <frontend> 
     <layout> 
      <updates> 
        <mymodule> 
         <file>mylayout.xml</file> 
        </mymodule> 
      </updates> 
     </layout> 
    </frontend> 
</config> 

Y entonces, en mylayout.xml:

<checkout_cart_index> <!-- this corresponds to the section where you want to add your block (or modify an existing block --> 
     <reference name="content"> 
      <reference name="checkout.cart"> 
       <block type="mymodule/myblock" name="checkout.mymodule.myblock"></block> 
      </reference> 
     </reference> 
</checkout_cart_index> 

Al mirar a mi código y la comparación de los archivos entre sí, comprenderán mejor como funciona

De hecho, no olvide que todos los archivos xml están concatenados en magento. Para que todos los nodos en todos los archivos de configuración, respetando el mismo orden, sean concatenados.

Por ejemplo, en nuestro caso, los archivos config.xml de Magento se concatenan, y el resultado es una archivo que contiene:

<config> 
<!-- some nodes... --> 
<!-- some nodes... --> 
<!-- some nodes... --> 
    <frontend> 
     <layout> 
      <updates> 
        <mymodule> 
         <file>mylayout.xml</file> 
        </mymodule> 
        <checkout> <!-- this is the node from the config.xml of the Checkout Module--> 
         <file>checkout.xml</file> 
        </checkout> 
        <!-- some layout updates nodes from other config files... --> 
      </updates> 
     </layout> 
    </frontend> 
<!-- some nodes... --> 
<!-- some nodes... --> 
</config> 

Si había reemplazado por <mymodule><checkout> el archivo resultante se habría visto :

<config> 
<!-- some nodes... --> 
<!-- some nodes... --> 
<!-- some nodes... --> 
    <frontend> 
     <layout> 
      <updates> 
        <checkout> 
         <file>mylayout.xml</file> 
        </checkout> 
        <!-- some layout updates nodes from other config files... --> 
      </updates> 
     </layout> 
    </frontend> 
<!-- some nodes... --> 
<!-- some nodes... --> 
</config> 

Tenga en cuenta mylayout.xml. Esta es la razón por la cual el archivo de diseño original es reemplazada completamente por su propia disposición :)

esperanza que está claro, en francés, habría sido más fácil para mí explicar;)

Hugues.

+6

Creo que lo explicaste bien en inglés, incluso la vaca puede entender tu explicación: D! Gracias por su increíblemente completa respuesta. – Farid

+2

Vale la pena señalar que el orden en que se combinan los archivos XML se puede controlar mediante la aplicación del módulo/etc/modules/My_Module.xml file usando la etiqueta .En su caso, usted desearía que su módulo fuera para que se combine con la configuración final después del módulo de pago. – ColinM

1

Creo que depende de cómo nombre su diseño. Si lo llamó checkout.xml, creo que se reemplazará con el diseño base. Si elige otro nombre, creo que debe anular solo las partes que especificó. EDITAR: No olvide borrar su caché. Y, por cierto, ¿cómo sabes que el archivo xml en realidad se reemplazó? La mejor manera de saber esto podría ser inspeccionar tu caché después de que se haya regenerado.

+0

¡Por lo que lo he probado, no dependía del nombre del archivo! porque incluso cuando cambié el nombre a mytest.xml y establecí la ruta dentro del archivo de configuración, ¡aún así reemplazó todo el diseño! – Farid

Cuestiones relacionadas