diff --git a/changelog.txt b/changelog.txt index 6b6532c4595af1b0d63b7f7965c6f1d0e00d7526..401c33a4f55e7c52b6707f3ad932483f003c678b 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,12 @@ # Changelog +## [2.0.4] - 2020-06-24 +### Added +- new button form field +- new input type number form field +### Changed +- fixed nonce template + ## [2.0.3] - 2020-06-22 ### Added - css class in JSON renderer diff --git a/src/Field/ButtonField.php b/src/Field/ButtonField.php new file mode 100644 index 0000000000000000000000000000000000000000..ba31ead7ddd3f15f074f5d0d93d279fba3700459 --- /dev/null +++ b/src/Field/ButtonField.php @@ -0,0 +1,15 @@ +<?php + +namespace DropshippingXmlVendor\WPDesk\Forms\Field; + +class ButtonField extends \DropshippingXmlVendor\WPDesk\Forms\Field\NoValueField +{ + public function get_template_name() + { + return 'button'; + } + public function get_type() + { + return 'button'; + } +} diff --git a/src/Field/InputNumberField.php b/src/Field/InputNumberField.php new file mode 100644 index 0000000000000000000000000000000000000000..898cef6e7d4783215d5dfe6881c83138660b095d --- /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/button.php b/templates/button.php new file mode 100644 index 0000000000000000000000000000000000000000..43c21190ad4326181dd29fd4a45f930642a7cc26 --- /dev/null +++ b/templates/button.php @@ -0,0 +1,31 @@ +<?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. + * + */ +?> + +<button +<?php if ($field->has_classes()): ?> + class="<?php echo \esc_attr($field->get_classes()); ?>" +<?php endif; ?> + +<?php foreach ($field->get_attributes([]) as $key => $val): ?> + <?php echo $key.'="'.\esc_attr($val).'"'; ?> +<?php endforeach; ?> + + type="<?php echo \esc_attr($field->get_type()); ?>" + name="<?php echo \esc_attr($name_prefix).'['.\esc_attr($field->get_name()).']'?>" + id="<?php echo \esc_attr($field->get_id()); ?>" + value="<?php echo \esc_html($value); ?>" + + <?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 echo \esc_html($field->get_label()); ?></button> diff --git a/templates/input-number.php b/templates/input-number.php new file mode 100644 index 0000000000000000000000000000000000000000..7dea70268a228dd4633706c03d931b613e93a9f1 --- /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 bad044ee6c41ea0163d952a6adc247ef981c016b..b02e5eaccb625c0a3b0d0c1302e97e3eb8064da4 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,42 @@ */ ?> -<?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 if (!\in_array($field->get_type(), ['number', 'text', 'hidden'])): ?> + <input type="hidden" name="<?php echo $name_prefix.'['.$field->get_name().']'; ?>" value="no"/> <?php endif; ?> -<?php if ( $field->get_type() === 'checkbox' && $field->has_sublabel() ) : ?> -<label> -<?php endif; ?> +<?php if ($field->get_type() === 'checkbox' && $field->has_sublabel()): ?><label><?php endif; ?> <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() ); ?>" - - <?php if ( $field->has_classes() ): ?>class="<?php echo esc_attr( $field->get_classes() ); ?>"<?php endif; ?> - - <?php if ( $field->get_type() === 'text' && $field->has_placeholder() ): ?>placeholder="<?php echo esc_html( $field->get_placeholder() ); ?>"<?php endif; ?> - -<?php foreach ( $field->get_attributes() as $key => $atr_val ): ?> -<?php echo $key ?>="<?php echo esc_attr( $atr_val ); ?>" -<?php endforeach; ?> - -<?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 ( in_array( $field->get_type(), [ 'text', 'hidden' ] ) ): ?> - value="<?php echo esc_html( $value ); ?>" -<?php else: ?> - value="yes" - <?php if ( $value === 'yes' ): ?>checked="checked"<?php endif; ?> -<?php endif; ?> + type="<?php echo \esc_attr($field->get_type()); ?>" + name="<?php echo \esc_attr($name_prefix).'['.\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->get_type() === 'text' && $field->has_placeholder()):?> + placeholder="<?php echo \esc_html($field->get_placeholder());?>" + <?php endif; ?> + + <?php foreach ($field->get_attributes() as $key => $atr_val): + echo $key.'="'.\esc_attr($atr_val).'"'; ?> + <?php endforeach; ?> + + <?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 (\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 ( $field->get_type() === 'checkbox' && $field->has_sublabel() ) : ?> - <?php echo esc_html( $field->get_sublabel() ); ?></label> +<?php if ($field->get_type() === 'checkbox' && $field->has_sublabel()): ?> + <?php echo \esc_html($field->get_sublabel()); ?></label> <?php endif; ?> diff --git a/templates/noonce.php b/templates/noonce.php index 7bf977476ab93f3ff998a53483cd924d612abaa1..0cd58a561d5024e462e5c04cd9c471d7bc4794b7 100644 --- a/templates/noonce.php +++ b/templates/noonce.php @@ -1,8 +1,8 @@ <?php + /** * @var \WPDesk\Forms\Field $field * @var string $name_prefix * @var string $value */ -?> -<?php wp_nonce_field( $field->get_meta_value( 'action' ), $name_prefix . $field->get_name() ); +\wp_nonce_field($field->get_meta_value('action'), $name_prefix .'['. $field->get_name().']');