These docs are for v3.2. Click to read the latest docs for v5.0.

Manifest

manifest.json

Manifest.json is where you specify some behavior of the template.
It is only required for multi items templates.

{
    "editWitoutPostback": true,
    "editRole": "OpenContentEditor",
    "index":  true, /* required for search */,
    "detailMetaTitle": "{{#if Seo.MetaTitle}}{{Seo.MetaTitle}}{{else}}{{Title}}{{/if}}",
    "detailMetaDescription": "{{#if Seo.MetaDescription}}{{Seo.MetaDescription}}{{else}}{{Description}}{{/if}}",
    "detailUrl": "{{Category.Title}}-{{#if Seo.Slug}}{{Seo.Slug}}{{else}}{{Title}}{{/if}}",
    "detailMeta": "{{#if Image}}<meta property=\"og:image\" content=\"{{Image}}\" />{{/if}}<meta property=\"og:type\" content=\"article\" />",
    "templates": {
        "template": {
            "type": "multiple", /* single or multiple*/
            "title": "List",     
            "clientSide": true,
            "main": {
                "template": "template.hbs",
                "partialTemplates": {
                    "item": {
                        "template": "item.hbs"
                    }
                },
                "schemaInTemplate": true,
                "optionsInTemplate": true
            },
            "detail": {
                "template": "detail.hbs",
                "partialTemplates": {
                    "item": {
                        "template": "item.hbs",
                        "clientside" :  true
                    }
                },
                "schemaInTemplate": true,
                "optionsInTemplate": true
            }
        },
        "categories": {
            "type": "multiple", /* single or multiple*/
            "title": "Categories",
            "main": {
                "template": "categories.hbs",
                "schemaInTemplate": true,
                "optionsInTemplate": true,
               	"dataInTemplate": false,
                "additionalDataInTemplate": true
            }           
        }
    },
   },
   "additionalData": {
        "Intro": {
            "title": "Introduction",
            "scope": "tabmodule" /* tabmodule, module, tab, portal */                    
        },
        "Categories": {
            "title": "Categories"          
        },
        "Tags": {
            "title": "Tags"
        },
        "Customers": {
            "title": "Customers",
            "dataModuleId": 123,
            "dataTabId": 456
        }
    },
   "dataSource": "TrelloOpenContentDataProvider",
   "dataSourceConfig": {
       "username":"JohnDoe",
       "password":"Mdd*951;"
   }
}

Manifest

NameDefault ValueRemark
editWitoutPostbackfalsein edit mode wrap the view control in an updatepanel to avoid full page postback
editRolewhen specified, users with the editRole can add records and edit records created by them. (only applicable for multi items templates)
indexfalseContent is indexed with Lucene for search, filtering & sorting.
(new in v2.1)

See also Search, Filter and Sort
detailMetaTitlehandlebars template
detailMetaDescriptionhandlebars template
detailUrlhandlebars template
detailMetahandlebars template
templatessee Templatelist of templates included in the template folder
additionalDatasee additionalData
dataSourceOpenContentProvidera string with the name of an OpenContent DataSourceProvider.
See also External Datasources
optional
dataSourceConfigany valid json that will be given to the datasource provider via the DataSourceContext parameters in the interface calls.
See also External Datasources
optional

Template

NameDefault valueRemark
typesingle or multiple
titletext listed in the templates dropdown lists
clientSideDatafalsethe content is served through webapi only (not available in the server side template)
(new in v2.1)

See also Search, Filter and Sort
mainsee Template Filelist template
detailsee Template Filedetail template

Template File

NameDefault ValueRemark
templatefile name of the template file (.hbs or .cshtml)
partialTemplatesonly for handlebars server side templates. Load additional partial template files. Also for client side templates.
schemaInTemplatefalseMake the schema.json available as a variable schema (Model.Schema for razor) in template files
optionsInTemplatefalseMake the options.json available as a variable Options (Model.Options for razor) in template files
dataInTemplatetrueMake the data available in the tamplate
additionalDataInTemplatefalseMake the additional data available in the tamplate
labelsInTemplatefalseTransform enum fields value to object with "value" (stored data from schema.json) and "label" (rendered value from options.json)
dnnsearchfalseIndicating whether integrate module content in DNN search

Partial Templates

NameDefault valueRemark
templatefile name of the partial template file
clientSidefalseFile is rendered as i at the end of the module content. For example a handlebars client side template in a script tag. (new in v2.1)

Additional Data

NameDefault valueRemarkExample
titleText shown in module actions menu
scopemoduletabmodule, module, tab, portal
not applicable if dataModuleId is supplied.
storageKey
modelKeydepreciated
dataModuleId
dataTabId
If you want to relate to the (main) data of another module, then specify its ModuleId and TabId

See also Relations
"Customers": {
"title": "Customers",
"dataModuleId": 123,
"dataTabId": 456
}