PluginProbe
Tutor LMS – eLearning and online course solution / 1.3.5
Tutor LMS – eLearning and online course solution v1.3.5
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 All 191 releases
tutor / classes / Assets.php

Assets.php in Tutor LMS – eLearning and online course solution 1.3.5, at classes/Assets.php

211 lines 7.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace TUTOR;
3
4 if ( ! defined( 'ABSPATH' ) )
5 exit;
6
7 class Assets{
8
9 public function __construct() {
10 add_action('admin_enqueue_scripts', array($this, 'admin_scripts'));
11 add_action('wp_enqueue_scripts', array($this, 'frontend_scripts'));
12 add_action( 'admin_head', array($this, 'tutor_add_mce_button'));
13 add_filter( 'get_the_generator_html', array($this, 'tutor_generator_tag'), 10, 2 );
14 add_filter( 'get_the_generator_xhtml', array($this, 'tutor_generator_tag'), 10, 2 );
15 }
16
17 public function admin_scripts(){
18 wp_enqueue_style('tutor-select2', tutor()->url.'assets/packages/select2/select2.min.css', array(), tutor()->version);
19 wp_enqueue_style('tutor-admin', tutor()->url.'assets/css/tutor-admin.css', array(), tutor()->version);
20 wp_enqueue_style('tutor-icon', tutor()->url.'assets/icons/css/tutor-icon.css', array(), tutor()->version);
21
22 /**
23 * Scripts
24 */
25 wp_enqueue_media();
26
27 wp_enqueue_script( 'wp-color-picker' );
28 wp_enqueue_style( 'wp-color-picker' );
29
30 wp_enqueue_script('jquery-ui-slider');
31 wp_enqueue_script('tutor-select2', tutor()->url.'assets/packages/select2/select2.min.js', array('jquery'), tutor()->version, true );
32 wp_enqueue_script( 'tutor-main', tutor()->url . 'assets/js/tutor.js', array( 'jquery' ), tutor()->version, true );
33 wp_enqueue_script('tutor-admin', tutor()->url.'assets/js/tutor-admin.js', array('jquery', 'wp-color-picker'), tutor()->version, true );
34
35 $tutor_localize_data = array();
36 if ( ! empty($_GET['taxonomy']) && ( $_GET['taxonomy'] === 'course-category' || $_GET['taxonomy'] === 'course-tag') ){
37 $tutor_localize_data['open_tutor_admin_menu'] = true;
38 }
39
40 wp_localize_script('tutor-admin', 'tutor_data', $tutor_localize_data);
41 }
42
43 /**
44 * Load frontend scripts
45 */
46 public function frontend_scripts(){
47 global $post, $wp_query;
48
49 $is_script_debug = tutor_utils()->is_script_debug();
50 $suffix = $is_script_debug ? '' : '.min';
51
52 /**
53 * We checked wp_enqueue_editor() in condition because it conflicting with Divi Builder
54 * condition @since v.1.3.3
55 */
56
57 if (is_single()){
58 wp_enqueue_editor();
59 }
60
61 /**
62 * Initializing quicktags script to use in wp_editor();
63 */
64 wp_enqueue_script( 'quicktags');
65
66 $tutor_dashboard_page_id = (int) tutor_utils()->get_option('tutor_dashboard_page_id');
67 if ($tutor_dashboard_page_id === get_the_ID()){
68 wp_enqueue_media();
69 }
70
71 $options = tutor_utils()->get_option();
72 $localize_data = array(
73 'ajaxurl' => admin_url('admin-ajax.php'),
74 'nonce_key' => tutor()->nonce,
75 tutor()->nonce => wp_create_nonce( tutor()->nonce_action ),
76 'options' => $options,
77 'placeholder_img_src' => tutor_placeholder_img_src(),
78 );
79
80 if ( ! empty($post->post_type) && $post->post_type === 'tutor_quiz'){
81 $quiz_options = tutor_utils()->get_quiz_option($post->ID);
82 $localize_data['quiz_options'] = $quiz_options;
83 }
84
85 /**
86 * Enabling Sorting, draggable, droppable...
87 */
88 wp_enqueue_script('jquery-ui-sortable');
89 /**
90 * Tutor Icon
91 */
92 wp_enqueue_style('tutor-icon', tutor()->url.'assets/icons/css/tutor-icon.css', array(), tutor()->version);
93
94
95 //Plyr
96 wp_enqueue_style( 'tutor-plyr', tutor()->url . 'assets/packages/plyr/plyr.css', array(), tutor()->version );
97 wp_enqueue_script( 'tutor-plyr', tutor()->url . 'assets/packages/plyr/plyr.polyfilled.min.js', array( 'jquery' ), tutor()->version, true );
98
99 //Social Share
100 wp_enqueue_script( 'tutor-social-share', tutor()->url . 'assets/packages/SocialShare/SocialShare.min.js', array( 'jquery' ), tutor()->version, true );
101
102 //Including player assets if video exists
103 if (tutor_utils()->has_video_in_single()) {
104 $localize_data['post_id'] = get_the_ID();
105 $localize_data['best_watch_time'] = 0;
106
107 $best_watch_time = tutor_utils()->get_lesson_reading_info(get_the_ID(), 0, 'video_best_watched_time');
108 if ($best_watch_time > 0){
109 $localize_data['best_watch_time'] = $best_watch_time;
110 }
111 }
112
113 /**
114 * Chart Data
115 */
116 if ( ! empty($wp_query->query_vars['tutor_dashboard_page']) ) {
117 wp_enqueue_script('jquery-ui-slider');
118
119 wp_enqueue_style('tutor-select2', tutor()->url.'assets/packages/select2/select2.min.css', array(), tutor()->version);
120 wp_enqueue_script('tutor-select2', tutor()->url.'assets/packages/select2/select2.min.js', array('jquery'), tutor()->version, true );
121
122 if ($wp_query->query_vars['tutor_dashboard_page'] === 'earning'){
123 wp_enqueue_script( 'tutor-front-chart-js', tutor()->url . 'assets/js/Chart.bundle.min.js', array(), tutor()->version );
124 wp_enqueue_script( 'jquery-ui-datepicker' );
125 }
126 }
127 //End: chart data
128
129 $localize_data = apply_filters('tutor_localize_data', $localize_data);
130 if (tutor_utils()->get_option('load_tutor_css')){
131 wp_enqueue_style('tutor-frontend', tutor()->url."assets/css/tutor-front{$suffix}.css", array(), tutor()->version);
132 }
133 if (tutor_utils()->get_option('load_tutor_js')) {
134 wp_enqueue_script( 'tutor-main', tutor()->url . 'assets/js/tutor.js', array( 'jquery' ), tutor()->version, true );
135 wp_enqueue_script( 'tutor-frontend', tutor()->url . 'assets/js/tutor-front.js', array( 'jquery' ), tutor()->version, true );
136 wp_localize_script('tutor-frontend', '_tutorobject', $localize_data);
137 }
138
139 /**
140 * Default Color
141 */
142 $tutor_css = ":root{";
143 $tutor_primary_color = tutor_utils()->get_option('tutor_primary_color');
144 $tutor_primary_hover_color = tutor_utils()->get_option('tutor_primary_hover_color');
145 $tutor_text_color = tutor_utils()->get_option('tutor_text_color');
146 $tutor_light_color = tutor_utils()->get_option('tutor_light_color');
147
148 if ($tutor_primary_color){
149 $tutor_css .= " --tutor-primary-color: {$tutor_primary_color};";
150 }
151 if ($tutor_primary_hover_color){
152 $tutor_css .= " --tutor-primary-hover-color: {$tutor_primary_hover_color};";
153 }
154 if ($tutor_text_color){
155 $tutor_css .= " --tutor-text-color: {$tutor_text_color};";
156 }
157 if ($tutor_light_color){
158 $tutor_css .= " --tutor-light-color: {$tutor_light_color};";
159 }
160
161 $tutor_css .= "}";
162 wp_add_inline_style( 'tutor-frontend', $tutor_css );
163 //END: Default Color
164
165 }
166
167 /**
168 * Add Tinymce button for placing shortcode
169 */
170 function tutor_add_mce_button() {
171 // check user permissions
172 if ( !current_user_can( 'edit_posts' ) && !current_user_can( 'edit_pages' ) ) {
173 return;
174 }
175 // check if WYSIWYG is enabled
176 if ( 'true' == get_user_option( 'rich_editing' ) ) {
177 add_filter( 'mce_external_plugins', array($this, 'tutor_add_tinymce_js') );
178 add_filter( 'mce_buttons', array($this, 'tutor_register_mce_button') );
179 }
180 }
181 // Declare script for new button
182 function tutor_add_tinymce_js( $plugin_array ) {
183 $plugin_array['tutor_button'] = tutor()->url .'assets/js/mce-button.js';
184 return $plugin_array;
185 }
186 // Register new button in the editor
187 function tutor_register_mce_button( $buttons ) {
188 array_push( $buttons, 'tutor_button' );
189 return $buttons;
190 }
191
192 /**
193 * Output generator tag to aid debugging.
194 *
195 * @param string $gen Generator.
196 * @param string $type Type.
197 * @return string
198 */
199 function tutor_generator_tag( $gen, $type ) {
200 switch ( $type ) {
201 case 'html':
202 $gen .= "\n" . '<meta name="generator" content="TutorLMS ' . esc_attr( TUTOR_VERSION ) . '">';
203 break;
204 case 'xhtml':
205 $gen .= "\n" . '<meta name="generator" content="TutorLMS ' . esc_attr( TUTOR_VERSION ) . '" />';
206 break;
207 }
208 return $gen;
209 }
210
211 }