Skip to content
Extensión TYPO3

Linked Checkbox para TYPO3

Elemento checkbox personalizado para el TYPO3 Form Framework con etiqueta vinculada.

Reservar consulta inicial gratuita

form_element_linked_checkbox hace realmente clicables los consentimientos RGPD

El Form Framework del núcleo TYPO3 conoce una casilla de verificación, pero no una casilla con etiqueta enlazada. Quien trabaja con el elemento estándar no puede poner en la etiqueta un enlace a la política de privacidad o a los términos, y eso es precisamente un requisito que aparece en cualquier formulario. La extensión form_element_linked_checkbox cubre ese hueco con un elemento de formulario personalizado limpio que combina texto y enlace de forma adecuada. Para cualquier instalación TYPO3 que trabaje con el Form Framework nativo, esta extensión es prácticamente obligatoria. Sin ella solo queda el workaround de ampliar el texto de la etiqueta con un bloque de texto contiguo, lo que no solo parece desordenado, sino que además resulta problemático para los lectores de pantalla y la accesibilidad.

Escenarios típicos están en el ámbito de compliance de cualquier web corporativa

El primer y más frecuente escenario son los consentimientos RGPD al pie de formularios de contacto, boletín y candidatura. El texto “He leído la política de privacidad y acepto el tratamiento de mis datos” debe contener un enlace clicable a /privacidad, sin que el visitante tenga que marcar la casilla para abrirlo. form_element_linked_checkbox cubre exactamente ese caso.

Un segundo escenario son las aceptaciones de condiciones generales en formularios de registro y compra. Las universidades lo utilizan en inscripciones a cursos, las asociaciones en solicitudes de alta, los proyectos de comercio electrónico con el Form Framework de TYPO3 en los checkouts. Aquí a menudo no se pide un único enlace, sino varios (condiciones, desistimiento, privacidad), que deben integrarse en la misma etiqueta.

El tercer escenario afecta a los boletines Double-Opt-In. Antes del alta el destinatario debe confirmar expresamente que se suscribe al boletín, con enlace a las notas de privacidad específicas del boletín. form_element_linked_checkbox permite usar varias casillas con enlace propio en el mismo formulario, de modo que, junto al consentimiento de privacidad, también se pueda pedir el consentimiento explícito al boletín como elemento separado. Eso es importante, porque el RGPD exige consentimientos separados para fines distintos, y una casilla genérica “acepto todo” no basta jurídicamente.

Arquitectura técnica dentro del sistema de plugins del Form Framework

El Form Framework de TYPO3 está diseñado para ser ampliable a propósito: cualquier extensión puede registrar elementos de formulario propios, que aparecen en el editor YAML y son utilizables en el backend por arrastrar y soltar. form_element_linked_checkbox aprovecha ese mecanismo y registra un nuevo elemento “LinkedCheckbox” mediante el YAML de configuración del Form y el área de definiciones de elementos de formulario. Los redactores arrastran el elemento a su formulario, igual que harían con una casilla estándar, y configuran la etiqueta, el texto del enlace y el destino en el panel de detalle.

Internamente el elemento hereda la configuración de Checkbox y añade propiedades para pageUid, linkText y additionalLinks. El renderizado corre a través de un partial Fluid propio; antes, un hook coloca el enlace en el lugar del marcador %s de la etiqueta y enlaza solo esa parte. El clic en el enlace abre la página de destino sin conmutar la casilla. Para la accesibilidad eso es importante, porque los lectores de pantalla leen el enlace como elemento separado y la casilla puede manejarse de forma independiente.

La configuración se realiza directamente en el editor YAML del Form Framework: tras arrastrar el elemento a un formulario aparecen en la columna de detalle derecha los campos de página, texto del enlace y enlaces adicionales, además de la etiqueta. El destino es una página del árbol de páginas; otros enlaces a páginas se añaden en «Additional links». La validación obligatoria se fija, como en el elemento estándar, en la pestaña Validators.

Problemas frecuentes: multilingüismo, estilos y mensajes del validator

El primer tema de soporte es la traducción. La etiqueta consta del texto de la etiqueta y del texto del enlace, y cada parte debe mantenerse por separado en cada idioma. En la práctica eso significa que, para una instalación bilingüe (ES/EN), el mantenimiento se duplica. Quien trabaje con ext:l10nmgr debería referenciar explícitamente las claves LLL en la definición del formulario, para que import y export funcionen limpiamente. La propia extensión ayuda: si la etiqueta contiene el marcador %s, inserta el enlace justo ahí en lugar de añadirlo al final. Así la frase se mantiene como una sola cadena en cada idioma.

El segundo tema es el estilado. Muchos sistemas de diseño trabajan con casillas personalizadas que se reproducen mediante CSS desde una construcción span o label. La plantilla por defecto de la extensión entrega un wrapper sencillo que choca con algunos frameworks CSS. Recomendamos sobrescribir el partial en el overlay del paquete y adaptar la estructura al estilado del resto del formulario.

En tercer lugar, los mensajes de error del validator son un tropiezo habitual. Si el usuario no marca la casilla, debería aparecer “Por favor, acepte la política de privacidad” en lugar del mensaje por defecto “Campo obligatorio”. La extensión soporta mensajes de error personalizados mediante formElementsDefinition en el YAML del formulario; el mensaje puede adaptarse por elemento. Para la accesibilidad eso es importante, porque los lectores de pantalla leen el mensaje de error directamente y los mensajes inespecíficos no ayudan. Recomendamos formular cada mensaje de error de manera que sea comprensible con independencia del contexto.

TYPO3 v12 y v13 están totalmente soportados, la migración desde v10 afecta sobre todo a las plantillas

form_element_linked_checkbox está disponible para TYPO3 v11, v12 y v13, y la versión 6.0.0 también para v14. La estructura YAML del Form Framework ha cambiado en detalles entre v10 y v12, sobre todo en el registro de elementos personalizados. Al actualizar una instalación v10, las definiciones de formulario que usan el elemento no cambian; hay que adaptar las plantillas sobrescritas, porque desde la versión 3.0 el enlace lo genera un hook.

En proyectos de Gosign migramos la extensión como parte del refactoring del Form Framework, no por separado. El esfuerzo suele ser mínimo, porque el elemento se referencia en cada formulario solo por su identificador de tipo. En la migración comprobamos además si los textos de consentimiento RGPD se renderizan correctamente en cada idioma tras el upgrade de TYPO3 y actualizamos los enlaces a privacidad si han cambiado en estructura de URL o contenido textual.

Desarrollo acelerado por IA: 65% más rápido

Actualización TYPO3 y auditoría RGPD

Actualizamos su instalación TYPO3 de forma económica a la versión LTS actual - incluyendo todas las extensiones, incluso las obsoletas y sin mantenimiento.

Todas las extensiones migradas

También obsoletas, sin mantenimiento o desarrollos propios.

Oferta a precio fijo

Costes transparentes, sin retrabajos ocultos.

Acelerado por IA

30-50% más barato que el mercado gracias al análisis de código asistido por IA.

Cero pérdida de datos

Migración completa con copia de seguridad y rollback.

Auditoría RGPD: Auditamos su instalación TYPO3 para la conformidad con el RGPD - consentimiento de cookies, tracking, extensiones, formularios y hosting - e implementamos todas las medidas de forma económica.

Gosign es una agencia digital con sede en Hamburgo con 25 años de experiencia en desarrollo TYPO3. Hemos analizado más de 800 extensiones TYPO3 y hoy desarrollamos con asistencia de IA hasta un 70% más rápido que con métodos clásicos. Nuestros clientes son empresas medianas, universidades e instituciones públicas en toda Europa.

Actualizado: abril 2026

Reservar consulta inicial gratuita

30 minutos con un especialista TYPO3, sin compromiso.

Reservar consulta