Collection Schema

A collection schema is a JSON array of objects, where each object defines a property of that collection. For example, the schema of a simple blog post with a title and content might look like this:

[
    {
        "name": "title",
        "label": "title",
        "casts": "string",
        "controltype": "text",
        "required": true,
        "value": ""
    },
    {
        "name": "content",
        "label": "Content",
        "casts": "string",
        "controltype": "htmleditor",
        "validation": "min:10",
        "value": ""
    } 
]

 

Defining Collection Properties

The following attributes can be used to define a collection property:

name required - the field name
label optional - default is nicely formated version of the field name
casts optional - default is string
controltype optional - default is text input
validation validation rules for this input
required whether or not a value is required (default is false)
value the default value

Some controls types have additional properties. For example, the asset_selector will accept a "type" attribute, and the radio_stack needs an "options" attribute which is an array of options (values).

 

Control Types

The following control types are available:

Control Type Additional Param Description
asset_collection type widget for selecting and managing a list of one or more assets
asset_selector type widget for selecting an asset. If the type parameter is specified, then only assets of that type can be picked
category_select -- widget for selecting a category
datetime -- date and time picker
default -- default (text)
html -- html code
htmleditor -- wysiwyg html editor
image -- image picker
image_collection -- select one or more images
instructions -- text to be displayed as instructional text
markdown -- markdown editor
number -- number input
page_select -- select a page
page_selector -- select one or more pages
post_collection -- select one or more posts 
post_selector -- select a post
radiostack options (arr) stack of radio buttons
raw_html -- textarea 
rect-list -- --
richtext -- alias of richtexteditor
richtexteditor -- simplified html editor for writing priose 
select-template -- select a template
select options select / dropdown
text -- simple text input
textarea -- simple textarea
thumbnail -- thumbnail picker
video -- --
yesno -- --