page.90 = SCHEMA
page.90 {
    #add schema only for pages with type "article"
    if.equals.field = doktype
    if.value = 12

    type.field = tx_schema_webpagetype

    properties {
        mainEntityOfPage = SCHEMA
        mainEntityOfPage {
            type = WebPage
            id.data = getIndpEnv : TYPO3_REQUEST_URL
        }

        headline.field = seo_title // title

        image = SCHEMA
        image {
            type = ImageObject
            properties {
                #take image URL from page properties > ressources > media
                url.cObject = FILES
                url.cObject {
                    references {
                        table = pages
                        uid.data = uid
                        fieldName = media
                    }
                    maxItems = 1
                    renderObj = TEXT
                    renderObj {
                        data = file:current:publicUrl
                    }
                }
            }
        }

        #authors are special pages, linked via the "tx_ratgeber2_author_pid" field
        author = SCHEMA
        author {
            type = Person
            properties {
                name.cObject = RECORDS
                name.cObject {
                    source.data = page:tx_ratgeber2_author_pid
                    tables = pages
                    conf.pages = TEXT
                    conf.pages.stdWrap.field = title
                }

                url.typolink {
                    parameter.field = tx_ratgeber2_author_pid
                    forceAbsoluteUrl = 1
                    returnLast = url
                }
            }
        }

        publisher = SCHEMA
        publisher {
            type = Organization
            properties {
                name = ACME Corp

                logo = SCHEMA
                logo {
                    type = ImageObject
                    properties {
                        url = https://example.org/acme.svg
                    }
                }
            }
        }

        datePublished {
            data = field:tx_ratgeber2_publication_date // field:crdate
            date = c
        }

        dateModified {
            data = field:lastUpdated // field:tx_ratgeber2_publication_date // field:crdate
            date = c
        }
    }
}