Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor/views/qna/qna-single.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
/**
3
+
* Tutor Q&A single page
4
+
*
5
+
* @package Tutor\Views
6
+
* @subpackage Tutor\Q&A
7
+
* @author Themeum <support@themeum.com>
8
+
* @link https://themeum.com
9
+
* @since 2.0.0
10
+
*/
11
+
12
+
use TUTOR\Input;
13
+
14
+
extract( $data ); // $question_id
15
+
16
+
// QNA data.
17
+
$question = tutor_utils()->get_qa_question( (int) $question_id );
18
+
if ( ! $question ) {
19
+
tutor_utils()->tutor_empty_state();
20
+
return;
21
+
}
22
+
23
+
if ( property_exists( $question, 'meta' ) ) {
24
+
$meta = $question->meta;
25
+
}
26
+
27
+
$answers = tutor_utils()->get_qa_answer_by_question( $question_id );
28
+
$back_url = isset( $back_url ) ? $back_url : remove_query_arg( 'question_id', is_admin() ? admin_url( 'admin.php?page=question_answer' ) : tutor()->current_url );
29
+
30
+
// Badges data.
31
+
$_user_id = get_current_user_id();
32
+
if ( property_exists( $question, 'user_id' ) ) {
33
+
$is_user_asker = $question->user_id == $_user_id;
34
+
}
35
+
$id_slug = $is_user_asker ? '_' . $_user_id : '';
36
+
$is_solved = (int) tutor_utils()->array_get( 'tutor_qna_solved' . $id_slug, $meta, 0 );
37
+
$is_important = (int) tutor_utils()->array_get( 'tutor_qna_important' . $id_slug, $meta, 0 );
38
+
$is_archived = (int) tutor_utils()->array_get( 'tutor_qna_archived' . $id_slug, $meta, 0 );
39
+
$is_read = (int) tutor_utils()->array_get( 'tutor_qna_read' . $id_slug, $meta, 0 );
40
+
41
+
$modal_id = 'tutor_qna_delete_single_' . $question_id;
42
+
$reply_hidden = ! wp_doing_ajax() ? 'display:none;' : 0;
43
+
44
+
// At first set this as read.
45
+
update_comment_meta( $question_id, 'tutor_qna_read' . $id_slug, 1 );
46
+
?>
47
+
48
+
<div class="tutor-qna-single-question<?php echo is_admin() ? ' tutor-admin-wrap' : ''; ?>" data-course_id="<?php echo esc_attr( $question->course_id ); ?>" data-question_id="<?php echo esc_attr( $question_id ); ?>" data-context="<?php echo esc_attr( $context ); ?>">
49
+
<?php if ( in_array( $context, array( 'backend-dashboard-qna-single', 'frontend-dashboard-qna-single' ) ) ) : ?>
50
+
<div class="<?php echo is_admin() ? 'tutor-wp-dashboard-header tutor-px-24 tutor-mb-24' : 'tutor-qa-sticky-bar'; ?>">
51
+
<div class="tutor-row tutor-align-lg-center">
52
+
<div class="tutor-col-lg">
53
+
<div class="tutor-d-lg-flex tutor-align-lg-center tutor-px-12 tutor-py-16">
54
+
<a class="tutor-btn tutor-btn-ghost" href="<?php echo esc_url( $back_url ); ?>">
55
+
<span class="tutor-icon-previous tutor-mr-8" area-hidden="true"></span>
56
+
<?php esc_html_e( 'Back', 'tutor' ); ?>
57
+
</a>
58
+
</div>
59
+
</div>
60
+
61
+
<div class="tutor-col-lg-auto">
62
+
<div class="tutor-qna-badges tutor-qna-badges-wrapper">
63
+
<?php if ( ! $is_user_asker ) : ?>
64
+
<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">
65
+
<i class="<?php echo $is_solved ? 'tutor-icon-circle-mark tutor-color-success active' : 'tutor-icon-circle-mark-line'; ?> tutor-mr-8"></i>
66
+
<span><?php esc_html_e( 'Solved', 'tutor' ); ?></span>
67
+
</span>
68
+
69
+
<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">
70
+
<i class="<?php echo $is_important ? 'tutor-icon-important-bold active' : 'tutor-icon-important-line'; ?> tutor-mr-8"></i>
71
+
<span><?php esc_html_e( 'Important', 'tutor' ); ?></span>
72
+
</span>
73
+
74
+
<span class="tutor-btn tutor-btn-ghost tutor-mr-16" data-action="archived" data-state-text-selector="span" data-state-text-0="<?php esc_html_e( 'Archive', 'tutor' ); ?>" data-state-text-1="<?php esc_html_e( 'Un-Archive', 'tutor' ); ?>" data-state-class-selector="i" data-state-class-0="tutor-icon-archive" data-state-class-1="tutor-icon-archive">
75
+
<i class="<?php echo $is_archived ? 'tutor-icon-archive active' : 'tutor-icon-archive'; ?> tutor-mr-8"></i>
76
+
<span><?php $is_archived ? esc_html_e( 'Un-Archive', 'tutor' ) : esc_html_e( 'Archive', 'tutor' ); ?></span>
77
+
</span>
78
+
<?php endif; ?>
79
+
<span class="tutor-btn tutor-btn-ghost" data-tutor-modal-target="<?php echo esc_attr( $modal_id ); ?>">
80
+
<i class="tutor-icon-trash-can-bold tutor-mr-8" area-hidden="true"></i>
81
+
<?php esc_html_e( 'Delete', 'tutor' ); ?>
82
+
</span>
83
+
</div>
84
+
</div>
85
+
</div>
86
+
</div>
87
+
<?php endif; ?>
88
+
89
+
<div class="<?php echo is_admin() ? 'tutor-admin-container' : ''; ?>">
90
+
<div class="tutor-qna-course-title tutor-color-black tutor-fs-6 tutor-fw-bold tutor-mb-32<?php echo is_single_course( true ) || ( Input::has( 'action' ) ) ? ' tutor-d-none' : ''; ?>">
91
+
<?php echo esc_html( $question->post_title ); ?>
92
+
<div class="tutor-hr tutor-mt-20" area-hidden="true"></div>
93
+
</div>
94
+
<div class="tutor-qna-single-wrapper">
95
+
<div class="tutor-qa-reply-wrapper tutor-mt-20">
96
+
<div class="tutor-qa-chatlist">
97
+
<?php
98
+
$current_user_id = get_current_user_id();
99
+
$avatar_url = array();
100
+
$is_single = in_array( $context, array( 'course-single-qna-sidebar', 'course-single-qna-single' ) );
101
+
102
+
if ( is_array( $answers ) && count( $answers ) ) {
103
+
$reply_count = count( $answers ) - 1;
104
+
foreach ( $answers as $answer ) {
105
+
if ( ! isset( $avatar_url[ $answer->user_id ] ) ) {
106
+
// Get avatar url if not already got.
107
+
$avatar_url[ $answer->user_id ] = get_avatar_url( $answer->user_id );
108
+
}
109
+
110
+
$css_class = ( $current_user_id != $answer->user_id || 0 == $answer->comment_parent ) ? 'tutor-qna-left' : 'tutor-qna-right';
111
+
$css_style = ( $is_single && $answer->comment_parent != 0 ) ? 'margin-left:14%;' . $reply_hidden : '';
112
+
$reply_class = ( $is_single && $answer->comment_parent != 0 ) ? 'tutor-reply-msg' : '';
113
+
?>
114
+
<div class="tutor-qna-chat <?php echo esc_attr( $css_class . ' ' . $reply_class ); ?>" style="<?php echo esc_attr( $css_style ); ?>">
115
+
<div class="tutor-qna-user">
116
+
<div>
117
+
<img src="<?php echo wp_kses( get_avatar_url( $answer->user_id ), tutor_utils()->allowed_avatar_tags() ); ?>" />
118
+
</div>
119
+
120
+
<div>
121
+
<div class="tutor-fs-6 tutor-fw-medium tutor-color-secondary">
122
+
<?php echo esc_html( $answer->display_name ); ?>
123
+
</div>
124
+
<div class="tutor-fs-7 tutor-color-muted">
125
+
<?php
126
+
$date = human_time_diff( strtotime( $answer->comment_date_gmt ) );
127
+
$time_ago = __( 'ago', 'tutor' );
128
+
echo esc_html( $date . ' ' . $time_ago );
129
+
?>
130
+
</div>
131
+
</div>
132
+
</div>
133
+
134
+
<div class="tutor-qna-text tutor-fs-7">
135
+
<?php
136
+
$content = stripslashes( $answer->comment_content );
137
+
echo tutor()->has_pro ? wp_kses_post( $content ) : esc_textarea( $content );
138
+
?>
139
+
</div>
140
+
141
+
<?php if ( $is_single && 0 == $answer->comment_parent ) : ?>
142
+
<div class="tutor-toggle-reply">
143
+
<span>
144
+
<?php esc_html_e( 'Reply', 'tutor' ); ?>
145
+
<?php echo esc_html( $reply_count ? '(' . $reply_count . ')' : '' ); ?>
146
+
</span>
147
+
</div>
148
+
<?php endif; ?>
149
+
</div>
150
+
<?php
151
+
}
152
+
}
153
+
?>
154
+
</div>
155
+
<div class="tutor-qa-reply tutor-mt-12 tutor-mb-24 tutor-qna-reply-editor" data-context="<?php echo esc_attr( $context ); ?>" style="<?php echo esc_attr( $is_single ? $reply_hidden : '' ); ?>">
156
+
<?php if ( function_exists( 'tutor_pro' ) ) : ?>
157
+
<?php
158
+
wp_editor(
159
+
'',
160
+
'tutor_qna_reply_editor_' . $question_id,
161
+
tutor_utils()->text_editor_config(
162
+
array(
163
+
'plugins' => 'codesample',
164
+
'tinymce' => array(
165
+
'toolbar1' => 'bold,italic,underline,link,unlink,removeformat,image,bullist,codesample',
166
+
'toolbar2' => '',
167
+
'toolbar3' => '',
168
+
),
169
+
)
170
+
)
171
+
);
172
+
?>
173
+
<?php else : ?>
174
+
<textarea class="tutor-form-control" placeholder="<?php esc_html_e( 'Write here...', 'tutor' ); ?>"></textarea>
175
+
<?php endif; ?>
176
+
177
+
<div class="tutor-d-flex tutor-align-center tutor-mt-12">
178
+
<button data-back_url="<?php echo esc_url( $back_url ); ?>" type="submit" class="tutor-btn tutor-btn-primary tutor-btn-sm">
179
+
<?php esc_html_e( 'Reply', 'tutor' ); ?>
180
+
</button>
181
+
</div>
182
+
</div>
183
+
</div>
184
+
</div>
185
+
</div>
186
+
</div>
187
+
188
+
<?php
189
+
// Delete modal.
190
+
tutor_load_template(
191
+
'modal.confirm',
192
+
array(
193
+
'id' => $modal_id,
194
+
'image' => 'icon-trash.svg',
195
+
'title' => __( 'Do You Want to Delete This Question?', 'tutor' ),
196
+
'content' => __( 'All the replies also will be deleted.', 'tutor' ),
197
+
'yes' => array(
198
+
'text' => __( 'Yes, Delete This', 'tutor' ),
199
+
'class' => 'tutor-list-ajax-action',
200
+
'attr' => array( 'data-request_data=\'{"action":"tutor_delete_dashboard_question", "question_id":"' . $question_id . '"}\'', 'data-redirect_to="' . $back_url . '"' ),
201
+
),
202
+
)
203
+
);
204
+
?>
205
+