blob: be9400d72eccf1c802a8fb14ecf834f6361c0019 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
Flat-File Forms
===
Forms and Submissions managed flat-file
Callable via REST-API
## Directory Structure
- config.yaml (main config)
- $contentFolder/
- config/
- $group/
- $pluginsFolder/
- $pluginName/
- Plugin.php
### config consists of
- config/
- config.yaml
- functions.php
### $group consists of
- $group/
- config/
- $form/
### $form consists of
- $form/
- config/
- entries/
- $year
- $month
- $day
- \$year\$month\$day_\$hour\$minute_\$hash.yaml
- fields/
- _fields.yaml
- email.yaml
- name.yaml
## config
adjust $contentFolder and $pluginsFolder path in main config.yaml
`config.yaml` with config values in $contentFolder/config/
overwritten by config.yaml in $group/config/
overwritten by config.yaml in $form/config/
`functions.php` with custom code in $contentFolder/config/
included if exists in subsequent config folders
## REST-API
`localhost:3000/$group/$group/$form`
`GET` `...$form/fields`
`GET` `...$form/entries?dateFrom=$date`
`POST` `...$form/validate`
`POST` `...$form/submit`
## Plugins
1. create `$pluginName` directory in $pluginsFolder
2. create `Plugin.php` with `FlatFileForms\Plugins\$pluginName` namespace and `Plugin` class
3. write code in `__construct` method
|