Display staff profiles close #19

This commit is contained in:
Brian Miyaji
2014-04-27 17:36:31 +10:00
parent 100f172adc
commit 44c7874a7e
4 changed files with 105 additions and 1 deletions

View File

@@ -0,0 +1,24 @@
<?php
/**
* Staff Class
*
* The SportsPress staff class handles individual staff data.
*
* @class SP_Staff
* @version 0.8
* @package SportsPress/Classes
* @category Class
* @author ThemeBoy
*/
class SP_Staff extends SP_Custom_Post {
/**
* Returns past teams
*
* @access public
* @return array
*/
public function past_teams() {
return get_post_meta( $this->ID, 'sp_past_team', false );
}
}

View File

@@ -248,6 +248,22 @@ if ( ! function_exists( 'sportspress_output_player_list' ) ) {
}
}
/** Single Staff ********************************************************/
if ( ! function_exists( 'sportspress_output_staff_details' ) ) {
/**
* Output the staff metrics.
*
* @access public
* @subpackage Staff/Metrics
* @return void
*/
function sportspress_output_staff_details() {
sp_get_template( 'staff-details.php' );
}
}
/** Venue Archive ********************************************************/
function sportspress_output_venue_map( $query ) {

View File

@@ -74,6 +74,13 @@ add_action( 'sportspress_single_player_content', 'sportspress_output_player_stat
*/
add_action( 'sportspress_single_list_content', 'sportspress_output_player_list', 10 );
/**
* Single Staff Content
*
* @see sportspress_output_staff_details()
*/
add_action( 'sportspress_single_staff_content', 'sportspress_output_staff_details', 10 );
/**
* Venue Archive Content
*/
@@ -89,7 +96,7 @@ function sportspress_the_title( $title, $id ) {
elseif ( is_singular( 'sp_staff' ) ):
$role = get_post_meta( $id, 'sp_role', true );
if ( $role != null ):
$title = $title . '<br><small><strong>' . $role . '</strong></small>';
$title = '<strong>' . $role . '</strong> ' . $title;
endif;
endif;
endif;

View File

@@ -0,0 +1,57 @@
<?php
/**
* Staff Details
*
* @author ThemeBoy
* @package SportsPress/Templates
* @version 0.8
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
if ( ! isset( $id ) )
$id = get_the_ID();
$defaults = array(
'show_nationality_flags' => get_option( 'sportspress_staff_show_flags', 'yes' ) == 'yes' ? true : false,
);
extract( $defaults, EXTR_SKIP );
$countries = SP()->countries->countries;
$staff = new SP_Staff( $id );
$nationality = $staff->nationality;
$current_team = $staff->current_team;
$past_teams = $staff->past_teams();
$data = array();
if ( $nationality ):
$country_name = sp_array_value( $countries, $nationality, null );
$data[ SP()->text->string('Nationality') ] = $country_name ? ( $show_nationality_flags ? '<img src="' . plugin_dir_url( SP_PLUGIN_FILE ) . '/assets/images/flags/' . strtolower( $nationality ) . '.png" alt="' . $nationality . '"> ' : '' ) . $country_name : '&mdash;';
endif;
if ( $current_team )
$data[ SP()->text->string('Current Team') ] = '<a href="' . get_post_permalink( $current_team ) . '">' . get_the_title( $current_team ) . '</a>';
if ( $past_teams ):
$teams = array();
foreach ( $past_teams as $team ):
$teams[] = '<a href="' . get_post_permalink( $team ) . '">' . get_the_title( $team ) . '</a>';
endforeach;
$data[ SP()->text->string('Past Teams') ] = implode( ', ', $teams );
endif;
$output = '<div class="sp-list-wrapper">' .
'<dl class="sp-staff-details">';
foreach( $data as $label => $value ):
$output .= '<dt>' . $label . '<dd>' . $value . '</dd>';
endforeach;
$output .= '</dl></div>';
echo apply_filters( 'sportspress_staff_details', $output );