TYPO3: overrideChildTca mittels TsConfig
Falls man ermöglichen möchte, dass per TsConfig folgendes erledigt werden kann
TCEFORM.tx_news_domain_model_news.fal_media.config.overrideChildTca.columns.crop.config.cropVariants { slim { title = Schmal allowedAspectRatios { 5:2 { title = 5:2 value = 2.5 } } } }
muss man etwas nachhelfen.
Denn dies ist in TYPO3 Version 9 so (noch) nicht möglich. Abhilfe schafft ein eigener FormDataProvider, der an der richtigen Stelle eingehakt werden muss. Registriert wird er wie üblich in der ext_localconf.php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['formDataGroup']['tcaDatabaseRecord'][YOUR\NAMESPRACE\Backend\Form\FormDataProvider\PageTsConfigFix::class] = [ 'depends' => [ \TYPO3\CMS\Backend\Form\FormDataProvider\PageTsConfig::class, ], 'before' => [ \TYPO3\CMS\Backend\Form\FormDataProvider\InlineOverrideChildTca::class ] ];
<?php namespace YOUR\NAMESPACE\Backend\Form\FormDataProvider; use TYPO3\CMS\Backend\Form\FormDataProviderInterface; use TYPO3\CMS\Core\Utility\ArrayUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; class PageTsConfigFix implements FormDataProviderInterface { /** * Add page TsConfig * * @param array $result * @return array */ public function addData(array $result) { if (isset($result['pageTsConfig']['TCEFORM.'])) { $tables = $result['pageTsConfig']['TCEFORM.']; foreach ($tables as $tableName => $table) { if (is_array($table) && $result['tableName'].'.' === $tableName) { foreach ($table as $columnName => $column) { if (isset($column['config.']['overrideChildTca.'])) { $columnName = substr($columnName,0,-1); if (isset($result['processedTca']['columns'][$columnName]['config'])) { $config = GeneralUtility::removeDotsFromTS($column['config.']); ArrayUtility::mergeRecursiveWithOverrule($result['processedTca']['columns'][$columnName]['config'],$config); } } } } } } return $result; } }
Dies wird in zukünftige t3bootstrap Versionen mit integriert sein.
Hi. Ich hab da echt n bisschen n Problem mit… 😀
Das überschreibt mir die Ratio-Configs in meinen Extensions. Dachte zuerst da kam was mit Typo3 10 und ich muss das deaktivieren, aber liegt an t3bootstrap.
Hast du da was eingebaut, das es mir erlaubt das zu deaktivieren?
Da ich eine merge verwende, werden vorhandene nicht angetastet. Ist kein TsConfig Einstellung gesetzt, wird es auch nicht verwendet. Von daher kannst du es aus der Konfiguration einfach herausnehmen. Aber wie gesagt, konzipiert ist es für einen Merge.
Hallo, kann ich auf diese Weise auch CropVariants zu einem FAL-Bild hinzufügen, dass ich per Flux-Content-Element einbinde?
Mein Case: Ich habe ein neues Content-Modul „HeroImage“, das eine Headline und ein Bild als Felder hat. Für das Bild soll Cropping aktiviert werden. Ich habe es bislang mit dem flux:field.inline.fal versucht, und darin das Attribut „cropVariants“ definiert. Aber irgendwie erscheint im Backend kein Cropping… Bin ich auf dem Holzweg?
Der Code:
Viele Grüße
Das funktioniert leider nicht, weil die flux Felder in flexform abgespeichert werden. Aus diesem Grund habe ich alle flux Felder zu richtigen Feldern migriert.
Ah, gut zu wissen, schade eigentlich 🙂
Was heißt du hast alle Flux-Felder zu „richtigen“ Feldern migriert?
Korrekt. Das ist letztendlich die bessere Datenstruktur.