diff --git a/includes/class-displayfeaturedimagegenesis-settings.php b/includes/class-displayfeaturedimagegenesis-settings.php index 157f3fc..b0241b9 100644 --- a/includes/class-displayfeaturedimagegenesis-settings.php +++ b/includes/class-displayfeaturedimagegenesis-settings.php @@ -225,38 +225,6 @@ class Display_Featured_Image_Genesis_Settings { ) . '

'; } - /** - * Default image uploader - * - * @return image - * - * @since 1.2.1 - */ - public function set_cpt_image() { - - $item = Display_Featured_Image_Genesis_Common::get_image_variables(); - - foreach ( $this->post_types as $post ) { - - $post_type = $post->name; - if ( empty( $this->displaysetting['post_type'][$post_type] ) ) { - $this->displaysetting['post_type'][$post_type] = ''; - } - echo '

' . $post->label . '

'; - if ( ! empty( $this->displaysetting['post_type'][$post_type] ) ) { - $id = Display_Featured_Image_Genesis_Common::get_image_id( $this->displaysetting['post_type'][$post_type] ); - $preview = wp_get_attachment_image_src( $id, 'medium' ); - echo '
'; - echo ''; - echo '
'; - } - echo ''; - echo ''; - - } - - } - /** * option to exclude featured image on front page * @return 0 1 checkbox @@ -301,6 +269,71 @@ class Display_Featured_Image_Genesis_Settings { echo ''; } + /** + * Custom Post Type image uploader + * + * @return image + * + * @since x.y.z + */ + public function set_cpt_image() { + + $item = Display_Featured_Image_Genesis_Common::get_image_variables(); + + foreach ( $this->post_types as $post ) { + + $post_type = $post->name; + if ( empty( $this->displaysetting['post_type'][$post_type] ) ) { + $this->displaysetting['post_type'][$post_type] = ''; + } + echo '

' . $post->label . '

'; + if ( ! empty( $this->displaysetting['post_type'][$post_type] ) ) { + $id = Display_Featured_Image_Genesis_Common::get_image_id( $this->displaysetting['post_type'][$post_type] ); + $preview = wp_get_attachment_image_src( $id, 'medium' ); + echo '
'; + echo ''; + echo '
'; + } + echo ''; + echo ''; + + } + + } + + /** + * Save extra taxonomy fields callback function. + * @param term id $term_id the id of the term + * @return updated option updated option for term featured image + * + * @since x.y.z + */ + public function save_taxonomy_custom_meta( $term_id ) { + + if ( isset( $_POST['term_meta'] ) ) { + $t_id = $term_id; + $term_meta = get_option( "taxonomy_$t_id" ); + $cat_keys = array_keys( $_POST['term_meta'] ); + $is_updated = false; + foreach ( $cat_keys as $key ) { + if ( isset ( $_POST['term_meta'][$key] ) ) { + $term_meta[$key] = $_POST['term_meta'][$key]; + if ( $_POST['term_meta']['dfig_image'] === $term_meta[$key] ) { + $term_meta[$key] = $this->validate_taxonomy_image( $_POST['term_meta'][$key] ); + if ( false !== $term_meta[$key] ) { + $is_updated = true; + } + } + } + } + //* Save the option array. + if ( $is_updated ) { + update_option( "taxonomy_$t_id", $term_meta ); + } + } + + } + /** * validate all inputs * @param string $new_value various settings @@ -432,6 +465,29 @@ class Display_Featured_Image_Genesis_Settings { return $new_value; } + /** + * Returns false value for image if not correct file type/size + * @param string $new_value New value + * @return string New value or false, depending on allowed image size. + * @since x.y.z + */ + protected function validate_taxonomy_image( $new_value ) { + + $new_value = esc_url( $new_value ); + $valid = $this->is_valid_img_ext( $new_value ); + $large = get_option( 'large_size_w' ); + $id = Display_Featured_Image_Genesis_Common::get_image_id( $new_value ); + $metadata = wp_get_attachment_metadata( $id ); + $width = $metadata['width']; + + // ok for field to be empty + if ( $new_value && ( ! $valid || $width <= $large ) ) { + $new_value = false; + } + + return $new_value; + } + /** * returns file extension * @since 1.2.2 diff --git a/includes/class-displayfeaturedimagegenesis-taxonomies.php b/includes/class-displayfeaturedimagegenesis-taxonomies.php index a06a814..7744b1f 100644 --- a/includes/class-displayfeaturedimagegenesis-taxonomies.php +++ b/includes/class-displayfeaturedimagegenesis-taxonomies.php @@ -8,23 +8,6 @@ */ class Display_Featured_Image_Genesis_Taxonomies { - /** - * set up all actions for adding featured images to taxonomies - */ - public function set_taxonomy_meta() { - $args = array( - 'public' => true - ); - $output = 'names'; - $taxonomies = get_taxonomies( $args, $output ); - foreach ( $taxonomies as $taxonomy ) { - add_action( "{$taxonomy}_add_form_fields", array( $this, 'add_taxonomy_meta_fields' ), 5, 2 ); - add_action( "{$taxonomy}_edit_form_fields", array( $this, 'edit_taxonomy_meta_fields' ), 5, 2 ); - add_action( "edited_{$taxonomy}", array( $this, 'save_taxonomy_custom_meta' ), 10, 2 ); - add_action( "create_{$taxonomy}", array( $this, 'save_taxonomy_custom_meta' ), 10, 2 ); - } - } - /** * add featured image uploader to new taxonomy add */ @@ -71,84 +54,4 @@ class Display_Featured_Image_Genesis_Taxonomies { echo ''; } - /** - * Save extra taxonomy fields callback function. - * @param term id $term_id the id of the term - * @return updated option updated option for term featured image - * - * @since x.y.z - */ - public function save_taxonomy_custom_meta( $term_id ) { - - if ( isset( $_POST['term_meta'] ) ) { - $t_id = $term_id; - $term_meta = get_option( "taxonomy_$t_id" ); - $cat_keys = array_keys( $_POST['term_meta'] ); - $is_updated = false; - foreach ( $cat_keys as $key ) { - if ( isset ( $_POST['term_meta'][$key] ) ) { - $term_meta[$key] = $_POST['term_meta'][$key]; - if ( $_POST['term_meta']['dfig_image'] === $term_meta[$key] ) { - $term_meta[$key] = $this->validate_image( $_POST['term_meta'][$key] ); - if ( false !== $term_meta[$key] ) { - $is_updated = true; - } - } - } - } - //* Save the option array. - if ( $is_updated ) { - update_option( "taxonomy_$t_id", $term_meta ); - } - } - - } - - /** - * Returns previous value for image if not correct file type/size - * @param string $new_value New value - * @return string New or previous value, depending on allowed image size. - * @since x.y.z - */ - protected function validate_image( $new_value ) { - - $new_value = esc_url( $new_value ); - $valid = $this->is_valid_img_ext( $new_value ); - $large = get_option( 'large_size_w' ); - $id = Display_Featured_Image_Genesis_Common::get_image_id( $new_value ); - $metadata = wp_get_attachment_metadata( $id ); - $width = $metadata['width']; - - // ok for field to be empty - if ( $new_value && ( ! $valid || $width <= $large ) ) { - $new_value = false; - } - - return $new_value; - } - - /** - * returns file extension - * @since 1.2.2 - */ - protected function get_file_ext( $file ) { - $parsed = @parse_url( $file, PHP_URL_PATH ); - return $parsed ? strtolower( pathinfo( $parsed, PATHINFO_EXTENSION ) ) : false; - } - - /** - * check if file type is image - * @return file check file extension against list - * @since 1.2.2 - */ - protected function is_valid_img_ext( $file ) { - $file_ext = $this->get_file_ext( $file ); - - $this->valid = empty( $this->valid ) - ? (array) apply_filters( 'displayfeaturedimage_valid_img_types', array( 'jpg', 'jpeg', 'png', 'gif' ) ) - : $this->valid; - - return ( $file_ext && in_array( $file_ext, $this->valid ) ); - } - } diff --git a/includes/class-displayfeaturedimagegenesis.php b/includes/class-displayfeaturedimagegenesis.php index 8c60c5d..a842f20 100644 --- a/includes/class-displayfeaturedimagegenesis.php +++ b/includes/class-displayfeaturedimagegenesis.php @@ -35,7 +35,7 @@ class Display_Featured_Image_Genesis { add_action( 'init', array( $this, 'add_plugin_supports' ) ); add_action( 'admin_init', array( $this, 'check_settings' ) ); - add_action( 'admin_init', array( $this->taxonomies, 'set_taxonomy_meta' ) ); + add_action( 'admin_init', array( $this, 'set_taxonomy_meta' ) ); add_action( 'admin_init', array( $this->admin, 'set_up_columns' ) ); add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) ); add_action( 'admin_menu', array( $this->settings, 'do_submenu_page' ) ); @@ -141,6 +141,24 @@ class Display_Featured_Image_Genesis { return update_option( $setting, wp_parse_args( $new, get_option( $setting ) ) ); } + /** + * set up all actions for adding featured images to taxonomies + * @since x.y.z + */ + public function set_taxonomy_meta() { + $args = array( + 'public' => true + ); + $output = 'names'; + $taxonomies = get_taxonomies( $args, $output ); + foreach ( $taxonomies as $taxonomy ) { + add_action( "{$taxonomy}_add_form_fields", array( $this->taxonomies, 'add_taxonomy_meta_fields' ), 5, 2 ); + add_action( "{$taxonomy}_edit_form_fields", array( $this->taxonomies, 'edit_taxonomy_meta_fields' ), 5, 2 ); + add_action( "edited_{$taxonomy}", array( $this->settings, 'save_taxonomy_custom_meta' ), 10, 2 ); + add_action( "create_{$taxonomy}", array( $this->settings, 'save_taxonomy_custom_meta' ), 10, 2 ); + } + } + /** * Set up text domain for translations *