PluginProbe
Tutor LMS – eLearning and online course solution / 2.1.3
Tutor LMS – eLearning and online course solution v2.1.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 All 191 releases
tutor / templates / single / course / course-topics.php
course-topics.php
133 lines 5.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Template for displaying single course
4 *
5 * @since v.1.0.0
6 *
7 * @author Themeum
8 * @url https://themeum.com
9 *
10 * @package TutorLMS/Templates
11 * @version 1.4.3
12 */
13
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit;
16 }
17
18 $topics = tutor_utils()->get_topics();
19 $course_id = get_the_ID();
20 $is_enrolled = tutor_utils()->is_enrolled( $course_id );
21 $index = 0;
22
23 do_action( 'tutor_course/single/before/topics' );
24 ?>
25 <div class="tutor-mt-40">
26 <h3 class="tutor-fs-5 tutor-fw-bold tutor-color-black tutor-mb-24 tutor-course-content-title">
27 <?php
28 $title = __( 'Course Content', 'tutor' );
29 echo esc_html( apply_filters( 'tutor_course_topics_title', $title ) );
30 ?>
31 </h3>
32
33 <?php if ( $topics->have_posts() ) : ?>
34 <div class="tutor-accordion tutor-mt-24">
35 <?php while ( $topics->have_posts() ) : ?>
36 <?php
37 $topics->the_post();
38 $topic_summery = get_the_content();
39 $index++;
40 ?>
41 <div class="tutor-accordion-item">
42 <h4 class="tutor-accordion-item-header<?php echo $index == 1 ? ' is-active': ''; ?>">
43 <?php the_title(); ?>
44 <?php if ( ! empty( $topic_summery ) ): ?>
45 <div class="tooltip-wrap tooltip-icon">
46 <span class="tooltip-txt tooltip-right"><?php echo esc_attr( $topic_summery ); ?></span>
47 </div>
48 <?php endif; ?>
49 </h4>
50
51 <?php $topic_contents = tutor_utils()->get_course_contents_by_topic( get_the_ID(), -1 ); ?>
52 <?php if ( $topic_contents->have_posts() ) : ?>
53 <div class="tutor-accordion-item-body" style="<?php echo $index != 1 ? 'display: none;': ''; ?>">
54 <div class="tutor-accordion-item-body-content">
55 <ul class="tutor-course-content-list">
56 <?php while ( $topic_contents->have_posts() ) : ?>
57 <?php
58 $topic_contents->the_post();
59 global $post;
60
61 // Get Lesson video information if any
62 $video = tutor_utils()->get_video_info();
63 $play_time = $video ? $video->playtime : false;
64 $is_preview = get_post_meta( $post->ID, '_is_preview', true );
65
66 // Determine topic content icon based on lesson, video, quiz etc.
67 $topic_content_icon = $play_time ? 'tutor-icon-brand-youtube-bold' : 'tutor-icon-document-text';
68 $post->post_type === 'tutor_quiz' ? $topic_content_icon = 'tutor-icon-circle-question-mark' : 0;
69 $post->post_type === 'tutor_assignments' ? $topic_content_icon = 'tutor-icon-document-text' : 0;
70 $post->post_type === 'tutor_zoom_meeting' ? $topic_content_icon = 'tutor-icon-brand-zoom' : 0;
71 $post->post_type === 'tutor-google-meet' ? $topic_content_icon = 'tutor-icon-brand-google-meet' : 0;
72
73 $is_public_course = \TUTOR\Course_List::is_public( $course_id );
74 $is_locked = ! ( $is_enrolled || $is_preview || $is_public_course );
75 ?>
76 <li class="tutor-course-content-list-item">
77 <div class="tutor-d-flex tutor-align-center">
78 <span class="tutor-course-content-list-item-icon <?php echo $topic_content_icon; ?> tutor-mr-12"></span>
79 <h5 class="tutor-course-content-list-item-title">
80 <?php
81 $lesson_title = '';
82
83 // Add zoom meeting countdown info
84 $countdown = '';
85 if ( $post->post_type === 'tutor_zoom_meeting' ) {
86 $zoom_meeting = tutor_zoom_meeting_data( $post->ID );
87 $countdown = '<div class="tutor-zoom-lesson-countdown tutor-lesson-duration" data-timer="' . $zoom_meeting->countdown_date . '" data-timezone="' . $zoom_meeting->timezone . '"></div>';
88 }
89
90 // Show clickable content if enrolled
91 // Or if it is public and not paid, then show content forcefully
92 if ( $is_enrolled || ( get_post_meta( $course_id, '_tutor_is_public_course', true ) == 'yes' && ! tutor_utils()->is_course_purchasable( $course_id ) ) ) {
93 $lesson_title .= "<a href='" . get_the_permalink() . "'> " . get_the_title() . ' </a>';
94
95 if ( $countdown ) {
96 if ( $zoom_meeting->is_expired ) {
97 $lesson_title .= '<span class="tutor-zoom-label">' . __( 'Expired', 'tutor' ) . '</span>';
98 } elseif ( $zoom_meeting->is_started ) {
99 $lesson_title .= '<span class="tutor-zoom-label tutor-zoom-live-label">' . __( 'Live', 'tutor' ) . '</span>';
100 }
101 $lesson_title .= $countdown;
102 }
103
104 echo $lesson_title;
105 } else {
106 $lesson_title .= get_the_title();
107 echo apply_filters( 'tutor_course/contents/lesson/title', $lesson_title, get_the_ID() );
108 }
109 ?>
110 </h5>
111 </div>
112
113 <div>
114 <span class="tutor-course-content-list-item-duration tutor-fs-7 tutor-color-muted">
115 <?php echo $play_time ? tutor_utils()->get_optimized_duration( $play_time ) : ''; ?>
116 </span>
117 <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>
118 </div>
119 </li>
120 <?php endwhile; ?>
121 </ul>
122 </div>
123 </div>
124 <?php $topic_contents->reset_postdata(); ?>
125 <?php endif; ?>
126 </div>
127 <?php endwhile; ?>
128 </div>
129 <?php endif; ?>
130 </div>
131
132 <?php do_action( 'tutor_course/single/after/topics' ); ?>
133