PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.7.3
Tutor LMS – eLearning and online course solution v2.7.3
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 2 years ago add-to-cart-edd.php 3 years ago add-to-cart-woocommerce.php 3 years ago continue-lesson.php 3 years ago course-benefits.php 3 years ago course-content.php 3 years ago course-entry-box.php 2 years ago course-requirements.php 3 years ago course-target-audience.php 3 years ago course-topics.php 2 years ago instructors.php 3 years ago lead-info.php 2 years ago material-includes.php 3 years ago q_and_a_turned_off.php 3 years ago reviews-loop.php 3 years 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
153 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 = 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 tutor-align-center">
86 <span class="tutor-course-content-list-item-icon <?php echo esc_attr( $topic_content_icon ); ?> tutor-mr-12"></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 );
97
98 // Add zoom meeting countdown info.
99 $countdown = '';
100 if ( 'tutor_zoom_meeting' === $post->post_type ) {
101 $zoom_meeting = tutor_zoom_meeting_data( $post->ID );
102 $countdown = '<div class="tutor-zoom-lesson-countdown tutor-lesson-duration" data-timer="' . $zoom_meeting->countdown_date . '" data-timezone="' . $zoom_meeting->timezone . '"></div>';
103 }
104
105 /**
106 * Show clickable content if enrolled.
107 * Or if it is public and not paid, then show content forcefully.
108 */
109 if ( $is_enrolled || ( get_post_meta( $course_id, '_tutor_is_public_course', true ) == 'yes' && ! tutor_utils()->is_course_purchasable( $course_id ) ) ) {
110 $lesson_title .= "<a href='" . get_the_permalink() . "'> " . get_the_title() . ' </a>';
111
112 if ( $countdown ) {
113 if ( $zoom_meeting->is_expired ) {
114 $lesson_title .= '<span class="tutor-zoom-label">' . __( 'Expired', 'tutor' ) . '</span>';
115 } elseif ( $zoom_meeting->is_started ) {
116 $lesson_title .= '<span class="tutor-zoom-label tutor-zoom-live-label">' . __( 'Live', 'tutor' ) . '</span>';
117 }
118 $lesson_title .= $countdown;
119 }
120
121 echo wp_kses(
122 $lesson_title,
123 $title_tag_allow
124 );
125 } else {
126 $lesson_title .= get_the_title();
127 echo wp_kses( apply_filters( 'tutor_course/contents/lesson/title', $lesson_title, get_the_ID() ), $title_tag_allow );
128 }
129 ?>
130 </h5>
131 </div>
132
133 <div>
134 <span class="tutor-course-content-list-item-duration tutor-fs-7 tutor-color-muted">
135 <?php echo esc_html( $play_time ? tutor_utils()->get_optimized_duration( $play_time ) : '' ); ?>
136 </span>
137 <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>
138 </div>
139 </li>
140 <?php endwhile; ?>
141 </ul>
142 </div>
143 </div>
144 <?php $topic_contents->reset_postdata(); ?>
145 <?php endif; ?>
146 </div>
147 <?php endwhile; ?>
148 </div>
149 <?php endif; ?>
150 </div>
151
152 <?php do_action( 'tutor_course/single/after/topics', $course_id ); ?>
153