diff --git a/lib/FormBuilder.lib.php b/lib/FormBuilder.lib.php index 13567cc..c9d0932 100644 --- a/lib/FormBuilder.lib.php +++ b/lib/FormBuilder.lib.php @@ -116,6 +116,41 @@ class FormBuilder { $this->items[] = $item; } + /** + * Add a text input. + * + * @param string $name Element name + * @param string $value Element value + * @param bool $required If the element is required for form submission. + * @param string $id Element ID + * @param string $label Text label to display near the input + * @param string $icon FontAwesome icon (example: "fas fa-toilet-paper") + * @param int $width Bootstrap column width for the input, out of 12. + * @param int $minlength Minimum number of characters for the input. + * @param int $maxlength Maximum number of characters for the input. + * @param string $pattern Regex pattern for custom client-side validation. + * @param string $error Message to show if the input doesn't validate. + */ + public function addTextInput(string $name, string $value = "", bool $required = true, string $id = "", string $label = "", string $icon = "", int $width = 4, int $minlength = 1, int $maxlength = 100, string $pattern = "", string $error = "") { + $this->addInput($name, $value, "text", $required, $id, null, $label, $icon, $width, $minlength, $maxlength, $pattern, $error); + } + + /** + * Add a select dropdown. + * + * @param string $name Element name + * @param string $value Element value + * @param bool $required If the element is required for form submission. + * @param string $id Element ID + * @param array $options Array of [value => text] pairs for a select element + * @param string $label Text label to display near the input + * @param string $icon FontAwesome icon (example: "fas fa-toilet-paper") + * @param int $width Bootstrap column width for the input, out of 12. + */ + public function addSelect(string $name, string $value = "", bool $required = true, string $id = null, array $options = null, string $label = "", string $icon = "", int $width = 4) { + $this->addInput($name, $value, "select", $required, $id, $options, $label, $icon, $width); + } + /** * Add a button to the form. *