Zum Inhalt springen

Kein bearbeiten der Datensätze möglich

Erstellt am 13. Juni 2004 · 4 Antworten · letzte Antwort am 7. Februar 2005

Tags: TCA, Frage

dazze ·

Hallo Forum,

ich habe ein Problem mit meiner Extension. Ich habe mit dem Kickstarter ein Frontendplugin erzeugt, mit einer Tabelle "referenzen" (title, description, link und screenshot).

Desweiteren habe ich einen Sysordner in dem die Datensätze der Referenzen speichere. Das Anlegen der Referenzen im Backend klappt auch prima, ich bekomme meine Formularfelder und kann den Datensatz erzeugen. Sobald ich aber versuche diesen Datensatz zu bearbeiten, erhalte ich keine Eingabefelder (title,description ...) mehr sondern lediglich die Speichern und Abbrechen Buttons. Wieso kann ich die Datensätze nicht erneut bearbeiten?

Die Datensätze sind aber vorhanden, ich sehe Sie im Sysordner und im Frontend werden mir die Datensätze auch angezeigt, nur bearbeiten geht halt nicht(?)

für Hilfe sehr dankbar

Poecher ·

Hallo,
kann es sein dass du die Felder als excludefields angelegt hast?
In dem Fall werden sie nur angezeigt, wenn sie bei einer der Benutzergruppen, denen User zugewiesen ist, der die Einträge bearbeiten möchte, unter Allowed excludefields angegeben sind.

Gruß
Yves

mithrandix ·

Hab' ein Plugin mit 2 Tabellen, Artikel und Hersteller. Der Hersteller ist als Database Relation-Selectbox mit den Artikeln verknüpft.
Bei den Artikeln ist alles Bestens, aber die Hersteller kann ich nicht mehr editieren.
Wenn man "Sichern und neues Anlegen" drückt, dann kommt die Meldung:
"Diese Änderung beeinflusst die zur Verfügung stehenden Eingabefelder. Wollen Sie die gemachten Änderungen sichern und die Anzeige aktualisieren?"

Das excludefield habe ich abgedreht, aber keine Änderung. Außerdem ist bei den Artikeln (wo es ja funktioniert) überall das exclude-field gesetzt.

Wo kann's noch haken?

mithrandix

mithrandix ·

Hab's inzwischen selber gefunden:
Wenn ich die Zeile "type" => "brand_name", in der ext_tables.php auskommetiere, dann läuft's so wie's soll.

mithrandix

PWunder ·

Ich geb mich nicht so einfach damit zufrieden...

Woher kommt das "type"-Feld?
Wer im Extention Kickstarter das Type-Feld setzt, bekommt automatisch folgenden Code in die Datei extcode/ext_tables.php hineingeschrieben:

$TCA["user_gorilla_images"] = Array (
        "ctrl" => Array (
                "title" => "LLL:EXT:user_gorilla/locallang_db.php:user_gorilla_images",
                "label" => "image",
                "tstamp" => "tstamp",
                "crdate" => "crdate",
                "cruser_id" => "cruser_id",
                "type" => "imagetype",
...

Warum hilft das Auskommentieren?
Wenn man vom "type" keinen Gebrauch macht (es also nicht konfiguriert), dann machts keinen Sinn und macht das BE unbrauchbar. "Leider" funktioniert das Anlegen neuer Elemente zwar noch, aber schon beim Speichern gibts Schwierigkeiten:

Diese Änderung beeinflusst die zur Verfügung stehenden Eingabefelder. ...

Wozu braucht man das "type"?
Wer die volle Kontrolle über das Aussehen der Eingabemaske im BE für die eigenen Contentelemente braucht, der sollte sich mit dem types-Array in der Datei extcode/tca.php auseinandersetzen.
Beispiel:

"type" => "imagetype",

Wenn ich in meiner eigenen Tabelle ein Feld namens "imagetype" anlege, kann ich das Aussehen des BE-Formulars ändern, indem ich den Code, den ich mit dem Kickstarter erstellt habe in tca.php erweitere (Code aus einer selbst gebastelten Bildergalerie):

"types" => Array (
                "0" => Array("showitem" => "hidden;;1;;1-1-1, image, uploader")

Wers braucht, sollte ich tt_news anschauen: ext_tables.php:

'type' => 'type',

tca.php:

        'types' => Array (
                '0' => Array('showitem' => 'hidden;;;;1-1-1,type,title;;;;2-2-2,datetime,starttime;;1,archivedate, category,author,author_email,keywords,--div--,short;;;;3-3-3, bodytext,image;;;;4-4-4,imagecaption,--div--,links;;;;5-5-5,related'),
                '1' => Array('showitem' => 'hidden;;;;1-1-1,type,page,title;;;;2-2-2,datetime,starttime;;1, archivedate,category,author,author_email,keywords,--div--,short;;;;3-3-3'),
                '2' => Array('showitem' => 'hidden;;;;1-1-1,type,ext_url,title;;;;2-2-2,datetime,starttime;;1, archivedate,category,author,author_email,keywords,--div--,short;;;;3-3-3')
        ),

Ich bin noch darüber gestolpert, dass man nach den Änderungen in den beiden Dateien die Caches leeren sollte und einen Reload der mittleren und rechten Spalte im BE auslösen muss, sonst funktionieren die Formulare selbst mit Auskommentieren von "type=" nicht richtig.

Weitergeholfen hat mir übrigens:

Typo3.org-FAQ

und natürlich "Typo3 Core APIs", Kapitel $TCA