| @@ -1,93 +1,93 @@ | ||
| 1 | -<?php | |
| 2 | - | |
| 3 | -namespace LearnPress\Shortcodes\Courses; | |
| 4 | - | |
| 5 | -use LearnPress\Databases\DataBase; | |
| 6 | -use LearnPress\Filters\Course\CourseJsonFilter; | |
| 7 | -use LearnPress\Helpers\Singleton; | |
| 8 | -use LearnPress\Helpers\Template; | |
| 9 | -use LearnPress\Models\CourseModel; | |
| 10 | -use LearnPress\Models\Courses; | |
| 11 | -use LearnPress\Shortcodes\AbstractShortcode; | |
| 12 | -use LearnPress\TemplateHooks\Course\ListCoursesTemplate; | |
| 13 | -use LP_Debug; | |
| 14 | -use LP_Helper; | |
| 15 | -use Throwable; | |
| 16 | - | |
| 17 | -/** | |
| 18 | - * Shortcode display list courses. | |
| 19 | - * | |
| 20 | - * @since 4.3.2.3 | |
| 21 | - * @version 1.0.1 | |
| 22 | - */ | |
| 23 | -class ListCoursesShortcode extends AbstractShortcode { | |
| 24 | - use singleton; | |
| 25 | - | |
| 26 | - protected $shortcode_name = 'courses'; | |
| 27 | - | |
| 28 | - /** | |
| 29 | - * Show single instructor | |
| 30 | - * | |
| 31 | - * @param $attrs [ 'limit', 'c_status', 'order_by', 'order', '' ] | |
| 32 | - * | |
| 33 | - * @return string | |
| 34 | - */ | |
| 35 | - public function render( $attrs ): string { | |
| 36 | - $content = ''; | |
| 37 | - wp_enqueue_style( 'learnpress' ); | |
| 38 | - wp_enqueue_script( 'lp-courses-v2' ); | |
| 39 | - | |
| 40 | - try { | |
| 41 | - if ( empty( $attrs ) ) { | |
| 42 | - $attrs = []; | |
| 43 | - } | |
| 44 | - | |
| 45 | - $attrs['c_status'] = LP_Helper::sanitize_params_submitted( $attrs['c_status'] ?? 'publish' ); | |
| 46 | - $filter = new CourseJsonFilter(); | |
| 47 | - Courses::handle_params_for_query_list_courses( $filter, $attrs ); | |
| 48 | - $filter->only_fields = [ CourseJsonFilter::COL_ID ]; | |
| 49 | - | |
| 50 | - $total_rows = 0; | |
| 51 | - $courses = Courses::get_list_courses( $filter, $total_rows ); | |
| 52 | - $total_pages = DataBase::get_total_pages( $filter->limit, $total_rows ); | |
| 53 | - $attrs['total_pages'] = $total_pages; | |
| 54 | - $attrs['total_rows'] = $total_rows; | |
| 55 | - $attrs['courses_per_page'] = $filter->limit; | |
| 56 | - $skin = LP_Helper::sanitize_params_submitted( $attrs['skin'] ?? 'list' ); | |
| 57 | - $paged = $attrs['paged'] ?? 1; | |
| 58 | - $attrs['paged'] = $paged; | |
| 59 | - $listCoursesTemplate = self::instance(); | |
| 60 | - | |
| 61 | - // HTML section courses. | |
| 62 | - $html_courses = ''; | |
| 63 | - if ( empty( $courses ) ) { | |
| 64 | - $html_courses = Template::print_message( __( 'No courses found', 'learnpress' ), 'info', false ); | |
| 65 | - } else { | |
| 66 | - foreach ( $courses as $courseObj ) { | |
| 67 | - $course = CourseModel::find( $courseObj->ID, true ); | |
| 68 | - $html_courses .= ListCoursesTemplate::render_course( $course, $attrs ); | |
| 69 | - } | |
| 70 | - } | |
| 71 | - | |
| 72 | - $section_courses = apply_filters( | |
| 73 | - 'learn-press/layout/list-courses/shortcode/section', | |
| 74 | - [ | |
| 75 | - 'wrap' => sprintf( | |
| 76 | - '<ul class="learn-press-courses lp-list-courses-no-css %1$s learn-press-courses-shortcode" data-layout="%1$s">', | |
| 77 | - esc_attr( $skin ) | |
| 78 | - ), | |
| 79 | - 'courses' => wp_kses_post( $html_courses ), | |
| 80 | - 'wrap_end' => '</ul>', | |
| 81 | - ], | |
| 82 | - $courses, | |
| 83 | - $attrs | |
| 84 | - ); | |
| 85 | - | |
| 86 | - $content = Template::combine_components( $section_courses ); | |
| 87 | - } catch ( Throwable $e ) { | |
| 88 | - LP_Debug::error_log( $e ); | |
| 89 | - } | |
| 90 | - | |
| 91 | - return $content; | |
| 92 | - } | |
| 93 | -} | |
| 1 | +<?php | |
| 2 | + | |
| 3 | +namespace LearnPress\Shortcodes\Courses; | |
| 4 | + | |
| 5 | +use LearnPress\Databases\DataBase; | |
| 6 | +use LearnPress\Filters\Course\CourseJsonFilter; | |
| 7 | +use LearnPress\Helpers\Singleton; | |
| 8 | +use LearnPress\Helpers\Template; | |
| 9 | +use LearnPress\Models\CourseModel; | |
| 10 | +use LearnPress\Models\Courses; | |
| 11 | +use LearnPress\Shortcodes\AbstractShortcode; | |
| 12 | +use LearnPress\TemplateHooks\Course\ListCoursesTemplate; | |
| 13 | +use LP_Debug; | |
| 14 | +use LP_Helper; | |
| 15 | +use Throwable; | |
| 16 | + | |
| 17 | +/** | |
| 18 | + * Shortcode display list courses. | |
| 19 | + * | |
| 20 | + * @since 4.3.2.3 | |
| 21 | + * @version 1.0.1 | |
| 22 | + */ | |
| 23 | +class ListCoursesShortcode extends AbstractShortcode { | |
| 24 | + use singleton; | |
| 25 | + | |
| 26 | + protected $shortcode_name = 'courses'; | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * Show single instructor | |
| 30 | + * | |
| 31 | + * @param $attrs [ 'limit', 'c_status', 'order_by', 'order', '' ] | |
| 32 | + * | |
| 33 | + * @return string | |
| 34 | + */ | |
| 35 | + public function render( $attrs ): string { | |
| 36 | + $content = ''; | |
| 37 | + wp_enqueue_style( 'learnpress' ); | |
| 38 | + wp_enqueue_script( 'lp-courses-v2' ); | |
| 39 | + | |
| 40 | + try { | |
| 41 | + if ( empty( $attrs ) ) { | |
| 42 | + $attrs = []; | |
| 43 | + } | |
| 44 | + | |
| 45 | + $attrs['c_status'] = LP_Helper::sanitize_params_submitted( $attrs['c_status'] ?? 'publish' ); | |
| 46 | + $filter = new CourseJsonFilter(); | |
| 47 | + Courses::handle_params_for_query_list_courses( $filter, $attrs ); | |
| 48 | + $filter->only_fields = [ CourseJsonFilter::COL_ID ]; | |
| 49 | + | |
| 50 | + $total_rows = 0; | |
| 51 | + $courses = Courses::get_list_courses( $filter, $total_rows ); | |
| 52 | + $total_pages = DataBase::get_total_pages( $filter->limit, $total_rows ); | |
| 53 | + $attrs['total_pages'] = $total_pages; | |
| 54 | + $attrs['total_rows'] = $total_rows; | |
| 55 | + $attrs['courses_per_page'] = $filter->limit; | |
| 56 | + $skin = LP_Helper::sanitize_params_submitted( $attrs['skin'] ?? 'list' ); | |
| 57 | + $paged = $attrs['paged'] ?? 1; | |
| 58 | + $attrs['paged'] = $paged; | |
| 59 | + $listCoursesTemplate = self::instance(); | |
| 60 | + | |
| 61 | + // HTML section courses. | |
| 62 | + $html_courses = ''; | |
| 63 | + if ( empty( $courses ) ) { | |
| 64 | + $html_courses = Template::print_message( __( 'No courses found', 'learnpress' ), 'info', false ); | |
| 65 | + } else { | |
| 66 | + foreach ( $courses as $courseObj ) { | |
| 67 | + $course = CourseModel::find( $courseObj->ID, true ); | |
| 68 | + $html_courses .= ListCoursesTemplate::render_course( $course, $attrs ); | |
| 69 | + } | |
| 70 | + } | |
| 71 | + | |
| 72 | + $section_courses = apply_filters( | |
| 73 | + 'learn-press/layout/list-courses/shortcode/section', | |
| 74 | + [ | |
| 75 | + 'wrap' => sprintf( | |
| 76 | + '<ul class="learn-press-courses lp-list-courses-no-css %1$s learn-press-courses-shortcode" data-layout="%1$s">', | |
| 77 | + esc_attr( $skin ) | |
| 78 | + ), | |
| 79 | + 'courses' => wp_kses_post( $html_courses ), | |
| 80 | + 'wrap_end' => '</ul>', | |
| 81 | + ], | |
| 82 | + $courses, | |
| 83 | + $attrs | |
| 84 | + ); | |
| 85 | + | |
| 86 | + $content = Template::combine_components( $section_courses ); | |
| 87 | + } catch ( Throwable $e ) { | |
| 88 | + LP_Debug::error_log( $e ); | |
| 89 | + } | |
| 90 | + | |
| 91 | + return $content; | |
| 92 | + } | |
| 93 | +} | |