[TASK] Fix typo in form documentation
[Packages/TYPO3.CMS.git] / typo3 / sysext / form / Documentation / Concepts / FormFileStorages / Index.rst
1 .. include:: ../../Includes.txt
2
3
4 .. _concepts-form-file-storages:
5
6 Form/ File storages
7 ===================
8
9 EXT:form stores the form definitions within the file system and thus needs
10 write access to this storage. By default, the filemount ``form_definitions`` is
11 used. It is possible to configure a different and/ or an additional
12 filemount, which is then utilized for storing and reading forms.
13
14 The backend user will only see form definitions that are stored in
15 filemounts where the user has at least read access. The ``form editor`` and
16 the ``form plugin`` respect those access rights. In this way, you are able
17 to implement ACLs. If you have configured more than one filemount and the
18 backend user is able to access those, the ``form manager`` will allow the
19 user to choose the preferred storage in which the form will be saved.
20
21 Even cooler, form definitions can be stored in and shipped with your custom
22 extensions. If configured accordingly, the backend user will be able to
23 embed those forms. Furthermore, you can configure that these form
24 definitions:
25
26 - can be edited within the ``form editor``,
27 - can be deleted with the help of the ``form manager``.
28
29 By default, the aforementioned options are turned off. We decided to do so
30 because having dynamic content within an extension - which is possibly
31 version-controlled - is usually not a good idea. Furthermore, there is no
32 ACL system available.
33
34 **File uploads** will be saved within filemounts as well. They are handled
35 as FAL objects. The available filemounts for such uploads can be configured.
36 When adding/ editing a file upload element, the backend user can select the
37 desired upload storage.
38
39 .. note::
40
41    In principle, files in filemounts are publicly accessible. If the
42    uploaded files could contain sensitive data, you should suppress any
43    HTTP access to the filemount. This may, for example, be achieved by
44    creating a .htaccess file, assuming you are using an Apache web server.
45    The directive of the .htaccess file is fairly easy:
46
47    .. code-block:: html
48
49       Order deny,allow
50       Deny from all
51
52 The following code block shows you how to configure additional filemounts
53 for form definitions.
54
55 .. code-block:: yaml
56
57    TYPO3:
58      CMS:
59        Form:
60          persistenceManager:
61            allowedFileMounts:
62              # default filemount, no need to redeclare it again
63              # just to show you the structure
64              # 10: 1:/form_definitions/
65              # additional filemounts
66              100: 1:/custom/forms/
67              110: 2:/cloudstorage/forms/
68
69 The following code block shows you how to allow an extension path as an
70 additional filemount for form definitions.
71
72 .. code-block:: yaml
73
74    TYPO3:
75      CMS:
76        Form:
77          persistenceManager:
78            allowedExtensionPaths:
79              10: EXT:my_site_package/Resources/Private/Forms/
80
81 Add the following config if you want to allow backend users to **edit**
82 forms stored within your own extension.
83
84 .. code-block:: yaml
85
86    TYPO3:
87      CMS:
88        Form:
89          persistenceManager:
90            allowSaveToExtensionPaths: true
91
92 Add the following config if you want to allow backend users to **delete**
93 forms stored within your own extension.
94
95 .. code-block:: yaml
96
97    TYPO3:
98      CMS:
99        Form:
100          persistenceManager:
101            allowDeleteFromExtensionPaths: true
102
103 The following code blocks show you the default setup for filemounts that
104 are used for file (and image) uploads.
105
106 .. code-block:: yaml
107
108    TYPO3:
109      CMS:
110        Form:
111          prototypes:
112            standard:
113              formElementsDefinition:
114                FileUpload:
115                  formEditor:
116                    predefinedDefaults:
117                      properties:
118                        saveToFileMount: '1:/user_upload/'
119                    editors:
120                      400:
121                        selectOptions:
122                          10:
123                            value: '1:/user_upload/'
124                            label: '1:/user_upload/'
125                  properties:
126                    saveToFileMount: '1:/user_upload/'
127                ImageUpload
128                  properties:
129                    saveToFileMount: '1:/user_upload/'
130                   editors:
131                      400:
132                        selectOptions:
133                          10:
134                            value: '1:/user_upload/'
135                            label: '1:/user_upload/'