Magento - ipascual

Anuncio
Magento
Capacitación:
-  Administración
-  Diseño
-  Desarrollo
http://www.ipascual.com/proyectos/magento/apuntes.pdf
www.ipascual.com
Estructura general de Magento
¤  app
¤  code
¤  design
¤  etc
¤  Locale
¤  js
¤  media
¤  skin
¤  var
www.ipascual.com
MVC (Modelo Vista Controlador) Magento – introducción
www.ipascual.com
MVC (Modelo Vista Controlador) Magento – introducción
¤  Programación
¤  block
¤  controller
¤  helper
¤  model
¤  Diseño
¤  layout
¤  template
www.ipascual.com
Estructura de archivos para diseño
¤  app/design/frontend/{$interfaz}/{$theme}/template folder.
¤  app/design/frontend/{$interfaz}/{$theme}/layout folder. ¤  app/code/{core,local,com…}/{$compañía}/{$modulo}/Block
¤  ¿Qué es interfaz?
Colección themes, Ej.: Ropa, Colombia, México…
¤  ¿Qué es theme?
Grupo de layout y templates. Ej.: Navidades, día de la madre…
¤  ¿Qué es módulo?
Parte de Magento (requerida o no) Ej.: Cliente, bonos, catálogo…
** Ver estructura de diseño más en profundidad **
www.ipascual.com
Control de diseño
www.ipascual.com
Jerarquía de uso
Módulo: Mage_Catalog / Layout: catalog.xml
¤  app/design/frontend/ipascual/diamadre/layout
¤  app/design/frontend/ipascual/default/layout
¤  app/design/frontend/base/default/layout
¿ Templates, css, js…?
¤  app/design/frontend/ipascual/diamadre/template/catalog/product/view.phtml
¤  app/design/frontend/ipascual/default/template/catalog/product/view.phtml
¤  app/design/frontend/base/default/template/catalog/product/view.phtml
www.ipascual.com
Layout / archivos XML introducción
<catalog_product_view>
<reference name="root”>
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
</reference>
…
<reference name="content”>
<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml”>
…
<block type="catalog/product_view" name="product.info.addtocart" as="addtocart"
template="catalog/product/view/addtocart.phtml"/>
</block>
</reference>
<reference name="right”>
<block type="catalog/product_list_related" name="catalog.product.related" before="-"
template="catalog/product/list/related.phtml"/>
</reference>
</catalog_product_view>
www.ipascual.com
Layout / archivo XML sintáxis BLOQUE
Tipos de bloques
- core/template: Este bloque renderiza la plantilla
definida por su atributo "template".
- page/html: Este es una extensión de core/
template que define el bloque principal. Todos los
otros bloques son hijos de este tipo.
- page/html_head: Define la sección de la
cabecera que contiente elmentos para incluir
JavaScript, CSS etc.
- page/html_header: Define la parte de la
cabecera que contiene elementos como el logo,
menu, etc.
www.ipascual.com
Layout / archivo XML sintáxis BLOQUE
- page/template_links: Crea una lista de enlaces. Por defecto tenemos
enlaces visibles en la cabecera y el pie de página usando este tipo de
bloque. Se ayudan de la etiqueta "action" para añadir o borrar enlaces.
- core/text_list: Bloque como "contenido", "izquierda", "derecha" son de
este tipo. Cuando estos bloques son renderizados todos sus hijos son
renderizados sin hacer uso del método
getChildHtml()
- page/html_breadcrumbs: Define la navegación de la tienda.
www.ipascual.com
Layout / archivo XML sintáxis BLOQUE
- page/html_footer: Define el area del pie de página.
- core/messages: Mensajes que aparecen después de acciones error/
éxito/aviso.
- page/switch: Bloque de para cambio de idioma o tienda.
www.ipascual.com
Layout / archivo XML sintáxis BLOQUE
page/html_wrapper: Cuando se renderiza encapsula sus bloques hijo dentro
de un tag HTML definicido por la acción setHtmlTagName. <div> es el
elemento por defecto.
<block type="page/html_wrapper" name="bottom.container" as="bottomContainer"
translate="label">
<label>Page Footer</label>
<action method="setHtmlTagName"><tag>span</tag></action>
<action method="setElementClass"><value>bottom-container</value></action>
<block ... />
<block ... />
</block>
www.ipascual.com
Layout / archivo XML sintáxis BLOQUE
- cms/block: Define la entrada de un bloque estático CMS.
Ejemplo:
<block type="cms/block" name="news_cms" as="newsBlock">
<action method="setBlockId"><block_id>news_block</block_id></action>
</block>
www.ipascual.com
Layout / archivo XML otras sintáxis
reference: Hace referencia a un bloque que no está en este
archivo xml de diseño.
<reference name="header">
…
</reference>
action: Estable una acción sobre el bloque, la cual se ejecuta
antes de renderizar el template.
<action method="addLink" translate="label title" module="catalogsearch"
ifconfig="catalog/seo/search_terms">
<label>Search Terms</label>
<url helper="catalogsearch/getSearchTermUrl" />
<title>Search Terms</title>
</action>
remove: Borra en el orden de renderizaje un bloque.
www.ipascual.com
Template / funciones comunes
<?php echo $this->_(“Carrito de compra”); ?>
$this->getChildHtml("bloque_nombre”)
<?php echo $this->getChildHtml('breadcrumbs') ?>
$this->getChildHtml()
<?php echo $this->getChildHtml() ?>
- Carga un static block CMS
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId("identificador")>toHtml() ?>
$this->getUrl('') Devuelve http://127.0.0.1/magento/
$this->getUrl('module/controller/action', array('param'=>$value))
$this->getSkinUrl("images/logo.png");
http://127.0.0.1/skin/frontend/your_theme/default/images/logo.png
www.ipascual.com
Nuestra gran ayuda
www.ipascual.com
Nuestra gran ayuda
www.ipascual.com
Localizando la especificación bloque en los xml
1)  Activar "Add Block Names to Hints"
2)  Localizar la clase del bloque
3)  Hacer una búsqueda en los XML de la siguiente manera
Si la clase del bloque es: Mage_Page_Block_Html_Breadcrumbs
... buscar page/html_breadcrumbs
Si la clase del bloque es: Mage_Catalog_Block_Product_Compare_Sidebar
... catalog/product_compare_sidebar
www.ipascual.com
Ejemplo cambiando el Home
¤  Configurar el Home page
System > Configuration > Web > Default Pages
¤  Configurar página 404
¤  Configurar página cookies no disponibles
www.ipascual.com
Ejemplo cambiando posición usando reference
Mover el carrito a la izquierda
1)  Renombrar reference del bloque de vista de carrito
(checkout/cart_sidebar)
checkout.xml
<default>
…
<reference name=“left” >
…
www.ipascual.com
Ejemplo cambiando el Home
Mover el carrito encima del breadcrumbs
1) Quitar el bloque de vista de carrito (checkout/cart_sidebar) de la
columna izquierda
checkout.xml
<default>
…
<reference name=“root” >
…
2) Llamarlo, 3columns.phtml
<?php echo $this->getChildHtml('cart_sidebar') ?>
www.ipascual.com
Ejemplo insertando CMS
1)  Crear el Static Block
2)  Asignar el CMS a un layout
<block type="cms/block" name="news_cms" as="newsBlock">
<action method="setBlockId"><block_id>news_block</block_id></
action>
</block>
3) Llamarlo <?php echo $this->getChildHtml('newsBlock') ?>
www.ipascual.com
Ejemplo creando templates
1) Declarar el template en los archivos layout *.xml
<block type="core/template" name="telephone-banner"
as="telephoneBanner" template="page/html/telephone.phtml" />
2) Llamarlo <?php echo $this->getChildHtml(’telephoneBanner') ?>
www.ipascual.com
Práctica
http://www.ipascual.com/proyectos/magento/visuals.zip
Descargar