Schema.org Blueprints

Utiliza Schema.org como el modelo para la arquitectura de contenido y los datos estructurados en un sitio web Drupal, proporcionando estructuras de datos perfectas, APIs impecables (JSON:API) y excelente SEO (JSON-LD).

schemadotorg
178 sites
97
drupal.org

Overview

El módulo Schema.org Blueprints utiliza Schema.org como el modelo para la arquitectura de contenido y los datos estructurados de un sitio web Drupal. Instala los datos de Schema.org desde archivos CSV en Drupal y proporciona herramientas completas para mapear entidades de Drupal a tipos de Schema.org.

Este módulo sirve como la base fundamental para construir contenido semánticamente estructurado en Drupal. Define entidades de mapeo y tipos de mapeo de Schema.org, permitiendo a los administradores crear tipos de entidad y campos basados en definiciones de tipos de Schema.org. El módulo asegura que las convenciones de nomenclatura de Schema.org funcionen perfectamente con las convenciones internas de Drupal (convirtiendo camelCase a snake_case y manejando límites de caracteres).

Con más de 52 submódulos que proporcionan integraciones con módulos contribuidos como Paragraphs, Media, JSON-LD, JSON:API, Metatag, Pathauto y más, Schema.org Blueprints ofrece un ecosistema completo para construir sitios Drupal semánticamente ricos y optimizados para SEO. El módulo soporta tanto el renderizado tradicional de Drupal como arquitecturas headless/desacopladas a través de su soporte integral de API.

Features

  • Instala y gestiona datos de tipos y propiedades de Schema.org desde archivos CSV en tablas de base de datos de Drupal
  • Define entidades de configuración de mapeo de Schema.org que mapean tipos/bundles de entidades de Drupal a tipos de Schema.org
  • Define entidades de configuración de tipo de mapeo de Schema.org que proporcionan configuraciones predeterminadas para cada tipo de entidad de Drupal
  • Construye automáticamente tipos de entidad, bundles y campos a partir de definiciones de tipos de Schema.org
  • Proporciona convenciones de nomenclatura configurables para convertir nombres camelCase de Schema.org a snake_case de Drupal con abreviaturas para restricciones de longitud
  • Expone tipos y propiedades de Schema.org a otros módulos de Drupal mediante servicios y APIs
  • Proporciona plugin de selección de referencia de entidad por tipo de Schema.org para filtrar referencias de entidad por tipos de Schema.org
  • Proporciona plugin de filtro de Views por tipo de Schema.org para filtrar resultados de vistas por tipos de Schema.org
  • Soporta mapeos adicionales de Schema.org (múltiples tipos por entidad)
  • Se integra con módulos contribuidos incluyendo Duration, Entity Browser, Focal Point, Linkit y Media Library Media Modify
  • Proporciona comandos Drush para crear y eliminar mapeos de tipos de Schema.org
  • Proporciona plugins de Config Action para crear tipos de Schema.org mediante recetas de Drupal
  • Gestiona bibliotecas JavaScript reutilizables (jsTree, Mermaid, CodeMirror) para componentes de interfaz de usuario
  • Más de 52 submódulos para integraciones con JSON-LD, JSON:API, Paragraphs, Media, Metatag, Pathauto y más

Use Cases

Construcción de un sitio de contenido estructurado semánticamente

Utiliza Schema.org Blueprints para crear tipos de contenido basados en tipos de Schema.org como Article, Event, Organization, Person y Place. El módulo crea automáticamente los campos apropiados, configura las visualizaciones y asegura que tu arquitectura de contenido siga los estándares establecidos de la web semántica. Esto proporciona mejor interoperabilidad y comprensión del significado de tu contenido.

Implementación de datos estructurados JSON-LD para SEO

Habilita el submódulo schemadotorg_jsonld para generar automáticamente datos estructurados JSON-LD en los encabezados de tus páginas. Estos datos estructurados son reconocidos por motores de búsqueda como Google, Bing y otros, mejorando el SEO de tu sitio mediante fragmentos enriquecidos y resultados de búsqueda mejorados. Los datos se generan basándose en tus mapeos de Schema.org sin configuración adicional.

Creación de un sitio Drupal headless/desacoplado

Utiliza el submódulo schemadotorg_jsonapi para exponer tu contenido a través de una API JSON:API estandarizada que sigue las convenciones de Schema.org. Esto crea endpoints de API predecibles y bien documentados que los desarrolladores frontend pueden consumir independientemente de tu estructura interna de Drupal, haciendo que la implementación de arquitectura desacoplada sea sencilla.

Prototipado rápido de modelos de contenido

Utiliza comandos Drush como 'drush schemadotorg:create-type node:Event' para crear rápidamente tipos de contenido completos con todos los campos recomendados basados en las definiciones de Schema.org. Esto acelera el modelado de contenido al comenzar desde definiciones de tipos estándar de la industria en lugar de construir desde cero.

Construcción de un sitio web médico o de salud

Aprovecha el extenso vocabulario médico de Schema.org que incluye tipos como Hospital, Physician, MedicalCondition, Drug y MedicalProcedure. Las categorías de tipos médicos preconfiguradas del módulo y los mapeos de propiedades ayudan a construir sitios de información de salud conformes con datos estructurados apropiados.

Creación de plataformas de eventos o educación

Utiliza tipos de Schema.org como Event, Course, CourseInstance, EducationalOrganization para construir plataformas de gestión de eventos o educación. El módulo maneja relaciones complejas como prerrequisitos de cursos, horarios de eventos y credenciales educativas con tipos de campo apropiados.

Implementación de un sitio de recetas o relacionado con alimentos

El tipo Recipe de Schema.org está extensamente configurado con propiedades como recipeIngredient, recipeInstructions, cookTime, prepTime, nutrition y suitableForDiet. Combinado con la salida JSON-LD, tus recetas serán elegibles para los fragmentos enriquecidos de recetas de Google.

Gestión de jerarquías de contenido complejas con Paragraphs

Utiliza schemadotorg_paragraphs para crear tipos de Paragraph para tipos intangibles de Schema.org como PostalAddress, ContactPoint, OpeningHoursSpecification y HowToStep. Estos pueden ser incrustados dentro de tipos de contenido padre para modelar estructuras anidadas complejas de Schema.org.

Tips

  • Habilita primero el módulo Schema.org Blueprints Help (schemadotorg_help) para acceder a documentación completa de todos los submódulos en /admin/help
  • Utiliza el módulo Schema.org Blueprints Report (schemadotorg_report) para explorar y buscar tipos y propiedades de Schema.org con sus conversiones de nombres de Drupal
  • Comienza con el módulo mapping_set para crear tipos relacionados juntos (por ejemplo, Person + Organization + Place para un directorio)
  • Configura las propiedades predeterminadas a nivel de tipo (/admin/config/schemadotorg/settings/types) antes de crear mapeos para asegurar conjuntos de campos consistentes
  • Utiliza la sintaxis !propertyName en las propiedades predeterminadas para eliminar explícitamente propiedades heredadas que no necesitas
  • Las categorías de tipos de Schema.org ayudan a organizar los tipos en la interfaz - personaliza colores y agrupaciones según las necesidades de tu sitio
  • Para sitios headless/desacoplados, habilita tanto schemadotorg_jsonapi como schemadotorg_jsonld para obtener APIs consistentes y datos estructurados
  • Los pesos de campo en la configuración de propiedades controlan el orden en que aparecen los campos en formularios y visualizaciones - configúralos antes de crear mapeos
  • Utiliza el módulo schemadotorg_diagram para visualizar las relaciones de tipos de Schema.org y validar tu arquitectura de contenido
  • La función additional_mappings te permite añadir múltiples tipos de Schema.org a un solo bundle de Drupal para contenido complejo como una Person que también es un Author

Technical Details

Admin Pages 8
Schema.org /admin/config/schemadotorg

Página de inicio administrativa principal para la configuración de Schema.org Blueprints. Proporciona acceso a asignaciones, tipos de asignación y configuraciones.

Asignaciones de Schema.org /admin/config/schemadotorg/mappings

Lista todas las asignaciones de tipos de entidad de Drupal a tipos de Schema.org. Muestra el tipo de entidad, bundle y tipo de Schema.org asignado para cada asignación. Permite editar y eliminar asignaciones existentes.

Tipos de asignación de Schema.org /admin/config/schemadotorg/types

Lista los tipos de asignación con configuraciones predeterminadas para los tipos de entidad de Drupal disponibles. Cada tipo de asignación define cómo los tipos de Schema.org se asignan a un tipo de entidad de Drupal específico (node, user, media, paragraph, etc.).

Configuración de Schema.org /admin/config/schemadotorg/settings

Página de inicio de configuración principal que proporciona acceso a las subpáginas de configuración General, Tipos, Propiedades y Nombres.

Configuración general de Schema.org /admin/config/schemadotorg/settings/general

Configura los ajustes generales para el módulo Schema.org Blueprints, incluyendo la verificación de requisitos y la fuente de datos de Schema.org.

Configuración de tipos de Schema.org /admin/config/schemadotorg/settings/types

Configura los ajustes predeterminados para los tipos de Schema.org, incluyendo definiciones de tipos predeterminadas, propiedades, tipos de campo y categorías.

Configuración de propiedades de Schema.org /admin/config/schemadotorg/settings/properties

Configura los ajustes predeterminados para las propiedades de Schema.org, incluyendo definiciones de campo, configuración de formateadores, tipos de campo, pesos y propiedades ignoradas.

Configuración de nombres de Schema.org /admin/config/schemadotorg/settings/names

Configura cómo las convenciones de nomenclatura de Schema.org para tipos y propiedades se convierten a las convenciones de nomenclatura de Drupal para bundles y campos. Schema.org usa camelCase mientras que Drupal usa snake_case con límites de 32 caracteres.

Permissions 1
Administrar Schema.org Blueprints

Permite gestionar configuraciones de Schema.org, mappings, tipos de mapping y todos los ajustes del módulo.

Hooks 7
hook_schemadotorg_property_field_type_alter

Modifica los tipos de campo disponibles para una propiedad de Schema.org. Permite a los módulos agregar o reordenar las opciones de tipos de campo al mapear propiedades.

hook_schemadotorg_property_field_prepare

Prepara los datos del campo de una propiedad antes de que se muestre el formulario de mapeo de Schema.org. Permite la personalización de los valores predeterminados del campo.

hook_schemadotorg_bundle_entity_alter

Modifica los valores del tipo de entidad del bundle antes de que se cree la entidad. Permite la modificación de las propiedades del tipo de entidad.

hook_schemadotorg_property_field_alter

Modifica los valores de almacenamiento de campo y campo antes de que se creen los campos. Permite una personalización completa de la configuración del campo, widgets y formateadores.

hook_schemadotorg_mapping_defaults_alter

Modifica los valores predeterminados de la entidad de mapeo de Schema.org. Permite la modificación de los valores predeterminados de mapeo antes de que se utilicen.

hook_schemadotorg_mapping_apply

Responde cuando se está aplicando (guardando) un mapeo de Schema.org. Permite a los módulos realizar acciones adicionales cuando los mapeos cambian.

hook_ENTITY_TYPE_postsave

Responde después de que se inserta o actualiza una entidad de mapeo de Schema.org. Se utiliza para agregar mapeos adicionales después de que se guarda el mapeo principal.

Drush Commands 5
drush schemadotorg:create-type

Crea tipos de Schema.org especificando pares de tipo de entidad y tipo de Schema.org. Crea el bundle de entidad Drupal y todos los campos mapeados.

drush schemadotorg:delete-type

Elimina tipos de Schema.org y opcionalmente sus entidades y campos asociados.

drush schemadotorg:update-schema

Actualiza los datos de Schema.org reimportando desde archivos CSV. Refresca las tablas de base de datos schemadotorg_types y schemadotorg_properties.

drush schemadotorg:download-schema

Descarga los últimos datos CSV de Schema.org desde schema.org. Comando de mantenedor para actualizar los archivos de datos incluidos.

drush schemadotorg:translate-schema

Extrae cadenas traducibles de los datos CSV de Schema.org para localización. Comando de mantenedor.

Troubleshooting 5
Los nombres de campo se están truncando inesperadamente

Schema.org utiliza nombres de propiedades largos que pueden exceder el límite de 32 caracteres de Drupal para nombres de campo. Configura abreviaturas, prefijos y sufijos en /admin/config/schemadotorg/settings/names para controlar cómo se acortan los nombres. Añade mapeos custom_names para propiedades específicas problemáticas.

La advertencia de módulos recomendados sigue apareciendo

El módulo verifica las integraciones recomendadas. Instala los módulos recomendados (Duration Field, Entity Browser, Focal Point, Linkit) o desactiva la verificación en /admin/config/schemadotorg/settings/general desmarcando 'Check for recommended modules'.

Los campos Entity reference no muestran los bundles esperados

Al usar la selección de Entity reference de Schema.org, asegúrate de que los bundles de destino tengan mapeos de Schema.org. El manejador de selección filtra por tipos de Schema.org, por lo que los bundles sin mapeo no aparecerán. Verifica el rangeIncludes de la propiedad y crea mapeos para los tipos deseados.

Las propiedades no aparecen en el formulario de mapeo

Verifica si la propiedad está en la lista de propiedades ignoradas en /admin/config/schemadotorg/settings/properties. Algunas propiedades técnicas o raramente usadas están ocultas por defecto para simplificar la interfaz. Elimínalas de la lista de ignoradas si es necesario.

Los comandos Drush fallan con errores de validación

Asegúrate de que el formato sea correcto: entity_type:SchemaType (por ejemplo, node:Article). El tipo de Schema.org debe ser un tipo válido de schema.org. Verifica que ningún mapeo existente entre en conflicto con el tipo solicitado.

Security Notes 4
  • El permiso 'administer schemadotorg' es poderoso y solo debe otorgarse a administradores de confianza ya que permite crear tipos de entidad y campos
  • Al usar la salida JSON-LD, ten en cuenta que los datos estructurados son visibles públicamente y no deben contener información sensible
  • La selección de Entity reference por tipo de Schema.org respeta los controles de acceso de entidades, pero asegúrate de que los permisos de visualización estén configurados correctamente
  • La integración JSON:API sigue los controles de acceso del módulo JSON:API - configura el acceso a recursos apropiadamente para tu caso de uso