Zum Inhalt springen

Erweiterung von bestehenden Modeln

Erstellt am 30. September 2020 · 2 Antworten · letzte Antwort am 4. Oktober 2020

Tags: TCA, Frontend-Benutzer, Frage

DocMcFly ·

Hi zusammen,

ich habe da mal eine Verständnisfrage: ich habe zur Tabelle "fe_users" ein paar Spalten hinzugefügt.

Nun taucht im BE ein Reiter namens "Erweitert" auf, bei dem ich einen Datensatztyp auswählen kann. Wenn ich nun diesen auswähle, kann ich die Felder der neuen Spalten sehen.

Aber wenn ich den Datensatztyp auf meiner Erweiterung eingestellt lasse, dann dann findet das FrontEndRepository diesen Nutzer nicht mehr. Erst wenn ich es wieder auf "nicht definiert [0]" stelle gehts. Damit dieses Problem nicht wieder auftaucht habe ich in meiner Erweiterung folgendes hinzugefügt:

<?php
declare(strict_types = 1);
return [
     \abc\Usertools\Domain\Model\User::class => [
         'tableName' => 'fe_users',
         'recordType' => 0
         ],
       ];

Aber nun ist es wirklich sehr nervig, für den Redakteur (der die Nutzer verwaltet) erst den Nutzer öffnen, dann Umschalten, die Daten ggf. anpassen und wieder zurückschalten. Vergisst er das zurückschalten, dann kann der Nutzer sich nicht mehr einloggen. 🙁

Darum würde ich das Datensatztyp-Feld für den Redakteur gerne ganz entfernen, aber dann kommt er an die Erweiterungsfelder nicht mehr ran.

Frage: kann ich meine Erweiterungsfelder auf der "normalen" Sicht hinzufügen? Warum gibt es überhaupt das "Datensatztyp"-Feld? Den Webseiten-Nutzer kann es ja nur einmal geben? Oder muss man den Klonen?

Das verstehe ich nicht... kann mir jemand die Philosophie dahinter erklären (oder was ich falsch machen?)

Danke Clemens

PS: Hier ist noch das Coding womit ich aktuell die Felder einbinde... siehe Anhang.

Julian.​Hofmann ·

Das Datensatztyp-Feld wird von Extbase der Tabelle hinzugefügt.
die Details zu den 'types' finden sich in der TCA Reference: https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Types/Index.html

Welchem Datensatztyp Deine neuen Felder zuordnest, entscheidest Du beim Override. Dort rufst Du die Methode \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes() auf, die als dritten Parameter die typeList vorsieht ("List of specific types to add the field list to. (If empty, all type entries are affected) ")
https://api.typo3.org/master/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_utility_1_1_extension_management_utility.html#ae3c8a1047df96808caa85631524e2a1a