Skip to content
Snippets Groups Projects

release: 3.0.0

Merged Krzysztof Dyszczyk requested to merge devel into master
12 files
+ 98
95
Compare changes
  • Side-by-side
  • Inline

Files

+ 34
42
@@ -6,7 +6,6 @@ use WPDesk\Forms\Field;
use WPDesk\Forms\Sanitizer;
use WPDesk\Forms\Sanitizer\NoSanitize;
use WPDesk\Forms\Serializer;
use WPDesk\Forms\Serializer\NoSerialize;
use WPDesk\Forms\Validator;
use WPDesk\Forms\Validator\ChainValidator;
use WPDesk\Forms\Validator\RequiredValidator;
@@ -22,7 +21,7 @@ abstract class BasicField implements Field {
const DEFAULT_PRIORITY = 10;
/** @var array{default_value: string, possible_values?: string[], sublabel?: string, priority: int, label: string, description: string, description_tip: string, data: array<string|int>, serializer: ?Serializer} */
/** @var array{default_value: string, possible_values?: string[], sublabel?: string, priority: int, label: string, description: string, description_tip: string, data: array<string|int>} */
protected $meta = [
'priority' => self::DEFAULT_PRIORITY,
'default_value' => '',
@@ -30,9 +29,41 @@ abstract class BasicField implements Field {
'description' => '',
'description_tip' => '',
'data' => [],
'serializer' => null,
];
public function should_override_form_template(): bool {
return false;
}
public function get_type(): string {
return 'text';
}
public function get_validator(): Validator {
$chain = new ChainValidator();
if ( $this->is_required() ) {
$chain->attach( new RequiredValidator() );
}
return $chain;
}
public function get_sanitizer(): Sanitizer {
return new NoSanitize();
}
public function has_serializer(): bool {
return false;
}
public function get_serializer(): Serializer {
throw new \BadMethodCallException('You must define your serializer in a child class.');
}
final public function get_name(): string {
return $this->attributes['name'];
}
final public function get_label(): string {
return $this->meta['label'];
}
@@ -51,11 +82,6 @@ abstract class BasicField implements Field {
return ! empty( $this->meta['description_tip'] );
}
/** Override method if you need. */
public function should_override_form_template(): bool {
return false;
}
final public function get_description(): string {
return $this->meta['description'];
}
@@ -80,10 +106,6 @@ abstract class BasicField implements Field {
return $this;
}
public function get_type(): string {
return 'text';
}
final public function set_placeholder( string $value ): Field {
$this->attributes['placeholder'] = $value;
@@ -132,9 +154,6 @@ abstract class BasicField implements Field {
return $this->attributes['id'] ?? sanitize_title( $this->get_name() );
}
public function get_name(): string {
return $this->attributes['name'];
}
final public function is_multiple(): bool {
return $this->attributes['multiple'];
@@ -211,37 +230,10 @@ abstract class BasicField implements Field {
return $this;
}
public function get_validator(): Validator {
$chain = new ChainValidator();
if ( $this->is_required() ) {
$chain->attach( new RequiredValidator() );
}
return $chain;
}
final public function is_required(): bool {
return $this->attributes['required'];
}
public function get_sanitizer(): Sanitizer {
return new NoSanitize();
}
final public function get_serializer(): Serializer {
if ( ! empty( $this->meta['serializer'] ) && $this->meta['serializer'] instanceof Serializer ) {
return $this->meta['serializer'];
}
return new NoSerialize();
}
public function set_serializer( Serializer $serializer ): Field {
$this->meta['serializer'] = $serializer;
return $this;
}
final public function get_priority(): int {
return $this->meta['priority'];
}
Loading