Hallo Zusammen!
Habe mir eine kleine Extension gebastelt, in welcher ich natürlich neue Datensätze Anlegen und löschen kann. Wenn ich aber im Backend bei meiner Extension sage ("Datensatz löschen" oder ("Datensatz unsichtbar")) wird ja nur in meiner MYSQL_Tabelle deleted =1 oder hidden=1 gesetzt. Nun würde ich mir aber wünschen, dass wenn deleted=1 ist, der Datensatz auch wirklich gelöscht wird. Ich hatte da natürlich auch schon einen Lösungsansatz, aber der scheind mir nicht sehr sinnvoll.
Ich frage in meiner class_tx_myExtension_pi1.php natürlich immer ab ob deleted=1 ist und lösche dann den Datensatz und die dazugehörigen Dateien.
Gibt es denn keine Möglichkeit, dass wenn ich auf den Button "Datensatz löschen" klicke, dieser Datensatz bzw. Dateien aus einem Ordner sofort gelöscht werden, anstatt das nur in der Tabelle "deleted=1" gesetzt wird?
Wenn ich das immer in meiner Klasse abfrage, wird die Klasse mit der Abfrage natürlich nur aufgerufen, wenn ich auch wieder einen neuen Datensatz anlege...und das stört mich ein bisschen.
Kann mir jemand sagen, wie ich dieses Problem lösen kann?
Danke!
Was für eine Extension ist das?
Das das deleted-Flag für die Log- und Undo-Funktionen benutzt wird ist Ihnen bewust? Mir hat diese Funktion schon so manches mal viel Arbeit erspart. Vielleicht ist es sinnvoller, ein Script auszuführen, das als deleted gekennzeichnete Datensätze löscht - aber nur, wenn diese z.B. 1 Monat nicht editiert worden sind.
Unter dem Menüpunkt Log befindet sich an vielen Stellen "->His", da kann man sich dann sogar die Unterschiede anzeigen lassen und da auch rückgängig machen.
Hi!
Flotter schriebKann mir jemand sagen, wie ich dieses Problem lösen kann?
Schau mal in die Datei ext_tables.php Deiner Extension. Dort müsste folgende Zeile zu finden sein:
'delete' => 'deleted',
Diese Zeile sagt Typo3, dass Datensätze zum löschen über das Feld 'deleted' markeirt werden sollen.
Wenn ich es richtig verstanden habe, dann sollte folgendes dazu führen, dass Einträge wirklich gelöscht werden:
'delete' => '',
hab's noch nicht ausprobiert, sollte aber klappen... 😉
CU
maxhb
@maxhb: Danke, sowas hatte ich schonmal gelsen gehabt, löst aber mein Problem nicht wirklich, weil ich mit meiner Extension auch Bilder in einen Ordner hochlade und diese dann auch gelöscht werden müssten.
@Oliver: Das ist mir bewusst, nur ist meine Extension auch so aufgebaut, dass pro Seite nur ein Datensatz angelegt werden soll und kann. Gibt es denn in Typo3 keine Klasse, der ich sagen kann, dass wenn deleted=1 gesetzt wird...auch der Datensatz bzw. und Bilder gelöscht werden?
Weil so wie es jetzt bei mir ist, wird der als "deleted=1" markierte Datensatz und die Bilder erst gelöscht, wenn ein neuer Datensatz angelegt wird, bzw. die Klasse meiner Extension aufgerufen wird.
Vielleicht hat ja noch jemand einen anderen Lösungsansatz?
Vielen Dank erstmal..
Mach es doch so befor Irgendetwas in deiner Klasse gemacht wird lösche einfach alle Datensätze bei denen Deleted gleiche 1 ist!(über mysql)
Ungefähr so
DELETE * FROM #deine Tabelle# WHERE deleted=1
musst dir aber nochmal die genau query unter mysql.com angucken ich hab sie net im kopf
mfg
@Hans: Nett gemeint aber nix anderes mache ich bereits. Leider gefällt mir diese Lösung überhaupt nicht, deswegen fragte ich, ob es eine Möglichkeit gibt, diese Daten sofort zu löschen, sobald auf "Datensatz löschen" geklickt wurde.
Aber anscheinend gibt es da keine Lösung für, außer ich muss in den Typo3 PHP-Datei rumwurschteln, was ich eigentlich vermeiden wollte.
Trotzdem Danke!