Document `IAutoCompleteFormField`
authorMatthias Schmidt <gravatronics@live.com>
Fri, 15 Jan 2021 15:40:55 +0000 (16:40 +0100)
committerMatthias Schmidt <gravatronics@live.com>
Fri, 15 Jan 2021 15:40:55 +0000 (16:40 +0100)
docs/php/api/form_builder/form_fields.md
docs/php/api/form_builder/structure.md

index 0c80867704ce3b331c7c7e3e3d78f35ff7c7fd08..f7e9176d716bd3da35e8822580446778c897b129 100644 (file)
@@ -13,7 +13,7 @@ The following form field classes cannot be instantiated directly because they ar
 ### `AbstractNumericFormField`
 
 `AbstractNumericFormField` is the abstract implementation of a form field handling a single numeric value.
-The class implements `IImmutableFormField`, `IInputModeFormField`, `IMaximumFormField`, `IMinimumFormField`, `INullableFormField`, `IPlaceholderFormField` and `ISuffixedFormField`.
+The class implements `IAutoCompleteFormField`, `IImmutableFormField`, `IInputModeFormField`, `IMaximumFormField`, `IMinimumFormField`, `INullableFormField`, `IPlaceholderFormField` and `ISuffixedFormField`.
 If the property `$integerValues` is `true`, the form field works with integer values, otherwise it works with floating point numbers.
 The methods `step($step = null)` and `getStep()` can be used to set and get the step attribute of the `input` element.
 The default step for form fields with integer values is `1`.
@@ -166,7 +166,7 @@ If the field is nullable and the current form field value is considered `empty`
 ### `TextFormField`
 
 `TextFormField` is a form field that allows entering a single line of text.
-The class implements `IImmutableFormField`, `II18nFormField`, `IInputModeFormField`, `IMaximumLengthFormField`, `IMinimumLengthFormField`, `IPatternFormField`, and `IPlaceholderFormField`.
+The class implements `IAutoCompleteFormField`, `IImmutableFormField`, `II18nFormField`, `IInputModeFormField`, `IMaximumLengthFormField`, `IMinimumLengthFormField`, `IPatternFormField`, and `IPlaceholderFormField`.
 
 
 ### `TitleFormField`
@@ -276,7 +276,7 @@ To process files in the database object action class, you must [`rename`](https:
 ### `UserFormField`
 
 `UserFormField` is a form field to enter existing users.
-The class implements `IAutoFocusFormField`, `IImmutableFormField`, `IMultipleFormField`, and `INullableFormField`.
+The class implements `IAutoCompleteFormField`, `IAutoFocusFormField`, `IImmutableFormField`, `IMultipleFormField`, and `INullableFormField`.
 While the user is presented the names of the specified users in the user interface, the field returns the ids of the users as data.
 The relevant `UserProfile` objects can be accessed via the `getUsers()` method.
 
index 250c8113ab623f625a567e11d1a98de0faa0a15f..b67f815eb754268abe47c9543a305e70f395cf8e 100644 (file)
@@ -244,6 +244,14 @@ An overview of the form fields provided by default can be found [here](form_fiel
 WoltLab Suite Core provides a variety of interfaces and matching traits with default implementations for several common features of form fields:
 
 
+#### `IAutoCompleteFormField`
+
+`IAutoCompleteFormField` has to be implemented by form fields that support the [`autocomplete` attribute](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofilling-form-controls:-the-autocomplete-attribute).
+The implementing class has to implement the methods `autoComplete(?string $autoComplete): self` and `getAutoComplete(): ?string`, which are used to set and get the autocomplete value, respectively.
+`TAutoCompleteFormField` provides a default implementation of these two methods and `TTextAutoCompleteFormField` specializes the trait for text form fields.
+When using `TAutoCompleteFormField`, you have to implement the `getValidAutoCompleteTokens(): array` method which returns all valid `autocomplete` tokens.
+
+
 #### `IAutoFocusFormField`
 
 `IAutoFocusFormField` has to be implemented by form fields that can be auto-focused.