Add officials templates

This commit is contained in:
Brian Miyaji
2017-11-13 18:20:03 +11:00
parent 52451c9a70
commit c24a22d014
4 changed files with 115 additions and 34 deletions

View File

@@ -44,6 +44,7 @@ class SportsPress_Officials {
add_filter( 'sportspress_meta_boxes', array( $this, 'add_meta_boxes' ) ); add_filter( 'sportspress_meta_boxes', array( $this, 'add_meta_boxes' ) );
add_filter( 'sportspress_calendar_columns', array( $this, 'calendar_columns' ) ); add_filter( 'sportspress_calendar_columns', array( $this, 'calendar_columns' ) );
add_filter( 'sportspress_after_event_template', array( $this, 'add_event_template' ), 30 ); add_filter( 'sportspress_after_event_template', array( $this, 'add_event_template' ), 30 );
add_filter( 'sportspress_event_options', array( $this, 'add_event_options' ) );
add_filter( 'sportspress_screen_ids', array( $this, 'screen_ids' ) ); add_filter( 'sportspress_screen_ids', array( $this, 'screen_ids' ) );
add_filter( 'sportspress_post_types', array( $this, 'add_post_type' ) ); add_filter( 'sportspress_post_types', array( $this, 'add_post_type' ) );
add_filter( 'sportspress_primary_post_types', array( $this, 'add_post_type' ) ); add_filter( 'sportspress_primary_post_types', array( $this, 'add_post_type' ) );
@@ -413,6 +414,25 @@ class SportsPress_Officials {
) ); ) );
} }
/**
* Add event options.
*
* @return array
*/
public function add_event_options( $options ) {
$options[] = array(
'title' => __( 'Officials', 'sportspress' ),
'id' => 'sportspress_event_officials_format',
'default' => 'table',
'type' => 'radio',
'options' => array(
'table' => __( 'Table', 'sportspress' ),
'list' => __( 'List', 'sportspress' ),
),
);
return $options;
}
/** /**
* Add screen ids. * Add screen ids.
* *

View File

@@ -0,0 +1,35 @@
<?php
/**
* Event Officials List
*
* @author ThemeBoy
* @package SportsPress/Templates
* @version 2.5
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
$scrollable = get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false;
?>
<div class="sp-template sp-template-event-officials sp-template-details">
<h4 class="sp-table-caption"><?php _e( 'Officials', 'sportspress' ); ?></h4>
<div class="sp-list-wrapper">
<dl class="sp-event-officials">
<?php
foreach ( $labels as $key => $label ) {
$appointed_officials = (array) sp_array_value( $data, $key, array() );
if ( empty( $appointed_officials ) ) continue;
echo '<dt>' . $label . '</dt>';
foreach ( $appointed_officials as $official_id => $official_name ) {
if ( $link_officials && sp_post_exists( $official_id ) ) {
$official_name = '<a href="' . get_post_permalink( $official_id ) . '">' . $official_name . '</a>';
}
echo '<dd>' . $official_name . '</dd>';
}
}
?>
</dl>
</div>
</div>

View File

@@ -0,0 +1,43 @@
<?php
/**
* Event Officials Table
*
* @author ThemeBoy
* @package SportsPress/Templates
* @version 2.5
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
$scrollable = get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false;
?>
<div class="sp-template sp-template-event-officials">
<h4 class="sp-table-caption"><?php _e( 'Officials', 'sportspress' ); ?></h4>
<div class="sp-table-wrapper">
<table class="sp-event-officials sp-data-table<?php echo $scrollable ? ' sp-scrollable-table' : ''; ?>">
<thead>
<tr>
<?php
foreach ( $labels as $label ) {
echo '<th class="data-name">' . $label . '</th>';
}
?>
</tr>
</thead>
<tbody>
<tr>
<?php
foreach ( $data as $appointed_officials ) {
foreach ( $appointed_officials as $official_id => $official_name ) {
if ( $link_officials && sp_post_exists( $official_id ) ) {
$appointed_officials[ $official_id ] = '<a href="' . get_post_permalink( $official_id ) . '">' . $official_name . '</a>';
}
}
echo '<td class="data-name">' . implode( '<br>', $appointed_officials ) . '</td>';
}
?>
</tr>
</tbody>
</table>
</div>
</div>

View File

@@ -4,7 +4,7 @@
* *
* @author ThemeBoy * @author ThemeBoy
* @package SportsPress/Templates * @package SportsPress/Templates
* @version 1.4 * @version 2.5
*/ */
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
@@ -24,38 +24,21 @@ if ( empty( $data ) ) return;
$labels = $data[0]; $labels = $data[0];
unset( $data[0] ); unset( $data[0] );
$scrollable = get_option( 'sportspress_enable_scrollable_tables', 'yes' ) == 'yes' ? true : false;
$link_officials = get_option( 'sportspress_link_officials', 'no' ) == 'yes' ? true : false; $link_officials = get_option( 'sportspress_link_officials', 'no' ) == 'yes' ? true : false;
?> $format = get_option( 'sportspress_event_officials_format', 'table' );
<div class="sp-template sp-template-event-officials"> switch ( $format ):
<h4 class="sp-table-caption"><?php _e( 'Officials', 'sportspress' ); ?></h4> case 'list':
sp_get_template( 'event-officials-list.php', array(
<div class="sp-table-wrapper"> 'labels' => $labels,
<table class="sp-event-officials sp-data-table<?php echo $scrollable ? ' sp-scrollable-table' : ''; ?>"> 'data' => $data,
<thead> 'link_officials' => $link_officials,
<tr> ) );
<?php break;
foreach ( $labels as $label ) { default:
echo '<th class="data-name">' . $label . '</th>'; sp_get_template( 'event-officials-table.php', array(
} 'labels' => $labels,
?> 'data' => $data,
</tr> 'link_officials' => $link_officials,
</thead> ) );
<tbody> endswitch;
<tr>
<?php
foreach ( $data as $appointed_officials ) {
foreach ( $appointed_officials as $official_id => $official_name ) {
if ( $link_officials && sp_post_exists( $official_id ) ) {
$appointed_officials[ $official_id ] = '<a href="' . get_post_permalink( $official_id ) . '">' . $official_name . '</a>';
}
}
echo '<td class="data-name">' . implode( '<br>', $appointed_officials ) . '</td>';
}
?>
</tr>
</tbody>
</table>
</div>
</div>