PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.2.3-beta1
Presto Player v2.2.3-beta1
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 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / inc / Models / Preset.php
presto-player / inc / Models Last commit date
AudioPreset.php 2 years ago Block.php 2 years ago CurrentUser.php 5 years ago EmailCollection.php 5 years ago LicensedProduct.php 5 years ago Model.php 4 years ago ModelInterface.php 5 years ago Player.php 5 years ago Post.php 2 years ago Preset.php 2 years ago ReusableVideo.php 3 years ago Setting.php 5 years ago Video.php 2 years ago Webhook.php 3 years ago
Preset.php
212 lines
1 <?php
2
3 namespace PrestoPlayer\Models;
4
5 class Preset extends Model
6 {
7 /**
8 * Table used to access db
9 *
10 * @var string
11 */
12 protected $table = 'presto_player_presets';
13
14 /**
15 * Model Schema
16 *
17 * @var array
18 */
19 public function schema()
20 {
21 return [
22 'id' => [
23 'type' => 'integer'
24 ],
25 'name' => [
26 'type' => 'string',
27 'sanitize_callback' => 'wp_kses_post'
28 ],
29 'slug' => [
30 'type' => 'string',
31 'sanitize_callback' => 'sanitize_title'
32 ],
33 'icon' => [
34 'type' => 'string',
35 'sanitize_callback' => 'sanitize_text_field'
36 ],
37 'skin' => [
38 'type' => 'string',
39 'sanitize_callback' => 'sanitize_text_field'
40 ],
41 'caption_style' => [
42 'type' => 'string',
43 'sanitize_callback' => 'sanitize_text_field'
44 ],
45 'caption_background' => [
46 'type' => 'string',
47 'sanitize_callback' => 'sanitize_hex_color'
48 ],
49 'play' => [
50 'type' => 'boolean',
51 'default' => false
52 ],
53 'play-large' => [
54 'type' => 'boolean',
55 'default' => false
56 ],
57 'rewind' => [
58 'type' => 'boolean',
59 'default' => false
60 ],
61 'fast-forward' => [
62 'type' => 'boolean',
63 'default' => false
64 ],
65 'progress' => [
66 'type' => 'boolean',
67 'default' => false
68 ],
69 'current-time' => [
70 'type' => 'boolean',
71 'default' => false
72 ],
73 'mute' => [
74 'type' => 'boolean',
75 'default' => false
76 ],
77 'volume' => [
78 'type' => 'boolean',
79 'default' => false
80 ],
81 'speed' => [
82 'type' => 'boolean',
83 'default' => false
84 ],
85 'pip' => [
86 'type' => 'boolean',
87 'default' => false
88 ],
89 'fullscreen' => [
90 'type' => 'boolean',
91 'default' => false
92 ],
93 'captions' => [
94 'type' => 'boolean',
95 'default' => false
96 ],
97 'reset_on_end' => [
98 'type' => 'boolean',
99 'default' => false
100 ],
101 'auto_hide' => [
102 'type' => 'boolean',
103 'default' => false
104 ],
105 'show_time_elapsed' => [
106 'type' => 'boolean',
107 'default' => false
108 ],
109 'captions_enabled' => [
110 'type' => 'boolean',
111 'default' => false
112 ],
113 'sticky_scroll' => [
114 'type' => 'boolean',
115 'default' => false
116 ],
117 'sticky_scroll_position' => [
118 'type' => 'string',
119 'default' => 'bottom right'
120 ],
121 'on_video_end' => [
122 'type' => 'string',
123 'default' => 'select'
124 ],
125 'play_video_viewport' => [
126 'type' => 'boolean',
127 'default' => false
128 ],
129 'save_player_position' => [
130 'type' => 'boolean',
131 'default' => false
132 ],
133 'hide_youtube' => [
134 'type' => 'boolean',
135 'default' => false
136 ],
137 'lazy_load_youtube' => [
138 'type' => 'boolean',
139 'default' => false
140 ],
141 'hide_logo' => [
142 'type' => 'boolean',
143 'default' => false
144 ],
145 'border_radius' => [
146 'type' => 'integer',
147 'default' => 0
148 ],
149 'cta' => [
150 'type' => 'array',
151 ],
152 'watermark' => [
153 'type' => 'array'
154 ],
155 'search' => [
156 'type' => 'array'
157 ],
158 'email_collection' => [
159 'type' => 'array',
160 ],
161 'action_bar' => [
162 'type' => 'array',
163 ],
164 'is_locked' => [
165 'type' => 'boolean',
166 'default' => false
167 ],
168 'created_by' => [
169 'type' => 'integer',
170 'default' => get_current_user_id()
171 ],
172 'created_at' => [
173 'type' => 'string'
174 ],
175 'updated_at' => [
176 'type' => 'string',
177 'default' => current_time('mysql')
178 ],
179 'deleted_at' => [
180 'type' => 'string'
181 ]
182 ];
183 }
184
185 /**
186 * These attributes are queryable
187 *
188 * @var array
189 */
190 protected $queryable = ['slug'];
191
192 /**
193 * Create a preset in the db
194 *
195 * @param array $args
196 * @return integer
197 */
198 public function create($args = [])
199 {
200 // name is required
201 if (empty($args['name'])) {
202 return new \WP_Error('missing_parameter', __('You must enter a name for the preset.', 'presto-player'));
203 }
204
205 // generate slug on the fly
206 $args['slug'] = !empty($args['slug']) ? $args['slug'] : sanitize_title($args['name']);
207
208 // create
209 return parent::create($args);
210 }
211 }
212