Zum Inhalt springen

kein Dropdown "Layout" bei plugins

Erstellt am 9. September 2011 · 2 Antworten · letzte Antwort am 13. September 2011

Tags: Frage

Schili ·

Hallo zusammen, ich habe ein kleines Problem: Wenn ich im Backend einen neuen Datensatz (Inhalt) in einer Spalte einfüge und dabei typische Inhaltselemente wie Text/Bild auswähle, habe ich später unter Erscheinungsbild das Dropdown Layout. Füge ich aber ein Plugin wie tt_news, ein, fehlt unter Erscheinungsbild das Dropdownmenu. Hat jemand eine Idee, warum das so ist? Vielen Dank

Andreas

manfredmüller ·

Hallo Schili,
das liegt zum ersten an der TYPO3 Kern Einstellung bzgl Backend-Formularen in tt_content Elementen. Die grundsätzliche Konfiguration liegt in typo3/cms/sysext/tbl_tt_content.php. Der Eintrag "list" bezieht sich auf plugins und schließt für diverse Standard-Plugins (identifiziert über Zahlen, die 9 ist bspw tt_news) explizit das "layout" Feld aus (zu finden unter "subtypes_excludelist").
Wenn man, wie tt_news, Flexforms zur Plugin-Konfiguration nutzt, schließt man in der ext_tables.php dieses Feld (und weitere "veraltete" Felder wie pages oder recursive) aus, um die eigene Flexform-Konfiguration zu nutzen.
Die Zeile sieht ungefähr so aus: $TCA["tt_content"]["types"]["list"]["subtypes_excludelist"][$_EXTKEY . "_pi1"] = "layout,select_key,pages,recursive";
Dummerweise wird dadurch aber das erwartete Layout-Feld für Content-Elemente entfernt.
Die "excludelist" darf also nicht "layout" enthalten, also so: $TCA["tt_content"]["types"]["list"]["subtypes_excludelist"][$_EXTKEY . "_pi1"] = "select_key,pages,recursive";
Explizit das "layout" Feld wieder einschließen kann über diese Zeile funktionieren (z.B. über die ext_tables.php der eigenen Extension):
$TCA['tt_content']['types']['list']['subtypes_addlist'][9] = 'layout'; // Gilt für plugin 9, also tt_news

VG Frank

manfredmüller ·

Noch eine kleine Ergänzung:
Damit tt_news auch seine Flexforms lädt, muss die Zeile komplett natürlich folgendermaßen lauten:
$TCA['tt_content']['types']['list']['subtypes_addlist'][9] = 'layout,pi_flexform';