Document new `IImmutableFormField` interface
authorMatthias Schmidt <gravatronics@live.com>
Sun, 13 Jan 2019 10:03:20 +0000 (11:03 +0100)
committerMatthias Schmidt <gravatronics@live.com>
Sun, 13 Jan 2019 10:03:20 +0000 (11:03 +0100)
See WoltLab/WCF#2509
See WoltLab/WCF@aa6f853584182980c1c7d12891b689317e458b8b

pages/php/api/formBuilder/php_api_form_builder-form_fields.md
pages/php/api/formBuilder/php_api_form_builder-structure.md

index 004ec33e9425c1b763b9f46e823db5fd4b93ddc0..1c5079538e62dfe82206cac1cb70e699c4b828b5 100644 (file)
@@ -19,7 +19,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 `IMaximumFormField`, `IMinimumFormField`, `INullableFormField`, `IPlaceholderFormField` and `ISuffixedFormField`.
+The class implements `IImmutableFormField`, `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`.
@@ -118,14 +118,14 @@ These methods do **not**, however, restrict the number of text rows that canbe e
 ### `MultipleSelectionFormField`
 
 `MultipleSelectionFormField` is a form fields that allows the selection of multiple options out of a predefined list of available options.
-The class implements `INullableFormField` and `IFilterableSelectionFormField`.
+The class implements `IFilterableSelectionFormField`, `IImmutableFormField`, and `INullableFormField`.
 If the field is nullable and no option is selected, `null` is returned as the save value.
 
 
 ### `RadioButtonFormField`
 
 `RadioButtonFormField` is a form fields that allows the selection of a single option out of a predefined list of available options using radiobuttons.
-The class implements `ISelectionFormField`.
+The class implements `IImmutableFormField` and `ISelectionFormField`.
 
 
 ### `ShowOrderFormField`
@@ -139,7 +139,7 @@ The default id of instances of this class is `showOrder` and their default label
 ### `SingleSelectionFormField`
 
 `SingleSelectionFormField` is a form fields that allows the selection of a single option out of a predefined list of available options.
-The class implements `INullableFormField` and `IFilterableSelectionFormField`.
+The class implements `IFilterableSelectionFormField`, `IImmutableFormField`, and `INullableFormField`.
 If the field is nullable and the current form field value is considered `empty` by PHP, `null` is returned as the save value.
 
 
@@ -151,7 +151,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 `II18nFormField`, `IMaximumLengthFormField`, `IMinimumLengthFormField`, and `IPlaceholderFormField`.
+The class implements `IImmutableFormField`, `II18nFormField`, `IMaximumLengthFormField`, `IMinimumLengthFormField`, and `IPlaceholderFormField`.
 
 
 ### `TitleFormField`
@@ -221,7 +221,7 @@ The default label of instances of this class is `wcf.tagging.tags` and their def
 ### `UserFormField`
 
 `UserFormField` is a form field to enter existing users.
-The class implements `IMultipleFormField` and `INullableFormField`.
+The class implements `IImmutableFormField`, `IMultipleFormField`, and `INullableFormField`.
 
 
 ### `UserGroupOptionFormField`
@@ -234,7 +234,7 @@ The default label of instances of this class is `wcf.form.field.userGroupOption`
 ### `UsernameFormField`
 
 `UsernameFormField` is used for entering one non-existing username.
-The class implements `IMaximumLengthFormField`, `IMinimumLengthFormField`, `INullableFormField`, and `IPlaceholderFormField`.
+The class implements `IImmutableFormField`, `IMaximumLengthFormField`, `IMinimumLengthFormField`, `INullableFormField`, and `IPlaceholderFormField`.
 As usernames have a system-wide restriction of a minimum length of 3 and a maximum length of 100 characters, these values are also used as the default value for the field’s minimum and maximum length.
 
 
index 3204aa486eaf03c7e5a6e256b60175618ec9d1cc..dd6cca643296cfd54bab92382a107b85d1343228 100644 (file)
@@ -173,8 +173,6 @@ Every form field has to implement the `IFormField` interface which extends `IFor
 - `autoFocus($autoFocus = true)` and `isAutoFocused()` can be used to determine if the form field is auto-focused when the page loads.
   By default, form fields are not auto-focused.
 - `addValidator(IFormFieldValidator $validator)`, `getValidators()`, `removeValidator($validatorId)`, and `hasValidator($validatorId)` can be used to get, set, remove, and check for validators for the form field (see [form validation](php_api_form_builder-validation_data.html#form-validation)).
-- `immutable($immutable = true)` and `isImmutable()` can be used to determine if the value of the form field is mutable or immutable.
-  By default, form field are mutable.
 - `objectProperty($objectProperty)` and `getObjectProperty()` can be used to get and set the object property that the field represents.
   When setting the object property is set to an empty string, the previously set object property is unset.
   If no object property has been set, the field’s (non-prefixed) id is returned.
@@ -228,6 +226,13 @@ If multilingual input is enabled but only a monolingual value is entered, the cu
 {% include callout.html content="`TI18nFormField` already provides a default implementation of `IFormField::validate()`." type="info" %}
 
 
+#### `IImmutableFormField` / `TImmutableFormField`
+
+`IImmutableFormField` has to be implemented by form fields that support being displayed but whose value cannot be changed.
+The implementing class has to implement the methods `immutable($immutable = true)` and `isImmutable()` that can be used to determine if the value of the form field is mutable or immutable.
+By default, form field are mutable.
+
+
 #### `IMaximumFormField` / `TMaximumFormField`
 
 `IMaximumFormField` has to be implemented by form fields if the entered value must have a maximum value.