Move calendar into its own widget
This commit is contained in:
@@ -9,7 +9,7 @@ function sportspress_post_updated_messages( $messages ) {
|
||||
' <a href="' . esc_url( admin_url( 'edit.php?post_type=' . $typenow ) ) . '">' .
|
||||
sprintf( __( 'Edit %s', 'sportspress' ), $obj->labels->name ) . '</a>';
|
||||
|
||||
elseif ( in_array( $typenow, array( 'sp_event', 'sp_calendar', 'sp_team', 'sp_table', 'sp_player', 'sp_list', 'sp_staff' ) ) ):
|
||||
elseif ( in_array( $typenow, array( 'sp_event', 'sp_team', 'sp_table', 'sp_player', 'sp_list', 'sp_staff' ) ) ):
|
||||
$obj = get_post_type_object( $typenow );
|
||||
|
||||
$messages['post'][1] = sprintf( __( '%s updated.', 'sportspress' ), $obj->labels->singular_name ) .
|
||||
|
||||
@@ -1,26 +1,79 @@
|
||||
<?php
|
||||
function sportspress_activation_hook() {
|
||||
|
||||
// Team Manager
|
||||
remove_role( 'sp_site_admin' );
|
||||
// League Manager
|
||||
remove_role( 'sp_league_manager' );
|
||||
add_role(
|
||||
'sp_team_manager',
|
||||
|
||||
__( 'Team Manager', 'sportspress' ),
|
||||
'sp_league_manager',
|
||||
__( 'League Manager', 'sportspress' ),
|
||||
array(
|
||||
'read' => true,
|
||||
'edit_posts' => true,
|
||||
'delete_posts' => true,
|
||||
'read_sp_players' => true,
|
||||
'upload_files' => true,
|
||||
|
||||
'edit_sp_player' => true,
|
||||
'edit_sp_players' => true,
|
||||
'edit_others_sp_players' => true,
|
||||
'delete_sp_player' => true,
|
||||
'edit_private_sp_players' => true,
|
||||
'edit_published_sp_players' => true,
|
||||
'read_sp_players' => true,
|
||||
'read_private_sp_players' => true,
|
||||
'publish_sp_players' => true,
|
||||
'read_sp_staffs' => true,
|
||||
'delete_sp_players' => true,
|
||||
'delete_others_sp_players' => true,
|
||||
'delete_private_sp_players' => true,
|
||||
'delete_published_sp_players' => true,
|
||||
|
||||
'edit_sp_staff' => true,
|
||||
'edit_sp_staffs' => true,
|
||||
'edit_others_sp_staffs' => true,
|
||||
'delete_sp_staff' => true,
|
||||
'publish_sp_staffs' => true
|
||||
'edit_private_sp_staffs' => true,
|
||||
'edit_published_sp_staffs' => true,
|
||||
'read_sp_staffs' => true,
|
||||
'read_private_sp_staffs' => true,
|
||||
'publish_sp_staffs' => true,
|
||||
'delete_sp_staffs' => true,
|
||||
'delete_others_sp_staffs' => true,
|
||||
'delete_private_sp_staffs' => true,
|
||||
'delete_published_sp_staffs' => true,
|
||||
|
||||
'edit_sp_team' => true,
|
||||
'edit_sp_teams' => true,
|
||||
'edit_others_sp_teams' => true,
|
||||
'edit_private_sp_teams' => true,
|
||||
'edit_published_sp_teams' => true,
|
||||
'read_sp_teams' => true,
|
||||
'read_private_sp_teams' => true,
|
||||
'publish_sp_teams' => true,
|
||||
'delete_sp_teams' => true,
|
||||
'delete_others_sp_teams' => true,
|
||||
'delete_private_sp_teams' => true,
|
||||
'delete_published_sp_teams' => true,
|
||||
|
||||
'edit_sp_list' => true,
|
||||
'edit_sp_lists' => true,
|
||||
'edit_others_sp_lists' => true,
|
||||
'edit_private_sp_lists' => true,
|
||||
'edit_published_sp_lists' => true,
|
||||
'read_sp_lists' => true,
|
||||
'read_private_sp_lists' => true,
|
||||
'publish_sp_lists' => true,
|
||||
'delete_sp_lists' => true,
|
||||
'delete_others_sp_lists' => true,
|
||||
'delete_private_sp_lists' => true,
|
||||
'delete_published_sp_lists' => true,
|
||||
|
||||
'edit_sp_table' => true,
|
||||
'edit_sp_tables' => true,
|
||||
'edit_private_sp_tables' => true,
|
||||
'edit_published_sp_tables' => true,
|
||||
'read_sp_tables' => true,
|
||||
'read_private_sp_tables' => true,
|
||||
'publish_sp_tables' => true,
|
||||
'delete_sp_tables' => true,
|
||||
'delete_private_sp_tables' => true,
|
||||
'delete_published_sp_tables' => true,
|
||||
)
|
||||
);
|
||||
|
||||
@@ -33,16 +86,39 @@ function sportspress_activation_hook() {
|
||||
'read' => true,
|
||||
'edit_posts' => true,
|
||||
'delete_posts' => true,
|
||||
'read_sp_players' => true,
|
||||
'upload_files' => true,
|
||||
|
||||
'edit_sp_player' => true,
|
||||
'edit_sp_players' => true,
|
||||
'edit_others_sp_players' => true,
|
||||
'delete_sp_player' => true,
|
||||
'edit_private_sp_players' => true,
|
||||
'edit_published_sp_players' => true,
|
||||
'read_sp_players' => true,
|
||||
'read_private_sp_players' => true,
|
||||
'publish_sp_players' => true,
|
||||
'read_sp_staffs' => true,
|
||||
'delete_sp_players' => true,
|
||||
'delete_private_sp_players' => true,
|
||||
'delete_published_sp_players' => true,
|
||||
|
||||
'edit_sp_staff' => true,
|
||||
'edit_sp_staffs' => true,
|
||||
'edit_others_sp_staffs' => true,
|
||||
'delete_sp_staff' => true,
|
||||
'publish_sp_staffs' => true
|
||||
'edit_private_sp_staffs' => true,
|
||||
'edit_published_sp_staffs' => true,
|
||||
'read_sp_staffs' => true,
|
||||
'read_private_sp_staffs' => true,
|
||||
'publish_sp_staffs' => true,
|
||||
'delete_sp_staffs' => true,
|
||||
'delete_private_sp_staffs' => true,
|
||||
'delete_published_sp_staffs' => true,
|
||||
|
||||
'edit_sp_team' => true,
|
||||
'edit_sp_teams' => true,
|
||||
'read_sp_teams' => true,
|
||||
'delete_sp_teams' => true,
|
||||
|
||||
'edit_sp_list' => true,
|
||||
'edit_sp_lists' => true,
|
||||
'read_sp_lists' => true,
|
||||
'delete_sp_lists' => true,
|
||||
)
|
||||
);
|
||||
|
||||
@@ -55,9 +131,12 @@ function sportspress_activation_hook() {
|
||||
'read' => true,
|
||||
'edit_posts' => true,
|
||||
'delete_posts' => true,
|
||||
'read_sp_staffs' => true,
|
||||
'upload_files' => true,
|
||||
|
||||
'edit_sp_staff' => true,
|
||||
'edit_sp_staffs' => true,
|
||||
'delete_sp_staff' => true
|
||||
'read_sp_staffs' => true,
|
||||
'delete_sp_staffs' => true,
|
||||
)
|
||||
);
|
||||
|
||||
@@ -70,9 +149,12 @@ function sportspress_activation_hook() {
|
||||
'read' => true,
|
||||
'edit_posts' => true,
|
||||
'delete_posts' => true,
|
||||
'read_sp_players' => true,
|
||||
'upload_files' => true,
|
||||
|
||||
'edit_sp_player' => true,
|
||||
'edit_sp_players' => true,
|
||||
'delete_sp_player' => true
|
||||
'read_sp_players' => true,
|
||||
'delete_sp_players' => true,
|
||||
)
|
||||
);
|
||||
|
||||
@@ -82,7 +164,6 @@ function sportspress_activation_hook() {
|
||||
sportspress_column_post_init();
|
||||
sportspress_statistic_post_init();
|
||||
sportspress_event_post_init();
|
||||
sportspress_calendar_post_init();
|
||||
sportspress_team_post_init();
|
||||
sportspress_table_post_init();
|
||||
sportspress_player_post_init();
|
||||
|
||||
@@ -22,15 +22,6 @@ function sportspress_default_event_content( $content ) {
|
||||
}
|
||||
add_filter( 'the_content', 'sportspress_default_event_content' );
|
||||
|
||||
function sportspress_default_calendar_content( $content ) {
|
||||
if ( is_singular( 'sp_calendar' ) && in_the_loop() ):
|
||||
$calendar = sportspress_events_calendar();
|
||||
$content = $calendar . $content;
|
||||
endif;
|
||||
return $content;
|
||||
}
|
||||
add_filter( 'the_content', 'sportspress_default_calendar_content' );
|
||||
|
||||
function sportspress_default_team_content( $content ) {
|
||||
if ( is_singular( 'sp_team' ) && in_the_loop() ):
|
||||
$columns = sportspress_team_columns();
|
||||
|
||||
15
admin/hooks/widgets-init.php
Normal file
15
admin/hooks/widgets-init.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
* Register all of the default WordPress widgets on startup.
|
||||
*
|
||||
* Calls 'widgets_init' action after all of the WordPress widgets have been
|
||||
* registered.
|
||||
*
|
||||
* @since 2.2.0
|
||||
*/
|
||||
function sportspress_widgets_init() {
|
||||
|
||||
register_widget('SportsPress_Widget_Calendar');
|
||||
}
|
||||
|
||||
add_action('widgets_init', 'sportspress_widgets_init', 1);
|
||||
@@ -1,53 +0,0 @@
|
||||
<?php
|
||||
function sportspress_calendar_post_init() {
|
||||
$name = __( 'Calendars', 'sportspress' );
|
||||
$singular_name = __( 'Calendar', 'sportspress' );
|
||||
$lowercase_name = __( 'calendars', 'sportspress' );
|
||||
$labels = sportspress_get_post_labels( $name, $singular_name, $lowercase_name, true );
|
||||
$args = array(
|
||||
'label' => $name,
|
||||
'labels' => $labels,
|
||||
'public' => true,
|
||||
'has_archive' => false,
|
||||
'hierarchical' => false,
|
||||
'supports' => array( 'title', 'author', 'thumbnail', 'excerpt' ),
|
||||
'register_meta_box_cb' => 'sportspress_calendar_meta_init',
|
||||
'rewrite' => array( 'slug' => get_option( 'sp_calendar_slug', 'calendars' ) ),
|
||||
'show_in_menu' => 'edit.php?post_type=sp_event',
|
||||
'show_in_admin_bar' => true,
|
||||
'capability_type' => 'sp_calendar'
|
||||
);
|
||||
register_post_type( 'sp_calendar', $args );
|
||||
}
|
||||
add_action( 'init', 'sportspress_calendar_post_init' );
|
||||
|
||||
function sportspress_calendar_edit_columns() {
|
||||
$columns = array(
|
||||
'cb' => '<input type="checkbox" />',
|
||||
'title' => __( 'Title', 'sportspress' ),
|
||||
'sp_league' => __( 'Leagues', 'sportspress' ),
|
||||
'sp_season' => __( 'Seasons', 'sportspress' ),
|
||||
'sp_venue' => __( 'Venues', 'sportspress' ),
|
||||
'sp_events' => __( 'Events', 'sportspress' ),
|
||||
'sp_views' => __( 'Views', 'sportspress' ),
|
||||
);
|
||||
return $columns;
|
||||
}
|
||||
add_filter( 'manage_edit-sp_calendar_columns', 'sportspress_calendar_edit_columns' );
|
||||
|
||||
function sportspress_calendar_meta_init( $post ) {
|
||||
$seasons = get_the_terms( $post->ID, 'sp_season' );
|
||||
$venues = get_the_terms( $post->ID, 'sp_venue' );
|
||||
|
||||
add_meta_box( 'sp_eventsdiv', __( 'Events', 'sportspress' ), 'sportspress_calendar_events_meta', 'sp_calendar', 'normal', 'high' );
|
||||
}
|
||||
|
||||
function sportspress_calendar_events_meta( $post ) {
|
||||
$seasons = get_the_terms( $post->ID, 'sp_season' );
|
||||
|
||||
$data = sportspress_get_calendar_data( $post->ID );
|
||||
|
||||
sportspress_edit_calendar_table( $data );
|
||||
|
||||
sportspress_nonce();
|
||||
}
|
||||
@@ -1,15 +1,9 @@
|
||||
<?php
|
||||
if ( !function_exists( 'sportspress_events_calendar' ) ) {
|
||||
function sportspress_events_calendar( $id = null ) {
|
||||
|
||||
if ( ! $id )
|
||||
$id = get_the_ID();
|
||||
function sportspress_events_calendar( $initial = true ) {
|
||||
|
||||
global $wpdb, $m, $wp_locale, $posts;
|
||||
|
||||
$initial = false;
|
||||
$echo = 1;
|
||||
|
||||
// Quick check. If we have no posts at all, abort!
|
||||
if ( !$posts )
|
||||
return;
|
||||
@@ -60,8 +54,9 @@ if ( !function_exists( 'sportspress_events_calendar' ) ) {
|
||||
|
||||
/* translators: Calendar caption: 1: month name, 2: 4-digit year */
|
||||
$calendar_caption = _x('%1$s %2$s', 'calendar caption', 'sportspress');
|
||||
$calendar_output = '<h4 class="sp-table-caption">' . sprintf($calendar_caption, $wp_locale->get_month($thismonth), date('Y', $unixmonth)) . '</h4>
|
||||
$calendar_output = '
|
||||
<table id="wp-calendar">
|
||||
<caption>' . sprintf($calendar_caption, $wp_locale->get_month($thismonth), date('Y', $unixmonth)) . '</caption>
|
||||
<thead>
|
||||
<tr>';
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ function sportspress_league_term_init() {
|
||||
$name = __( 'Leagues', 'sportspress' );
|
||||
$singular_name = __( 'League', 'sportspress' );
|
||||
$lowercase_name = __( 'league', 'sportspress' );
|
||||
$object_type = array( 'sp_event', 'sp_calendar', 'sp_team', 'sp_table', 'sp_player', 'sp_list', 'sp_staff' );
|
||||
$object_type = array( 'sp_event', 'sp_team', 'sp_table', 'sp_player', 'sp_list', 'sp_staff' );
|
||||
$labels = sportspress_get_term_labels( $name, $singular_name, $lowercase_name );
|
||||
$args = array(
|
||||
'label' => $name,
|
||||
@@ -15,9 +15,11 @@ function sportspress_league_term_init() {
|
||||
'rewrite' => array( 'slug' => 'league' ),
|
||||
);
|
||||
register_taxonomy( 'sp_league', $object_type, $args );
|
||||
register_taxonomy_for_object_type( 'sp_league', 'sp_calendar' );
|
||||
register_taxonomy_for_object_type( 'sp_league', 'sp_event' );
|
||||
register_taxonomy_for_object_type( 'sp_league', 'sp_team' );
|
||||
register_taxonomy_for_object_type( 'sp_league', 'sp_table' );
|
||||
register_taxonomy_for_object_type( 'sp_league', 'sp_player' );
|
||||
register_taxonomy_for_object_type( 'sp_league', 'sp_list' );
|
||||
register_taxonomy_for_object_type( 'sp_league', 'sp_staff' );
|
||||
}
|
||||
add_action( 'init', 'sportspress_league_term_init' );
|
||||
|
||||
@@ -3,7 +3,7 @@ function sportspress_season_term_init() {
|
||||
$name = __( 'Seasons', 'sportspress' );
|
||||
$singular_name = __( 'Season', 'sportspress' );
|
||||
$lowercase_name = __( 'season', 'sportspress' );
|
||||
$object_type = array( 'sp_event', 'sp_calendar', 'sp_team', 'sp_table', 'sp_player', 'sp_list', 'sp_staff' );
|
||||
$object_type = array( 'sp_event', 'sp_team', 'sp_table', 'sp_player', 'sp_list', 'sp_staff' );
|
||||
$labels = sportspress_get_term_labels( $name, $singular_name, $lowercase_name );
|
||||
$args = array(
|
||||
'label' => $name,
|
||||
@@ -15,9 +15,11 @@ function sportspress_season_term_init() {
|
||||
'rewrite' => array( 'slug' => 'season' ),
|
||||
);
|
||||
register_taxonomy( 'sp_season', $object_type, $args );
|
||||
register_taxonomy_for_object_type( 'sp_season', 'sp_calendar' );
|
||||
register_taxonomy_for_object_type( 'sp_season', 'sp_event' );
|
||||
register_taxonomy_for_object_type( 'sp_season', 'sp_team' );
|
||||
register_taxonomy_for_object_type( 'sp_season', 'sp_table' );
|
||||
register_taxonomy_for_object_type( 'sp_season', 'sp_player' );
|
||||
register_taxonomy_for_object_type( 'sp_season', 'sp_list' );
|
||||
register_taxonomy_for_object_type( 'sp_season', 'sp_staff' );
|
||||
}
|
||||
add_action( 'init', 'sportspress_season_term_init' );
|
||||
|
||||
@@ -3,7 +3,7 @@ function sportspress_venue_term_init() {
|
||||
$name = __( 'Venues', 'sportspress' );
|
||||
$singular_name = __( 'Venue', 'sportspress' );
|
||||
$lowercase_name = __( 'venue', 'sportspress' );
|
||||
$object_type = array( 'sp_event', 'sp_calendar', 'attachment' );
|
||||
$object_type = array( 'sp_event', 'attachment' );
|
||||
$labels = sportspress_get_term_labels( $name, $singular_name, $lowercase_name );
|
||||
$args = array(
|
||||
'label' => $name,
|
||||
@@ -16,7 +16,6 @@ function sportspress_venue_term_init() {
|
||||
);
|
||||
register_taxonomy( 'sp_venue', $object_type, $args );
|
||||
register_taxonomy_for_object_type( 'sp_venue', 'sp_event' );
|
||||
register_taxonomy_for_object_type( 'sp_venue', 'sp_calendar' );
|
||||
register_taxonomy_for_object_type( 'sp_venue', 'attachment' );
|
||||
}
|
||||
add_action( 'init', 'sportspress_venue_term_init' );
|
||||
|
||||
36
admin/widgets/calendar.php
Normal file
36
admin/widgets/calendar.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
class SportsPress_Widget_Calendar extends WP_Widget {
|
||||
|
||||
function __construct() {
|
||||
$widget_ops = array('classname' => 'widget_calendar sp_widget_calendar', 'description' => __( 'A calendar of your site’s Events.') );
|
||||
parent::__construct('sp_calendar', __('Events Calendar'), $widget_ops);
|
||||
}
|
||||
|
||||
function widget( $args, $instance ) {
|
||||
extract($args);
|
||||
$title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
|
||||
echo $before_widget;
|
||||
if ( $title )
|
||||
echo $before_title . $title . $after_title;
|
||||
echo '<div id="calendar_wrap sp_calendar_wrap">';
|
||||
echo sportspress_events_calendar();
|
||||
echo '</div>';
|
||||
echo $after_widget;
|
||||
}
|
||||
|
||||
function update( $new_instance, $old_instance ) {
|
||||
$instance = $old_instance;
|
||||
$instance['title'] = strip_tags($new_instance['title']);
|
||||
|
||||
return $instance;
|
||||
}
|
||||
|
||||
function form( $instance ) {
|
||||
$instance = wp_parse_args( (array) $instance, array( 'title' => '' ) );
|
||||
$title = strip_tags($instance['title']);
|
||||
?>
|
||||
<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
|
||||
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></p>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
@@ -59,7 +59,6 @@ require_once dirname( __FILE__ ) . '/admin/post-types/metric.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/post-types/result.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/post-types/outcome.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/post-types/event.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/post-types/calendar.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/post-types/team.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/post-types/table.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/post-types/player.php';
|
||||
@@ -72,7 +71,11 @@ require_once dirname( __FILE__ ) . '/admin/terms/season.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/terms/venue.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/terms/position.php';
|
||||
|
||||
// Widgets
|
||||
require_once dirname( __FILE__ ) . '/admin/widgets/calendar.php';
|
||||
|
||||
// Typical request actions
|
||||
require_once dirname( __FILE__ ) . '/admin/hooks/widgets-init.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/hooks/plugins-loaded.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/hooks/after-setup-theme.php';
|
||||
require_once dirname( __FILE__ ) . '/admin/hooks/wp-enqueue-scripts.php';
|
||||
|
||||
Reference in New Issue
Block a user