WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 07.03.2019 08:19:59

florian
Administrator

Felder vorausgefüllt per URL-Parameter?

Bei miniform kann über URL-Parameter an bestimmte Felder ein Wert übergeben werden, siehe https://miniform.dev4me.com/module-help … nd-tricks/ "Field data in links".
Bei mpform geht das nicht, oder? Ließe sich das irgendwie einbauen?


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#2 07.03.2019 13:09:28

mrbaseman
Developer

Re: Felder vorausgefüllt per URL-Parameter?

per URL Parameter gibt es diese Möglichkeit bisher nicht, aber man kann eine function private_function_before_new_form($section_id) erstellen, in der man je nach Referrer für bestimmte Sections bestimmte Vorbelegungen setzen kann. Dazu setzt man die Session Variable $_SESSION['mpf']['field'.$iFID] wobei $iFID die Field-ID des jeweiligen Feldes ist. Je nach übergebener $section_id und ggf. auch Referrer kann man in der Funktion dann unterschiedliche Dinge setzen.

Das ganze als Get-Parameter vom Modul her vorzubelegen wäre glaub ich auch kein allzu großer Aufwand.

Offline

Liked by:

florian

#3 07.03.2019 14:19:23

mrbaseman
Developer

Re: Felder vorausgefüllt per URL-Parameter?

Update: Man könnte es in einem berühmten länglichen Einzeiler implementieren.
Der Übersichtlichkeit halber mach ich es dann aber doch auf mehreren Zeilen... ich muss es dann mal noch ein bisschen testen, und wenn dabei nichts Auffälliges auftaucht, dann gibt's ein neues Release das diese Fuktionalität auch hat.

Offline

Liked by:

stefanek

#4 07.03.2019 21:57:42

mrbaseman
Developer

Re: Felder vorausgefüllt per URL-Parameter?

In Version 1.3.29 kann man die Felder jetzt auch über den URL-Query-String belegen.
Man muss die passenden Werte URL-codiert anhängen so in der Form "?fieldXY=value&fieldZ=sonstwas". Leerzeichen usw. eben entsprechend mit %20 und so weiter.

Offline

Liked by:

florian

#5 01.02.2021 13:38:40

pfreud01
Mitglied

Re: Felder vorausgefüllt per URL-Parameter?

mrbaseman schrieb:

In Version 1.3.29 kann man die Felder jetzt auch über den URL-Query-String belegen.
Man muss die passenden Werte URL-codiert anhängen so in der Form "?fieldXY=value&fieldZ=sonstwas". Leerzeichen usw. eben entsprechend mit %20 und so weiter.

Interessant. Habe das in ein Textfeld (einzeilig) unter Vorgabewert eingesetzt, aber keinen Erfolg. Wie wäre der Code dann für den Namen und die Emailadresse des angemeldeten Benutzers?

?fieldXY=DISPLAY_NAME&curr={NAME}

wobei XY die Field-ID ist? Ich steh noch am Schlauch.

Offline

#6 01.02.2021 15:37:17

pfreud01
Mitglied

Re: Felder vorausgefüllt per URL-Parameter?

Selber rausgefunden. So geht es:

- Verborgenes Feld wählen
- Vorgabewert {USER}
- Titel: Mein Name (o.ä.)
- Speichern

Im Frontend ist das Feld verborgen und nur der Rest des Formulars ist da. (In diesem konkreten Fall müssen die eingeloggten Kids ihre Hausaufgaben an die Lehrkraft schicken.)

Wenn das Formular abgeschickt wird, steht in den Daten drin:
Mein Name: [Benutzername des eingeloggten Benutzers]
... und der Rest des Formulars.

Hinweis: Das Formular ist in auf einer privaten Seite eingestellt, d.h. es ist nur erreichbar, wenn der User (Schüler/in) eingeloggt ist. Somit wird der Username automatisch übertragen und muss nicht eingetippt werden (bzw. kann verändert werden)

Ich hoffe, es ist auch für andere hilfreich. :-)

Offline

Liked by:

florian, riconico

#7 02.02.2021 22:46:23

mrbaseman
Developer

Re: Felder vorausgefüllt per URL-Parameter?

In dem Template für die Email an den Seitenbetreiber (unter Allgemeine Optionen) kannst du auch einfach zusätzlich zu {DATA} den Platzhalter {USER} einfügen. Dieser enthält den Namen des angemeldeten Benutzers. Das läuft dann nicht über den Browser des Nutzers sondern wird direkt von mpform bei der Verarbeitung des Formulars ausgefüllt.

Offline

#8 03.02.2021 11:57:43

pfreud01
Mitglied

Re: Felder vorausgefüllt per URL-Parameter?

Ja, das ist praktisch, danke.

Ich habe jetzt nur noch ein Problem. Stelle ich es so ein, dass bei der Mail an den Seitenbetreiber (Allgemeine Optionen) bei Absendername "Name des angemeldeten Nutzers" angezeigt werden soll, erhalte ich schon beim Speichern dieser Einstellung diesen Fehler:

Warning: Invalid argument supplied for foreach() in ..../modules/mpform/save_settings.php on line 179

Und er übernimmt die Einstellung nicht. An der betreffenden Stelle finde ich im Code:

[== PHP ==]
    // pick out the ones we already had and which are still in the current choice
    foreach($curr_email_fromname as $tmp_frmn){
        if(in_array($tmp_frmn, $email_fromname_field)){
            $tmp_fromname_field[] = $tmp_frmn;
        }
    }

Leider blicke ich da nicht durch....

Edit: Das Formular ist auch ziemlich langsam und ist bestimmt 30 Sekunden beschäftigt, bis die Erfolgsmeldung kommt, auch ohne gesendeten Anhang. Hängt das mit der Fehlermeldung zusammen?

Beitrag geändert von pfreud01 (03.02.2021 12:13:22)

Offline

#9 03.02.2021 23:37:11

mrbaseman
Developer

Re: Felder vorausgefüllt per URL-Parameter?

Das konnte ich jetzt nicht  reproduzieren. Welche php Version läuft da und welche mpform Version ist das? foreach klingt verdächtig nach etwas das bei neuerem php plötzlich in manchen Sonderfällen nicht mehr so funktioniert wie bisher.

Das andere ist: den Namen des angemeldeten Benutzers übernimmst du damit in das From-Feld. Das ist dann nochmal eine andere Variante. Mit dem {USER} wäre die Info ja im Mail Body.

Offline

#10 09.02.2021 22:04:58

pfreud01
Mitglied

Re: Felder vorausgefüllt per URL-Parameter?

Sorry für die späte Antwort. Hier die Daten zur Fehleranalyse:
PHP Version: 7.3.27
WBCE 1.4.0
mpform: 1.3.36

Das mit den Namen habe ich hinbekommen. Und dass das Formular so lange gebraucht hat, war wohl eine temporäre Angelegenheit (Internetdurchsatz mau). Es ist wieder schnell wie gewohnt.

Danke!

Offline

#11 09.02.2021 23:51:16

mrbaseman
Developer

Re: Felder vorausgefüllt per URL-Parameter?

ich glaub ich hab gerade auch den Grund für die Warnings entdeckt (manchmal hilft es DInge einfach mal sacken zu lassen und später nochmal drüber zu schauen). Kannst du die angehängte Version mal testen und schauen ob die Warnings dann weg sind?

Offline

#12 10.02.2021 15:39:29

pfreud01
Mitglied

Re: Felder vorausgefüllt per URL-Parameter?

Was auch immer du geändert hast, jetzt kommt keine Fehlermeldung beim Speichern mehr.
Danke!

Offline

#13 11.02.2021 11:16:04

mrbaseman
Developer

Re: Felder vorausgefüllt per URL-Parameter?

Danke für die Rückmeldung. Wenn sich die sonstigen Probleme (langsames Abschicken, Werte nicht übernehmen) aus #8 anderweitig aufgeklärt haben, würde ich allein wegen der Warnung noch kein neues Release machen, hab das aber in meiner Codebasis. Es wird dann auf jeden Fall in der nächsten offiziellen Version drin sein, auf die man auch direkt updaten werden kann.

Beitrag geändert von mrbaseman (11.02.2021 11:17:10)

Offline

Fußzeile des Forums

up