Addons.php
11 months ago
Admin.php
2 months ago
Ajax.php
9 months ago
Announcements.php
1 year ago
Assets.php
2 months ago
Backend_Page_Trait.php
1 year ago
BaseController.php
1 year ago
Config.php
11 months ago
Container.php
11 months ago
Course.php
2 months ago
Course_Embed.php
3 years ago
Course_Filter.php
1 year ago
Course_List.php
5 months ago
Course_Settings_Tabs.php
1 year ago
Course_Widget.php
1 year ago
Custom_Validation.php
3 years ago
Dashboard.php
1 year ago
Earnings.php
9 months ago
FormHandler.php
2 years ago
Frontend.php
1 year ago
Gutenberg.php
1 year ago
Icon.php
8 months ago
Input.php
1 year ago
Instructor.php
2 months ago
Instructors_List.php
2 months ago
Lesson.php
2 weeks ago
Options_V2.php
7 months ago
Permalink.php
2 years ago
Post_types.php
1 year ago
Private_Course_Access.php
1 year ago
Q_And_A.php
10 months ago
Question_Answers_List.php
11 months ago
Quiz.php
2 weeks ago
QuizBuilder.php
2 days ago
Quiz_Attempts_List.php
9 months ago
RestAPI.php
2 years ago
Reviews.php
9 months ago
Rewrite_Rules.php
2 years ago
Shortcode.php
9 months ago
Singleton.php
1 year ago
Student.php
2 months ago
Students_List.php
1 year ago
Taxonomies.php
1 year ago
Template.php
9 months ago
Theme_Compatibility.php
3 years ago
Tools.php
1 year ago
Tools_V2.php
3 weeks ago
Tutor.php
2 months ago
TutorEDD.php
1 year ago
Tutor_Base.php
2 years ago
Tutor_Setup.php
8 months ago
Upgrader.php
9 months ago
User.php
4 months ago
Utils.php
2 days ago
Video_Stream.php
3 years ago
WhatsNew.php
9 months ago
Withdraw.php
2 days ago
Withdraw_Requests_List.php
11 months ago
WooCommerce.php
2 days ago
BaseController.php
73 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Base Controller |
| 4 | * |
| 5 | * @package Tutor\BaseController |
| 6 | * @author Themeum <support@themeum.com> |
| 7 | * @link https://themeum.com |
| 8 | * @since 3.0.0 |
| 9 | */ |
| 10 | |
| 11 | namespace TUTOR; |
| 12 | |
| 13 | if ( ! defined( 'ABSPATH' ) ) { |
| 14 | exit; |
| 15 | } |
| 16 | |
| 17 | /** |
| 18 | * Base Controller |
| 19 | */ |
| 20 | abstract class BaseController { |
| 21 | |
| 22 | /** |
| 23 | * Get model object |
| 24 | * |
| 25 | * @since 3.0.0 |
| 26 | * @return object |
| 27 | */ |
| 28 | abstract public function get_model(); |
| 29 | |
| 30 | /** |
| 31 | * Get allowed field and optionally set empty values |
| 32 | * for the required fields |
| 33 | * |
| 34 | * @since 3.0.0 |
| 35 | * |
| 36 | * @param array $params Request params. |
| 37 | * @param boolean $set_required To set required fields empty values. |
| 38 | * |
| 39 | * @return array |
| 40 | */ |
| 41 | public function get_allowed_fields( array $params, $set_required = true ) { |
| 42 | $fillable = $this->get_model()->get_fillable_fields(); |
| 43 | $required_fields = $this->get_model()->get_required_fields(); |
| 44 | |
| 45 | $allowed_params = array_intersect_key( $params, array_flip( $fillable ) ); |
| 46 | |
| 47 | // Set empty value if set_required is true. |
| 48 | if ( $set_required ) { |
| 49 | $this->setup_required_fields( $allowed_params, $required_fields ); |
| 50 | } |
| 51 | |
| 52 | return $allowed_params; |
| 53 | } |
| 54 | |
| 55 | /** |
| 56 | * Setup required fields on the request params |
| 57 | * |
| 58 | * @since 3.0.0 |
| 59 | * |
| 60 | * @param array $params Reference request params. |
| 61 | * @param array $required_fields Required fields. |
| 62 | * |
| 63 | * @return void |
| 64 | */ |
| 65 | public function setup_required_fields( array &$params, $required_fields ) { |
| 66 | foreach ( $required_fields as $field ) { |
| 67 | if ( ! isset( $params[ $field ] ) ) { |
| 68 | $params[ $field ] = ''; |
| 69 | } |
| 70 | } |
| 71 | } |
| 72 | } |
| 73 |