PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.0.2
Tutor LMS – eLearning and online course solution v2.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 / views / qna / qna-single.php
tutor / views / qna Last commit date
contexts.php 4 years ago qna-new.php 4 years ago qna-single.php 4 years ago qna-table.php 4 years ago
qna-single.php
152 lines
1 <?php
2 extract( $data ); // $question_id
3
4 // QNA data
5 $question = tutor_utils()->get_qa_question( $question_id );
6 if (property_exists($question, 'meta')) {
7 $meta = $question->meta;
8 }
9 $answers = tutor_utils()->get_qa_answer_by_question( $question_id );
10 $back_url = isset( $back_url ) ? $back_url : remove_query_arg( 'question_id', tutor()->current_url );
11
12 // Badges data
13 $_user_id = get_current_user_id();
14 if (property_exists($question, 'user_id')) {
15 $is_user_asker = $question->user_id == $_user_id;
16 }
17 $id_slug = $is_user_asker ? '_'.$_user_id : '';
18 $is_solved = (int) tutor_utils()->array_get( 'tutor_qna_solved'.$id_slug, $meta, 0 );
19 $is_important = (int) tutor_utils()->array_get( 'tutor_qna_important'.$id_slug, $meta, 0 );
20 $is_archived = (int) tutor_utils()->array_get( 'tutor_qna_archived'.$id_slug, $meta, 0 );
21 $is_read = (int) tutor_utils()->array_get( 'tutor_qna_read'.$id_slug, $meta, 0 );
22
23 $modal_id = 'tutor_qna_delete_single_' . $question_id;
24 $reply_hidden = ! wp_doing_ajax() ? 'display:none;' : 0;
25
26 // At first set this as read
27 update_comment_meta( $question_id, 'tutor_qna_read'.$id_slug, 1 );
28 ?>
29
30 <div class="tutor-qna-single-question<?php echo is_admin() ? ' tutor-admin-wrap' : ''; ?>" data-course_id="<?php echo $question->course_id; ?>" data-question_id="<?php echo $question_id; ?>" data-context="<?php echo $context; ?>">
31 <?php if ( in_array( $context, array( 'backend-dashboard-qna-single', 'frontend-dashboard-qna-single' ) ) ) : ?>
32 <div class="<?php echo is_admin() ? 'tutor-wp-dashboard-header tutor-px-24 tutor-mb-24' : 'tutor-qa-sticky-bar'; ?>">
33 <div class="tutor-row tutor-align-lg-center">
34 <div class="tutor-col-lg">
35 <div class="tutor-d-lg-flex tutor-align-lg-center tutor-px-12 tutor-py-16">
36 <a class="tutor-btn tutor-btn-ghost" href="<?php echo $back_url; ?>">
37 <span class="tutor-icon-previous tutor-mr-8" area-hidden="true"></span>
38 <?php _e('Back', 'tutor'); ?>
39 </a>
40 </div>
41 </div>
42
43 <div class="tutor-col-lg-auto">
44 <div class="tutor-qna-badges tutor-qna-badges-wrapper">
45 <?php if ( ! $is_user_asker ) : ?>
46 <span class="tutor-btn tutor-btn-ghost tutor-mr-16" data-action="solved" data-state-class-selector="i" data-state-class-0="tutor-icon-circle-mark-line" data-state-class-1="tutor-icon-circle-mark tutor-color-success" role="button">
47 <i class="<?php echo $is_solved ? 'tutor-icon-circle-mark tutor-color-success active' : 'tutor-icon-circle-mark-line'; ?> tutor-mr-8"></i>
48 <span><?php _e( 'Solved', 'tutor' ); ?></span>
49 </span>
50
51 <span class="tutor-btn tutor-btn-ghost tutor-mr-16" data-action="important" data-state-class-selector="i" data-state-class-0="tutor-icon-important-line" data-state-class-1="tutor-icon-important-bold">
52 <i class="<?php echo $is_important ? 'tutor-icon-important-bold active' : 'tutor-icon-important-line'; ?> tutor-mr-8"></i>
53 <span><?php _e( 'Important', 'tutor' ); ?></span>
54 </span>
55
56 <span class="tutor-btn tutor-btn-ghost tutor-mr-16" data-action="archived" data-state-text-selector="span" data-state-text-0="<?php _e( 'Archive', 'tutor' ); ?>" data-state-text-1="<?php _e( 'Un-Archive', 'tutor' ); ?>" data-state-class-selector="i" data-state-class-0="tutor-icon-archive" data-state-class-1="tutor-icon-archive">
57 <i class="<?php echo $is_archived ? 'tutor-icon-archive active' : 'tutor-icon-archive'; ?> tutor-mr-8"></i>
58 <span><?php $is_archived ? _e( 'Un-Archive', 'tutor' ) : _e( 'Archive', 'tutor' ); ?></span>
59 </span>
60 <?php endif; ?>
61 <span class="tutor-btn tutor-btn-ghost" data-tutor-modal-target="<?php echo $modal_id; ?>">
62 <i class="tutor-icon-trash-can-bold tutor-mr-8" area-hidden="true"></i>
63 <?php _e( 'Delete', 'tutor' ); ?>
64 </span>
65 </div>
66 </div>
67 </div>
68 </div>
69 <?php endif; ?>
70
71 <div class="<?php echo is_admin() ? 'tutor-admin-container' : ''; ?>">
72 <!-- <div class="tutor-qna-course-title tutor-color-black tutor-fs-6 tutor-fw-bold tutor-mb-32">
73 <?php echo esc_html( $question->post_title ); ?>
74 <div class="tutor-hr tutor-mt-20" area-hidden="true"></div>
75 </div> -->
76 <div class="tutor-qna-single-wrapper">
77 <div class="tutor-qa-reply-wrapper tutor-mt-20">
78 <div class="tutor-qa-chatlist">
79 <?php
80 $current_user_id = get_current_user_id();
81 $avatar_url = array();
82 $is_single = in_array( $context, array( 'course-single-qna-sidebar', 'course-single-qna-single' ) );
83
84 if ( is_array( $answers ) && count( $answers ) ) {
85 $reply_count = count( $answers ) - 1;
86 foreach ( $answers as $answer ) {
87 if ( ! isset( $avatar_url[ $answer->user_id ] ) ) {
88 // Get avatar url if not already got
89 $avatar_url[ $answer->user_id ] = get_avatar_url( $answer->user_id );
90 }
91
92 $css_class = ( $current_user_id != $answer->user_id || $answer->comment_parent == 0 ) ? 'tutor-qna-left' : 'tutor-qna-right';
93 $css_style = ( $is_single && $answer->comment_parent != 0 ) ? 'margin-left:14%;' . $reply_hidden : '';
94 ?>
95 <div class="tutor-qna-chat <?php echo $css_class; ?> " style="<?php echo $css_style; ?>">
96 <div class="tutor-qna-user">
97 <div>
98 <img src="<?php echo get_avatar_url( $answer->user_id ); ?>" />
99 </div>
100
101 <div>
102 <div class="tutor-fs-6 tutor-fw-medium tutor-color-secondary">
103 <?php echo $answer->display_name; ?>
104 </div>
105 <div class="tutor-fs-7 tutor-color-muted">
106 <?php echo sprintf( __( '%s ago', 'tutor' ), human_time_diff( strtotime( $answer->comment_date ) ) ); ?>
107 </div>
108 </div>
109 </div>
110
111 <div class="tutor-qna-text tutor-fs-7">
112 <?php echo esc_textarea( stripslashes( $answer->comment_content ) ); ?>
113 </div>
114
115 <?php if ( $is_single && $answer->comment_parent == 0 ) : ?>
116 <div class="tutor-toggle-reply">
117 <span><?php _e( 'Reply', 'tutor' ); ?> <?php echo $reply_count ? '(' . $reply_count . ')' : ''; ?></span>
118 </div>
119 <?php endif; ?>
120 </div>
121 <?php
122 }
123 }
124 ?>
125 </div>
126 <div class="tutor-qa-reply tutor-mt-12 tutor-mb-24" data-context="<?php echo $context; ?>" style="<?php echo $is_single ? $reply_hidden : ''; ?>">
127 <textarea class="tutor-form-control" placeholder="<?php _e( 'Write here...', 'tutor' ); ?>"></textarea>
128 <div class="tutor-d-flex tutor-align-center">
129 <button data-back_url="<?php echo $back_url; ?>" type="submit" class="tutor-btn tutor-btn-primary tutor-btn-sm">
130 <?php esc_html_e( 'Reply', 'tutor' ); ?>
131 </button>
132 </div>
133 </div>
134 </div>
135 </div>
136 </div>
137 </div>
138
139 <?php
140 // Delete modal
141 tutor_load_template( 'modal.confirm', array(
142 'id' => $modal_id,
143 'image' => 'icon-trash.svg',
144 'title' => __('Do You Want to Delete This Question?', 'tutor'),
145 'content' => __('All the replies also will be deleted.', 'tutor'),
146 'yes' => array(
147 'text' => __('Yes, Delete This', 'tutor'),
148 'class' => 'tutor-list-ajax-action',
149 'attr' => array('data-request_data=\'{"action":"tutor_delete_dashboard_question", "question_id":"' . $question_id . '"}\'', 'data-redirect_to="' . $back_url . '"')
150 ),
151 ));
152 ?>