From 547f196de7faa3db8e385e4427e00280c1ed4cb4 Mon Sep 17 00:00:00 2001 From: Brian Miyaji Date: Tue, 10 Mar 2015 14:24:56 +1100 Subject: [PATCH] Add tutorials module --- assets/css/admin.css | 35 +++++++ includes/class-sp-modules.php | 11 +- modules/sportspress-tutorials.php | 163 ++++++++++++++++++++++++++++++ 3 files changed, 202 insertions(+), 7 deletions(-) create mode 100644 modules/sportspress-tutorials.php diff --git a/assets/css/admin.css b/assets/css/admin.css index 4156a2ba..3cd0d3d3 100644 --- a/assets/css/admin.css +++ b/assets/css/admin.css @@ -776,6 +776,41 @@ table.sp-status-table td mark.yes { width: auto; } +/* Tutorials */ +.sp-tutorials-list { + margin: -6px; + width: 100%; +} +.sp-tutorials-list li { + display: inline-block; + width: 342px; + max-width: 100%; + margin: 6px; +} +.sp-tutorials-list li strong { + background: #aaa; + display: inline-block; + color: #ffffff; + padding: 0 6px; + border-radius: 3px; + text-align: center; + font-size: 12px; + margin-right: 3px; +} +.sp-tutorials-list li:hover strong { + background: #00a69c; +} +.sp-tutorials-list li .sp-popup { + float: right; + color: #aaa; +} +.sp-tutorials-list li:hover .sp-popup { + color: #00a69c; +} +.sp-tutorials-list li iframe { + display: block; +} + /* Media Queries */ @media only screen and (max-width: 850px) { .sp-modules-wrapper { diff --git a/includes/class-sp-modules.php b/includes/class-sp-modules.php index 53aca1ce..2474bba7 100644 --- a/includes/class-sp-modules.php +++ b/includes/class-sp-modules.php @@ -39,7 +39,6 @@ class SP_Modules { 'tournaments' => array( 'label' => __( 'Tournaments', 'sportspress' ), 'class' => 'SportsPress_Tournaments', - 'tip' => __( 'Upgrade to Pro', 'sportspress' ), 'icon' => 'sp-icon-tournament', 'link' => 'http://tboy.co/tournaments', ), @@ -52,7 +51,6 @@ class SP_Modules { 'team_colors' => array( 'label' => __( 'Team Colors', 'sportspress' ), 'class' => 'SportsPress_Team_Colors', - 'tip' => __( 'Upgrade to Pro', 'sportspress' ), 'icon' => 'sp-icon-color', 'link' => 'http://tboy.co/colors', ), @@ -79,12 +77,15 @@ class SP_Modules { 'staff_directories' => array( 'label' => __( 'Directories', 'sportspress' ), 'class' => 'SportsPress_Staff_Directories', - 'tip' => __( 'Upgrade to Pro', 'sportspress' ), 'icon' => 'sp-icon-archive', 'link' => 'http://tboy.co/directories', ), ), 'other' => array( + 'tutorials' => array( + 'label' => __( 'Tutorials', 'sportspress' ), + 'icon' => 'dashicons dashicons-video-alt3', + ), 'twitter' => array( 'label' => __( 'Twitter', 'sportspress' ), 'class' => 'SportsPress_Twitter', @@ -96,28 +97,24 @@ class SP_Modules { 'branding' => array( 'label' => __( 'Branding', 'sportspress' ), 'class' => 'SportsPress_Branding', - 'tip' => __( 'Upgrade to Pro', 'sportspress' ), 'icon' => 'sp-icon-sportspress', 'link' => 'http://tboy.co/branding', ), 'league_menu' => array( 'label' => __( 'League Menu', 'sportspress' ), 'class' => 'SportsPress_League_Menu', - 'tip' => __( 'Upgrade to Pro', 'sportspress' ), 'icon' => 'sp-icon-menu', 'link' => 'http://tboy.co/menu', ), 'sponsors' => array( 'label' => __( 'Sponsors', 'sportspress' ), 'class' => 'SportsPress_Sponsors', - 'tip' => __( 'Upgrade to Pro', 'sportspress' ), 'icon' => 'sp-icon-megaphone', 'link' => 'http://tboy.co/sponsors', ), 'multisite' => array( 'label' => __( 'Multisite', 'sportspress' ), 'class' => 'SportsPress_Multisite', - 'tip' => __( 'Upgrade to Pro', 'sportspress' ), 'icon' => 'sp-icon-globe', 'link' => 'http://tboy.co/multisite', ), diff --git a/modules/sportspress-tutorials.php b/modules/sportspress-tutorials.php new file mode 100644 index 00000000..3621e77f --- /dev/null +++ b/modules/sportspress-tutorials.php @@ -0,0 +1,163 @@ +define_constants(); + + add_action( 'init', array( $this, 'get_video_ids' ) ); + add_action( 'admin_menu', array( $this, 'admin_menu' ), 8 ); + add_action( 'sportspress_screen_ids', array( $this, 'screen_ids' ) ); + add_filter( 'sportspress_next_steps', array( $this, 'next_steps' ) ); + } + + /** + * Define constants. + */ + private function define_constants() { + if ( !defined( 'SP_TUTORIALS_VERSION' ) ) + define( 'SP_TUTORIALS_VERSION', '1.7' ); + + if ( !defined( 'SP_TUTORIALS_URL' ) ) + define( 'SP_TUTORIALS_URL', plugin_dir_url( __FILE__ ) ); + + if ( !defined( 'SP_TUTORIALS_DIR' ) ) + define( 'SP_TUTORIALS_DIR', plugin_dir_path( __FILE__ ) ); + } + + /** + * Get video IDs. + */ + public function get_video_ids() { + $this->ids = apply_filters( 'sportspress_tutorial_videos', array( + __( 'Get Started', 'sportspress' ) => apply_filters( 'sportspress_get_started_tutorial_videos', array( + __( 'Installation', 'sportspress' ) => '121430679', + __( 'Competitions', 'sportspress' ) . ' & ' . __( 'Seasons', 'sportspress' ) => '121438196', + __( 'Venues', 'sportspress' ) => '121438615', + __( 'Positions', 'sportspress' ) . ' & ' . __( 'Jobs', 'sportspress' ) => '121438826', + ) ), + __( 'Teams', 'sportspress' ) => apply_filters( 'sportspress_team_tutorial_videos', array( + __( 'Add New Team', 'sportspress' ) => '121439873', + __( 'League Tables', 'sportspress' ) => '121592514', + ) ), + __( 'Players', 'sportspress' ) . ' & ' . __( 'Staff', 'sportspress' ) => array_merge( + apply_filters( 'sportspress_player_tutorial_videos', array( + __( 'Add New Player', 'sportspress' ) => '121440032', + ) ), + apply_filters( 'sportspress_staff_tutorial_videos', array( + __( 'Add New Staff', 'sportspress' ) => '121440185', + ) ) + ), + __( 'Events', 'sportspress' ) => apply_filters( 'sportspress_event_tutorial_videos', array( + __( 'Add New Event', 'sportspress' ) => '121524233', + __( 'Edit Event', 'sportspress' ) => '121590015', + __( 'Calendars', 'sportspress' ) => '121591259', + ) ), + ) ); + } + + /** + * Add menu item + */ + public function admin_menu() { + add_submenu_page( 'sportspress', __( 'Tutorials', 'sportspress' ), __( 'Tutorials', 'sportspress' ), 'manage_sportspress', 'sportspress-tutorials', array( $this, 'tutorials_page' ) ); + } + + /** + * Init the tutorials page + */ + public function tutorials_page() { + $i = 0; + ?> +
+

+ +

+
+ ids as $section => $ids ) { ?> +

+
    + $id ) { $i++; ?> +
  • + + + + + + + + + +
    + + + +
    +
    + +
    +
    +
  • + +
+ + +
+ array( + 'link' => admin_url( add_query_arg( array( 'page' => 'sportspress-tutorials' ), 'admin.php' ) ), + 'icon' => 'dashicons dashicons-video-alt3', + 'label' => __( 'Tutorials', 'sportspress' ), + ) ) + $steps; + return $steps; + } +} + +endif; + +if ( get_option( 'sportspress_load_tutorials_module', 'yes' ) == 'yes' ) { + new SportsPress_Tutorials(); +}