Somos grandes fans del motor de plantillas Fluid de TYPO3. Junto con las extensiones EXT:flux y EXT:fluidcontent, puede crear rápidamente elementos de contenido flexibles para sus editores que se adaptan con precisión a los casos de uso individuales. Desde el punto de vista del desarrollador, esto resulta especialmente cómodo, ya que sólo se necesita una única tecnología, Fluid Markup. Además, no se necesitan clases php, configuración TCA, Typoscript, Page TSconfig ni definiciones SQL. Otra ventaja es que sólo necesita 1 archivo con Fluid Markup por elemento y ninguna entrada de base de datos en el CMS. Esto significa que los elementos de contenido basados en EXT:flux y EXT:fluidcontent son muy portátiles y fáciles de versionar y desplegar. Puede obtener más información sobre esta tecnología en https://fluidtypo3.org/documentation/templating-manual/templating/creating-templates/content-element.html.
Ahora se ha anunciado en la versión 8.0.0 de EXT:flux que todo esto también se puede conseguir sin EXT:fluidcontent. Aquí resumimos cómo liberar un proyecto existente de EXT:fluidcontent y proporcionar únicamente sus elementos de contenido con EXT:flux. En los siguientes ejemplos de código, suponemos que todos los elementos están agrupados en un proveedor o extensión de paquete de sitio "EXT:template" con el nombre de proveedor AEMKA. Al igual que con cualquier intervención relacionada con el sistema, recomendamos realizar una copia de seguridad del sistema de archivos y de la base de datos de la instalación de TYPO3 con antelación. Se ha probado con la versión 8.2.1 de EXT:flux y TYPO3 CMS 8.7.13.
Paso 1 - Eliminar EXT:fluidcontent:
Para ello, elimine la dependencia de EXT:fluidcontent en EXT:template/ext_emconf.php en $EM_CONF[$_EXTKEY]['constraints']['depends'] si es necesario. EXT:fluidcontent puede entonces ser desinstalado en el TYPO3 Extension Manager y eliminado directamente si es necesario.
Paso 2 - Añadir los registros manuales de elementos:
Para cada elemento de contenido en EXT:template/Resources/Private/Templates/Content/, se debe crear una línea más de código en EXT:template/ext_localconf.php. Sin embargo, es probable que esto se vuelva innecesario y completamente automatizado en una etapa posterior, al menos este ya es el caso en la última versión maestra de Github de EXT:flux:
\FluidTYPO3\Flux\Core::registerTemplateAsContentType(
AEMKA.Template',
'EXT:template/Resources/Private/Templates/Content/SomeElement.html'
);
\FluidTYPO3\Flux\Core::registerTemplateAsContentType(
AEMKA.Template',
'EXT:template/Resources/Private/Templates/Content/AnotherElement.html'
);
...
Paso 3 - Reescritura de la base de datos para el registro del nuevo tipo de elemento:
Para cada elemento de contenido que ya haya creado con EXT:fluidcontent y desee migrar, deberá ejecutar un comando SQL del siguiente tipo:
UPDATE tt_content SET CType = "template_someelement"
WHERE tx_fed_fcefile = "AEMKA.Template:SomeElement.html" AND CType = "fluidcontent_content";
UPDATE tt_content SET CType = "template_anotherelement"
WHERE tx_fed_fcefile = "AEMKA.Template:AnotherElement.html" AND CType = "fluidcontent_content";
...
Además, es posible que ahora haya que ajustar los derechos de editor, ya que ahora han cambiado todos los tipos de elementos de contenido con los que estaban configurados anteriormente los derechos de editor.
Paso 4 - Cosas opcionales:
En la herramienta de instalación de TYPO3, las columnas de la base de datos ahora innecesarias se pueden eliminar en "Acciones importantes" > "Comparar la base de datos actual con la especificación".
Ahora se puede asignar de forma fiable un icono por elemento con el marcado:
<flux:form.option.icon
value="EXT:template/Resources/Public/Icons/Content/Icon.svg" />
dentro de la etiqueta flux:form.
En la versión 8 de Flux, recibimos un mensaje en el frontend de que no se podían renderizar los elementos de contenido de Flux. Con las siguientes líneas en ext_localconf.php pudimos remediarlo. Por el momento no podemos decir si se trata de un problema general y si seguirá siendo necesario en la versión 9 de Flux:
if (TYPO3_MODE == 'FE') {
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tstemplate.php']['includeStaticTypoScriptSources'][] = \FluidTYPO3\Flux\Backend\TableConfigurationPostProcessor::class . '->processData';
}
Si tenía una clase de controlador php que procesaba datos para EXT:fluidcontent antes de la representación, es posible que tenga que cambiar el nombre de la clase de la que hereda su ContentController antes de eliminar EXT:fluidcontent:
class ContentController extends \FluidTYPO3\Fluidcontent\Controller\AbstractContentController
a:
class ContentController extends \FluidTYPO3\Flux\Controller\ContentController
Conclusión
Usted puede ahorrarse una extensión en el sistema. Además, el desarrollo de EXT:fluidcontent también ha sido descontinuado y ya no estará disponible para TYPO3 CMS 9, que es otro paso preparatorio para la actualización a la próxima versión LTS de TYPO3 CMS.
Con el cambio, algunos pequeños errores son también historia, por ejemplo, los problemas con la desaparición de los iconos de los elementos. Además, cada elemento de contenido tiene ahora su propio tipo de elemento de contenido (CType), de modo que ahora se puede definir explícitamente en los derechos del editor que los editores sólo tienen acceso a determinados elementos y que sólo ciertos elementos de contenido están permitidos en los elementos contenedores.
Si necesita asistencia técnica, formación u otros servicios de TYPO3, póngase en contacto con nosotros.
También hay otro artículo sobre este tema:
Fluid Pages Diseños de página sin EXT:fluidpages