PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.10
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.10
4.4.10 4.4.9.1 4.4.9 4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 All 142 releases
← All changes | inc/TemplateHooks/CourseBuilder/Lesson/BuilderListLessonsTemplate.php +65 -31 4.4.8 → 4.4.10 View file →
@@ -8,8 +8,9 @@
8 8
9 9 namespace LearnPress\TemplateHooks\CourseBuilder\Lesson;
10 10
11 11 use LearnPress\CourseBuilder\CourseBuilder;
12 +use LearnPress\Helpers\Response;
12 13 use LearnPress\Helpers\Singleton;
13 14 use LearnPress\Helpers\Template;
14 15 use LearnPress\Models\LessonPostModel;
15 16 use LearnPress\Models\PostModel;
@@ -17,8 +18,9 @@
17 18 use LearnPress\TemplateHooks\CourseBuilder\BuilderPopupTemplate;
18 19 use LearnPress\TemplateHooks\CourseBuilder\Course\BuilderCourseTemplate;
19 20 use LearnPress\TemplateHooks\CourseBuilder\CourseBuilderTemplate;
20 21 use LearnPress\TemplateHooks\TemplateAJAX;
22 +use LearnPress\TemplateHooks\Table\TableListTemplate;
21 23 use LP_WP_Filesystem;
22 24 use Throwable;
23 25 use WP_Query;
24 26
@@ -148,17 +150,9 @@
148 150 }
149 151 }
150 152 wp_reset_postdata();
151 153
152 - if ( ! empty( $lessons ) ) {
153 - $html_lessons = $this->list_lessons( $lessons );
154 - } else {
155 - $html_lessons = Template::print_message(
156 - sprintf( __( 'No lessons found', 'learnpress' ) ),
157 - 'info',
158 - false
159 - );
160 - }
154 + $html_lessons = $this->list_lessons( $lessons );
161 155
162 156 $total_pages = \LP_Database::get_total_pages( $query_args['posts_per_page'], $total_lessons );
163 157 $link_tab = CourseBuilder::get_tab_link( 'lessons' );
164 158 $data_pagination = [
@@ -201,31 +195,57 @@
201 195 $content = '';
202 196
203 197 try {
204 198 $html_list_lesson = '';
199 +
200 + if ( empty( $lessons ) ) {
201 + return Template::print_message(
202 + __( 'No lessons found', 'learnpress' ),
203 + 'info',
204 + false
205 + );
206 + }
207 +
205 208 foreach ( $lessons as $lesson_model ) {
206 209 $html_list_lesson .= self::render_lesson( $lesson_model );
207 210 }
208 211
209 - $header = '<div class="cb-list-table-header">';
210 - $header .= sprintf( '<span>%s</span>', __( 'Lesson Title', 'learnpress' ) );
211 - $header .= sprintf( '<span>%s</span>', __( 'Courses', 'learnpress' ) );
212 - $header .= sprintf( '<span>%s</span>', __( 'Create Date', 'learnpress' ) );
213 - $header .= sprintf( '<span>%s</span>', __( 'Status', 'learnpress' ) );
214 - $header .= sprintf( '<span>%s</span>', __( 'Preview', 'learnpress' ) );
215 - $header .= sprintf( '<span>%s</span>', __( 'Actions', 'learnpress' ) );
216 - $header .= '</div>';
217 -
218 - $sections = [
219 - 'header' => $header,
220 - 'wrapper' => '<ul class="cb-list-lesson">',
221 - 'list_lesson' => $html_list_lesson,
222 - 'wrapper_end' => '</ul>',
212 + $table_args = [
213 + 'class_table' => 'cb-list-table cb-list-lesson',
214 + 'header' => [
215 + 'title' => [
216 + 'class' => 'cb-col-title',
217 + 'title' => __( 'Lesson Title', 'learnpress' ),
218 + ],
219 + 'courses' => [
220 + 'class' => 'cb-col-assigned',
221 + 'title' => __( 'Courses', 'learnpress' ),
222 + ],
223 + 'date' => [
224 + 'class' => 'cb-col-date',
225 + 'title' => __( 'Create Date', 'learnpress' ),
226 + ],
227 + 'status' => [
228 + 'class' => 'cb-col-status',
229 + 'title' => __( 'Status', 'learnpress' ),
230 + ],
231 + 'preview' => [
232 + 'class' => 'cb-col-preview',
233 + 'title' => __( 'Preview', 'learnpress' ),
234 + ],
235 + 'actions' => [
236 + 'class' => 'cb-col-actions',
237 + 'title' => __( 'Actions', 'learnpress' ),
238 + ],
239 + ],
240 + 'body' => [
241 + 'rows_html' => $html_list_lesson,
242 + ],
223 243 ];
224 244
225 - $content = Template::combine_components( $sections );
245 + $content = TableListTemplate::instance()->html_table( $table_args );
226 246 } catch ( Throwable $e ) {
227 - error_log( __METHOD__ . ': ' . $e->getMessage() );
247 + $content = Template::print_message( $e->getMessage(), Response::STATUS_ERROR );
228 248 }
229 249
230 250 return $content;
231 251 }
@@ -349,17 +369,31 @@
349 369 $lesson,
350 370 $settings
351 371 );
352 372
373 + $cell_classes = [
374 + 'courses' => 'assigned',
375 + 'lesson_status' => 'status',
376 + ];
377 + $html_cells = [];
378 + foreach ( $html_content as $key => $html ) {
379 + $cell_class = $cell_classes[ $key ] ?? $key;
380 + $html_cells[ $key ] = sprintf(
381 + '<td class="cb-col-%s">%s</td>',
382 + esc_attr( sanitize_html_class( $cell_class ) ),
383 + $html
384 + );
385 + }
386 +
353 387 $section = apply_filters(
354 388 'learn-press/course-builder/list-lessons/item-li',
355 389 [
356 - 'wrapper_li' => '<li class="lesson">',
357 - 'wrapper_div' => sprintf( '<div class="lesson-item" data-lesson-id="%s" data-status="%s">', $lesson['id'], $status ),
358 - 'lesson_info' => Template::combine_components( $html_content ),
359 - 'lesson_action' => Template::combine_components( $html_action ),
360 - 'wrapper_div_end' => '</div>',
361 - 'wrapper_li_end' => '</li>',
390 + 'wrapper_li' => sprintf( '<tr class="lesson lesson-item" data-lesson-id="%s" data-status="%s">', $lesson['id'], $status ),
391 + 'wrapper_div' => '',
392 + 'lesson_info' => Template::combine_components( $html_cells ),
393 + 'lesson_action' => sprintf( '<td class="cb-col-actions">%s</td>', Template::combine_components( $html_action ) ),
394 + 'wrapper_div_end' => '',
395 + 'wrapper_li_end' => '</tr>',
362 396 ],
363 397 $lesson,
364 398 $settings
365 399 );