This commit is contained in:
2023-10-30 22:49:27 +02:00
parent 3ffcf19583
commit 0db409c780
6 changed files with 229 additions and 1 deletions
+5
View File
@@ -1,3 +1,8 @@
---
gitea: none
include_toc: true
---
# Lucent for Laravel # Lucent for Laravel
## Installation ## Installation
View File
+138
View File
@@ -0,0 +1,138 @@
---
gitea: none
include_toc: true
---
# Fields
Fields are similar to a table's columns in a relational databases.
## Available fields for Collections and Files
### text
One-line text input
required
- **name**: The id of the field
- **label**: The friendly name of the field
optional
- **required**: Is the field required to save the record
- **nullable**: Can the field be saved as null
- **min**: Minimum characters
- **max**: Maximum characters
- **help**: Help text
- **default**: Default value when creating new record
- **readonly**: Cannot edit this value from the UI
- **optionsFrom**: Schema to choose options from
- **optionsField**: Field's value to insert
- **optionsSuggest**: Allow to insert new values
- **selectOptions**: Array of options to select from. Or array of objects `[{value,label}]`
- **group**: The group that this field belongs to.
### textarea
textarea input
required
- **name**: The id of the field
- **label**: The friendly name of the field
optional
- **required**: Is the field required to save the record
- **nullable**: Can the field be saved as null
- **min**: Minimum characters
- **max**: Maximum characters
- **help**: Help text
- **default**: Default value when creating new record
- **readonly**: Cannot edit this value from the UI
- **group**: The group that this field belongs to.
### slug
Slug input. Generates automatically if left empty
required
- **name**: The id of the field
- **label**: The friendly name of the field
- **source**: The source field from which it generates
optional
- **required**: Is the field required to save the record
- **nullable**: Can the field be saved as null
- **min**: Minimum characters
- **max**: Maximum characters
- **help**: Help text
- **default**: Default value when creating new record
- **readonly**: Cannot edit this value from the UI
- **group**: The group that this field belongs to.
### rich
WYSIWYG editor
required
- **name**: The id of the field
- **label**: The friendly name of the field
optional
- **required**: Is the field required to save the record
- **nullable**: Can the field be saved as null
- **min**: Minimum characters
- **max**: Maximum characters
- **help**: Help text
- **default**: Default value when creating new record
- **readonly**: Cannot edit this value from the UI
- **group**: The group that this field belongs to.
### number
Any numeric value
required
- **name**: The id of the field
- **label**: The friendly name of the field
optional
- **decimals**: default is 0
- **required**: Is the field required to save the record
- **nullable**: Can the field be saved as null
- **min**: Minimum characters
- **max**: Maximum characters
- **help**: Help text
- **default**: Default value when creating new record
- **readonly**: Cannot edit this value from the UI
- **optionsFrom**: Schema to choose options from
- **optionsField**: Field's value to insert
- **optionsSuggest**: Allow to insert new values
- **group**: The group that this field belongs to.
### checkbox
Any numeric value
required
- **name**: The id of the field
- **label**: The friendly name of the field
optional
- **required**: Is the field required to save the record
- **nullable**: Can the field be saved as null
- **help**: Help text
- **default**: Default value when creating new record
- **readonly**: Cannot edit this value from the UI
- **group**: The group that this field belongs to.
### block
The block editor
## Available fields for the Block Editor
View File
+85
View File
@@ -0,0 +1,85 @@
# Schemas
Schemas define both the shape of your data and how the UI on the admin will behave.
There are 3 types of schemas
- Collections: Normal data
- Files: Images and files
- Block: Used in the block editor
## Collection Reference
- **name**: The ID of the collection. Camelcase and plural is the recommended format ex. blogPosts
- **label**: The friendly name of the schema
- **type**: The type of the collection. Should be "collection"
- **visible**: An array of field id to show on the content browser _optional_
- **groups**: A list if group ids to separate your field in different tabs _optional_
- **fields**: The list of your fields. Look the field reference for more
- **isEntry**: If this schema is important, it will show be visible on the main the sidebar. Default: false _optional_
- **sortBy**: The default sorting in the content browser _optional_
- **titleTemplate**: Mustache code to customize the preview field _optional_
- **revisions**: How many revisions are going to be kept for each record _optional_
- **read**: Array of user groups that have read permissions _optional_
- **write**: Array of user groups that have write permissions _optional_
## Files Reference
- **name**: The ID of the collection. Camelcase and plural is the recommended format ex. blogPosts
- **label**: The friendly name of the schema
- **type**: The type of the collection. Should be "files"
- **path**: The relative directory that these files will be stored.
- **groups**: A list if group ids to separate your field in different tabs _optional_
- **fields**: The list of your fields. Look the field reference for more
- **isEntry**: If this schema is important, it will show be visible on the main the sidebar _optional_
- **sortBy**: The default sorting in the content browser _optional_
- **titleTemplate**: Mustache code to customize the preview field _optional_
- **revisions**: How many revisions are going to be kept for each record _optional_
- **read**: Array of user groups that have read permissions _optional_
- **write**: Array of user groups that have write permissions _optional_
## Block Reference
- **name**: The ID of the collection. Camelcase and plural is the recommended format ex. blogPosts
- **label**: The friendly name of the schema
- **type**: The type of the collection. Should be "block"
- **fields**: The list of your fields. Look the field reference for more
A full Collection example without the fields:
```json
{
"label": "Departments",
"name": "departments",
"isEntry": true,
"type": "collection",
"visible": [
"slug",
"cover",
"_sys.updatedAt",
"status"
],
"groups": [
"Extra Info",
"Metadata",
"SEO"
],
"sortBy": "-_sys.createdAt",
"titleTemplate": "{{name}} {{slug}}",
"revisions": 15,
"read": [
"admin",
"editors",
"reviewers"
],
"write": [
"admin",
"editors"
],
"fields": []
}
```
+1 -1
View File
@@ -4,7 +4,7 @@ namespace Lucent\Schema;
use Lucent\Primitive\Collection; use Lucent\Primitive\Collection;
class BlockSchema implements Schema class BlockSchema implements Schemafilesc
{ {
public Type $type = Type::BLOCK; public Type $type = Type::BLOCK;