Anleitung zur Erstellung eines Formulars

HTML- und CSS-Kenntnisse sind nötig

Generelles:

Der Inhalt einer Formulardatei:

Generelle Regeln für HTML-Formular-Elemente:

Inhalt aus der Sprachdatei Benutzen "lang/formular_(Language Einstellung des CMS).txt"

Besonderer Inhalt für das name="" Attribut der HTML-Formular-Elemente:

type_mail Der Inhalt wird auf eine gültige E-Mail Adresse überprüft.
type_mail_cc ist für ein HTML Formular Checkbox Element. Wenn das Häckchen gesetzt ist wird die Inhalt des HTML Formular Elements mit dem name="type_mail" Benutzt um eine Kopie der E-Mail an diese zu Senden.
Tipp, wenn immer eine Kopie gesendet werden soll:
Das HTML-Element name="type_mail" zum Pflichtfeld machen.
Das HTML-Element name="type_mail_cc" mit dem Attribut checked="checked" versehen und es über CSS auf display:none setzen.
type_title Wird nur für den Platzhalter {TITLE} verwendet
type_forename Wird nur für den Platzhalter {FORENAME} verwendet
type_name Wird nur für den Platzhalter {NAME} verwendet
SUBMIT(_Zahl) Absende-Button. Bei mehreren ist die Angabe (_Zahl) zu verwenden, z.B. SUBMIT_1, SUBMIT_2 usw.
SPAM_TASK Für das Lösungs-Element der Spam-Frage. Die Spam-Frage wird durch den Platzhalter {SPAM_TASK} gestellt.
ASTALAVISTA_(Zahl) Irgend ein HTML-Formular-Element, dass, wenn es verändert wird, den Absender als Spammer erkennt. Bei mehreren ist die Angabe (_Zahl) zu verwenden, z.B. ASTALAVISTA_1, ASTALAVISTA_2 usw.

Vorgegebene HTML-Classnamen für HTML-Elemente:

Für Meldungs-HTML-Elemente:

fm-success-nodisplay Erfolgreich versendet.
fm-mandatory-nodisplay Nicht alle Pflichtfelder wurden ausgefüllt.
fm-mailvalid-nodisplay E-Mail-Adresse nicht gültig.
fm-senttoofast-nodisplay Die Absende-Wartezeit ist noch nicht abgelaufen.
fm-mailcopy-nodisplay Es wurde keine E-Mail Adresse im HTML-Formular-Element name="type_mail" eingetragen und das HTML-Formular-Element name="type_mail_cc" ist aktiv, deshalb kann keine Kopie versendet werden.
fm-box-type Wird bei Eintreten eines Ereignisses zu "fm-box-success" oder ".fm-box-error".
Kann benutzt werden, um alle Meldungen in einer Box unterzubringen.
Bei Eintreten eines Ereignisses wird aus dem entsprechenden Classnamen "-nodisplay" entfernt.
Wenn einer dieser Classnamen nicht verwendet wird, gibt es auch für dieses Ereignis keine Meldung.
Beispiel:

Für HTML-Elemente:

ein_class_name-mailnovalid Wenn im HTML-Formular-Element mit dem name="type_mail" keine gültige E-Mail-Adresse eingegeben, wurde wird "-mailnovalid" aus allen Classnamen entfernt.
fm-no-mtext HTML-Formular-Elemente, die diesen Classname haben, werden nicht im E-Mail-Text verwendet. Weiter Infos siehe "E-Mail".

Pflichtfelder definieren:

Die Pflichtelemente werden über den Classnamen gesteuert.
Sobald im Classnamen der Text "-fm-(eine Zahl)-ma" enthalten ist, wird es ein Pflichtelement.
Wenn so ein Element nicht ausgefüllt oder selektiert wird, wird der Text "-fm-(eine Zahl)-ma" aus dem Classnamen entfernt und zwar bei allen, die den gleichen Text "-fm-(eine Zahl)-ma" haben.
Beispiel:
<label id="test" class="labelclass-fm-1-ma">Namen</label>
<input type="text" name="test" class="inputclass-fm-1-ma" />
Bei Nicht-Ausfüllen wird daraus
<label id="test" class="labelclass">Namen</label>
<input type="text" name="test" class="inputclass" />
So können jetzt die Classnamen "labelclass" und "inputclass" für die Kenntlichmachung des nicht ausgefüllten Elements verwendet werden.
Für beide kann natürlich auch nur ein Classname verwendet werden.
<label id="test" class="eineclasse-fm-1-ma">Name</label>
<input type="text" name="test" class="eineclasse-fm-1-ma" />

Platzhalter, die im HTML-Formular verwendet werden:

{URL_SRC} Der Url-Pfad im Ordner "formular" z.B. für ein Bild oder eine Javascriptdatei
{SPAM_TASK} Die Spamfrage zu dem HTML-Formular-Element mit dem name="SPAM_TASK".

Plugin-eigene Elemente für die E-Mail:

Pflicht-Elemente:

<mail_subject></mail_subject> Der E-Mail-Betreff.
<mail_txt></mail_txt> Der E-Mail-Text. Enthaltene Zeilenumbrüche, Leerzeichen und Tabs werden verwendet.

Optinale E-Mail-Adressen-Elemente:

Wenn angegeben, werden diese benutzt. Es gelten die gleichen Regeln wie in den Plugin-Einstellungen.
<mail_from></mail_from> Absender-E-Mail-Adresse (eine einzige).
<mail_to></mail_to> Empfänger-E-Mail-Adressen (mehrere).

Eine Selectbox für die Empfänger im Formular

Die Selectbox muss ein name Attribut besitzen mit dem Inhalt mail_to
und die Option ein value mit einer fortlaufenden Nr. die auf die E-Mails im Plugin (Empfänger E-Mail-Adressen.) oder <mail_to></mail_to> zeigen.

Beispiel:

<select name="mail_to">
<option value="1">Demo Empfänger 1</option>
<option value="2">Demo Empfänger 2</option>
<option value="3">Demo Empfänger 3</option>
</select>
<mail_to>demo1@mail.de, demo2@mail.de, demo3@mail.de</mail_to>

E-Mail (die versendet wird)

Ist einfacher Text.
Der Inhalt wird mit einen Tab eingerückt.
Text- und Select-Elemente werden nur mit Titel angezeigt, wenn sie ausgefüllt wurden.

Titel Steuerung:

Bei den Elementen "input" vom Type "text" und "textarea" und "select"

... wird als Titel das "label" Element verwendet und als Inhalt die "value" oder was zwischen <option>Das hier</option> steht.

Bei den Elementen "input" vom Type "radio" und "checkbox"

... wird das "label" Element als Antwort genommen (falls vorhanden), ansonsten der Inhalt von "value".
und als Titel (falls vorhanden) das Element mit der id="title_for_(name Attribut)".

Classname "fm-no-mtext":

Auf ein Element "input", "textarea" und "select" angewendet,
erscheint es mit seinem Titel nicht im Mail-Text.
Auf einem "label" und id="title_for_(name Attriebut)" angewendet,
erscheint nur der Titel nicht im Mail-Text.
Wenn ein HTML-Element mit dem Classname "fm-no-mtext" innerhalb eines "label" oder id="title_for_(name Attribut)" Elementes ist,
wird es daraus entfernt.
Beispiel:
<label for="Text">Name<span class="fm-no-mtext"> ist Pflicht</span></label>
Ergebnis im Mailtext = Name
Bei HTML-Formular-Elementen vom Type "type_title", "type_forename" und "type_name" sind sie über die Platzhalter {TITLE}, {FORENAME} und {NAME} verwendbar.

Platzhalter, die verwendet werden:

{MAIL_TEXT} Der aus den Elementen generierte Text ist Pflicht.
{DATUM} das aktuelle Datum.
{TITLE} Der Inhalt aus dem HTML-Formular-Element mit dem Namen "type_title"
{FORENAME} Der Inhalt aus dem HTML-Formular-Element mit dem Namen "type_forename"
{NAME} Der Inhalt aus dem HTML-Formular-Element mit dem Namen "type_name"

Beispiele für E-Mail-Elemente:

Absender Mail-Adresse
<mail_from>absender@mail.de</mail_from>
An diese Empfänger wird die Mail gesendet
<mail_to>empfeanger@mail.de, nocheiner@mail.de</mail_to>
Der Betreff
<mail_subject>Da hat jemand das Formular genutzt am {DATE}</mail_subject>
Der Mail Text
<mail_txt>
Danke für ihre
{MAIL_TEXT}
mfg. Der Absender
</mail_txt>

Tipp:

Bei den "label" und "title_for_???" HTML-Elementen werden Leerzeichen und Tabs nicht gelöscht, sodass sie zur Formatierung des E-Mail-Textes genutzt werden können. Auch <br /> werden zu Zeilenumbrüchen.

Beispiel Formular:

    <label for="Text">Name</label><br />
        <input type="text" name="Text" id="Text" value="" />
    <span id="title_for_Radio">Titel Radio</span>
        <input id="Radio1" type="radio" name="Radio" value="testradio1" />
            <label for="Radio1">Test Radio 1</label>
        <input id="Radio2" value="testradio2" type="radio" name="Radio" />
            <label for="Radio2">Test Radio 2</label>
        <input id="Radio3" type="radio" name="Radio" value="testradio3" />
            <label class="formular-mandatory-fm-13-ma" for="Radio3">Test Radio 3</label>
    <span id="title_for_Checkbox1">Checkbox Gruppe</span><br />
        <input id="Checkbox1" type="checkbox" name="Checkbox1" value="salami" />
            <label for="Checkbox1">Salami</label>
        <input id="Checkbox2" type="checkbox" name="Checkbox1" value="pilze" />
            <label for="Checkbox2">Pilze</label>
        <input id="Checkbox3" type="checkbox" name="Checkbox1" value="sardellen" />
            <label for="Checkbox3">Sardellen</label>
    <span id="title_for_Checkbox10">Checkbox einfach</span><br />
        <input id="Checkbox19" type="checkbox" name="Checkbox10" value="nureine" />
            <label for="Checkbox19">nur eine</label><br>

Ergebnis der E-Mail:

    Name
        Inhalt aus dem Textfeld

    Titel Radio
        ( ) Test Radio 1
        (X) Test Radio 2
        ( ) Test Radio 3

    Checkbox Gruppe
        [X] Salami
        [X] Pilze
        [ ] Sardellen

    Checkbox einfach
        [ ] nur eine