Zum Inhalt springen

Ext:form - Establecer la ubicación de almacenamiento de los formularios

A partir de TYPO3 8 LTS

TYPO3 8 LTS también introdujo una extensión de formulario completamente revisada. Esto ahora hace que sea muy fácil crear formularios más complejos en el backend.

Las configuraciones de estos formularios se guardan en un archivo de configuración separado en formato YAML para cada formulario. Esto significa que estos archivos pueden ser fácilmente copiados y reutilizados en otros proyectos TYPO3. Ahora también es posible utilizar sistemas de versionado como Git para las definiciones de formularios.

Por defecto, las definiciones de formulario se guardan en la carpeta fileadmin/user_upload/ .

Sin embargo, esto se puede cambiar fácilmente, por ejemplo, utilizando un directorio separado debajo de fileadmin/ o en una extensión separada.

Las ubicaciones de almacenamiento se definen mediante el parámetro allowedFileMounts en el archivo EXT:form/Configuration/Yaml/BaseSetup.yaml. La parte relevante de este archivo tiene el siguiente aspecto:

TYPO3:
  CMS:
    Form:
      persistenceManager:
        allowedFileMounts:
          10: 1:/carga_usuario/
          ...
          ...

El archivo completo puede consultarse en el repositorio Git.

En la línea 6, la ubicación de almacenamiento nº 1 (= fileadmin) y el directorio user_upload/ en ella se definen como objeto 10.

Ahora es relativamente fácil añadir otros directorios.


Para ello, cree un archivo en cualquier ubicación, por ejemplo, esto podría sermyFormSetup.yaml

Puede crear este archivo debajo de fileadmin/ o dentro de un directorio de extensión si está utilizando su propia extensión de plantilla, por ejemplo.

Sin embargo, sólo escriba las líneas necesarias que desea sobrescribir de BaseSetup.yaml en este archivo.

Si desea utilizar una carpeta debajo de fileadmin/ (ejemplo):

TYPO3:
  CMS:
    Form:
      persistenceManager:
        allowedFileMounts:
          20: 1:/myForms/

Si desea utilizar una carpeta dentro de su extensión:

TYPO3:
  CMS:
    Form:
      persistenceManager:
        allowedExtensionPaths:
          10: EXT:myExtension/Resources/Private/myForms/
        allowSaveToExtensionPaths: true
        allowDeleteFromExtensionPaths: true

Al crear un nuevo formulario, puede seleccionar dónde debe guardarse la configuración de este formulario.

Si desea eliminar la definición estándar user_upload/, utilice 10 en lugar de 20 en myFormSetup.yaml.

Por supuesto, la carpeta (myForms/ en el ejemplo) debe existir.

Si está utilizando una extensión, puede utilizar los parámetros allowSaveToExtensionPaths y allowDeleteFromExtensionPaths para permitir (true) a los usuarios del backend editar o borrar los formularios dentro de una extensión. Por defecto, los parámetros están en false.

Ahora hay que dar a conocer el nuevo archivo a la extensión del formulario.

Para ello, escriba las siguientes líneas en la configuración de TypoScript:

plugin.tx_form.settings.yamlConfigurations.100 = ruta/a/miFormSetup.yaml
module.tx_form.settings.yamlConfigurations.100 = ruta/a/miFormSetup.yaml

## Por supuesto, la ruta a una extensión también podría especificarse aquí:
## plugin.tx_form.settings.yamlConfigurations.100 = EXT:myExtension/Resources/Private/myForms/myFormSetup.yaml
## module.tx_form.settings.yamlConfigurations.100 = EXT:myExtension/Resources/Private/myForms/myFormSetup.yaml

Si ahora crea un nuevo formulario utilizando el módulo backend de formularios, puede seleccionar la ubicación de almacenamiento (almacenamiento de formularios) en el primer paso.

Aktualisiert: 09.04.2025