PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.2.3
Tutor LMS – eLearning and online course solution v2.2.3
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 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / templates / single / lesson / content.php
tutor / templates / single / lesson Last commit date
comment.php 3 years ago comments-loop.php 3 years ago complete_form.php 3 years ago content.php 3 years ago lesson_sidebar.php 3 years ago required-enroll.php 3 years ago sidebar_question_and_answer.php 3 years ago
content.php
193 lines
1 <?php
2 /**
3 * Display the content
4 *
5 * @package Tutor\Templates
6 * @subpackage Single\Lesson
7 * @author Themeum <support@themeum.com>
8 * @link https://themeum.com
9 * @since 1.0.0
10 */
11
12 use TUTOR\User;
13
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit;
16 }
17
18 global $post;
19 global $previous_id;
20 global $next_id;
21
22 // Get the ID of this content and the corresponding course.
23 $course_content_id = get_the_ID();
24 $course_id = tutor_utils()->get_course_id_by_subcontent( $course_content_id );
25
26 $_is_preview = get_post_meta( $course_content_id, '_is_preview', true );
27 $content_id = tutor_utils()->get_post_id( $course_content_id );
28 $contents = tutor_utils()->get_course_prev_next_contents_by_id( $content_id );
29 $previous_id = $contents->previous_id;
30 $next_id = $contents->next_id;
31
32 $prev_is_preview = get_post_meta( $previous_id, '_is_preview', true );
33 $next_is_preview = get_post_meta( $next_id, '_is_preview', true );
34 $is_enrolled = tutor_utils()->is_enrolled( $course_id );
35 $is_public = get_post_meta( $course_id, '_tutor_is_public_course', true );
36
37 $prev_is_locked = ! ( $is_enrolled || $prev_is_preview || $is_public );
38 $next_is_locked = ! ( $is_enrolled || $next_is_preview || $is_public );
39
40 $json_data = array();
41 $json_data['post_id'] = get_the_ID();
42 $json_data['best_watch_time'] = 0;
43 $json_data['autoload_next_course_content'] = (bool) get_tutor_option( 'autoload_next_course_content' );
44
45 $best_watch_time = tutor_utils()->get_lesson_reading_info( get_the_ID(), 0, 'video_best_watched_time' );
46 if ( $best_watch_time > 0 ) {
47 $json_data['best_watch_time'] = $best_watch_time;
48 }
49
50 $is_comment_enabled = tutor_utils()->get_option( 'enable_comment_for_lesson' ) && comments_open();
51
52 ?>
53
54 <?php do_action( 'tutor_lesson/single/before/content' ); ?>
55
56 <?php
57 tutor_load_template(
58 'single.common.header',
59 array(
60 'course_id' => $course_id,
61 'mark_as_complete' => true,
62 )
63 );
64 ?>
65
66 <div class="tutor-course-topic-single-body">
67 <!-- Load Lesson Video -->
68 <?php
69 $video_info = tutor_utils()->get_video_info();
70 $source_key = is_object( $video_info ) && 'html5' !== $video_info->source ? 'source_' . $video_info->source : null;
71 $has_source = ( is_object( $video_info ) && $video_info->source_video_id ) || ( isset( $source_key ) ? $video_info->$source_key : null );
72 ?>
73 <?php if ( $has_source ) : ?>
74 <input type="hidden" id="tutor_video_tracking_information" value="<?php echo esc_attr( json_encode( $json_data ) ); ?>">
75 <?php endif; ?>
76 <div class="tutor-video-player-wrapper">
77 <?php echo apply_filters( 'tutor_single_lesson_video', tutor_lesson_video( false ), $video_info, $source_key ); //phpcs:ignore ?>
78 </div>
79
80 <?php
81 $referer_url = wp_get_referer();
82 $referer_comment_id = explode( '#', filter_input( INPUT_SERVER, 'REQUEST_URI' ) );
83 $url_components = parse_url( $referer_url );
84 $page_tab = \TUTOR\Input::get( 'page_tab', 'overview' );
85
86 isset( $url_components['query'] ) ? parse_str( $url_components['query'], $output ) : null;
87
88 /**
89 * If lesson has no content, lesson tab will be hidden.
90 * To enable elementor and SCORM, only admin can see lesson tab.
91 *
92 * @since 2.2.2
93 */
94 $has_lesson_content = apply_filters(
95 'tutor_has_lesson_content',
96 User::is_admin() || ! in_array( trim( get_the_content() ), array( null, '', '&nbsp;' ), true ),
97 $course_content_id
98 );
99
100 $has_lesson_attachment = count( tutor_utils()->get_attachments() ) > 0;
101 $has_lesson_comment = (int) get_comments_number( $course_content_id );
102 ?>
103
104 <style>
105 .tutor-actual-comment.viewing {
106 box-shadow: 0 0 10px #cdcfd5;
107 animation: blinkComment 1s infinite;
108 }
109 @keyframes blinkComment { 50% { box-shadow:0 0 0px #ffffff; } }
110 </style>
111
112 <div class="tutor-course-spotlight-wrapper">
113 <ul class="tutor-nav tutor-course-spotlight-nav tutor-justify-center">
114 <?php if ( $has_lesson_content && ( $has_lesson_attachment || $is_comment_enabled ) ) : ?>
115 <li class="tutor-nav-item">
116 <a href="#" class="tutor-nav-link<?php echo 'overview' == $page_tab ? ' is-active' : ''; ?>" data-tutor-nav-target="tutor-course-spotlight-overview" data-tutor-query-variable="page_tab" data-tutor-query-value="overview">
117 <span class="tutor-icon-document-text tutor-mr-8" area-hidden="true"></span>
118 <span><?php esc_html_e( 'Overview', 'tutor' ); ?></span>
119 </a>
120 </li>
121 <?php endif; ?>
122
123 <?php if ( $has_lesson_attachment && ( $has_lesson_content || $is_comment_enabled ) ) : ?>
124 <li class="tutor-nav-item">
125 <a href="#" class="tutor-nav-link<?php echo ( 'files' == $page_tab || false === $has_lesson_content ) ? ' is-active' : ''; ?>" data-tutor-nav-target="tutor-course-spotlight-files" data-tutor-query-variable="page_tab" data-tutor-query-value="files">
126 <span class="tutor-icon-paperclip tutor-mr-8" area-hidden="true"></span>
127 <span><?php esc_html_e( 'Exercise Files', 'tutor' ); ?></span>
128 </a>
129 </li>
130 <?php endif; ?>
131
132 <?php if ( $is_comment_enabled && ( $has_lesson_content || $has_lesson_attachment ) ) : ?>
133 <li class="tutor-nav-item">
134 <a href="#"
135 class="tutor-nav-link<?php echo ( 'comments' == $page_tab || ( false === $has_lesson_content && false === $has_lesson_attachment ) ) ? ' is-active' : ''; ?>"
136 data-tutor-nav-target="tutor-course-spotlight-comments" data-tutor-query-variable="page_tab"
137 data-tutor-query-value="comments">
138
139 <span class="tutor-icon-comment tutor-mr-8" area-hidden="true"></span>
140 <span><?php esc_html_e( 'Comments', 'tutor' ); ?></span>
141 </a>
142 </li>
143 <?php endif; ?>
144 </ul>
145
146 <div class="tutor-tab tutor-course-spotlight-tab">
147 <?php if ( $has_lesson_content ) : ?>
148 <div id="tutor-course-spotlight-overview" class="tutor-tab-item<?php echo 'overview' == $page_tab ? esc_attr( ' is-active' ) : esc_attr( '' ); ?>">
149 <div class="tutor-container">
150 <div class="tutor-row tutor-justify-center">
151 <div class="tutor-col-xl-8">
152 <div class="tutor-fs-5 tutor-fw-medium tutor-color-black tutor-mb-12">
153 <?php esc_html_e( 'About Lesson', 'tutor' ); ?>
154 </div>
155 <div class="tutor-fs-6 tutor-color-secondary tutor-lesson-wrapper">
156 <?php the_content(); ?>
157 </div>
158 </div>
159 </div>
160 </div>
161 </div>
162 <?php endif; ?>
163
164 <?php if ( $has_lesson_attachment ) : ?>
165 <div id="tutor-course-spotlight-files" class="tutor-tab-item<?php echo esc_attr( ( 'files' == $page_tab || false === $has_lesson_content ) ? ' is-active' : '' ); ?>">
166 <div class="tutor-container">
167 <div class="tutor-row tutor-justify-center">
168 <div class="tutor-col-xl-8">
169 <div class="tutor-fs-5 tutor-fw-medium tutor-color-black"><?php esc_html_e( 'Exercise Files', 'tutor' ); ?></div>
170 <?php get_tutor_posts_attachments(); ?>
171 </div>
172 </div>
173 </div>
174 </div>
175 <?php endif; ?>
176
177 <?php if ( $is_comment_enabled ) : ?>
178 <div id="tutor-course-spotlight-comments" class="tutor-tab-item<?php echo esc_attr( ( 'comments' == $page_tab || ( false === $has_lesson_content && false === $has_lesson_attachment ) ) ? ' is-active' : '' ); ?>">
179 <div class="tutor-container">
180 <div class="tutor-course-spotlight-comments">
181 <?php require __DIR__ . '/comment.php'; ?>
182 </div>
183 </div>
184 </div>
185 <?php endif; ?>
186 </div>
187 </div>
188 </div>
189
190 <?php tutor_load_template( 'single.common.footer', array( 'course_id' => $course_id ) ); ?>
191
192 <?php do_action( 'tutor_lesson/single/after/content' ); ?>
193