Rückgängig-Funktion

cd_brenner

Aktives Mitglied
Hallo Community,

da ich gerade an einem WYSIWYG-Editor für herumbastle, stellt sich mir die Frage, wie man eine "Rückgängig"-Funktion am besten realisiert.

Grundsätzlich stelle ich mir das so vor, dass auf einer Leinwand (dem Dokument) verschiedene Tools (Textbox, Youtube-Video, URL, Download, Foto etc.) aufgezogen werden. Alle Tools und deren Parameter werden in zwei MySQL-Tabellen gespeichert.
Für die Rückgängig/Wiederholen-Funktion brauche ich demnach eine Aufstellung wer, wann, in welchem Dokument, bei welchen Parameter welchen Wert neu gesetzt hat.

Mein Problem ist jetzt allerdings noch, dass ich keinen Plan habe, wie ich die aktuelle Version markieren kann, sodass das Skript weiß, welcher der "aufgezeichneten" Parameter der aktuelle ist.

Ich hoffe ihr könnt mir folgen,
vielen Dank,
Markus
 
Könntest du allenfalls alle Eingaben in der MySQL mit dem Zusatz des Timestamps speichern (php: "time()")? So kannst du zumindest bei der DB-Auslese nach Timestamp sortieren und weisst dann, welche Eingabe die jüngste ist. (mySQL: "ORDER BY time DESC")

Ich hoffe, ich habe dich richtig verstanden.

Grüsse
 
Ja - soweit hätte ich mir das auch gedacht.
Einfach jede Änderung eines Parameters mit dem Timestamp und weiteren Informationen in die Datenbank mit allen Parametern eintragen.

Aber jeder neu eingetragene Parameter (jede Änderung) stellt quasi eine neue Version des Dokuments da.

Meine Frage ist, wie ich immer die Informationen der aktuellen Version abfragen kann, auch wenn davor z.B 3x "rückgängig" und 2x "wiederholen" ausgeführt wird.

Einfach rückgängig gemachte Einträge deaktivieren, beim Überschreiben die deaktivierten Einträge löschen und beim Wiederholen wieder aktivieren?

Vielen Dank soweit,
Markus
 
Die Logik von rückgängig/wiederholen ist ja die, dass wenn 3x rückgängig gemacht wurde und anschliessend eine Eingabe getägigt wird, ab da an nicht mehr "wiederholen" gedrückt werden kann.

Als Beispiel, du gibst ein:

1
2
3
4

du drückst 3x "rückgängig", dann steht:

1

drückst du 3x "wiederholen", so steht:

1
2
3
4

wenn du nun nochmals 3x "rückgängig" drückst, so steht wieder:

1

wenn du nun eine Eingabe tätigst, z.B:

1
8

... so ist die "wiederholen" taste nicht mehr möglich.

Wenn du jetzt aber 1x "rückgängig" drückst, steht das:

1

nun 1x "wiederholen", dann steht:

1
8

Zu der obigen Ansicht mit 1,2,3,4 kommst du dann also nicht mehr.

Daher könntest du in der DB zusätzlich einen Status jeder Eingabe mit angeben, sobald "rückgängig" gedrückt wird. Beim "wiederholen" kontrollierst du einfach alle DB-Einträge mit diesem Status und, welcher der älteste ist (vom timestamp). Danach löscht es bei diesem DB-Eintrag wieder den Status.

Wenn jedoch nach z.B. 3x "rückgängig" eine andere Eingabe im WYSIWYG-Editor eingegeben wird, so soll es einfach alle DB-Einträge mit dem Status löschen.

Ich hoffe, ich habe keinen Denkfehler gemacht
wink.gif


Ich finde es jeweils am einfachsten, wenn ich mir das mit Bleistift auf einem Block-Papier aufkritzle. Wenn ich dann sicher bin, dass es DB-seitig und PHP-seitig korrekt sein sollte, so Code ich es erst... (bei komplizierteren Abläufen jedenfalls)

Grüsse
FilOO
 
Zurück
Oben