Esta extensión TYPO3 permite a los desarrolladores frontend crear componentes encapsulados en Fluid puro. Al definir una interfaz clara (API) para la integración, los desarrolladores frontend pueden implementar componentes independientes de los desarrolladores backend. El objetivo es crear componentes de presentación altamente reutilizables que no tengan efectos secundarios y no sean responsables de la adquisición de datos.
TL;DR? Comience de inmediato
Las plantillas fluidas suelen constar de tres ingredientes:
Además, ViewHelpers proporciona estructuras de control básicas y encapsula la representación avanzada y la manipulación de datos que de otro modo no serían posibles. Se definen como clases PHP.
La extensión añade otro ingrediente a Fluid: Componentes .
fluid components son similares a ViewHelpers. La principal diferencia es que se pueden definir únicamente en Fluid. En cierto modo, son bastante similares a los parciales de Fluid, pero tienen algunas ventajas:
El siguiente componente implementa un elemento de tarjeta teaser simple:
Componentes/TeaserCard/TeaserCard.html
< fc : component >
< fc : param name = " title " type = " string " />
< fc : param name = " link " type = " Typolink " />
< fc : param name = " icon " type = " string " optional = " 1 " />
< fc : param name = " theme " type = " string " optional = " 1 " default = " light " />
< fc : renderer >
< a href = " {link} " class = " {component.class} {component.class}-{theme} " >
< h3 class = " {component.prefix}title " >{title}</ h3 >
< f : if condition = " {content} " >
< p class = " {component.prefix}description " >< fc : slot /></ p >
</ f : if >
< f : if condition = " {icon} " >
< i class = " icon icon-{icon} {component.prefix}icon " ></ i >
</ f : if >
</ a >
</ fc : renderer >
</ fc : component >
Utilice el siguiente código en su plantilla para representar una tarjeta teaser sobre TYPO3:
{namespace my=VENDORMyExtensionComponents}
< my : teaserCard
title = " TYPO3 "
link = " https://typo3.org "
icon = " typo3 "
>
The professional, flexible Content Management System
</ my : teaserCard >
El resultado es el siguiente HTML:
< a href = " https://typo3.org " class = " smsExampleTeaserCard smsExampleTeaserCard-light " >
< h3 class = " smsExampleTeaserCard_title " >TYPO3</ h3 >
< p class = " smsExampleTeaserCard_description " >The professional, flexible Content Management System</ p >
< i class = " icon icon-typo3 smsExampleTeaserCard_icon " ></ i >
</ a >
(sangría mejorada para una mejor legibilidad)
Instale la extensión desde TER o mediante Composer:
composer require sitegeist/fluid-components
Defina el espacio de nombres del componente en su ext_localconf.php :
$ GLOBALS [ ' TYPO3_CONF_VARS ' ][ ' EXTCONF ' ][ ' fluid_components ' ][ ' namespaces ' ][ ' VENDOR \ MyExtension \ Components ' ] =
TYPO3 CMS Core Utility ExtensionManagementUtility:: extPath ( ' my_extension ' , ' Resources/Private/Components ' );
Utilice su propio nombre de proveedor para VENDOR
, nombre de extensión para MyExtension
y clave de extensión para my_extension
.
Cree su primer componente en EXT:my_extension/Resources/Private/Components/ creando un directorio MyComponent que contenga un archivo MyComponent.html
Defina y aplique su componente según ¿Cómo se ven los componentes?. La documentación ampliada también puede resultar útil.
Consulte Fluid Styleguide, una guía de estilo viva para fluid components y fluid components Linter para mejorar la calidad y la reutilización de sus componentes.
Si tiene alguna pregunta, necesita ayuda o quiere hablar sobre los componentes de TYPO3, no dude en unirse a #ext-fluid_components.
Referencias de funciones
Cómo hacer
El desarrollo y los lanzamientos públicos de este paquete están patrocinados generosamente por mi empleador https://sitegeist.de.