summaryrefslogtreecommitdiff
path: root/Readme.md
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