/** * Binds JS handlers to make Theme Customizer preview reload changes asynchronously for catch-flames. * And flushes out all transient data on preview * * @since Catch Flames 2.7 */ function catchflames_customize_preview() { //Remove transients on preview catchflames_themeoption_invalidate_caches(); global $catchflames_options_defaults, $catchflames_options_settings; $catchflames_options_settings = catchflames_options_set_defaults($catchflames_options_defaults); }
/** * Validate content options * @param array $options * @uses esc_url_raw, absint, esc_textarea, sanitize_text_field, catchflames_invalidate_caches * @return array */ function catchflames_theme_options_validate($options) { global $catchflames_options_settings; $input_validated = $catchflames_options_settings; global $catchflames_options_defaults; $defaults = $catchflames_options_defaults; $fonts = catchflames_available_fonts(); $units = array('px', 'pt', 'em', '%'); $input = array(); $input = $options; // data validation for scroll up if (isset($input['disable_scrollup'])) { // Our checkbox value is either 0 or 1 $input_validated['disable_scrollup'] = $input['disable_scrollup']; } // data validation for favicon if (isset($input['fav_icon'])) { $input_validated['fav_icon'] = esc_url_raw($input['fav_icon']); } if (isset($input['remove_favicon'])) { // Our checkbox value is either 0 or 1 $input_validated['remove_favicon'] = $input['remove_favicon']; } // data validation for web clip icon if (isset($input['web_clip'])) { $input_validated['web_clip'] = esc_url_raw($input['web_clip']); } if (isset($input['remove_web_clip'])) { // Our checkbox value is either 0 or 1 $input_validated['remove_web_clip'] = $input['remove_web_clip']; } // data validation for logo if (isset($input['featured_logo_header'])) { $input_validated['featured_logo_header'] = esc_url_raw($input['featured_logo_header']); } if (isset($input['remove_header_logo'])) { // Our checkbox value is either 0 or 1 $input_validated['remove_header_logo'] = $input['remove_header_logo']; } // data validation for Search Settings if (isset($input['search_display_text'])) { $input_validated['search_display_text'] = sanitize_text_field($input['search_display_text']); } // Data validation for Fixed Header Top Options if (isset($input['enable_header_top'])) { // Our checkbox value is either 0 or 1 $input_validated['enable_header_top'] = $input['enable_header_top']; } if (isset($input['disable_top_menu_logo'])) { // Our checkbox value is either 0 or 1 $input_validated['disable_top_menu_logo'] = $input['disable_top_menu_logo']; } if (isset($input['top_menu_logo'])) { $input_validated['top_menu_logo'] = esc_url_raw($input['top_menu_logo']); } // data validation for Header Featured Image Options if (isset($input['enable_featured_header_image'])) { $input_validated['enable_featured_header_image'] = $input['enable_featured_header_image']; } if (isset($input['featured_header_image_alt'])) { $input_validated['featured_header_image_alt'] = sanitize_text_field($input['featured_header_image_alt']); } if (isset($input['featured_header_image_url'])) { $input_validated['featured_header_image_url'] = esc_url_raw($input['featured_header_image_url']); } if (isset($input['reset_header_image'])) { // Our checkbox value is either 0 or 1 $input_validated['reset_header_image'] = $input['reset_header_image']; if ($input['reset_header_image'] == '1') { $input_validated['enable_featured_header_image'] = $defaults['enable_featured_header_image']; $input_validated['featured_header_image_alt'] = $defaults['featured_header_image_alt']; $input_validated['featured_header_image_url'] = $defaults['featured_header_image_url']; } } // data validation for Disable Primary Menu if (isset($input['disable_header_menu'])) { // Our checkbox value is either 0 or 1 $input_validated['disable_header_menu'] = $input['disable_header_menu']; } // data validation for Color Scheme if (isset($input['color_scheme'])) { // Our checkbox value is either 0 or 1 $input_validated['color_scheme'] = $input['color_scheme']; } // data validation for Default Layout verification if (isset($input['sidebar_layout'])) { $input_validated['sidebar_layout'] = $input['sidebar_layout']; } // data validation for Homepage Content Layout verification if (isset($input['content_layout'])) { $input_validated['content_layout'] = $input['content_layout']; } if (isset($input['reset_sidebar_layout'])) { // Our checkbox value is either 0 or 1 $input_validated['reset_sidebar_layout'] = $input['reset_sidebar_layout']; if ($input['reset_sidebar_layout'] == 1) { $input_validated['sidebar_layout'] = $defaults['sidebar_layout']; $input_validated['content_layout'] = $defaults['content_layout']; } } // data validation for Custom CSS Style if (isset($input['custom_css'])) { $input_validated['custom_css'] = wp_kses_stripslashes($input['custom_css']); } // data validation for Homepage/Frontpage posts categories if (isset($input['front_page_category'])) { $input_validated['front_page_category'] = $input['front_page_category']; } // data validation for More Tags and Excerpt Length if (isset($input['more_tag_text'])) { $input_validated['more_tag_text'] = htmlentities(sanitize_text_field($input['more_tag_text']), ENT_QUOTES, 'UTF-8'); } //data validation for excerpt length if (isset($input['excerpt_length'])) { $input_validated['excerpt_length'] = absint($input['excerpt_length']) ? $input['excerpt_length'] : 30; } //data validation for reset more if (isset($input['reset_more_tag'])) { // Our checkbox value is either 0 or 1 $input_validated['reset_more_tag'] = $input['reset_more_tag']; if ($input['reset_more_tag'] == 1) { global $catchflames_options_defaults; $defaults = $catchflames_options_defaults; $input_validated['more_tag_text'] = $defaults['more_tag_text']; $input_validated['excerpt_length'] = $defaults['excerpt_length']; } } if (isset($input['exclude_slider_post'])) { // Our checkbox value is either 0 or 1 $input_validated['exclude_slider_post'] = $input['exclude_slider_post']; } // data validation Slider Options // data validation for Slider Type if (isset($input['select_slider_type'])) { $input_validated['select_slider_type'] = $input['select_slider_type']; } if (isset($input['select_slider_layout'])) { $input_validated['select_slider_layout'] = $input['select_slider_layout']; } // data validation for Enable Slider if (isset($input['enable_slider'])) { $input_validated['enable_slider'] = $input['enable_slider']; } // data validation for number of slides if (isset($input['slider_qty'])) { $input_validated['slider_qty'] = absint($input['slider_qty']) ? $input['slider_qty'] : 4; } // data validation for transition effect if (isset($input['transition_effect'])) { $input_validated['transition_effect'] = wp_filter_nohtml_kses($input['transition_effect']); } // data validation for transition delay if (isset($input['transition_delay']) && is_numeric($input['transition_delay'])) { $input_validated['transition_delay'] = $input['transition_delay']; } // data validation for transition length if (isset($input['transition_duration']) && is_numeric($input['transition_duration'])) { $input_validated['transition_duration'] = $input['transition_duration']; } // data validation for Featured Page and Page Slider if (isset($input['featured_slider_page'])) { $input_validated['featured_slider_page'] = array(); } if (isset($input['slider_qty'])) { for ($i = 1; $i <= $input['slider_qty']; $i++) { if (!empty($input['featured_slider_page'][$i]) && intval($input['featured_slider_page'][$i])) { $input_validated['featured_slider_page'][$i] = absint($input['featured_slider_page'][$i]); } } } // data validation for Featured Image Slider if (isset($input['featured_image_slider_image'])) { $input_validated['featured_image_slider_image'] = array(); } if (isset($input['featured_image_slider_link'])) { $input_validated['featured_image_slider_link'] = array(); } if (isset($input['featured_image_slider_base'])) { $input_validated['featured_image_slider_base'] = array(); } if (isset($input['featured_image_slider_title'])) { $input_validated['featured_image_slider_title'] = array(); } if (isset($input['featured_image_slider_content'])) { $input_validated['featured_image_slider_content'] = array(); } if (isset($input['slider_qty'])) { for ($i = 1; $i <= $input['slider_qty']; $i++) { if (!empty($input['featured_image_slider_image'][$i])) { $input_validated['featured_image_slider_image'][$i] = esc_url_raw($input['featured_image_slider_image'][$i]); } if (!empty($input['featured_image_slider_link'][$i])) { $input_validated['featured_image_slider_link'][$i] = esc_url_raw($input['featured_image_slider_link'][$i]); } if (!empty($input['featured_image_slider_base'][$i])) { $input_validated['featured_image_slider_base'][$i] = $input['featured_image_slider_base'][$i]; } if (!empty($input['featured_image_slider_title'][$i])) { $input_validated['featured_image_slider_title'][$i] = sanitize_text_field($input['featured_image_slider_title'][$i]); } if (!empty($input['featured_image_slider_content'][$i])) { $input_validated['featured_image_slider_content'][$i] = wp_kses_stripslashes($input['featured_image_slider_content'][$i]); } } } //Featured Catgory Slider if (isset($input['slider_category'])) { $input_validated['slider_category'] = $input['slider_category']; } // data validation for Social Icons if (isset($input['disable_footer_social'])) { // Our checkbox value is either 0 or 1 $input_validated['disable_footer_social'] = $input['disable_footer_social']; } if (isset($input['social_facebook'])) { $input_validated['social_facebook'] = esc_url_raw($input['social_facebook']); } if (isset($input['social_twitter'])) { $input_validated['social_twitter'] = esc_url_raw($input['social_twitter']); } if (isset($input['social_googleplus'])) { $input_validated['social_googleplus'] = esc_url_raw($input['social_googleplus']); } if (isset($input['social_pinterest'])) { $input_validated['social_pinterest'] = esc_url_raw($input['social_pinterest']); } if (isset($input['social_youtube'])) { $input_validated['social_youtube'] = esc_url_raw($input['social_youtube']); } if (isset($input['social_vimeo'])) { $input_validated['social_vimeo'] = esc_url_raw($input['social_vimeo']); } if (isset($input['social_linkedin'])) { $input_validated['social_linkedin'] = esc_url_raw($input['social_linkedin']); } if (isset($input['social_aim'])) { $input_validated['social_aim'] = esc_url_raw($input['social_aim']); } if (isset($input['social_myspace'])) { $input_validated['social_myspace'] = esc_url_raw($input['social_myspace']); } if (isset($input['social_flickr'])) { $input_validated['social_flickr'] = esc_url_raw($input['social_flickr']); } if (isset($input['social_tumblr'])) { $input_validated['social_tumblr'] = esc_url_raw($input['social_tumblr']); } if (isset($input['social_deviantart'])) { $input_validated['social_deviantart'] = esc_url_raw($input['social_deviantart']); } if (isset($input['social_dribbble'])) { $input_validated['social_dribbble'] = esc_url_raw($input['social_dribbble']); } if (isset($input['social_wordpress'])) { $input_validated['social_wordpress'] = esc_url_raw($input['social_wordpress']); } if (isset($input['social_rss'])) { $input_validated['social_rss'] = esc_url_raw($input['social_rss']); } if (isset($input['social_slideshare'])) { $input_validated['social_slideshare'] = esc_url_raw($input['social_slideshare']); } if (isset($input['social_instagram'])) { $input_validated['social_instagram'] = esc_url_raw($input['social_instagram']); } if (isset($input['social_skype'])) { $input_validated['social_skype'] = sanitize_text_field($input['social_skype']); } if (isset($input['social_soundcloud'])) { $input_validated['social_soundcloud'] = esc_url_raw($input['social_soundcloud']); } if (isset($input['social_email']) && isset($input['social_email'])) { $input_validated['social_email'] = sanitize_email($input['social_email']); } if (isset($input['social_contact'])) { $input_validated['social_contact'] = esc_url_raw($input['social_contact']); } if (isset($input['social_xing'])) { $input_validated['social_xing'] = esc_url_raw($input['social_xing']); } if (isset($input['enable_specificfeeds'])) { // Our checkbox value is either 0 or 1 $input_validated['enable_specificfeeds'] = $input['enable_specificfeeds']; } //Clearing the theme option cache if (function_exists('catchflames_themeoption_invalidate_caches')) { catchflames_themeoption_invalidate_caches(); } return $input_validated; }
/** * Reset all settings to default * @param $input entered value * @return sanitized output * * @since Catch Flames 2.7 */ function catchflames_reset_all_settings($input) { if ($input == 1) { // Delete all theme options delete_option('catchflames_options'); // Flush out all transients on reset catchflames_themeoption_invalidate_caches(); } else { return ''; } }