diff --git a/assets/css/slickmap.css b/assets/css/slickmap.css index 3cef13ec..ce6b60e8 100644 --- a/assets/css/slickmap.css +++ b/assets/css/slickmap.css @@ -1,3 +1,15 @@ +/*! +Adapted from SlickMap CSS by Matt Everson of Astuteo, LLC +http://astuteo.com/slickmap + +Version 1.1 +Copyright (c) 2009 Astuteo, LLC http://astuteo.com +*/ + +.sp-overview-wrap { + margin-right: 0; +} + .sp-sitemap { margin: 40px 0; float: left; @@ -25,10 +37,7 @@ table, .sp-sitemap caption, .sp-sitemap tbody, .sp-sitemap tfoot, .sp-sitemap th } /* ------------------------------------------------------------ - NUMBER OF COLUMNS: Adjust .sp-sitemap li to set the number - of columns required in your site map. The default is - 4 columns (25%). 5 columns would be 20%, 6 columns would - be 16.6%, etc. + Number of Columns ------------------------------------------------------------ */ .sp-sitemap li { @@ -92,6 +101,27 @@ table, .sp-sitemap caption, .sp-sitemap tbody, .sp-sitemap tfoot, .sp-sitemap th } .sp-sitemap li a.button { white-space: normal; + position: relative; + text-align: center; + padding: 10px 0; +} +.sp-sitemap li a.action { + white-space: normal; + position: relative; + text-align: center; + padding: 10px 28px; +} +.sp-sitemap li a.button span { + position: absolute; + left: 9px; + top: 9px; +} +.sp-sitemap li a.button span.dashicons-plus { + left: 12px; + top: 12px; +} +.sp-sitemap li a.button-primary span { + opacity: 0.55; } @@ -101,7 +131,7 @@ table, .sp-sitemap caption, .sp-sitemap tbody, .sp-sitemap tfoot, .sp-sitemap th /* -------- Top Level --------- */ -.sp-sitemap #sp-primary .sp-home { +.sp-sitemap .sp-primary .sp-home { display: block; float: none; background: #f1f1f1 url('../images/slickmap/L1-left.png') center bottom no-repeat; @@ -109,7 +139,7 @@ table, .sp-sitemap caption, .sp-sitemap tbody, .sp-sitemap tfoot, .sp-sitemap th z-index: 2; padding: 0 0 30px 0; } -.sp-sitemap #sp-primary .sp-breadcrumb { +.sp-sitemap .sp-primary .sp-breadcrumb { display: block; float: none; background: #f1f1f1 url('../images/slickmap/vertical-line.png') center bottom repeat-y; @@ -118,66 +148,63 @@ table, .sp-sitemap caption, .sp-sitemap tbody, .sp-sitemap tfoot, .sp-sitemap th padding: 0 0 30px 0; margin-bottom: 30px; } -.sp-sitemap #sp-primary li { +.sp-sitemap .sp-primary li { min-width: 149px; float: left; background: url('../images/slickmap/L1-center.png') center top no-repeat; padding: 30px 0; margin-top: -30px; } -.sp-sitemap #sp-primary li a.button { +.sp-sitemap .sp-primary li a.button { margin: 0 20px 0 0; - padding: 10px 0; display: block; font-size: 13px; font-weight: bold; - text-align: center; height: auto; line-height: normal; } -.sp-sitemap #sp-primary li:last-child { +.sp-sitemap .sp-primary li:last-child { background: url('../images/slickmap/L1-right.png') center top no-repeat; } /* -------- Second Level --------- */ -.sp-sitemap #sp-primary li li { +.sp-sitemap .sp-primary li li { width: 100%; clear: left; margin-top: 0; padding: 10px 0 0 0; background: url('../images/slickmap/vertical-line.png') center bottom repeat-y; } -.sp-sitemap #sp-primary li li:first-child { +.sp-sitemap .sp-primary li li:first-child { padding-top: 30px; } -.sp-sitemap #sp-primary li li:last-child { +.sp-sitemap .sp-primary li li:last-child { background: url('../images/slickmap/vertical-line.png') center bottom repeat-y; } /* -------- Third Level --------- */ -.sp-sitemap #sp-primary li li ul { +.sp-sitemap .sp-primary li li ul { margin: 10px 0 0 0; width: 100%; float: right; padding: 9px 0 10px 0; background: #f1f1f1 url('../images/slickmap/L3-ul-top.png') center top no-repeat; } -.sp-sitemap #sp-primary li li li { +.sp-sitemap .sp-primary li li li { background: url('../images/slickmap/L3-center.png') left center no-repeat; padding: 5px 0; } -.sp-sitemap #sp-primary li li li a { - padding: 5px 0; +.sp-sitemap .sp-primary li li li a { width: 80%; float: right; } -.sp-sitemap #sp-primary li li li:first-child { +.sp-sitemap .sp-primary li li li:first-child { padding: 15px 0 5px 0; background: url('../images/slickmap/L3-li-top.png') left center no-repeat; } -.sp-sitemap #sp-primary li li li:last-child { +.sp-sitemap .sp-primary li li li:last-child { background: url('../images/slickmap/L3-bottom.png') left center no-repeat; } @@ -186,40 +213,39 @@ table, .sp-sitemap caption, .sp-sitemap tbody, .sp-sitemap tfoot, .sp-sitemap th Utility Navigation ------------------------------------------------------------ */ -.sp-sitemap #sp-utility { +.sp-sitemap .sp-utility { float: right; max-width: 80%; margin-top: -30px; margin-right: 10px; } -.sp-sitemap #sp-utility li { +.sp-sitemap .sp-utility li { float: left; margin-bottom: 10px; width: auto; } -.sp-sitemap #sp-utility li a.button { +.sp-sitemap .sp-utility li a.button { margin: 0 10px 0 0; padding: 10px 16px; display: block; font-size: 13px; font-weight: bold; - text-align: center; height: auto; line-height: normal; position: relative; z-index: 10; } -.sp-sitemap #sp-utility li a:link:before, -.sp-sitemap #sp-utility li a:visited:before { +.sp-sitemap .sp-utility li a:link:before, +.sp-sitemap .sp-utility li a:visited:before { margin-bottom: 3px; } @media screen and ( max-width: 782px ) { - .sp-sitemap #sp-primary { + .sp-sitemap .sp-primary { clear: both; padding-top: 50px; } - .sp-sitemap #sp-utility { + .sp-sitemap .sp-utility { max-width: none; } } \ No newline at end of file diff --git a/includes/admin/class-sp-admin-assets.php b/includes/admin/class-sp-admin-assets.php index 738b92b4..ae5471c2 100755 --- a/includes/admin/class-sp-admin-assets.php +++ b/includes/admin/class-sp-admin-assets.php @@ -29,22 +29,21 @@ class SP_Admin_Assets { * Enqueue styles */ public function admin_styles() { - global $wp_scripts; - // Sitewide menu CSS wp_enqueue_style( 'sportspress-admin-menu-styles', SP()->plugin_url() . '/assets/css/menu.css', array(), SP_VERSION ); $screen = get_current_screen(); if ( in_array( $screen->id, sp_get_screen_ids() ) ) { - // Admin styles for SP pages only wp_enqueue_style( 'jquery-chosen', SP()->plugin_url() . '/assets/css/chosen.css', array(), '1.1.0' ); wp_enqueue_style( 'wp-color-picker' ); wp_enqueue_style( 'sportspress-admin', SP()->plugin_url() . '/assets/css/admin.css', array(), SP_VERSION ); + } elseif ( strpos( $screen->id, 'sp-config' ) !== false || strpos( $screen->id, 'sp-status' ) !== false ) { + wp_enqueue_style( 'sportspress-admin', SP()->plugin_url() . '/assets/css/admin.css', array(), SP_VERSION ); } - if ( in_array( $screen->id, array( 'sportspress_page_sp-overview' ) ) ) { + if ( strpos( $screen->id, 'sp-overview' ) !== false ) { wp_enqueue_style( 'sportspress-admin-slickmap', SP()->plugin_url() . '/assets/css/slickmap.css', array(), '1.1.0' ); } @@ -96,7 +95,7 @@ class SP_Admin_Assets { wp_register_script( 'sportspress-admin-widgets', SP()->plugin_url() . '/assets/js/admin/widgets.js', array( 'jquery' ), SP_VERSION, true ); // SportsPress admin pages - if ( in_array( $screen->id, sp_get_screen_ids() ) ) { + if ( in_array( $screen->id, sp_get_screen_ids() ) || strpos( $screen->id, 'sp-config' )) { wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'chosen' ); wp_enqueue_script( 'jquery-ui-core' ); diff --git a/includes/admin/class-sp-admin-overview.php b/includes/admin/class-sp-admin-overview.php deleted file mode 100644 index 2caf2306..00000000 --- a/includes/admin/class-sp-admin-overview.php +++ /dev/null @@ -1,578 +0,0 @@ -mode == 'team' ): - $settings[] = include( 'settings/class-sp-settings-players.php' ); - $settings[] = include( 'settings/class-sp-settings-staff.php' ); - endif; - - $settings = apply_filters( 'sportspress_get_settings_pages', $settings ); - - $settings[] = include( 'settings/class-sp-settings-text.php' ); - $settings[] = include( 'settings/class-sp-settings-config.php' ); - - self::$settings = apply_filters( 'sportspress_get_settings_config_pages', $settings ); - } - return self::$settings; - } - - /** - * Save the settings - */ - public static function save() { - global $current_section, $current_tab; - - if ( empty( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'sportspress-settings' ) ) - die( __( 'Action failed. Please refresh the page and retry.', 'sportspress' ) ); - - // Trigger actions - do_action( 'sportspress_settings_save_' . $current_tab ); - do_action( 'sportspress_update_options_' . $current_tab ); - do_action( 'sportspress_update_options' ); - - self::add_message( __( 'Your settings have been saved.', 'sportspress' ) ); - - do_action( 'sportspress_settings_saved' ); - } - - /** - * Add a message - * @param string $text - */ - public static function add_message( $text ) { - self::$messages[] = $text; - } - - /** - * Add an error - * @param string $text - */ - public static function add_error( $text ) { - self::$errors[] = $text; - } - - /** - * Output messages + errors - */ - public static function show_messages() { - if ( sizeof( self::$errors ) > 0 ) { - foreach ( self::$errors as $error ) - echo '

' . esc_html( $error ) . '

'; - } elseif ( sizeof( self::$messages ) > 0 ) { - foreach ( self::$messages as $message ) - echo '

' . esc_html( $message ) . '

'; - } - } - - /** - * Overview page. - * - * Handles the display of the main sportspress overview page in admin. - * - * @access public - * @return void - */ - public static function output() { - include 'views/html-admin-overview.php'; - } - - /** - * Get a setting from the settings API. - * - * @param mixed $option - * @return string - */ - public static function get_option( $option_name, $default = '' ) { - // Array value - if ( strstr( $option_name, '[' ) ) { - - parse_str( $option_name, $option_array ); - - // Option name is first key - $option_name = current( array_keys( $option_array ) ); - - // Get value - $option_values = get_option( $option_name, '' ); - - $key = key( $option_array[ $option_name ] ); - - if ( isset( $option_values[ $key ] ) ) - $option_value = $option_values[ $key ]; - else - $option_value = null; - - // Single value - } else { - $option_value = get_option( $option_name, null ); - } - - if ( is_array( $option_value ) ) - $option_value = array_map( 'stripslashes', $option_value ); - elseif ( ! is_null( $option_value ) ) - $option_value = stripslashes( $option_value ); - - return $option_value === null ? $default : $option_value; - } - - /** - * Output admin fields. - * - * Loops though the sportspress options array and outputs each field. - * - * @access public - * @param array $options Opens array to output - */ - public static function output_fields( $options ) { - foreach ( $options as $value ) { - if ( ! isset( $value['type'] ) ) continue; - if ( ! isset( $value['id'] ) ) $value['id'] = ''; - if ( ! isset( $value['title'] ) ) $value['title'] = isset( $value['name'] ) ? $value['name'] : ''; - if ( ! isset( $value['class'] ) ) $value['class'] = ''; - if ( ! isset( $value['css'] ) ) $value['css'] = ''; - if ( ! isset( $value['default'] ) ) $value['default'] = ''; - if ( ! isset( $value['desc'] ) ) $value['desc'] = ''; - if ( ! isset( $value['desc_tip'] ) ) $value['desc_tip'] = false; - if ( ! isset( $value['placeholder'] ) ) $value['placeholder'] = ''; - - // Custom attribute handling - $custom_attributes = array(); - - if ( ! empty( $value['custom_attributes'] ) && is_array( $value['custom_attributes'] ) ) - foreach ( $value['custom_attributes'] as $attribute => $attribute_value ) - $custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"'; - - // Description handling - if ( $value['desc_tip'] === true ) { - $description = ''; - $tip = $value['desc']; - } elseif ( ! empty( $value['desc_tip'] ) ) { - $description = $value['desc']; - $tip = $value['desc_tip']; - } elseif ( ! empty( $value['desc'] ) ) { - $description = $value['desc']; - $tip = ''; - } else { - $description = $tip = ''; - } - - if ( $description && in_array( $value['type'], array( 'textarea', 'radio' ) ) ) { - $description = '

' . wp_kses_post( $description ) . '

'; - } elseif ( $description && in_array( $value['type'], array( 'checkbox' ) ) ) { - $description = wp_kses_post( $description ); - } elseif ( $description ) { - $description = '' . wp_kses_post( $description ) . ''; - } - - if ( $tip && in_array( $value['type'], array( 'checkbox' ) ) ) { - - $tip = '

' . $tip . '

'; - - } elseif ( $tip ) { - - $tip = ''; - - } - - // Switch based on type - switch( $value['type'] ) { - - // Section Titles - case 'title': - if ( ! empty( $value['title'] ) ) { - echo '

' . esc_html( $value['title'] ) . '

'; - } - if ( ! empty( $value['desc'] ) ) { - echo wpautop( wptexturize( wp_kses_post( $value['desc'] ) ) ); - } - echo ''. "\n\n"; - if ( ! empty( $value['id'] ) ) { - do_action( 'sportspress_settings_' . sanitize_title( $value['id'] ) ); - } - break; - - // Section Ends - case 'sectionend': - if ( ! empty( $value['id'] ) ) { - do_action( 'sportspress_settings_' . sanitize_title( $value['id'] ) . '_end' ); - } - echo '
'; - if ( ! empty( $value['id'] ) ) { - do_action( 'sportspress_settings_' . sanitize_title( $value['id'] ) . '_after' ); - } - break; - - // Standard text inputs and subtypes like 'number' - case 'text': - case 'email': - case 'number': - case 'color' : - case 'password' : - - $type = $value['type']; - $class = ''; - $option_value = self::get_option( $value['id'], $value['default'] ); - - if ( $value['type'] == 'color' ) { - $type = 'text'; - $value['class'] .= 'colorpick'; - $description .= ''; - } - - ?> - - - - - - - /> - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - - - - -
- -
- - - - - -
- - - -
- $value ) - update_option( $name, $value ); - - return true; - } -} - -endif; diff --git a/includes/admin/sp-admin-functions.php b/includes/admin/sp-admin-functions.php index de0caf34..9203a8dc 100755 --- a/includes/admin/sp-admin-functions.php +++ b/includes/admin/sp-admin-functions.php @@ -20,8 +20,6 @@ function sp_get_screen_ids() { 'dashboard', 'dashboard_page_sp-about', 'toplevel_page_sportspress', - 'sportspress_page_sp-overview', - 'sportspress_page_sp-status', 'edit-sp_result', 'sp_result', 'edit-sp_outcome', diff --git a/includes/admin/views/html-admin-overview.php b/includes/admin/views/html-admin-overview.php index fd2e6d78..e4422950 100644 --- a/includes/admin/views/html-admin-overview.php +++ b/includes/admin/views/html-admin-overview.php @@ -1,23 +1,23 @@ -
+

- - - + -
    - $children ): $object = get_post_type_object( $post_type ); ?> + + + -
      +
      • - + object_type, $taxonomy ); ?>
      • labels->name; ?> false, 'parent' => 0, 'orderby' => 'slug' ) ); ?>
          @@ -25,9 +25,9 @@ false, 'parent' => $term->term_id, 'orderby' => 'slug' ) ); ?>
        • - object_type ) <= 1 ): ?> - object_type ) ): foreach ( $object->object_type as $post_type ): ?> - name; ?> + + + name; ?> name; ?> @@ -37,12 +37,12 @@
          • - object_type ) <= 1 ): ?> - object_type ) ): foreach ( $object->object_type as $post_type ): ?> - name; ?> + + + name; ?> - name; ?> + name; ?>
          • @@ -58,11 +58,13 @@
          - + + + object_type, $taxonomy ); ?> -
            + @@ -70,16 +72,16 @@ -
              +
              • labels->name; ?>
              • name; ?>
                • - object_type ) ): ?> - object_type as $post_type ): if ( array_key_exists( $post_type, $hierarchy ) ): $post_object = get_post_type_object( $post_type ); ?> -
                • labels->name; ?>
                • - + + +
                • labels->name; ?>
                • +
              • @@ -91,13 +93,13 @@
                  -
                • name; ?> +
                • name; ?> - object_type ) ): // Has associated post types ?> +
                    - object_type as $post_type ): if ( array_key_exists( $post_type, $hierarchy ) ): $post_object = get_post_type_object( $post_type ); ?> -
                  • labels->name; ?>
                  • - + +
                  • labels->name; ?>
                  • +
                  @@ -105,12 +107,12 @@
                - object_type ) ): // Has associated post types ?> +
                  - object_type as $post_type ): if ( array_key_exists( $post_type, $hierarchy ) ): $post_object = get_post_type_object( $post_type ); ?> -
                • labels->name; ?>
                • - + +
                • labels->name; ?>
                • +
                @@ -121,16 +123,7 @@ - object_type as $post_type ): - if ( array_key_exists( $post_type, $hierarchy ) ): - $post_types[] = $post_type; - endif; - endforeach; - ?> - -
                  +
                  • labels->name; ?>
                  • parent ): $parent = get_term( $term->parent, $taxonomy ); ?> @@ -140,7 +133,7 @@ object_type ) ): ?> @@ -151,45 +144,49 @@ false, 'parent' => 0, 'orderby' => 'slug' ) ); ?> -
                      - +
                      • -
                      • labels->name; ?>
                      • +
                      • labels->name; ?>
                      • -
                      • name; ?> +
                      • + + name; ?> + + name; ?> + false, 'parent' => $term->term_id, 'orderby' => 'slug' ) ); ?>
                          - object_type ) <= 1 ): ?> + - object_type ) ): ?> - object_type as $post_type ): if ( array_key_exists( $post_type, $hierarchy ) ): $post_object = get_post_type_object( $post_type ); ?> -
                        • name; ?>
                        • - + + +
                        • name; ?>
                        • + - object_type ) ): ?> - object_type as $post_type ): if ( array_key_exists( $post_type, $hierarchy ) ): $post_object = get_post_type_object( $post_type ); ?> -
                        • labels->name; ?>
                        • - + + +
                        • labels->name; ?>
                        • +
                        • name; ?> - object_type ) ): ?> +
                            - object_type as $post_type ): if ( array_key_exists( $post_type, $hierarchy ) ): $post_object = get_post_type_object( $post_type ); ?> -
                          • labels->name; ?>
                          • - + +
                          • labels->name; ?>
                          • +
                        • @@ -199,10 +196,10 @@ - object_type ) ): ?> - object_type as $post_type ): if ( array_key_exists( $post_type, $hierarchy ) ): $post_object = get_post_type_object( $post_type ); ?> -
                        • labels->name; ?>
                        • - + 1 ): ?> + +
                        • labels->name; ?>
                        • + @@ -211,7 +208,7 @@ -
                        • labels->add_new_item; ?>
                        • +
                        • labels->add_new_item; ?>
                        @@ -223,22 +220,22 @@ $taxonomies = get_object_taxonomies( $post_type, 'objects' ); ?> -
                          + -
                            +
                            • labels->name; ?>
                            • -
                            • labels->name; ?> +
                            • labels->name; ?> -1, 'post_type' => $secondary_post_type ) ); ?> @@ -250,14 +247,14 @@
                                -
                              • name; ?> +
                              • name; ?> false, 'parent' => $term->term_id, 'orderby' => 'slug' ) ); ?> @@ -274,12 +271,12 @@ -1, 'post_type' => $post_type ) ); ?> -
                                  +
                                  • labels->name; ?>
                                  • -
                                  • post_title; ?>
                                  • +
                                  • post_title; ?>
                                  • @@ -294,26 +291,26 @@ false, 'parent' => 0, 'orderby' => 'slug' ) ); ?> -
                                      +
                                      • labels->name; ?>
                                      • labels->name; ?>
                                      • -
                                      • name; ?> +
                                      • name; ?> false, 'parent' => $term->term_id, 'orderby' => 'slug' ) ); ?>
                                          -
                                        • name; ?> +
                                        • name; ?> false, 'parent' => $child->term_id, 'orderby' => 'slug' ) ); ?> diff --git a/includes/sp-conditional-functions.php b/includes/sp-conditional-functions.php index dc3e6414..02bcc6e9 100755 --- a/includes/sp-conditional-functions.php +++ b/includes/sp-conditional-functions.php @@ -35,22 +35,14 @@ if ( ! function_exists( 'sp_post_types' ) ) { } /** - * sp_post_type_hierarchy - Returns array of SP primary post types + * sp_primary_post_types - Returns array of SP primary post types * * @access public * @return array */ -if ( ! function_exists( 'sp_post_type_hierarchy' ) ) { - function sp_post_type_hierarchy() { - return apply_filters( - 'sportspress_post_type_hierarchy', - array( - 'sp_event' => array( 'sp_calendar' ), - 'sp_team' => array( 'sp_table' ), - 'sp_player' => array( 'sp_list' ), - 'sp_staff' => array() - ) - ); +if ( ! function_exists( 'sp_primary_post_types' ) ) { + function sp_primary_post_types() { + return apply_filters( 'sportspress_primary_post_types', array( 'sp_event', 'sp_team', 'sp_player', 'sp_staff' ) ); } } @@ -62,7 +54,7 @@ if ( ! function_exists( 'sp_post_type_hierarchy' ) ) { */ if ( ! function_exists( 'sp_secondary_post_types' ) ) { function sp_secondary_post_types() { - return apply_filters( 'sportspress_secondary_post_types', array( 'sp_calendar', 'sp_table', 'sp_list' ) ); + return apply_filters( 'sportspress_secondary_post_types', array_diff( sp_post_types(), sp_primary_post_types() ) ); } } @@ -90,6 +82,26 @@ if ( ! function_exists( 'sp_taxonomies' ) ) { } } +/** + * sp_post_type_hierarchy - Returns array of SP primary post types + * + * @access public + * @return array + */ +if ( ! function_exists( 'sp_post_type_hierarchy' ) ) { + function sp_post_type_hierarchy() { + return apply_filters( + 'sportspress_post_type_hierarchy', + array( + 'sp_event' => array( 'sp_calendar' ), + 'sp_team' => array( 'sp_table' ), + 'sp_player' => array( 'sp_list' ), + 'sp_staff' => array() + ) + ); + } +} + /** * is_sp_post_type - Returns true if post is SportsPress post type *