Looking for magento Answers? Try Ask4KnowledgeBase
Looking for magento Keywords? Try Ask4Keywords

magentoRepresentación


Observaciones

Personalizar la funcionalidad del núcleo con temas

Los temas tienen archivos de diseño que, entre otras cosas, se pueden usar para cambiar los bloques que aparecen en la página. La plantilla de bloque también se puede cambiar y se pueden llamar diferentes métodos.

Diseños a nivel de tienda

Los temas estructurados jerárquicos de Magento significa que un tema base puede extenderse y asignarse a nivel de tienda.

Registro de temas personalizados

Los temas se pueden configurar de tres maneras:

  1. Por tienda en Sistema> Configuración> Diseño.
  2. Cambio de diseño con límites de tiempo Sistema> Diseño.
  3. Las excepciones de tema también se pueden establecer en una categoría y nivel de producto.

Paquete versus tema

Un paquete tiene múltiples temas. Cada uno de los temas en un paquete se hereda del tema predeterminado dentro de un paquete.

Diseño alternativo

El procedimiento de reserva de tema para localizar archivos de plantillas es:

  1. {paquete} / {tema}
  2. {paquete} / predeterminado
  3. base / predeterminado

Para agregar más directorios al mecanismo de reserva del tema, es necesario volver a escribir el método Mage_Core_Model_Design_Package :: getFilename

Para el área de administración, el respaldo es predeterminado / predeterminado.

Plantilla y rutas de diseño

Bloques

Los bloques se utilizan para la salida. El bloque raíz es el padre de todos los bloques y es de tipo Mage_Page_Block_Html.

Los bloques Mage_Core_Block_Template usan archivos de plantilla para representar contenido. El nombre del archivo de la plantilla se establece dentro de setTemplate () o addData ('plantilla') con rutas relativas.

Las plantillas son solo piezas de PHP incluidas en Mage_Core_Block_Template. Por lo tanto $ esto en una plantilla se refiere al bloque.

Mage_Core_Block_Template utiliza un búfer antes de incluir una plantilla para evitar la salida prematura.

El método Mage_Core_Model_Layout :: createBlock crea instancias de bloques.

La clase Mage_Core_Model_Layout_Update considera qué bloques deben crearse para cada página mirando los controladores de diseño.

Todos los bloques de salida se representan, por ejemplo, llamando a HTML (), que a su vez puede elegir representar a sus hijos.

Los bloques Text y Text_List representan automáticamente su contenido.

Hay dos eventos que se activan alrededor de la representación de bloques que se pueden usar para modificar el bloque antes y después de representar el HTML:

core_block_abstract_to_html_before core_block_abstract_to_html_after Un bloque hijo solo se procesará automáticamente si es de la clase Mage_Core_Block_Textlist de lo contrario, se deberá llamar al método getChildHtml.

Se puede acceder a las instancias de bloques a través del diseño, por ejemplo, Mage :: app () -> getLayout () y $ controller-> getLayout (). La salida del bloque es controlada por la función _toHtml ().

Las plantillas se representan mediante los métodos renderView () / fetchView () dentro de un bloque de plantillas. El búfer de salida se puede desactivar con $ layout-> setDirectOutput.

Es posible agregar un bloque al diseño actual, pero se debe hacer antes de llamar al método renderLayout ().

Diseño XML

<reference>
  -edit a block
<block>
  - define a block 
<action>
  - call method on a block
<update>
  - include nodes from another handle.

Los archivos de diseño se pueden registrar en config.xml:

<config>
    <{area}>
        <layout>
            <updates>
                <{name}>
                    <file>{filepath}</file>
                </{name}>
            </updates>
        </layout>
    </{area}>
</config>

La salida de la página se puede personalizar de las siguientes maneras:

  • Cambios de plantilla
  • Cambios de diseño
  • Anulando bloques
  • Observadores Las variables en bloques se pueden establecer de las siguientes maneras:
  • Diseño -A través de acciones o atributos
  • Controlador - $ this-getLayout () -> getBlock ()
  • Bloques secundarios - $ this-> getChild ()
  • Otro -Mage :: app () -> getLayout ()

Activos de bloque de cabeza

Los recursos de JavaScript y CSS se manejan en el bloque Mage_Page_Block_Html_head. Este bloque maneja la fusión de activos en un solo archivo para minimizar las solicitudes HTTP. El archivo combinado se basa en el tiempo de edición de los archivos de origen.

Al fusionar CSS, se llama a una función de devolución de llamada en Mage_Core_Model_Design_Package para actualizar las directivas @import o url () con las URL correctas

Representación Ejemplos relacionados