From 62879361ea673c1b9c201993910b494848d69c10 Mon Sep 17 00:00:00 2001 From: Brian Miyaji Date: Tue, 25 Mar 2014 17:06:06 +1100 Subject: [PATCH] Move admin functions --- admin/hooks/admin-print-styles.php | 4 +- admin/tools/importers.php | 58 ---------- includes/admin/class-sp-admin-importers.php | 102 ++++++++++++++++++ includes/admin/class-sp-admin.php | 97 +++++++++++++++++ .../importers/class-sp-event-importer.php | 0 .../importers/class-sp-player-importer.php | 0 .../importers/class-sp-team-importer.php | 0 .../admin/views/html-notice-install.php | 0 .../admin/views/html-notice-theme-support.php | 0 includes/sp-conditional-functions.php | 26 +++++ includes/sp-core-functions.php | 4 + includes/sp-template-functions.php | 14 ++- sportspress.php | 20 +++- 13 files changed, 260 insertions(+), 65 deletions(-) delete mode 100644 admin/tools/importers.php create mode 100644 includes/admin/class-sp-admin-importers.php create mode 100644 includes/admin/class-sp-admin.php rename admin/tools/event-importer.php => includes/admin/importers/class-sp-event-importer.php (100%) rename admin/tools/player-importer.php => includes/admin/importers/class-sp-player-importer.php (100%) rename admin/tools/team-importer.php => includes/admin/importers/class-sp-team-importer.php (100%) rename admin/includes/notice-install.php => includes/admin/views/html-notice-install.php (100%) rename admin/includes/notice-theme-support.php => includes/admin/views/html-notice-theme-support.php (100%) create mode 100644 includes/sp-conditional-functions.php diff --git a/admin/hooks/admin-print-styles.php b/admin/hooks/admin-print-styles.php index 5fdd646e..4e698831 100644 --- a/admin/hooks/admin-print-styles.php +++ b/admin/hooks/admin-print-styles.php @@ -34,7 +34,7 @@ add_action( 'admin_print_styles', 'sportspress_admin_notices_styles' ); * @return void */ function sportspress_admin_install_notices() { -// include( dirname( SP_PLUGIN_FILE ) . '/admin/includes/notice-install.php' ); +// include( dirname( SP_PLUGIN_FILE ) . '/includes/admin/views/notice-install.php' ); } /** @@ -44,5 +44,5 @@ function sportspress_admin_install_notices() { * @return void */ function sportspress_theme_check_notice() { -// include( dirname( SP_PLUGIN_FILE ) . '/admin/includes/notice-theme-support.php' ); +// include( dirname( SP_PLUGIN_FILE ) . '/includes/admin/views/notice-theme-support.php' ); } diff --git a/admin/tools/importers.php b/admin/tools/importers.php deleted file mode 100644 index c834db2c..00000000 --- a/admin/tools/importers.php +++ /dev/null @@ -1,58 +0,0 @@ -dispatch(); -} - -function sportspress_team_importer() { - require_once ABSPATH . 'wp-admin/includes/import.php'; - - if ( ! class_exists( 'WP_Importer' ) ) { - $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php'; - if ( file_exists( $class_wp_importer ) ) - require $class_wp_importer; - } - - // includes - require dirname( SP_PLUGIN_FILE ) . '/admin/tools/team-importer.php'; - - // Dispatch - $importer = new SP_Team_Importer(); - $importer->dispatch(); -} - -function sportspress_player_importer() { - require_once ABSPATH . 'wp-admin/includes/import.php'; - - if ( ! class_exists( 'WP_Importer' ) ) { - $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php'; - if ( file_exists( $class_wp_importer ) ) - require $class_wp_importer; - } - - // includes - require dirname( SP_PLUGIN_FILE ) . '/admin/tools/player-importer.php'; - - // Dispatch - $importer = new SP_Player_Importer(); - $importer->dispatch(); -} - -function sportspress_register_importers() { - register_importer( 'sportspress_event_csv', __( 'SportsPress Events (CSV)', 'sportspress' ), __( 'Import events from a csv file.', 'sportspress'), 'sportspress_event_importer' ); - register_importer( 'sportspress_team_csv', __( 'SportsPress Teams (CSV)', 'sportspress' ), __( 'Import teams from a csv file.', 'sportspress'), 'sportspress_team_importer' ); - register_importer( 'sportspress_player_csv', __( 'SportsPress Players (CSV)', 'sportspress' ), __( 'Import players from a csv file.', 'sportspress'), 'sportspress_player_importer' ); -} -add_action( 'admin_init', 'sportspress_register_importers' ); diff --git a/includes/admin/class-sp-admin-importers.php b/includes/admin/class-sp-admin-importers.php new file mode 100644 index 00000000..0a708576 --- /dev/null +++ b/includes/admin/class-sp-admin-importers.php @@ -0,0 +1,102 @@ +events from a csv file.', 'sportspress'), array( $this, 'events_importer' ) ); + register_importer( 'sportspress_team_csv', __( 'SportsPress Teams (CSV)', 'sportspress' ), __( 'Import teams from a csv file.', 'sportspress'), array( $this, 'teams_importer' ) ); + register_importer( 'sportspress_player_csv', __( 'SportsPress Players (CSV)', 'sportspress' ), __( 'Import players from a csv file.', 'sportspress'), array( $this, 'players_importer' ) ); + } + + /** + * Add menu item + */ + public function events_importer() { + // Load Importer API + require_once ABSPATH . 'wp-admin/includes/import.php'; + + if ( ! class_exists( 'WP_Importer' ) ) { + $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php'; + if ( file_exists( $class_wp_importer ) ) + require $class_wp_importer; + } + + // Includes + require 'importers/class-sp-event-importer.php'; + + // Dispatch + $importer = new SP_Event_Importer(); + $importer->dispatch(); + } + + /** + * Add menu item + */ + public function teams_importer() { + // Load Importer API + require_once ABSPATH . 'wp-admin/includes/import.php'; + + if ( ! class_exists( 'WP_Importer' ) ) { + $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php'; + if ( file_exists( $class_wp_importer ) ) + require $class_wp_importer; + } + + // Includes + require 'importers/class-sp-team-importer.php'; + + // Dispatch + $importer = new SP_Team_Importer(); + $importer->dispatch(); + } + + /** + * Add menu item + */ + public function players_importer() { + // Load Importer API + require_once ABSPATH . 'wp-admin/includes/import.php'; + + if ( ! class_exists( 'WP_Importer' ) ) { + $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php'; + if ( file_exists( $class_wp_importer ) ) + require $class_wp_importer; + } + + // Includes + require 'importers/class-sp-player-importer.php'; + + // Dispatch + $importer = new SP_Player_Importer(); + $importer->dispatch(); + } +} + +endif; + +return new SP_Admin_Importers(); \ No newline at end of file diff --git a/includes/admin/class-sp-admin.php b/includes/admin/class-sp-admin.php new file mode 100644 index 00000000..462f9345 --- /dev/null +++ b/includes/admin/class-sp-admin.php @@ -0,0 +1,97 @@ +id ) { + case 'dashboard' : + include( 'class-sp-admin-dashboard.php' ); + break; + case 'users' : + case 'user' : + case 'profile' : + case 'user-edit' : + include( 'class-sp-admin-profile.php' ); + break; + } + } + + /** + * Prevent any user who cannot 'edit_posts' (subscribers, customers etc) from accessing admin + */ + public function prevent_admin_access() { + $prevent_access = false; + + if ( 'yes' == get_option( 'sportspress_lock_down_admin' ) && ! is_ajax() && ! ( current_user_can( 'edit_posts' ) || current_user_can( 'manage_sportspress' ) ) && basename( $_SERVER["SCRIPT_FILENAME"] ) !== 'admin-post.php' ) { + $prevent_access = true; + } + + $prevent_access = apply_filters( 'sportspress_prevent_admin_access', $prevent_access ); + + if ( $prevent_access ) { + wp_safe_redirect( get_permalink( sp_get_page_id( 'myaccount' ) ) ); + exit; + } + } +} + +return new SP_Admin(); \ No newline at end of file diff --git a/admin/tools/event-importer.php b/includes/admin/importers/class-sp-event-importer.php similarity index 100% rename from admin/tools/event-importer.php rename to includes/admin/importers/class-sp-event-importer.php diff --git a/admin/tools/player-importer.php b/includes/admin/importers/class-sp-player-importer.php similarity index 100% rename from admin/tools/player-importer.php rename to includes/admin/importers/class-sp-player-importer.php diff --git a/admin/tools/team-importer.php b/includes/admin/importers/class-sp-team-importer.php similarity index 100% rename from admin/tools/team-importer.php rename to includes/admin/importers/class-sp-team-importer.php diff --git a/admin/includes/notice-install.php b/includes/admin/views/html-notice-install.php similarity index 100% rename from admin/includes/notice-install.php rename to includes/admin/views/html-notice-install.php diff --git a/admin/includes/notice-theme-support.php b/includes/admin/views/html-notice-theme-support.php similarity index 100% rename from admin/includes/notice-theme-support.php rename to includes/admin/views/html-notice-theme-support.php diff --git a/includes/sp-conditional-functions.php b/includes/sp-conditional-functions.php new file mode 100644 index 00000000..ca0930ab --- /dev/null +++ b/includes/sp-conditional-functions.php @@ -0,0 +1,26 @@ +ajax_includes(); + } + if ( ! is_admin() ) { $this->frontend_includes(); } @@ -211,9 +218,6 @@ final class SportsPress { // Terms include_once( 'admin/terms/venue.php' ); - // Tools - include_once( 'admin/tools/importers.php' ); - // Typical request actions include_once( 'admin/hooks/plugins-loaded.php' ); include_once( 'admin/hooks/wp-enqueue-scripts.php' ); @@ -251,6 +255,13 @@ final class SportsPress { include_once( 'admin/hooks/register-activation-hook.php' ); } + /** + * Include required ajax files. + */ + public function ajax_includes() { + include_once( 'includes/class-sp-ajax.php' ); // Ajax functions for admin and the front-end + } + /** * Include required frontend files. */ @@ -262,6 +273,7 @@ final class SportsPress { * Function used to Init SportsPress Template Functions - This makes them pluggable by plugins and themes. */ public function include_template_functions() { + include_once( 'includes/sp-template-functions.php' ); } /**