????
| Current Path : /home2/morganrand/www/wp-content/themes/wanderfuls-2/framework/classes/ |
| Current File : /home2/morganrand/www/wp-content/themes/wanderfuls-2/framework/classes/sanitize-data.php |
<?php
/**
* Sanitize inputted data
*
* @package Wanderfuls WordPress Theme
* @subpackage Framework
*/
class TB_Sanitize_Data {
/**
* Parses data
*
* @since 2.0.0
*/
public function parse_data( $data, $type ) {
$type = str_replace( '-', '_', $type );
if ( method_exists( $this, $type ) ) {
return $this->$type( $data );
}
}
/**
* Pixels
*
* @since 2.0.0
*/
private function px( $data ) {
if ( 'none' == $data ) {
return '0';
} else {
return floatval( $data ) . 'px';
}
}
/**
* Font Size
*
* @since 2.0.0
*/
private function font_size( $data ) {
if ( strpos( $data, 'px' ) || strpos( $data, 'em' ) ) {
$data = $data;
} else {
$data = intval( $data ) .'px';
}
if ( $data != '0px' && $data != '0em' ) {
return $data;
}
}
/**
* Font Weight
*
* @since 2.0.0
*/
private function font_weight( $data ) {
if ( 'normal' == $data ) {
$data = '400';
} elseif ( 'semibold' == $data ) {
$data = '600';
} elseif ( 'bold' == $data ) {
$data = '700';
} elseif ( 'bolder' == $data ) {
$data = '900';
}
return $data;
}
/**
* Hex Color
*
* @since 2.0.0
*/
private function hex_color( $data ) {
if ( ! $data ) {
return null;
} elseif ( 'none' == $data ) {
return 'transparent';
} elseif ( preg_match('|^#([A-Fa-f0-9]{3}){1,2}$|', $data ) ) {
return $data;
} else {
return null;
}
}
/**
* Border Radius
*
* @since 2.0.0
*/
private function border_radius( $data ) {
if ( 'none' == $data ) {
return '0';
} elseif ( strpos( $data, 'px' ) ) {
return $data;
} elseif ( strpos( $data, '%' ) ) {
if ( '50%' == $data ) {
return $data;
} else {
return str_replace( '%', 'px', $data );
}
} else {
return intval( $data ) .'px';
}
}
/**
* Pixel or Percent
*
* @since 2.0.0
*/
private function px_pct( $data ) {
if ( 'none' == $data || '0px' == $data ) {
return '0';
} elseif ( strpos( $data, '%' ) ) {
return $data;
} elseif ( $data = floatval( $data ) ) {
return $data .'px';
}
}
/**
* Opacity
*
* @since 2.0.0
*/
private function opacity( $data ) {
if ( ! is_numeric( $data ) ) {
return;
} elseif ( '1' > $data ) {
return $data;
} else {
return;
}
}
/**
* Embed URL
*
* @since 2.0.0
*/
private function embed_url( $data ) {
// First sanatize the URL
$url = esc_url( $data );
// Sanitize vimeo
if ( $url && false !== strpos( $url, 'vimeo' ) ) {
// Return if good
if ( strpos( $url, 'player.vimeo' ) ) {
return $url;
}
// Get the ID
$video_id = str_replace( 'http://vimeo.com/', '', $url );
if ( ! is_numeric( $video_id ) ) {
$video_id = str_replace( 'https://vimeo.com/', '', $url );
} elseif ( ! is_numeric( $video_id ) ) {
$video_id = str_replace( 'http://www.vimeo.com/', '', $url );
} elseif ( ! is_numeric( $video_id ) ) {
$video_id = str_replace( 'https://www.vimeo.com/', '', $url );
}
// Return embed URL
if ( is_numeric( $video_id ) ) {
return esc_url( 'player.vimeo.com/video/'. $video_id );
}
}
// Sanitize Youtube
elseif ( $url && false !== strpos( $url, 'youtu' ) ) {
// Return if already the embed url
if ( strpos( $url, 'embed' ) ) {
return $url;
}
// Convert url
$url_string = parse_url( $url, PHP_URL_QUERY );
parse_str( $url_string, $args );
if ( ! empty ( $args['v'] ) ) {
return esc_url( 'youtube.com/embed/' . $args['v'] );
}
}
}
} // End Class
// Helper function runs the TB_Sanitize_Data class
function tb_sanitize_data( $data = '', $type = '' ) {
if ( $data && $type ) {
$class = new TB_Sanitize_Data();
return $class->parse_data( $data, $type );
}
}