WBCE CMS – Way Better Content Editing.
You are not logged in.
Die Exportfunktion von mpform ist super; mir ist es aber ab und zu aufgefallen, dass es ganz nützlich wäre,
wenn man selektieren könnte, welche Einträge exportiert werden sollen (z.B. über Checkbox oder -Luxus - einen bestimmten Zeitraum)
es einen Button (mit Rückfrage) gäbe, um selektierte / alle Einträge des Formulars zu löschen
Wäre das machbar?
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
berny
Ich schau mal... da kann ich bestimmt Code aus NWI recyceln. Drag&Drop habe ich ja in der anderen Richtung übernommen...
Um alle Einträge zu löschen gibt es einen Trick:
* Einmal in den Einstellungen die Anzahl der zu speichernden Eintragungen auf 0 setzen, abspeichern,
* dann einmal das Formular abschicken, damit dieses Limit zuschlägt,
* dann die Anzahl wieder hochsetzen (natürlich da auch nicht vergessen die Einstellungen zu speichern).
Edit: korrigiert noch -> nicht
Last edited by mrbaseman (13.02.2021 09:56:46)
Offline
Ich schau mal...
Das ist fein, danke schon mal.
Um alle Einträge zu löschen gibt es einen Trick:
Ja... der Trick ist aber nicht "kunden-kompatibel" ;-)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Ich weiß. Da da der Thread von dir ist, dachte ich halt, da kann ich das als kurzfristigen Workaround einwerfen :-)
Offline
bin da noch dran. scheint machbar zu sein...
Offline
Hallo Florian,
du kannst dir wahrscheinlich vorstellen, dass mich das in den letzten Wochen ein bisschen aufgehalten hat - aber ich hätte da mal wieder was zum Testen.
Die angehängte Version wäre sozusagen ein Preview für mpform 1.3.37 in der die gewünschten Features drin sind.
LG Martin
Offline
Slugger
@mrbaseman
Ja, das verstehe ich, dass das Nordstern-Projekt für genug Arbeit gesorgt hat.
Ich habe das jetzt mal getestet. Leider funktioniert der Export noch nicht, wenn nicht "alle" angewählt ist. Ich habe das Standardformular zum Testen genommen und drei Testeinträge im Formular vorgenommen.
Wenn nur zwei der drei Testeinträge ausgewählt sind (siehe Screenshot im Anhang), sieht die results_xy.csv leider nur so aus:
"session_id","started_when","submitted_when","referer","Anrede","Name","email-Adresse","Anschrift","Kommentar","Einverständniserklärung","HTML code","Bitte ankreuzen","end of fieldset";
Im Errorlog erscheint:
2021-03-21T16:47:21+00:00 [Notice] /modules/mpform/export_submissions.php:[246] from /modules/mpform/export_submissions.php:[246] WBCE_Error->scriptError "Undefined index: submission_id"
Ist das Häkchen "alle" gesetzt, funktoniert der Export und es kommen keine Errorlogeinträge.
Das Löschen einzelner und auch aller Einträge funktioniert.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Hallo florian,
Aufgrund deines Hinweises habe ich das mal ausprobiert.
In Beiden Fällen funktioniert der Export bei mir ohne Probleme und keine Eintragung im Error_log.
Es sind die selektierten Datensätze vorhanden.
Getestet bei einem Kunden der bei IONOS gehostet ist.
AKTUELLE WBCE 1.4.5 mit PHP 7.4
Last edited by Slugger (21.03.2021 19:02:29)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Online
War da vorher schon mpform installiert, d.h. ist das ein Update oder eine Neuinstallation? (Bei mir war's eine Neuinstallation, WBCE 1.4.5, PHP 7.4.16)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Bei mir war das ein Modul-Update ohne Neuinstallation
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Online
Hallo ihr beiden,
Vielen Dank fürs Testen.
Es sind da zwei Tabellen im Spiel mit doppelter Datenhaltung. Das ist grundsätzlich schlechte Praxis, aber irgendwie wohl historisch gewachsen, vor meiner Zeit. Ich habe mal eine Änderung vorgenommen, mit der ich versucht habe, das einzufangen.
Es kann daher sein, dass hier noch Altlasten da sind, die ich nicht mit im Blick hatte, speziell bei der Verwaltung von bestehenden Einträgen. Danke für die Infos. Ich schau mir das nochmal an, wie ich das stabiler hin bekomme.
Offline
es war wie ich vermutet hatte diese Altlast von vor über 4 Jahren:
Was man im Backend sieht, kommt aus der Submissions-Table, in der mehr oder weniger der gerenderte Output, so wie er auch per Mail verschickt wird, in die Datenbank geschrieben wird. Da gibt es die Submission ID.
In der Results-Tabelle hingegen gab es bis vor Version 1.2.0 keine Submission-ID. Da aber der Suffix der Results-Tabelle eine Einstellung des jeweiligen Abschnitts ist, kann man das Feld nur schwer innerhalb des update-Skripts einfügen. Ja gut, möglich wäre es, aber ich habe mich damals dagegen entschieden den Anwendern in der Results-Tabelle herumzufuhrwerken, die ja explizit als Schnittstelle zu anderen Modulen oder selbst ergänztem Code gedacht ist.
Wenn man aber in die Settings geht, einmal abspeichert, dann wird die Spalte automatisch mit eingefügt, sofern sie nicht vorhanden ist. Florian, offenbar hast du für den Abschnitt die Settings in den letzten Jahren bei dem getesteten Formular nie gespeichert. Mag ja sein, dass es da nie was zu ändern gab. Aber speichert man es einmal, selbst ohne Änderungen, so wird das Feld in der Results-Tabelle ergänzt und künftige Eintragungen speichern diese Info auch in der Results-Tabelle.
Für bereits hinterlegte Einträge kann man auch die ID nicht herzaubern, da der Zusammenhang zur Submissions-Tabelle nicht mit gespeichert worden ist. Diese Einträge lassen sich auch einzeln nicht mehr löschen. Wenn man sie los werden möchte, hilft nur einmal alle löschen, und alle zukünftigen Einträge kann man dann auswählen, welche man exportieren oder auch einzeln löschen möchte.
Ich habe auch den Export jetzt so erweitert, dass er nicht mehr grundsätzlich komplett aussteigt, wenn die submission_id noch nicht in der Results-Tabelle vorhanden ist. Stattdessen wird auch da jetzt beim ersten Export die Tabelle angelegt, und nur wenn einzelne Submissions exportiert werden sollen meckert mpform jetzt an der Stelle, allerdings nur einmal. Für alle künftigen Export-Versuche sind eben beim Export diejenigen enthalten, die anhand der submission_id schon ausgewählt werden konnten. Für Submissions, deren Id nicht in der Results-Tabelle gefunden werden konnte, wird ein Kommentar im csv am Ende angefügt.
Was besseres fällt mir nicht ein. Sobald ich das csv file an den Browser zurück schicke, kann ich keine Fehlermeldung mehr anzeigen. Sobald ich einen Fehler schicke, kann ich kein csv file mehr senden. Und mit den beiden Tabellen ist es auch ein Dilemma. Klar könnte ich sagen, dass das komplett neu designed gehört, aber es gibt viele Anwender, die nun mal Daten in genau diesen Tabellenstrukturen haben. Da kann ich schlecht einfach alles wegschmeißen und neu machen. Da muss ich immer irgendwie Kompromisse eingehen, wie ich bestehende Strukturen mit den Neuerungen verheirate.
Offline
Hallo Martin,
ich habe beim letzten Mal und auch jetzt eine völlig neue Seite aufgesetzt und dort mpform frisch installiert (also trifft "seit Jahren nicht gespeichert" nicht zu). An den Einstellungen habe ich, in der Tat, zunächst nichts geändert.
Bei der 1.3.36.4 ist dann der Export beim ersten Mal mit einer roten Meldung "could not find sumbission_id table" ausgestiegen, danach ist dann das Frontend angezeigt worden. Beim zweiten Exportversuch ist #could not find submission_id 1; in die CSV geschrieben worden, also das gewünschte Verhalten.
Wenn ich, wie von Dir beschrieben, in die Einstellungen gehe und diese speichere (selbst ohne etwas zu ändern), klappt der Export der anschließend vorgenommenen Einträge.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Hallo Florian,
"eine völlig neue Seite aufgesetzt" - das ist ein wichtiger Hinweis, danke.
Dann muss ich da nochmal schauen, warum dabei die Spalte in der Results-Tabelle nicht von vorne herein angelegt worden ist.
Offline
Tja, ich weiß nicht... alle Möglichkeiten, bei denen eine Results-Tabelle initial angelegt wird, haben im Code mit drin, dass da die submission_id mit enthalten ist. Bei mir ist das auch so, wenn ich einen neuen Abschnitt anlege, darin ein erstes Feld (dabei wird die Results-Tabelle erzeugt) und wenn ich das selbst ohne eine erste Submission exportiere, ist dort eine Spalte "submission_id" enthalten.
Nun, ich habe die evalform nochmal angepasst. Wenn man das Formular abschickt, sollte jetzt auch die Spalte "submission_id" hinzugefügt werden, auch wenn sie (warum auch immer) noch nicht existiert. Wie das allerdings beim Anlegen eines neuen Formulars passieren kann, ist mir unklar. Könnte es sein, dass einzelne Dateien nicht aktualisert wurden (fehlende Schreibberechtigung für den Webserver während dem Modul Update?) - oder ist irgendwas an der Datenbank anders - vielleicht was mit SQL Strict, was noch nicht ganz sauber ist und verhindert, dass ein Statement korrekt ausgeführt wird?
Offline
Wunderbar, so funktioniert's. Danke.
Tatsächlich wurde in der mpform_results_xy.csv die Spalte submission_id erst durch das Abschicken hinzugefügt.
Ich weiß jetzt auch, weshalb die Spalte zunächst fehlte: das passiert, wenn man die Importfunktion verwendet, also nicht die Formularfelder manuell anlegt. Beim Export/Import scheint submission_id noch nicht angelegt zu werden.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
ach, Tatsache, in der import.php hat die Zeile gefehlt. Ich hab doch extra alle Vorkommen von 'CREATE TABLE' angeschaut, aber da hatte ich wohl Tomaten auf den Augen, sorry
Ich hab den Fix dafür auch noch mit für die finale Version mit übernommen.
Offline
So, nun hab ich das Release fertig gemacht (inclusive dem vorhin schon erwähnten Fix) und das Projekt jetzt auch mal umgezogen.
Die Versionen der Kollegen und unsere Arbeiten hier haben sich ja teilweise so weit voneinander weg entwickelt, dass ein gemeinsames großes Github-Projekt mit möglichst allen Modulen längst keinen Sinn mehr macht, selbst wenn manche davon (mpForm ist zwar gerade eines davon) in beiden CMS funktionieren.
Aber da ich das ja seit Jahren federführend weiterentwickle, habe ich jetzt dann auch mal den Entschluss gefasst, "meine" Module künftig unter meinem Account zu pflegen. Kurzum, hier gibts jetzt mpform 1.3.37:
Offline
florian, Slugger
Ich habe den Eintrag im Add-On-Repository aktualisiert.
https://addons.wbce.org/pages/addons.php?do=item&item=2
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Pages: 1