PluginProbe
Presto Player / 2.0.7
Presto Player v2.0.7
4.5.0 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 All 126 releases
presto-player / inc / Services / Settings.php
Settings.php
275 lines 9.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace PrestoPlayer\Services;
4
5 use PrestoPlayer\Plugin;
6 use PrestoPlayer\Models\Setting;
7
8 class Settings
9 {
10 /**
11 * Register our settings
12 *
13 * @return void
14 */
15 public function register()
16 {
17 add_action('admin_init', [$this, 'registerSettings']);
18 add_action('rest_api_init', [$this, 'registerSettings']);
19 }
20
21 public function registerSettings()
22 {
23 /**
24 * Analytics settings
25 */
26 \register_setting(
27 'presto_player',
28 'presto_player_analytics',
29 [
30 'type' => 'object',
31 'description' => __('Analytics settings.', 'presto-player'),
32 'show_in_rest' => [
33 'name' => 'presto_player_analytics',
34 'type' => 'object',
35 'schema' => [
36 'properties' => [
37 'enable' => [
38 'type' => 'boolean',
39 ],
40 'purge_data' => [
41 'type' => 'boolean',
42 ]
43 ]
44 ]
45 ],
46 'default' => [
47 'enable' => false,
48 'purge_data' => true
49 ]
50 ]
51 );
52
53 /**
54 * Branding settings
55 */
56 \register_setting(
57 'presto_player',
58 'presto_player_branding',
59 [
60 'type' => 'object',
61 'description' => __('Branding settings.', 'presto-player'),
62 'show_in_rest' => [
63 'name' => 'presto_player_branding',
64 'type' => 'object',
65 'schema' => [
66 'properties' => [
67 'logo' => [
68 'type' => 'string',
69 'sanitize_callback' => 'esc_url_raw'
70 ],
71 'logo_width' => [
72 'type' => 'number',
73 'sanitize_callback' => 'intval'
74 ],
75 'color' => [
76 'type' => 'string',
77 'sanitize_callback' => 'sanitize_hex_color'
78 ],
79 'player_css' => [
80 'type' => 'string'
81 ]
82 ]
83 ]
84 ],
85 'default' => [
86 'logo' => '',
87 'logo_width' => 150,
88 'color' => Setting::getDefaultColor(),
89 'player_css' => ''
90 ]
91 ]
92 );
93
94 \register_setting(
95 'presto_player',
96 'presto_player_performance',
97 [
98 'type' => 'object',
99 'description' => __('Performance settings.', 'presto-player'),
100 'show_in_rest' => [
101 'name' => 'presto_player_performance',
102 'type' => 'object',
103 'schema' => [
104 'properties' => [
105 'module_enabled' => [
106 'type' => 'boolean',
107 ],
108 'automations' => [
109 'type' => 'boolean'
110 ]
111 ]
112 ]
113 ],
114 'default' => [
115 'module_enabled' => false,
116 'automations' => true
117 ]
118 ]
119 );
120
121 /**
122 * Uninstall settings
123 */
124 \register_setting(
125 'presto_player',
126 'presto_player_uninstall',
127 [
128 'type' => 'object',
129 'description' => __('Uninstall settings.', 'presto-player'),
130 'show_in_rest' => [
131 'name' => 'presto_player_uninstall',
132 'type' => 'object',
133 'schema' => [
134 'properties' => [
135 'uninstall_data' => [
136 'type' => 'boolean',
137 ],
138 ]
139 ]
140 ],
141 'default' => [
142 'uninstall_data' => false,
143 ]
144 ]
145 );
146
147 /**
148 * Analytics settings
149 */
150 \register_setting(
151 'presto_player',
152 'presto_player_google_analytics',
153 [
154 'type' => 'object',
155 'description' => __('Google Analytics settings.', 'presto-player'),
156 'show_in_rest' => [
157 'name' => 'presto_player_google_analytics',
158 'type' => 'object',
159 'schema' => [
160 'properties' => [
161 'enable' => [
162 'type' => 'boolean',
163 ],
164 'use_existing_tag' => [
165 'type' => 'boolean'
166 ],
167 'measurement_id' => [
168 'type' => 'string'
169 ]
170 ]
171 ]
172 ],
173 'default' => [
174 'enable' => false,
175 'use_existing_tag' => false,
176 'measurement_id' => ''
177 ]
178 ]
179 );
180
181 /**
182 * General settings
183 */
184 \register_setting(
185 'presto_player',
186 'presto_player_presets',
187 [
188 'type' => 'object',
189 'description' => __('Preset settings.', 'presto-player'),
190 'show_in_rest' => [
191 'name' => 'presto_player_presets',
192 'type' => 'object',
193 'schema' => [
194 'properties' => [
195 'default_player_preset' => [
196 'type' => 'integer',
197 'sanitize_callback' => 'intval'
198 ]
199 ]
200 ]
201 ],
202 'default' => [
203 'default_player_preset' => 1,
204 ]
205 ]
206 );
207
208 \register_setting(
209 'presto_player',
210 'presto_player_audio_presets',
211 [
212 'type' => 'object',
213 'description' => __('Preset settings.', 'presto-player'),
214 'show_in_rest' => [
215 'name' => 'presto_player_audio_presets',
216 'type' => 'object',
217 'schema' => [
218 'properties' => [
219 'default_player_preset' => [
220 'type' => 'integer',
221 'sanitize_callback' => 'intval'
222 ]
223 ]
224 ]
225 ],
226 'default' => [
227 'default_player_preset' => 1,
228 ]
229 ]
230 );
231
232 /**
233 * Youtube Settings
234 */
235 \register_setting(
236 'presto_player',
237 'presto_player_youtube',
238 [
239 'type' => 'object',
240 'description' => __('Youtube settings.', 'presto-player'),
241 'show_in_rest' => [
242 'name' => 'presto_player_youtube',
243 'type' => 'object',
244 'schema' => [
245 'properties' => [
246 'nocookie' => [
247 'type' => 'boolean',
248 ],
249 'channel_id' => [
250 'type' => 'string'
251 ]
252 ]
253 ]
254 ],
255 'default' => [
256 'nocookie' => false,
257 'channel_id' => ''
258 ]
259 ]
260 );
261 }
262
263 public static function template()
264 { ?>
265 <?php do_action('presto_player_settings_header'); ?>
266 <div class="presto-player-dashboard__header">
267 <img class="presto-player-dashboard__logo" src="<?php echo esc_url(PRESTO_PLAYER_PLUGIN_URL . '/img/logo.svg'); ?>" />
268 <div class="presto-player-dashboard__version">v<?php echo esc_html(Plugin::version()); ?></div>
269 </div>
270 <div id="presto-settings-page"></div>
271 <?php wp_auth_check_html(); ?>
272 <?php do_action('presto_player_settings_footer'); ?>
273 <?php }
274 }
275