2012-02-01 18 views
5

Tengo algunas preguntas sobre el archivo xml de diseño que se coloca en la aplicación \ design \ adminhtml \ default \ default \ layout.Descripción del archivo xml de diseño de Magento (referencia, bloque, ...)

En algún tutorial, que tenía la siguiente estructura:

<layout> 
    <adminhtml_example_index> 
     <reference name="content"> 
      <block type="awesome/adminhtml_example" name="example" /> 
     </reference> 
    </adminhtml_example_index> 

    <adminhtml_example_edit> 
     <reference name="content"> 
      <block type="awesome/adminhtml_example_edit" name="example_edit" /> 
     </reference> 
    </adminhtml_example_edit> 
</layout> 

Por favor alguien puede explicar lo que significan esas líneas? El tutorial se puede encontrar aquí: here

¡Gracias!

Respuesta

5

manipuladores de diseño se asignan al controlador MVC por lo que esperan que su manejador

<adminhtml_example_index> a utilizar en la página del controlador adminhtml/ejemplo/index

y

<reference name="content"> significa que los bloques u otras referencias dentro de los bloques estarán disponibles en content bloque en sus plantillas de tema

para leer más sugiero:

13

El XML estructura basada de Magento parece poco confuso y molesto al principio, pero su bien conocido que con el tiempo fuerte capacidad y personalización ...

<adminhtml_example_index></adminhtml_example_index> 

Esta etiqueta hace referencia al [enrutador] [c ontroller] [acción] El enrutador es el nombre identificado de forma única para un envío en particular. A partir del ejemplo que ha proporcionado, bajo la etiqueta de administrador del archivo config.xml, podemos encontrar el nombre del enrutador adminhtml.

<admin> 
    <routers> 
     <adminhtml> 
      <args> 
       <modules> 
        <awesome before="Mage_Adminhtml">Super_Awesome_Adminhtml</awesome> 
       </modules> 
      </args> 
     </adminhtml> 
    </routers> 
</admin> 

Debajo de ese enrutador están los ajustes del módulo relacionados con este enrutador.

lo tanto, si la URL contiene /admin/ejemplo/[índice], Magento encontrará el router correctos que es <adminhtml> continuación, se encuentra el controlador llamado example y encontrar la acción correcta que se encuentra en este caso index(/ admin/ejemplo/serán enviados a la acción index por defecto)

<adminhtml_example_index> 
    <reference name="content"> 
     <block type="awesome/adminhtml_example" name="example" /> 
    </reference> 
</adminhtml_example_index> 

En el archivo de diseño, por enrutador acción del controlador combinaciones, se definen cambios de diseño. Aquí la actualización se aplicará al bloque principal denominado content que contiene la sección de contenido de la página.

La etiqueta <block> se usa para definir el bloque al que debemos referirnos. <type> etiqueta es importante.Se refiere a la clase bloque correcto que se debe utilizar cuando se representa este diseño (Recuerde que en la estructura MVC de Magento la vista consta de dos clases de bloques y archivos PHTML)

En awesome/adminhtml_example aquí, awesome es el nombre de la configuración del bloque mencionado en archivo config.xml. adminhtml_example es la clase de bloque que se utilizará.

Ver

<global> 
    ----- 
    <blocks> 
     <awesome> 
      <class>Super_Awesome_Block</class> 
     </awesome> 
    </blocks> 
</global> 

Bajo la etiqueta block, un nombre único bloque se define (buena convención de nomenclatura preservará el carácter único). Entonces la ruta de clase para estos bloques se puede identificar como Super/Awsome/Block/.

El nombre de la configuración del bloque ahora se ha resuelto. adminhtml_example es la clase de bloque exacta que se utilizará. Cualquier guión bajo después del nombre del bloque (impresionante) se convertirá al separador de directorios.

De acuerdo con esto, la ruta completa de la clase bloque será

[codepool]/Super/Awsome/Block/Adminhtml/Example.php 

El nombre de la clase será como

class Super_Awesome_Block_Adminhtml_Example extends …. 

Si tenemos el archivo de diseño se puede especificar aquí .. entonces que .phtml archivo será mostrado mediante la clase de bloques anterior

<reference name="root"> 
    <block type="page/html" name="root" template="simplepage.phtml" /> 
</reference> 

º Hope Ayuda ... Lo siento si algo no está claro ...

+1

La explicación es excelente. Seguid así. :) – Coder

Cuestiones relacionadas