[Frage] Custom Inhaltselement - Typ wird nicht gespeichert wenn er bei 'Create new content element' ausgewählt wurde TYPO3-Version: 9.4.0

  • notknow notknow
    Jedi-Ritter
    0 x
    135 Beiträge
    2 Hilfreiche Beiträge
    23. 10. 2018, 20:56

    Hallo alle.

    Ich hab' das seit Wochen immer wieder gesucht, bei Slack gefragt, aber immer noch keine Idee, keinen Ansatz, finde nix:

    Ich habe eine Erweiterung die ein Custom Content Element 'Bildergalerie' anlegt.

    Alles funktioniert, nur beim Speichern, da 'springt' der Typ des Inhaltselements auf ' Type[CType]Text [text]'. Wenn ich jetzt *im Pulldown* der Inhaltselement-Typen nochmal 'Bildergalerie' auswähle, wird alles richtig gespeichert.

    fschyimagegallery/Configuration/TCA/Overrides/tt_content.php:

    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
    'tt_content',
    'CType',
    [
    'LLL:EXT:fschyimagegallery/Resources/Private/Language/locallang_be.xlf:wizard.title',
    'bildergalerie',
    'content-image'
    ],
    'textmedia',
    'after'
    );

    $GLOBALS['TCA']['tt_content']['types']['bildergalerie'] = ['showitem' => "image,bodytext;Text"];

    Ich habe folgenden Code zuerst angelegt, dann aber AUSkommentiert, da ich ihn m.W. nicht brauche wenn ich nur ein neues Inhaltselement erstelle (und er ändert auch aktiv geschaltet nichts):

    fschyimagegallery/Configuration/TCA/Overrides/tt_content.php:
    //\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    // 'Fschy.fschyimagegallery',
    // 'Pi1',
    // 'Bildergalerie'
    //);

    fschyimagegallery/ext_localconf.php:
    //\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    // 'Fschy.fschyimagegallery',
    // 'Pi1',
    // array('TemplateBildergalerie' => 'templateBildergalerie')
    //);

    Und in der PageTsConfig.ts steht:
    mod.wizards.newContentElement.wizardItems {
    common {
    elements {
    bildergalerie {
    title = Bildergalerie
    description = Erstellt eine neue Bildergalerie
    iconIdentifier = content-table
    tt_content_defValues {
    CType = bildergalerie
    }
    }
    }
    show := addToList(bildergalerie)
    }
    }

    Und diese ist im Backend auch eingebunden: ext_localconf.php:
    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig(
    '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:fschyimagegallery/Configuration/PageTsConfig.ts">'
    );

    Noch die sys_template.php:
    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
    'fschyimagegallery',
    'Configuration/TypoScript',
    'bildergalerie'
    );

    Schlicht, es funktioniert alles, auch im Frontend keinerlei Fehlfunktion bei der Ausgabe der Inhalte - nur nicht das Auswählen und Speichern des Inhaltselements ohne es ein zweites Mal im Pulldown auszuwählen und zu speichern.

    Sieht jemand irgendwas. Ich stehe auf allen Schläuchen die ich bisher zum Thema gefunden habe (also leider auf keinem). Danke!! :-)
    (Typo3 9.4, Composer)


  • 1
  • notknow notknow
    Jedi-Ritter
    0 x
    135 Beiträge
    2 Hilfreiche Beiträge
    12. 11. 2018, 17:16

    Kurz:
    Ich hatte es mir selbst abgeschossen...

    Um dem Redakteur so wenig Ablenkung wie möglich zu bieten habe ich im Inhaltselement-Formular (also in der Overdrives/tt_content.php bei 'showitem') den CType entfernt. Der Inhaltselement-Typ wird dann zwar in den 'Typical Page Content'-Tabs noch angezeigt und ist auswählbar, aber das ist nur eine Vorauswahl.
    Wenn dann das Inhaltselement beim Speichern keinen CType mitgeschickt bekommt, wird der Fallback (Text) verwendet. In diesem ist dann das CType Pulldown vorhanden und das Custom Element kann ausgewählt und gespeichert werden.
    Ab dann wäre es egal, ob das Feld für den Type im Custom Content Element angezeigt wird oder nicht - aber zum ersten Speichern muss es eben da sein.

  • 1