mirror of https://github.com/IoTcat/Sakura.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
248 lines
7.5 KiB
248 lines
7.5 KiB
<?php |
|
add_filter( 'of_sanitize_text', 'sanitize_text_field' ); |
|
function of_sanitize_textarea($input) { |
|
global $allowedposttags; |
|
$output = wp_kses( $input, $allowedposttags); |
|
return $output; |
|
} |
|
add_filter( 'of_sanitize_textarea', 'of_sanitize_textarea' ); |
|
add_filter( 'of_sanitize_select', 'of_sanitize_enum', 10, 2); |
|
add_filter( 'of_sanitize_radio', 'of_sanitize_enum', 10, 2); |
|
add_filter( 'of_sanitize_images', 'of_sanitize_enum', 10, 2); |
|
add_filter( 'of_sanitize_colorradio', 'of_sanitize_enum', 10, 2); |
|
function of_sanitize_checkbox( $input ) { |
|
if ( $input ) { |
|
$output = '1'; |
|
} else { |
|
$output = false; |
|
} |
|
return $output; |
|
} |
|
add_filter( 'of_sanitize_checkbox', 'of_sanitize_checkbox' ); |
|
function of_sanitize_multicheck( $input, $option ) { |
|
$output = ''; |
|
if ( is_array( $input ) ) { |
|
foreach( $option['options'] as $key => $value ) { |
|
$output[$key] = "0"; |
|
} |
|
foreach( $input as $key => $value ) { |
|
if ( array_key_exists( $key, $option['options'] ) && $value ) { |
|
$output[$key] = "1"; |
|
} |
|
} |
|
} |
|
return $output; |
|
} |
|
add_filter( 'of_sanitize_multicheck', 'of_sanitize_multicheck', 10, 2 ); |
|
add_filter( 'of_sanitize_color', 'of_sanitize_hex' ); |
|
function of_sanitize_upload( $input ) { |
|
$output = ''; |
|
$filetype = wp_check_filetype($input); |
|
if ( $filetype["ext"] ) { |
|
$output = $input; |
|
} |
|
return $output; |
|
} |
|
add_filter( 'of_sanitize_upload', 'of_sanitize_upload' ); |
|
function of_sanitize_editor($input) { |
|
if ( current_user_can( 'unfiltered_html' ) ) { |
|
$output = $input; |
|
} |
|
else { |
|
global $allowedtags; |
|
$output = wpautop(wp_kses( $input, $allowedtags)); |
|
} |
|
return $output; |
|
} |
|
add_filter( 'of_sanitize_editor', 'of_sanitize_editor' ); |
|
function of_sanitize_allowedtags($input) { |
|
global $allowedtags; |
|
$output = wpautop(wp_kses( $input, $allowedtags)); |
|
return $output; |
|
} |
|
function of_sanitize_allowedposttags($input) { |
|
global $allowedposttags; |
|
$output = wpautop(wp_kses( $input, $allowedposttags)); |
|
return $output; |
|
} |
|
|
|
add_filter( 'of_sanitize_info', 'of_sanitize_allowedposttags' ); |
|
function of_sanitize_enum( $input, $option ) { |
|
$output = ''; |
|
if ( array_key_exists( $input, $option['options'] ) ) { |
|
$output = $input; |
|
} |
|
return $output; |
|
} |
|
function of_sanitize_background( $input ) { |
|
$output = wp_parse_args( $input, array( |
|
'color' => '', |
|
'image' => '', |
|
'repeat' => 'repeat', |
|
'position' => 'top center', |
|
'attachment' => 'scroll' |
|
) ); |
|
|
|
$output['color'] = apply_filters( 'of_sanitize_hex', $input['color'] ); |
|
$output['image'] = apply_filters( 'of_sanitize_upload', $input['image'] ); |
|
$output['repeat'] = apply_filters( 'of_background_repeat', $input['repeat'] ); |
|
$output['position'] = apply_filters( 'of_background_position', $input['position'] ); |
|
$output['attachment'] = apply_filters( 'of_background_attachment', $input['attachment'] ); |
|
|
|
return $output; |
|
} |
|
add_filter( 'of_sanitize_background', 'of_sanitize_background' ); |
|
function of_sanitize_background_repeat( $value ) { |
|
$recognized = of_recognized_background_repeat(); |
|
if ( array_key_exists( $value, $recognized ) ) { |
|
return $value; |
|
} |
|
return apply_filters( 'of_default_background_repeat', current( $recognized ) ); |
|
} |
|
add_filter( 'of_background_repeat', 'of_sanitize_background_repeat' ); |
|
|
|
function of_sanitize_background_position( $value ) { |
|
$recognized = of_recognized_background_position(); |
|
if ( array_key_exists( $value, $recognized ) ) { |
|
return $value; |
|
} |
|
return apply_filters( 'of_default_background_position', current( $recognized ) ); |
|
} |
|
add_filter( 'of_background_position', 'of_sanitize_background_position' ); |
|
|
|
function of_sanitize_background_attachment( $value ) { |
|
$recognized = of_recognized_background_attachment(); |
|
if ( array_key_exists( $value, $recognized ) ) { |
|
return $value; |
|
} |
|
return apply_filters( 'of_default_background_attachment', current( $recognized ) ); |
|
} |
|
add_filter( 'of_background_attachment', 'of_sanitize_background_attachment' ); |
|
function of_sanitize_typography( $input, $option ) { |
|
|
|
$output = wp_parse_args( $input, array( |
|
'size' => '', |
|
'face' => '', |
|
'style' => '', |
|
'color' => '' |
|
) ); |
|
|
|
if ( isset( $option['options']['faces'] ) && isset( $input['face'] ) ) { |
|
if ( !( array_key_exists( $input['face'], $option['options']['faces'] ) ) ) { |
|
$output['face'] = ''; |
|
} |
|
} |
|
else { |
|
$output['face'] = apply_filters( 'of_font_face', $output['face'] ); |
|
} |
|
|
|
$output['size'] = apply_filters( 'of_font_size', $output['size'] ); |
|
$output['style'] = apply_filters( 'of_font_style', $output['style'] ); |
|
$output['color'] = apply_filters( 'of_sanitize_color', $output['color'] ); |
|
return $output; |
|
} |
|
add_filter( 'of_sanitize_typography', 'of_sanitize_typography', 10, 2 ); |
|
function of_sanitize_font_size( $value ) { |
|
$recognized = of_recognized_font_sizes(); |
|
$value_check = preg_replace('/px/','', $value); |
|
if ( in_array( (int) $value_check, $recognized ) ) { |
|
return $value; |
|
} |
|
return apply_filters( 'of_default_font_size', $recognized ); |
|
} |
|
add_filter( 'of_font_size', 'of_sanitize_font_size' ); |
|
function of_sanitize_font_style( $value ) { |
|
$recognized = of_recognized_font_styles(); |
|
if ( array_key_exists( $value, $recognized ) ) { |
|
return $value; |
|
} |
|
return apply_filters( 'of_default_font_style', current( $recognized ) ); |
|
} |
|
add_filter( 'of_font_style', 'of_sanitize_font_style' ); |
|
function of_sanitize_font_face( $value ) { |
|
$recognized = of_recognized_font_faces(); |
|
if ( array_key_exists( $value, $recognized ) ) { |
|
return $value; |
|
} |
|
return apply_filters( 'of_default_font_face', current( $recognized ) ); |
|
} |
|
add_filter( 'of_font_face', 'of_sanitize_font_face' ); |
|
function of_recognized_background_repeat() { |
|
$default = array( |
|
'no-repeat' =>'不重复填充', |
|
'repeat-x' =>'水平重复填充', |
|
'repeat-y' =>'垂直重复填充', |
|
'repeat' =>'重复填充' |
|
); |
|
return apply_filters( 'of_recognized_background_repeat', $default ); |
|
} |
|
function of_recognized_background_position() { |
|
$default = array( |
|
'top left' =>'上左对齐', |
|
'top center' =>'上中对齐', |
|
'top right' =>'上右对齐', |
|
'center left' =>'中左对齐', |
|
'center center' =>'中中对齐', |
|
'center right' =>'中右对齐', |
|
'bottom left' =>'下左对齐', |
|
'bottom center' =>'下中对齐', |
|
'bottom right' =>'下右对齐' |
|
); |
|
return apply_filters( 'of_recognized_background_position', $default ); |
|
} |
|
function of_recognized_background_attachment() { |
|
$default = array( |
|
'scroll' =>'固定', |
|
'fixed' => '滚动' |
|
); |
|
return apply_filters( 'of_recognized_background_attachment', $default ); |
|
} |
|
function of_sanitize_hex( $hex, $default = '' ) { |
|
if ( of_validate_hex( $hex ) ) { |
|
return $hex; |
|
} |
|
return $default; |
|
} |
|
function of_recognized_font_sizes() { |
|
$sizes = range( 12,24,2); |
|
$sizes = apply_filters( 'of_recognized_font_sizes', $sizes ); |
|
$sizes = array_map( 'absint', $sizes ); |
|
return $sizes; |
|
} |
|
function of_recognized_font_faces() { |
|
$default = array( |
|
'arial' => 'Arial', |
|
'verdana' => 'Verdana, Geneva', |
|
'trebuchet' => 'Trebuchet', |
|
'georgia' => 'Georgia', |
|
'times' => 'Times New Roman', |
|
'tahoma' => 'Tahoma, Geneva', |
|
'palatino' => 'Palatino', |
|
'helvetica' => 'Helvetica*' |
|
); |
|
return apply_filters( 'of_recognized_font_faces', $default ); |
|
} |
|
function of_recognized_font_styles() { |
|
$default = array( |
|
'normal' => '普通', |
|
'italic' => '斜体', |
|
'bold' => '粗体', |
|
'bold italic' => '斜体+粗体' |
|
); |
|
return apply_filters( 'of_recognized_font_styles', $default ); |
|
} |
|
function of_validate_hex( $hex ) { |
|
$hex = trim( $hex ); |
|
if ( 0 === strpos( $hex, '#' ) ) { |
|
$hex = substr( $hex, 1 ); |
|
} |
|
elseif ( 0 === strpos( $hex, '%23' ) ) { |
|
$hex = substr( $hex, 3 ); |
|
} |
|
if ( 0 === preg_match( '/^[0-9a-fA-F]{6}$/', $hex ) ) { |
|
return false; |
|
} |
|
else { |
|
return true; |
|
} |
|
} |