Resumen del sistema de módulos
Entender los módulos es clave para entender el CMS de HubSpot y su potencia. Los módulos son componentes reutilizables que se pueden usar en plantillas o agregarse a páginas por medio de áreas de arrastrar y soltar y columnas flexibles. Además de utilizar los módulos que HubSpot proporciona, los desarrolladores pueden crear sus propios módulos para todo, desde testimonios hasta galerías de fotos. Los módulos se crean con las herramientas de desarrollo locales o con el Administrador de diseño.
Un módulo consta de dos partes:
- Una interfaz de usuario creada a través de una lista de campos que los usuarios verán al editar una instancia del módulo.
- Un fragmento de plantilla HTML+HubL con CSS y JS asociados que define cómo se generará el HTML
Para entender mejor lo que es un módulo, veamos un simple módulo de "Miembro del equipo". El módulo consiste en una foto, el nombre del miembro del equipo, su título y una breve biografía, y cuando forma parte de una página web del CMS:

El desarrollador construye la interfaz de usuario (UI) de los módulos mediante campos. A continuación, el desarrollador elige qué campos utilizar en función del tipo de módulo que se está construyendo, los datos que se necesitan y la experiencia de edición. En este caso, el módulo incluye:
- un campo de imagen, para la foto de un miembro del equipo
- dos campos de texto, para el nombre y el cargo del miembro del equipo
- y un campo de texto enriquecido, para una breve biografía.
Cuando un creador de contenido edita un módulo, la interfaz de usuario se construye basándose en los campos que el desarrollador ha agregado al módulo y en cómo está configurado cada campo.

Hay dos términos que se utilizan con frecuencia en relación con los módulos. Es importante entender la diferencia entre ellos.
- Módulo: bloques de construcción reutilizables que se pueden agregar a las plantillas y páginas.
- Instancia de módulo: los módulos individuales renderizados en la página. Pueden tener valores de campo separados y, como resultado, tener un aspecto diferente de otras instancias de módulos que son para el mismo módulo.
Los campos de un módulo se definen en JSON como una matriz de objetos. Cada campo tiene un nombre, un tipo y un valor predeterminado. También hay otras propiedades disponibles en función del tipo de campo que controla la experiencia de edición.
Para obtener más información sobre todos los campos disponibles, consulta Campos de Módulos y Temas.
Los valores de cada campo están disponibles en el fragmento HTML+HubL de un módulo a través de una variable module
. Se puede acceder a los datos de cada campo a través de las propiedades de la variable del módulo. Utilizando el módulo de miembros del equipo como ejemplo, se puede acceder al nombre del miembro del equipo mediante {{ module.team_member_name }}
.
Los módulos se agregan a las plantillas utilizando la etiqueta module, module_block o dnd_module y especificando la ruta del módulo como parámetro. Los valores predeterminados de los campos de un módulo también pueden anularse a nivel de plantilla agregando parámetros a la etiqueta del módulo que corresponde al nombre del campo, como se muestra en la segunda parte del ejemplo siguiente.
Los módulos no pueden agregarse unos dentro de otros. La mayoría de las veces que se quiere hacer esto, suele ser por razones de diseño. Las secciones en las áreas de arrastrar y soltar, son a menudo el mejor curso de acción.
Los módulos se utilizan en todo un sitio web, a veces en varias páginas, incluso varias veces en una página. Por ello, construir el HTML, el CSS y el JS de tu módulo teniendo en cuenta la accesibilidad puede tener un efecto profundo en la facilidad de uso de tu sitio para las personas con y sin discapacidades o impedimentos.
En un sentido similar al de la accesibilidad, la construcción de módulos de manera que todo el contenido del módulo se base en campos, hace posible la localización posterior. Por ejemplo, podrías tener un módulo como "Artículos destacados". En lugar de codificar el texto "Artículos destacados", utiliza un campo de texto o de texto enriquecido. A continuación, se puede cambiar el texto para otros idiomas. Para saber más sobre la localización en el CMS, consulta el apartado varios idiomas.
Para empezar, consulta nuestro tutorial de Primeros pasos con módulos.
Gracias por tus comentarios, son muy importantes para nosotros.