| Server IP : 150.230.34.123 / Your IP : 216.73.217.23 Web Server : LiteSpeed System : Linux amd-instance-20210802-1657 5.15.0-1042-oracle #48~20.04.1-Ubuntu SMP Mon Aug 21 18:27:46 UTC 2023 x86_64 User : ubuntu ( 1001) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/local/lsws/aloysius/html/wp-content/themes/neve/globals/ |
Upload File : |
<?php
/**
*
* Sanitize functions.
*
* Author: Andrei Baicus <andrei@themeisle.com>
* Created on: 20/08/2018
*
* @package Neve\Globals
*/
/**
* Function to sanitize alpha color.
*
* @param string $value Hex or RGBA color.
*
* @return string
*/
function neve_sanitize_colors( $value ) {
$is_var = ( strpos( $value, 'var' ) !== false );
if ( $is_var ) {
return sanitize_text_field( $value );
}
// Is this an rgba color or a hex?
$mode = ( false === strpos( $value, 'rgba' ) ) ? 'hex' : 'rgba';
if ( 'rgba' === $mode ) {
return neve_sanitize_rgba( $value );
} else {
return sanitize_hex_color( $value );
}
}
/**
* Sanitize rgba color.
*
* @param string $value Color in rgba format.
*
* @return string
*/
function neve_sanitize_rgba( $value ) {
$red = 'rgba(0,0,0,0)';
$green = 'rgba(0,0,0,0)';
$blue = 'rgba(0,0,0,0)';
$alpha = 'rgba(0,0,0,0)'; // If empty or an array return transparent
if ( empty( $value ) || is_array( $value ) ) {
return '';
}
// By now we know the string is formatted as an rgba color so we need to further sanitize it.
$value = str_replace( ' ', '', $value );
sscanf( $value, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha );
return 'rgba(' . $red . ',' . $green . ',' . $blue . ',' . $alpha . ')';
}
/**
* Sanitize checkbox output.
*
* @param bool $value value to be sanitized.
*
* @return string
*/
function neve_sanitize_checkbox( $value ) {
return isset( $value ) && true === (bool) $value;
}
/**
* Check if a string is in json format
*
* @param string $string Input.
*
* @return bool
* @since 1.1.38
*/
function neve_is_json( $string ) {
return is_string( $string ) && is_array( json_decode( $string, true ) );
}
/**
* Sanitize values for range inputs.
*
* @param string $input Control input.
*
* @return float
*/
function neve_sanitize_range_value( $input ) {
if ( ! neve_is_json( $input ) ) {
return floatval( $input );
}
$range_value = json_decode( $input, true );
$range_value['desktop'] = is_numeric( $range_value['desktop'] ) ? floatval( $range_value['desktop'] ) : '';
$range_value['tablet'] = is_numeric( $range_value['tablet'] ) ? floatval( $range_value['tablet'] ) : '';
$range_value['mobile'] = is_numeric( $range_value['mobile'] ) ? floatval( $range_value['mobile'] ) : '';
return wp_json_encode( $range_value );
}
/**
* Sanitize font weight values.
*
* @param string $value font-weight value.
*
* @return string
*/
function neve_sanitize_font_weight( $value ) {
$allowed = array( '100', '200', '300', '400', '500', '600', '700', '800', '900' );
if ( ! in_array( (string) $value, $allowed, true ) ) {
return '300';
}
return $value;
}
/**
* Sanitize font weight values.
*
* @param string $value font-weight value.
*
* @return string
*/
function neve_sanitize_text_transform( $value ) {
$allowed = array( 'none', 'capitalize', 'uppercase', 'lowercase' );
if ( ! in_array( $value, $allowed, true ) ) {
return 'none';
}
return $value;
}
/**
* Sanitize the background control.
*
* @param array $value input value.
*
* @return WP_Error | array
*/
function neve_sanitize_background( $value ) {
if ( ! is_array( $value ) ) {
return new WP_Error();
}
if ( ! isset( $value['type'] ) || ! in_array( $value['type'], array( 'image', 'color' ), true ) ) {
return new WP_Error();
}
return $value;
}
/**
* Sanitize the button appearance control.
*
* @param array $value the control value.
*
* @return array
*/
function neve_sanitize_button_appearance( $value ) {
if ( is_array( $value ) ) {
return $value;
}
return $value;
}
/**
* Sanitize the typography control.
*
* @param array $value the control value.
*
* @return array
*/
function neve_sanitize_typography_control( $value ) {
$keys = [
'lineHeight',
'letterSpacing',
'fontWeight',
'fontSize',
'textTransform',
];
// Approve Keys.
foreach ( $value as $key => $values ) {
if ( ! in_array( $key, $keys, true ) ) {
unset( $value[ $key ] );
}
}
// Font Weight.
if ( ! in_array( $value['fontWeight'], [ '100', '200', '300', '400', '500', '600', '700', '800', '900' ], true ) ) {
$value['fontWeight'] = '300';
}
// Text Transform.
if ( ! in_array( $value['textTransform'], [ 'none', 'uppercase', 'lowercase', 'capitalize' ], true ) ) {
$value['textTransform'] = 'none';
}
// Make sure we deal with arrays.
foreach ( [ 'letterSpacing', 'lineHeight', 'fontSize' ] as $value_type ) {
if ( ! is_array( $value[ $value_type ] ) ) {
$value[ $value_type ] = [];
}
}
return $value;
}