From cea3f75341ddb97c8b74faed1fb9f3584e8131ec Mon Sep 17 00:00:00 2001 From: Robin Cornett Date: Tue, 31 Oct 2017 19:47:25 -0400 Subject: [PATCH] Add advanced settings --- ...ass-displayfeaturedimagegenesis-output.php | 9 ++-- ...displayfeaturedimagegenesis-getsetting.php | 38 +++++++------ ...ass-displayfeaturedimagegenesis-helper.php | 21 +++++++- ...ayfeaturedimagegenesis-settings-define.php | 54 ++++++++++++++++++- ...s-displayfeaturedimagegenesis-settings.php | 13 +++-- 5 files changed, 108 insertions(+), 27 deletions(-) diff --git a/includes/class-displayfeaturedimagegenesis-output.php b/includes/class-displayfeaturedimagegenesis-output.php index c9099a4..b1e3926 100644 --- a/includes/class-displayfeaturedimagegenesis-output.php +++ b/includes/class-displayfeaturedimagegenesis-output.php @@ -509,7 +509,8 @@ class Display_Featured_Image_Genesis_Output { * @return array */ protected function get_hooks() { - $large_hook = apply_filters( 'display_featured_image_genesis_move_large_image', 'genesis_before_loop' ); + $setting = displayfeaturedimagegenesis_get_setting(); + $large_hook = apply_filters( 'display_featured_image_genesis_move_large_image', $setting['large_hook'] ); if ( ! is_singular() || is_page_template( 'page_blog.php' ) ) { $check = strpos( $large_hook, 'entry' ) || strpos( $large_hook, 'post' ); if ( false !== $check ) { @@ -519,12 +520,12 @@ class Display_Featured_Image_Genesis_Output { return apply_filters( 'displayfeaturedimagegenesis_hooks', array( 'backstretch' => array( - 'hook' => apply_filters( 'display_featured_image_move_backstretch_image', 'genesis_after_header' ), - 'priority' => apply_filters( 'display_featured_image_move_backstretch_image_priority', 10 ), + 'hook' => apply_filters( 'display_featured_image_move_backstretch_image', $setting['backstretch_hook'] ), + 'priority' => apply_filters( 'display_featured_image_move_backstretch_image_priority', $setting['backstretch_priority'] ), ), 'large' => array( 'hook' => $large_hook, - 'priority' => apply_filters( 'display_featured_image_genesis_move_large_image_priority', 12 ), + 'priority' => apply_filters( 'display_featured_image_genesis_move_large_image_priority', $setting['large_priority'] ), ), ) ); } diff --git a/includes/settings/class-displayfeaturedimagegenesis-getsetting.php b/includes/settings/class-displayfeaturedimagegenesis-getsetting.php index 3d8058c..249c4e9 100644 --- a/includes/settings/class-displayfeaturedimagegenesis-getsetting.php +++ b/includes/settings/class-displayfeaturedimagegenesis-getsetting.php @@ -14,27 +14,31 @@ class DisplayFeaturedImageGenesisGetSetting { */ public function defaults() { return apply_filters( 'displayfeaturedimagegenesis_defaults', array( - 'less_header' => 0, - 'default' => '', - 'exclude_front' => 0, - 'keep_titles' => 0, - 'move_excerpts' => 0, - 'is_paged' => 0, - 'feed_image' => 0, - 'thumbnails' => 0, - 'post_types' => array(), - 'skip' => array(), - 'fallback' => array(), - 'max_height' => '', - 'always_default' => 0, - 'centeredX' => 1, - 'centeredY' => 1, - 'fade' => 750, - 'shortcode' => array( + 'less_header' => 0, + 'default' => '', + 'exclude_front' => 0, + 'keep_titles' => 0, + 'move_excerpts' => 0, + 'is_paged' => 0, + 'feed_image' => 0, + 'thumbnails' => 0, + 'post_types' => array(), + 'skip' => array(), + 'fallback' => array(), + 'max_height' => '', + 'always_default' => 0, + 'centeredX' => 1, + 'centeredY' => 1, + 'fade' => 750, + 'shortcode' => array( 'displayfeaturedimagegenesis_term' => 0, 'displayfeaturedimagegenesis_author' => 0, 'displayfeaturedimagegenesis_post_type' => 0, ), + 'backstretch_hook' => 'genesis_after_header', + 'backstretch_priority' => 10, + 'large_hook' => 'genesis_before_loop', + 'large_priority' => 12, ) ); } diff --git a/includes/settings/class-displayfeaturedimagegenesis-helper.php b/includes/settings/class-displayfeaturedimagegenesis-helper.php index 2bb4d7b..e5987da 100644 --- a/includes/settings/class-displayfeaturedimagegenesis-helper.php +++ b/includes/settings/class-displayfeaturedimagegenesis-helper.php @@ -47,7 +47,6 @@ class Display_Featured_Image_Genesis_Helper extends DisplayFeaturedImageGenesisG * @since 2.4.0 */ protected function add_fields( $fields, $sections ) { - foreach ( $fields as $field ) { add_settings_field( '[' . $field['id'] . ']', @@ -179,6 +178,26 @@ class Display_Featured_Image_Genesis_Helper extends DisplayFeaturedImageGenesisG echo ''; } + /** + * Output a select field. + * + * @param $args + */ + public function do_select( $args ) { + printf( ''; + } + /** * Generic callback to display a field description. * diff --git a/includes/settings/class-displayfeaturedimagegenesis-settings-define.php b/includes/settings/class-displayfeaturedimagegenesis-settings-define.php index cf9f90f..f900ef7 100644 --- a/includes/settings/class-displayfeaturedimagegenesis-settings-define.php +++ b/includes/settings/class-displayfeaturedimagegenesis-settings-define.php @@ -26,6 +26,10 @@ class Display_Featured_Image_Genesis_Settings_Define extends Display_Featured_Im 'id' => 'cpt', 'title' => __( 'Featured Images for Custom Content Types', 'display-featured-image-genesis' ), ), + 'advanced' => array( + 'id' => 'advanced', + 'title' => __( 'Advanced Plugin Settings', 'display-featured-image-genesis' ), + ), ); } @@ -37,7 +41,7 @@ class Display_Featured_Image_Genesis_Settings_Define extends Display_Featured_Im */ public function register_fields() { - return array_merge( $this->define_main_fields(), $this->define_style_fields(), $this->define_cpt_fields() ); + return array_merge( $this->define_main_fields(), $this->define_style_fields(), $this->define_cpt_fields(), $this->define_advanced_fields() ); } /** @@ -214,6 +218,54 @@ class Display_Featured_Image_Genesis_Settings_Define extends Display_Featured_Im 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', + 'options' => array( + 'genesis_after_header' => __( 'After Header', 'display-featured-image-genesis' ), + 'genesis_before_header' => __( 'Before Header', 'display-featured-image-genesis' ), + 'genesis_header' => __( 'Header', 'display-featured-image-genesis' ), + ), + ), + array( + 'id' => 'backstretch_priority', + 'title' => __( 'Backstretch Image Priority', 'display-featured-image-genesis' ), + 'callback' => 'do_number', + 'section' => 'advanced', + 'label' => '', + 'min' => 1, + 'max' => 100, + ), + array( + 'id' => 'large_hook', + 'title' => __( 'Large Image Hook', 'display-featured-image-genesis' ), + 'callback' => 'do_select', + 'section' => 'advanced', + 'options' => array( + 'genesis_before_loop' => __( 'Before Entry Header', 'display-featured-image-genesis' ), + ), + ), + array( + 'id' => 'large_priority', + 'title' => __( 'Large Image Priority', 'display-featured-image-genesis' ), + 'callback' => 'do_number', + 'section' => 'advanced', + 'label' => '', + 'min' => 1, + 'max' => 100, + ), + ); + } + /** * @return array */ diff --git a/includes/settings/class-displayfeaturedimagegenesis-settings.php b/includes/settings/class-displayfeaturedimagegenesis-settings.php index c975af5..bcedd86 100644 --- a/includes/settings/class-displayfeaturedimagegenesis-settings.php +++ b/includes/settings/class-displayfeaturedimagegenesis-settings.php @@ -2,7 +2,7 @@ /** * Class Display_Featured_Image_Genesis_Settings - * @package DisplayFeaturedImageGenesis + * @package DisplayFeaturedImageGenesis * @copyright 2017 Robin Cornett */ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Genesis_Helper { @@ -151,18 +151,22 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen */ protected function define_tabs() { return array( - 'main' => array( + 'main' => array( 'id' => 'main', 'tab' => __( 'Main', 'display-featured-image-genesis' ), ), - 'style' => array( + 'style' => array( 'id' => 'style', 'tab' => __( 'Backstretch Output', 'display-featured-image-genesis' ), ), - 'cpt' => array( + 'cpt' => array( 'id' => 'cpt', 'tab' => __( 'Content Types', 'display-featured-image-genesis' ), ), + 'advanced' => array( + 'id' => 'advanced', + 'tab' => __( 'Advanced', 'display-featured-image-genesis' ), + ), ); } @@ -194,6 +198,7 @@ class Display_Featured_Image_Genesis_Settings extends Display_Featured_Image_Gen if ( $post_types ) { $description .= __( ' Additionally, since you have custom post types with archives, you might like to set a featured image for each of them.', 'display-featured-image-genesis' ); } + return $description; }