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