From 2fccc4ec04f3a263bb84dc776f3dee27abff46fe Mon Sep 17 00:00:00 2001 From: Brian Miyaji Date: Thu, 26 Jun 2014 17:59:16 +1000 Subject: [PATCH] Add home venue option to teams --- .../post-types/class-sp-admin-meta-boxes.php | 5 ++ .../class-sp-meta-box-team-details.php | 69 +++++++++++++++++++ includes/class-sp-post-types.php | 2 +- includes/sp-core-functions.php | 4 ++ 4 files changed, 79 insertions(+), 1 deletion(-) diff --git a/includes/admin/post-types/class-sp-admin-meta-boxes.php b/includes/admin/post-types/class-sp-admin-meta-boxes.php index f050ce12..335cb07b 100644 --- a/includes/admin/post-types/class-sp-admin-meta-boxes.php +++ b/includes/admin/post-types/class-sp-admin-meta-boxes.php @@ -186,6 +186,11 @@ class SP_Admin_Meta_Boxes { remove_meta_box( 'sp_leaguediv', 'sp_calendar', 'side' ); remove_meta_box( 'sp_venuediv', 'sp_calendar', 'side' ); + // Teams + remove_meta_box( 'sp_leaguediv', 'sp_team', 'side' ); + remove_meta_box( 'sp_seasondiv', 'sp_team', 'side' ); + remove_meta_box( 'sp_venuediv', 'sp_team', 'side' ); + // Tables remove_meta_box( 'sp_seasondiv', 'sp_table', 'side' ); remove_meta_box( 'sp_leaguediv', 'sp_table', 'side' ); diff --git a/includes/admin/post-types/meta-boxes/class-sp-meta-box-team-details.php b/includes/admin/post-types/meta-boxes/class-sp-meta-box-team-details.php index 75416583..b34f9ee4 100644 --- a/includes/admin/post-types/meta-boxes/class-sp-meta-box-team-details.php +++ b/includes/admin/post-types/meta-boxes/class-sp-meta-box-team-details.php @@ -19,9 +19,78 @@ class SP_Meta_Box_Team_Details { * Output the metabox */ public static function output( $post ) { + $leagues = get_the_terms( $post->ID, 'sp_league' ); + $league_ids = array(); + if ( $leagues ): + foreach ( $leagues as $league ): + $league_ids[] = $league->term_id; + endforeach; + endif; + + $seasons = get_the_terms( $post->ID, 'sp_season' ); + $season_ids = array(); + if ( $seasons ): + foreach ( $seasons as $season ): + $season_ids[] = $season->term_id; + endforeach; + endif; + + $venues = get_the_terms( $post->ID, 'sp_venue' ); + $venue_ids = array(); + if ( $venues ): + foreach ( $venues as $venue ): + $venue_ids[] = $venue->term_id; + endforeach; + endif; + $abbreviation = get_post_meta( $post->ID, 'sp_abbreviation', true ); $url = get_post_meta( $post->ID, 'sp_url', true ); ?> +

+

'sp_league', + 'name' => 'tax_input[sp_league][]', + 'selected' => $league_ids, + 'values' => 'term_id', + 'placeholder' => sprintf( __( 'Select %s', 'sportspress' ), __( 'Leagues', 'sportspress' ) ), + 'class' => 'widefat', + 'property' => 'multiple', + 'chosen' => true, + ); + sp_dropdown_taxonomies( $args ); + ?>

+ +

+

'sp_season', + 'name' => 'tax_input[sp_season][]', + 'selected' => $season_ids, + 'values' => 'term_id', + 'placeholder' => sprintf( __( 'Select %s', 'sportspress' ), __( 'Leagues', 'sportspress' ) ), + 'class' => 'widefat', + 'property' => 'multiple', + 'chosen' => true, + ); + sp_dropdown_taxonomies( $args ); + ?>

+ +

+

'sp_venue', + 'name' => 'tax_input[sp_venue][]', + 'selected' => $venue_ids, + 'values' => 'term_id', + 'placeholder' => sprintf( __( 'Select %s', 'sportspress' ), __( 'Venue', 'sportspress' ) ), + 'class' => 'widefat', + 'property' => 'multiple', + 'chosen' => true, + ); + sp_dropdown_taxonomies( $args ); + ?>

+

diff --git a/includes/class-sp-post-types.php b/includes/class-sp-post-types.php index 2dad7861..a79f245f 100644 --- a/includes/class-sp-post-types.php +++ b/includes/class-sp-post-types.php @@ -112,7 +112,7 @@ class SP_Post_types { 'hierarchical' => true, 'rewrite' => array( 'slug' => get_option( 'sportspress_venue_slug', 'venue' ) ), ); - $object_types = apply_filters( 'sportspress_event_object_types', array( 'sp_event', 'sp_calendar' ) ); + $object_types = apply_filters( 'sportspress_event_object_types', array( 'sp_event', 'sp_calendar', 'sp_team' ) ); register_taxonomy( 'sp_venue', $object_types, $args ); foreach ( $object_types as $object_type ): register_taxonomy_for_object_type( 'sp_venue', $object_type ); diff --git a/includes/sp-core-functions.php b/includes/sp-core-functions.php index 549dbbb1..585d1ad2 100644 --- a/includes/sp-core-functions.php +++ b/includes/sp-core-functions.php @@ -457,6 +457,8 @@ if ( !function_exists( 'sp_dropdown_taxonomies' ) ) { 'chosen' => false, ); $args = array_merge( $defaults, $args ); + if ( ! $args['taxonomy'] ) return false; + $terms = get_terms( $args['taxonomy'], $args ); $name = ( $args['name'] ) ? $args['name'] : $args['taxonomy']; $id = ( $args['id'] ) ? $args['id'] : $name; @@ -479,6 +481,8 @@ if ( !function_exists( 'sp_dropdown_taxonomies' ) ) { $chosen = $args['chosen']; unset( $args['chosen'] ); + printf( '', $args['taxonomy'] ); + if ( $terms ): printf( '