PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.0
Tutor LMS – eLearning and online course solution v3.9.0
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 / course / course-topics.php
tutor / templates / single / course Last commit date
enrolled 1 year ago add-to-cart-edd.php 1 year ago add-to-cart-tutor.php 11 months ago add-to-cart-woocommerce.php 1 year ago continue-lesson.php 3 years ago course-benefits.php 3 years ago course-content.php 3 years ago course-entry-box.php 1 year ago course-requirements.php 3 years ago course-target-audience.php 3 years ago course-topics.php 1 year ago instructors.php 3 years ago lead-info.php 9 months ago material-includes.php 3 years ago q_and_a_turned_off.php 3 years ago reviews-loop.php 1 year ago reviews.php 2 years ago social_share.php 3 years ago tags.php 3 years ago wc-price-html.php 3 years ago
course-topics.php
158 lines
1 <?php
2 /**
3 * Template for displaying single course
4 *
5 * @package Tutor\Templates
6 * @subpackage Single\Course
7 * @author Themeum <support@themeum.com>
8 * @link https://themeum.com
9 * @since 1.0.0
10 */
11
12 if ( ! defined( 'ABSPATH' ) ) {
13 exit;
14 }
15
16 global $is_enrolled;
17
18 $topics = apply_filters( 'tutor_get_course_topics', tutor_utils()->get_topics() );
19 $course_id = get_the_ID();
20 $index = 0;
21
22 /**
23 * $is_enrolled getting null for Addons plugin like Elementor addons
24 *
25 * @since 2.1.8
26 */
27 if ( is_null( $is_enrolled ) ) {
28 $is_enrolled = tutor_utils()->is_enrolled( $course_id );
29 }
30
31 do_action( 'tutor_course/single/before/topics' );
32 ?>
33 <div class="tutor-mt-40">
34 <?php if ( $topics->have_posts() ) : ?>
35
36 <h3 class="tutor-fs-5 tutor-fw-bold tutor-color-black tutor-mb-24 tutor-course-content-title">
37 <?php
38 echo esc_html( apply_filters( 'tutor_course_topics_title', __( 'Course Content', 'tutor' ) ) );
39 ?>
40 </h3>
41
42 <div class="tutor-accordion tutor-mt-24">
43 <?php while ( $topics->have_posts() ) : ?>
44 <?php
45 $topics->the_post();
46 $topic_summery = get_the_content();
47 $index++;
48 ?>
49 <div class="tutor-accordion-item">
50 <h4 class="tutor-accordion-item-header<?php echo 1 == $index ? ' is-active' : ''; ?>">
51 <?php the_title(); ?>
52 <?php if ( ! empty( $topic_summery ) ) : ?>
53 <div class="tooltip-wrap tooltip-icon">
54 <span class="tooltip-txt tooltip-right"><?php echo esc_attr( $topic_summery ); ?></span>
55 </div>
56 <?php endif; ?>
57 </h4>
58
59 <?php $topic_contents = tutor_utils()->get_course_contents_by_topic( get_the_ID(), -1 ); ?>
60 <?php if ( $topic_contents->have_posts() ) : ?>
61 <div class="tutor-accordion-item-body" style="<?php echo 1 != $index ? 'display: none;' : ''; ?>">
62 <div class="tutor-accordion-item-body-content">
63 <ul class="tutor-course-content-list">
64 <?php while ( $topic_contents->have_posts() ) : ?>
65 <?php
66 $topic_contents->the_post();
67 global $post;
68
69 // Get Lesson video information if any.
70 $video = tutor_utils()->get_video_info();
71 $play_time = $video ? $video->playtime : false;
72 $is_preview = get_post_meta( $post->ID, '_is_preview', true );
73
74 // Determine topic content icon based on lesson, video, quiz etc.
75 $topic_content_icon = $play_time ? 'tutor-icon-brand-youtube-bold' : 'tutor-icon-document-text';
76 'tutor_quiz' === $post->post_type ? $topic_content_icon = 'tutor-icon-circle-question-mark' : 0;
77 'tutor_assignments' === $post->post_type ? $topic_content_icon = 'tutor-icon-document-text' : 0;
78 'tutor_zoom_meeting' === $post->post_type ? $topic_content_icon = 'tutor-icon-brand-zoom' : 0;
79 'tutor-google-meet' === $post->post_type ? $topic_content_icon = 'tutor-icon-brand-google-meet' : 0;
80
81 $is_public_course = \TUTOR\Course_List::is_public( $course_id );
82 $is_locked = ! ( $is_enrolled || $is_preview || $is_public_course );
83 ?>
84 <li class="tutor-course-content-list-item">
85 <div class="tutor-d-flex">
86 <span class="tutor-course-content-list-item-icon <?php echo esc_attr( $topic_content_icon ); ?> tutor-mr-12 tutor-mt-4"></span>
87 <h5 class="tutor-course-content-list-item-title">
88 <?php
89 $lesson_title = '';
90 $title_tag_allow = array(
91 'a' => array(
92 'href' => true,
93 'class' => true,
94 ),
95 'span' => array( 'class' => true ),
96 'div' => array(
97 'class' => true,
98 'data-timer' => array(),
99 'data-timezone' => array(),
100 ),
101 );
102
103 // Add zoom meeting countdown info.
104 $countdown = '';
105 if ( 'tutor_zoom_meeting' === $post->post_type ) {
106 $zoom_meeting = tutor_zoom_meeting_data( $post->ID );
107 $countdown = '<div class="tutor-zoom-lesson-countdown tutor-lesson-duration" data-timer="' . $zoom_meeting->countdown_date . '" data-timezone="' . $zoom_meeting->timezone . '"></div>';
108 }
109
110 /**
111 * Show clickable content if enrolled.
112 * Or if it is public and not paid, then show content forcefully.
113 */
114 if ( $is_enrolled || ( get_post_meta( $course_id, '_tutor_is_public_course', true ) == 'yes' && ! tutor_utils()->is_course_purchasable( $course_id ) ) ) {
115 $lesson_title .= "<a href='" . get_the_permalink() . "'> " . get_the_title() . ' </a>';
116
117 if ( $countdown ) {
118 if ( $zoom_meeting->is_expired ) {
119 $lesson_title .= '<span class="tutor-zoom-label">' . __( 'Expired', 'tutor' ) . '</span>';
120 } elseif ( $zoom_meeting->is_started ) {
121 $lesson_title .= '<span class="tutor-zoom-label tutor-zoom-live-label">' . __( 'Live', 'tutor' ) . '</span>';
122 }
123 $lesson_title .= $countdown;
124 }
125
126 echo wp_kses(
127 $lesson_title,
128 $title_tag_allow
129 );
130 } else {
131 $lesson_title .= get_the_title();
132 echo wp_kses( apply_filters( 'tutor_course/contents/lesson/title', $lesson_title, get_the_ID() ), $title_tag_allow );
133 }
134 ?>
135 </h5>
136 </div>
137
138 <div class="tutor-d-flex tutor-align-center tutor-flex-shrink-0 tutor-mt-2">
139 <span class="tutor-course-content-list-item-duration tutor-fs-7 tutor-color-muted">
140 <?php echo esc_html( $play_time ? tutor_utils()->get_optimized_duration( $play_time ) : '' ); ?>
141 </span>
142 <span class="tutor-course-content-list-item-status <?php echo $is_locked ? 'tutor-icon-lock-line' : 'tutor-icon-eye-line'; ?> tutor-color-muted tutor-ml-20" area-hidden="true"></span>
143 </div>
144 </li>
145 <?php endwhile; ?>
146 </ul>
147 </div>
148 </div>
149 <?php $topic_contents->reset_postdata(); ?>
150 <?php endif; ?>
151 </div>
152 <?php endwhile; ?>
153 </div>
154 <?php endif; ?>
155 </div>
156
157 <?php do_action( 'tutor_course/single/after/topics', $course_id ); ?>
158