31. 03. 2020, 15:39

Servus zusammen,

ich wende mich mit einem Problem an euch worauf ich schon seit Tagen rum beiße.

In dem ganzen Thema mit dem Extension Builder bin ich komplett neu und arbeite mich so gut es geht ein, aber ich stehe da gerade extrem auf dem Schlauch.

Ziel ist die Farbe der Navigation in der Eigenschaft einer Seite zu definieren. (Bild Ziel.jpg)

Woran ich scheitere ist das hinzufügen der benötigten Werte in diesem Select. Denn es sieht so (Bild Start.jpg)

In der Datei ittheme/Configuration/TCA/Overrides/pages.php steht folgender Inhalt
[code]<?php
defined('TYPO3_MODE') || die();

if (!isset($GLOBALS['TCA']['pages']['ctrl']['type'])) {
// no type field defined, so we define it here. This will only happen the first time the extension is installed!!
$GLOBALS['TCA']['pages']['ctrl']['type'] = 'tx_extbase_type';
$tempColumnstx_ittheme_pages = [];
$tempColumnstx_ittheme_pages[$GLOBALS['TCA']['pages']['ctrl']['type']] = [
'exclude' => true,
'label' => 'LLL:EXT:ittheme/Resources/Private/Language/locallang_db.xlf:tx_ittheme.tx_extbase_type',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
['',''],
['Page','Tx_Ittheme_Page']
],
'default' => 'Tx_Ittheme_Page',
'size' => 1,
'maxitems' => 1,
]
];
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages', $tempColumnstx_ittheme_pages);
}

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
'pages',
$GLOBALS['TCA']['pages']['ctrl']['type'],
'',
'after:' . $GLOBALS['TCA']['pages']['ctrl']['label']
);

$tmp_ittheme_columns = [

'navigation_color' => [
'exclude' => true,
'label' => 'LLL:EXT:ittheme/Resources/Private/Language/locallang_db.xlf:tx_ittheme_domain_model_page.navigation_color',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
['-- Label --', 0],
],
'size' => 1,
'maxitems' => 1,
'eval' => ''
],
],

];

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages',$tmp_ittheme_columns);

/* inherit and extend the show items from the parent class */

if (isset($GLOBALS['TCA']['pages']['types']['1']['showitem'])) {
$GLOBALS['TCA']['pages']['types']['Tx_Ittheme_Page']['showitem'] = $GLOBALS['TCA']['pages']['types']['1']['showitem'];
} elseif(is_array($GLOBALS['TCA']['pages']['types'])) {
// use first entry in types array
$pages_type_definition = reset($GLOBALS['TCA']['pages']['types']);
$GLOBALS['TCA']['pages']['types']['Tx_Ittheme_Page']['showitem'] = $pages_type_definition['showitem'];
} else {
$GLOBALS['TCA']['pages']['types']['Tx_Ittheme_Page']['showitem'] = '';
}
$GLOBALS['TCA']['pages']['types']['Tx_Ittheme_Page']['showitem'] .= ',--div--;LLL:EXT:ittheme/Resources/Private/Language/locallang_db.xlf:tx_ittheme_domain_model_page,';
$GLOBALS['TCA']['pages']['types']['Tx_Ittheme_Page']['showitem'] .= 'navigation_color';

$GLOBALS['TCA']['pages']['columns'][$GLOBALS['TCA']['pages']['ctrl']['type']]['config']['items'][] = ['LLL:EXT:ittheme/Resources/Private/Language/locallang_db.xlf:pages.tx_extbase_type.Tx_Ittheme_Page','Tx_Ittheme_Page'];
[/code]

An diesem Punkt
[code]'items' => [
['-- Label --', 0],
],
[/code]
kann ich klar weitere Optionen hinzufügen, aber wenn ich in dem "Extension Builder" etwas ändere und wieder Speichere, dann wirft er mir das immer wieder raus und setzt es zurück.

Jetzt meine Frage. Wo kann ich dieses "Prefill" den vornehmen? Ohne das er mir das immer wieder zurücksetzt?

Die Ausgabe für das Frontend habe ich in ittheme/Resources/Private/Layouts/Page.html hinbekommen. Also er zeigt mir das, was in der Datenbank gespeichert ist an.

Weitere Informationen falls diese benötigt werden, kann ich gerne nachreichen.
Ich kann auch bei bedarf das ganze Plugin zur Verfügung stellen.

Mit freundlichen Grüßen
NEo-Shadow02

Typo 9.5.14
fluid 9.5.14
flux 9.3.2
vhs 6.0.0