Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor/classes/Config.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
1 -
1 + <?php
2 + /**
3 + * Tutor Config
4 + *
5 + * @package Tutor
6 + * @author Themeum <support@themeum.com>
7 + * @link https://themeum.com
8 + * @since 3.7.0
9 + */
10 +
11 + namespace TUTOR;
12 +
13 + if ( ! defined( 'ABSPATH' ) ) {
14 + exit;
15 + }
16 +
17 + /**
18 + * Config Class
19 + *
20 + * @since 3.7.0
21 + */
22 + class Config extends Singleton {
23 + /**
24 + * All settings.
25 + *
26 + * @since 3.7.0
27 + *
28 + * @var array
29 + */
30 + private array $settings = array();
31 +
32 + /**
33 + * Constructor function
34 + *
35 + * @since 3.7.0
36 + */
37 + public function __construct() {
38 + $path = plugin_dir_path( TUTOR_FILE );
39 + $has_pro = defined( 'TUTOR_PRO_VERSION' );
40 +
41 + // Prepare the basepath.
42 + $home_url = get_home_url();
43 + $parsed = parse_url( $home_url );
44 + $base_path = ( is_array( $parsed ) && isset( $parsed['path'] ) ) ? $parsed['path'] : '/';
45 + $base_path = rtrim( $base_path, '/' ) . '/';
46 + // Get current URL.
47 + $current_url = trailingslashit( $home_url ) . substr( $_SERVER['REQUEST_URI'], strlen( $base_path ) );//phpcs:ignore
48 +
49 + $this->settings = array(
50 + 'path' => $path,
51 + 'url' => plugin_dir_url( TUTOR_FILE ),
52 + 'icon_dir' => plugin_dir_url( TUTOR_FILE ) . 'assets/images/images-v2/icons/',
53 + 'v2_img_dir' => plugin_dir_url( TUTOR_FILE ) . 'assets/images/images-v2/',
54 + 'current_url' => $current_url,
55 + 'basename' => plugin_basename( TUTOR_FILE ),
56 + 'basepath' => $base_path,
57 + 'version' => TUTOR_VERSION,
58 + 'nonce_action' => 'tutor_nonce_action',
59 + 'nonce' => '_tutor_nonce',
60 + 'course_post_type' => apply_filters( 'tutor_course_post_type', 'courses' ),
61 + 'bundle_post_type' => apply_filters( 'tutor_bundle_post_type', 'course-bundle' ),
62 + 'lesson_post_type' => apply_filters( 'tutor_lesson_post_type', 'lesson' ),
63 + 'instructor_role' => apply_filters( 'tutor_instructor_role', 'tutor_instructor' ),
64 + 'template_path' => apply_filters( 'tutor_template_path', 'tutor/' ),
65 + 'has_pro' => apply_filters( 'tutor_has_pro', $has_pro ),
66 + // @since v2.0.6.
67 + 'topics_post_type' => apply_filters( 'tutor_topics_post_type', 'topics' ),
68 + 'announcement_post_type' => apply_filters( 'tutor_announcement_post_type', 'tutor_announcements' ),
69 + 'assignment_post_type' => apply_filters( 'tutor_assignment_post_type', 'tutor_assignments' ),
70 + 'enrollment_post_type' => apply_filters( 'tutor_enrollment_post_type', 'tutor_enrolled' ),
71 + 'quiz_post_type' => apply_filters( 'tutor_quiz_post_type', 'tutor_quiz' ),
72 + 'zoom_post_type' => apply_filters( 'tutor_zoom_meeting_post_type', 'tutor_zoom_meeting' ),
73 + 'meet_post_type' => apply_filters( 'tutor_google_meeting_post_type', 'tutor-google-meet' ),
74 + );
75 + }
76 +
77 + /**
78 + * Get a config value as property.
79 + *
80 + * @since 3.7.0
81 + *
82 + * @param string $key key.
83 + *
84 + * @return mixed
85 + */
86 + public function __get( string $key ) {
87 + if ( ! array_key_exists( $key, $this->settings ) ) {
88 + tutor_log( "Warning: Config property {$key} does not exist." );
89 + return null;
90 + }
91 + return $this->settings[ $key ];
92 + }
93 +
94 + /**
95 + * Get all settings
96 + *
97 + * @since 3.7.0
98 + *
99 + * @return array
100 + */
101 + public function all(): array {
102 + return $this->settings;
103 + }
104 + }
105 +