%PDF- %PDF-
| Direktori : /home/infra/betheme/betheme/muffin-options/validation/color/ |
| Current File : //home/infra/betheme/betheme/muffin-options/validation/color/validation_color.php |
<?php
class MFN_Validation_color extends MFN_Options{
/**
* Constructor
*/
function __construct( $field, $value, $current ){
$this->field = $field;
$this->field['msg'] = isset( $this->field['msg'] ) ? $this->field['msg'] : __( 'This field must be a valid color value.', 'mfn-opts' );
// set value + sanitize
$this->value = str_replace( ' ', '', $value );
$this->current = $current;
$this->validate();
}
/**
* Validate
*/
function validate(){
// single color
if( ! is_array( $this->value ) ){
// allowed values: #f2f2f2, #fff, rgba(0,0,0,0.5), rgba(0,0,0,.5)
// regex101.com/r/A2IjNO/19
$pattern = '/^(\#[\da-f]{3}|\#[\da-f]{6}|rgba\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)(,\s*((0)*\.\d+|0|1))\)|rgb\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)\))$/i';
if( ! preg_match( $pattern, $this->value ) ){
$this->value = ( isset( $this->current ) ) ? $this->current : '';
$this->error = $this->field;
return false;
}
}
}
}