Hallo allerseits,
nachdem ich mich schon durch etliche Posts und Tutorials gearbeitet habe, dachte ich mir fragste mal 😉
Also:
Ich habe eine Extension geschriebn welche zwei repositories besitzt.
Einmal Fahrzeug, einmal Geraet.
Entsprechend zwei Controller, Templates etc.
So nun möchte ich gerne beim Erstellen einer Seite im Backend, nach auswahl meines Plugins die Möglichkeit haben mir entweder Fahrzeug oder Geraet auf dieser Seite auszugeben (list). Default ist es immer Fahrzeug.
Die Lösung dieses Problems scheint wohl FlexForm zu sein.
Meine ext_table.php sieht wie folgt aus:
<?php
if (!defined('TYPO3_MODE')) {
die('Access denied.');
}
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
$_EXTKEY,
'Fuhrpark',
'Fuhrpark'
);
if (TYPO3_MODE === 'BE') {
/**
* Registers a Backend Module
*/
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
'Furhrpark.' . $_EXTKEY,
'user', // Make module a submodule of 'user'
'fuhrpark', // Submodule key
'', // Position
array(
'Backend' => 'index','Fahrzeug' => 'list, show, new, create, edit, update, delete','Geraet' => 'list, show, new, create, edit, update, delete',
),
array(
'access' => 'user,group',
'icon' => 'EXT:' . $_EXTKEY . '/ext_icon.gif',
'labels' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_fuhrpark.xlf',
)
);
}
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'Fuhrpark');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr('tx_fuhrpark_domain_model_fahrzeug', 'EXT:fuhrpark/Resources/Private/Language/locallang_csh_tx_fuhrpark_domain_model_fahrzeug.xlf');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_fuhrpark_domain_model_fahrzeug');
$GLOBALS['TCA']['tx_fuhrpark_domain_model_fahrzeug'] = array(
'ctrl' => array(
'title' => 'LLL:EXT:fuhrpark/Resources/Private/Language/locallang_db.xlf:tx_fuhrpark_domain_model_fahrzeug',
'label' => 'bild',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'cruser_id' => 'cruser_id',
'dividers2tabs' => TRUE,
'versioningWS' => 2,
'versioning_followPages' => TRUE,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'enablecolumns' => array(
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
),
'searchFields' => 'bild,name,kennzeichen,typ,einsatzmittel,geraete,',
'dynamicConfigFile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'Configuration/TCA/Fahrzeug.php',
'iconfile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath($_EXTKEY) . 'Resources/Public/Icons/tx_fuhrpark_domain_model_fahrzeug.gif'
),
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr('tx_fuhrpark_domain_model_geraet', 'EXT:fuhrpark/Resources/Private/Language/locallang_csh_tx_fuhrpark_domain_model_geraet.xlf');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_fuhrpark_domain_model_geraet');
$GLOBALS['TCA']['tx_fuhrpark_domain_model_geraet'] = array(
'ctrl' => array(
'title' => 'LLL:EXT:fuhrpark/Resources/Private/Language/locallang_db.xlf:tx_fuhrpark_domain_model_geraet',
'label' => 'bild',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'cruser_id' => 'cruser_id',
'dividers2tabs' => TRUE,
'versioningWS' => 2,
'versioning_followPages' => TRUE,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'enablecolumns' => array(
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
),
'searchFields' => 'bild,name,nr,wartung,bedienungsanleitung,funktionskontrolle,fahrzeug,',
'dynamicConfigFile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'Configuration/TCA/Geraet.php',
'iconfile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath($_EXTKEY) . 'Resources/Public/Icons/tx_fuhrpark_domain_model_geraet.gif'
),
);
$extensionName = t3lib_div::underscoredToUpperCamelCase($_EXTKEY);
$pluginSignature = strtolower($extensionName) . '_fuhrpark';
$TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/switchForm.xml');
Die switchForm.xml ist die folgende:
<?xml version="1.0" encoding="UTF-8"?>
<T3DataStructure>
<sheets>
<general>
<ROOT>
<TCEforms>
<sheetTitle>Allgemeine Einstellungen</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<switchableControllerActions>
<TCEforms>
<label>Ansicht</label>
<onChange>reload</onChange>
<config>
<type>select</type>
<items type="array">
<numIndex index="1" type="array">
<numIndex index="0">GeraeteAnsicht</numIndex>
<numIndex index="1">Geraet->list</numIndex>
</numIndex>
<numIndex index="2" type="array">
<numIndex index="0">FahrzeugAnsicht</numIndex>
<numIndex index="1">Fahrzeug->list</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</switchableControllerActions>
</el>
</ROOT>
</general>
</sheets>
</T3DataStructure>
ext_localconfig:
<?php
if (!defined('TYPO3_MODE')) {
die('Access denied.');
}
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'Furhrpark.' . $_EXTKEY,
'Fuhrpark',
array(
'Fahrzeug' => 'list, show, new, create, edit, update, delete',
'Geraet' => 'list, show, new, create, edit, update, delete',
'Backend' => 'index',
),
// non-cacheable actions
array(
'Fahrzeug' => 'create, update, delete',
'Geraet' => 'create, update, delete',
)
);
Jetzt hätte ich gedacht, das ich nach dem Erstellen einer Seite auf "Seiteninhalt auf Seite .... bearbeiten" unter Plug-In mein Plugin auswähle und ein weiterer Reiter erscheint wo ich den Controller den ich in der XML Datei definiert habe auswählen kann.
Das ist leider nicht der Fall und ich habe keine Idee mehr woran das liegen kann.
Ich hoffe Ihr könnt mir helfen.
Vielen Dank im Voraus.