itzbund / gsb-core
GSB Core. This is Part of the Goverment Site Build (GSB) 11. Der GSB 11 ist eine Maßnahme der Dienstekonsolidierung Bund (DKB) des Bundesministeriums des Innern und für Heimat (BMI) und wird im Auftrag des Informationstechnikzentrums Bund (ITZBund) durchgeführt.
Requires
- php: ^8.1
- b13/container: ^3.0
- b13/permission-sets: ^0.1
- ichhabrecht/content-defender: 3.5.1
- pixelant/interest: ^2.1.2
- symfony/serializer-pack: ^1.3
- typo3/cms-adminpanel: ^12.4
- typo3/cms-backend: ^12.4
- typo3/cms-belog: ^12.4
- typo3/cms-beuser: ^12.4
- typo3/cms-core: ^12.4
- typo3/cms-dashboard: ^12.4
- typo3/cms-extbase: ^12.4
- typo3/cms-extensionmanager: ^12.4
- typo3/cms-filelist: ^12.4
- typo3/cms-filemetadata: ^12.4
- typo3/cms-fluid: ^12.4
- typo3/cms-fluid-styled-content: ^12.4
- typo3/cms-form: ^12.4
- typo3/cms-frontend: ^12.4
- typo3/cms-impexp: ^12.4
- typo3/cms-info: ^12.4
- typo3/cms-install: ^12.4
- typo3/cms-linkvalidator: ^12.4
- typo3/cms-lowlevel: ^12.4
- typo3/cms-opendocs: ^12.4
- typo3/cms-recycler: ^12.4
- typo3/cms-redirects: ^12.4
- typo3/cms-reports: ^12.4
- typo3/cms-rte-ckeditor: ^12.4
- typo3/cms-scheduler: ^12.4
- typo3/cms-seo: ^12.4
- typo3/cms-setup: ^12.4
- typo3/cms-sys-note: ^12.4
- typo3/cms-t3editor: ^12.4
- typo3/cms-tstemplate: ^12.4
- typo3/cms-viewpage: ^12.4
- typo3/cms-workspaces: ^12.4
Requires (Dev)
- captainhook/captainhook-phar: ^5.21
- codeception/codeception: *
- codeception/module-asserts: *
- codeception/module-db: *
- doctrine/dbal: ^3.3
- ergebnis/composer-normalize: ^2.28
- friendsofphp/php-cs-fixer: ^3.14
- helmich/typo3-typoscript-lint: 3.1.0 || 3.2.0 || 3.2.1
- itzbund/captainhook-hooks: ^1.0
- michielroos/typo3scan: ^1.7
- mockery/mockery: ^1.6
- php-coveralls/php-coveralls: ^2.5
- phpmd/phpmd: ^2.13
- phpstan/extension-installer: ^1.2
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/phpunit: ^10.0
- ramsey/conventional-commits: ^1.5
- saschaegerer/phpstan-typo3: ^1.8
- sbuerk/typo3-cmscomposerinstallers-testingframework-bridge: ^0.1.2
- seld/jsonlint: ^1.9
- squizlabs/php_codesniffer: ^3.7
- ssch/typo3-rector: ^1.1
- symfony/yaml: ^6.1
- typo3/coding-standards: ^0.8
- typo3/testing-framework: ^8.1
Suggests
Conflicts
- typo3/cms-core: 12.4.17 || 12.4.18
- v3.2.0-rc.12
- v3.2.0-rc.11
- v3.2.0-rc.10
- v3.2.0-rc.9
- v3.2.0-rc.8
- v3.2.0-rc.7
- v3.2.0-rc.6
- v3.2.0-rc.5
- v3.2.0-rc.4
- v3.2.0-rc.3
- v3.2.0-rc.2
- v3.2.0-rc.1
- v3.1.1
- v3.1.1-rc.1
- v3.1.0
- v3.1.0-rc.16
- v3.1.0-rc.15
- v3.1.0-rc.14
- v3.1.0-rc.13
- v3.1.0-rc.12
- v3.1.0-rc.11
- v3.1.0-rc.10
- v3.1.0-rc.9
- v3.1.0-rc.8
- v3.1.0-rc.7
- v3.1.0-rc.6
- v3.1.0-rc.5
- v3.1.0-rc.4
- v3.1.0-rc.3
- v3.1.0-rc.2
- v3.1.0-rc.1
- v3.0.0
- v3.0.0-rc.1
- dev-main / 2.x-dev
- v2.11.1-rc.1
- v2.11.0
- v2.11.0-rc.2
- v2.11.0-rc.1
- v2.10.1-rc.3
- v2.10.1-rc.2
- v2.10.1-rc.1
- v2.10.0
- v2.10.0-rc.7
- v2.10.0-rc.6
- v2.10.0-rc.5
- v2.10.0-rc.4
- v2.10.0-rc.3
- v2.10.0-rc.2
- v2.10.0-rc.1
- v2.9.1
- v2.9.1-rc.1
- v2.9.0
- v2.9.0-rc.2
- v2.9.0-rc.1
- v2.8.2-rc.3
- v2.8.2-rc.2
- v2.8.2-rc.1
- v2.8.1
- v2.8.1-rc.2
- v2.8.1-rc.1
- v2.8.0
- v2.8.0-rc.6
- v2.8.0-rc.5
- v2.8.0-rc.4
- v2.8.0-rc.3
- v2.8.0-rc.2
- v2.8.0-rc.1
- v2.7.0
- v2.7.0-rc.11
- v2.7.0-rc.10
- v2.7.0-rc.9
- v2.7.0-rc.8
- v2.7.0-rc.7
- v2.7.0-rc.6
- v2.7.0-rc.5
- v2.7.0-rc.4
- v2.7.0-rc.3
- v2.7.0-rc.2
- v2.7.0-rc.1
- v2.6.0
- v2.6.0-rc.17
- v2.6.0-rc.16
- v2.6.0-rc.15
- v2.6.0-rc.14
- v2.6.0-rc.13
- v2.6.0-rc.12
- v2.6.0-rc.11
- v2.6.0-rc.10
- v2.6.0-rc.9
- v2.6.0-rc.8
- v2.6.0-rc.7
- v2.6.0-rc.6
- v2.6.0-rc.5
- v2.6.0-rc.4
- v2.6.0-rc.3
- v2.6.0-rc.2
- v2.6.0-rc.1
- v2.5.0
- v2.5.0-rc.8
- v2.5.0-rc.7
- v2.5.0-rc.6
- v2.5.0-rc.5
- v2.5.0-rc.4
- v2.5.0-rc.3
- v2.5.0-rc.2
- v2.5.0-rc.1
- v2.4.1
- v2.4.1-rc.1
- v2.4.0
- v2.4.0-rc.9
- v2.4.0-rc.8
- v2.4.0-rc.7
- v2.4.0-rc.6
- v2.4.0-rc.5
- v2.4.0-rc.4
- v2.4.0-rc.3
- v2.4.0-rc.2
- v2.4.0-rc.1
- v2.3.1-rc.3
- v2.3.1-rc.2
- v2.3.1-rc.1
- v2.3.0
- v2.3.0-rc.14
- v2.3.0-rc.13
- v2.3.0-rc.12
- v2.3.0-rc.11
- v2.3.0-rc.10
- v2.3.0-rc.9
- v2.3.0-rc.8
- v2.3.0-rc.7
- v2.3.0-rc.6
- v2.3.0-rc.5
- v2.3.0-rc.4
- v2.3.0-rc.3
- v2.3.0-rc.2
- v2.3.0-rc.1
- v2.2.1-rc.2
- v2.2.1-rc.1
- v2.2.0
- v2.2.0-rc.10
- v2.2.0-rc.9
- v2.2.0-rc.8
- v2.2.0-rc.7
- v2.2.0-rc.6
- v2.2.0-rc.5
- v2.2.0-rc.4
- v2.2.0-rc.3
- v2.2.0-rc.2
- v2.2.0-rc.1
- v2.1.0
- v2.1.0-rc.23
- v2.1.0-rc.22
- v2.1.0-rc.21
- v2.1.0-rc.20
- v2.1.0-rc.19
- v2.1.0-rc.18
- v2.1.0-rc.17
- v2.1.0-rc.16
- v2.1.0-rc.15
- v2.1.0-rc.14
- v2.1.0-rc.13
- v2.1.0-rc.12
- v2.1.0-rc.11
- v2.1.0-rc.10
- v2.1.0-rc.9
- v2.1.0-rc.8
- v2.1.0-rc.7
- v2.1.0-rc.6
- v2.1.0-rc.5
- v2.1.0-rc.4
- v2.1.0-rc.3
- v2.1.0-rc.2
- v2.1.0-rc.1
- v2.0.1-rc.1
- v2.0.0
- v1.32.0
- v1.31.0
- v1.30.0
- v1.29.0
- v1.28.0
- v1.27.0
- v1.26.0
- v1.25.0
- v1.24.0
- v1.23.0
- v1.22.0
- v1.21.0
- v1.20.0
- v1.19.0
- v1.18.0
- v1.17.0
- v1.16.0
- v1.15.0
- v1.14.0
- v1.13.0
- v1.12.0
- v1.11.0
- v1.10.1
- v1.10.0
- v1.9.1
- v1.9.0
- v1.8.0
- v1.7.0
- v1.6.0
- v1.5.0
- v1.4.0
- v1.3.0
- dev-release
This package is auto-updated.
Last update: 2024-12-13 08:25:15 UTC
README
GSB 11 Extension gsb_core
About
The extension gsb_core is the mainstay of the several GSB 11 extensions. The extension configures TYPO3 and extends it with selected extensions to provide better structured and appealing content while optimizing accessibility.
Installation
The best way to install this extension is to start with the GSB Sitepackage Kickstarter extension.
Quick installation without GSB Sitepackage Kickstarter
In a composer-based TYPO3 installation you can install the extension EXT:gsb_core via composer:
composer config -g gitlab-domains gitlab.opencode.de && \
composer config -g repositories.gsb-core vcs https://gitlab.opencode.de/bmi/government-site-builder-11/extensions/gsb_core.git
composer require itzbund/gsb-core
In TYPO3 installations above version 11.5 the extension will be automatically installed. You do not have to activate it manually.
Usage
Nothing to do.
Feature Flags in gsb_core
This document explains how to use feature flags. Feature flags allow you to enable or disable specific features in your installation. This is of particular importance to not use features that have not passed the approval process.
Configuration
Feature flags are configured in the .env
or the local-dev/.ddev/docker-compose.environment.yaml
file on ddev machine. To add a feature flag, use the following syntax:
# Feature flag for the specific tickets. Set them to true to activate the features.
- TYPO3__SYS__features__ITZBUNDPHP-2877=%const(bool:true)%
In this example, the feature flag ITZBUNDPHP-2877
is set to true
. To disable the feature, change the value to false
or delete
the setting.
Feature Flag Truth Table
This table illustrates the behavior of feature flags in various states.
Feature Flag State | Evaluated Value | Description |
---|---|---|
featureFlag = true | true | The feature is explicitly enabled. |
featureFlag = false | false | The feature is explicitly disabled. |
featureFlag = '' | false | An empty value is treated as false . |
featureFlag not exist | false | A non-existent flag defaults to false . |
Curent feature flags of gsb_core
Feature flag | Description |
---|---|
brandingBackendLogin | At default branding to the login screen |
ITZBUNDPHP-1615 | Replaces the TYPO3 core default email template footer text with a GSB11 footer text |
ITZBUNDPHP-1996 | Form emails have the X-Request-Id header added to their field output table |
ITZBUNDPHP-2328 | Streamline handling for linked pages in stage and singleteaser CEs. Fetches category and date value from target page and adds possibility to override/hide those values |
ITZBUNDPHP-2877 | Enables general color management in the site module. This sets the bootstrap colors --bs-primary --bs-secondary --bs-tertiary --bs-quaternary |
ITZBUNDPHP-3176 | Enable Google Site Verification via SiteConfig |
ITZBUNDPHP-3288 | Enable i18n of logo, 2nd logo, initiative-text etc |
ITZBUNDPHP-3327 | Enable/Expose EXT:dpn_glossary in the TYPO3 backend |
ITZBUNDPHP-3435 | Enable generic video renderer to add support for external video sources The allowed external sources have to be configured via the extension configuration: allowedVideoDomains |
ITZBUNDPHP-3969 | Extended handling for linked pages in single teaser CEs. Retrieves the value of the main category from the target page and offers the option of overwriting this value |
ITZBUNDPHP-4070 | Enable a feature that allows additional file extensions for the uploads elementThese can be configured via the extension configuration: additionalAllowedFileExtensionsForUploadsElement |
ITZBUNDPHP-4083 | Enable generic audio renderer to add support for external audio sources The allowed external sources have to be configured via the extension configuration: allowedAudioDomains |
Usage in PHP Code
To use a feature flag in your PHP code, you can check the flag's value in the global TYPO3 configuration. Here's an example:
if (GeneralUtility::makeInstance(Features::class)->isFeatureEnabled('ITZBUNDPHP-2877')) {
// Only if the feature flag is set to true the feature is activated
// Feature-specific code goes here
}
In this example, the feature-specific code will only execute if the feature flag ITZBUNDPHP-2877
is set to true
.
Usage in Fluid Templates
You can also use feature flags in your Fluid templates with a custom ViewHelper. First, ensure you include the namespace for the ViewHelper:
{namespace gsb=ITZBund\GsbCore\ViewHelpers}
Then, use the featureFlag
ViewHelper to conditionally render content based on the feature flag:
<f:if condition="{gsb:featureFlag(featureKey: 'ITZBUNDPHP-2877')}">
<!-- Feature-specific content goes here -->
</f:if>
In this example, the content inside the <f:if>
tag will always be rendered if the feature flag ITZBUNDPHP-2877
is not set to false
.
Site package
Site packages in EXT:gsb_core
are alike to sets in TYPO3 13+.
A package is available in the site configuration if it matches one of the following criteria:
- it's extension key includes
gsb_core
orsite
AND does not includeimpexp
- it includes the following configuration in it's
composer.json
:
{
"extra": {
"itzbund/gsb-core": {
"isSitePackage": true
}
}
}
If a package has been selected as a site package, it's typoscript configuration (Configuration/TypoScript/{constants|setttings}.typoscript
) will be loaded as the root template, which allows for zero configuration deployments.
Further Reading
For more information about feature flags in TYPO3, please refer to the TYPO3 Documentation on Feature Flags.
Special Endpoints
For infrastructure reasons this extension provides a version endpoint at /api/version which returns a json object with the following structure
{
"versions": {
"gsb": [string|null],
"container": [string|null],
"helmChart": [string|null],
"TYPO3": "[string|null]",
"packageCacheHash": "[string|null]"
}
}
Contribute
As with TYPO3, we encourage you to join the project by submitting changes. Development of the GSB 11 mainly happens in the GSB 11 TYPO3 extension repositories.
To get started, have a look at our detailed contribution walkthrough.