示例#1
0
/**
 * 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);
}
示例#2
0
/**
 * 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 '';
    }
}