Initial Commit

This commit is contained in:
khaccount committed 2026-05-18 14:46:25 +02:00
1 parent 4f495177e4
commit b6d2142214
166 files changed
+13952 -178

No files matched your search

@@ -0,0 +1,89 @@
# =============================================================================
# VITEC container content elements — self-contained JSON rendering
# Children collected via Evomedien\Vitec\DataProcessing\ContainerChildrenProcessor
# (exception-safe; returns [] on any error, never crashes the outer CE).
# =============================================================================
tt_content.vitec_cols_50_50 = JSON
tt_content.vitec_cols_50_50 {
fields {
id = INT
id.field = uid
type = TEXT
type.field = CType
colPos = INT
colPos.field = colPos
categories = COA
categories {
10 = CONTENT
10 {
table = sys_category
select {
pidInList = root
selectFields = sys_category.title
join = sys_category_record_mm on sys_category_record_mm.uid_local = sys_category.uid
where {
field = uid
wrap = AND sys_category_record_mm.tablenames = 'tt_content' AND sys_category_record_mm.uid_foreign=|
}
}
renderObj = TEXT
renderObj {
field = title
wrap = |###BREAK###
}
}
stdWrap.split {
token = ###BREAK###
cObjNum = 1 |*|2|*| 3
1 {
current = 1
stdWrap.wrap = |
}
2 {
current = 1
stdWrap.wrap = ,|
}
3 {
current = 1
stdWrap.wrap = |
}
}
}
appearance = JSON
appearance {
fields {
layout = TEXT
layout.field = layout
frameClass = TEXT
frameClass.field = frame_class
spaceBefore = TEXT
spaceBefore.field = space_before_class
spaceAfter = TEXT
spaceAfter.field = space_after_class
}
}
header = TEXT
header.field = header
subheader = TEXT
subheader.field = subheader
tx_vitec_bg_variant = TEXT
tx_vitec_bg_variant.field = tx_vitec_bg_variant
items = JSON
items {
dataProcessing {
10 = Evomedien\Vitec\DataProcessing\ContainerChildrenProcessor
10.as = items
}
}
}
}
tt_content.vitec_cols_33_33_33 =< tt_content.vitec_cols_50_50
tt_content.vitec_cols_25_25_25_25 =< tt_content.vitec_cols_50_50
tt_content.vitec_cols_66_33 =< tt_content.vitec_cols_50_50
tt_content.vitec_cols_33_66 =< tt_content.vitec_cols_50_50
@@ -0,0 +1,74 @@
# =============================================================================
# VITEC menus — Headless / JSON output
#
# Three menus are exposed at the page root of the JSON response:
# - mainNavigation : full hierarchy from root, all visible pages
# - footerMenu : curated, configured via site setting menu.footer.pageUids
# - metaMenu : curated, configured via site setting menu.meta.pageUids
#
# Each menu uses friendsoftypo3/headless MenuProcessor which:
# * resolves Shortcut pages to their target
# * skips pages with "Show in menu = no" (nav_hide=1) by default
# * marks active / current items
# * exposes `children` for sub-levels
# =============================================================================
# -----------------------------------------------------------------------------
# Main navigation — full hierarchy
# -----------------------------------------------------------------------------
lib.mainNavigation = JSON
lib.mainNavigation {
dataProcessing {
10 = FriendsOfTYPO3\Headless\DataProcessing\MenuProcessor
10 {
levels = 10
expandAll = 1
includeSpacer = 0
titleField = nav_title // title
as = mainNavigation
}
}
}
# -----------------------------------------------------------------------------
# Footer menu — curated by site setting (UIDs)
# -----------------------------------------------------------------------------
lib.footerMenu = JSON
lib.footerMenu {
dataProcessing {
10 = FriendsOfTYPO3\Headless\DataProcessing\MenuProcessor
10 {
special = list
special.value = {$menu.footer.pageUids}
levels = 1
includeSpacer = 0
titleField = nav_title // title
as = footerMenu
}
}
}
# -----------------------------------------------------------------------------
# Meta menu — curated by site setting (UIDs)
# -----------------------------------------------------------------------------
lib.metaMenu = JSON
lib.metaMenu {
dataProcessing {
10 = FriendsOfTYPO3\Headless\DataProcessing\MenuProcessor
10 {
special = list
special.value = {$menu.meta.pageUids}
levels = 1
includeSpacer = 0
titleField = nav_title // title
as = metaMenu
}
}
}
# -----------------------------------------------------------------------------
# Wire them into the page-level JSON output
# -----------------------------------------------------------------------------
page.10.fields.mainNavigation =< lib.mainNavigation
page.10.fields.footerMenu =< lib.footerMenu
page.10.fields.metaMenu =< lib.metaMenu
@@ -0,0 +1,3 @@
# Test if we can add any field at all
tt_content.list.fields.content.fields.testField = TEXT
tt_content.list.fields.content.fields.testField.value = TEST VALUE FROM VITEC
@@ -0,0 +1 @@
plugin.tx_vitec.settings.layout = 0
@@ -0,0 +1,74 @@
plugin.tx_vitec_usecaseshow {
view {
templateRootPaths.0 = EXT:vitec/Resources/Private/Templates/
partialRootPaths.0 = EXT:vitec/Resources/Private/Partials/
layoutRootPaths.0 = EXT:vitec/Resources/Private/Layouts/
}
persistence {
storagePid = 50
}
}
plugin.tx_vitec_marketshow {
view {
templateRootPaths.0 = EXT:vitec/Resources/Private/Templates/
partialRootPaths.0 = EXT:vitec/Resources/Private/Partials/
layoutRootPaths.0 = EXT:vitec/Resources/Private/Layouts/
}
persistence {
storagePid = 50
}
}
plugin.tx_vitec_solutionshow {
view {
templateRootPaths.0 = EXT:vitec/Resources/Private/Templates/
partialRootPaths.0 = EXT:vitec/Resources/Private/Partials/
layoutRootPaths.0 = EXT:vitec/Resources/Private/Layouts/
}
persistence {
storagePid = 50
}
}
plugin.tx_vitec_usecaselist {
view {
templateRootPaths.0 = EXT:vitec/Resources/Private/Templates/
partialRootPaths.0 = EXT:vitec/Resources/Private/Partials/
layoutRootPaths.0 = EXT:vitec/Resources/Private/Layouts/
}
persistence {
storagePid = 50
}
}
plugin.tx_vitec_Prodcutlist {
settings {
# Map FlexForm settings to the controller
layout = {$plugin.tx_vitec.settings.layout}
}
}
plugin.tx_vitec_Prodcutlist {
settings {
categories = 1,2,3
}
}
config.tx_extbase {
persistence {
classes {
TYPO3\CMS\Extbase\Domain\Model\Category {
subclass = Evomedien\Vitec\Domain\Model\Category
}
Evomedien\Vitec\Domain\Model\Category {
mapping {
tableName = sys_category
recordType = 0
}
}
}
}
}
# Include Headless configurations
@import 'EXT:vitec/Configuration/TypoScript/Headless/*.typoscript'