/** * 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; }