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' );
}
/**