From b3270a06b165344717dd66601a1735c0593444a3 Mon Sep 17 00:00:00 2001 From: Brian Miyaji Date: Wed, 29 Jan 2014 18:27:05 +1100 Subject: [PATCH] Move calendar into its own widget --- admin/hooks/post-updated-messages.php | 2 +- admin/hooks/register-activation-hook.php | 125 +++++++++++++++++++---- admin/hooks/the-content.php | 9 -- admin/hooks/widgets-init.php | 15 +++ admin/post-types/calendar.php | 53 ---------- admin/templates/events-calendar.php | 11 +- admin/terms/league.php | 6 +- admin/terms/season.php | 6 +- admin/terms/venue.php | 3 +- admin/widgets/calendar.php | 36 +++++++ sportspress.php | 5 +- 11 files changed, 171 insertions(+), 100 deletions(-) create mode 100644 admin/hooks/widgets-init.php delete mode 100644 admin/post-types/calendar.php create mode 100644 admin/widgets/calendar.php diff --git a/admin/hooks/post-updated-messages.php b/admin/hooks/post-updated-messages.php index 90f9e13c..f03bbf98 100644 --- a/admin/hooks/post-updated-messages.php +++ b/admin/hooks/post-updated-messages.php @@ -9,7 +9,7 @@ function sportspress_post_updated_messages( $messages ) { ' ' . sprintf( __( 'Edit %s', 'sportspress' ), $obj->labels->name ) . ''; - 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 ) . diff --git a/admin/hooks/register-activation-hook.php b/admin/hooks/register-activation-hook.php index 1c085ded..af0c67a4 100644 --- a/admin/hooks/register-activation-hook.php +++ b/admin/hooks/register-activation-hook.php @@ -1,26 +1,79 @@ 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(); diff --git a/admin/hooks/the-content.php b/admin/hooks/the-content.php index d09d98be..ee4adbcb 100644 --- a/admin/hooks/the-content.php +++ b/admin/hooks/the-content.php @@ -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(); diff --git a/admin/hooks/widgets-init.php b/admin/hooks/widgets-init.php new file mode 100644 index 00000000..d864d2e2 --- /dev/null +++ b/admin/hooks/widgets-init.php @@ -0,0 +1,15 @@ + $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' => '', - '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(); -} diff --git a/admin/templates/events-calendar.php b/admin/templates/events-calendar.php index 384590b1..a54e30b1 100644 --- a/admin/templates/events-calendar.php +++ b/admin/templates/events-calendar.php @@ -1,15 +1,9 @@ ' . sprintf($calendar_caption, $wp_locale->get_month($thismonth), date('Y', $unixmonth)) . ' + $calendar_output = ' + '; diff --git a/admin/terms/league.php b/admin/terms/league.php index ab9518b1..3271d5b5 100644 --- a/admin/terms/league.php +++ b/admin/terms/league.php @@ -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' ); diff --git a/admin/terms/season.php b/admin/terms/season.php index 39076d6c..5895d54e 100644 --- a/admin/terms/season.php +++ b/admin/terms/season.php @@ -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' ); diff --git a/admin/terms/venue.php b/admin/terms/venue.php index 51ddd81f..3b2adec8 100644 --- a/admin/terms/venue.php +++ b/admin/terms/venue.php @@ -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' ); diff --git a/admin/widgets/calendar.php b/admin/widgets/calendar.php new file mode 100644 index 00000000..035358ac --- /dev/null +++ b/admin/widgets/calendar.php @@ -0,0 +1,36 @@ + '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 '
'; + echo sportspress_events_calendar(); + echo '
'; + 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']); +?> +

+

+
' . sprintf($calendar_caption, $wp_locale->get_month($thismonth), date('Y', $unixmonth)) . '