WBCE CMS – Way Better Content Editing.
You are not logged in.
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?
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
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
florian
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
stefanek
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
florian
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
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
florian, riconico
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
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?
Last edited by pfreud01 (03.02.2021 12:13:22)
Offline
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
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
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
Was auch immer du geändert hast, jetzt kommt keine Fehlermeldung beim Speichern mehr.
Danke!
Offline
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.
Last edited by mrbaseman (11.02.2021 11:17:10)
Offline
Pages: 1