From adb2ab6d3ed0931e637bf57945fda711c02a6ec7 Mon Sep 17 00:00:00 2001 From: Robin Cornett Date: Thu, 1 Jan 2015 18:38:59 -0500 Subject: [PATCH] create admin class for custom featured image column --- display-featured-image-genesis.php | 3 + ...lass-displayfeaturedimagegenesis-admin.php | 74 +++++++++++++++++++ ...displayfeaturedimagegenesis-taxonomies.php | 52 +------------ .../class-displayfeaturedimagegenesis.php | 6 +- 4 files changed, 82 insertions(+), 53 deletions(-) create mode 100644 includes/class-displayfeaturedimagegenesis-admin.php diff --git a/display-featured-image-genesis.php b/display-featured-image-genesis.php index 5fee18f..64a17c3 100644 --- a/display-featured-image-genesis.php +++ b/display-featured-image-genesis.php @@ -26,6 +26,7 @@ if ( ! defined( 'WPINC' ) ) { // Include classes require plugin_dir_path( __FILE__ ) . 'includes/class-displayfeaturedimagegenesis.php'; +require plugin_dir_path( __FILE__ ) . 'includes/class-displayfeaturedimagegenesis-admin.php'; require plugin_dir_path( __FILE__ ) . 'includes/class-displayfeaturedimagegenesis-common.php'; require plugin_dir_path( __FILE__ ) . 'includes/class-displayfeaturedimagegenesis-description.php'; require plugin_dir_path( __FILE__ ) . 'includes/class-displayfeaturedimagegenesis-output.php'; @@ -34,6 +35,7 @@ require plugin_dir_path( __FILE__ ) . 'includes/class-displayfeaturedimagegenesi require plugin_dir_path( __FILE__ ) . 'includes/class-displayfeaturedimagegenesis-taxonomies.php'; // Instantiate dependent classes +$displayfeaturedimagegenesis_admin = new Display_Featured_Image_Genesis_Admin(); $displayfeaturedimagegenesis_common = new Display_Featured_Image_Genesis_Common(); $displayfeaturedimagegenesis_description = new Display_Featured_Image_Genesis_Description(); $displayfeaturedimagegenesis_output = new Display_Featured_Image_Genesis_Output(); @@ -42,6 +44,7 @@ $displayfeaturedimagegenesis_settings = new Display_Featured_Image_Genesis_Se $displayfeaturedimagegenesis_taxonomies = new Display_Featured_Image_Genesis_Taxonomies(); $displayfeaturedimage = new Display_Featured_Image_Genesis( + $displayfeaturedimagegenesis_admin, $displayfeaturedimagegenesis_common, $displayfeaturedimagegenesis_description, $displayfeaturedimagegenesis_output, diff --git a/includes/class-displayfeaturedimagegenesis-admin.php b/includes/class-displayfeaturedimagegenesis-admin.php new file mode 100644 index 0000000..4483c27 --- /dev/null +++ b/includes/class-displayfeaturedimagegenesis-admin.php @@ -0,0 +1,74 @@ + true + ); + $output = 'names'; + $taxonomies = get_taxonomies( $args, $output ); + foreach ( $taxonomies as $taxonomy ) { + add_filter( "manage_edit-{$taxonomy}_columns", array( $this, 'add_column' ) ); + add_action( "manage_{$taxonomy}_custom_column", array( $this, 'manage_taxonomy_column' ), 10, 3 ); + } + } + + public function set_up_post_type_columns() { + $args = array( + 'public' => true, + '_builtin' => false, + ); + $output = 'names'; + $post_types = get_post_types( $args, $output ); + $post_types['post'] = 'post'; + $post_types['page'] = 'page'; + foreach ( $post_types as $post_type ) { + add_filter( "manage_{$post_type}_posts_columns", array( $this, 'add_column' ) ); + add_action( "manage_{$post_type}_posts_custom_column", array( $this, 'custom_post_columns' ), 10, 2 ); + } + } + + public function add_column( $columns ) { + + $new_columns = $columns; + array_splice( $new_columns, 1 ); + + $new_columns['featured_image'] = __( 'Featured Image', 'display-featured-image-genesis' ); + + return array_merge( $new_columns, $columns ); + + } + + public function manage_taxonomy_column( $value, $column, $term_id ) { + + if ( 'featured_image' === $column ) { + $term_meta = get_option( "taxonomy_$term_id" ); + if ( ! empty( $term_meta['dfig_image'] ) ) { + $id = Display_Featured_Image_Genesis_Common::get_image_id( $term_meta['dfig_image'] ); + $preview = wp_get_attachment_image_src( $id, 'thumbnail' ); + echo ''; + } + } + + } + + public function custom_post_columns( $column, $post_id ) { + + if ( 'featured_image' === $column ) { + $image = get_the_post_thumbnail( $post_id, array( 60,60 ) ); + if ( $image ) { + echo $image; + } + } + + } + + +} \ No newline at end of file diff --git a/includes/class-displayfeaturedimagegenesis-taxonomies.php b/includes/class-displayfeaturedimagegenesis-taxonomies.php index 9269618..3f1d313 100644 --- a/includes/class-displayfeaturedimagegenesis-taxonomies.php +++ b/includes/class-displayfeaturedimagegenesis-taxonomies.php @@ -17,9 +17,6 @@ class Display_Featured_Image_Genesis_Taxonomies { 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_filter( "manage_edit-{$taxonomy}_columns", array( $this, 'add_column' ) ); - add_action( "manage_{$taxonomy}_custom_column", array( $this, 'manage_column' ), 10, 3 ); } } @@ -103,7 +100,7 @@ class Display_Featured_Image_Genesis_Taxonomies { * 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 1.2.2 + * @since x.y.z */ protected function validate_image( $new_value ) { @@ -152,51 +149,4 @@ class Display_Featured_Image_Genesis_Taxonomies { return ( $file_ext && in_array( $file_ext, $this->valid ) ); } - public function add_column( $columns ) { - - $columns = array( - 'cb' => '', - 'featured_image' => __( 'Featured Image', 'display-featured-image-genesis' ), - 'name' => __( 'Name', 'display-featured-image-genesis' ), - 'description' => __( 'Description', 'display-featured-image-genesis' ), - 'slug' => __( 'Slug', 'display-featured-image-genesis' ), - 'posts' => __( 'Count', 'display-featured-image-genesis' ) - ); - - return $columns; - - } - - public function manage_column( $value, $column, $term_id ) { - - if ( 'featured_image' === $column ) { - $term_meta = get_option( "taxonomy_$term_id" ); - if ( ! empty( $term_meta['dfig_image'] ) ) { - $id = Display_Featured_Image_Genesis_Common::get_image_id( $term_meta['dfig_image'] ); - $preview = wp_get_attachment_image_src( $id, 'thumbnail' ); - echo ''; - } - } - } - - public function add_post_columns( $columns ) { - - $new_columns = $columns; - array_splice( $new_columns, 1 ); - - $new_columns['featured_image'] = __( 'Featured Image', 'display-featured-image-genesis' ); - - return array_merge( $new_columns, $columns ); - - } - - public function custom_post_columns( $column, $post_id ) { - if ( 'featured_image' === $column ) { - $image = get_the_post_thumbnail( $post_id, array( 60,60 ) ); - if ( $image ) { - echo $image; - } - } - } - } diff --git a/includes/class-displayfeaturedimagegenesis.php b/includes/class-displayfeaturedimagegenesis.php index 18c0b3b..a3924cf 100644 --- a/includes/class-displayfeaturedimagegenesis.php +++ b/includes/class-displayfeaturedimagegenesis.php @@ -16,7 +16,8 @@ */ class Display_Featured_Image_Genesis { - function __construct( $common, $description, $output, $rss, $settings, $taxonomies ) { + function __construct( $admin, $common, $description, $output, $rss, $settings, $taxonomies ) { + $this->admin = $admin; $this->common = $common; $this->archive = $description; $this->output = $output; @@ -35,7 +36,8 @@ 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->taxonomies, 'add_columns_post_types' ) ); + add_action( 'admin_init', array( $this->admin, 'set_up_taxonomy_columns' ) ); + add_action( 'admin_init', array( $this->admin, 'set_up_post_type_columns' ) ); add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) ); add_action( 'admin_menu', array( $this->settings, 'do_submenu_page' ) ); add_action( 'get_header', array( $this->output, 'manage_output' ) );