TypoScript¶
Target group: Integrators
Content Object (cObject) SCHEMA
¶
The extension provides the cObject SCHEMA
. The cObject itself will not
display anything. Instead it will add configured types to the global schema
output.
A small example:
page = PAGE
page.10 = SCHEMA
page.10 {
type = WebSite
properties {
name.field = seo_title // title
description.field = description
}
}
That will add an element of type WebSite
to schema. It will consist of the
property name
as well as description
.
The name
property will be filled from the seo_title
field, falling back to
the title
field.
Note
Using the SCHEMA
cObject in an array-like structure is not possible
by now, like the following example:
{
"@context": "https://schema.org/",
"@type": "Event",
"offers": [{
"@type": "Offer",
"name": "Ticket 1",
"price": "80",
"priceCurrency": "EUR"
}, {
"@type": "Offer",
"name": "Ticket 2",
"price": "120",
"priceCurrency": "EUR"
}]
}
For example, a USER cObject and the PHP API can be used instead.
Top Level Properties¶
The cObject SCHEMA
provides the following top level properties:
Property
type
Data type
string / stdWrap
Description
Defines the schema type to use, see: List of available types.
Example:
page.10 = SCHEMA
page.10.type = WebSite
Property
id
Data type
string / stdWrap
Description
The ID added as @id
to the type, if defined.
Example:
page.10 = SCHEMA
page.10.type = WebSite
page.10.id {
typolink {
parameter = t3://page?uid={site : rootPageId}
parameter.insertData = 1
forceAbsoluteUrl = 1
returnLast = url
}
}
Property
properties
Data type
array
Description
The key will be used as property name. The value can be a static text, an array, a content object, a stdWrap property or an if condition.
Example:
page.10 = SCHEMA
page.10.type = WebSite
page.10.properties {
name.field = seo_title // title
description.field = description
}
A property can be a SCHEMA
again, which will result in nested structures.
Example:
page.10 = SCHEMA
page.10.type = WebSite
page.10.properties {
publisher = SCHEMA
publisher {
id {
typolink {
parameter = t3://page?uid={site : rootPageId}#organization
parameter.insertData = 1
forceAbsoluteUrl = 1
returnLast = url
}
}
}
}
Multiple values can also be assigned to one property using numeric keys.
Example:
page.10 = SCHEMA
page.10 {
type = Organization
properties {
name = My Company
sameAs {
10 = https://example.org/
20.typolink {
parameter = t3://page?uid=42
forceAbsoluteUrl = 1
returnLast = url
}
}
}
}
Property
if
Data type
Description
Prevents processing of the whole cObject if it evaluates to false
.
Example:
page.10 = SCHEMA
page.10 {
if {
equals.data = site : rootPageId
value.field = uid
}
type = WebSite
}