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:

EXT:my_extension/Configuration/TypoScript/setup.typoscript
page = PAGE
page.10 = SCHEMA
page.10 {
   type = WebSite
   properties {
      name.field = seo_title // title
      description.field = description
   }
}
Copied!

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.

Top-level properties

The cObject SCHEMA provides the following top-level properties:

type

type
Data type
string / stdWrap

Defines the schema type to use, see: List of available types.

Example:

EXT:my_extension/Configuration/TypoScript/setup.typoscript
page.10 = SCHEMA
page.10.type = WebSite
Copied!

id

id
Data type
string / stdWrap

The ID added as @id to the type, if defined.

Example:

EXT:my_extension/Configuration/TypoScript/setup.typoscript
page.10 = SCHEMA
page.10.type = WebSite
page.10.id {
   typolink {
      parameter = t3://page?uid={site : rootPageId}
      parameter.insertData = 1
      forceAbsoluteUrl = 1
      returnLast = url
   }
}
Copied!

properties

properties
Data type
array

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:

EXT:my_extension/Configuration/TypoScript/setup.typoscript
page.10 = SCHEMA
page.10.type = WebSite
page.10.properties {
   name.field = seo_title // title
   description.field = description
}
Copied!

A property can be a SCHEMA again, which will result in nested structures.

Example:

EXT:my_extension/Configuration/TypoScript/setup.typoscript
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
         }
      }
   }
}
Copied!

Multiple values can also be assigned to one property using numeric keys.

Example:

EXT:my_extension/Configuration/TypoScript/setup.typoscript
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
         }
      }
   }
}
Copied!

if

if
Data type
if

Prevents processing of the whole cObject if it evaluates to false.

Example:

EXT:my_extension/Configuration/TypoScript/setup.typoscript
page.10 = SCHEMA
page.10 {
   if {
      equals.data = site : rootPageId
      value.field = uid
   }
   type = WebSite
}
Copied!