From 26d6b65a80e05e5b7d938f9211513251d113ce81 Mon Sep 17 00:00:00 2001 From: Marcin Kolanko <marcin@inspirelabs.pl> Date: Wed, 24 Jun 2020 12:44:46 +0000 Subject: [PATCH] added input number form field --- src/Field/InputNumberField.php | 22 +++++++ templates/input-number.php | 12 ++++ templates/input.php | 110 ++++++++++++++++++++++++++------- 3 files changed, 120 insertions(+), 24 deletions(-) create mode 100644 src/Field/InputNumberField.php create mode 100644 templates/input-number.php diff --git a/src/Field/InputNumberField.php b/src/Field/InputNumberField.php new file mode 100644 index 0000000..898cef6 --- /dev/null +++ b/src/Field/InputNumberField.php @@ -0,0 +1,22 @@ +<?php + +namespace DropshippingXmlVendor\WPDesk\Forms\Field; + +use DropshippingXmlVendor\WPDesk\Forms\Sanitizer\TextFieldSanitizer; +class InputNumberField extends \DropshippingXmlVendor\WPDesk\Forms\Field\BasicField +{ + public function __construct() + { + parent::__construct(); + $this->set_default_value(''); + $this->set_attribute('type', 'number'); + } + public function get_sanitizer() + { + return new \DropshippingXmlVendor\WPDesk\Forms\Sanitizer\TextFieldSanitizer(); + } + public function get_template_name() + { + return 'input-number'; + } +} diff --git a/templates/input-number.php b/templates/input-number.php new file mode 100644 index 0000000..7dea702 --- /dev/null +++ b/templates/input-number.php @@ -0,0 +1,12 @@ +<?php + +/** + * @var \WPDesk\Forms\Field $field + * @var \WPDesk\View\Renderer\Renderer $renderer + * @var string $name_prefix + * @var string $value + * + * @var string $template_name Real field template. + * + */ +echo $renderer->render('input', ['field' => $field, 'renderer' => $renderer, 'name_prefix' => $name_prefix, 'value' => $value]); diff --git a/templates/input.php b/templates/input.php index bad044e..5a9525f 100644 --- a/templates/input.php +++ b/templates/input.php @@ -1,4 +1,5 @@ <?php + /** * @var \WPDesk\Forms\Field $field * @var string $name_prefix @@ -6,39 +7,100 @@ */ ?> -<?php if ( ! in_array( $field->get_type(), [ 'text', 'hidden' ] ) ): ?> - <input type="hidden" name="<?php echo $name_prefix; ?>[<?php echo $field->get_name(); ?>]" value="no"/> -<?php endif; ?> +<?php +if (!\in_array($field->get_type(), ['number', 'text', 'hidden'])) { + ?> + <input type="hidden" name="<?php + echo $name_prefix; + ?>[<?php + echo $field->get_name(); + ?>]" value="no"/> +<?php +} +?> -<?php if ( $field->get_type() === 'checkbox' && $field->has_sublabel() ) : ?> +<?php +if ($field->get_type() === 'checkbox' && $field->has_sublabel()) { + ?> <label> -<?php endif; ?> +<?php +} +?> <input - type="<?php echo esc_attr( $field->get_type() ); ?>" - name="<?php echo esc_attr( $name_prefix ); ?>[<?php echo esc_attr( $field->get_name() ); ?>]" - id="<?php echo esc_attr( $field->get_id() ); ?>" + type="<?php +echo \esc_attr($field->get_type()); +?>" + name="<?php +echo \esc_attr($name_prefix); +?>[<?php +echo \esc_attr($field->get_name()); +?>]" + id="<?php +echo \esc_attr($field->get_id()); +?>" - <?php if ( $field->has_classes() ): ?>class="<?php echo esc_attr( $field->get_classes() ); ?>"<?php endif; ?> + <?php +if ($field->has_classes()) { + ?>class="<?php + echo \esc_attr($field->get_classes()); + ?>"<?php +} +?> - <?php if ( $field->get_type() === 'text' && $field->has_placeholder() ): ?>placeholder="<?php echo esc_html( $field->get_placeholder() ); ?>"<?php endif; ?> + <?php +if ($field->get_type() === 'text' && $field->has_placeholder()) { + ?>placeholder="<?php + echo \esc_html($field->get_placeholder()); + ?>"<?php +} +?> -<?php foreach ( $field->get_attributes() as $key => $atr_val ): ?> -<?php echo $key ?>="<?php echo esc_attr( $atr_val ); ?>" -<?php endforeach; ?> +<?php +foreach ($field->get_attributes() as $key => $atr_val) { + echo $key; + ?>="<?php + echo \esc_attr($atr_val); + ?>" +<?php +} +?> -<?php if ( $field->is_required() ): ?>required="required"<?php endif; ?> -<?php if ( $field->is_disabled() ): ?>disabled="disabled"<?php endif; ?> -<?php if ( $field->is_readonly() ): ?>readonly="readonly"<?php endif; ?> +<?php +if ($field->is_required()) { + ?>required="required"<?php +} +if ($field->is_disabled()) { + ?>disabled="disabled"<?php +} +if ($field->is_readonly()) { + ?>readonly="readonly"<?php +} +?> -<?php if ( in_array( $field->get_type(), [ 'text', 'hidden' ] ) ): ?> - value="<?php echo esc_html( $value ); ?>" -<?php else: ?> +<?php +if (\in_array($field->get_type(), ['number', 'text', 'hidden'])) { + ?> + value="<?php + echo \esc_html($value); + ?>" +<?php +} else { + ?> value="yes" - <?php if ( $value === 'yes' ): ?>checked="checked"<?php endif; ?> -<?php endif; ?> + <?php + if ($value === 'yes') { + ?>checked="checked"<?php + } +} +?> /> -<?php if ( $field->get_type() === 'checkbox' && $field->has_sublabel() ) : ?> - <?php echo esc_html( $field->get_sublabel() ); ?></label> -<?php endif; ?> +<?php +if ($field->get_type() === 'checkbox' && $field->has_sublabel()) { + ?> + <?php + echo \esc_html($field->get_sublabel()); + ?></label> +<?php +} -- GitLab