DEV CommiDEV Committ
This commit is contained in:
1 parent
4541c58fe7
commit
c6759186cb
145 files changed
+2742
-579
No files matched your search
+19
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Evomedien\Vitec\Controller\Backend\StructuredDataController;
|
||||
|
||||
/**
|
||||
* Backend AJAX routes for the VITEC extension.
|
||||
*
|
||||
* vitec_structureddata_generate — generate schema.org JSON-LD for a product;
|
||||
* called by the FormEngine "Structured Data generieren" button. The URL is
|
||||
* available to JS via TYPO3.settings.ajaxUrls['vitec_structureddata_generate'].
|
||||
*/
|
||||
return [
|
||||
'vitec_structureddata_generate' => [
|
||||
'path' => '/vitec/structureddata/generate',
|
||||
'target' => StructuredDataController::class . '::generate',
|
||||
],
|
||||
];
|
||||
Regular → Executable
+20
-32
@@ -45,38 +45,26 @@
|
||||
</config>
|
||||
</settings.download>
|
||||
<settings.layout>
|
||||
<label>Layout</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>
|
||||
Default Product List
|
||||
</label>
|
||||
<value>0</value>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<label>
|
||||
Variation 1 Product List
|
||||
</label>
|
||||
<value>1</value>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<label>
|
||||
Variation 2 Product List
|
||||
</label>
|
||||
<value>2</value>
|
||||
</numIndex>
|
||||
<numIndex index="3">
|
||||
<label>
|
||||
Variation 3 Product List
|
||||
</label>
|
||||
<value>3</value>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</settings.layout>
|
||||
<label>Layout</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>Datasheet Layout</label>
|
||||
<value>datasheet</value>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<label>Brochure Layout</label>
|
||||
<value>brochure</value>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<label>Neutral Layout</label>
|
||||
<value>neutral</value>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</settings.layout>
|
||||
<settings.magstyle>
|
||||
<label>Magazine Style layout</label>
|
||||
<config>
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Importmap registration for VITEC backend JavaScript (ES modules).
|
||||
* Maps the bare specifier prefix "@evomedien/vitec/" to the extension's
|
||||
* public JavaScript directory, so modules can be loaded via
|
||||
* JavaScriptModuleInstruction::create('@evomedien/vitec/<file>.js').
|
||||
*/
|
||||
return [
|
||||
'dependencies' => ['backend', 'core'],
|
||||
'imports' => [
|
||||
'@evomedien/vitec/' => 'EXT:vitec/Resources/Public/Javascript/',
|
||||
],
|
||||
];
|
||||
@@ -42,3 +42,86 @@ settings:
|
||||
category: menu
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Structured data / schema.org (consumed by StructuredDataService)
|
||||
# ---------------------------------------------------------------------------
|
||||
seo.site.canonicalBase:
|
||||
label: 'Canonical base URL'
|
||||
description: 'Absolute public base URL of the live site WITHOUT trailing slash, e.g. https://www.vitec.com. Used to build absolute URLs in JSON-LD. Falls back to the request host if empty.'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.site.name:
|
||||
label: 'Website name (schema.org WebSite)'
|
||||
description: 'Display name for the schema.org WebSite node on the home page. Falls back to the organization name if empty.'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.organization.name:
|
||||
label: 'Organization name'
|
||||
description: 'Public organization name for schema.org/Organization. Leave empty to disable Organization output entirely.'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.organization.legalName:
|
||||
label: 'Organization legal name'
|
||||
description: 'Full legal entity name, e.g. "VITEC GmbH".'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.organization.logoUrl:
|
||||
label: 'Organization logo URL'
|
||||
description: 'URL of the organization logo (absolute, or root-relative — will be made absolute). Recommended for Google.'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.organization.sameAs:
|
||||
label: 'Social / sameAs URLs'
|
||||
description: 'Comma- or newline-separated list of official profile URLs (LinkedIn, YouTube, X, …) for schema.org sameAs.'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.organization.email:
|
||||
label: 'Contact email'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.organization.phone:
|
||||
label: 'Contact phone'
|
||||
description: 'International format, e.g. +49 89 1234567.'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.organization.street:
|
||||
label: 'Address — street'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.organization.postalCode:
|
||||
label: 'Address — postal code'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.organization.locality:
|
||||
label: 'Address — city'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
seo.organization.country:
|
||||
label: 'Address — country (ISO 3166-1 alpha-2)'
|
||||
description: 'Two-letter country code, e.g. DE.'
|
||||
category: seo
|
||||
type: string
|
||||
default: ''
|
||||
@@ -134,3 +134,13 @@ tt_content {
|
||||
|
||||
# Include menu (navigation) JSON definitions
|
||||
@import 'EXT:vitec/Configuration/TypoScript/Headless/vitec_menus.typoscript'
|
||||
|
||||
# =============================================================================
|
||||
# Page-level structured data (schema.org JSON-LD @graph)
|
||||
#
|
||||
# Organization + WebSite + BreadcrumbList + NewsArticle, auto-generated server
|
||||
# side from page/site data. The headless frontend wraps the returned string in
|
||||
# <script type="application/ld+json"> inside the page <head>.
|
||||
# =============================================================================
|
||||
page.10.fields.jsonLd = USER
|
||||
page.10.fields.jsonLd.userFunc = Evomedien\Vitec\UserFunc\PageJsonLdRenderer->render
|
||||
@@ -29,7 +29,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
]
|
||||
))
|
||||
->setIcon('EXT:vitec/Resources/Public/Icons/vitec-cols-25-25-25-25.svg')
|
||||
->setGroup('vitec')
|
||||
->setGroup('vitec_custom_components')
|
||||
->setSaveAndCloseInNewContentElementWizard(true)
|
||||
);
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
]
|
||||
))
|
||||
->setIcon('EXT:vitec/Resources/Public/Icons/vitec-cols-33-33-33.svg')
|
||||
->setGroup('vitec')
|
||||
->setGroup('vitec_custom_components')
|
||||
->setSaveAndCloseInNewContentElementWizard(true)
|
||||
);
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
]
|
||||
))
|
||||
->setIcon('EXT:vitec/Resources/Public/Icons/vitec-cols-33-66.svg')
|
||||
->setGroup('vitec')
|
||||
->setGroup('vitec_custom_components')
|
||||
->setSaveAndCloseInNewContentElementWizard(true)
|
||||
);
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
]
|
||||
))
|
||||
->setIcon('EXT:vitec/Resources/Public/Icons/vitec-cols-50-50.svg')
|
||||
->setGroup('vitec')
|
||||
->setGroup('vitec_custom_components')
|
||||
->setSaveAndCloseInNewContentElementWizard(true)
|
||||
);
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
]
|
||||
))
|
||||
->setIcon('EXT:vitec/Resources/Public/Icons/vitec-cols-66-33.svg')
|
||||
->setGroup('vitec')
|
||||
->setGroup('vitec_custom_components')
|
||||
->setSaveAndCloseInNewContentElementWizard(true)
|
||||
);
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
]
|
||||
))
|
||||
->setIcon('EXT:vitec/Resources/Public/Icons/vitec-container.svg')
|
||||
->setGroup('vitec')
|
||||
->setGroup('vitec_custom_components')
|
||||
->setSaveAndCloseInNewContentElementWizard(true)
|
||||
);
|
||||
|
||||
|
||||
@@ -192,9 +192,14 @@ return [
|
||||
'type' => 'text',
|
||||
'cols' => 40,
|
||||
'rows' => 15,
|
||||
'eval' => 'trim'
|
||||
'eval' => 'trim',
|
||||
'fieldWizard' => [
|
||||
'structuredDataGenerator' => [
|
||||
'renderType' => 'structuredDataGenerator',
|
||||
],
|
||||
],
|
||||
]
|
||||
],
|
||||
],
|
||||
'keywords' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Keywords',
|
||||
|
||||
Regular → Executable
+7
-1
@@ -91,6 +91,10 @@ mod {
|
||||
|
||||
}
|
||||
}
|
||||
wizards.newContentElement.wizardItems.vitec_custom_components {
|
||||
header = Custom Components
|
||||
show = *
|
||||
}
|
||||
}
|
||||
|
||||
############################################################
|
||||
@@ -99,10 +103,12 @@ mod {
|
||||
|
||||
mod.web_layout.tt_content.preview {
|
||||
simplecard = EXT:vitec/Resources/Private/Templates/Simplecard/Backendpreview.html
|
||||
vitec_downloadcard = EXT:vitec/Resources/Private/Templates/Downloadcard/Backendpreview.html
|
||||
vitec_downloadcardcollection = EXT:vitec/Resources/Private/Templates/Downloadcardcollection/Backendpreview.html
|
||||
# vitec_usecaseshow = EXT:vitec/Resources/Private/Templates/Usecaseshow/Backendpreview.html
|
||||
# ^ Pfad anpassen wenn das Template existiert, dann Kommentar entfernen
|
||||
}
|
||||
|
||||
# Hinweis: Content-Blocks-Previews werden automatisch aus
|
||||
# packages/vitec/ContentBlocks/ContentElements/<n>/templates/backend-preview.html geladen.
|
||||
# Keine separate Registrierung nötig.
|
||||
# Keine separate Registrierung nötig.
|
||||
Reference in new issue
Block a user