PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.9
Tutor LMS – eLearning and online course solution v3.9.9
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 / fragments / announcement-list.php
tutor / views / fragments Last commit date
announcement-list.php 2 months ago attachments.php 2 months ago quiz-list-single.php 2 months ago thumbnail-uploader.php 2 months ago
announcement-list.php
375 lines
1 <?php
2 /**
3 * Announcement fragment view
4 *
5 * @package Tutor\Views
6 * @subpackage Tutor\Fragments
7 * @author Themeum <support@themeum.com>
8 * @link https://themeum.com
9 * @since 2.0.0
10 */
11
12 use Tutor\Models\CourseModel;
13
14 /**
15 * Announcement modal
16 *
17 * @since 2.0.0
18 *
19 * @param string $id modal id.
20 * @param string $title modal title.
21 * @param array $courses courses.
22 * @param object|null $announcement announcement.
23 *
24 * @return void
25 */
26 function tutor_announcement_modal( $id, $title, $courses, $announcement = null ) {
27 $course_id = $announcement ? $announcement->post_parent : null;
28 $announcment_id = $announcement ? $announcement->ID : null;
29 $announcment_title = $announcement ? $announcement->post_title : '';
30 $summary = $announcement ? $announcement->post_content : '';
31 // Assign fallback course id.
32 ( ! $course_id && count( $courses ) ) ? $course_id = $courses[0]->ID : 0;
33 ?>
34 <form class="tutor-modal tutor-modal-scrollable tutor-announcements-form" id="<?php echo esc_attr( $id ); ?>" role="dialog" aria-modal="true" aria-labelledby="<?php echo esc_attr( $id ); ?>-title" aria-hidden="true">
35 <div class="tutor-modal-overlay"></div>
36 <div class="tutor-modal-window">
37 <div class="tutor-modal-content">
38 <div class="tutor-modal-header">
39 <div class="tutor-modal-title" id="<?php echo esc_attr( $id ); ?>-title">
40 <?php echo esc_html( $title ); ?>
41 </div>
42 <button type="button" class="tutor-modal-close tutor-iconic-btn" data-tutor-modal-close aria-label="<?php esc_attr_e( 'Close', 'tutor' ); ?>">
43 <span class="tutor-icon-times" aria-hidden="true"></span>
44 </button>
45 </div>
46
47 <div class="tutor-modal-body">
48 <?php tutor_nonce_field(); ?>
49 <input type="hidden" name="announcement_id" value="<?php echo esc_attr( $announcment_id ); ?>">
50 <input type="hidden" name="action" value="tutor_announcement_create"/>
51 <input type="hidden" name="action_type" value="<?php echo esc_attr( $announcement ? 'update' : 'create' ); ?>"/>
52 <div class="tutor-mb-32">
53 <label class="tutor-form-label">
54 <?php esc_html_e( 'Select Course', 'tutor' ); ?>
55 </label>
56 <select class="tutor-form-select" name="tutor_announcement_course" required data-searchable>
57 <?php if ( $courses ) : ?>
58 <?php foreach ( $courses as $course ) : ?>
59 <option value="<?php echo esc_attr( $course->ID ); ?>" <?php selected( $course_id, $course->ID ); ?>>
60 <?php echo esc_html( $course->post_title ); ?>
61 </option>
62 <?php endforeach; ?>
63 <?php else : ?>
64 <option value=""><?php esc_html_e( 'No course found', 'tutor' ); ?></option>
65 <?php endif; ?>
66 </select>
67 </div>
68
69 <div class="tutor-mb-32">
70 <label class="tutor-form-label">
71 <?php esc_html_e( 'Announcement Title', 'tutor' ); ?>
72 </label>
73 <input class="tutor-form-control" type="text" name="tutor_announcement_title" value="<?php echo esc_attr( $announcment_title ); ?>" placeholder="<?php esc_html_e( 'Announcement title', 'tutor' ); ?>" maxlength="255" required>
74 </div>
75
76 <div class="tutor-mb-32">
77 <label class="tutor-form-label" for="tutor_announcement_course">
78 <?php esc_html_e( 'Summary', 'tutor' ); ?>
79 </label>
80 <textarea style="resize: unset;" class="tutor-form-control" rows="6" type="text" name="tutor_announcement_summary" placeholder="<?php esc_html_e( 'Summary...', 'tutor' ); ?>" required><?php echo esc_textarea( $summary ); ?></textarea>
81 </div>
82
83 <?php do_action( 'tutor_announcement_editor/after' ); ?>
84 </div>
85
86 <div class="tutor-modal-footer">
87 <button data-tutor-modal-close type="button" data-action="back" class="tutor-btn tutor-btn-outline-primary">
88 <?php esc_html_e( 'Cancel', 'tutor' ); ?>
89 </button>
90 <button type="submit" data-action="next" class="tutor-btn tutor-btn-primary">
91 <?php esc_html_e( 'Publish', 'tutor' ); ?>
92 </button>
93 </div>
94 </div>
95 </div>
96 </form>
97 <?php
98 }
99
100 /**
101 * Announcement modal
102 *
103 * @since 2.0.0
104 *
105 * @param string $id modal id.
106 * @param string $update_modal_id update modal id.
107 * @param string $delete_modal_id delete_modal_id.
108 * @param object $announcement announcement.
109 * @param string $course_title course title.
110 * @param string $publish_date announcement publish date.
111 * @param string $publish_time announcement publish time.
112 *
113 * @return void
114 */
115 function tutor_announcement_modal_details( $id, $update_modal_id, $delete_modal_id, $announcement, $course_title, $publish_date, $publish_time ) {
116 ?>
117 <div id="<?php echo esc_attr( $id ); ?>" class="tutor-modal" role="dialog" aria-modal="true" aria-labelledby="<?php echo esc_attr( $id ); ?>-title" aria-hidden="true">
118 <div class="tutor-modal-overlay"></div>
119 <div class="tutor-modal-window">
120 <div class="tutor-modal-content tutor-modal-content-white">
121 <button type="button" class="tutor-iconic-btn tutor-modal-close-o" data-tutor-modal-close aria-label="<?php esc_attr_e( 'Close', 'tutor' ); ?>">
122 <span class="tutor-icon-times" aria-hidden="true"></span>
123 </button>
124
125 <div class="tutor-modal-body">
126 <div class="tutor-py-20 tutor-px-24">
127 <span class="tutor-round-box tutor-round-box-lg tutor-mb-32">
128 <i class="tutor-icon-bullhorn" aria-hidden="true"></i>
129 </span>
130 <div id="<?php echo esc_attr( $id ); ?>-title" class="tutor-fs-4 tutor-fw-medium tutor-color-black tutor-mb-24">
131 <?php echo esc_html( $announcement->post_title ); ?>
132 </div>
133 <div class="tutor-fs-6 tutor-color-muted">
134 <?php echo wp_kses_post( $announcement->post_content ); ?>
135 </div>
136 </div>
137
138 <div class="tutor-mx-n32 tutor-my-32"><div class="tutor-hr" aria-hidden="true"></div></div>
139
140 <div class="tutor-py-20 tutor-px-24">
141 <div class="tutor-row tutor-mb-60">
142 <div class="tutor-col-lg-7 tutor-mb-16 tutor-mb-lg-0">
143 <div class="tutor-fs-7 tutor-color-secondary">
144 <?php esc_html_e( 'Course', 'tutor' ); ?>
145 </div>
146 <div class="tutor-fs-6 tutor-fw-bold tutor-color-black tutor-mt-4">
147 <?php echo esc_html( $course_title ); ?>
148 </div>
149 </div>
150
151 <div class="tutor-col-lg-5">
152 <div class="tutor-fs-7 tutor-color-secondary">
153 <?php esc_html_e( 'Published Date', 'tutor' ); ?>
154 </div>
155 <div class="tutor-fs-6 tutor-fw-bold tutor-color-black tutor-mt-4">
156 <?php echo esc_html( $publish_date . ', ' . $publish_time ); ?>
157 </div>
158 </div>
159 </div>
160
161 <div class="tutor-row">
162 <div class="tutor-col-6 tutor-col-lg-7">
163 <button class="tutor-btn tutor-btn-outline-primary tutor-btn-md" data-tutor-modal-close>
164 <?php esc_html_e( 'Cancel', 'tutor' ); ?>
165 </button>
166 </div>
167
168 <div class="tutor-col-6 tutor-col-lg-5">
169 <div class="tutor-d-flex tutor-justify-end">
170 <button data-tutor-modal-target="<?php echo esc_attr( $delete_modal_id ); ?>" class="tutor-btn tutor-btn-secondary tutor-btn-md tutor-modal-btn-delete">
171 <?php esc_html_e( 'Delete', 'tutor' ); ?>
172 </button>
173 <button data-tutor-modal-target="<?php echo esc_attr( $update_modal_id ); ?>" class="tutor-btn tutor-btn-primary tutor-btn-md tutor-modal-btn-edit tutor-ml-16">
174 <?php esc_html_e( 'Edit', 'tutor' ); ?>
175 </button>
176 </div>
177 </div>
178 </div>
179 </div>
180 </div>
181 </div>
182 </div>
183 </div>
184 <?php
185 }
186
187 /**
188 * Announcement delete modal
189 *
190 * @since 2.0.0
191 *
192 * @param int $id id.
193 * @param int $announcment_id announcement id.
194 * @param int $row_id row id.
195 *
196 * @return void
197 */
198 function tutor_announcement_modal_delete( $id, $announcment_id, $row_id ) {
199 ?>
200 <div id="<?php echo esc_attr( $id ); ?>" class="tutor-modal" role="dialog" aria-modal="true" aria-labelledby="<?php echo esc_attr( $id ); ?>-title" aria-hidden="true">
201 <div class="tutor-modal-overlay"></div>
202 <div class="tutor-modal-window">
203 <div class="tutor-modal-content tutor-modal-content-white">
204 <button type="button" class="tutor-iconic-btn tutor-modal-close-o" data-tutor-modal-close aria-label="<?php esc_attr_e( 'Close', 'tutor' ); ?>">
205 <span class="tutor-icon-times" aria-hidden="true"></span>
206 </button>
207
208 <div class="tutor-modal-body tutor-text-center">
209 <div class="tutor-mt-48">
210 <img class="tutor-d-inline-block" src="<?php echo esc_url( tutor()->url ); ?>assets/images/icon-trash.svg" alt="" aria-hidden="true" />
211 </div>
212
213 <div id="<?php echo esc_attr( $id ); ?>-title" class="tutor-fs-3 tutor-fw-medium tutor-color-black tutor-mb-12"><?php esc_html_e( 'Delete This Announcement?', 'tutor' ); ?></div>
214 <div class="tutor-fs-6 tutor-color-muted"><?php esc_html_e( 'Are you sure you want to delete this Announcement permanently from the site? Please confirm your choice.', 'tutor' ); ?></div>
215 <div class="tutor-d-flex tutor-justify-center tutor-my-48">
216 <button class="tutor-btn tutor-btn-outline-primary" data-tutor-modal-close>
217 <?php esc_html_e( 'Cancel', 'tutor' ); ?>
218 </button>
219 <button class="tutor-btn tutor-btn-primary tutor-list-ajax-action tutor-ml-20" data-request_data='{"announcement_id":<?php echo esc_attr( $announcment_id ); ?>, "action":"tutor_announcement_delete"}' data-redirect_to="">
220 <?php esc_html_e( 'Yes, Delete This', 'tutor' ); ?>
221 </button>
222 </div>
223 </div>
224 </div>
225 </div>
226 </div>
227 <?php
228 }
229
230 extract( $data );
231 $courses = ( current_user_can( 'administrator' ) ) ? CourseModel::get_courses() : CourseModel::get_courses_by_instructor();
232 ?>
233 <?php if ( is_array( $announcements ) && count( $announcements ) ) : ?>
234 <div class="tutor-table-responsive tutor-dashboard-list-table">
235 <table class="tutor-table">
236 <thead>
237 <tr>
238 <?php if ( is_admin() ) : ?>
239 <th width="2%">
240 <div class="tutor-d-flex">
241 <input type="checkbox" id="tutor-bulk-checkbox-all" class="tutor-form-check-input">
242 </div>
243 </th>
244 <th width="17%">
245 <?php esc_html_e( 'Date', 'tutor' ); ?>
246 </th>
247 <?php else : ?>
248 <th width="17%">
249 <?php esc_html_e( 'Date', 'tutor' ); ?>
250 </th>
251 <?php endif; ?>
252 <th>
253 <?php esc_html_e( 'Announcements', 'tutor' ); ?>
254 </th>
255 <th></th>
256 </tr>
257 </thead>
258 <tbody>
259 <?php foreach ( $announcements as $announcement ) : ?>
260 <?php
261 $course = get_post( $announcement->post_parent );
262 $date_format = tutor_get_formated_date( get_option( 'date_format' ), $announcement->post_date );
263 $time_format = tutor_get_formated_date( get_option( 'time_format' ), $announcement->post_date );
264
265 $update_modal_id = 'tutor_announcement_' . $announcement->ID;
266 $details_modal_id = $update_modal_id . '_details';
267 $delete_modal_id = $update_modal_id . '_delete';
268 $row_id = 'tutor-announcement-tr-' . $announcement->ID;
269 ?>
270 <tr id="<?php echo esc_attr( $row_id ); ?>">
271 <?php if ( is_admin() ) : ?>
272 <td class="v-align-top">
273 <div class="tutor-form-check">
274 <input
275 id="tutor-admin-list-<?php echo esc_attr( $announcement->ID ); ?>"
276 type="checkbox"
277 class="tutor-form-check-input tutor-bulk-checkbox"
278 name="tutor-bulk-checkbox-all"
279 value="<?php echo esc_attr( $announcement->ID ); ?>"
280 />
281 </div>
282 </td>
283 <td width="17%" class="v-align-top">
284 <div><?php echo esc_html( $date_format ); ?></div>
285 <div class="tutor-fw-normal tutor-color-muted"><?php echo esc_html( $time_format ); ?></div>
286 </td>
287 <?php else : ?>
288 <td width="17%" class="tutor-nowrap-ellipsis">
289 <div><?php echo esc_html( $date_format ); ?></div>
290 <div class="tutor-fw-normal tutor-color-muted"><?php echo esc_html( $time_format ); ?></div>
291 </td>
292 <?php endif; ?>
293
294 <td>
295 <div>
296 <div class="td-course tutor-color-black tutor-fs-6 tutor-fw-medium">
297 <?php echo esc_html( $announcement->post_title ); ?>
298 </div>
299 <div class="tutor-fs-7 tutor-fw-medium tutor-color-muted" style="margin-top: 3px;">
300 <?php esc_html_e( 'Course', 'tutor' ); ?>: <?php echo esc_html( $course ? $course->post_title : '' ); ?>
301 </div>
302 </div>
303 </td>
304
305 <td>
306 <div class="tutor-d-flex tutor-align-center tutor-justify-end">
307 <div class="tutor-d-inline-flex tutor-align-center td-action-btns tutor-mr-4">
308 <button class="tutor-btn tutor-btn-outline-primary tutor-btn-sm tutor-announcement-details" data-tutor-modal-target="<?php echo esc_attr( $details_modal_id ); ?>">
309 <?php esc_html_e( 'Details', 'tutor' ); ?>
310 </button>
311 </div>
312
313 <div class="tutor-dropdown-parent">
314 <button type="button" class="tutor-iconic-btn" action-tutor-dropdown="toggle">
315 <span class="tutor-icon-kebab-menu" aria-hidden="true"></span>
316 </button>
317 <ul class="tutor-dropdown tutor-dropdown-dark">
318 <li>
319 <a href="#" class="tutor-dropdown-item" data-tutor-modal-target="<?php echo esc_attr( $update_modal_id ); ?>">
320 <i class="tutor-icon-edit tutor-mr-8" aria-hidden="true"></i>
321 <span><?php esc_html_e( 'Edit', 'tutor' ); ?></span>
322 </a>
323 </li>
324 <li>
325 <a href="#" class="tutor-dropdown-item" data-tutor-modal-target="<?php echo esc_attr( $delete_modal_id ); ?>">
326 <i class="tutor-icon-trash-can-bold tutor-mr-8" aria-hidden="true"></i>
327 <span><?php esc_html_e( 'Delete', 'tutor' ); ?></span>
328 </a>
329 </li>
330 </ul>
331 </div>
332 </div>
333
334 <?php
335 $course_title = isset( $course->post_title ) ? $course->post_title : '';
336 tutor_announcement_modal_details( $details_modal_id, $update_modal_id, $delete_modal_id, $announcement, $course_title, $date_format, $time_format );
337 tutor_announcement_modal( $update_modal_id, __( 'Edit Announcement', 'tutor' ), $courses, $announcement );
338 tutor_announcement_modal_delete( $delete_modal_id, $announcement->ID, $row_id );
339 ?>
340 </td>
341 </tr>
342 <?php endforeach; ?>
343 </tbody>
344 </table>
345
346 <div class="tutor-pagination-wrapper <?php echo esc_attr( is_admin() ? 'tutor-mt-20' : 'tutor-mt-40' ); ?>">
347 <?php
348 $limit = tutor_utils()->get_option( 'pagination_per_page' );
349 if ( $the_query->found_posts > $limit ) {
350 $pagination_data = array(
351 'total_items' => $the_query->found_posts,
352 'per_page' => $limit,
353 'paged' => $paged,
354 );
355
356 $pagination_template = tutor()->path . 'views/elements/pagination.php';
357 if ( is_admin() ) {
358 tutor_load_template_from_custom_path( $pagination_template, $pagination_data );
359 } else {
360 $pagination_template_frontend = tutor()->path . 'templates/dashboard/elements/pagination.php';
361 tutor_load_template_from_custom_path( $pagination_template_frontend, $pagination_data );
362 }
363 }
364 ?>
365 </div>
366 </div>
367
368 <?php else : ?>
369 <?php tutils()->render_list_empty_state(); ?>
370 <?php endif; ?>
371
372 <?php
373 tutor_announcement_modal( 'tutor_announcement_new', __( 'Create Announcement', 'tutor' ), $courses );
374 ?>
375