Zum Inhalt springen

Berechnungen in Datenbank durchführen - wie ?

Erstellt am 9. März 2006 · 3 Antworten · letzte Antwort am 10. März 2006

Tags: TCA, Frage

tdj ·

Ich möchte gern volgendes tun: bei anlegen von neuer Datensatz, d.H. wenn in mein
Extension auf "Save" gedruckt wird, sollte ein wert mit im Datenbank gespeichert
werden - z.B. ein MD5 checksum von einer Datei.

Ich habe allerdings nicht rausfinden können wie berechnungen und TCA
(ich nehme an, TCA.php ist richtiger Stelle zu suchen ?) sich kombinieren lassen.

Bei editierung der Datensatz sollte natürlich diese berechnung nochmals durchgeführt
werden.

Also, um zusammenzufassen. Ich will in mein Datenbank folgendes haben:
==========
uid
pid
timestamp
benutzer
note
filename
md5
==========

Ich kenne aber nicht den MD5 bis auf "Save" gedruckt wird.

Einige vorschläge ?

tdj ·

Danke für den Antwort.

Ich habe jetzt in Core Api gesucht, und habe gesehen daß displayCond dazu geignet ist ein Feld zu zeigen oder nicht. Aber den Zusammenhang mit userFunc kann ich nicht finden.

Ich will ja genau nicht ein Feld haben, nur ein Wert daß berechnet ist.

Ehnlich wie "postUserFunc" - ein userFunction daß aufgerufen wird, wenn auf "save" gedruckt wird.

Jedenfalls.. währe es möglich ein Beispiel zu geben wie ich daß erreichen kann ?

Danke im voraus.

Torben

jenses ·

Also, so gehts:
per displayCondition machst du die Sichtbarkeit von md5 davon abhängig,
daß deine anderen Felder bereits ausgefüllt wurden.
Wie das geht, steht in der Core API.
md5 bekommt Type:user, das ist auch sehr schön erklärt,
die Berechnung mußt du natürlich selber schreiben.
Und dann kannst du das angezeigt input-Feld auf readonly setzen,
so daß der Wert nicht geändert werden kann.
Aber eigentlich muß der md5 ja auch nicht angezeigt werden,
also läßt du die ganze HTML-Ausgabe weg.

Es gibt immer mehrere Möglichkeiten ...