Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor/views/pages/announcements.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
1 -
1 + <?php
2 + /**
3 + * Announcement page
4 + *
5 + * Configure query with get params
6 + *
7 + * @package Tutor\Views
8 + * @author Themeum <support@themeum.com>
9 + * @link https://themeum.com
10 + * @since 2.0.0
11 + */
12 +
13 + if ( ! defined( 'ABSPATH' ) ) {
14 + exit;
15 + }
16 +
17 + use TUTOR\Input;
18 + use Tutor\Models\CourseModel;
19 +
20 + $announcement_obj = tutor_lms()->announcements;
21 +
22 + $limit = tutor_utils()->get_option( 'pagination_per_page' );
23 + $page_filter = Input::get( 'paged', 1, Input::TYPE_INT );
24 + $order_filter = Input::get( 'order', 'DESC' );
25 + $search_filter = Input::get( 'search', '' );
26 + $course_id = Input::get( 'course-id', 0, Input::TYPE_INT );
27 + $date_filter = Input::get( 'date', '' );
28 +
29 + $year = date( 'Y', strtotime( $date_filter ) );
30 + $month = date( 'm', strtotime( $date_filter ) );
31 + $day = date( 'd', strtotime( $date_filter ) );
32 +
33 + $args = array(
34 + 'post_type' => 'tutor_announcements',
35 + 'post_status' => 'publish',
36 + 's' => $search_filter,
37 + 'posts_per_page' => sanitize_text_field( $limit ),
38 + 'paged' => sanitize_text_field( $page_filter ),
39 + 'orderBy' => 'ID',
40 + 'order' => sanitize_text_field( $order_filter ),
41 +
42 + );
43 +
44 + if ( $course_id ) {
45 + $args['post_parent'] = $course_id;
46 + }
47 +
48 + if ( ! empty( $date_filter ) ) {
49 + $args['date_query'] = array(
50 + array(
51 + 'year' => $year,
52 + 'month' => $month,
53 + 'day' => $day,
54 + ),
55 + );
56 + }
57 +
58 + if ( ! current_user_can( 'administrator' ) ) {
59 + $args['author'] = get_current_user_id();
60 + }
61 +
62 + $the_query = new WP_Query( $args );
63 +
64 + /**
65 + * Navbar data to make nav menu
66 + */
67 + $navbar_data = array(
68 + 'page_title' => $announcement_obj->page_title,
69 + );
70 +
71 + /**
72 + * Filters for sorting searching
73 + */
74 + $filters = array(
75 + 'bulk_action' => $announcement_obj->bulk_action,
76 + 'bulk_actions' => $announcement_obj->prepare_bulk_actions(),
77 + 'ajax_action' => 'tutor_announcement_bulk_action',
78 + 'filters' => array(
79 + array(
80 + 'label' => __( 'Courses', 'tutor' ),
81 + 'field_type' => 'select',
82 + 'field_name' => 'course-id',
83 + 'options' => CourseModel::get_course_dropdown_options(),
84 + 'searchable' => true,
85 + 'value' => Input::get( 'course-id', '' ),
86 + ),
87 + array(
88 + 'label' => __( 'Date', 'tutor' ),
89 + 'field_type' => 'date',
90 + 'field_name' => 'date',
91 + 'show_label' => true,
92 + 'value' => Input::get( 'date', '' ),
93 + ),
94 + ),
95 + );
96 + ?>
97 +
98 + <div class="tutor-admin-wrap">
99 + <?php
100 + /**
101 + * Load Templates with data.
102 + */
103 + $filters_template = tutor()->path . 'views/elements/list-filters.php';
104 + $navbar_template = tutor()->path . 'views/elements/list-navbar.php';
105 + tutor_load_template_from_custom_path( $navbar_template, $navbar_data );
106 + ?>
107 +
108 + <div class="tutor-admin-container tutor-admin-container-lg tutor-mb-24">
109 + <div class="tutor-card tutor-p-24">
110 + <div class="tutor-row tutor-align-lg-center">
111 + <div class="tutor-col-lg-auto tutor-mb-16 tutor-mb-lg-0">
112 + <div class="tutor-round-box">
113 + <i class="tutor-icon-bullhorn tutor-fs-3" area-hidden="true"></i>
114 + </div>
115 + </div>
116 +
117 + <div class="tutor-col tutor-mb-16 tutor-mb-lg-0">
118 + <div class="tutor-fs-6 tutor-color-muted tutor-mb-4">
119 + <?php esc_html_e( 'Create Announcement', 'tutor' ); ?>
120 + </div>
121 + <div class="tutor-fs-5 tutor-color-black">
122 + <?php esc_html_e( 'Notify all students of your course', 'tutor' ); ?>
123 + </div>
124 + </div>
125 +
126 + <div class="tutor-col-lg-auto">
127 + <button type="button" class="tutor-btn tutor-btn-primary tutor-btn-lg" data-tutor-modal-target="tutor_announcement_new">
128 + <?php esc_html_e( 'Add New Announcement', 'tutor' ); ?>
129 + </button>
130 + </div>
131 + </div>
132 + </div>
133 + </div>
134 +
135 + <?php
136 + tutor_load_template_from_custom_path( $filters_template, $filters );
137 + ?>
138 +
139 + <div class="tutor-admin-container tutor-admin-container-lg">
140 + <div class="tutor-admin-announcements-list tutor-mt-16">
141 + <?php
142 + $announcements = $the_query->have_posts() ? $the_query->posts : array();
143 + $announcement_template = tutor()->path . '/views/fragments/announcement-list.php';
144 + tutor_load_template_from_custom_path(
145 + $announcement_template,
146 + array(
147 + 'announcements' => is_array( $announcements ) ? $announcements : array(),
148 + 'the_query' => $the_query,
149 + 'paged' => $page_filter,
150 + )
151 + );
152 + ?>
153 + </div>
154 + </div>
155 + </div>
156 +