Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor-pro/addons/gradebook/views/pages/overview.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
1 -
1 + <?php
2 + /**
3 + * Gradebook List Template.
4 + *
5 + * @package Gradebook List
6 + */
7 +
8 + if ( ! defined( 'ABSPATH' ) ) {
9 + exit;
10 + }
11 +
12 + use TUTOR\Input;
13 + use Tutor\Models\CourseModel;
14 + use TUTOR_GB\GradeBook;
15 + $gradebook = new GradeBook();
16 +
17 +
18 + /**
19 + * Short able params
20 + */
21 + $user_id = Input::get( 'user_id', '' );
22 + $course_id = Input::get( 'course-id', '' );
23 + $order = Input::get( 'order', 'DESC' );
24 + $date = Input::has( 'date' ) ? tutor_get_formated_date( 'Y-m-d', Input::get( 'date' ) ) : '';
25 + $search = Input::get( 'search', '' );
26 +
27 + /**
28 + * Determine active tab
29 + */
30 + $active_tab = Input::get( 'data', 'overview' );
31 +
32 + /**
33 + * Navbar data to make nav menu
34 + */
35 + $url = get_pagenum_link();
36 + $add_gradebook_url = $url . '&sub_page=add_new_gradebook';
37 + $add_gradebook_settings_url = $url . '&sub_page=gradebooks';
38 +
39 + $filters = array(
40 + 'bulk_action' => false,
41 + 'filters' => array(
42 + array(
43 + 'label' => __( 'Courses', 'tutor-pro' ),
44 + 'field_type' => 'select',
45 + 'field_name' => 'course-id',
46 + 'options' => CourseModel::get_course_dropdown_options(),
47 + 'searchable' => true,
48 + 'value' => Input::get( 'course-id', '' ),
49 + ),
50 + array(
51 + 'label' => __( 'Date', 'tutor-pro' ),
52 + 'field_type' => 'date',
53 + 'field_name' => 'date',
54 + 'show_label' => true,
55 + 'value' => Input::get( 'date', '' ),
56 + ),
57 + ),
58 + );
59 +
60 + $per_page = get_tutor_option( 'pagination_per_page', 10 );
61 + $current_page = Input::get( 'paged', 1 );
62 + $start = max( 0, ( $current_page - 1 ) * $per_page );
63 +
64 +
65 + $course_id = Input::get( 'course-id', 0, Input::TYPE_INT );
66 + $gradebooks = get_generated_gradebooks(
67 + array(
68 + 'course_id' => $course_id,
69 + 'start' => $start,
70 + 'limit' => $per_page,
71 + )
72 + );
73 +
74 + $navbar_data = array(
75 + 'page_title' => $gradebook->page_title,
76 + 'tabs' => $gradebook->tabs_key_value( $course_id ),
77 + 'active' => $active_tab,
78 + );
79 + ?>
80 +
81 + <div class="tutor-admin-wrap">
82 + <?php
83 + /**
84 + * Load Templates with data.
85 + */
86 + $navbar_template = tutor()->path . 'views/elements/navbar.php';
87 + tutor_load_template_from_custom_path( $navbar_template, $navbar_data );
88 + $filters_template = tutor()->path . 'views/elements/list-filters.php';
89 + tutor_load_template_from_custom_path( $filters_template, $filters );
90 + ?>
91 + <div class="tutor-admin-container tutor-admin-container-lg">
92 + <div class="tutor-mt-16">
93 + <?php if ( is_array( $gradebooks->res ) && count( $gradebooks->res ) ) : ?>
94 + <div class="tutor-table-responsive tutor-dashboard-list-table">
95 + <table class="tutor-table tutor-table-middle table-gradebook">
96 + <thead>
97 + <tr>
98 + <th class="tutor-table-rows-sorting" width="10%">
99 + <?php esc_html_e( 'Completed Date', 'tutor-pro' ); ?>
100 + <span class="a-to-z-sort-icon tutor-icon-ordering-a-z"></span>
101 + </th>
102 + <th class="tutor-table-rows-sorting" width="35%">
103 + <?php esc_html_e( 'Course', 'tutor-pro' ); ?>
104 + <span class="a-to-z-sort-icon tutor-icon-ordering-a-z"></span>
105 + </th>
106 + <th class="tutor-table-rows-sorting" width="20%">
107 + <?php esc_html_e( 'Name', 'tutor-pro' ); ?>
108 + <span class="a-to-z-sort-icon tutor-icon-ordering-a-z"></span>
109 + </th>
110 + <th>
111 + <?php esc_html_e( 'Quiz', 'tutor-pro' ); ?>
112 + </th>
113 + <th>
114 + <?php esc_html_e( 'Assignments', 'tutor-pro' ); ?>
115 + </th>
116 + <th class="tutor-table-rows-sorting">
117 + <?php esc_html_e( 'Final Grade', 'tutor-pro' ); ?>
118 + <span class="tutor-icon-order-down up-down-icon"></span>
119 + </th>
120 + </tr>
121 + </thead>
122 +
123 + <tbody>
124 + <?php
125 + $course_ids = array_column( $gradebooks->res, 'course_id' );
126 + $course_meta_data = tutor_utils()->get_course_meta_data( $course_ids );
127 + $authors = array();
128 +
129 + foreach ( $gradebooks->res as $gradebook ) :
130 + $course_id_single = (int) $gradebook->course_id;
131 + $quiz_grade = get_quiz_gradebook_by_course( $gradebook->course_id, $gradebook->user_id );
132 + $assignment_grade = get_assignment_gradebook_by_course( $gradebook->course_id, $gradebook->user_id );
133 + $total_quiz = isset( $course_meta_data[ $course_id_single ] ) ? $course_meta_data[ $course_id_single ]['tutor_quiz'] : 0;
134 + $total_assignment = isset( $course_meta_data[ $course_id_single ] ) ? $course_meta_data[ $course_id_single ]['tutor_assignments'] : 0;
135 +
136 + ! isset( $authors[ $gradebook->user_id ] ) ? $authors[ $gradebook->user_id ] = get_userdata( $gradebook->user_id ) : 0;
137 + $user_info = $authors[ $gradebook->user_id ];
138 + ?>
139 + <tr>
140 + <td>
141 + <?php echo esc_html( tutor_get_formated_date( get_option( 'date_format' ), $gradebook->update_date ) ); ?>,
142 + <div class="tutor-fs-7 tutor-color-muted tutor-mt-4"><?php echo esc_html( tutor_get_formated_date( get_option( 'time_format' ), $gradebook->update_date ) ); ?></div>
143 + </td>
144 +
145 + <td>
146 + <div class="tutor-d-flex tutor-align-center tutor-gap-2">
147 + <?php echo esc_html( $gradebook->course_title ); ?>
148 + <a href="<?php echo esc_url( get_permalink( $gradebook->course_id ) ); ?>" class="tutor-iconic-btn" target="_blank">
149 + <span class="tutor-icon-external-link"></span>
150 + </a>
151 + </div>
152 +
153 + <div class="tutor-meta tutor-mt-8">
154 + <div>
155 + <?php esc_html_e( 'Quiz Complete: ', 'tutor-pro' ); ?>
156 + <span class="tutor-meta-value"><?php echo esc_html( $gradebook->quiz_count . '/' . $total_quiz ); ?></span>
157 + </div>
158 +
159 + <div>
160 + <?php esc_html_e( 'Assignment Complete: ', 'tutor-pro' ); ?>
161 + <span class="tutor-meta-value"><?php echo esc_html( $gradebook->assignment_count . '/' . $total_assignment ); ?></span>
162 + </div>
163 + </div>
164 + </td>
165 +
166 + <td>
167 + <div class="tutor-d-flex tutor-align-center tutor-gap-2">
168 + <?php echo wp_kses( tutor_utils()->get_tutor_avatar( $gradebook->user_id ), tutor_utils()->allowed_avatar_tags() ); ?>
169 +
170 + <div class="tutor-d-flex">
171 + <div class="tutor-fs-6">
172 + <?php echo esc_html( $gradebook->display_name ); ?>
173 + <div class="tutor-fs-7 tutor-fw-normal tutor-color-muted tutor-mt-4">
174 + <?php echo ( $user_info && is_object( $user_info ) ) ? esc_html( $user_info->user_email ) : ''; ?>
175 + </div>
176 + </div>
177 + </div>
178 +
179 + <a href="<?php echo esc_url( tutor_utils()->profile_url( $gradebook->user_id, false ) ); ?>" class="tutor-iconic-btn" target="_blank">
180 + <span class="tutor-icon-external-link"></span>
181 + </a>
182 + </div>
183 + </td>
184 +
185 + <td>
186 + <div class="tutor-d-flex tutor-align-center tutor-gap-2 tutor-fs-7">
187 + <span><?php echo $quiz_grade ? wp_kses_post( tutor_generate_grade_html( $quiz_grade, 'outline' ) ?? '' ) : ''; ?></span>
188 + <?php if ( $quiz_grade && isset( $quiz_grade->earned_grade_point, $quiz_grade->grade_point ) ) : ?>
189 + <span>(<?php echo esc_html( number_format( $quiz_grade->earned_grade_point, 2 ) . '/' . number_format( $quiz_grade->grade_point, 2 ) ); ?>)</span>
190 + <?php endif; ?>
191 + </div>
192 + </td>
193 +
194 + <td>
195 + <div class="tutor-d-flex tutor-align-center tutor-gap-2 tutor-fs-7">
196 + <span>
197 + <?php echo $assignment_grade ? wp_kses_post( tutor_generate_grade_html( $assignment_grade, 'outline' ) ?? '' ) : ''; ?>
198 + </span>
199 + <?php if ( $assignment_grade && isset( $assignment_grade->earned_grade_point, $assignment_grade->grade_point ) ) : ?>
200 + <span>(<?php echo esc_html( number_format( $assignment_grade->earned_grade_point, 2 ) . '/' . number_format( $assignment_grade->grade_point, 2 ) ); ?>)</span>
201 + <?php endif; ?>
202 + </div>
203 + </td>
204 +
205 + <td>
206 + <div class="tutor-d-flex tutor-align-center tutor-gap-2 tutor-fs-7">
207 + <?php echo wp_kses_post( tutor_generate_grade_html( $gradebook ) ); ?>
208 + <span>(<?php echo esc_html( number_format( $gradebook->earned_grade_point, 2 ) . '/' . number_format( $gradebook->grade_point, 2 ) ); ?>)</span>
209 + </div>
210 + </td>
211 + </tr>
212 + <?php endforeach; ?>
213 + </tbody>
214 + </table>
215 + </div>
216 + <?php else : ?>
217 + <?php tutils()->render_list_empty_state(); ?>
218 + <?php endif; ?>
219 + </div>
220 +
221 + <div class="tutor-admin-page-pagination-wrapper tutor-mt-32">
222 + <?php
223 + /**
224 + * Prepare pagination data & load template
225 + */
226 + $total = $gradebooks ? $gradebooks->count : 0;
227 + if ( $total > $per_page ) {
228 + $pagination_data = array(
229 + 'total_items' => $total,
230 + 'per_page' => $per_page,
231 + 'paged' => $current_page,
232 + );
233 + $pagination_template = tutor()->path . 'views/elements/pagination.php';
234 + tutor_load_template_from_custom_path( $pagination_template, $pagination_data );
235 + }
236 + ?>
237 + </div>
238 + </div>
239 + </div>
240 +