El A
es de un módulo de alias . En este caso page
es la abreviatura de Mage_Page_Block
(se define en app/code/core/Mage/Page/etc/config.xml
si quieres ver).
El B
es el nombre de la clase relativo al alias, las letras iniciales de cada palabra están en mayúscula. En este caso se html
convierte en Html
y se agrega al alias resuelto, por lo que es Mage_Page_Block_Html
. Probablemente se encuentre en el archivo app/code/core/Mage/Page/Block/Html.php
porque los nombres de las clases se traducen directamente a ubicaciones en Magento.
Si usaba un alias de modelo en lugar de un alias de bloque, entonces page
lo sería Mage_Page_Model
. Lo mismo ocurre con los modelos de recursos y los ayudantes. Su propio módulo deberá definirlos en su configuración si va a tener bloques, modelos y ayudantes.
Para comprender más sobre los tipos de bloques de magento, a continuación se muestran algunos tipos de bloques incorporados que se utilizan ampliamente en el diseño.
core/template
: Este bloque representa una plantilla definida por sutemplate
atributo. La mayoría de bloques definidos en el diseño son del tipo o subtipo decore/template
.page/html
: Este es un subtipocore/template
y define el bloque raíz. Todos los demás bloques son bloques secundarios de este bloque.page/html_head
: Define la sección de encabezado HTML de la página que contiene elementos para incluir JavaScript, CSS, etc.page/html_header
: Define la parte del encabezado de la página que contiene el logotipo del sitio, los enlaces superiores, etc.page/template_links
: Este bloque se utiliza para crear una lista de enlaces. Los enlaces visibles en el área de encabezado y pie de página utilizan este tipo de bloque.core/text_list
: Algunos bloques comocontent
,left
,right
etc. son de tipocore/text_list
. Cuando se procesan estos bloques, todos sus bloques secundarios se procesan automáticamente sin la necesidad de llamar algetChildHtml()
método.page/html_wrapper
: Este bloque se usa para crear un bloque contenedor que presenta sus bloques secundarios dentro de una etiqueta HTML establecida por la acciónsetHtmlTagName
. La etiqueta predeterminada es<div>
si no se establece ningún elemento.page/html_breadcrumbs
: Este bloque define rutas de navegación en la página.page/html_footer
: Define el área de pie de página de la página que contiene enlaces de pie de página, mensaje de derechos de autor, etc.core/messages
: Este bloque muestra mensajes de error / éxito / aviso.page/switch
: Este bloque se puede utilizar para el cambio de idioma o de tienda.Esta es una lista de los tipos de bloques que se utilizan con más frecuencia. Hay muchos otros tipos de bloques que se utilizan en implementaciones de temas avanzados.
fuente
la página es un FrontendName definido en el
etc/config.xml
archivo html es un nombre de clase de bloquemás detalles:
en esta línea
type(type="page/html")
defina el nombre de la clase de bloque relacionado con sutemplate(template="example/view.phtml">)
y el nombre es el único para cada bloque.primero ver la estructura de carpetas
establecimos
FrontendName = 'mymodule'
en hello.php creaste una función
y ahora ve a tu página XML de diseño:
<block type="mymodule/data" name="xyz" template="example/view.phtml">
aquí mydata es el nombre de la interfazy ahora ven a tu plantilla
aquí puedes llamar directamente a la función mydata ()
me gusta
ahora puede obtener su salida en el navegador "Se llama el bloque"
fuente
No, no te equivocas. Pero
"<!-- script -->"
puede resultar confuso. Aclaremos: como se indica en las respuestas anteriores, este es un alias, que consta de dos partes, la primera parte ("A") en sí es el alias que define para las clases de su módulo en las de su móduloconfig.xml
, la segunda es una ruta relativa a la valor del nodo. Estos juntos ("A" + "B" en mayúscula) se traducirán a un nombre de clase, utilizando la primera parte (el valor del nodo "A") exactamente como lo define (observe las mayúsculas / minúsculas si no desea horas de sufrimiento) y la segunda parte se escribe con mayúscula después de cada guión bajo. Entonces, comience con el ejemplo A / B con un bloque y esta configuración:En tiempo de ejecución
A/B
sería resuelto por la configuración de Magento paraVendor_Module_Block_B
que luego se incluye por la carga automática de la siguiente ruta:public/app/local/Vendor/Module/Block/B.php
. Para obtener una mejor comprensión, le aconsejo que eche un vistazo alMage_Core_Model_Config::getGroupedClassName()
,Mage_Core_Model_Config::getModelInstance()
yVarien_Autoload::autoload()
.fuente
No sé sobre el tipo "B", pero "A" se refiere a la etiqueta de nombre de su módulo en config.xml
Un ejemplo en el archivo config.xml:
nb: espero no estar equivocado ..
fuente