4. Componentes

Introducción

Los componentes son bloques reutilizables que forman las páginas (cabecera, footer, banner, tarjeta…). Cada componente tiene un template HTML con campos editables que el redactor rellena desde el panel sin tocar código.

Esta sección cubre los 4 tipos de componente disponibles en el sistema:

Acceso rápido

Pantalla principal (listado)

Listado de componentes del panel
Listado de componentes del panel. En este despliegue hay 35 componentes definidos. Cada fila muestra el nombre, tipo, idioma y acciones (editar, duplicar, eliminar).

La tabla de componentes muestra, para cada entrada:

Tareas habituales

4.1 Crear un componente

Formulario de creación de un componente
Formulario de creación de componente. Se piden los datos básicos: nombre, etiqueta visible, tipo, icono y si debe ser global.
  1. En el listado, pulsa el botón Crear componente (arriba a la derecha).
  2. Rellena el nombre interno (slug, en minúsculas y sin espacios, por ejemplo banner_home).
  3. Escribe la etiqueta visible para el redactor (por ejemplo Banner Home).
  4. Selecciona el tipo (ver 4.2).
  5. Opcionalmente, elige un icono y rellena el campo is_global (ver 4.5).
  6. Pulsa Guardar para crear el componente en estado borrador.
Importante: una vez creado el componente, el siguiente paso es definir sus campos editables (4.3) y escribir el template HTML (4.4). Hasta que esos dos pasos estén completos, el componente no se podrá añadir a una página.

4.2 Elegir el tipo

Selector de tipo de componente
Selector de tipo de componente. Es un <select> HTML nativo, no un conjunto de cards visuales.
Detalle del despliegue: el selector de tipo es un combo HTML nativo (<select>), no un conjunto de cards visuales como podría sugerir otra documentación. La captura refleja la UI real: un desplegable con las cuatro opciones (block, collection, form, payment).

El tipo define el comportamiento del componente y no se puede cambiar una vez creado. Si necesitas un tipo distinto, duplica el componente y cambia el tipo en la copia.

4.3 Añadir campos editables

Listado de campos editables del componente
Listado de campos editables. Cada campo se identifica por un nombre (que se usa como marcador [FIELD_NOMBRE] en el template) y un tipo de dato.

Los campos editables son los datos que el redactor podrá modificar desde el editor. Para cada campo defines:

Ejemplo: para un banner necesitas titulo (text, traducible) y imagen (image, no traducible).

4.4 Editar el template HTML

Editor del template HTML del componente
Editor del template HTML. Aquí se escribe la maquetación del componente y se insertan los marcadores [FIELD_NOMBRE] y [VAR:clave].

El template HTML es el esqueleto del componente. Mezcla HTML normal con dos tipos de marcadores:

Ejemplo de template de un banner:

<section class="banner">
  <h1>[FIELD_TITULO]</h1>
  <a href="[FIELD_ENLACE]" class="btn">Saber más</a>
</section>
Atención: el nombre dentro del marcador debe coincidir exactamente con el name del campo (en mayúsculas, con guiones bajos). Si no coincide, el sistema no lo sustituye y el marcador se mostrará tal cual en la web pública.

4.5 Marcar como global (compartido) o por página

El flag is_global controla dónde se guarda el contenido del componente:

Importante: marcar un componente como global no hace que aparezca automáticamente en todas las páginas. Sigue siendo necesario asignarlo a cada página desde el Builder (ver sección 3.2). La diferencia es solo dónde se guarda el contenido.

4.6 Importar / exportar un componente

El panel permite exportar un componente como archivo JSON (incluye nombre, tipo, campos y template) y reimportarlo en otra instalación. Esto es útil para:

  1. En el listado, abre el componente que quieres exportar.
  2. Pulsa Exportar. El navegador descargará un archivo .json.
  3. Para importarlo, en la pantalla de creación pulsa Importar y selecciona el archivo.
Consejo: la exportación/importación mueve solo la definición (tipo, campos, template). No incluye el contenido ya rellenado en páginas, que se almacena por separado.

Referencia técnica (webmasters)

Tipos de campo disponibles

field_typeDescripciónRender en el editor
textTexto corto (una línea).<input type="text">
textareaTexto largo (varias líneas, sin formato).<textarea>
richtextEditor WYSIWYG (negrita, listas, enlaces).Editor enriquecido
imageImagen: URL o selector de media.Selector + preview
urlEnlace (con validación de formato).<input type="url">
emailDirección de correo.<input type="email">
numberValor numérico.<input type="number">
booleanSí / No.Checkbox
dateFecha.<input type="date">
jsonArray JSON (útil para listas de enlaces).Editor JSON
collection_referenceReferencia a una colección (ver sección 5).Selector + preview

Marcadores [FIELD_NAME] y variables [VAR:key]

El parser del motor de plantillas reconoce dos familias de marcadores:

Para iconos SVG (spritemap) el patrón recomendado es:

<svg aria-hidden="true">
  <use xlink:href="[VAR:base_path]/assets/media/spritemap.svg#sprite-NOMBRE"></use>
</svg>

Rutas internas relevantes

Errores frecuentes