Ejemplo n.º 1
0
/**
 * Sanitize and validate form input. Accepts an array, return a sanitized array.
 *
 * @see catchbox_theme_options_init()
 * @todo set up Reset Options action
 *
 * @since Catch Box 1.0
 */
function catchbox_theme_options_validate($input)
{
    $output = $defaults = catchbox_get_default_theme_options();
    // favicon url
    if (isset($input['fav_icon'])) {
        $output['fav_icon'] = esc_url_raw($input['fav_icon']);
    }
    // web clicp icon url
    if (isset($input['web_clip'])) {
        $output['web_clip'] = esc_url_raw($input['web_clip']);
    }
    // Color scheme must be in our array of color scheme options
    if (isset($input['color_scheme']) && array_key_exists($input['color_scheme'], catchbox_color_schemes())) {
        $output['color_scheme'] = $input['color_scheme'];
    }
    // Our defaults for the link color may have changed, based on the color scheme.
    $output['link_color'] = $defaults['link_color'] = catchbox_get_default_link_color($output['color_scheme']);
    // Link color must be 3 or 6 hexadecimal characters
    if (isset($input['link_color']) && preg_match('/^#?([a-f0-9]{3}){1,2}$/i', $input['link_color'])) {
        $output['link_color'] = '#' . strtolower(ltrim($input['link_color'], '#'));
    }
    // Theme layout must be in our array of theme layout options
    if (isset($input['theme_layout']) && array_key_exists($input['theme_layout'], catchbox_layouts())) {
        $output['theme_layout'] = $input['theme_layout'];
    }
    // Theme layout must be in our array of theme layout options
    if (isset($input['content_layout']) && array_key_exists($input['content_layout'], catchbox_content_layout())) {
        $output['content_layout'] = $input['content_layout'];
    }
    // excerpt length
    if (isset($input['excerpt_length'])) {
        $output['excerpt_length'] = absint($input['excerpt_length']);
    }
    // feed url
    if (isset($input['feed_url'])) {
        $output['feed_url'] = esc_url_raw($input['feed_url']);
    }
    // Disable Header Search
    if (isset($input['disable_header_search'])) {
        // Our checkbox value is either 0 or 1
        $output['disable_header_search'] = $input['disable_header_search'];
    }
    // Custom CSS
    if (isset($input['custom_css'])) {
        $output['custom_css'] = wp_kses_stripslashes($input['custom_css']);
    }
    if (function_exists('catchbox_themeoption_invalidate_caches')) {
        catchbox_themeoption_invalidate_caches();
    }
    return apply_filters('catchbox_theme_options_validate', $output, $input, $defaults);
}
/**
 * Sanitize and validate form input. Accepts an array, return a sanitized array.
 *
 * @see catchbox_theme_options_init()
 * @todo set up Reset Options action
 *
 * @since Catch Box 1.0
 */
function catchbox_theme_options_validate($input)
{
    $options_validated = $defaults = catchbox_get_default_theme_options();
    //print_r($input);
    //die();
    // favicon url
    if (isset($input['fav_icon'])) {
        $options_validated['fav_icon'] = esc_url_raw($input['fav_icon']);
    }
    // web clicp icon url
    if (isset($input['web_clip'])) {
        $options_validated['web_clip'] = esc_url_raw($input['web_clip']);
    }
    // Color scheme must be in our array of color scheme options
    if (isset($input['color_scheme']) && array_key_exists($input['color_scheme'], catchbox_color_schemes())) {
        $options_validated['color_scheme'] = $input['color_scheme'];
    }
    // Our defaults for the link color may have changed, based on the color scheme.
    $options_validated['link_color'] = $defaults['link_color'] = catchbox_get_default_link_color($options_validated['color_scheme']);
    // Link color must be 3 or 6 hexadecimal characters
    if (isset($input['link_color']) && preg_match('/^#?([a-f0-9]{3}){1,2}$/i', $input['link_color'])) {
        $options_validated['link_color'] = '#' . strtolower(ltrim($input['link_color'], '#'));
    }
    // Theme layout must be in our array of theme layout options
    if (isset($input['theme_layout']) && array_key_exists($input['theme_layout'], catchbox_layouts())) {
        $options_validated['theme_layout'] = $input['theme_layout'];
    }
    // Theme layout must be in our array of theme layout options
    if (isset($input['content_layout']) && array_key_exists($input['content_layout'], catchbox_content_layout())) {
        $options_validated['content_layout'] = $input['content_layout'];
    }
    // excerpt length
    if (isset($input['excerpt_length'])) {
        $options_validated['excerpt_length'] = absint($input['excerpt_length']);
    }
    // feed url
    if (isset($input['feed_url'])) {
        $options_validated['feed_url'] = esc_url_raw($input['feed_url']);
    }
    // Move Site Title
    if (isset($input['site_title_above'])) {
        // Our checkbox value is either 0 or 1
        $options_validated['site_title_above'] = $input['site_title_above'];
    }
    // data validation for Search Settings
    if (isset($input['search_display_text'])) {
        $options_validated['search_display_text'] = sanitize_text_field($input['search_display_text']);
    }
    // Disable Header Search
    if (isset($input['disable_header_search'])) {
        // Our checkbox value is either 0 or 1
        $options_validated['disable_header_search'] = $input['disable_header_search'];
    }
    // Enable Seconday and Footer Menu
    if (isset($input['enable_menus'])) {
        // Our checkbox value is either 0 or 1
        $options_validated['enable_menus'] = $input['enable_menus'];
    }
    // Custom CSS
    if (isset($input['custom_css'])) {
        $options_validated['custom_css'] = wp_kses_stripslashes($input['custom_css']);
    }
    // data validation for scroll up
    if (isset($input['disable_scrollup'])) {
        // Our checkbox value is either 0 or 1
        $options_validated['disable_scrollup'] = $input['disable_scrollup'];
    }
    if (isset($input['slider_qty'])) {
        $options_validated['slider_qty'] = absint($input['slider_qty']) ? $input['slider_qty'] : 4;
    }
    if (isset($input['featured_slider'])) {
        $options_validated['featured_slider'] = array();
    }
    if (isset($input['slider_qty'])) {
        for ($i = 1; $i <= $input['slider_qty']; $i++) {
            if (!empty($input['featured_slider'][$i]) && intval($input['featured_slider'][$i])) {
                $options_validated['featured_slider'][$i] = absint($input['featured_slider'][$i]);
            }
        }
    }
    if (isset($input['exclude_slider_post'])) {
        // Our checkbox value is either 0 or 1
        $options_validated['exclude_slider_post'] = $input['exclude_slider_post'];
    }
    if (!empty($input['transition_effect'])) {
        $options_validated['transition_effect'] = wp_filter_nohtml_kses($input['transition_effect']);
    }
    // data validation for transition delay
    if (!empty($input['transition_delay']) && is_numeric($input['transition_delay'])) {
        $options_validated['transition_delay'] = $input['transition_delay'];
    }
    // data validation for transition length
    if (!empty($input['transition_duration']) && is_numeric($input['transition_duration'])) {
        $options_validated['transition_duration'] = $input['transition_duration'];
    }
    //Facebook
    if (isset($input['social_facebook'])) {
        $options_validated['social_facebook'] = esc_url_raw($input['social_facebook']);
    }
    //Twitter
    if (isset($input['social_twitter'])) {
        $options_validated['social_twitter'] = esc_url_raw($input['social_twitter']);
    }
    //Youtube
    if (isset($input['social_youtube'])) {
        $options_validated['social_youtube'] = esc_url_raw($input['social_youtube']);
    }
    //Google+
    if (isset($input['social_google'])) {
        $options_validated['social_google'] = esc_url_raw($input['social_google']);
    }
    //RSS
    if (isset($input['social_rss'])) {
        $options_validated['social_rss'] = esc_url_raw($input['social_rss']);
    }
    //Linkedin
    if (isset($input['social_linkedin'])) {
        $options_validated['social_linkedin'] = esc_url_raw($input['social_linkedin']);
    }
    //Pinterest
    if (isset($input['social_pinterest'])) {
        $options_validated['social_pinterest'] = esc_url_raw($input['social_pinterest']);
    }
    //Deviantart
    if (isset($input['social_deviantart'])) {
        $options_validated['social_deviantart'] = esc_url_raw($input['social_deviantart']);
    }
    //Tumblr
    if (isset($input['social_tumblr'])) {
        $options_validated['social_tumblr'] = esc_url_raw($input['social_tumblr']);
    }
    //Viemo
    if (isset($input['social_viemo'])) {
        $options_validated['social_viemo'] = esc_url_raw($input['social_viemo']);
    }
    //Dribble
    if (isset($input['social_dribbble'])) {
        $options_validated['social_dribbble'] = esc_url_raw($input['social_dribbble']);
    }
    //Myspace
    if (isset($input['social_myspace'])) {
        $options_validated['social_myspace'] = esc_url_raw($input['social_myspace']);
    }
    //Aim
    if (isset($input['social_aim'])) {
        $options_validated['social_aim'] = esc_url_raw($input['social_aim']);
    }
    //Flickr
    if (isset($input['social_flickr'])) {
        $options_validated['social_flickr'] = esc_url_raw($input['social_flickr']);
    }
    //Slideshare
    if (isset($input['social_slideshare'])) {
        $options_validated['social_slideshare'] = esc_url_raw($input['social_slideshare']);
    }
    //Instagram
    if (isset($input['social_instagram'])) {
        $options_validated['social_instagram'] = esc_url_raw($input['social_instagram']);
    }
    //Skype
    if (isset($input['social_skype'])) {
        $options_validated['social_skype'] = sanitize_text_field($input['social_skype']);
    }
    //Soundcloud
    if (isset($input['social_soundcloud'])) {
        $options_validated['social_soundcloud'] = esc_url_raw($input['social_soundcloud']);
    }
    //Email
    if (isset($input['social_email'])) {
        $options_validated['social_email'] = sanitize_email($input['social_email']);
    }
    //Xing
    if (isset($input['social_xing'])) {
        $options_validated['social_xing'] = esc_url_raw($input['social_xing']);
    }
    //Meetup
    if (isset($input['social_meetup'])) {
        $options_validated['social_meetup'] = esc_url_raw($input['social_meetup']);
    }
    // data validation for tracking code
    if (isset($input['tracker_header'])) {
        $options_validated['tracker_header'] = wp_kses_stripslashes($input['tracker_header']);
    }
    if (isset($input['tracker_footer'])) {
        $options_validated['tracker_footer'] = wp_kses_stripslashes($input['tracker_footer']);
    }
    //Clearing the theme option cache
    if (function_exists('catchbox_themeoption_invalidate_caches')) {
        catchbox_themeoption_invalidate_caches();
    }
    return $options_validated;
}