# libraries

lib.tx_lod.plugin = CONTENT
lib.tx_lod.plugin {
    table = tt_content
    select {
        pidInList = this
        max = 1
        orderBy = sorting
        where = list_type LIKE ###list_type###
        markers {
            list_type.value = lod_%
        }
    }
    renderObj = CASE
    renderObj {
        key.field = list_type
        lod_api = USER
        lod_api {
            userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
            extensionName = Lod
            pluginName = Api
            vendorName = Digicademy
        }
        lod_vocabulary = USER
        lod_vocabulary {
            userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
            extensionName = Lod
            pluginName = Vocabulary
            vendorName = Digicademy
        }
    }
}

# general extension configuration

plugin.tx_lod {
    persistence {
        classes {
            Digicademy\Lod\Domain\Model\IriNamespace {
                mapping {
                    tableName = tx_lod_domain_model_namespace
                }
            }
            # mapping configuration of other classes for use in ItemMappingService
            Digicademy\Lod\Domain\Model\Iri {
                mapping {
                    tableName = tx_lod_domain_model_iri
                }
            }
            Digicademy\Lod\Domain\Model\Bnode {
                mapping {
                    tableName = tx_lod_domain_model_bnode
                }
            }
            Digicademy\Lod\Domain\Model\Literal {
                mapping {
                    tableName = tx_lod_domain_model_literal
                }
            }
            Digicademy\Lod\Domain\Model\Page {
                mapping {
                    tableName = pages
                }
            }
            Digicademy\Lod\Domain\Model\Category {
                mapping {
                    tableName = sys_category
                }
            }
        }
    }
}

plugin.tx_lod_api {
    settings {
        # apiPage =
        resolver {
            t3 {
            }
            http {
            }
            https < .http
        }
    }
}

# serialization specific configuration

<INCLUDE_TYPOSCRIPT: source="FILE:EXT:lod/Configuration/TypoScript/HTML/setup.txt">

<INCLUDE_TYPOSCRIPT: source="FILE:EXT:lod/Configuration/TypoScript/NT/setup.txt">

<INCLUDE_TYPOSCRIPT: source="FILE:EXT:lod/Configuration/TypoScript/JSONLD/setup.txt">

<INCLUDE_TYPOSCRIPT: source="FILE:EXT:lod/Configuration/TypoScript/RDFXML/setup.txt">

<INCLUDE_TYPOSCRIPT: source="FILE:EXT:lod/Configuration/TypoScript/TTL/setup.txt">

# configure serializer templates without pagetype condition in descending order (JSON-LD is default)

plugin.tx_lod_serializer {
    settings {
        # apiPage =
        recordToArgumentMapping {
            pages {
                argumentName = id
            }
        }
        format {
            default = jsonld
        }
        mode = embedded
    }
    view {
        layoutRootPaths {
            10 = EXT:lod/Resources/Private/NT/Layouts/
            20 = EXT:lod/Resources/Private/TTL/Layouts/
            30 = EXT:lod/Resources/Private/RDFXML/Layouts/
            40 = EXT:lod/Resources/Private/JSONLD/Layouts/
        }
        partialRootPaths {
            10 = EXT:lod/Resources/Private/NT/Partials/
            20 = EXT:lod/Resources/Private/TTL/Partials/
            30 = EXT:lod/Resources/Private/RDFXML/Partials/
            40 = EXT:lod/Resources/Private/JSONLD/Partials/
        }
        templateRootPaths {
            10 = EXT:lod/Resources/Private/NT/Templates/
            20 = EXT:lod/Resources/Private/TTL/Templates/
            30 = EXT:lod/Resources/Private/RDFXML/Templates/
            40 = EXT:lod/Resources/Private/JSONLD/Templates/
        }
    }
}
