Exemplo n.º 1
0
function pinboard_validate_theme_options($input)
{
    if (isset($input['submit-general']) || isset($input['reset-general'])) {
        if (!is_numeric(absint($input['home_page_excerpts'])) || $input['home_page_excerpts'] > get_option('posts_per_page') || '' == $input['home_page_excerpts']) {
            $input['home_page_excerpts'] = pinboard_get_option('home_page_excerpts');
        } else {
            $input['home_page_excerpts'] = absint($input['home_page_excerpts']);
        }
        if (-1 != $input['portfolio_cat']) {
            $valid = 0;
            $categories = get_categories(array('hide_empty' => 0, 'hierarchical' => 0));
            foreach ($categories as $category) {
                if ($input['portfolio_cat'] == $category->cat_ID) {
                    $valid = 1;
                }
            }
            if (!$valid) {
                $input['portfolio_cat'] = pinboard_get_option('portfolio_cat');
            }
        }
        if (!is_numeric(absint($input['portfolio_excerpts'])) || $input['portfolio_excerpts'] > get_option('posts_per_page') || '' == $input['portfolio_excerpts']) {
            $input['portfolio_excerpts'] = pinboard_get_option('portfolio_excerpts');
        } else {
            $input['portfolio_excerpts'] = absint($input['portfolio_excerpts']);
        }
        if (!is_numeric(absint($input['portfolio_archive_excerpts'])) || $input['portfolio_archive_excerpts'] > get_option('posts_per_page') || '' == $input['portfolio_archive_excerpts']) {
            $input['portfolio_archive_excerpts'] = pinboard_get_option('portfolio_archive_excerpts');
        } else {
            $input['portfolio_archive_excerpts'] = absint($input['portfolio_archive_excerpts']);
        }
        if (!is_numeric(absint($input['archive_excerpts'])) || $input['archive_excerpts'] > get_option('posts_per_page') || '' == $input['archive_excerpts']) {
            $input['archive_excerpts'] = pinboard_get_option('archive_excerpts');
        } else {
            $input['archive_excerpts'] = absint($input['archive_excerpts']);
        }
        $input['slider'] = isset($input['slider']) ? true : false;
        $input['blog_exclude_portfolio'] = isset($input['blog_exclude_portfolio']) ? true : false;
        $input['location'] = isset($input['location']) ? true : false;
        $input['retina_header'] = isset($input['retina_header']) ? true : false;
        $input['crop_thumbnails'] = isset($input['crop_thumbnails']) ? true : false;
        $input['lightbox'] = isset($input['lightbox']) ? true : false;
        if (!in_array($input['posts_nav'], array('static', 'ajax', 'infinite'))) {
            $input['posts_nav'] = pinboard_get_option('posts_nav');
        }
        if (!in_array($input['posts_nav_labels'], array('next/prev', 'older/newer', 'earlier/later', 'numbered'))) {
            $input['posts_nav_labels'] = pinboard_get_option('posts_nav_labels');
        }
        $input['fancy_dropdowns'] = isset($input['fancy_dropdowns']) ? true : false;
        $input['facebook_link'] = esc_url_raw($input['facebook_link']);
        $input['twitter_link'] = esc_url_raw($input['twitter_link']);
        $input['pinterest_link'] = esc_url_raw($input['pinterest_link']);
        $input['youtube_link'] = esc_url_raw($input['youtube_link']);
        $input['vimeo_link'] = esc_url_raw($input['vimeo_link']);
        $input['flickr_link'] = esc_url_raw($input['flickr_link']);
        $input['googleplus_link'] = esc_url_raw($input['googleplus_link']);
        $input['dribble_link'] = esc_url_raw($input['dribble_link']);
        $input['linkedin_link'] = esc_url_raw($input['linkedin_link']);
        $input['facebook'] = isset($input['facebook']) ? true : false;
        $input['twitter'] = isset($input['twitter']) ? true : false;
        $input['google'] = isset($input['google']) ? true : false;
        $input['pinterest'] = isset($input['pinterest']) ? true : false;
        $input['author_box'] = isset($input['author_box']) ? true : false;
        $input['copyright_notice'] = balanceTags($input['copyright_notice']);
        $input['theme_credit_link'] = isset($input['theme_credit_link']) ? true : false;
        $input['author_credit_link'] = isset($input['author_credit_link']) ? true : false;
        $input['wordpress_credit_link'] = isset($input['wordpress_credit_link']) ? true : false;
    } elseif (isset($input['submit-design']) || isset($input['reset-design'])) {
        $input['page_background'] = substr($input['page_background'], 0, 7);
        $input['menu_background'] = substr($input['menu_background'], 0, 7);
        $input['submenu_background'] = substr($input['submenu_background'], 0, 7);
        $input['sidebar_wide_background'] = substr($input['sidebar_wide_background'], 0, 7);
        $input['content_background'] = substr($input['content_background'], 0, 7);
        $input['post_meta_background'] = substr($input['post_meta_background'], 0, 7);
        $input['footer_area_background'] = substr($input['footer_area_background'], 0, 7);
        $input['footer_background'] = substr($input['footer_background'], 0, 7);
    } elseif (isset($input['submit-layout']) || isset($input['reset-layout'])) {
        if (!in_array($input['layout'], array('content-sidebar', 'sidebar-content', 'content-sidebar-half', 'sidebar-content-half', 'no-sidebars', 'full-width'))) {
            $input['layout'] = pinboard_get_option('layout');
        }
        if (is_numeric($input['layout_columns']) && 2 <= $input['layout_columns'] && 44 >= $input['layout_columns']) {
            $input['layout_columns'] = absint($input['layout_columns']);
        } else {
            $input['layout_columns'] = pinboard_get_option('layout_columns');
        }
        $input['hide_sidebar'] = isset($input['hide_sidebar']) ? true : false;
        $input['hide_footer_area'] = isset($input['hide_footer_area']) ? true : false;
        $input['user_css'] = esc_html($input['user_css']);
    } elseif (isset($input['submit-typography']) || isset($input['reset-typography'])) {
        $fonts = pinboard_available_fonts();
        $units = array('px', 'pt', 'em', '%');
        $input['body_font'] = array_key_exists($input['body_font'], $fonts) ? $input['body_font'] : pinboard_get_option('body_font');
        $input['headings_font'] = array_key_exists($input['headings_font'], $fonts) ? $input['headings_font'] : pinboard_get_option('headings_font');
        $input['content_font'] = array_key_exists($input['content_font'], $fonts) ? $input['content_font'] : pinboard_get_option('content_font');
        $input['body_font_size'] = number_format(floatval($input['body_font_size']), 2, '.', '');
        $input['body_font_size_unit'] = in_array($input['body_font_size_unit'], $units) ? $input['body_font_size_unit'] : pinboard_get_option('body_font_size_unit');
        $input['body_line_height'] = number_format(floatval($input['body_line_height']), 2, '.', '');
        $input['body_line_height_unit'] = in_array($input['body_line_height_unit'], $units) ? $input['body_line_height_unit'] : pinboard_get_option('body_line_height_unit');
        $input['h1_font_size'] = number_format(floatval($input['h1_font_size']), 2, '.', '');
        $input['h1_font_size_unit'] = in_array($input['h1_font_size_unit'], $units) ? $input['h1_font_size_unit'] : pinboard_get_option('h1_font_size_unit');
        $input['h2_font_size'] = number_format(floatval($input['h2_font_size']), 2, '.', '');
        $input['h2_font_size_unit'] = in_array($input['h2_font_size_unit'], $units) ? $input['h2_font_size_unit'] : pinboard_get_option('h2_font_size_unit');
        $input['h3_font_size'] = number_format(floatval($input['h3_font_size']), 2, '.', '');
        $input['h3_font_size_unit'] = in_array($input['h3_font_size_unit'], $units) ? $input['h3_font_size_unit'] : pinboard_get_option('h3_font_size_unit');
        $input['h4_font_size'] = number_format(floatval($input['h4_font_size']), 2, '.', '');
        $input['h4_font_size_unit'] = in_array($input['h4_font_size_unit'], $units) ? $input['h4_font_size_unit'] : pinboard_get_option('h4_font_size_unit');
        $input['headings_line_height'] = number_format(floatval($input['headings_line_height']), 2, '.', '');
        $input['headings_line_height_unit'] = in_array($input['headings_line_height_unit'], $units) ? $input['headings_line_height_unit'] : pinboard_get_option('headings_line_height_unit');
        $input['content_font_size'] = number_format(floatval($input['content_font_size']), 2, '.', '');
        $input['content_font_size_unit'] = in_array($input['content_font_size_unit'], $units) ? $input['content_font_size_unit'] : pinboard_get_option('content_font_size_unit');
        $input['content_line_height'] = number_format(floatval($input['content_line_height']), 2, '.', '');
        $input['content_line_height_unit'] = in_array($input['content_line_height_unit'], $units) ? $input['content_line_height_unit'] : pinboard_get_option('content_line_height_unit');
        $input['mobile_font_size'] = number_format(floatval($input['mobile_font_size']), 2, '.', '');
        $input['mobile_font_size_unit'] = in_array($input['mobile_font_size_unit'], $units) ? $input['mobile_font_size_unit'] : pinboard_get_option('mobile_font_size_unit');
        $input['mobile_line_height'] = number_format(floatval($input['mobile_line_height']), 2, '.', '');
        $input['mobile_line_height_unit'] = in_array($input['mobile_line_height_unit'], $units) ? $input['mobile_line_height_unit'] : pinboard_get_option('mobile_line_height_unit');
        $input['body_color'] = substr($input['body_color'], 0, 7);
        $input['headings_color'] = substr($input['headings_color'], 0, 7);
        $input['content_color'] = substr($input['content_color'], 0, 7);
        $input['links_color'] = substr($input['links_color'], 0, 7);
        $input['links_hover_color'] = substr($input['links_hover_color'], 0, 7);
        $input['menu_color'] = substr($input['menu_color'], 0, 7);
        $input['menu_hover_color'] = substr($input['menu_hover_color'], 0, 7);
        $input['sidebar_color'] = substr($input['sidebar_color'], 0, 7);
        $input['sidebar_title_color'] = substr($input['sidebar_title_color'], 0, 7);
        $input['sidebar_links_color'] = substr($input['sidebar_links_color'], 0, 7);
        $input['footer_color'] = substr($input['footer_color'], 0, 7);
        $input['footer_title_color'] = substr($input['footer_title_color'], 0, 7);
        $input['copyright_color'] = substr($input['copyright_color'], 0, 7);
        $input['copyright_links_color'] = substr($input['copyright_links_color'], 0, 7);
    } elseif (isset($input['submit-seo']) || isset($input['reset-seo'])) {
        $tags = array('h1', 'h2', 'h3', 'p', 'div');
        foreach ($input as $key => $tag) {
            if ('reset-seo' != $key && !in_array($tag, $tags)) {
                $input[$key] = pinboard_get_option($key);
            }
        }
    }
    if (isset($input['reset-general']) || isset($input['reset-layout']) || isset($input['reset-design']) || isset($input['reset-typography']) || isset($input['reset-seo'])) {
        $default_options = pinboard_default_options();
        foreach ($input as $name => $value) {
            if ('reset-general' != $name && 'reset-design' != $name && 'reset-layout' != $name && 'reset-typography' != $name && 'reset-seo' != $name) {
                $input[$name] = $default_options[$name];
            }
        }
    }
    $input = wp_parse_args($input, get_option('pinboard_theme_options', pinboard_default_options()));
    return $input;
}
Exemplo n.º 2
0
/**
 * Adds template names to body_class filter
 *
 * The custom layouts are shared with the custom templates
 * and use the same style declarations
 * @since Pinboard 1.0
 */
function pinboard_body_class( $classes ) {
	if( ! is_page_template() ) {
		$default_options = pinboard_default_options();
		if( 'sidebar-content' == pinboard_get_option( 'layout' ) )
			$classes[] = 'page-template-template-sidebar-content-php';
		elseif( 'sidebar-content-sidebar' == pinboard_get_option( 'layout' ) )
			$classes[] = 'page-template-template-sidebar-content-sidebar-php';
		elseif( 'content-sidebar-half' == pinboard_get_option( 'layout' ) )
			$classes[] = 'page-template-template-content-sidebar-half-php';
		elseif( 'sidebar-content-half' == pinboard_get_option( 'layout' ) )
			$classes[] = 'page-template-template-sidebar-content-half-php';
		elseif( ( 'no-sidebars' == pinboard_get_option( 'layout' ) ) || ( ! is_active_sidebar( 2 ) && ! is_active_sidebar( 3 ) && ! is_active_sidebar( 4 ) && ! is_active_sidebar( 5 ) ) )
			$classes[] = 'page-template-template-no-sidebars-php';
		elseif( 'full-width' == pinboard_get_option( 'layout' ) )
			$classes[] = 'page-template-template-full-width-php';
	}
	return $classes;
}