PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 3.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v3.1
4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 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.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Themes / Shortcode / ThemesRepository.php
wp-user-avatar / src / Themes / Shortcode Last commit date
Editprofile 5 years ago Login 5 years ago Melange 5 years ago Passwordreset 5 years ago Registration 5 years ago Userprofile 5 years ago EditProfileThemeInterface.php 5 years ago LoginThemeInterface.php 5 years ago MelangeThemeInterface.php 5 years ago PasswordResetThemeInterface.php 5 years ago RegistrationThemeInterface.php 5 years ago ThemeInterface.php 5 years ago ThemesRepository.php 5 years ago index.php 5 years ago
ThemesRepository.php
384 lines
1 <?php
2
3 namespace ProfilePress\Core\Themes\Shortcode;
4
5
6 use ProfilePress\Core\Classes\FormRepository;
7
8 class ThemesRepository
9 {
10 private static $themes;
11
12 public static function defaultThemes()
13 {
14 if (is_null(self::$themes)) {
15 self::$themes = apply_filters('ppress_registered_shortcode_themes',
16 array_merge(self::freeThemes(), self::premiumThemes())
17 );
18 }
19 }
20
21 public static function freeThemes()
22 {
23 return [
24 [
25 'name' => 'Perfecto Lite',
26 'theme_class' => 'PerfectoLite',
27 'theme_type' => FormRepository::LOGIN_TYPE,
28 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/perfectolite-login.png'
29 ],
30 [
31 'name' => 'Fobuk',
32 'theme_class' => 'Fzbuk',
33 'theme_type' => FormRepository::LOGIN_TYPE,
34 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/fzbuk-login.png'
35 ],
36
37 [
38 'name' => 'Perfecto Lite',
39 'theme_class' => 'PerfectoLite',
40 'theme_type' => FormRepository::REGISTRATION_TYPE,
41 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/perfectolite-registration.png'
42 ],
43 [
44 'name' => 'Fzbuk',
45 'theme_class' => 'Fzbuk',
46 'theme_type' => FormRepository::REGISTRATION_TYPE,
47 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/fzbuk-registration.png'
48 ],
49 [
50 'name' => 'Boson',
51 'theme_class' => 'Boson',
52 'theme_type' => FormRepository::REGISTRATION_TYPE,
53 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/boson-registration.png'
54 ],
55
56 [
57 'name' => 'Fzbuk',
58 'theme_class' => 'Fzbuk',
59 'theme_type' => FormRepository::PASSWORD_RESET_TYPE,
60 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/fzbuk-password-reset.png'
61 ],
62 [
63 'name' => 'Perfecto',
64 'theme_class' => 'Perfecto',
65 'theme_type' => FormRepository::PASSWORD_RESET_TYPE,
66 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/perfectolite-password-reset.png'
67 ],
68
69 [
70 'name' => 'Boson',
71 'theme_class' => 'Boson',
72 'theme_type' => FormRepository::EDIT_PROFILE_TYPE,
73 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/boson-edit-profile.png'
74 ],
75 [
76 'name' => 'Perfecto',
77 'theme_class' => 'Perfecto',
78 'theme_type' => FormRepository::EDIT_PROFILE_TYPE,
79 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/perfectolite-edit-profile.png'
80 ],
81
82 [
83 'name' => 'Dixon',
84 'theme_class' => 'Dixon',
85 'theme_type' => FormRepository::USER_PROFILE_TYPE,
86 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/dixon-profile.png'
87 ],
88 [
89 'name' => 'Daisy',
90 'theme_class' => 'Daisy',
91 'theme_type' => FormRepository::USER_PROFILE_TYPE,
92 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/daisy-profile.png'
93 ],
94
95 [
96 'name' => 'Lucid Tab Widget',
97 'theme_class' => 'Lucid',
98 'theme_type' => FormRepository::MELANGE_TYPE,
99 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/lucid-tab-widget.png'
100 ]
101 ];
102 }
103
104 public static function premiumThemes()
105 {
106 return [
107 [
108 'name' => 'Smiley',
109 'theme_class' => 'Smiley',
110 'flag' => 'premium',
111 'theme_type' => FormRepository::LOGIN_TYPE,
112 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/smiley-login.png'
113 ],
114 [
115 'name' => 'Perfecto Pro',
116 'theme_class' => 'PerfectoPro',
117 'flag' => 'premium',
118 'theme_type' => FormRepository::LOGIN_TYPE,
119 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/perfectopro-login.png'
120 ],
121 [
122 'name' => 'Parallel',
123 'theme_class' => 'Parallel',
124 'flag' => 'premium',
125 'theme_type' => FormRepository::LOGIN_TYPE,
126 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/parallel-login.gif'
127 ],
128 [
129 'name' => 'Pinnacle',
130 'theme_class' => 'Pinnacle',
131 'flag' => 'premium',
132 'theme_type' => FormRepository::LOGIN_TYPE,
133 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/pinnacle-login-registration.png'
134 ],
135 [
136 'name' => 'Bash',
137 'theme_class' => 'Bash',
138 'flag' => 'premium',
139 'theme_type' => FormRepository::LOGIN_TYPE,
140 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/bash-login.png'
141 ],
142 [
143 'name' => 'Jakhu',
144 'theme_class' => 'Jakhu',
145 'flag' => 'premium',
146 'theme_type' => FormRepository::LOGIN_TYPE,
147 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/jakhu-login.png'
148 ],
149 [
150 'name' => 'Sukan',
151 'theme_class' => 'Sukan',
152 'flag' => 'premium',
153 'theme_type' => FormRepository::LOGIN_TYPE,
154 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/sukan-login.png'
155 ],
156
157 [
158 'name' => 'Smiley',
159 'theme_class' => 'Smiley',
160 'flag' => 'premium',
161 'theme_type' => FormRepository::REGISTRATION_TYPE,
162 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/smiley-registration.png'
163 ],
164 [
165 'name' => 'Perfecto Pro',
166 'theme_class' => 'PerfectoPro',
167 'flag' => 'premium',
168 'theme_type' => FormRepository::REGISTRATION_TYPE,
169 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/perfectopro-registration.png'
170 ],
171 [
172 'name' => 'Lavender',
173 'theme_class' => 'Lavender',
174 'flag' => 'premium',
175 'theme_type' => FormRepository::REGISTRATION_TYPE,
176 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/lavender-registration.png'
177 ],
178 [
179 'name' => 'Parallel',
180 'theme_class' => 'Parallel',
181 'flag' => 'premium',
182 'theme_type' => FormRepository::REGISTRATION_TYPE,
183 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/parallel-registration.gif'
184 ],
185 [
186 'name' => 'Pinnacle',
187 'theme_class' => 'Pinnacle',
188 'flag' => 'premium',
189 'theme_type' => FormRepository::REGISTRATION_TYPE,
190 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/pinnacle-login-registration.png'
191 ],
192 [
193 'name' => 'Bash',
194 'theme_class' => 'Bash',
195 'flag' => 'premium',
196 'theme_type' => FormRepository::REGISTRATION_TYPE,
197 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/bash-registration.png'
198 ],
199 [
200 'name' => 'Jakhu',
201 'theme_class' => 'Jakhu',
202 'flag' => 'premium',
203 'theme_type' => FormRepository::REGISTRATION_TYPE,
204 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/jakhu-registration.png'
205 ],
206
207 [
208 'name' => 'Smiley',
209 'theme_class' => 'Smiley',
210 'flag' => 'premium',
211 'theme_type' => FormRepository::PASSWORD_RESET_TYPE,
212 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/smiley-password-reset.png'
213 ],
214 [
215 'name' => 'Bash',
216 'theme_class' => 'Bash',
217 'flag' => 'premium',
218 'theme_type' => FormRepository::PASSWORD_RESET_TYPE,
219 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/bash-password-reset.png'
220 ],
221 [
222 'name' => 'Parallel',
223 'theme_class' => 'Parallel',
224 'flag' => 'premium',
225 'theme_type' => FormRepository::PASSWORD_RESET_TYPE,
226 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/parallel-password-reset.gif'
227 ],
228 [
229 'name' => 'Pinnacle',
230 'theme_class' => 'Pinnacle',
231 'flag' => 'premium',
232 'theme_type' => FormRepository::PASSWORD_RESET_TYPE,
233 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/pinnacle-password-reset.png'
234 ],
235 [
236 'name' => 'Jakhu',
237 'theme_class' => 'Jakhu',
238 'flag' => 'premium',
239 'theme_type' => FormRepository::PASSWORD_RESET_TYPE,
240 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/jakhu-password-reset.png'
241 ],
242
243 [
244 'name' => 'Smiley',
245 'theme_class' => 'Smiley',
246 'flag' => 'premium',
247 'theme_type' => FormRepository::EDIT_PROFILE_TYPE,
248 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/smiley-edit-profile.png'
249 ],
250 [
251 'name' => 'Pinnacle',
252 'theme_class' => 'Pinnacle',
253 'flag' => 'premium',
254 'theme_type' => FormRepository::EDIT_PROFILE_TYPE,
255 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/pinnacle-edit-profile.png'
256 ],
257
258 [
259 'name' => 'Smiley',
260 'theme_class' => 'Smiley',
261 'flag' => 'premium',
262 'theme_type' => FormRepository::USER_PROFILE_TYPE,
263 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/smiley-profile.png'
264 ],
265 [
266 'name' => 'Monochrome',
267 'theme_class' => 'Monochrome',
268 'flag' => 'premium',
269 'theme_type' => FormRepository::USER_PROFILE_TYPE,
270 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/monochrome-profile.png'
271 ],
272
273 [
274 'name' => 'Montserrat',
275 'theme_class' => 'Montserrat',
276 'flag' => 'premium',
277 'theme_type' => FormRepository::MELANGE_TYPE,
278 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/montserrat-form.gif'
279 ],
280 [
281 'name' => 'Bash',
282 'theme_class' => 'Bash',
283 'flag' => 'premium',
284 'theme_type' => FormRepository::MELANGE_TYPE,
285 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/bash-account-form.gif'
286 ],
287 [
288 'name' => 'Stride',
289 'theme_class' => 'Stride',
290 'flag' => 'premium',
291 'theme_type' => FormRepository::MELANGE_TYPE,
292 'screenshot' => PPRESS_ASSETS_URL . '/images/themes/stride.gif'
293 ]
294 ];
295 }
296
297 /**
298 * All Optin themes available.
299 *
300 * @return mixed
301 */
302 public static function get_all()
303 {
304 self::defaultThemes();
305
306 return self::$themes;
307 }
308
309 /**
310 * Get form themes of a given type.
311 *
312 * @param string $form_type
313 *
314 * @return mixed
315 */
316 public static function get_by_type($form_type)
317 {
318 $all = self::get_all();
319
320 return array_reduce($all, function ($carry, $item) use ($form_type) {
321
322 // remove leading & trailing whitespace.
323 $form_type_array = array_map('trim', explode(',', $item['theme_type']));
324
325 if (in_array($form_type, $form_type_array)) {
326 $carry[] = $item;
327 }
328
329 return $carry;
330 });
331 }
332
333 /**
334 * Get form theme by name.
335 *
336 * @param string $name
337 *
338 * @return mixed
339 */
340 public static function get_by_name($name)
341 {
342 $all = self::get_all();
343
344 return array_reduce($all, function ($carry, $item) use ($name) {
345
346 if ($item['name'] == $name) {
347 $carry = $item;
348 }
349
350 return $carry;
351 });
352 }
353
354 /**
355 * Add form theme to theme repository.
356 *
357 * @param mixed $data
358 *
359 * @return void
360 */
361 public static function add($data)
362 {
363 self::defaultThemes();
364 self::$themes[] = $data;
365 }
366
367 /**
368 * Delete form theme from stack.
369 *
370 * @param mixed $theme_name
371 *
372 * @return void
373 */
374 public static function delete_by_name($theme_name)
375 {
376 self::defaultThemes();
377
378 foreach (self::$themes as $index => $theme) {
379 if ($theme['name'] == $theme_name) {
380 unset(self::$themes[$index]);
381 }
382 }
383 }
384 }