site / site-core
Core Extension for any modern TYPO3 Application.
Installs: 1 852
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 0
Type:typo3-cms-extension
Requires
- php: ^8.2
- dflydev/dot-access-data: ^3.0
- symfony/dotenv: ^6.0
- typo3/cms-core: ^12.4
Suggests
- site/site-backend: site/site-core heavily depends on site/site-backend.
- site/site-frontend: site/site-core depends on site/site-frontend.
- dev-main
- v5.0.1
- v5.0.0
- v4.0.2
- v4.0.1
- v4.0.0
- v3.6.0.x-dev
- 3.6.0
- 3.5.4
- v3.5.2.x-dev
- 3.5.2
- v3.5.1.x-dev
- 3.5.1
- v3.5.0.x-dev
- 3.5.0
- v3.4.16.x-dev
- 3.4.16
- v3.4.15.x-dev
- 3.4.15
- v3.4.14.x-dev
- 3.4.14
- v3.4.13.x-dev
- 3.4.13
- v3.4.12.x-dev
- 3.4.12
- v3.4.11.x-dev
- 3.4.11
- v3.4.10.x-dev
- v3.4.9.x-dev
- 3.4.9
- 3.4.8
- 3.4.7
- 3.4.6
- 3.4.5
- 3.4.4
- 3.4.3
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.0
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.3
- 3.0.0
- v2.2.11.x-dev
- 2.2.11
- 2.2.10
- v2.2.9.x-dev
- 2.2.7
- 2.2.4
- 2.2.3
- 2.1.0
- 2.0.4
- 2.0.3
- 2.0.1
- 2.0.0
- 1.8.6
- 1.8.5
- 1.8.3
- 1.8.2
- 1.8.1
- 1.8.0
- 1.7.4
- 1.7.3
- 1.7.2
- 1.6.1
- 1.6.0
- 1.5.7
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.0
- 1.4.0
- 1.3.0
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.2
- 1.0.1
- 1.0.0
- dev-dev-main
- dev-fix/v11
- dev-typo3-11-lts
- dev-master
- dev-ßr
- dev-typo3-11-3
- dev-typo3-11-4
This package is auto-updated.
Last update: 2024-11-27 21:05:37 UTC
README
Features
- Simplified the way to create way faster new Content-Elements
- An easier way of rendering custom Content-Elements via "Frontend-Rendering-Engine" (also PSR-14 Events!)
- Includes a bunch of custom utility-classes as services
- Will always support LTS versions of both TYPO3 and PHP - currently v12 and v8.2
Why would I need this
I've developed this extension primarily only the due to the TcaService class since I struggled/didn't enjoy copy&paste TCA arrays - especially those Table properties (ctrl)
arrays. That one big array you need for the usage of inline records, which you place inside e.g. EXT:site_core/Configuration/TCA/Overrides/my_domain_model.php
and basically returns an array of configured ctrl stuff.
Turns out stuff like that (ctrl-array)...
An example of the big, big ctrl-array
<?php return [ 'ctrl' => [ 'title' => 'LLL:EXT:site_core/Resources/Private/Language/locallang_db.xlf:tx_sitecore_domain_model_test', 'label' => 'title', 'tstamp' => 'tstamp', 'crdate' => 'crdate', 'cruser_id' => 'cruser_id', 'versioningWS' => true, 'languageField' => 'sys_language_uid', 'transOrigPointerField' => 'l10n_parent', 'transOrigDiffSourceField' => 'l10n_diffsource', 'delete' => 'deleted', 'sortby' => 'sorting', 'enablecolumns' => [ 'disabled' => 'hidden', 'starttime' => 'starttime', 'endtime' => 'endtime', ], 'searchFields' => 'title', 'iconfile' => 'EXT:site_core/Resources/Public/Icons/tx_sitecore_domain_model_test.gif' ], 'interface' => [ 'showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title', ], 'types' => [ '1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime'], ], 'columns' => [ 'sys_language_uid' => [ 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language', 'config' => [ 'type' => 'select', 'renderType' => 'selectSingle', 'special' => 'languages', 'items' => [ [ 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages', -1, 'flags-multiple' ] ], 'default' => 0, ], ], 'l10n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', 'renderType' => 'selectSingle', 'default' => 0, 'items' => [ ['', 0], ], 'foreign_table' => 'tx_sitecore_domain_model_test', 'foreign_table_where' => 'AND {#tx_sitecore_domain_model_test}.{#pid}=###CURRENT_PID### AND {#tx_sitecore_domain_model_test}.{#sys_language_uid} IN (-1,0)', ], ], 'l10n_diffsource' => [ 'config' => [ 'type' => 'passthrough', ], ], 't3ver_label' => [ 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.versionLabel', 'config' => [ 'type' => 'input', 'size' => 30, 'max' => 255, ], ], 'hidden' => [ 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.visible', 'config' => [ 'type' => 'check', 'renderType' => 'checkboxToggle', 'items' => [ [ 0 => '', 1 => '', 'invertStateDisplay' => true ] ], ], ], 'starttime' => [ 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime', 'config' => [ 'type' => 'input', 'renderType' => 'inputDateTime', 'eval' => 'datetime,int', 'default' => 0, 'behaviour' => [ 'allowLanguageSynchronization' => true ] ], ], 'endtime' => [ 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime', 'config' => [ 'type' => 'input', 'renderType' => 'inputDateTime', 'eval' => 'datetime,int', 'default' => 0, 'range' => [ 'upper' => mktime(0, 0, 0, 1, 1, 2038) ], 'behaviour' => [ 'allowLanguageSynchronization' => true ] ], ], 'sorting' => [ 'label' => 'sorting', 'config' => [ 'type' => 'passthrough', ] ], 'title' => [ 'exclude' => true, 'label' => 'LLL:EXT:site_core/Resources/Private/Language/locallang_db.xlf:tx_sitecore_domain_model_test.title', 'config' => [ 'type' => 'input', 'size' => 30, 'eval' => 'trim' ], ], ], ];
Note: This example configuration covers only one field (the title) yet.
...could be way easier using site/site-core
's TcaService:
TcaService way
<?php use Site\Core\Form\Fields; return Fields\Inline::make('Accordion', [ 'label' => 'rte', 'columns' => [ 'header' => Fields\Input::make('Header'), 'rte' => Fields\RTE::make('RTE'), 'file' => Fields\File::make('File', [ 'fieldName' => 'file' ]), 'image' => Fields\Image::make('Image', [ 'fieldName' => 'image' ]), 'subaccords' => Fields\InlineItem::make('sub accordsss', [ 'config' => [ 'foreign_table' => 'tx_sitebackend_domain_model_accordions' ] ]), ], ]);
Noticed that this simplified configuration holds 5 fields already and is way more understandable than the other?
Installation
composer req site/site-core
Documentation
For documentation please head over to site-core.readthedocs.io
License
MIT
For more information please see LICENSE