Hallo,
ich möchte eine eigene Testextension durch eine andere Extension erweitern. Das ganze unter typo3 6.2.8
1. neue Etxension mit dem Extension builder erstellen (vendor: TEST, extension key: mytest1)
2. Neue Tabelle erstellen "table1"
3. neue Eigenschaft in table1 mit Name "title1"
4. speichern
5. Installieren
Im Backend kann ich jetzt einen einene Datensatz erstellen und title1 eingeben
Jetzt möchte ich gerne meine Extension mytest1 erweitern und zwar mit einer weiteren Extension mytest2.
6. ich erstelle wieder eine Extension (vendor: TEST, extension key: mytest2)
7. Estelle eine Tabelle "table1"
8. gebe im Feld "Extend existing model class" meine Klasse ein "\TEST\Mytest1\Domain\Model\Table1"
9. Erstelle eine Eigenschaft "title2"
10. Speicher das Ganze
11. Installiere die Extension
Schau ich mir die Tabelle der Extension mytest1 an (mit phpmyadmin) sehe ich das dieser Extension ein Feld title2 hinzugefügt wurde.
Lege ich im Backend einen Datensatz mytest1 an wird leider das feld title2 nicht angezeigt.
Der Extension Builder generiert mir diese Datei.
<?php
if (!defined('TYPO3_MODE')) {
die('Access denied.');
}
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'mytest2');
if (!isset($GLOBALS['TCA']['tx_mytest1_domain_model_table1']['ctrl']['type'])) {
if (file_exists($GLOBALS['TCA']['tx_mytest1_domain_model_table1']['ctrl']['dynamicConfigFile'])) {
require_once($GLOBALS['TCA']['tx_mytest1_domain_model_table1']['ctrl']['dynamicConfigFile']);
}
// no type field defined, so we define it here. This will only happen the first time the extension is installed!!
$GLOBALS['TCA']['tx_mytest1_domain_model_table1']['ctrl']['type'] = 'tx_extbase_type';
$tempColumns = array();
$tempColumns[$GLOBALS['TCA']['tx_mytest1_domain_model_table1']['ctrl']['type']] = array(
'exclude' => 1,
'label' => 'LLL:EXT:mytest2/Resources/Private/Language/locallang_db.xlf:tx_mytest2.tx_extbase_type',
'config' => array(
'type' => 'select',
'items' => array(),
'size' => 1,
'maxitems' => 1,
)
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tx_mytest1_domain_model_table1', $tempColumns, 1);
}
$tmp_mytest2_columns = array(
'title2' => array(
'exclude' => 1,
'label' => 'LLL:EXT:mytest2/Resources/Private/Language/locallang_db.xlf:tx_mytest2_domain_model_table1.title2',
'config' => array(
'type' => 'input',
'size' => 30,
'eval' => 'trim'
),
),
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tx_mytest1_domain_model_table1',$tmp_mytest2_columns);
$GLOBALS['TCA']['tx_mytest1_domain_model_table1']['types']['Tx_Mytest2_Table1']['showitem'] = $TCA['tx_mytest1_domain_model_table1']['types']['1']['showitem'];
$GLOBALS['TCA']['tx_mytest1_domain_model_table1']['types']['Tx_Mytest2_Table1']['showitem'] .= ',--div--;LLL:EXT:mytest2/Resources/Private/Language/locallang_db.xlf:tx_mytest2_domain_model_table1,';
$GLOBALS['TCA']['tx_mytest1_domain_model_table1']['types']['Tx_Mytest2_Table1']['showitem'] .= 'title2';
$GLOBALS['TCA']['tx_mytest1_domain_model_table1']['columns'][$TCA['tx_mytest1_domain_model_table1']['ctrl']['type']]['config']['items'][] = array('LLL:EXT:mytest2/Resources/Private/Language/locallang_db.xlf:tx_mytest1_domain_model_table1.tx_extbase_type.Tx_Mytest2_Table1','Tx_Mytest2_Table1');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('tx_mytest1_domain_model_table1', $GLOBALS['TCA']['tx_mytest1_domain_model_table1']['ctrl']['type'],'','after:' . $TCA['tx_mytest1_domain_model_table1']['ctrl']['label']);
Der Extesnionbuilder fügt bereits ein addToAllTCAtypes hinzu, trotzdem seh ich nichts im Backend.
Der TCA wird aus irgendeinem Grund nicht erweitert.
Ich habe das ganze aus einem englisch Sprachigen Forum, dort wird darauf hingewiesen, dass wenn man den Eintrag "after:....." komplett löscht das ganze funktionieren sollte. Machts leider nicht.
Bin für jeden Tipp dankbar!!!!