WBCE Home | WBCE Hilfe | WBCE Addon Repository | Impressum | Datenschutz

WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 01.06.2019 16:35:23

tomno399
Member

mpform Eintragungen im Frontend darstellen

Man kann alle Eintragungen als csv-Datei exportieren. Ich hätte gern ein Droplet(?), um einzelne auswählbare Feld-IDs listenmäßig im Frontend auszugeben. Ist das irgendwie möglich? Ich bin leider kein Programmierer.

Oder kann man die csv-Exportfunktion so gestalten, dass sie mit dem Modul "csv2table" im frontend angezeigt wird?

Last edited by tomno399 (01.06.2019 16:44:07)

Offline

#2 02.06.2019 18:52:40

berny
Member

Re: mpform Eintragungen im Frontend darstellen

du musst das schon genauer definieren, welche Felder usw...

über die csv ist es eher umständlicher als direkt aus der DB zu lesen.

Online

#3 02.06.2019 20:04:31

florian
Administrator

Re: mpform Eintragungen im Frontend darstellen

Anbei ein Droplet.
Wichtig: Es findet keine Fehlerprüfung statt, bei Falscheingaben (ungültige Tabelle, nichtexistentes Feld) verursacht das Droplet eine "weiße Seite" (Server Error).
Aufruf: [[getfielddata?table=X&field=Y&type=Z]]
X: Die Namensendung der Ergebnistabelle, siehe "Allgemeine Optionen" des mpform-Abschnitts
Y: Die ID des auszugebenden Feldes (Zahl), siehe mpform-Feldliste
Z: Art der Ausgabe, vordefiniert: list, table, div, blank

Beispiele:
[[getfielddata?table=105&field=2&type=list]]
[[getfielddata?table=105&field=3&type=table]]
[[getfielddata?table=105&field=4&type=div]]

Wenn du mehrere Felder in Tabellenform brauchst, ginge das grundsätzlich auch, müsste dann aber auf den individuellen Anwendungsfall angepasst werden - also welche IDs, wie viele Felder in einer Zeile usw.


Nicht ärgern. Nur wundern.

Online

Liked by:

mrbaseman, berny

#4 03.06.2019 08:33:21

tomno399
Member

Re: mpform Eintragungen im Frontend darstellen

Herzlichen Dank Florian, das Droplet funtioniert. Und du hast mein Problem schon erahnt ...
Ich habe 13 Felder (Vorname, Nachname, Nationalität, Verein, Wertung, Mail, Telefon usw.). Von den 13 Feldern möchte ich 4 oder 5 Felder in einer Liste als Tabellenform ausgeben:
1.   |   Nachname, Vorname   |   Verein    |  Wertung

Das <ul> habe ich in <ol> abgewandelt. Aber die anderen Felder bekomme ich nicht in dieselbe Zeile. Kannst du da nochmal helfen?

Offline

#5 03.06.2019 08:54:54

florian
Administrator

Re: mpform Eintragungen im Frontend darstellen

Anbei das erweiterte Droplet:
- mehrere Felder ausgeben: Aufruf [[getfielddata?table=105&field=2,3,4&type=table]]
- Listenformate: [[getfielddata?table=105&field=2,3,4&type=olist]] oder [[getfielddata?table=105&field=2,3,4&type=ulist]]


Nicht ärgern. Nur wundern.

Online

#6 03.06.2019 09:25:46

tomno399
Member

Re: mpform Eintragungen im Frontend darstellen

Danke Florian, das klappt soweit. Nur hätte ich gern in der Tabellenausgabe noch die laufende Nummer implementiert, dann wäre alles optimal.
Denn das Listenformat kann ich nicht "spaltenmäßig" (also mit mehr Abstand zwischen den Feldern in der Zeile) trennen.

Offline

#7 03.06.2019 09:44:32

florian
Administrator

Re: mpform Eintragungen im Frontend darstellen

anbei


Nicht ärgern. Nur wundern.

Online

#8 03.06.2019 10:49:48

tomno399
Member

Re: mpform Eintragungen im Frontend darstellen

Danke Florian, die Tabelle klappt wie gewünscht!
Dass die [[getfielddata?table=105&field=2,3,4&type=olist]] und [[getfielddata?table=105&field=2,3,4&type=ulist]] nun auch eine Nummer bekommen, kann man ja notfalls auskommentieren.

Offline

#9 03.06.2019 11:08:40

florian
Administrator

Re: mpform Eintragungen im Frontend darstellen

Ah, guter HInweis, hatte ich gar nicht bedacht.
Anbei eine optimierte Version.
Die Nummerierung lässt sich jetzt mit dem Parameter num aktivieren.
Default: num=0, also keine Nummerierung; num=1 setzt die fortlaufende Nummer davor.
[[getfielddata?table=105&field=2,3,4&type=table&num=1]]
Bei Tabellen in einer eigenen Zelle, sonst mit Leerschritt getrennt.

Die Reihenfolge ist derzeit so, wie die Einträge im Formular vorgenommen worden sind. Für eine Rangliste ist das also aktuell eher ungeeignet. Da müsste dann noch eine Sortierung nach dem Wert eines bestimmten Feldes (Wertung) stattfinden. Da das nicht ganz trivial Ist, sei mir die Frage gestattet, weshalb Du eine Rangliste mit mpform bauen willst? Warum nicht mit WYSIWYG oder Itemz plus DynamicTable?


Nicht ärgern. Nur wundern.

Online

Liked by:

mrbaseman

#10 03.06.2019 13:19:29

tomno399
Member

Re: mpform Eintragungen im Frontend darstellen

Danke Florian, klappt alles! Warum ich das so mache:
Weil mir nichts Besseres einfiel. Bei der Anmeldung mit mpForm geht es um die Reihenfolge der Anmeldungen, weil die Teilnehmerzahl begrenzt ist. Ein Sortieren oder sonstiges wird nicht benötigt. Dann braucht der Admin bis zum Meldeschluss oder Erreichen der Teilnehmergrenze nicht mehr Hand anlegen.

Was mir auffiel: Bei den Eintragungen steht unten rechts im Backend "eingetragen: 10:55, 03.06.2019". Die Uhrzeit hinkt aber genau zwei Stunden hinter der aktuellen Zeit hinterher.

Offline

Liked by:

florian

#11 03.06.2019 13:26:58

mrbaseman
Developer

Re: mpform Eintragungen im Frontend darstellen

tomno399 wrote:

Was mir auffiel: Bei den Eintragungen steht unten rechts im Backend "eingetragen: 10:55, 03.06.2019". Die Uhrzeit hinkt aber genau zwei Stunden hinter der aktuellen Zeit hinterher.

oh, dann fehlt noch irgendwo die Berücksichtigung der Zeitzone. Notier ich mir und das wird in einer der kommenden Versionen korrigiert. Das haben wir an diversen Stellen in den Modulen und im Core... sind wir neulich in einem anderen Zusammenhang auch drüber gestolpert

Online

#12 25.06.2019 13:43:10

tomno399
Member

Re: mpform Eintragungen im Frontend darstellen

@Florian
Das Droplet fügt Neuanmeldungen immer als Nummer 1 ein und verschiebt somit die bereits Angemeldeten auf die nachfolgenden Plätze.

Frage: Kann man mit dem Droplet die Anmeldungen als letzte freie Ziffer "nachfolgend" einfügen?

Danke und Gruß Thomas

Offline

#13 25.06.2019 14:03:24

florian
Administrator

Re: mpform Eintragungen im Frontend darstellen

Ändere im Droplet die Zeile

$result = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_mpform_results_".$table);

zu

$result = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_mpform_results_".$table." ORDER BY submission_id ASC");

Nicht ärgern. Nur wundern.

Online

#14 25.06.2019 14:47:11

tomno399
Member

Re: mpform Eintragungen im Frontend darstellen

@Florian, das klappt. Danke!

@mrbaseman: Das Löschen einer Eintragungs-ID im Backend entfernt die Eintragung im Backend aber leider nicht aus der Datenbank.

Gruß Thomas

Offline

#15 04.07.2019 23:28:26

mrbaseman
Developer

Re: mpform Eintragungen im Frontend darstellen

Hi Thomas,

mpForm hat zwei verschiedene Arten die gesendeten Daten zu speichern. Eine Tabelle ist die für die Ansicht im Backend. Dort wird das komplette Formular in einen html-formatierten Text gepackt, ähnlich wie es auch per Mail verschickt wird. Aus dieser Tabelle kannst du im Backend auch Zeilen löschen.

Die andere Art ist eher vergleichbar einem Excel-Sheet. Dort sind Tabellen-Spalten (die Felder) und Zeilen (die Einträge) enthalten. Die kannst du aus dem Backen auch als CSV-File exportieren, aber diese Tabelle lässt sich nicht direkt im Backend bearbeiten. Wenn du dort Zeilen rauslöschen möchtest, dann müsstest du das mit dem Adminer tun.

Zu den eingetragenen Zeiten: kannst du bitte mal die angehängte Vorabversion testen?

Online

#16 05.07.2019 07:50:44

florian
Administrator

Re: mpform Eintragungen im Frontend darstellen

Die andere Art ist eher vergleichbar einem Excel-Sheet. Dort sind Tabellen-Spalten (die Felder) und Zeilen (die Einträge) enthalten. Die kannst du aus dem Backend auch als CSV-File exportieren, aber diese Tabelle lässt sich nicht direkt im Backend bearbeiten.

Hm, wäre es sehr aufwändig, das Löschen von Einträgen sowohl in der submissions- als auch in der results-Tabelle zu implementieren (oder gar: dies optional auswählbar bei den Erweiterten Formulareinstellungen zu hinterlegen)? Ich meine, wenn man ein Formular aufsetzt und dann beispielsweise Spam-/Testeinträge löscht, möchte man diese ja eigentlich nicht mit exportieren.


Nicht ärgern. Nur wundern.

Online

#17 05.07.2019 09:55:37

mrbaseman
Developer

Re: mpform Eintragungen im Frontend darstellen

florian wrote:

Hm, wäre es sehr aufwändig, das Löschen von Einträgen sowohl in der submissions- als auch in der results-Tabelle zu implementieren (oder gar: dies optional auswählbar bei den Erweiterten Formulareinstellungen zu hinterlegen)?...

optional auswählbar bei den Erweiterten Formulareinstellungen ist ne gute Idee. Ich muss mal schauen wie aufwändig das ganze ist.

Edit: Typos korrigiert

Last edited by mrbaseman (05.07.2019 10:28:24)

Online

Liked by:

florian

#18 06.07.2019 07:44:03

tomno399
Member

Re: mpform Eintragungen im Frontend darstellen

@mrbaseman
Die Vorabversion werde ich wegen der Zeiten testen, muss aber warten, bis die nächsten Einträge kommen. Denn testen will ich live nicht mehr, weil zu viele Leute dranhängen. Das mit dem Adminer machte ich schon, aber ich will meinen Redakteuren nicht unbedingt dieses gewaltige Tool zumuten bzw. sehr sehr vorsichtig damit sein.
@Florian
Ich benutze die Tabellendarstellung im Droplet. Wie bekomme ich in einer Zeile rechts ein leeres Feld eingebaut, in das ich manuell zum Beispiel ja oder nein eintragen könnte. Oder muss ich ein leeres Feld in mpForm gleich mit anlegen lassen? Aber dann könnten alle Nutzer da was reinschreiben. Hmmm, keine Ahnung.

Last edited by tomno399 (06.07.2019 07:49:16)

Offline

#19 06.07.2019 08:52:28

florian
Administrator

Re: mpform Eintragungen im Frontend darstellen

Zur Uhrzeitangabe im BE: an zwei Stellen richtig, an einer Stelle noch nicht:
attachment.php?item=1791&download=1


Zum Zusatzfeld: geht nur etwas umständlich:
1) Im Formular ein Feld "verborgenes Feld" hinzufügen
attachment.php?item=1792&download=1
2) Im Dropletaufruf die ID des verborgenen Feldes ergänzen (im Beispiel also 7)

3) die dort anzuzeigenden Angaben via Adminer ergänzen - in der linken Liste aller Tabellen bei Tabelle mod_mpform_results_### auf "Zeigen" klicken, dann einen Doppelklick in die Spalte, die zum ergänzten verborgenen Feld gehört, gewünschten Wert einfach eintippen und unten dann auf "Speichern" klicken.
attachment.php?item=1793&download=1

Last edited by florian (06.07.2019 08:55:24)


Nicht ärgern. Nur wundern.

Online

Liked by:

mrbaseman

#20 06.07.2019 09:29:41

tomno399
Member

Re: mpform Eintragungen im Frontend darstellen

Danke Florian! Das mit dem verborgenen Feld war mir nicht (mehr?) bewusst. Spitze Formular-Modul!

Offline

Liked by:

florian

#21 06.07.2019 14:35:41

mrbaseman
Developer

Re: mpform Eintragungen im Frontend darstellen

Ich muss mich entschuldigen: Das mit dem Löschen von Einträgen war tatsächlich ein Bug. Das Verhalten wie ihr es gewünscht habt, dass man aus dem Backend heraus auch aus der results-Tabelle die entsprechenden Zeilen löschen kann war eigentlich gewünscht und schon implementiert. Man musste den Beitrag anklicken und in der Ansicht, die dann aufgeht (also nicht das Popup wenn man mit dem Mauszeiger drüber geht, sondern das was kommt, wenn man dann wirklich drauf klickt), da gibt es einen Löschen Button, der sowohl aus der Submissions-Tabelle als auch aus der Results-Tabelle die entsprechende Zeile für dieses Submission-ID löscht.

Leider war das auf der Übersichtsseite, auf die man zunächst kommt, nicht so implementiert. Dort ist Ajax aktiv und reagiert wenn man auf das Trash-Symbol klickt. Das entsprechende Skript habe ich in der neuen Version 1.3.32 nun erweitert, so dass auch aus der Übersichtsseite heraus künftig aus beiden Tabellen die entsprechende Zeile für die Submission-ID gelöscht wird.

Die Zeiten sollten jetzt auch überall korrekt sein. Für die Eintragung in der Datenbank wird die DEFAULT_TIMEZONE als Referenz genommen und im Backend wird das dann ggf. nochmal für den angemeldeten Benutzer auf dessen TIMEZONE umgerechnet. Von daher kann es sein dass innerhalb des Eintrags das Kästchen, das schon grün war, in den Fällen nicht stimmt, in denen ein Nutzer angeledet ist, dessen TIMEZONE sich von der DEFAULT_TIMEZONE unterscheidet. Der EIntrag wird nämlich mit der DEFAULT_TIMEZONE zum Zeitpunkt des Submits schon als Text in die Submissions-Tabelle geschrieben. Das bisher rote Kästchen und der EIntrag in der Übersichtsseite sollte aber auch in den etwas exotischeren Fällen jetzt stimmen.

Online

#22 06.07.2019 16:29:12

florian
Administrator

Re: mpform Eintragungen im Frontend darstellen

Getestet, funktioniert  thumb_up
(Wichtig: Browsercache vor dem Testen leeren, sonst wird die vorherige Version von backend.js aus dem Cache geladen und das Ajax-Löschen klappt nicht)

Die Uhrzeiten stimmen jetzt auch überall.


Nicht ärgern. Nur wundern.

Online

#23 06.07.2019 22:30:43

mrbaseman
Developer

Re: mpform Eintragungen im Frontend darstellen

Huch, an der backend.js hab ich dieses mal glaube ich gar nix geändert. Es war das serverseitige Interface in der ajax.php.

Aber ich hatte beim Testen auch so Effekte, dass ich mehrfach die Backend Seite neu laden musste bis meine Änderungen aktiv wurden.

Ajax will wohl beim Update ein bisschen getätschelt werden.... smile

Online

Board footer

Powered by FluxBB

up