From 54c49f37f84c604bcbf664a8cd2c88bc5644fa4a Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Thu, 22 Apr 2021 10:33:33 -0400 Subject: [PATCH] Add new interfaces for Inputfield modules --- wire/core/Interfaces.php | 58 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/wire/core/Interfaces.php b/wire/core/Interfaces.php index 8059df3d..7d956c83 100644 --- a/wire/core/Interfaces.php +++ b/wire/core/Interfaces.php @@ -555,10 +555,68 @@ interface WireProfilerInterface { */ interface InputfieldHasArrayValue { } +/** + * Inputfield that doesn’t have an array value by default but can return array value or accept it + * + * @since 3.0.176 + * + */ +interface InputfieldSupportsArrayValue { + /** + * @return array + * + */ + public function getArrayValue(); + + /** + * @param array $value + * + */ + public function setArrayValue(array $value); +} + +/** + * Inputfield that has a text value by default + * + * @since 3.0.176 + * + */ +interface InputfieldHasTextValue { } + /** * Inputfield that has a sortable value (usually in addition to InputfieldHasArrayValue) * */ interface InputfieldHasSortableValue { } +/** + * Inputfield that supports selectable options + * + * @since 3.0.176 + * + */ +interface InputfieldHasSelectableOptions { + /** + * Add a selectable option + * + * @param string|int $value + * @param string|null $label + * @param array|null $attributes + * @return self|$this + * + */ + public function addOption($value, $label = null, array $attributes = null); + + /** + * Add selectable option with label, optionally for specific language + * + * @param string|int $value + * @param string $label + * @param Language|null $language + * @return self|$this + * + */ + public function addOptionLabel($value, $label, $language = null); +} +