Creación de Temas en Magento2 – Parte 1

En este Tutorial veremos que pasos necesitamos seguir para poder crear un Tema Básico con Magento2.

¿Qué es un Tema?

Un tema es un componente de Magento que proporciona un diseño a nuestra aplicación tanto para el frontend como para el backend.

El Tema lo crearemos usando una combinación de layouts, templates, estilos e imágenes.

Los temas son creados por vendedores y distribuidos en paquetes para el sistema de Magento.

Magento 2 ofrece 2 temas por defecto; el primero es Luma que es un tema de demostración y el tema blank es un tema básico del que poder partir para crear nuestros propios temas.

Localización de Temas

Los temas son creados en los siguientes directorios

  • app/design/frontend/<vendor>/<tema>/ para el frontend
  • app/design/adminhtml/<vendor>/<tema>/ para el backend

Podemos crear un nuevo tema o podemos hacer que herede de otro ya existente.

La idea de este tutorial es crear un tema hijo que herede el comportamiento del tema blank de Magento2.

Empezaremos activando el modo desarrollador desde linea de comandos.

Los temas para el frontend en Magento 2.3 son creados en la carpeta app/design/frontend/

Y al igual que a la hora de crear un módulo personalizado tendremos que crear una carpeta vendor y otra con el nombre de nuestro tema.

Declaración del Tema

El tema es declarado en un fichero llamado theme.xml el en directorio raíz de nuestro tema.

Este contendrá el nombre del tema y el tema padre del cual es heredado.

El campo media es opcional y contiene el nombre de la imagen de demostración del tema.

Composer Package

Si queremos distribuir nuestro tema y que este pueda instalar o actualizar componentes necesitamos crear un fichero llamado composer.json

En este fichero incluiremos sus dependencias, version, licencia, autores, etc …

Registro del tema

Al igual que con la creación de módulos, los temas necesitan ser registrados por Magento.

Para ello necesitamos crear un fichero llamado registration.php

Configuraciones

Los tamaños de imágenes de productos y otras configuraciones usadas por nuestro tema son creadas en el fichero view.xml que tendremos que crear en el directorio etc/ de nuestro tema.

Este fichero será obligatorio si nuestro tema no es heredado de ningún otro y opcional en el caso de que si lo sea.

Ficheros estáticos

El tema puede contener diferentes tipos de ficheros estáticos, desde hojas de estilos, imágenes, javascript, etc …

Para poder organizarlos debidamente crearemos una estructura para ellos

Toda la caché de estos ficheros estáticos y que son accedidos por usuarios son guardados en el directorio pub/static/ y var/view_preprocessed/

En modo developer si cambiamos alguna parte de nuestro tema, Magento2 se encargará de limpiarlos automáticamente.

En modo producción estos ficheros estáticos no son cacheados por lo que tendremos que hacer un deploy desde linea de comandos.

Ficheros de layout

El tema también contendrá ficheros de layout que se encargan de la capa de vistas de la aplicación.

Si realizamos alguna modificación en ellos tendremos que limpiar la caché para comprobar cualquier cambio que hayamos realizado.

Estilos

Magento 1x usaba SASS para crear los estilos del tema pero la novedad en Magento2 es que usa LESS para construirlas.

Si decides usar LESS necesitarás crear un fichero llamado _theme.less en la carpeta css/source/ para poder extender los ficheros del tema heredado.

Logo del Tema

El formato por defecto que usará Magento para incluir el Logo de nuestro tema es logo.svg por lo que si lo encuentra en la carpeta web/images/ lo reconocerá como el logo del tema.

Podremos usar un logo con un nombre y formato diferente pero necesitamos declararlo desde el layout de tu tema.

Los layouts los explico en la parte 2, pero si queremos incluir el logo personalizado desde el layout necesitamos sobrescribir el layout default.xml del la libreria Magento_Theme

Este fichero de layout se encargará de mostrar tanto la cabecera, contenidos y pie de página de nuestro tema y está ubicado en Magento/Theme/view/frontend/layout/default.xml

Por lo que necesitamos crear en nuestro tema la carpeta Magento_Theme/layout/ y en ella crear el fichero default.xml

* El logo de nuestro tema también también podrá ser cambiado desde el propio Backend de Magento.

Aplicación y activación

Para poder aplicar y activar un tema tendremos que hacerlo desde el Backend de Magento2.

Es la única forma de registrar e incluir el tema en la base de datos de Magento.

Desde Content > Design > Configuration asignaremos el nuevo tema creado.

Recuerda que hay que limpiar la caché para que los cambios tengan su efecto.

Desinstalación

En caso de necesitar desinstalar o borrar un tema creado manualmente eliminaremos el directorio del tema.

Eliminamos cualquier registrodel tema en la tabla theme de la base de datos

Esta es una parte importante porque Magento es muy quejica y puede mostrarte el error «Magento 2.x Required parameter ‘theme_dir’ was not passed» en muchas áreas de tu backend.

Si lo hubieramos descargado vía composer:

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.