Difference between revisions of "Repeatable form field type/de"

From Joomla! Documentation

(Created page with "* '''name''' (Pflicht) ist der eindeutige Name des Parameters.")
(Updating to match new version of source page)
 
(44 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
<noinclude><languages /></noinclude>
 
<noinclude><languages /></noinclude>
Bietet ein Steuerelement mit Reihen von Formular-Feldern, die Du bestimmst. Es können so viele Optionen hinzugefügt werden wie Du möchtest. Hinweis: dieses Formular-Feld hat eine jQuery-basierte Javascript-Datei als Abhängigkeit.
 
  
* '''name''' (Pflicht) ist der eindeutige Name des Parameters.
+
{{tip|Bitte nutze stattdessen [[S:MyLanguage/Subform form field type|Teilformular Formularfeldtyp]].|title=Dieses Feld ist '''veraltet'''}}
* '''type''' (mandatory) must be ''repeatable''.
 
* '''label''' (mandatory) (translatable) is the descriptive title of the field.
 
* '''description''' description text for the form field. Displays at the top of the modal with the name as well as in the usual position in the form.
 
* '''default''' The default value for the form field if the field is left empty. Note this has to be a json string compatible with the contents of the form field.
 
* '''id''' id of the hidden form field. (the modal will have this id with an added suffix of "_modal" and the table within the modal will have this id with a suffix of "_modal_table").
 
* '''class''' class of the table.
 
* '''select''' (translatable) The text to show on the modal button.
 
* '''icon''' the icon to show on the select button (is prefixed with "icon-").
 
* '''maximum''' the maximum number of rows of fields allowed (by default 999 to be effectively infinite).
 
  
To create a form field you must first of all create a repeatable form field as usual.
+
Bietet ein Modal mit Reihen von Formular-Feldern, die Du bestimmst. Es können so viele Optionen hinzugefügt werden wie Du möchtest. Hinweis: dieses Formular-Feld hat eine jQuery-basierte Javascript-Datei als Abhängigkeit.
 +
 
 +
* '''name''' (notwenig) ist der eindeutige Name des Parameters.
 +
* '''type''' (notwendig) muss ''repeatable'' sein.
 +
* '''label''' (notwendig) (übersetzbar) ist der beschreibende Titel des Feldes.
 +
* '''description''' Beschreibungstext für das Formular-Feld. Wird am oberen Rand im Modal mit dem Namen aber auch an der üblichen Position im Formular angezeigt.
 +
* '''default''' der Standardwert für das Formularfeld, falls das Feld leer gelassen wird. Beachte das dies ein JSON-kompatibler String ist, mit den Inhalten des Formularfeldes.
 +
* '''id''' die ID des versteckten Formularfeldes. (das Modal wird diese ID mit einem zusätzlichen Suffix "_modal" tragen und die Tabelle innerhalb des Modal wird diese ID mit einem zusätzlichen Suffix "_modal_table" tragen).
 +
* '''class''' Klasse der Tabelle.
 +
* '''select''' (übersetzbar) Der Text der auf dem Modal-Button angezeigt wird.
 +
* '''icon''' das angezeigte Symbol auf dem Auswahl-Button (vorangestellt mit "icon-").
 +
* '''maximum''' die maximale Anzahl der Zeilen an erlaubten Feldern (standardmäßig 999, ist effektiv aber unendlich).
 +
 
 +
Um ein Formularfeld zu erstellen, musst Du zunächst ein wiederholbares Formularfeld erstellen.
 
<source lang="php">
 
<source lang="php">
 
<fields></source>
 
<fields></source>
Within this you place open and close tag (if not already in one - if there is an existing fields tag for params etc. this is not needed.) and within this a tag.
+
In dieser legst Du den open und close-Tag (wenn nicht bereits in einem enthalten - falls ein Fields-Tag für params etc. vorhanden ist, ist dies nicht erforderlich.) und innerhalb dieses einen Tag.
 
<source lang="php">
 
<source lang="php">
 
<fieldset></source>
 
<fieldset></source>
The fieldset tag MUST have a name the same as your repeatable field name with "_modal" appended to the end of it - it should also have the in the fieldset tag.
+
Das fieldset-Tag MUSS einen gleichen Namen wie das wiederholbare Feld mit "_modal" am Ende haben - es sollte auch das im fieldset Tag haben.
 
<source lang="php">
 
<source lang="php">
 
repeat="true"</source>
 
repeat="true"</source>
Within this fieldset you then include the form fields that you wish to have repeating (as with any form field).
+
Innerhalb dieses fieldset bindest Du dann die Formular-Felder ein, die Du wiederholt haben möchtest (wie bei jedem Formular-Feld).
  
Example XML Definition
+
Beispiel XML-Definition
<source type="xml">
+
<source lang="xml">
 
<field name="list_templates"
 
<field name="list_templates"
type="Repeatable"
+
type="repeatable"
 
icon="list"
 
icon="list"
 
description="PLG_TINY_FIELD_TEMPLATE_FIELD_ELEMENTS_DESC"
 
description="PLG_TINY_FIELD_TEMPLATE_FIELD_ELEMENTS_DESC"
 
label="PLG_TINY_FIELD_TEMPLATE_FIELD_ELEMENTS_LABEL"
 
label="PLG_TINY_FIELD_TEMPLATE_FIELD_ELEMENTS_LABEL"
default="{'template':['Layout','Simple snippet'],'location':['layout1.html','snippet1.html'],'description':['HTMLLayout','Simple HTML snippet']}">
+
default='{"template":["Layout","Simple snippet"],
 +
"location":["layout1.html","snippet1.html"],
 +
"description":["HTMLLayout","Simple HTML snippet"]}'>
 
<fieldset hidden="true" name="list_templates_modal" repeat="true">
 
<fieldset hidden="true" name="list_templates_modal" repeat="true">
 
<field name="template"
 
<field name="template"
Line 52: Line 57:
 
</fieldset>
 
</fieldset>
 
</field>
 
</field>
 +
</source>
 +
===Betrachtungen zum Default-Wert===
 +
* Der Default darf Leerzeichen, Tabulatoren und neue Zeilen<ref>https://tools.ietf.org/html/rfc7158</ref> enthalten (bessere Lesbarkeit).
 +
* Die Datei-Elemente im String müssen mit " statt ' umschlossen sein. Fehlerhafte Anwendung führt zum Fehler beim json-Dekodieren der Default-Werte.
 +
 +
===Wiederherstellung Deiner Daten===
 +
Die Einstellungen eines wiederholbaren Formular-Feldtypes werden als json codiertes Array wiedergegeben (wie der Default).
 +
 +
<source lang="php">
 +
// get the repeatable field value and decode it
 +
$list_hosts = json_decode( $params->get('list_templates'),true);
 +
// loop your result
 +
foreach( $list_templates as $list_templates_idx => $list_template ) {
 +
  // do something clever for each of the templates
 +
}
 
</source>
 
</source>
  
 +
===Referenzen===
 +
<references>
 +
</references>
 
<noinclude>
 
<noinclude>
[[Category:Standard form field types]]
+
[[Category:Standard form field types/de|Standardformularfeldtypen]]
 
</noinclude>
 
</noinclude>

Latest revision as of 04:13, 28 May 2019

Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎فارسی
Dieses Feld ist veraltet

Bitte nutze stattdessen Teilformular Formularfeldtyp.

Bietet ein Modal mit Reihen von Formular-Feldern, die Du bestimmst. Es können so viele Optionen hinzugefügt werden wie Du möchtest. Hinweis: dieses Formular-Feld hat eine jQuery-basierte Javascript-Datei als Abhängigkeit.

  • name (notwenig) ist der eindeutige Name des Parameters.
  • type (notwendig) muss repeatable sein.
  • label (notwendig) (übersetzbar) ist der beschreibende Titel des Feldes.
  • description Beschreibungstext für das Formular-Feld. Wird am oberen Rand im Modal mit dem Namen aber auch an der üblichen Position im Formular angezeigt.
  • default der Standardwert für das Formularfeld, falls das Feld leer gelassen wird. Beachte das dies ein JSON-kompatibler String ist, mit den Inhalten des Formularfeldes.
  • id die ID des versteckten Formularfeldes. (das Modal wird diese ID mit einem zusätzlichen Suffix "_modal" tragen und die Tabelle innerhalb des Modal wird diese ID mit einem zusätzlichen Suffix "_modal_table" tragen).
  • class Klasse der Tabelle.
  • select (übersetzbar) Der Text der auf dem Modal-Button angezeigt wird.
  • icon das angezeigte Symbol auf dem Auswahl-Button (vorangestellt mit "icon-").
  • maximum die maximale Anzahl der Zeilen an erlaubten Feldern (standardmäßig 999, ist effektiv aber unendlich).

Um ein Formularfeld zu erstellen, musst Du zunächst ein wiederholbares Formularfeld erstellen.

<fields>

In dieser legst Du den open und close-Tag (wenn nicht bereits in einem enthalten - falls ein Fields-Tag für params etc. vorhanden ist, ist dies nicht erforderlich.) und innerhalb dieses einen Tag.

<fieldset>

Das fieldset-Tag MUSS einen gleichen Namen wie das wiederholbare Feld mit "_modal" am Ende haben - es sollte auch das im fieldset Tag haben.

repeat="true"

Innerhalb dieses fieldset bindest Du dann die Formular-Felder ein, die Du wiederholt haben möchtest (wie bei jedem Formular-Feld).

Beispiel XML-Definition

<field name="list_templates"
	type="repeatable"
	icon="list"
	description="PLG_TINY_FIELD_TEMPLATE_FIELD_ELEMENTS_DESC"
	label="PLG_TINY_FIELD_TEMPLATE_FIELD_ELEMENTS_LABEL"
	default='{"template":["Layout","Simple snippet"],
		"location":["layout1.html","snippet1.html"],
		"description":["HTMLLayout","Simple HTML snippet"]}'>
	<fieldset hidden="true" name="list_templates_modal" repeat="true">
		<field name="template"
			label="PLG_TINY_FIELD_TEMPLATE_FIELD_NAME_LABEL"
			size="30"
			type="text" />
		<field name="location"
			label="PLG_TINY_FIELD_TEMPLATE_FIELD_LOCATION_LABEL"
			description="PLG_TINY_FIELD_TEMPLATE_LOCATION_DESC"
			size="30"
			type="filelist"
			directory="media/editors/tinymce/templates"
			exclude="index.html"
			hide_default="true"
			hide_none="true" />
		<field name="description"
			label="PLG_TINY_FIELD_TEMPLATE_FIELD_DESCRIPTION_LABEL"
			size="30"
			type="textarea" />
	</fieldset>
</field>

Betrachtungen zum Default-Wert

  • Der Default darf Leerzeichen, Tabulatoren und neue Zeilen[1] enthalten (bessere Lesbarkeit).
  • Die Datei-Elemente im String müssen mit " statt ' umschlossen sein. Fehlerhafte Anwendung führt zum Fehler beim json-Dekodieren der Default-Werte.

Wiederherstellung Deiner Daten

Die Einstellungen eines wiederholbaren Formular-Feldtypes werden als json codiertes Array wiedergegeben (wie der Default).

// get the repeatable field value and decode it
$list_hosts 	 = json_decode( $params->get('list_templates'),true);
// loop your result
foreach( $list_templates as $list_templates_idx => $list_template ) {
   // do something clever for each of the templates
}

Referenzen