Frage Advancedform_XH Parameter in URL übergeben

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Schatz
Posts: 16
Joined: Tue May 01, 2018 9:12 am

Frage Advancedform_XH Parameter in URL übergeben

Post by Schatz » Sun May 20, 2018 8:59 am

Hi,

ich baue gerade eine kleine Webseite für einen Verein mit cmsimple_XH. Ich habe mir dann das Mailformular angesehen und es sind Parameter möglich wie z.B.?mailform&xh_mailform_subject=Anfrage
Nur wird der Betreff mit "Anfrage" gefüllt. Da mir aber die normale Kontaktform nicht ausreicht und ich wegen eines anderen Anwendungsfalles bereits Advancedform_XH im Einsatz habe, wollte ich diese Funktion auch gerne für mein Kontaktformular mit Advancedform_XH verwenden.
In der Anleitung habe ich etwas von Hooks gelesen. Bevor ich tiefer in das Thema einsteige wollte ich fragen, ob es auch einen leichteren weg gibt?
Hab schon etwas rumprobiert, aber leider ohne Erfolg.
Würd mich über einen Tipp freuen.

Gruß, Michael

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Frage Advancedform_XH Parameter in URL übergeben

Post by frase » Sun May 20, 2018 9:57 am

Falls es nur um den Betreff in Advancedform geht (?), dann kannst du das in der Plugin-Konfiguration einstellen:

Plugins -> Advancedform -> Sprache ->
Abschnitt: Mail -> Subject -> %1$s auf %2$s gesendet von %3$s

Platzhalter:
%1$s = der Name des Formulars
%2$s = deine Serveradresse
%3$s = Ip des Besuchers

Du kannst dort eigenen Text einfügen und auch die Platzhalter beliebig verwenden - oder auch weglassen

Schatz
Posts: 16
Joined: Tue May 01, 2018 9:12 am

Re: Frage Advancedform_XH Parameter in URL übergeben

Post by Schatz » Sun May 20, 2018 12:40 pm

Hi, sorry, dass ich mich etwas falsch ausgedrückt habe, aber ich meine diese Funktion der Standardmailform:

Code: Select all

Since CMSimple_XH 1.6.5 it is possible to alter the mail subject field preset by a parameter

{{{XH_mailform('myMailSubject');}}}

or by a variable in the query string

<a href="?mailform&xh_mailform_subject=Registration>Ask for registration</a>
<a href="?myMailformPageWithPluginCall&xh_mailform_subject=Registration>Ask for registration</a>

Note, that more than one mail form on the same HTML page may not work as expected. Since CMSimple_XH 1.6.2 at most one mailform is displayed in this case. 
http://wiki.cmsimple-xh.org/doku.php/mailform#embedding

Im Prinzip also die Funktionalität der query strings. Vermutlich ist das mit Advancedforms nicht standardmäßig möglich?

Das Problem mit dem Standardmailformular ist, dass es aus einen mir nicht ersichtlichen Grund ein zweites h1 Element erzeugt wird, obwohl ich folgendes verwende:

Code: Select all

<article>
                <h1><?php echo pagename(); ?></h1>
                <?php echo content();?>
</article>
Es wird ein h1 Element für die Überschrift pagename() erzeugt und ein zweites h1 Element für "Kontakt-Formular". Dies ist m.E. nicht richtig und "Kontakt-Formular" müsste in pagename() geschrieben werden. Außerdem wird ein <div id="xh_mailform"> zuviel ausgegeben (lt. Validator). Kann man die Standardform irgendwie editieren?

Gruß, MIchael

Schatz
Posts: 16
Joined: Tue May 01, 2018 9:12 am

Re: Frage Advancedform_XH Parameter in URL übergeben

Post by Schatz » Sun May 20, 2018 1:22 pm

Schatz wrote:
Sun May 20, 2018 12:40 pm
Es wird ein h1 Element für die Überschrift pagename() erzeugt und ein zweites h1 Element für "Kontakt-Formular". Dies ist m.E. nicht richtig und "Kontakt-Formular" müsste in pagename() geschrieben werden. Außerdem wird ein <div id="xh_mailform"> zuviel ausgegeben (lt. Validator). Kann man die Standardform irgendwie editieren?
Selbiges ist mir bei der Suche etc. aufgefallen.
Um das zu ändern habe ich testweise die Datei controller.php ab Zeile 104 wie folgt geändert:

Code: Select all

    public function handleMailform()
    {
        global $cf, $tx, $title, $o;

        if ($cf['mailform']['email'] != '') {
            $title = $tx['title']['mailform'];
	    $cf['site']['title'] = $title;
            //$o .= "\n" . '<div id="xh_mailform">' . "\n";
            //$o .= '<h1>' . $title . '</h1>' . "\n";
            $mailform = $this->makeMailform();
            $o .= $mailform->process();
            //$o .= '</div>' . "\n";
        } else {
            shead(404);
        }
Soll ich dazu einen Pullrequest bei github erstellen oder wie bildet Ihr solch ein Verhalten ab?

Gruß, Michael

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Frage Advancedform_XH Parameter in URL übergeben

Post by frase » Sun May 20, 2018 1:58 pm

Hm, da habe ich doch wohl ziemlich falsch verstanden.
Ich glaubte, dass du auf jeden Fall Advancedform verwenden willst, da dir das Standard-Formular nicht ausreicht.

Wir hatten schonmal eine Diskussion über die Übergabe von Daten per Query-String in Advancedform:
viewtopic.php?f=16&t=12066#p55949

Wenn du dir das mal alles durchliest (isnichsoviel), findest du vielleicht das Gewünschte.
Es gibt auf jeden Fall die Möglichkeit für jedes Formular ein Template zu erzeugen.

Das h1-Problem verstehe ich auch nicht so ganz.
Du packst deinen Inhalt in einen <article> und möchtest die h1-Überschrift automatisch auf allen Seiten per pagename() anzeigen?
Das finde ich zumindest ungewöhnlich.
Die jeweilige erste h1 sollte im Editor händisch gesetzt werden (ab XH 1.7.x).
Das Standard-Formular erzeugt - so glaube ich zu wissen - den gesamten Inhalt inkl. h1 automatisch in einem DIV. Text davor oder dahinter ist nicht vorgesehen.
Wiki wrote:If you want to add any informative text before or after the mail form, however, that is not possible.

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Frage Advancedform_XH Parameter in URL übergeben

Post by frase » Sun May 20, 2018 2:23 pm

Schatz wrote:
Sun May 20, 2018 1:22 pm
Soll ich dazu einen Pullrequest bei github erstellen oder wie bildet Ihr solch ein Verhalten ab?
"Pullrequest bei github" wäre genau der richtige Weg oder eben ein Beitrag unter Issues - falls das Anliegen berechtigt ist ;-)
Ich fürchte allerdings, dass hier ein Missverständnis vorliegt. (siehe meinen letzten Post "h1")

Schatz
Posts: 16
Joined: Tue May 01, 2018 9:12 am

Re: Frage Advancedform_XH Parameter in URL übergeben

Post by Schatz » Sun May 20, 2018 3:12 pm

frase wrote:
Sun May 20, 2018 2:23 pm
"Pullrequest bei github" wäre genau der richtige Weg oder eben ein Beitrag unter Issues - falls das Anliegen berechtigt ist ;-)
Ich fürchte allerdings, dass hier ein Missverständnis vorliegt. (siehe meinen letzten Post "h1")
Denke auch, dass ich das falsch verstanden habe. Ich wusste nicht, dass das h1 Element manuell in der Seite eingebunden werden soll. Dann stell ich die Seite entsprechend um. Danke für die Info.

Bei der Mailform gibt es meines Erachtens dennoch einen Fehler, lt. Validator: Duplicate ID xh_mailform
Sieht man auch auf der Demoseite:

Code: Select all

<div id="xh_mailform">
<h1>Kontakt-Formular</h1>
<div id="xh_mailform"></div>
https://demo.cmsimple-xh.dk/de/?&mailform

Gruß, Michael

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Frage Advancedform_XH Parameter in URL übergeben

Post by frase » Sun May 20, 2018 3:36 pm

Schatz wrote:
Sun May 20, 2018 3:12 pm
Bei der Mailform gibt es meines Erachtens dennoch einen Fehler, lt. Validator: Duplicate ID xh_mailform
Sieht man auch auf der Demoseite: ...
Sieht so aus, als hättest du tatsächlich einen Bug gefunden.
Auch in meiner loKalen Installation taucht der xh_mailform-Div zweimal auf.
Das hat bisher noch keiner bemerkt. :shock:
Jetzt wäre der richtige Zeitpunkt für ein Issue auf Github ...

(Ich habe es schonmal hier gemeldet.)
Last edited by frase on Sun May 20, 2018 4:03 pm, edited 1 time in total.

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Frage Advancedform_XH Parameter in URL übergeben

Post by frase » Sun May 20, 2018 3:54 pm

Das ist übrigens auch schon in XH 1.6.10 so - vielleicht auch schon früher ?
mailform-bug.png
You do not have the required permissions to view the files attached to this post.

lck
Posts: 2963
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Frage Advancedform_XH Parameter in URL übergeben

Post by lck » Mon May 21, 2018 12:25 pm

frase wrote:
Sun May 20, 2018 3:36 pm
Sieht so aus, als hättest du tatsächlich einen Bug gefunden.
Auch in meiner loKalen Installation taucht der xh_mailform-Div zweimal auf.
Das hat bisher noch keiner bemerkt.
Siehe dazu viewtopic.php?t=9341#p49766
Das <div id="xh_mailform"></div> ist wichtig für einen OnePager und wird als Sprungpunkt/Anker gebraucht, hier taucht die id dann nur einmal auf (Beispiel).
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

Post Reply