diff --git a/display-featured-image-genesis.php b/display-featured-image-genesis.php index fd35f3e..ba2fcd6 100644 --- a/display-featured-image-genesis.php +++ b/display-featured-image-genesis.php @@ -34,17 +34,14 @@ function display_featured_image_genesis_require() { 'class-displayfeaturedimagegenesis', 'settings/class-displayfeaturedimagegenesis-getsetting', 'settings/class-displayfeaturedimagegenesis-helper', - 'settings/class-displayfeaturedimagegenesis-settings-define', 'class-displayfeaturedimagegenesis-admin', 'class-displayfeaturedimagegenesis-author', 'class-displayfeaturedimagegenesis-common', - 'settings/class-displayfeaturedimagegenesis-customizer', - 'class-displayfeaturedimagegenesis-description', - 'settings/class-displayfeaturedimagegenesis-helptabs', 'class-displayfeaturedimagegenesis-output', 'class-displayfeaturedimagegenesis-postmeta', 'class-displayfeaturedimagegenesis-rss', 'settings/class-displayfeaturedimagegenesis-settings', + 'settings/class-displayfeaturedimagegenesis-customizer', 'class-displayfeaturedimagegenesis-taxonomies', 'sixtenpress-shortcodes/sixtenpress-shortcodes', 'widgets/class-displayfeaturedimagegenesis-widgets', @@ -57,27 +54,23 @@ function display_featured_image_genesis_require() { display_featured_image_genesis_require(); // Instantiate dependent classes -$displayfeaturedimagegenesis_helper = new Display_Featured_Image_Genesis_Helper(); -$displayfeaturedimagegenesis_admin = new Display_Featured_Image_Genesis_Admin(); -$displayfeaturedimagegenesis_author = new Display_Featured_Image_Genesis_Author(); -$displayfeaturedimagegenesis_common = new Display_Featured_Image_Genesis_Common(); -$displayfeaturedimagegenesis_customizer = new Display_Featured_Image_Genesis_Customizer(); -$displayfeaturedimagegenesis_description = new Display_Featured_Image_Genesis_Description(); -$displayfeaturedimagegenesis_helptabs = new Display_Featured_Image_Genesis_HelpTabs(); -$displayfeaturedimagegenesis_output = new Display_Featured_Image_Genesis_Output(); -$displayfeaturedimagegenesis_post_meta = new Display_Featured_Image_Genesis_Post_Meta(); -$displayfeaturedimagegenesis_rss = new Display_Featured_Image_Genesis_RSS(); -$displayfeaturedimagegenesis_settings = new Display_Featured_Image_Genesis_Settings(); -$displayfeaturedimagegenesis_taxonomies = new Display_Featured_Image_Genesis_Taxonomies(); -$displayfeaturedimagegenesis_widgets = new DisplayFeaturedImageGenesisWidgets(); +$displayfeaturedimagegenesis_helper = new Display_Featured_Image_Genesis_Helper(); +$displayfeaturedimagegenesis_admin = new Display_Featured_Image_Genesis_Admin(); +$displayfeaturedimagegenesis_author = new Display_Featured_Image_Genesis_Author(); +$displayfeaturedimagegenesis_common = new Display_Featured_Image_Genesis_Common(); +$displayfeaturedimagegenesis_customizer = new Display_Featured_Image_Genesis_Customizer(); +$displayfeaturedimagegenesis_output = new Display_Featured_Image_Genesis_Output(); +$displayfeaturedimagegenesis_post_meta = new Display_Featured_Image_Genesis_Post_Meta(); +$displayfeaturedimagegenesis_rss = new Display_Featured_Image_Genesis_RSS(); +$displayfeaturedimagegenesis_settings = new Display_Featured_Image_Genesis_Settings(); +$displayfeaturedimagegenesis_taxonomies = new Display_Featured_Image_Genesis_Taxonomies(); +$displayfeaturedimagegenesis_widgets = new DisplayFeaturedImageGenesisWidgets(); $displayfeaturedimage = new Display_Featured_Image_Genesis( $displayfeaturedimagegenesis_admin, $displayfeaturedimagegenesis_author, $displayfeaturedimagegenesis_common, $displayfeaturedimagegenesis_customizer, - $displayfeaturedimagegenesis_description, - $displayfeaturedimagegenesis_helptabs, $displayfeaturedimagegenesis_output, $displayfeaturedimagegenesis_post_meta, $displayfeaturedimagegenesis_rss, diff --git a/includes/class-displayfeaturedimagegenesis-description.php b/includes/class-displayfeaturedimagegenesis-description.php index 320ee64..cdd6f80 100644 --- a/includes/class-displayfeaturedimagegenesis-description.php +++ b/includes/class-displayfeaturedimagegenesis-description.php @@ -33,8 +33,8 @@ class Display_Featured_Image_Genesis_Description { $itemprop = ' itemprop="headline"'; } - $setting = displayfeaturedimagegenesis_get_setting(); - if ( ! $setting['keep_titles'] ) { + $setting = displayfeaturedimagegenesis_get_setting( 'keep_titles' ); + if ( ! $setting ) { $headline = sprintf( '
'; - printf( - esc_attr__( 'Set Featured Image for %1$s.', 'display-featured-image-genesis' ), - esc_attr( $term->name ) - ); - echo '
'; - echo ''; + printf( + /* translators: name of the term */ + esc_attr__( 'Set Featured Image for %1$s.', 'display-featured-image-genesis' ), + esc_attr( $term->name ) + ); + echo '
'; + echo '' . __( 'You may set a featured image for your terms. This image will be used on the term archive page, and as a fallback image on a single post page if it does not have a featured image of its own.', 'display-featured-image-genesis' ) . '
'; - $screen->add_help_tab( array( - 'id' => 'displayfeaturedimage_term-help', - 'title' => __( 'Featured Image', 'display-featured-image-genesis' ), - 'content' => $term_help, - ) ); - + $screen->add_help_tab( + array( + 'id' => 'displayfeaturedimage_term-help', + 'title' => __( 'Featured Image', 'display-featured-image-genesis' ), + 'content' => $term_help, + ) + ); } /** @@ -231,8 +234,8 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G */ public function split_shared_term( $old_term_id, $new_term_id ) { - $old_setting = get_option( "displayfeaturedimagegenesis_$old_term_id" ); - $new_setting = get_option( "displayfeaturedimagegenesis_$new_term_id" ); + $old_setting = get_option( "{$this->page}_{$old_term_id}" ); + $new_setting = get_option( "{$this->page}_{$new_term_id}" ); if ( ! isset( $old_setting ) ) { return; @@ -240,7 +243,6 @@ class Display_Featured_Image_Genesis_Taxonomies extends Display_Featured_Image_G $new_setting = $old_setting; - update_option( "displayfeaturedimagegenesis_$new_term_id", $new_setting ); - + update_option( "{$this->page}_{$new_term_id}", $new_setting ); } } diff --git a/includes/class-displayfeaturedimagegenesis.php b/includes/class-displayfeaturedimagegenesis.php index 3611511..20b7d73 100644 --- a/includes/class-displayfeaturedimagegenesis.php +++ b/includes/class-displayfeaturedimagegenesis.php @@ -45,12 +45,6 @@ class Display_Featured_Image_Genesis { */ protected $description; - /** - * Manages help tabs for settings page. - * @var $helptabs Display_Featured_Image_Genesis_HelpTabs - */ - protected $helptabs; - /** * Handles all image output functionality * @var Display_Featured_Image_Genesis_Output $output @@ -95,20 +89,16 @@ class Display_Featured_Image_Genesis { * @param $author * @param $common * @param $customizer - * @param $description - * @param $helptabs * @param $output * @param $rss * @param $settings * @param $taxonomies */ - public function __construct( $admin, $author, $common, $customizer, $description, $helptabs, $output, $post_meta, $rss, $settings, $taxonomies, $widgets ) { + public function __construct( $admin, $author, $common, $customizer, $output, $post_meta, $rss, $settings, $taxonomies, $widgets ) { $this->admin = $admin; $this->author = $author; $this->common = $common; $this->customizer = $customizer; - $this->description = $description; - $this->helptabs = $helptabs; $this->output = $output; $this->post_meta = $post_meta; $this->rss = $rss; @@ -155,7 +145,6 @@ class Display_Featured_Image_Genesis { // Settings add_action( 'admin_menu', array( $this->settings, 'do_submenu_page' ) ); add_filter( 'displayfeaturedimagegenesis_get_setting', array( $this->settings, 'get_display_setting' ) ); - add_action( 'load-appearance_page_displayfeaturedimagegenesis', array( $this->helptabs, 'help' ) ); // Customizer add_action( 'customize_register', array( $this->customizer, 'customizer' ) ); @@ -218,8 +207,8 @@ class Display_Featured_Image_Genesis { ) ); add_image_size( 'displayfeaturedimage_backstretch', (int) $args['width'], (int) $args['height'], (bool) $args['crop'] ); - $displaysetting = displayfeaturedimagegenesis_get_setting(); - if ( $displaysetting['move_excerpts'] ) { + $move_excerpts = displayfeaturedimagegenesis_get_setting( 'move_excerpts' ); + if ( $move_excerpts ) { add_post_type_support( 'page', 'excerpt' ); } } @@ -241,9 +230,10 @@ class Display_Featured_Image_Genesis { public function enqueue_scripts() { $version = $this->common->version; + $minify = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; - wp_register_script( 'displayfeaturedimage-upload', plugins_url( '/includes/js/settings-upload.js', dirname( __FILE__ ) ), array( 'jquery', 'media-upload', 'thickbox' ), $version ); - wp_register_script( 'widget_selector', plugins_url( '/includes/js/widget-selector.js', dirname( __FILE__ ) ), array( 'jquery' ), $version ); + wp_register_script( 'displayfeaturedimage-upload', plugins_url( "/includes/js/settings-upload{$minify}.js", dirname( __FILE__ ) ), array( 'jquery', 'media-upload', 'thickbox' ), $version, true ); + wp_register_script( 'widget_selector', plugins_url( "/includes/js/widget-selector{$minify}.js", dirname( __FILE__ ) ), array( 'jquery' ), $version, true ); $screen = get_current_screen(); $screen_ids = array( @@ -255,9 +245,13 @@ class Display_Featured_Image_Genesis { if ( in_array( $screen->id, $screen_ids, true ) || ! empty( $screen->taxonomy ) ) { wp_enqueue_media(); wp_enqueue_script( 'displayfeaturedimage-upload' ); - wp_localize_script( 'displayfeaturedimage-upload', 'objectL10n', array( - 'text' => __( 'Select Image', 'display-featured-image-genesis' ), - ) ); + wp_localize_script( + 'displayfeaturedimage-upload', + 'DisplayFeaturedImageGenesis', + array( + 'text' => __( 'Select Image', 'display-featured-image-genesis' ), + ) + ); } } diff --git a/includes/css/display-featured-image-genesis.css b/includes/css/display-featured-image-genesis.css index 9fe90de..c6aab88 100644 --- a/includes/css/display-featured-image-genesis.css +++ b/includes/css/display-featured-image-genesis.css @@ -1,66 +1 @@ -.has-leader .site-inner { - margin-top: 0; -} - -.big-leader { - overflow: hidden; - height: 600px; - position: relative; -} - -.backstretch.no-js { - background-size: cover; - height: 600px; -} - -.big-leader .wrap { - position: absolute; - right: 0; - bottom: 0; - left: 0; - width: 100%; - z-index: 1; -} - -.big-leader .entry-title.featured-image-overlay, -.big-leader .archive-title.featured-image-overlay { - color: #fff; - text-align: center; -} - -.big-leader .excerpt, -.big-leader .archive-description { - margin-bottom: 24px; - padding: 24px; - background: rgba(255,255,255,0.85); -} - -.big-leader p { - margin-top: 18px; -} - -.home .big-leader p { - margin-top: 0; -} - -.big-leader p, -.big-leader .excerpt .entry-title, -.big-leader .archive-description .archive-title, -.home .big-leader p:last-child { - margin-bottom: 0; -} - -img.featured { - max-width: 100%; -} - - -@media only screen and (max-width: 768px) { - - .big-leader, - .backstretch.no-js { - height: 300px; - - } - -} +.has-leader .site-inner{margin-top:0}.big-leader{overflow:hidden;max-height:100vh;position:relative}.big-leader .wrap{position:absolute;right:0;bottom:0;left:0;width:100%;z-index:1}.big-leader--scriptless{height:auto}.big-leader--scriptless img{display:block;-o-object-fit:cover;object-fit:cover}.big-leader .entry-title.featured-image-overlay,.big-leader .archive-title.featured-image-overlay{color:#fff;text-align:center}.big-leader .excerpt,.big-leader .archive-description{margin-bottom:24px;padding:24px;background:rgba(255,255,255,.85)}.big-leader p{margin-top:18px;margin-bottom:0}.home .big-leader p{margin-top:0}.home .big-leader p:last-child{margin-bottom:0}.big-leader .excerpt .entry-title,.big-leader .archive-description .archive-title{margin-bottom:0}.backstretch.no-js{max-height:600px}img.featured{max-width:100%} \ No newline at end of file diff --git a/includes/helper-functions.php b/includes/helper-functions.php index b57d8b1..14a39ee 100644 --- a/includes/helper-functions.php +++ b/includes/helper-functions.php @@ -120,7 +120,7 @@ function display_featured_image_genesis_get_default_image_url( $size = 'displayf function display_featured_image_genesis_get_cpt_image_id( $image_id = '' ) { $post_type = ''; - $displaysetting = displayfeaturedimagegenesis_get_setting(); + $displaysetting = displayfeaturedimagegenesis_get_setting( 'post_type' ); $object = get_queried_object(); if ( ! $object || is_admin() ) { return ''; @@ -133,8 +133,8 @@ function display_featured_image_genesis_get_cpt_image_id( $image_id = '' ) { } elseif ( $object->post_type ) { // on singular $post_type = $object->post_type; } - if ( ! empty( $displaysetting['post_type'][ $post_type ] ) ) { - $image_id = $displaysetting['post_type'][ $post_type ]; + if ( ! empty( $displaysetting[ $post_type ] ) ) { + $image_id = $displaysetting[ $post_type ]; } return (int) $image_id; @@ -226,12 +226,14 @@ function displayfeaturedimagegenesis_check_image_id( $image_id = '' ) { /** * Helper function to get the plugin settings. + * + * @param string $key * @return mixed * * @since 2.4.2 */ -function displayfeaturedimagegenesis_get_setting() { - return apply_filters( 'displayfeaturedimagegenesis_get_setting', false ); +function displayfeaturedimagegenesis_get_setting( $key = '' ) { + return apply_filters( 'displayfeaturedimagegenesis_get_setting', $key ); } /** diff --git a/includes/js/backstretch-set.js b/includes/js/backstretch-set.js index 0bf828e..9a4b472 100644 --- a/includes/js/backstretch-set.js +++ b/includes/js/backstretch-set.js @@ -50,13 +50,9 @@ return source; } - $( document ).ready( function () { - plugin.params = typeof BackStretchVars === 'undefined' ? '' : BackStretchVars; - - if ( typeof plugin.params === 'undefined' ) { - return; - } + plugin.params = typeof BackStretchVars === 'undefined' ? '' : BackStretchVars; + if ( typeof plugin.params !== 'undefined' ) { plugin.init(); - } ); + } })( document, jQuery ); diff --git a/includes/js/backstretch-set.min.js b/includes/js/backstretch-set.min.js new file mode 100644 index 0000000..1c71d09 --- /dev/null +++ b/includes/js/backstretch-set.min.js @@ -0,0 +1 @@ +!function(a,r,e){"use strict";var i={};i.init=function(){!function(){var a=r(".big-leader");if(void 0===a)return!1;a.css({height:r(window).height()-[i.params.height]+"px"}),a.backstretch([function(){var a=i.params.source.backstretch,e=window.innerWidth,t=r(".big-leader").height();i.params.source.large&&i.params.width.large>=e&&i.params.image_height.large>=t&&(a=i.params.source.large);i.params.source.medium_large&&i.params.width.medium_large>=e&&i.params.image_height.medium_large>=t&&(a=i.params.source.medium_large);return a}()],{alignX:i.params.alignX,alignY:i.params.alignY,fade:parseInt(i.params.fade),scale:"cover"}),r(".big-leader .backstretch img").attr("alt",i.params.title).attr("aria-hidden",!0)}()},i.params="undefined"==typeof BackStretchVars?"":BackStretchVars,void 0!==i.params&&i.init()}(document,jQuery); \ No newline at end of file diff --git a/includes/js/editor.min.js b/includes/js/editor.min.js new file mode 100644 index 0000000..f76f82e --- /dev/null +++ b/includes/js/editor.min.js @@ -0,0 +1 @@ +!function(a,t,n){"use strict";var e={},i={wrap:"displayfeaturedimage-buttons-wrap",container:"displayfeaturedimage-wrapper",dashicon:"wp-media-buttons-icon dashicons dashicons-camera",buttons:"displayfeaturedimagegenesis"};function s(){var a=t(this),n=t("."+i.buttons);if(!(3>a.find(n).length)){var s=t("",{class:i.container}),r=t("",{text:e.params.text,class:"button show-buttons"}).prepend(t("",{class:i.dashicon})),o=t("",{class:i.wrap});a.find(n).wrapAll(o),a.find(t("."+i.wrap)).wrap(s).before(r)}}function r(a){a.preventDefault(),jQuery(this).parents("."+i.container).find("."+i.wrap).toggle()}e.init=function(){t(".wp-media-buttons").each(s),t("."+i.container+" button").on("click",r)},e.params="undefined"==typeof DisplayFeaturedImageVar?"":DisplayFeaturedImageVar,void 0!==e.params&&e.init()}(document,jQuery); \ No newline at end of file diff --git a/includes/js/settings-upload.js b/includes/js/settings-upload.js index c491097..a380fde 100644 --- a/includes/js/settings-upload.js +++ b/includes/js/settings-upload.js @@ -1,70 +1,91 @@ -jQuery( document ).ready( function ( $ ) { +;(function ( document, $, undefined ) { 'use strict'; var custom_uploader, + targetInputClass = '.upload-image-id', + previewClass = 'upload-image-preview', target_input, - preview; + DFIG = {}; - $( '.upload_default_image' ).click(function(e) { + DFIG.upload = function () { + $( '.upload-image' ).on( 'click.upload', _uploadMedia ); + $( '.delete-image' ).on( 'click.delete', _deleteMedia ); + $( '#addtag #submit' ).on( 'click.term', _termImages ); - target_input = $(this).prev( '.upload_image_id' ); + function _uploadMedia( e ) { + e.preventDefault(); + target_input = $( this ).prev( targetInputClass ); - e.preventDefault(); - - //If the uploader object has already been created, reopen the dialog - if ( custom_uploader ) { - custom_uploader.open(); - return; - } - - //Extend the wp.media object - custom_uploader = wp.media.frames.file_frame = wp.media({ - title: ( [ objectL10n.text ] ), - button: { - text: ( [ objectL10n.text ] ) - }, - multiple: false, - library: { type : 'image' } - }); - - //When a file is selected, grab the URL and set it as the text field's value - custom_uploader.on( 'select', function() { - - var attachment = custom_uploader.state().get( 'selection' ).first().toJSON(), - preview = $( target_input ).prevAll( '.upload_logo_preview' ), - previewImage = $( '' . __( 'Depending on how your header/nav are set up, or if you just do not want your backstretch image to extend to the bottom of the user screen, you may want to change this number. It will raise the bottom line of the backstretch image, making it shorter.', 'display-featured-image-genesis' ) . '
'; - $help .= '' . __( 'The plugin determines the size of your backstretch image based on the size of the user\'s browser window. Changing the "Height" setting tells the plugin to subtract that number of pixels from the measured height of the user\'s window, regardless of the size of that window.', 'display-featured-image-genesis' ) . '
'; - $help .= '' . __( 'If you need to control the size of the backstretch Featured Image output with more attention to the user\'s screen size, add a Maximum Height number, which affects the CSS.', 'display-featured-image-genesis' ) . '
'; + $help = '' . __( 'Depending on how your header/nav are set up, or if you just do not want your backstretch banner image to extend to the bottom of the user screen, you may want to change this number. It will raise the bottom line of the backstretch banner image, making it shorter.', 'display-featured-image-genesis' ) . '
'; + $help .= '' . __( 'The plugin determines the size of your backstretch banner image based on the size of the user\'s browser window. Changing the "Height" setting tells the plugin to subtract that number of pixels from the measured height of the user\'s window, regardless of the size of that window.', 'display-featured-image-genesis' ) . '
'; + $help .= '' . __( 'If you need to control the size of the backstretch banner image output with more attention to the user\'s screen size, add a Maximum Height number, which affects the CSS.', 'display-featured-image-genesis' ) . '
'; return $help; } @@ -165,7 +165,7 @@ class Display_Featured_Image_Genesis_HelpTabs extends Display_Featured_Image_Gen */ protected function keep_titles() { $help = '' . __( 'This setting applies to the backstretch Featured Image only. It allows you to keep the post/page titles in their original location, instead of overlaying the new image.', 'display-featured-image-genesis' ) . '
'; + $help .= '' . __( 'This setting applies to the banner Featured Image only. It allows you to keep the post/page titles in their original location, instead of overlaying the new image.', 'display-featured-image-genesis' ) . '
'; return $help; } @@ -296,4 +296,16 @@ class Display_Featured_Image_Genesis_HelpTabs extends Display_Featured_Image_Gen return $help; } + + /** + * Help text for the disable JavaScript setting. + * @since 3.1.0 + * @return string + */ + protected function javascript() { + $help = '' . __( 'Optionally disable JavaScript for your banner images. The output will mostly be similar, although some behavior will change. For example, without the backstretch script, images will always display full width, regardless of screen size (with backstretch, you\'ll often only see the center of the image on small screens.', 'display-featured-image-genesis' ) . '
'; + + return $help; + } } diff --git a/includes/settings/class-displayfeaturedimagegenesis-settings-define.php b/includes/settings/class-displayfeaturedimagegenesis-settings-define.php deleted file mode 100644 index 80e5e0c..0000000 --- a/includes/settings/class-displayfeaturedimagegenesis-settings-define.php +++ /dev/null @@ -1,382 +0,0 @@ - array( - 'id' => 'main', - 'title' => __( 'Optional Sitewide Settings', 'display-featured-image-genesis' ), - 'tab' => 'main', - ), - 'archives' => array( - 'id' => 'archives', - 'title' => __( 'Optional Archive Settings', 'display-featured-image-genesis' ), - 'tab' => 'main', - ), - 'default' => array( - 'id' => 'default', - 'title' => __( 'Optional Default Image', 'display-featured-image-genesis' ), - 'tab' => 'main', - ), - 'style' => array( - 'id' => 'style', - 'title' => __( 'Display Settings', 'display-featured-image-genesis' ), - 'tab' => 'style', - ), - 'cpt_sitewide' => array( - 'id' => 'cpt_sitewide', - 'title' => __( 'Sitewide Settings', 'display-featured-image-genesis' ), - 'tab' => 'cpt', - ), - 'cpt' => array( - 'id' => 'cpt', - 'title' => __( 'Featured Images for Custom Content Types', 'display-featured-image-genesis' ), - 'tab' => 'cpt', - ), - 'advanced' => array( - 'id' => 'advanced', - 'title' => __( 'Advanced Plugin Settings', 'display-featured-image-genesis' ), - 'tab' => 'advanced', - ), - ); - } - - /** - * Register plugin settings fields - * @return array all settings fields - * - * @since 2.3.0 - */ - public function register_fields() { - - return array_merge( $this->define_main_fields(), $this->define_style_fields(), $this->define_cpt_fields(), $this->define_advanced_fields() ); - } - - /** - * Define the fields for the main/first tab. - * @return array - */ - protected function define_main_fields() { - $common = new Display_Featured_Image_Genesis_Common(); - $large = $common->minimum_backstretch_width(); - - return array( - array( - 'id' => 'default', - 'title' => __( 'Default Featured Image', 'display-featured-image-genesis' ), - 'callback' => 'set_default_image', - 'section' => 'default', - 'type' => 'image', - ), - array( - 'id' => 'always_default', - 'title' => __( 'Always Use Default', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox', - 'section' => 'default', - 'label' => __( 'Always use the default image, even if a featured image is set.', 'display-featured-image-genesis' ), - 'description' => sprintf( - /* translators: placeholder is a number equivalent to the width of the site's Large image (Settings > Media) */ - esc_html__( 'If you would like to use a default image for the featured image, upload it here. Must be at least %1$s pixels wide.', 'display-featured-image-genesis' ), - absint( $large + 1 ) - ), - 'type' => 'checkbox', - ), - array( - 'id' => 'image_size', - 'title' => __( 'Preferred Image Size', 'display-featured-image-genesis' ), - 'callback' => 'do_select', - 'section' => 'main', - 'choices' => apply_filters( - 'displayfeaturedimagegenesis_image_size_choices', - array( - 'displayfeaturedimage_backstretch' => __( 'Backstretch (default)', 'display-featured-image-genesis' ), - 'large' => __( 'Large', 'display-featured-image-genesis' ), - ) - ), - 'type' => 'select', - ), - array( - 'id' => 'exclude_front', - 'title' => __( 'Skip Front Page', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox', - 'section' => 'main', - 'label' => __( 'Do not show the Featured Image on the Front Page of the site.', 'display-featured-image-genesis' ), - 'type' => 'checkbox', - ), - array( - 'id' => 'keep_titles', - 'title' => __( 'Do Not Move Titles', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox', - 'section' => 'main', - 'label' => __( 'Do not move the titles to overlay the backstretch Featured Image.', 'display-featured-image-genesis' ), - 'type' => 'checkbox', - ), - array( - 'id' => 'move_excerpts', - 'title' => __( 'Move Excerpts/Archive Descriptions', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox', - 'section' => 'main', - 'label' => __( 'Move excerpts (if used) on single pages and move archive/taxonomy descriptions to overlay the Featured Image.', 'display-featured-image-genesis' ), - 'type' => 'checkbox', - ), - array( - 'id' => 'is_paged', - 'title' => __( 'Show Featured Image on Subsequent Blog Pages', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox', - 'section' => 'archives', - 'label' => __( 'Show featured image on pages 2+ of blogs and archives.', 'display-featured-image-genesis' ), - 'type' => 'checkbox', - ), - array( - 'id' => 'feed_image', - 'title' => __( 'Add Featured Image to Feed?', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox', - 'section' => 'archives', - 'label' => __( 'Optionally, add the featured image to your RSS feed.', 'display-featured-image-genesis' ), - 'type' => 'checkbox', - ), - array( - 'id' => 'thumbnails', - 'title' => __( 'Archive Thumbnails', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox', - 'section' => 'archives', - 'label' => __( 'Use term/post type fallback images for content archives?', 'display-featured-image-genesis' ), - 'type' => 'checkbox', - ), - array( - 'id' => 'shortcodes', - 'title' => __( 'Add Shortcode Buttons', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox', - 'section' => 'main', - 'label' => __( 'Add optional shortcode buttons to the post editor', 'display-featured-image-genesis' ), - 'skip' => true, - ), - ); - } - - /** - * Define the fields for the style tab. - * @return array - */ - protected function define_style_fields() { - return array( - array( - 'id' => 'less_header', - 'title' => __( 'Height', 'display-featured-image-genesis' ), - 'callback' => 'do_number', - 'section' => 'style', - 'label' => __( 'pixels to remove', 'display-featured-image-genesis' ), - 'min' => 0, - 'max' => 400, - 'description' => __( 'Changing this number will reduce the backstretch image height by this number of pixels. Default is zero.', 'display-featured-image-genesis' ), - 'type' => 'number', - ), - array( - 'id' => 'max_height', - 'title' => __( 'Maximum Height', 'display-featured-image-genesis' ), - 'callback' => 'do_number', - 'section' => 'style', - 'label' => __( 'pixels', 'display-featured-image-genesis' ), - 'min' => 100, - 'max' => 1000, - 'description' => __( 'Optionally, set a max-height value for the header image; it will be added to your CSS.', 'display-featured-image-genesis' ), - 'type' => 'number', - ), - array( - 'id' => 'centeredX', - 'title' => __( 'Center Horizontally', 'display-featured-image-genesis' ), - 'callback' => 'do_radio_buttons', - 'section' => 'style', - 'choices' => $this->pick_center(), - 'legend' => __( 'Center the backstretch image on the horizontal axis?', 'display-featured-image-genesis' ), - 'type' => 'radio', - ), - array( - 'id' => 'centeredY', - 'title' => __( 'Center Vertically', 'display-featured-image-genesis' ), - 'callback' => 'do_radio_buttons', - 'section' => 'style', - 'choices' => $this->pick_center(), - 'legend' => __( 'Center the backstretch image on the vertical axis?', 'display-featured-image-genesis' ), - 'type' => 'radio', - ), - array( - 'id' => 'fade', - 'title' => __( 'Fade', 'display-featured-image-genesis' ), - 'callback' => 'do_number', - 'section' => 'style', - 'label' => __( 'milliseconds', 'display-featured-image-genesis' ), - 'min' => 0, - 'max' => 20000, - 'type' => 'number', - ), - ); - } - - /** - * Define the fields for the content types tab. - * @return array - */ - protected function define_cpt_fields() { - $fields = array( - array( - 'id' => 'skip', - 'title' => __( 'Skip Content Types', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox_array', - 'section' => 'cpt_sitewide', - 'options' => $this->get_post_types(), - 'skip' => true, - ), - array( - 'id' => 'fallback', - 'title' => __( 'Prefer Fallback Images', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox_array', - 'section' => 'cpt_sitewide', - 'options' => $this->get_post_types(), - 'description' => __( 'Select content types which should always use a fallback image, even if a featured image has been set.', 'display-featured-image-genesis' ), - 'skip' => true, - ), - array( - 'id' => 'large', - 'title' => __( 'Force Large Images', 'display-featured-image-genesis' ), - 'callback' => 'do_checkbox_array', - 'section' => 'cpt_sitewide', - 'options' => $this->get_post_types(), - 'description' => __( 'Select content types which should always prefer to use the large image size instead of the backstretch, even if a backstretch size image is available (singular posts/pages, not archives).', 'display-featured-image-genesis' ), - 'skip' => true, - ), - ); - - $custom_pages = array( - 'search' => __( 'Search Results', 'display-featured-image-genesis' ), - 'fourohfour' => __( '404 Page', 'display-featured-image-genesis' ), - ); - $post_types = array_merge( $custom_pages, $this->get_post_types() ); - foreach ( $post_types as $post_type => $label ) { - $fields[] = array( - 'id' => esc_attr( $post_type ), - 'title' => esc_attr( $label ), - 'callback' => 'set_cpt_image', - 'section' => 'cpt', - 'type' => 'image', - ); - } - - return $fields; - } - - /** - * Define the fields for the advanced tab. - * - * @return array - */ - protected function define_advanced_fields() { - return array( - array( - 'id' => 'backstretch_hook', - 'title' => __( 'Backstretch Image Hook', 'display-featured-image-genesis' ), - 'callback' => 'do_select', - 'section' => 'advanced', - 'choices' => array( - 'genesis_before_header' => 'genesis_before_header', - 'genesis_header' => 'genesis_header', - 'genesis_after_header' => 'genesis_after_header ' . __( '(default)', 'display-featured-image-genesis' ), - 'genesis_before_content_sidebar_wrap' => 'genesis_before_content_sidebar_wrap', - 'genesis_before_content' => 'genesis_before_content', - ), - 'type' => 'select', - 'skip' => true, - ), - array( - 'id' => 'backstretch_priority', - 'title' => __( 'Backstretch Image Priority', 'display-featured-image-genesis' ), - 'callback' => 'do_number', - 'section' => 'advanced', - 'label' => '', - 'min' => 1, - 'max' => 100, - 'description' => __( 'Default: 10', 'display-featured-image-genesis' ), - 'type' => 'number', - 'skip' => true, - ), - array( - 'id' => 'large_hook', - 'title' => __( 'Large Image Hook', 'display-featured-image-genesis' ), - 'callback' => 'do_select', - 'section' => 'advanced', - 'choices' => $this->large_hook_options(), - 'description' => __( 'Changing this hook only affects single post/page output, due to overlap/conflict with archive page output.', 'display-featured-image-genesis' ), - 'type' => 'select', - 'skip' => true, - ), - array( - 'id' => 'large_priority', - 'title' => __( 'Large Image Priority', 'display-featured-image-genesis' ), - 'callback' => 'do_number', - 'section' => 'advanced', - 'label' => '', - 'min' => 1, - 'max' => 100, - 'description' => __( 'Default: 12', 'display-featured-image-genesis' ), - 'type' => 'number', - 'skip' => true, - ), - ); - } - - /** - * @return array - */ - public function pick_center() { - return array( - 1 => __( 'Center', 'display-featured-image-genesis' ), - 0 => __( 'Do Not Center', 'display-featured-image-genesis' ), - ); - } - - /** - * Get the post types as options. - * @return array - */ - protected function get_post_types() { - $post_types = $this->get_content_types_built_in(); - $options = array(); - foreach ( $post_types as $post_type ) { - $object = get_post_type_object( $post_type ); - $options[ $post_type ] = $object->label; - } - - return $options; - } - - /** - * Get the hooks for the large image. - * - * @return array - */ - protected function large_hook_options() { - $hooks = array( - 'genesis_before_loop' => 'genesis_before_loop ' . __( '(default)', 'display-featured-image-genesis' ), - 'genesis_after_header' => 'genesis_after_header', - 'genesis_before_content_sidebar_wrap' => 'genesis_before_content_sidebar_wrap', - ); - $html5 = genesis_html5() ? array( - 'genesis_before_entry' => 'genesis_before_entry ' . __( '(HTML5 themes)', 'display-featured-image-genesis' ), - 'genesis_entry_header' => 'genesis_entry_header ' . __( '(HTML5 themes)', 'display-featured-image-genesis' ), - 'genesis_entry_content' => 'genesis_entry_content ' . __( '(HTML5 themes)', 'display-featured-image-genesis' ), - ) : array(); - - return array_merge( $hooks, $html5 ); - } -} diff --git a/includes/settings/class-displayfeaturedimagegenesis-settings.php b/includes/settings/class-displayfeaturedimagegenesis-settings.php index 9b74922..dac90d5 100644 --- a/includes/settings/class-displayfeaturedimagegenesis-settings.php +++ b/includes/settings/class-displayfeaturedimagegenesis-settings.php @@ -7,12 +7,6 @@ */ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Genesis_Helper { - /** - * The common plugin class. - * @var $common \Display_Featured_Image_Genesis_Common - */ - protected $common; - /** * The plugin admin page. * @var $page string @@ -37,7 +31,6 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen */ public function do_submenu_page() { - $this->common = new Display_Featured_Image_Genesis_Common(); $this->setting = $this->get_display_setting(); add_theme_page( @@ -56,12 +49,27 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen * Build out the settings page sections/fields. */ public function build_settings_page() { - include_once plugin_dir_path( __FILE__ ) . 'class-displayfeaturedimagegenesis-settings-define.php'; - $definitions = new Display_Featured_Image_Genesis_Settings_Define(); - $sections = $definitions->register_sections(); - $this->fields = $definitions->register_fields(); + $sections = include 'sections.php'; + $this->fields = $this->get_fields(); $this->add_sections( $sections ); $this->add_fields( $this->fields, $sections ); + + include_once 'class-displayfeaturedimagegenesis-helptabs.php'; + $help = new Display_Featured_Image_Genesis_HelpTabs(); + $help->help(); + } + + /** + * Get the settings fields. + * @return array + */ + protected function get_fields() { + $main = include 'fields-main.php'; + $style = include 'fields-style.php'; + $cpt = include 'fields-cpt.php'; + $advanced = include 'fields-advanced.php'; + + return array_merge( $main, $style, $cpt, $advanced ); } /** @@ -118,13 +126,28 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen * @since 2.5.0 */ protected function do_tabs( $active_tab ) { - $tabs = $this->define_tabs(); + $tabs = include 'tabs.php'; $output = ''; @@ -138,36 +161,7 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen * @since 1.1.0 */ public function register_settings() { - register_setting( 'displayfeaturedimagegenesis', 'displayfeaturedimagegenesis', array( - $this, - 'do_validation_things', - ) ); - } - - /** - * Define tabs for the settings page. - * @return array - * @since 2.6.0 - */ - protected function define_tabs() { - return array( - 'main' => array( - 'id' => 'main', - 'tab' => __( 'Main', 'display-featured-image-genesis' ), - ), - 'style' => array( - 'id' => 'style', - 'tab' => __( 'Backstretch Output', 'display-featured-image-genesis' ), - ), - 'cpt' => array( - 'id' => 'cpt', - 'tab' => __( 'Content Types', 'display-featured-image-genesis' ), - ), - 'advanced' => array( - 'id' => 'advanced', - 'tab' => __( 'Advanced', 'display-featured-image-genesis' ), - ), - ); + register_setting( 'displayfeaturedimagegenesis', 'displayfeaturedimagegenesis', array( $this, 'do_validation_things' ) ); } /** @@ -183,7 +177,15 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen * Style section description */ public function style_section_description() { - return __( 'These settings modify the output style/methods for the backstretch image.', 'display-featured-image-genesis' ); + return __( 'These settings modify the output style/methods for the banner image.', 'display-featured-image-genesis' ); + } + + /** + * Backtretch section description + * @return string + */ + public function backstretch_section_description() { + return __( 'These settings apply only to the backstretch (script) banner image.', 'display-featured-image-genesis' ); } /** @@ -287,6 +289,51 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen printf( '%s
', wp_kses_post( $description ) ); } + /** + * @return array + */ + public function pick_center() { + return array( + 1 => __( 'Center', 'display-featured-image-genesis' ), + 0 => __( 'Do Not Center', 'display-featured-image-genesis' ), + ); + } + + /** + * Get the post types as options. + * @return array + */ + protected function get_post_types() { + $post_types = $this->get_content_types_built_in(); + $options = array(); + foreach ( $post_types as $post_type ) { + $object = get_post_type_object( $post_type ); + $options[ $post_type ] = $object->label; + } + + return $options; + } + + /** + * Get the hooks for the large image. + * + * @return array + */ + protected function large_hook_options() { + $hooks = array( + 'genesis_before_loop' => 'genesis_before_loop ' . __( '(default)', 'display-featured-image-genesis' ), + 'genesis_after_header' => 'genesis_after_header', + 'genesis_before_content_sidebar_wrap' => 'genesis_before_content_sidebar_wrap', + ); + $html5 = genesis_html5() ? array( + 'genesis_before_entry' => 'genesis_before_entry ' . __( '(HTML5 themes)', 'display-featured-image-genesis' ), + 'genesis_entry_header' => 'genesis_entry_header ' . __( '(HTML5 themes)', 'display-featured-image-genesis' ), + 'genesis_entry_content' => 'genesis_entry_content ' . __( '(HTML5 themes)', 'display-featured-image-genesis' ), + ) : array(); + + return array_merge( $hooks, $html5 ); + } + /** * validate all inputs * @@ -308,11 +355,8 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen check_admin_referer( $action, $nonce ); $new_value = array_merge( $this->setting, $new_value ); - foreach ( array( 'define', 'validate' ) as $file ) { - include_once plugin_dir_path( __FILE__ ) . "class-displayfeaturedimagegenesis-settings-{$file}.php"; - } - $definitions = new Display_Featured_Image_Genesis_Settings_Define(); - $validation = new Display_Featured_Image_Genesis_Settings_Validate( $definitions->register_fields(), $this->setting ); + include_once 'class-displayfeaturedimagegenesis-settings-validate.php'; + $validation = new Display_Featured_Image_Genesis_Settings_Validate( $this->get_fields(), $this->setting ); return $validation->validate( $new_value ); } diff --git a/includes/settings/fields-advanced.php b/includes/settings/fields-advanced.php new file mode 100644 index 0000000..bf075ae --- /dev/null +++ b/includes/settings/fields-advanced.php @@ -0,0 +1,53 @@ + 'backstretch_hook', + 'title' => __( 'Backstretch Image Hook', 'display-featured-image-genesis' ), + 'callback' => 'do_select', + 'section' => 'advanced', + 'choices' => array( + 'genesis_before_header' => 'genesis_before_header', + 'genesis_header' => 'genesis_header', + 'genesis_after_header' => 'genesis_after_header ' . __( '(default)', 'display-featured-image-genesis' ), + 'genesis_before_content_sidebar_wrap' => 'genesis_before_content_sidebar_wrap', + 'genesis_before_content' => 'genesis_before_content', + ), + 'type' => 'select', + 'skip' => true, + ), + array( + 'id' => 'backstretch_priority', + 'title' => __( 'Backstretch Image Priority', 'display-featured-image-genesis' ), + 'callback' => 'do_number', + 'section' => 'advanced', + 'label' => '', + 'min' => 1, + 'max' => 100, + 'description' => __( 'Default: 10', 'display-featured-image-genesis' ), + 'type' => 'number', + 'skip' => true, + ), + array( + 'id' => 'large_hook', + 'title' => __( 'Large Image Hook', 'display-featured-image-genesis' ), + 'callback' => 'do_select', + 'section' => 'advanced', + 'choices' => $this->large_hook_options(), + 'description' => __( 'Changing this hook only affects single post/page output, due to overlap/conflict with archive page output.', 'display-featured-image-genesis' ), + 'type' => 'select', + 'skip' => true, + ), + array( + 'id' => 'large_priority', + 'title' => __( 'Large Image Priority', 'display-featured-image-genesis' ), + 'callback' => 'do_number', + 'section' => 'advanced', + 'label' => '', + 'min' => 1, + 'max' => 100, + 'description' => __( 'Default: 12', 'display-featured-image-genesis' ), + 'type' => 'number', + 'skip' => true, + ), +); diff --git a/includes/settings/fields-cpt.php b/includes/settings/fields-cpt.php new file mode 100644 index 0000000..cb48f47 --- /dev/null +++ b/includes/settings/fields-cpt.php @@ -0,0 +1,47 @@ + 'skip', + 'title' => __( 'Skip Content Types', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox_array', + 'section' => 'cpt_sitewide', + 'options' => $this->get_post_types(), + 'skip' => true, + ), + array( + 'id' => 'fallback', + 'title' => __( 'Prefer Fallback Images', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox_array', + 'section' => 'cpt_sitewide', + 'options' => $this->get_post_types(), + 'description' => __( 'Select content types which should always use a fallback image, even if a featured image has been set.', 'display-featured-image-genesis' ), + 'skip' => true, + ), + array( + 'id' => 'large', + 'title' => __( 'Force Large Images', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox_array', + 'section' => 'cpt_sitewide', + 'options' => $this->get_post_types(), + 'description' => __( 'Select content types which should always prefer to use the large image size instead of the banner, even if a banner size image is available (singular posts/pages, not archives).', 'display-featured-image-genesis' ), + 'skip' => true, + ), +); + +$custom_pages = array( + 'search' => __( 'Search Results', 'display-featured-image-genesis' ), + 'fourohfour' => __( '404 Page', 'display-featured-image-genesis' ), +); +$post_types = array_merge( $custom_pages, $this->get_post_types() ); +foreach ( $post_types as $post_type => $label ) { + $fields[] = array( + 'id' => esc_attr( $post_type ), + 'title' => esc_attr( $label ), + 'callback' => 'set_cpt_image', + 'section' => 'cpt', + 'type' => 'image', + ); +} + +return $fields; diff --git a/includes/settings/fields-main.php b/includes/settings/fields-main.php new file mode 100644 index 0000000..a208a1f --- /dev/null +++ b/includes/settings/fields-main.php @@ -0,0 +1,97 @@ +minimum_backstretch_width(); + +return array( + array( + 'id' => 'default', + 'title' => __( 'Default Featured Image', 'display-featured-image-genesis' ), + 'callback' => 'set_default_image', + 'section' => 'default', + 'type' => 'image', + ), + array( + 'id' => 'always_default', + 'title' => __( 'Always Use Default', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox', + 'section' => 'default', + 'label' => __( 'Always use the default image, even if a featured image is set.', 'display-featured-image-genesis' ), + 'description' => sprintf( + /* translators: placeholder is a number equivalent to the width of the site's Large image (Settings > Media) */ + esc_html__( 'If you would like to use a default image for the featured image, upload it here. Must be at least %1$s pixels wide.', 'display-featured-image-genesis' ), + absint( $large + 1 ) + ), + 'type' => 'checkbox', + ), + array( + 'id' => 'image_size', + 'title' => __( 'Preferred Image Size', 'display-featured-image-genesis' ), + 'callback' => 'do_select', + 'section' => 'main', + 'choices' => apply_filters( + 'displayfeaturedimagegenesis_image_size_choices', + array( + 'displayfeaturedimage_backstretch' => __( 'Banner (default)', 'display-featured-image-genesis' ), + 'large' => __( 'Large', 'display-featured-image-genesis' ), + ) + ), + 'type' => 'select', + ), + array( + 'id' => 'exclude_front', + 'title' => __( 'Skip Front Page', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox', + 'section' => 'main', + 'label' => __( 'Do not show the Featured Image on the Front Page of the site.', 'display-featured-image-genesis' ), + 'type' => 'checkbox', + ), + array( + 'id' => 'keep_titles', + 'title' => __( 'Do Not Move Titles', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox', + 'section' => 'main', + 'label' => __( 'Do not move the titles to overlay the banner featured image.', 'display-featured-image-genesis' ), + 'type' => 'checkbox', + ), + array( + 'id' => 'move_excerpts', + 'title' => __( 'Move Excerpts/Archive Descriptions', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox', + 'section' => 'main', + 'label' => __( 'Move excerpts (if used) on single pages and move archive/taxonomy descriptions to overlay the Featured Image.', 'display-featured-image-genesis' ), + 'type' => 'checkbox', + ), + array( + 'id' => 'is_paged', + 'title' => __( 'Show Featured Image on Subsequent Blog Pages', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox', + 'section' => 'archives', + 'label' => __( 'Show featured image on pages 2+ of blogs and archives.', 'display-featured-image-genesis' ), + 'type' => 'checkbox', + ), + array( + 'id' => 'feed_image', + 'title' => __( 'Add Featured Image to Feed?', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox', + 'section' => 'archives', + 'label' => __( 'Optionally, add the featured image to your RSS feed.', 'display-featured-image-genesis' ), + 'type' => 'checkbox', + ), + array( + 'id' => 'thumbnails', + 'title' => __( 'Archive Thumbnails', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox', + 'section' => 'archives', + 'label' => __( 'Use term/post type fallback images for content archives?', 'display-featured-image-genesis' ), + 'type' => 'checkbox', + ), + array( + 'id' => 'shortcodes', + 'title' => __( 'Add Shortcode Buttons', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox', + 'section' => 'main', + 'label' => __( 'Add optional shortcode buttons to the post editor', 'display-featured-image-genesis' ), + 'skip' => true, + ), +); diff --git a/includes/settings/fields-style.php b/includes/settings/fields-style.php new file mode 100644 index 0000000..e6044a1 --- /dev/null +++ b/includes/settings/fields-style.php @@ -0,0 +1,62 @@ + 'scriptless', + 'title' => __( 'Disable JavaScript', 'display-featured-image-genesis' ), + 'callback' => 'do_checkbox', + 'type' => 'checkbox', + 'section' => 'style', + 'label' => __( 'Instead of using the Backstretch featured image, use a banner image which relies only on CSS.', 'display-featured-image-genesis' ), + ), + array( + 'id' => 'less_header', + 'title' => __( 'Height', 'display-featured-image-genesis' ), + 'callback' => 'do_number', + 'section' => 'backstretch', + 'label' => __( 'pixels to remove', 'display-featured-image-genesis' ), + 'min' => 0, + 'max' => 400, + 'description' => __( 'Changing this number will reduce the backstretch banner image height by this number of pixels. Default is zero.', 'display-featured-image-genesis' ), + 'type' => 'number', + ), + array( + 'id' => 'max_height', + 'title' => __( 'Maximum Height', 'display-featured-image-genesis' ), + 'callback' => 'do_number', + 'section' => 'style', + 'label' => __( 'pixels', 'display-featured-image-genesis' ), + 'min' => 100, + 'max' => 1000, + 'description' => __( 'Optionally, set a max-height value for the header image; it will be added to your CSS.', 'display-featured-image-genesis' ), + 'type' => 'number', + ), + array( + 'id' => 'centeredX', + 'title' => __( 'Center Horizontally', 'display-featured-image-genesis' ), + 'callback' => 'do_radio_buttons', + 'section' => 'backstretch', + 'choices' => $this->pick_center(), + 'legend' => __( 'Center the backstretch image on the horizontal axis?', 'display-featured-image-genesis' ), + 'type' => 'radio', + ), + array( + 'id' => 'centeredY', + 'title' => __( 'Center Vertically', 'display-featured-image-genesis' ), + 'callback' => 'do_radio_buttons', + 'section' => 'backstretch', + 'choices' => $this->pick_center(), + 'legend' => __( 'Center the backstretch image on the vertical axis?', 'display-featured-image-genesis' ), + 'type' => 'radio', + ), + array( + 'id' => 'fade', + 'title' => __( 'Fade', 'display-featured-image-genesis' ), + 'callback' => 'do_number', + 'section' => 'backstretch', + 'label' => __( 'milliseconds', 'display-featured-image-genesis' ), + 'min' => 0, + 'max' => 20000, + 'type' => 'number', + ), +); diff --git a/includes/settings/sections.php b/includes/settings/sections.php new file mode 100644 index 0000000..2bda794 --- /dev/null +++ b/includes/settings/sections.php @@ -0,0 +1,44 @@ + array( + 'id' => 'main', + 'title' => __( 'Optional Sitewide Settings', 'display-featured-image-genesis' ), + 'tab' => 'main', + ), + 'archives' => array( + 'id' => 'archives', + 'title' => __( 'Optional Archive Settings', 'display-featured-image-genesis' ), + 'tab' => 'main', + ), + 'default' => array( + 'id' => 'default', + 'title' => __( 'Optional Default Image', 'display-featured-image-genesis' ), + 'tab' => 'main', + ), + 'style' => array( + 'id' => 'style', + 'title' => __( 'Display Settings', 'display-featured-image-genesis' ), + 'tab' => 'style', + ), + 'backstretch' => array( + 'id' => 'backstretch', + 'title' => __( 'Backstretch Settings', 'display-featured-image-genesis' ), + 'tab' => 'style', + ), + 'cpt_sitewide' => array( + 'id' => 'cpt_sitewide', + 'title' => __( 'Sitewide Settings', 'display-featured-image-genesis' ), + 'tab' => 'cpt', + ), + 'cpt' => array( + 'id' => 'cpt', + 'title' => __( 'Featured Images for Custom Content Types', 'display-featured-image-genesis' ), + 'tab' => 'cpt', + ), + 'advanced' => array( + 'id' => 'advanced', + 'title' => __( 'Advanced Plugin Settings', 'display-featured-image-genesis' ), + 'tab' => 'advanced', + ), +); diff --git a/includes/settings/tabs.php b/includes/settings/tabs.php new file mode 100644 index 0000000..b69caa1 --- /dev/null +++ b/includes/settings/tabs.php @@ -0,0 +1,20 @@ + array( + 'id' => 'main', + 'tab' => __( 'Main', 'display-featured-image-genesis' ), + ), + 'style' => array( + 'id' => 'style', + 'tab' => __( 'Banner Output', 'display-featured-image-genesis' ), + ), + 'cpt' => array( + 'id' => 'cpt', + 'tab' => __( 'Content Types', 'display-featured-image-genesis' ), + ), + 'advanced' => array( + 'id' => 'advanced', + 'tab' => __( 'Advanced', 'display-featured-image-genesis' ), + ), +); diff --git a/sass/display-featured-image-genesis.scss b/sass/display-featured-image-genesis.scss new file mode 100644 index 0000000..9e1d3fb --- /dev/null +++ b/sass/display-featured-image-genesis.scss @@ -0,0 +1,70 @@ +.has-leader .site-inner { + margin-top: 0; +} + +.big-leader { + overflow: hidden; + max-height: 100vh; + position: relative; + + .wrap { + position: absolute; + right: 0; + bottom: 0; + left: 0; + width: 100%; + z-index: 1; + } + + &--scriptless { + height: auto; + + img { + display: block; + object-fit: cover; + } + } + + .entry-title, + .archive-title { + &.featured-image-overlay { + color: #fff; + text-align: center; + } + } + + .excerpt, + .archive-description { + margin-bottom: 24px; + padding: 24px; + background: rgba(255,255,255,0.85); + } + + p { + margin-top: 18px; + margin-bottom: 0; + + .home & { + margin-top: 0; + } + + &:last-child { + .home & { + margin-bottom: 0; + } + } + } + + .excerpt .entry-title, + .archive-description .archive-title { + margin-bottom: 0; + } +} + +.backstretch.no-js { + max-height: 600px; +} + +img.featured { + max-width: 100%; +}