Formularfelder

From Joomla! Documentation

This page is a translated version of the page Form field and the translation is 100% complete.

Other languages:
العربية • ‎Deutsch • ‎English • ‎español • ‎français • ‎Bahasa Indonesia • ‎Nederlands

Einführung

Formularfelder sind Felder in einem HTML-Formular (<form>). Joomla! bietet ab der Version Joomla 2.5 die JForm-Klasse, um Formulare mit einer großen Anzahl von Formularfeldern bequem und flexibel zu erstellen. Jeder Formularfeldtyp ist eine Unterklasse von JFormField.

JFormFields ist nicht nur ein flexibles Werkzeug zur Erstellung von Seiten. Es wird auch verwendet, um Administratoren die Konfiguration von Joomla! oder seiner Erweiterungen zu ermöglichen, ohne den zugrunde liegenden Code zu ändern. In Joomla! 1.5 wurde dies durch die jetzt veralteten Klassen JParameter und JElement gehandhabt.

Um Formularfelder für den Konfigurationsbereich einer Erweiterung zu definieren, müssen sie in ein benanntes Fieldset, wie z. B. <fieldset name="basic"> innerhalb des Abschnitts <fields name="params"> des <config>-Elements in der XML-Manifestdatei eingebettet werden.


Validierung von Formulardaten

Joomla hat Möglichkeiten der client- und server-seitigen Formularüberprüfung.
Die serverseitige Überprüfung ist das Mindeste, da alles vorher auf der Benutzerseite überschrieben werden kann. Allerdings ist die client-seitige Überprüfung benutzerfreundlicher, daher ist es keine schlechte Idee, beide zu verwenden.

Clientseitige Überprüfung

... wird mit JavaScript umgesetzt, während der Benutzer die Formularfelder ausfüllt.
Es nutzt die HTML-Klassen required und validate-[xxx] (mit [xxx] als selbst erstellte oder Joomla-Regel, z. B. validate-numeric).

Weitere Informationen sind hier zu finden: Clientseitige Formularüberprüfung

Serverseitige Überprüfung

... wird durchgeführt, nachdem das Formular abgeschickt wurde. Wenn das Formular ungültige Daten enthält, wird der Benutzer normalerweise mit entsprechenden Nachrichten zum Formular zurückgeleitet.
Sie nutzt die HTML-Attribute required ("true" oder "required") und validate (mit einem Wert als selbst erstellte oder Joomla-Regel, z. B. validate="email").

Weitere Informationen sind hier zu finden: Serverseitige Formularüberprüfung


Standard-Formularfeldtypen

In Joomla! sind zahlreiche Formular-Elemente integriert. Die folgende Tabelle listet die standardmäßig enthaltenen Eingabe-Felder und die Version auf, ab der sie integriert sind. Wenn du die Referenz der Formular-Elemente ausdrucken möchtest, nutze die Einseitige Referenz.

Joomla 1.5 Bitte beachte, dass viele dieser Felder als Parameter-Typen in Joomla! 1.5 verfügbar sind. Eine Liste der Parameter-Typen findest du unter J1.5:Standard Parameter-Typen. Einen Vergleich zwischen Formular-Feldern und Parameter-Typen findest du unter Standard Formular-Elemente und Parameter-Typen.

Typ Beschreibung Verfügbar ab
Zugriffsstufen Dropdown-Liste zur Anzeige der Zugriffsstufen Joomla 2.5 und neuer
Cachehandler Liste mit den verfügbaren Cache-Optionen Joomla 2.5 und neuer
Kalender Stellt ein Textfeld für die Eingabe eines Datums zur Verfügung. Neben dem Textfeld ist ein Icon zum Öffnen eines Popup-Kalenders. Dieser kann zur Auswahl des Datums genutzt werden. Joomla 2.5 und neuer
Captcha Verwendung des Captcha-Plugins. Joomla 2.5 und neuer
Kategorie Dropdown-Liste für die Kategorien einer Erweiterung. Joomla 2.5 und neuer
Checkbox Ein einfaches Kontrollkästchen, das aktiviert oder deaktiviert werden kann. Joomla 2.5 und neuer
Checkboxen Unendliche Anzahl von Kontrollkästchen mit Mehrfach-Auswahl. Joomla 2.5 und neuer
Chrome-Style Liste mit Chrome-Style-Vorlagen, die nach Templates gruppiert sind. Joomla 3.0 und neuer
Farbe Stellt eine Farbauswahl bereit, wenn in das Eingabefeld geklickt wird. Joomla 2.5 und neuer
Inhaltssprache Eine Liste der Inhaltssprachen. Joomla 2.5 und neuer
Inhaltstyp Eine Liste mit den Inhalts-Typen. Joomla 3.1 und neuer
Kombinationsfeld Ein Kombinationsfeld (Combo-Box) Joomla 2.5 und neuer
Komponentenlayout Bietet eine gruppierte Liste von Kern- und alternativen Template-Layouts für eine Komponente. Joomla 2.5 und neuer
Inhaltssprache Bietet zur Verwendung eine Liste der installierten Inhaltssprachen, in Verbindung mit dem Sprachumschalter-Plugin. Joomla 2.5 und neuer
Datenbankverbindung Bietet eine List der verfügbaren Datenbankverbindungen, welche optional auf eine bestimmte Liste beschränkt werden können. Joomla 2.5 und neuer
Editor Bietet ein Editorfeld. Joomla 1.6 und neuer
Editoren Bietet ein Dropdown-Liste der verfügbaren WYSIWYG-Editoren. Seit Joomla 2.5 werden stattdessen Plugin-Formularfeldtypen genutzt. Joomla 1.6
E-Mail Bietet ein E-Mail-Feld. Joomla 2.5 und neuer
Datei Bietet ein Eingabefeld für das Hochladen von Dateien. Joomla 2.5 und neuer
Dateienliste Bietet eine Dropdown-Liste von Dateien aus einem bestimmten Verzeichnis. Joomla 2.5 und neuer
Ordnerliste Bietet eine Dropdown-Liste von Ordnern eines bestimmten Verzeichnisses. Joomla 2.5 und neuer
Gruppierte Liste Bietet eine Dropdown-Liste von organisierten Elementen in Gruppen. Joomla 2.5 und neuer
Header-Tag Bietet eine Dropdown-Liste von Überschriften-Tags. (h1-h6). Joomla 3.0 und neuer
Hilfsseite Bietet eine Dropdown-Liste von Hilfsseiten für deine Joomla-Installation. Joomla 2.5 und neuer
Versteckt Bietet ein verstecktes Feld zum Speichern eines Formularfeldes, dessen Wert nicht direkt durch einen Benutzer im Administratorenbereich verändert werden kann. (Eine Änderung könnte im Code oder durch das Verändern der Datei params.ini erfolgen) Joomla 2.5 und neuer
Bilderliste Bietet eine Dropdown-Liste von Bilddateien eines bestimmten Verzeichnisses. Joomla 2.5 und neuer
Natürliche Zahl Bietet eine Dropdown-Liste von natürlichen Zahlen zwischen einem Minimum und einem Maximum. Joomla 2.5 und neuer
Sprache Bietet eine Dropdown-Liste von installierten Sprachen für das Frontend oder Backend. Joomla 2.5 und neuer
Liste Bietet eine Dropdown-Liste von benutzerdefinierten Einträgen. Joomla 2.5 und neuer
Medien Bietet modalen Zugriff auf den Medienmanager zum Einfügen von Bildern, mit Upload-Möglichkeit für Benutzer mit entsprechenden Berechtigungen. Joomla 2.5 und neuer
Menü Bietet eine Dropdown-Liste von verfügbaren Menüs deiner Joomla-Seite. Joomla 2.5 und neuer
Menüelement Bietet eine Dropdown-Liste von verfügbaren Menüeinträgen deiner Joomla-Seite. Joomla 2.5 und neuer
Fortschrittsanzeige Bietet eine Fortschrittsanzeige, um Werte in einem Bereich anzuzeigen. Joomla 3.2 und neuer
Modul-Layout Bietet eine Liste der alternativen Layouts für ein Modul, gruppiert nach Core und Template. Joomla 2.5 und neuer
Modul-Reihenfolge Bietet eine Dropdown-Liste, um die Reihenfolge des Moduls an einer bestimmten Position festzulegen Joomla 2.5 und neuer
Modul-Position Bietet eine Texteingabe, um die Position eines Moduls festzulegen. Joomla 2.5 und neuer
Modul-Tag Bietet eine Liste von HTML5-Elementen (in die ein Modul eingebettet wird) Joomla 3.0 und neuer
Notiz Bietet ein einzeiliges Textfeld Joomla 3.1 und neuer
Zahl Bietet eine einzeilige Textbox um eine Ziffer mit Auf-und-Ab-Reglern festzulegen. Joomla 3.2 und neuer
Passwort Bietet eine Textbox zum Eintragen eines Passwortes. Die Passwortzeichen werden bei der Eingabe unkenntlich gemacht. Joomla 2.5 und neuer
Plugins Bietet eine Liste von Plugins aus einem bestimmten Ordner. Joomla 2.5 und neuer
Vordefinierte Liste Formularfeld, um eine Liste von vordefinierten Werten zu laden. Joomla 3.2 und neuer
Radiofeld Radio-Buttons zur Auswahl von verschiedenen Optionen. Joomla 2.5 und neuer
Bereich Bietet eine horizontalen Scrollleiste, um einen Wert aus dem Bereich anzugeben. Joomla 3.2 und neuer
Wiederholbares Feld Erstellt Formularfelder, die beliebig wiederholt werden können. Joomla 3.2 und neuer
Regeln Bietet eine Matrix von Gruppen zum Verwalten der Zugriffssteuerung durch Aktionsoptionen. Die Anzeige hängt vom Kontext ab. Joomla 2.5 und neuer
Session-Handler Bietet eine Dropdown-Liste der Session-Handler-Optionen Joomla 2.5 und neuer
Trenner Ein visuelles Trennzeichen zwischen Formularfeldern. Es dient als visuelle Hilfe. Deshalb wird kein Wert gespeichert. Joomla 2.5 und neuer
sql Bietet eine Dropdown-Liste von erhaltenen Einträgen durch die Ausführung einer Abfrage in der Joomla-Datenbank. Die erste Spalte, welche durch die Abfrage zurückgeben wurde, stellt dabei die Werte der Dropdown-Liste dar. Joomla 2.5 und neuer
Unterformular Bietet eine Möglichkeit, XML-Formulare ineinander zu verschachteln oder vorhandene Formulare in einem aktuellen Formular wiederzuverwenden. Joomla 3.6 und neuer
Tag Bietet einen Einstiegspunkt für Tags (entweder AJAX oder verschachtelt). Joomla 3.1 und neuer
Telefon Ein Eingabefeld für eine Telefonnummer Joomla 2.5 und neuer
Template-Stil Dropdown-Liste mit Template-Stilen. Joomla 2.5 und neuer
Text Ein Textfeld zur Eingabe von Daten. Joomla 2.5 und neuer
Textfeld Textbereich für die Eingabe von mehrzeiligen Text. Joomla 2.5 und neuer
Zeitzone Dropdown-Liste mit Zeitzonen Joomla 2.5 und neuer
URL Eingabefeld für URLs Joomla 2.5 und neuer
Benutzer Feld zum Auswählen eines Benutzers von einer modalen Liste. Zeigt den Benutzernamen und die gespeicherte Benutzer-ID an. Joomla 1.6 und neuer
Benutzer - aktiv Feld, welches eine Liste der verfügbaren aktiven Benutzerstatus anzeigt. Joomla 3.2 und neuer
Benutzergruppe Bietet eine Dropdown-Liste von Benutzergruppen. Seit Joomla 3.2 benutze stattdessen die usergrouplist. Joomla 2.5 und neuer
Liste der Benutzergruppen Feld, um eine Dropdown-Liste zu laden, welche die verfügbaren Benutzergruppen enthält. Ersetzt usergroup aus den Formularfeldtypen. Joomla 3.2 und neuer
Benutzerstatus Feld, um eine Liste der verfügbaren Benutzerstatus zu laden. Joomla 3.2 und neuer


Eigene Formularfeldtypen

Eine Erweiterung kann eigene Formularfeldtypen definieren, die dann in eigenen oder von einer anderen Erweiterung erstellten Formularen verwendet werden können. Siehe Erstellen eines eigenen Formularfeldtyps für eine Anleitung.

Modale Formularfeldtypen

Wenn ein Feld sehr viele Werte hat, die nicht in ein Auswahlfeld passen, kann ein modales Formularfeld erstellt werden. Damit kann der Benutzer einen Eintrag aus einem modalen Fenster mit einer Tabelle, Filteroptionen usw. auswählen - ähnlich den Administrator-Tabellen, z. B. "Beiträge". Siehe auch Erstellen eines modalen Formfelds.

Oft verwendete Attribute

Labelclass

Durch das Hinzufügen des Attributs labelclass wird eine CSS-Klasse für die Beschriftung von Formularfeldern hinzugefügt. Quelle: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=28450

Showon

Das Hinzufügen des Attributs showon ermöglicht es, das Feld auf der Grundlage des/der Werte(s) eines anderen Feldes auszublenden.

Als Beispiel die Syntax, um das Feld bar nur dann anzuzeigen, wenn foo auf "1" und baz auf "1" gesetzt ist:

<field
    name="foo"
    type="list"
    >
    <option value="1">JYES</option>
    <option value="0">JNO</option>
</field>
<field
    name="bar"
    type="text"
    showon="foo:1"
/>

Um mehrere Werte abzugleichen, kann eine durch Komma getrennte Liste von Werten genutzt werden, wie z. B. showon="foo:1,2".

Um mehrere Felder zu kombinieren, kann [UND] verwendet werden, wie z. B. showon="foo:1[AND]bar:1".

Hier die Syntax, um das Feld "bar" nur dann anzuzeigen, wenn "foo" auf "1" und "baz" auf "1" gesetzt ist:

<field
    name="foo"
    type="list"
    >
    <option value="1">JYES</option>
    <option value="0">JNO</option>
</field>
<field
    name="baz"
    type="list"
    >
    <option value="1">JYES</option>
    <option value="0">JNO</option>
</field>
<field
    name="bar"
    type="text"
    showon="foo:1[AND]baz:1"
/>

Um eine Auswahl zwischen mehreren Feldern zu treffen, kann [OR] verwendet werden, wie z. B. showon="foo:1[OR]bar:1".

Hier die Syntax, um das Feld "bar" nur dann anzuzeigen, wenn "foo" auf "1" oder "baz" auf "1" gesetzt ist:

<field
    name="foo"
    type="list"
    >
    <option value="1">JYES</option>
    <option value="0">JNO</option>
</field>
<field
    name="baz"
    type="list"
    >
    <option value="1">JYES</option>
    <option value="0">JNO</option>
</field>
<field
    name="bar"
    type="text"
    showon="foo:1[OR]baz:1"
/>

Es können auch Werte, die nicht übereinstimmen, abgefragt werden, wie z. B. hier: showon="field1!:1".

Hier die Syntax, um das Feld "bar" nur dann anzuzeigen, wenn "foo" ungleich "1" ist:

<field
    name="foo"
    type="list"
    >
    <option value="1">JYES</option>
    <option value="0">JNO</option>
</field>
<field
    name="baz"
    type="list"
    showon="foo!:1"
    >
    <option value="1">JYES</option>
    <option value="0">JNO</option>
</field>

Um ein Feld anzuzeigen, wenn ein anderes Feld (z. B. foo) ausgewählt wurde (wenn also dieses andere Feld nicht leer ist), kann showon="foo!:" (also ohne Angabe eines Wertes) verwendet werden.

Dies wurde mit mit folgendem PullRequest eingeführt: https://github.com/joomla/joomla-cms/pull/3379 und ist ab Joomla 3.2.4 verfügbar.

Fehlerbehebung: Attribute funktionieren nicht

Wenn du eine ältere Version unserer Entwicklerdokumentation gelesen oder den Code für die Formularanzeige von einer vorhandenen Erweiterung übernommen hast, funktionieren Attribute wie showon vielleicht nicht. Damit bestimmte Attribute funktionieren, müssen die Felder mit der Methode renderField() angezeigt werden. Zum Beispiel:

<div class="row-fluid">
    <div class="span6">
        <?php 
            foreach($this->form->getFieldset() as $field) {
                echo $field->renderField();        
            }
        ?>
    </div>
</div>