All-in-One Video Gallery - Version 1.6.5

Version Description

  • New: Plugin Dashboard.
  • New: Shortcode Builder.
  • New: A mechanism to auto-detect plugin misconfiguration issues with the fixes.
  • New: "Muted" - A setting to turn OFF the audio output of the video by default.
  • New: "include" - A new [aiovg_videos] shortcode attribute to show only the selective videos. Example: [aiovg_videos include="1,2,3"]
  • New: "include" - A new [aiovg_categories] shortcode attribute to show only the selective categories. Example: [aiovg_categories include="1,2,3"]
  • New: "WhatsApp" share button.
  • Tweak: Simplified settings page UI.
  • Tweak: Replaced transients with $_COOKIES to calculate unique video views. The reason $_COOKIES are used is to stop bloating up OPTIONS table with several hundreds of transients.
  • Fix: Same videos repeat again when the videos ordering is to "random" and the pagination is enabled.
  • Fix: [+] few minor bug fixes.
Download this release

Release Info

Developer plugins360
Plugin Icon 128x128 All-in-One Video Gallery
Version 1.6.5
Comparing to
See all releases

Code changes from version 1.6.4 to 1.6.5

Files changed (52) hide show
  1. README.txt +43 -112
  2. admin/admin.php +336 -41
  3. admin/assets/css/admin.css +259 -149
  4. admin/assets/js/admin.js +159 -127
  5. admin/categories.php +33 -19
  6. admin/partials/dashboard.php +55 -0
  7. admin/partials/faq.php +33 -0
  8. admin/partials/issues.php +100 -0
  9. admin/partials/settings.php +66 -9
  10. admin/partials/shortcode-builder.php +401 -125
  11. admin/partials/video-sources.php +110 -66
  12. admin/partials/video-tracks.php +12 -12
  13. admin/partials/welcome.php +0 -188
  14. admin/settings.php +153 -143
  15. admin/shortcode-builder.php +0 -88
  16. admin/videos.php +34 -3
  17. admin/welcome.php +0 -77
  18. all-in-one-video-gallery.php +7 -5
  19. blocks/blocks.php +13 -11
  20. blocks/dist/blocks.build.js +1 -1
  21. blocks/src/blocks/categories/edit.js +9 -9
  22. blocks/src/blocks/categories/index.js +4 -4
  23. blocks/src/blocks/search/edit.js +1 -1
  24. blocks/src/blocks/video/edit.js +7 -0
  25. blocks/src/blocks/video/index.js +4 -0
  26. freemius/assets/img/all-in-one-video-gallery.png +0 -0
  27. includes/functions.php +693 -535
  28. includes/init.php +12 -20
  29. includes/uninstall.php +0 -1
  30. languages/all-in-one-video-gallery.pot +1084 -912
  31. public/assets/css/public.css +12 -11
  32. public/categories.php +36 -7
  33. public/public.php +142 -8
  34. public/templates/categories-template-list.php +1 -20
  35. public/templates/category-thumbnail.php +1 -1
  36. public/templates/player-html5.php +45 -14
  37. public/templates/player-iframe.php +36 -3
  38. public/templates/player.php +1 -0
  39. public/templates/search-form-template-horizontal.php +1 -1
  40. public/templates/search-form-template-vertical.php +1 -1
  41. public/templates/single-video.php +1 -1
  42. public/templates/video-thumbnail-image-left.php +11 -3
  43. public/templates/video-thumbnail.php +11 -3
  44. public/video.php +9 -1
  45. public/videos.php +23 -13
  46. widgets/categories.php +29 -12
  47. widgets/forms/categories.php +18 -18
  48. widgets/forms/video.php +5 -0
  49. widgets/forms/videos.php +1 -1
  50. widgets/search.php +1 -3
  51. widgets/video.php +4 -4
  52. widgets/videos.php +16 -12
README.txt CHANGED
@@ -6,19 +6,19 @@ Tags: video player, video gallery, youtube gallery, vimeo gallery, livestream
6
  Requires at least: 4.7.0
7
  Tested up to: 5.2
8
  Requires PHP: 5.3.0
9
- Stable tag: 1.6.4
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
13
- Supports any browser & video formats such as MP4, WebM, OGV and embeddable players like YouTube, Vimeo, Dailymotion, Facebook, etc.
14
 
15
  == Description ==
16
 
17
  No coding required. A Responsive & Lightweight video gallery plugin.
18
 
19
- HTML5 Player, Categories, Visual Builder (Gutenberg), Search Form, Comments, Social Sharing and everything you will need to build a YouTube/Vimeo like video sharing website.
20
 
21
- [Demo](https://demo.plugins360.com/all-in-one-video-gallery/) | [Documentation](https://plugins360.com/all-in-one-video-gallery/documentation/) | [Support](https://plugins360.com/support/) | [Premium Version](https://plugins360.com/all-in-one-video-gallery/#premium)
22
 
23
  https://www.youtube.com/watch?v=w47PU9ppuF8
24
 
@@ -31,10 +31,10 @@ https://www.youtube.com/watch?v=w47PU9ppuF8
31
  * HTML5 Player with FLASH fallback.
32
  * Plays anywhere: supports MP4, WebM, OGV and embeddable players like YouTube, Vimeo, Dailymotion & Facebook.
33
  * Player controls: play pause, timer, progress bar, duration, volume, fullscreen
34
- * Playback options: autoplay, loop, preload
35
  * Subtitles.
36
  * Comments.
37
- * Social Sharing (Facebook, Twitter, Google Plus, Linkedin & Pinterest).
38
  * Form to search videos.
39
  * Widgets to list categories, list videos, display a single video player and to search videos.
40
  * Show GDPR consent.
@@ -75,11 +75,27 @@ For more detailed instructions visit plugin [documentation](https://plugins360.c
75
 
76
  == Frequently Asked Questions ==
77
 
78
- = I have a problem what now? =
79
- Please describe your issue and submit a ticket on our plugin support forum, you should receive a reply within 24 hours (except Sunday).
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
- = Getting a 404 error? =
82
- Most likely rewrite rules were not registered properly for some reason. Go to "WordPress Admin Panel => Settings => Permalinks" and click "Save Changes" button without actually changing anything, this should reset the router and fix URLs.
 
 
 
83
 
84
  == Screenshots ==
85
 
@@ -93,6 +109,20 @@ Most likely rewrite rules were not registered properly for some reason. Go to "W
93
 
94
  == Changelog ==
95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  = 1.6.4 =
97
 
98
  * Tweak: Updated Freemius SDK (2.3.0).
@@ -113,7 +143,7 @@ Most likely rewrite rules were not registered properly for some reason. Go to "W
113
  * New: Option to delete or NOT delete the associated media files when a video post or category is deleted.
114
  * Tweak: Uses mediaelement.js library files from the WordPress core.
115
  * Tweak: Displays spinner immediately after the play button is clicked.
116
- * Fix: Issues with the gutenberg player block settings.
117
  * Fix: [+] few more minor bug fixes.
118
 
119
  = 1.6.0 =
@@ -198,105 +228,6 @@ Most likely rewrite rules were not registered properly for some reason. Go to "W
198
 
199
  == Upgrade Notice ==
200
 
201
- = 1.6.4 =
202
-
203
- * Tweak: Updated Freemius SDK (2.3.0).
204
- * Fix: Security fix.
205
-
206
- = 1.6.3 =
207
-
208
- * Fix: Unfortunately, there were some bugs in the 1.6.2 release and this is an immediate release which addresses those issues.
209
-
210
- = 1.6.2 =
211
-
212
- * New: Support for Yoast breadcrumbs.
213
- * Tweak: Optimized WP_Query for fast output.
214
- * Fix: [+] few minor bug fixes.
215
-
216
- = 1.6.1 =
217
-
218
- * New: Option to delete or NOT delete the associated media files when a video post or category is deleted.
219
- * Tweak: Uses mediaelement.js library files from the WordPress core.
220
- * Tweak: Displays spinner immediately after the play button is clicked.
221
- * Fix: Issues with the gutenberg player block settings.
222
- * Fix: [+] few more minor bug fixes.
223
-
224
- = 1.6.0 =
225
-
226
- * Fix: Security fix.
227
- * Fix: [+] few minor bug fixes.
228
-
229
- = 1.5.9 =
230
-
231
- * Fix: Fixes a SERIOUS BUG. Pages created infinitely in some WordPress Environments.
232
- * Fix: Replaced "plugins_loaded" hook with "init" hook to initialize the Gutenberg blocks.
233
-
234
- = 1.5.8 =
235
-
236
- * Tweak: "wp_loaded" hook used to insert missing plugin options was updated with a version number check.
237
-
238
- = 1.5.7 =
239
-
240
- * New: Freemius Integration.
241
- * New: PHP 7+ compatibility.
242
- * New: Introduces Template options for both categories and videos.
243
- * Tweak: Code completely revised and rewritten to make the plugin more extensible.
244
- * Tweak: Removed Twitter Bootstrap & Font Awesome libraries and replaced with custom CSS code to keep the plugin lightweight.
245
- * Tweak: Custom Logo & Branding, Custom Context Menu options removed from the FREE version. But, these options will continue to work for our old users.
246
- * Fix: [+] few minor bug fixes.
247
-
248
- = 1.5.6 =
249
-
250
- * New: Gutenberg blocks for the plugin.
251
- * New: Support for Yoast SEO Plugin.
252
- * Fix: [+] few minor bug fixes.
253
-
254
- = 1.5.5 =
255
-
256
- * Fix: Pagination issue in single video pages.
257
-
258
- = 1.5.4 =
259
-
260
- * Fix: Unfortunately, there were some bugs in the 1.5.3 release and this is an immediate release which addresses those issues.
261
-
262
- = 1.5.3 =
263
-
264
- * New: Custom Logo & Branding.
265
- * Tweak: Removed jQuery dependency for the player.
266
- * Fix: Shortcodes not working in the single video page.
267
- * Fix: [+] few minor bug fixes.
268
-
269
- = 1.5.2 =
270
-
271
- * New: Compatible with GDPR.
272
- * Tweak: Disabled the default context menu, and added a custom one.
273
-
274
- = 1.5.1 =
275
-
276
- * Tweak: README.txt update.
277
-
278
- = 1.5.0 =
279
-
280
- * New: Added support for Dailymotion videos.
281
-
282
- = 1.4.0 =
283
-
284
- * Tweak: Updated to the MediaElement version 4.2.8 that includes an important security fix.
285
-
286
- = 1.3.0 =
287
-
288
- * Tweak: "Select a Template" option removed from "WordPress Admin Panel => Video Gallery => Settings[Display] => Video Gallery Pages" settings.
289
- * Fix: "Autoplay" disabled in mobile devices.
290
- * Fix: YouTube playback issues in IOS.
291
-
292
- = 1.2.0 =
293
-
294
- * Fix: Unfortunately, there were some bugs in the 1.1.0 release and this is an immediate release which addresses those issues.
295
-
296
- = 1.1.0 =
297
-
298
- * New: Added support for Facebook videos.
299
-
300
- = 1.0.0 =
301
 
302
- * Initial release.
6
  Requires at least: 4.7.0
7
  Tested up to: 5.2
8
  Requires PHP: 5.3.0
9
+ Stable tag: 1.6.5
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
13
+ Add responsive video galleries anywhere on your website no coding required. Includes HTML5 Player, Thumbnail Grid, Slider, Popup & more
14
 
15
  == Description ==
16
 
17
  No coding required. A Responsive & Lightweight video gallery plugin.
18
 
19
+ HTML5 Player, Categories, Visual Builder (Gutenberg), Search Form, Comments, Social Sharing and everything you will need to build a YouTube/Vimeo like a video sharing website.
20
 
21
+ [Demo](https://demo.plugins360.com/all-in-one-video-gallery/) | [Documentation](https://plugins360.com/all-in-one-video-gallery/documentation/) | [Support](https://plugins360.com/support/) | [Premium Version](https://plugins360.com/all-in-one-video-gallery/pricing/)
22
 
23
  https://www.youtube.com/watch?v=w47PU9ppuF8
24
 
31
  * HTML5 Player with FLASH fallback.
32
  * Plays anywhere: supports MP4, WebM, OGV and embeddable players like YouTube, Vimeo, Dailymotion & Facebook.
33
  * Player controls: play pause, timer, progress bar, duration, volume, fullscreen
34
+ * Playback options: autoplay, loop, muted, preload
35
  * Subtitles.
36
  * Comments.
37
+ * Social Sharing (Facebook, Twitter, Linkedin, Pinterest & WhatsApp).
38
  * Form to search videos.
39
  * Widgets to list categories, list videos, display a single video player and to search videos.
40
  * Show GDPR consent.
75
 
76
  == Frequently Asked Questions ==
77
 
78
+ = 1. I have installed the plugin. How to build my first Gallery? =
79
+ Thanks for installing our plugin. The plugin dashboard should have all the necessary instructions required to build a gallery. Simply follow that.
80
+
81
+ For more detailed instructions visit plugin [documentation](https://plugins360.com/all-in-one-video-gallery/documentation/)
82
+
83
+ Still Having Issues? We are just an email away. Please write to us describing your issue using the "Contact" form available under our plugin's menu. You should receive a reply within 24 hours (except Sunday).
84
+
85
+ = 2. Can I upload large video files using this plugin? =
86
+ Sure, the plugin doesn't apply any restriction on the uploaded file size. If you're not able to upload large files, then it must be your server configuration which is not suitable for large file uploads. Simply write to your HOST and ask them to increase the upload file size limit.
87
+
88
+ = 3. Can I show my videos in a Popup/Slider? =
89
+ Yes, you can. Kindly refer the instructions below,
90
+
91
+ 1. [Popup](https://plugins360.com/all-in-one-video-gallery/popup/)
92
+ 2. [Slider](https://plugins360.com/all-in-one-video-gallery/slider/)
93
 
94
+ = 4. Does the plugin support third-party page builders like "Elementor", "WPBakery", "Divi", etc.? =
95
+ Yes. Simply, generate your shortcode using the plugin's "Shortcode Builder" and add it in your favourite page builder.
96
+
97
+ = 5. The plugin is not working for me. What should I do now? =
98
+ Please describe your issue and submit a ticket on our plugin support forum, you should receive a reply within 24 hours (except Sunday).
99
 
100
  == Screenshots ==
101
 
109
 
110
  == Changelog ==
111
 
112
+ = 1.6.5 =
113
+
114
+ * New: Plugin Dashboard.
115
+ * New: Shortcode Builder.
116
+ * New: A mechanism to auto-detect plugin misconfiguration issues with the fixes.
117
+ * New: "Muted" - A setting to turn OFF the audio output of the video by default.
118
+ * New: "include" - A new [aiovg_videos] shortcode attribute to show only the selective videos. Example: [aiovg_videos include="1,2,3"]
119
+ * New: "include" - A new [aiovg_categories] shortcode attribute to show only the selective categories. Example: [aiovg_categories include="1,2,3"]
120
+ * New: "WhatsApp" share button.
121
+ * Tweak: Simplified settings page UI.
122
+ * Tweak: Replaced transients with $_COOKIES to calculate unique video views. The reason $_COOKIES are used is to stop bloating up OPTIONS table with several hundreds of transients.
123
+ * Fix: Same videos repeat again when the videos ordering is to "random" and the pagination is enabled.
124
+ * Fix: [+] few minor bug fixes.
125
+
126
  = 1.6.4 =
127
 
128
  * Tweak: Updated Freemius SDK (2.3.0).
143
  * New: Option to delete or NOT delete the associated media files when a video post or category is deleted.
144
  * Tweak: Uses mediaelement.js library files from the WordPress core.
145
  * Tweak: Displays spinner immediately after the play button is clicked.
146
+ * Fix: Issues with the Gutenberg player block settings.
147
  * Fix: [+] few more minor bug fixes.
148
 
149
  = 1.6.0 =
228
 
229
  == Upgrade Notice ==
230
 
231
+ = 1.6.5 =
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
232
 
233
+ Introduces several bug fixes, new features & enhancements. [See changelog](https://wordpress.org/plugins/all-in-one-video-gallery/#developers)
admin/admin.php CHANGED
@@ -46,6 +46,10 @@ class AIOVG_Admin {
46
 
47
  $new_player_settings = array();
48
 
 
 
 
 
49
  if ( ! array_key_exists( 'use_native_controls', $player_settings ) ) {
50
  $new_player_settings['use_native_controls'] = $defaults['aiovg_player_settings']['use_native_controls'];
51
  }
@@ -102,7 +106,7 @@ class AIOVG_Admin {
102
  */
103
  public function enqueue_styles() {
104
  wp_enqueue_style( 'wp-color-picker' );
105
-
106
  wp_enqueue_style(
107
  AIOVG_PLUGIN_SLUG . '-magnific-popup',
108
  AIOVG_PLUGIN_URL . 'public/assets/css/magnific-popup.css',
@@ -110,7 +114,7 @@ class AIOVG_Admin {
110
  '1.1.0',
111
  'all'
112
  );
113
-
114
  wp_enqueue_style(
115
  AIOVG_PLUGIN_SLUG . '-admin',
116
  AIOVG_PLUGIN_URL . 'admin/assets/css/admin.css',
@@ -128,7 +132,7 @@ class AIOVG_Admin {
128
  public function enqueue_scripts() {
129
  wp_enqueue_media();
130
  wp_enqueue_script( 'wp-color-picker' );
131
-
132
  wp_enqueue_script(
133
  AIOVG_PLUGIN_SLUG . '-magnific-popup',
134
  AIOVG_PLUGIN_URL . 'public/assets/js/magnific-popup.min.js',
@@ -136,7 +140,7 @@ class AIOVG_Admin {
136
  '1.1.0',
137
  false
138
  );
139
-
140
  wp_enqueue_script(
141
  AIOVG_PLUGIN_SLUG . '-admin',
142
  AIOVG_PLUGIN_URL . 'admin/assets/js/admin.js',
@@ -149,60 +153,351 @@ class AIOVG_Admin {
149
  AIOVG_PLUGIN_SLUG . '-admin',
150
  'aiovg_admin',
151
  array(
152
- 'ajax_nonce' => wp_create_nonce( 'aiovg_admin_ajax_nonce' )
 
 
 
153
  )
154
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  }
156
-
157
  /**
158
- * Add a settings link on the plugin listing page.
159
  *
160
- * @since 1.0.0
161
- * @param array $links An array of plugin action links.
162
- * @return string $links Array of filtered plugin action links.
163
  */
164
- public function plugin_action_links( $links ) {
165
- $settings_link = sprintf( '<a href="%s">%s</a>', admin_url( 'edit.php?post_type=aiovg_videos&page=aiovg_settings' ), __( 'Settings', 'all-in-one-video-gallery' ) );
166
- array_unshift( $links, $settings_link );
 
 
 
 
 
 
 
167
 
168
- return $links;
 
 
 
 
 
 
 
169
  }
170
-
171
  /**
172
- * Display admin notice.
173
  *
174
- * @since 1.0.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  */
176
- public function admin_notice() {
177
- if ( false == get_option( 'aiovg_admin_notice_dismissed' ) ) : ?>
178
- <div id="aiovg-admin-notice" class="notice notice-info is-dismissible" data-security="<?php echo wp_create_nonce( 'aiovg_admin_notice_nonce' ); ?>">
179
- <p>
180
- <span class="dashicons-before dashicons-playlist-video"></span> <strong><?php _e( 'All-in-One Video Gallery', 'all-in-one-video-gallery' ); ?></strong>
181
- <span class="aiovg-admin-notice-separator"> - </span>
182
- <a href="https://plugins360.com/all-in-one-video-gallery/documentation/" target="_blank"><?php _e( 'Getting Started', 'all-in-one-video-gallery' ); ?></a>
183
- <span class="aiovg-admin-notice-separator"> | </span>
184
- <a href="<?php echo admin_url( 'admin.php?page=all-in-one-video-gallery-contact' ); ?>"><?php _e( 'Contact Us', 'all-in-one-video-gallery' ); ?></a>
185
- <?php if ( aiovg_fs()->is_not_paying() ) : ?>
186
- <span class="aiovg-admin-notice-separator"> | </span>
187
- <a href="<?php echo esc_url( aiovg_fs()->get_upgrade_url() ); ?>" class="aiovg-upgrade-link"><?php _e( 'Upgrade Pro', 'all-in-one-video-gallery' ); ?></a>
188
- <?php endif; ?>
189
- </p>
190
- </div>
191
- <?php endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  }
193
 
194
  /**
195
- * Dismiss admin notice.
196
  *
197
- * @since 1.0.0
 
 
198
  */
199
- public function ajax_callback_dismiss_admin_notice() {
200
- check_ajax_referer( 'aiovg_admin_notice_nonce', 'security' );
 
 
 
 
 
 
201
 
202
- add_option( 'aiovg_admin_notice_dismissed', 1 );
203
- wp_die();
204
  }
205
-
206
  /**
207
  * Sets the extension and mime type for .vtt files.
208
  *
@@ -222,4 +517,4 @@ class AIOVG_Admin {
222
  return $types;
223
  }
224
 
225
- }
46
 
47
  $new_player_settings = array();
48
 
49
+ if ( ! array_key_exists( 'muted', $player_settings ) ) {
50
+ $new_player_settings['muted'] = $defaults['aiovg_player_settings']['muted'];
51
+ }
52
+
53
  if ( ! array_key_exists( 'use_native_controls', $player_settings ) ) {
54
  $new_player_settings['use_native_controls'] = $defaults['aiovg_player_settings']['use_native_controls'];
55
  }
106
  */
107
  public function enqueue_styles() {
108
  wp_enqueue_style( 'wp-color-picker' );
109
+
110
  wp_enqueue_style(
111
  AIOVG_PLUGIN_SLUG . '-magnific-popup',
112
  AIOVG_PLUGIN_URL . 'public/assets/css/magnific-popup.css',
114
  '1.1.0',
115
  'all'
116
  );
117
+
118
  wp_enqueue_style(
119
  AIOVG_PLUGIN_SLUG . '-admin',
120
  AIOVG_PLUGIN_URL . 'admin/assets/css/admin.css',
132
  public function enqueue_scripts() {
133
  wp_enqueue_media();
134
  wp_enqueue_script( 'wp-color-picker' );
135
+
136
  wp_enqueue_script(
137
  AIOVG_PLUGIN_SLUG . '-magnific-popup',
138
  AIOVG_PLUGIN_URL . 'public/assets/js/magnific-popup.min.js',
140
  '1.1.0',
141
  false
142
  );
143
+
144
  wp_enqueue_script(
145
  AIOVG_PLUGIN_SLUG . '-admin',
146
  AIOVG_PLUGIN_URL . 'admin/assets/js/admin.js',
153
  AIOVG_PLUGIN_SLUG . '-admin',
154
  'aiovg_admin',
155
  array(
156
+ 'ajax_nonce' => wp_create_nonce( 'aiovg_admin_ajax_nonce' ),
157
+ 'i18n' => array(
158
+ 'no_issues_slected' => __( 'Please select at least one issue.', 'all-in-one-video-gallery' )
159
+ )
160
  )
161
  );
162
+ }
163
+
164
+ /**
165
+ * Manage form submissions.
166
+ *
167
+ * @since 1.6.5
168
+ */
169
+ public function admin_init() {
170
+ if ( 'POST' == $_SERVER['REQUEST_METHOD'] && ! empty( $_POST['issues'] ) && isset( $_POST['aiovg_issues_nonce'] ) ) {
171
+ // Verify that the nonce is valid
172
+ if ( wp_verify_nonce( $_POST['aiovg_issues_nonce'], 'aiovg_fix_ignore_issues' ) ) {
173
+ $redirect_url = admin_url( 'admin.php?page=all-in-one-video-gallery&tab=issues' );
174
+
175
+ // Fix Issues
176
+ if ( __( 'Apply Fix', 'all-in-one-video-gallery' ) == $_POST['action'] ) {
177
+ $this->fix_issues();
178
+
179
+ $redirect_url = add_query_arg(
180
+ array(
181
+ 'section' => 'found',
182
+ 'success' => 1
183
+ ),
184
+ $redirect_url
185
+ );
186
+ }
187
+
188
+ // Ignore Issues
189
+ if ( __( 'Ignore', 'all-in-one-video-gallery' ) == $_POST['action'] ) {
190
+ $this->ignore_issues();
191
+
192
+ $redirect_url = add_query_arg(
193
+ array(
194
+ 'section' => 'ignored',
195
+ 'success' => 1
196
+ ),
197
+ $redirect_url
198
+ );
199
+ }
200
+
201
+ // Redirect
202
+ wp_redirect( $redirect_url );
203
+ exit;
204
+ }
205
+ }
206
  }
207
+
208
  /**
209
+ * Add plugin's main menu and "Dashboard" menu.
210
  *
211
+ * @since 1.6.5
 
 
212
  */
213
+ public function admin_menu() {
214
+ add_menu_page(
215
+ __( 'All-in-One Video Gallery', 'all-in-one-video-gallery' ),
216
+ __( 'Video Gallery', 'all-in-one-video-gallery' ),
217
+ 'edit_others_aiovg_videos',
218
+ 'all-in-one-video-gallery',
219
+ array( $this, 'display_dashboard_content' ),
220
+ 'dashicons-playlist-video',
221
+ 5
222
+ );
223
 
224
+ add_submenu_page(
225
+ 'all-in-one-video-gallery',
226
+ __( 'All-in-One Video Gallery - Dashboard', 'all-in-one-video-gallery' ),
227
+ __( 'Dashboard', 'all-in-one-video-gallery' ),
228
+ 'edit_others_aiovg_videos',
229
+ 'all-in-one-video-gallery',
230
+ array( $this, 'display_dashboard_content' )
231
+ );
232
  }
233
+
234
  /**
235
+ * Display dashboard page content.
236
  *
237
+ * @since 1.6.5
238
+ */
239
+ public function display_dashboard_content() {
240
+ $tabs = array(
241
+ 'shortcode-builder' => __( 'Shortcode Builder', 'all-in-one-video-gallery' ),
242
+ 'faq' => __( 'FAQ', 'all-in-one-video-gallery' )
243
+ );
244
+
245
+ $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : 'shortcode-builder';
246
+
247
+ // Issues
248
+ $issues = $this->check_issues();
249
+
250
+ if ( count( $issues['found'] ) || 'issues' == $active_tab ) {
251
+ $tabs['issues'] = __( 'Issues Found', 'all-in-one-video-gallery' );
252
+ }
253
+
254
+ require_once AIOVG_PLUGIN_DIR . 'admin/partials/dashboard.php';
255
+ }
256
+
257
+ /**
258
+ * Check for plugin issues.
259
+ *
260
+ * @since 1.6.5
261
+ * @return array $issues Array of issues found.
262
+ */
263
+ public function check_issues() {
264
+ $issues = array(
265
+ 'found' => array(),
266
+ 'ignored' => array()
267
+ );
268
+
269
+ $_issues = get_option( 'aiovg_issues', $issues );
270
+ $ignored = $_issues['ignored'];
271
+
272
+ // Check: pages_misconfigured
273
+ $page_settings = get_option( 'aiovg_page_settings' );
274
+ $pages = aiovg_get_custom_pages_list();
275
+
276
+ foreach ( $pages as $key => $page ) {
277
+ $issue_found = 0;
278
+ $post_id = $page_settings[ $key ];
279
+
280
+ if ( $post_id > 0 ) {
281
+ $post = get_post( $post_id );
282
+
283
+ if ( empty( $post ) || 'publish' != $post->post_status ) {
284
+ $issue_found = 1;
285
+ } elseif ( ! empty( $pages[ $key ]['content'] ) && false === strpos( $post->post_content, $pages[ $key ]['content'] ) ) {
286
+ $issue_found = 1;
287
+ }
288
+ } else {
289
+ $issue_found = 1;
290
+ }
291
+
292
+ if ( $issue_found ) {
293
+ if ( in_array( 'pages_misconfigured', $ignored ) ) {
294
+ $issues['ignored'][] = 'pages_misconfigured';
295
+ } else {
296
+ $issues['found'][] = 'pages_misconfigured';
297
+ }
298
+
299
+ break;
300
+ }
301
+ }
302
+
303
+ $issues = apply_filters( 'aiovg_check_issues', $issues );
304
+
305
+ // Update
306
+ update_option( 'aiovg_issues', $issues );
307
+
308
+ // Return
309
+ return $issues;
310
+ }
311
+
312
+ /**
313
+ * Apply fixes.
314
+ *
315
+ * @since 1.6.5
316
+ */
317
+ public function fix_issues() {
318
+ $fixed = array();
319
+
320
+ // Apply the fixes
321
+ $_issues = aiovg_sanitize_array( $_POST['issues'] );
322
+
323
+ foreach ( $_issues as $issue ) {
324
+ switch ( $issue ) {
325
+ case 'pages_misconfigured':
326
+ global $wpdb;
327
+
328
+ $page_settings = get_option( 'aiovg_page_settings' );
329
+
330
+ $pages = aiovg_get_custom_pages_list();
331
+ $issue_found = 0;
332
+
333
+ foreach ( $pages as $key => $page ) {
334
+ $post_id = $page_settings[ $key ];
335
+
336
+ if ( $post_id > 0 ) {
337
+ $post = get_post( $post_id );
338
+
339
+ if ( empty( $post ) || 'publish' != $post->post_status ) {
340
+ $issue_found = 1;
341
+ } elseif ( ! empty( $pages[ $key ]['content'] ) && false === strpos( $post->post_content, $pages[ $key ]['content'] ) ) {
342
+ $issue_found = 1;
343
+ }
344
+ } else {
345
+ $issue_found = 1;
346
+ }
347
+
348
+ if ( $issue_found ) {
349
+ $insert_id = 0;
350
+
351
+ if ( ! empty( $pages[ $key ]['content'] ) ) {
352
+ $query = $wpdb->prepare(
353
+ "SELECT ID FROM {$wpdb->posts} WHERE `post_content` LIKE %s",
354
+ sanitize_text_field( $pages[ $key ]['content'] )
355
+ );
356
+
357
+ $ids = $wpdb->get_col( $query );
358
+ } else {
359
+ $ids = array();
360
+ }
361
+
362
+ if ( ! empty( $ids ) ) {
363
+ $insert_id = $ids[0];
364
+
365
+ // If the page is not published
366
+ if ( 'publish' != get_post_status( $insert_id ) ) {
367
+ wp_update_post(
368
+ array(
369
+ 'ID' => $insert_id,
370
+ 'post_status' => 'publish'
371
+ )
372
+ );
373
+ }
374
+ } else {
375
+ $insert_id = wp_insert_post(
376
+ array(
377
+ 'post_title' => $pages[ $key ]['title'],
378
+ 'post_content' => $pages[ $key ]['content'],
379
+ 'post_status' => 'publish',
380
+ 'post_author' => 1,
381
+ 'post_type' => 'page',
382
+ 'comment_status' => 'closed'
383
+ )
384
+ );
385
+ }
386
+
387
+ $page_settings[ $key ] = $insert_id;
388
+ }
389
+ }
390
+
391
+ update_option( 'aiovg_page_settings', $page_settings );
392
+
393
+ $fixed[] = $issue;
394
+ break;
395
+ }
396
+ }
397
+
398
+ $fixed = apply_filters( 'aiovg_fix_issues', $fixed );
399
+
400
+ // Update
401
+ $issues = get_option( 'aiovg_issues', array(
402
+ 'found' => array(),
403
+ 'ignored' => array()
404
+ ));
405
+
406
+ foreach ( $issues['found'] as $index => $issue ) {
407
+ if ( in_array( $issue, $fixed ) ) {
408
+ unset( $issues['found'][ $index ] );
409
+ }
410
+ }
411
+
412
+ foreach ( $issues['ignored'] as $index => $issue ) {
413
+ if ( in_array( $issue, $fixed ) ) {
414
+ unset( $issues['ignored'][ $index ] );
415
+ }
416
+ }
417
+
418
+ update_option( 'aiovg_issues', $issues );
419
+ }
420
+
421
+ /**
422
+ * Ignore issues.
423
+ *
424
+ * @since 1.6.5
425
  */
426
+ public function ignore_issues() {
427
+ $ignored = array();
428
+
429
+ // Ignore the issues
430
+ $_issues = aiovg_sanitize_array( $_POST['issues'] );
431
+
432
+ foreach ( $_issues as $issue ) {
433
+ switch ( $issue ) {
434
+ case 'pages_misconfigured':
435
+ $ignored[] = $issue;
436
+ break;
437
+ }
438
+ }
439
+
440
+ $ignored = apply_filters( 'aiovg_ignore_issues', $ignored );
441
+
442
+ // Update
443
+ $issues = get_option( 'aiovg_issues', array(
444
+ 'found' => array(),
445
+ 'ignored' => array()
446
+ ));
447
+
448
+ foreach ( $issues['found'] as $index => $issue ) {
449
+ if ( in_array( $issue, $ignored ) ) {
450
+ unset( $issues['found'][ $index ] );
451
+ }
452
+ }
453
+
454
+ $issues['ignored'] = array_merge( $issues['ignored'], $ignored );
455
+
456
+ update_option( 'aiovg_issues', $issues );
457
+ }
458
+
459
+ /**
460
+ * Get details of the given issue.
461
+ *
462
+ * @since 1.6.5
463
+ * @param string $issue Issue code.
464
+ * @return array Issue details.
465
+ */
466
+ public function get_issue_details( $issue ) {
467
+ $issues_list = array(
468
+ 'pages_misconfigured' => array(
469
+ 'title' => __( 'Pages Misconfigured', 'all-in-one-video-gallery' ),
470
+ 'description' => sprintf(
471
+ __( 'During activation, our plugin adds few <a href="%s" target="_blank">pages</a> dynamically on your website that are required for the internal logic of the plugin. We found some of those pages are missing, misconfigured or having a wrong shortcode.', 'all-in-one-video-gallery' ),
472
+ esc_url( admin_url( 'admin.php?page=aiovg_settings&tab=advanced&section=aiovg_page_settings' ) )
473
+ )
474
+ )
475
+ );
476
+
477
+ $issues_list = apply_filters( 'aiovg_get_issues_list', $issues_list );
478
+
479
+ return isset( $issues_list[ $issue ] ) ? $issues_list[ $issue ] : '';
480
  }
481
 
482
  /**
483
+ * Add a settings link on the plugin listing page.
484
  *
485
+ * @since 1.0.0
486
+ * @param array $links An array of plugin action links.
487
+ * @return string $links Array of filtered plugin action links.
488
  */
489
+ public function plugin_action_links( $links ) {
490
+ $settings_link = sprintf(
491
+ '<a href="%s">%s</a>',
492
+ esc_url( admin_url( 'admin.php?page=aiovg_settings' ) ),
493
+ __( 'Settings', 'all-in-one-video-gallery' )
494
+ );
495
+
496
+ array_unshift( $links, $settings_link );
497
 
498
+ return $links;
 
499
  }
500
+
501
  /**
502
  * Sets the extension and mime type for .vtt files.
503
  *
517
  return $types;
518
  }
519
 
520
+ }
admin/assets/css/admin.css CHANGED
@@ -7,17 +7,50 @@
7
  text-align: center;
8
  }
9
 
10
- .aiovg-no-border {
11
- border: 0 none;
12
  }
13
 
14
  .aiovg-toggle-fields {
15
  display: none;
16
  }
17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  .aiovg-checklist {
19
  max-height: 100px;
20
- padding: 7px 10px;
21
  border: 1px solid #ddd;
22
  box-sizing: border-box;
23
  overflow-y: scroll;
@@ -33,7 +66,30 @@
33
 
34
  .aiovg-checklist label {
35
  display: block;
36
- line-height: 22px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  }
38
 
39
  .aiovg-pipe-separator {
@@ -54,8 +110,7 @@
54
  }
55
 
56
  .aiovg-notice {
57
- padding: 5px;
58
- border-radius: 2px;
59
  }
60
 
61
  .aiovg-notice-error {
@@ -70,6 +125,15 @@
70
  color: #3c763d;
71
  }
72
 
 
 
 
 
 
 
 
 
 
73
  @media (max-width: 767px) {
74
  .aiovg-hidden-xs {
75
  display: none !important;
@@ -104,21 +168,199 @@
104
 
105
  /*----------------------------------------------------------------------------------------------
106
  *
107
- * Welcome
108
  *
109
  *--------------------------------------------------------------------------------------------*/
110
- #aiovg-welcome .aiovg-badge {
111
- margin-bottom: 0;
 
 
 
 
 
 
112
  background: #0073aa url( '../images/logo.png' ) no-repeat top;
113
  }
114
 
115
- #aiovg-welcome .dashicons-info {
116
- color: #ca4a1f;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  }
118
 
119
- #aiovg-welcome .dashicons-awards {
120
- font-size: 30px;
121
- margin-right: 10px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  }
123
 
124
  /*----------------------------------------------------------------------------------------------
@@ -220,55 +462,13 @@ table.aiovg-table .aiovg-handle {
220
  cursor: move;
221
  }
222
 
223
- .aiovg-radio-list,
224
- .aiovg-checkbox-list {
225
- position: relative;
226
- display: block;
227
- background: transparent !important;
228
- margin: 0;
229
- padding: 1px;
230
- }
231
-
232
- .aiovg-radio-list.horizontal,
233
- .aiovg-checkbox-list.horizontal {
234
- overflow: hidden;
235
- }
236
-
237
- .aiovg-radio-list.horizontal li,
238
- .aiovg-checkbox-list.horizontal li {
239
- float: left;
240
- margin-right: 20px;
241
- }
242
-
243
- .aiovg-radio-list input,
244
- .aiovg-checkbox-list input {
245
- margin-top: -1px;
246
- margin-right: 5px !important;
247
- }
248
-
249
  @media (max-width: 767px) {
250
- table.aiovg-table .aiovg-media-uploader input[type="text"] {
251
- width: 100%;
252
- }
253
-
254
- table.aiovg-table .aiovg-media-uploader .button {
255
- width: 100%;
256
- margin-top: 10px;
257
- text-align: center;
258
- }
259
-
260
  .aiovg-tracks-row td {
261
  display: block !important;
262
  border-bottom: none !important;
263
  }
264
  }
265
 
266
- @media (min-width: 768px) {
267
- table.aiovg-table .aiovg-media-uploader input[type="text"] {
268
- width: 75%;
269
- }
270
- }
271
-
272
  /*----------------------------------------------------------------------------------------------
273
  *
274
  * Categories
@@ -283,10 +483,8 @@ table.aiovg-table .aiovg-handle {
283
  * Settings
284
  *
285
  *--------------------------------------------------------------------------------------------*/
286
- .aiovg-settings h2 {
287
  margin-top: 2em;
288
- padding-bottom: 10px;
289
- border-bottom: 1px dashed #CCC;
290
  }
291
 
292
  .aiovg-settings .search {
@@ -302,95 +500,6 @@ table.aiovg-table .aiovg-handle {
302
  display: none;
303
  }
304
 
305
- /*----------------------------------------------------------------------------------------------
306
- *
307
- * Shortcode Builder
308
- *
309
- *--------------------------------------------------------------------------------------------*/
310
- #aiovg-media-button .dashicons:before {
311
- color: #FFF;
312
- }
313
-
314
- #aiovg-shortcode-builder {
315
- position: relative;
316
- width: auto;
317
- max-width: 500px;
318
- margin: 32px auto;
319
- padding: 20px;
320
- background: #FFF;
321
- }
322
-
323
- #aiovg-shortcode-form .aiovg-shortcode-section-header {
324
- display: block;
325
- margin-bottom: 10px;
326
- padding: 7px;
327
- background: #666;
328
- border: #333;
329
- color: #FFF;
330
- pointer-events: none;
331
- }
332
-
333
- #aiovg-shortcode-form .aiovg-shortcode-section-general .aiovg-shortcode-section-header {
334
- display: none;
335
- }
336
-
337
- #aiovg-shortcode-form .aiovg-shortcode-selector,
338
- #aiovg-shortcode-form .aiovg-shortcode-field {
339
- margin-bottom: 10px;
340
- }
341
-
342
- #aiovg-shortcode-form .aiovg-shortcode-label {
343
- display: block;
344
- margin-bottom: 5px;
345
- font-weight: 500;
346
- }
347
-
348
- #aiovg-shortcode-form label.selectit {
349
- margin-bottom: 0;
350
- }
351
-
352
- #aiovg-shortcode-form .aiovg-shortcode-field-description {
353
- margin: 7px 0;
354
- }
355
-
356
- #aiovg-shortcode-type-categories,
357
- #aiovg-shortcode-type-videos,
358
- #aiovg-shortcode-type-video,
359
- #aiovg-shortcode-type-search_form {
360
- display: none;
361
- }
362
-
363
- .aiovg-shortcode-type-categories #aiovg-shortcode-type-categories,
364
- .aiovg-shortcode-type-videos #aiovg-shortcode-type-videos,
365
- .aiovg-shortcode-type-video #aiovg-shortcode-type-video,
366
- .aiovg-shortcode-type-search_form #aiovg-shortcode-type-search_form {
367
- display: block;
368
- }
369
-
370
- #aiovg-shortcode-type-categories .aiovg-shortcode-field-title,
371
- #aiovg-shortcode-type-categories .aiovg-shortcode-field-ratio {
372
- display: none;
373
- }
374
-
375
- #aiovg-shortcode-type-categories.aiovg-template-grid .aiovg-shortcode-field-hierarchical {
376
- display: none;
377
- }
378
-
379
- #aiovg-shortcode-type-categories.aiovg-template-list .aiovg-shortcode-field-columns,
380
- #aiovg-shortcode-type-categories.aiovg-template-list .aiovg-shortcode-field-show_description {
381
- display: none;
382
- }
383
-
384
- #aiovg-shortcode-type-videos .aiovg-shortcode-field-title,
385
- #aiovg-shortcode-type-videos .aiovg-shortcode-field-exclude,
386
- #aiovg-shortcode-type-videos .aiovg-shortcode-field-ratio,
387
- #aiovg-shortcode-type-videos .aiovg-shortcode-field-show_more,
388
- #aiovg-shortcode-type-videos .aiovg-shortcode-field-more_label,
389
- #aiovg-shortcode-type-videos .aiovg-shortcode-field-more_link,
390
- #aiovg-shortcode-type-videos .aiovg-shortcode-field-excerpt_length {
391
- display: none;
392
- }
393
-
394
  /*----------------------------------------------------------------------------------------------
395
  *
396
  * Widgets
@@ -433,10 +542,11 @@ table.aiovg-table .aiovg-handle {
433
  display: none;
434
  }
435
 
 
436
  .aiovg-widget-form-videos .aiovg-widget-field-exclude,
437
  .aiovg-widget-form-videos .aiovg-widget-field-ratio,
438
  .aiovg-widget-form-videos .aiovg-widget-field-show_count,
439
  .aiovg-widget-form-videos .aiovg-widget-field-excerpt_length,
440
  .aiovg-widget-form-videos .aiovg-widget-field-show_pagination {
441
  display: none;
442
- }
7
  text-align: center;
8
  }
9
 
10
+ .aiovg-text-error {
11
+ color:#b31105;
12
  }
13
 
14
  .aiovg-toggle-fields {
15
  display: none;
16
  }
17
 
18
+ .aiovg-indent {
19
+ padding-left: 25px;
20
+ }
21
+
22
+ .aiovg-no-border {
23
+ border: 0 none;
24
+ }
25
+
26
+ .aiovg-radio,
27
+ .aiovg-checkbox {
28
+ position: relative;
29
+ display: block;
30
+ background: transparent !important;
31
+ margin: 0;
32
+ padding: 1px;
33
+ }
34
+
35
+ .aiovg-radio input,
36
+ .aiovg-checkbox input {
37
+ margin-right: 5px !important;
38
+ }
39
+
40
+ .aiovg-radio.horizontal,
41
+ .aiovg-checkbox.horizontal {
42
+ overflow: hidden;
43
+ }
44
+
45
+ .aiovg-radio.horizontal li,
46
+ .aiovg-checkbox.horizontal li {
47
+ float: left;
48
+ margin-right: 20px;
49
+ }
50
+
51
  .aiovg-checklist {
52
  max-height: 100px;
53
+ padding: 5px 10px;
54
  border: 1px solid #ddd;
55
  box-sizing: border-box;
56
  overflow-y: scroll;
66
 
67
  .aiovg-checklist label {
68
  display: block;
69
+ margin: 5px 0;
70
+ line-height: 1;
71
+ }
72
+
73
+ .aiovg-media-uploader {
74
+ position: relative;
75
+ }
76
+
77
+ .aiovg-media-uploader .aiovg-upload-media {
78
+ position: absolute;
79
+ display: -webkit-flex; /* Safari */
80
+ display: flex;
81
+ top: 0;
82
+ right: 0;
83
+ height: 100%;
84
+ padding: 0 10px;
85
+ -webkit-align-items: center; /* Safari */
86
+ align-items: center;
87
+ }
88
+
89
+ .aiovg-media-uploader a,
90
+ .aiovg-media-uploader a:hover,
91
+ .aiovg-media-uploader a:focus {
92
+ text-decoration: none;
93
  }
94
 
95
  .aiovg-pipe-separator {
110
  }
111
 
112
  .aiovg-notice {
113
+ padding: 7px;
 
114
  }
115
 
116
  .aiovg-notice-error {
125
  color: #3c763d;
126
  }
127
 
128
+ .aiovg-modal {
129
+ position: relative;
130
+ width: auto;
131
+ max-width: 640px;
132
+ margin: 32px auto;
133
+ padding: 20px;
134
+ background: #FFF;
135
+ }
136
+
137
  @media (max-width: 767px) {
138
  .aiovg-hidden-xs {
139
  display: none !important;
168
 
169
  /*----------------------------------------------------------------------------------------------
170
  *
171
+ * Dashboard
172
  *
173
  *--------------------------------------------------------------------------------------------*/
174
+ #aiovg-dashboard h1 {
175
+ font-size: 2.4em;
176
+ font-weight: 300;
177
+ }
178
+
179
+ #aiovg-dashboard .aiovg-badge {
180
+ height: 35px;
181
+ padding-top: 125px;
182
  background: #0073aa url( '../images/logo.png' ) no-repeat top;
183
  }
184
 
185
+ /*----------------------------------------------------------------------------------------------
186
+ *
187
+ * Shortcode Builder
188
+ *
189
+ *--------------------------------------------------------------------------------------------*/
190
+ #aiovg-shortcode-selector {
191
+ margin: 0;
192
+ padding: 15px;
193
+ box-shadow: 1px 1px 5px #ccc;
194
+ }
195
+
196
+ #aiovg-shortcode-selector p {
197
+ margin: 0 0 5px 0;
198
+ }
199
+
200
+ #aiovg-shortcode-builder {
201
+ display: -webkit-flex; /* Safari */
202
+ -webkit-flex-wrap: wrap; /* Safari 6.1+ */
203
+ display: flex;
204
+ flex-wrap: wrap;
205
+ margin: 0 -15px;
206
+ }
207
+
208
+ #aiovg-shortcode-builder .aiovg-left-col,
209
+ #aiovg-shortcode-builder .aiovg-right-col {
210
+ width: 100%;
211
+ }
212
+
213
+ #aiovg-shortcode-builder .aiovg-col-content {
214
+ padding: 15px;
215
+ }
216
+
217
+ .aiovg-shortcode-section {
218
+ box-shadow: 1px 1px 5px #ddd;
219
+ }
220
+
221
+ .aiovg-shortcode-section-header {
222
+ margin: 5px 0 0 0;
223
+ padding: 10px;
224
+ background: #e5e5e5;
225
+ border: 1px solid #ccc;
226
+ font-size: 1.1em;
227
+ font-weight: normal;
228
+ line-height: normal;
229
+ cursor: pointer;
230
+ }
231
+
232
+ .aiovg-shortcode-section-header:hover {
233
+ background: #f9f9f9;
234
+ }
235
+
236
+ .aiovg-shortcode-section-header .dashicons-before {
237
+ color: #006799;
238
+ line-height: 1.1em;
239
  }
240
 
241
+ .aiovg-shortcode-section-header .dashicons-plus {
242
+ display: inline-block;
243
+ }
244
+
245
+ .aiovg-shortcode-section-header .dashicons-minus {
246
+ display: none;
247
+ }
248
+
249
+ .aiovg-active .aiovg-shortcode-section-header .dashicons-plus {
250
+ display: none;
251
+ }
252
+
253
+ .aiovg-active .aiovg-shortcode-section-header .dashicons-minus {
254
+ display: inline-block;
255
+ }
256
+
257
+ .aiovg-shortcode-controls {
258
+ margin: -1px 0 0 0;
259
+ padding: 15px;
260
+ background: #fff;
261
+ border: 1px solid #ccc;
262
+ }
263
+
264
+ .aiovg-shortcode-control {
265
+ margin-bottom: 15px;
266
+ }
267
+
268
+ .aiovg-shortcode-controls .aiovg-shortcode-control:last-child {
269
+ margin-bottom: 0;
270
+ }
271
+
272
+ .aiovg-shortcode-control > label {
273
+ display: block;
274
+ margin-bottom: 7px;
275
+ }
276
+
277
+ .aiovg-shortcode-control .wp-picker-input-wrap label {
278
+ display: inline-block;
279
+ }
280
+
281
+ .aiovg-shortcode-control-title,
282
+ .aiovg-shortcode-control-id,
283
+ .aiovg-shortcode-control-mp4,
284
+ .aiovg-shortcode-control-youtube,
285
+ .aiovg-shortcode-control-vimeo,
286
+ .aiovg-shortcode-control-dailymotion,
287
+ .aiovg-shortcode-control-facebook,
288
+ .aiovg-shortcode-control-ratio,
289
+ .aiovg-shortcode-control-include,
290
+ .aiovg-shortcode-control-exclude,
291
+ .aiovg-shortcode-control-excerpt_length,
292
+ .aiovg-shortcode-control-show_more,
293
+ .aiovg-shortcode-control-more_label,
294
+ .aiovg-shortcode-control-more_link {
295
+ display: none;
296
+ }
297
+
298
+ #aiovg-shortcode-form-video.aiovg-type-default .aiovg-shortcode-control-mp4 {
299
+ display: block;
300
+ }
301
+
302
+ #aiovg-shortcode-form-video.aiovg-type-youtube .aiovg-shortcode-control-youtube {
303
+ display: block;
304
+ }
305
+
306
+ #aiovg-shortcode-form-video.aiovg-type-vimeo .aiovg-shortcode-control-vimeo {
307
+ display: block;
308
+ }
309
+
310
+ #aiovg-shortcode-form-video.aiovg-type-dailymotion .aiovg-shortcode-control-dailymotion {
311
+ display: block;
312
+ }
313
+
314
+ #aiovg-shortcode-form-video.aiovg-type-facebook .aiovg-shortcode-control-facebook {
315
+ display: block;
316
+ }
317
+
318
+ #aiovg-shortcode-form-video .aiovg-shortcode-control-ratio {
319
+ display: block;
320
+ }
321
+
322
+ #aiovg-shortcode-form-categories .aiovg-shortcode-control-id {
323
+ display: block;
324
+ }
325
+
326
+ #aiovg-shortcode-form-categories.aiovg-template-grid .aiovg-shortcode-control-hierarchical {
327
+ display: none;
328
+ }
329
+
330
+ #aiovg-shortcode-form-categories.aiovg-template-list .aiovg-shortcode-control-columns,
331
+ #aiovg-shortcode-form-categories.aiovg-template-list .aiovg-shortcode-control-show_description {
332
+ display: none;
333
+ }
334
+
335
+ @media only screen and (min-width: 768px) {
336
+ #aiovg-shortcode-builder .aiovg-left-col {
337
+ width: 60%;
338
+ }
339
+
340
+ #aiovg-shortcode-builder .aiovg-right-col {
341
+ width: 40%;
342
+ }
343
+ }
344
+
345
+ /*----------------------------------------------------------------------------------------------
346
+ *
347
+ * Issues Manager
348
+ *
349
+ *--------------------------------------------------------------------------------------------*/
350
+ #aiovg-issues {
351
+ margin-top: 1.4em;
352
+ }
353
+
354
+ #aiovg-issues .subsubsub {
355
+ margin: 7px 0;
356
+ }
357
+
358
+ #aiovg-issues input[type=checkbox] {
359
+ margin: 0;
360
+ }
361
+
362
+ #aiovg-issues tfoot td {
363
+ text-align: right;
364
  }
365
 
366
  /*----------------------------------------------------------------------------------------------
462
  cursor: move;
463
  }
464
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
465
  @media (max-width: 767px) {
 
 
 
 
 
 
 
 
 
 
466
  .aiovg-tracks-row td {
467
  display: block !important;
468
  border-bottom: none !important;
469
  }
470
  }
471
 
 
 
 
 
 
 
472
  /*----------------------------------------------------------------------------------------------
473
  *
474
  * Categories
483
  * Settings
484
  *
485
  *--------------------------------------------------------------------------------------------*/
486
+ .aiovg-settings form {
487
  margin-top: 2em;
 
 
488
  }
489
 
490
  .aiovg-settings .search {
500
  display: none;
501
  }
502
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
503
  /*----------------------------------------------------------------------------------------------
504
  *
505
  * Widgets
542
  display: none;
543
  }
544
 
545
+ .aiovg-widget-form-videos .aiovg-widget-field-include,
546
  .aiovg-widget-form-videos .aiovg-widget-field-exclude,
547
  .aiovg-widget-form-videos .aiovg-widget-field-ratio,
548
  .aiovg-widget-form-videos .aiovg-widget-field-show_count,
549
  .aiovg-widget-form-videos .aiovg-widget-field-excerpt_length,
550
  .aiovg-widget-form-videos .aiovg-widget-field-show_pagination {
551
  display: none;
552
+ }
admin/assets/js/admin.js CHANGED
@@ -1,6 +1,6 @@
1
  (function( $ ) {
2
  'use strict';
3
-
4
  /**
5
  * Display the media uploader.
6
  *
@@ -34,10 +34,6 @@
34
 
35
  // Set the data
36
  switch ( form ) {
37
- case 'videos':
38
- var id = $elem.data( 'format' );
39
- $( '#aiovg-' + id ).val( attachment.url );
40
- break;
41
  case 'tracks':
42
  var id = $elem.closest( 'tr' ).find( '.aiovg-track-src' ).attr( 'id' );
43
  $( '#' + id ).val( attachment.url );
@@ -52,13 +48,15 @@
52
  case 'settings':
53
  $elem.prev( '.aiovg-url' ).val( attachment.url );
54
  break;
 
 
55
  };
56
  });
57
 
58
  // Now display the actual file_frame
59
  file_frame.open();
60
  };
61
-
62
  /**
63
  * Make tracks inside the video form sortable.
64
  *
@@ -100,46 +98,152 @@
100
  */
101
  $(function() {
102
 
103
- // Admin: Dismiss admin notice
104
- $( '#aiovg-admin-notice' ).on( 'click', '.notice-dismiss', function( e ) {
105
- e.preventDefault();
106
-
107
- var data = {
108
- 'action': 'aiovg_dismiss_admin_notice',
109
- 'security': $( '#aiovg-admin-notice' ).data( 'security' )
110
- };
111
-
112
- $.post( ajaxurl, data );
113
  });
 
 
 
114
 
115
- // Settings: Set Section ID
116
- $( '.form-table', '#aiovg-settings' ).each(function() {
117
- var str = $( this ).find( 'tr:first th label' ).attr( 'for' );
118
- var id = str.split( '[' );
119
- id = id[0].replace( /_/g, '-' );
120
 
121
- $( this ).attr( 'id', id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  });
123
 
124
- // Settings: Toggle fields based on the selected categories template
125
- $( 'tr.template', '#aiovg-categories-settings' ).find( 'select' ).on( 'change', function() {
126
  var template = $( this ).val();
127
 
128
- $( '#aiovg-categories-settings' ).removeClass(function( index, classes ) {
129
  var matches = classes.match( /\aiovg-template-\S+/ig );
130
  return ( matches ) ? matches.join(' ') : '';
131
  }).addClass( 'aiovg-template-' + template );
132
- }).trigger( 'change' );
133
 
134
- // Settings: Toggle fields based on the selected videos template
135
- $( 'tr.template', '#aiovg-videos-settings' ).find( 'select' ).on( 'change', function() {
136
  var template = $( this ).val();
137
 
138
- $( '#aiovg-videos-settings' ).removeClass(function( index, classes ) {
139
  var matches = classes.match( /\aiovg-template-\S+/ig );
140
  return ( matches ) ? matches.join(' ') : '';
141
  }).addClass( 'aiovg-template-' + template );
142
- }).trigger( 'change' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
 
144
  // Videos: Toggle fields based on the selected video source type
145
  $( '#aiovg-video-type' ).on( 'change', function( e ) {
@@ -177,12 +281,6 @@
177
  }
178
  }).trigger( 'change' );
179
 
180
- // Videos: Display the media uploader when "Upload Media" button clicked
181
- $( '.aiovg-upload-media' ).on( 'click', function( e ) {
182
- e.preventDefault();
183
- aiovg_render_media_uploader( $( this ), 'videos' );
184
- });
185
-
186
  // Videos: Add new subtitle fields when "Add New File" button clicked
187
  $( '#aiovg-add-new-track' ).on( 'click', function( e ) {
188
  e.preventDefault();
@@ -199,7 +297,7 @@
199
  $( '#aiovg-add-new-track' ).trigger( 'click' );
200
  }
201
 
202
- // Videos: Display the media uploader for adding subtitles when "Upload File" button clicked
203
  $( 'body' ).on( 'click', '.aiovg-upload-track', function( e ) {
204
  e.preventDefault();
205
  aiovg_render_media_uploader( $( this ), 'tracks' );
@@ -214,33 +312,21 @@
214
  // Videos: Make the subtitles fields sortable
215
  aiovg_sort_tracks();
216
 
217
- // Categories: Display the media uploader when "Add Image" button clicked
218
  $( '#aiovg-categories-upload-image' ).on( 'click', function( e ) {
219
  e.preventDefault();
220
  aiovg_render_media_uploader( $( this ), 'categories' );
221
  });
222
 
223
- // Categories: Delete the image when "Remove Image" button clicked
224
  $( '#aiovg-categories-remove-image' ).on( 'click', function( e ) {
225
  e.preventDefault();
226
-
227
- var id = parseInt( $( '#aiovg-categories-image-id' ).val() );
228
-
229
- if ( id > 0 ) {
230
- var data = {
231
- 'action': 'aiovg_delete_category_image',
232
- 'attachment_id': id,
233
- 'security': $( '#aiovg_category_image_nonce' ).val()
234
- };
235
 
236
- $.post( ajaxurl, data, function(response) {
237
- $( '#aiovg-categories-image-id' ).val( '' );
238
- $( '#aiovg-categories-image-wrapper' ).html( '' );
239
-
240
- $( '#aiovg-categories-remove-image' ).hide();
241
- $( '#aiovg-categories-upload-image' ).show();
242
- });
243
- };
244
  });
245
 
246
  // Categories: Clear the image field after a category was created
@@ -261,95 +347,41 @@
261
  };
262
  };
263
  });
264
-
265
- // Settings: Initiate color picker
266
- $( '.aiovg-color-picker-field', '#aiovg-settings' ).wpColorPicker();
 
 
 
 
 
 
267
 
268
- // Settings: Browse button
269
  $( '.aiovg-browse', '#aiovg-settings' ).on( 'click', function( e ) {
270
  e.preventDefault();
271
  aiovg_render_media_uploader( $( this ), 'settings' );
272
  });
273
-
274
- // Shortcode Builder: Initialize popup
275
- $( '#aiovg-media-button' ).magnificPopup({
276
- type: 'inline'
277
- });
278
-
279
- // Shortcode Builder: Toggle fields based on the selected shortcode type
280
- $( '#aiovg-shortcode-type' ).on( 'change', function( e ) {
281
- var type = $( this ).val();
282
 
283
- $( '#aiovg-shortcode-form' ).removeClass(function( index, classes ) {
284
- var matches = classes.match( /\aiovg-shortcode-type-\S+/ig );
285
- return ( matches ) ? matches.join(' ') : '';
286
- }).addClass( 'aiovg-shortcode-type-' + type );
287
- }).trigger( 'change' );
288
-
289
- // Shortcode Builder: Toggle fields based on the selected categories template
290
- $( '.aiovg-shortcode-field-template', '#aiovg-shortcode-type-categories' ).find( 'select' ).on( 'change', function() {
291
  var template = $( this ).val();
292
 
293
- $( '#aiovg-shortcode-type-categories' ).removeClass(function( index, classes ) {
294
  var matches = classes.match( /\aiovg-template-\S+/ig );
295
  return ( matches ) ? matches.join(' ') : '';
296
  }).addClass( 'aiovg-template-' + template );
297
  }).trigger( 'change' );
298
 
299
- // Shortcode Builder: Toggle fields based on the selected videos template
300
- $( '.aiovg-shortcode-field-template', '#aiovg-shortcode-type-videos' ).find( 'select' ).on( 'change', function() {
301
  var template = $( this ).val();
302
 
303
- $( '#aiovg-shortcode-type-videos' ).removeClass(function( index, classes ) {
304
  var matches = classes.match( /\aiovg-template-\S+/ig );
305
  return ( matches ) ? matches.join(' ') : '';
306
  }).addClass( 'aiovg-template-' + template );
307
- }).trigger( 'change' );
308
-
309
- // Shortcode Builder: Initiate color picker
310
- $( '.aiovg-color-picker-field', '#aiovg-shortcode-form' ).wpColorPicker();
311
-
312
- // Shortcode Builder: Insert shortcode
313
- $( '#aiovg-insert-shortcode' ).on( 'click', function( e ) {
314
- e.preventDefault();
315
-
316
- var shortcode = $( '#aiovg-shortcode-type' ).val();
317
- var attrs = '';
318
-
319
- $( '.aiovg-shortcode-field', '#aiovg-shortcode-type-' + shortcode ).each(function() {
320
- var $elem = $( this ).find( '.aiovg-shortcode-input' );
321
-
322
- if ( $elem.length ) {
323
- var type = $elem.attr( 'type' );
324
- var name = $elem.attr( 'name' );
325
- var value = $elem.val();
326
- var def = $elem.data( 'default' );
327
-
328
- if ( 'category' == name ) {
329
- value = $( 'input[type="checkbox"]:checked', $elem ).map(function() {
330
- return this.value;
331
- }).get().join( "," );
332
- }
333
-
334
- if ( 'checkbox' == type ) {
335
- value = $elem.is( ':checked' ) ? 1 : 0;
336
- }
337
-
338
- if ( value != def ) {
339
- attrs += ( ' ' + name + '="' + value + '"' );
340
- }
341
- }
342
- });
343
-
344
- window.send_to_editor( '[aiovg_' + shortcode + attrs + ']' );
345
- $.magnificPopup.close();
346
- }).trigger( 'change' );
347
-
348
- // Shortcode Builder: Close shortcode builder
349
- $( '#aiovg-cancel-shortcode-insert' ).on( 'click', function( e ) {
350
- e.preventDefault();
351
- $.magnificPopup.close();
352
- });
353
 
354
  // Categories Widget: Toggle fields based on the selected categories template
355
  $( document ).on( 'change', '.aiovg-widget-form-categories .aiovg-widget-input-template', function() {
1
  (function( $ ) {
2
  'use strict';
3
+
4
  /**
5
  * Display the media uploader.
6
  *
34
 
35
  // Set the data
36
  switch ( form ) {
 
 
 
 
37
  case 'tracks':
38
  var id = $elem.closest( 'tr' ).find( '.aiovg-track-src' ).attr( 'id' );
39
  $( '#' + id ).val( attachment.url );
48
  case 'settings':
49
  $elem.prev( '.aiovg-url' ).val( attachment.url );
50
  break;
51
+ default:
52
+ $elem.closest( '.aiovg-media-uploader' ).find( 'input[type=text]' ).val( attachment.url );
53
  };
54
  });
55
 
56
  // Now display the actual file_frame
57
  file_frame.open();
58
  };
59
+
60
  /**
61
  * Make tracks inside the video form sortable.
62
  *
98
  */
99
  $(function() {
100
 
101
+ // Common: Upload Media
102
+ $( '.aiovg-upload-media' ).on( 'click', function( e ) {
103
+ e.preventDefault();
104
+ aiovg_render_media_uploader( $( this ), 'default' );
 
 
 
 
 
 
105
  });
106
+
107
+ // Common: Initiate color picker
108
+ $( '.aiovg-color-picker' ).wpColorPicker();
109
 
110
+ // Common: Initialize the popup
111
+ $( '.aiovg-modal-button' ).magnificPopup({
112
+ type: 'inline'
113
+ });
 
114
 
115
+ // Dashboard: On shortcode type changed
116
+ $( 'input[type=radio]', '#aiovg-shortcode-selector' ).on( 'change', function( e ) {
117
+ var shortcode = $( 'input[type=radio]:checked', '#aiovg-shortcode-selector' ).val();
118
+
119
+ $( '.aiovg-shortcode-form' ).hide();
120
+ $( '.aiovg-shortcode-instructions' ).hide();
121
+
122
+ $( '#aiovg-shortcode-form-' + shortcode ).show();
123
+ $( '#aiovg-shortcode-instructions-' + shortcode ).show();
124
+ }).trigger( 'change' );
125
+
126
+ // Dashboard: Toggle between field sections
127
+ $( document ).on( 'click', '.aiovg-shortcode-section-header', function( e ) {
128
+ var $elem = $( this ).parent();
129
+
130
+ if ( ! $elem.hasClass( 'aiovg-active' ) ) {
131
+ $( this ).closest( '.aiovg-shortcode-form' )
132
+ .find( '.aiovg-shortcode-section.aiovg-active' )
133
+ .toggleClass( 'aiovg-active' )
134
+ .find( '.aiovg-shortcode-controls' )
135
+ .slideToggle();
136
+ }
137
+
138
+ $elem.toggleClass( 'aiovg-active' )
139
+ .find( '.aiovg-shortcode-controls' )
140
+ .slideToggle();
141
+ });
142
+
143
+ // Dashboard: Toggle fields based on the selected video source type
144
+ $( 'select[name=type]', '#aiovg-shortcode-form-video' ).on( 'change', function() {
145
+ var type = $( this ).val();
146
+
147
+ $( '#aiovg-shortcode-form-video' ).removeClass(function( index, classes ) {
148
+ var matches = classes.match( /\aiovg-type-\S+/ig );
149
+ return ( matches ) ? matches.join(' ') : '';
150
+ }).addClass( 'aiovg-type-' + type );
151
  });
152
 
153
+ // Dashboard: Toggle fields based on the selected videos template
154
+ $( 'select[name=template]', '#aiovg-shortcode-form-videos' ).on( 'change', function() {
155
  var template = $( this ).val();
156
 
157
+ $( '#aiovg-shortcode-form-videos' ).removeClass(function( index, classes ) {
158
  var matches = classes.match( /\aiovg-template-\S+/ig );
159
  return ( matches ) ? matches.join(' ') : '';
160
  }).addClass( 'aiovg-template-' + template );
161
+ });
162
 
163
+ // Dashboard: Toggle fields based on the selected categories template
164
+ $( 'select[name=template]', '#aiovg-shortcode-form-categories' ).on( 'change', function() {
165
  var template = $( this ).val();
166
 
167
+ $( '#aiovg-shortcode-form-categories' ).removeClass(function( index, classes ) {
168
  var matches = classes.match( /\aiovg-template-\S+/ig );
169
  return ( matches ) ? matches.join(' ') : '';
170
  }).addClass( 'aiovg-template-' + template );
171
+ });
172
+
173
+ // Dashboard: Generate shortcode
174
+ $( '#aiovg-generate-shortcode' ).on( 'click', function( e ) {
175
+ e.preventDefault();
176
+
177
+ // Shortcode
178
+ var shortcode = $( 'input[type=radio]:checked', '#aiovg-shortcode-selector' ).val();
179
+
180
+ // Attributes
181
+ var props = {};
182
+
183
+ $( '.aiovg-shortcode-field', '#aiovg-shortcode-form-' + shortcode ).each(function() {
184
+ var $this = $( this );
185
+ var type = $this.attr( 'type' );
186
+ var name = $this.attr( 'name' );
187
+ var value = $this.val();
188
+ var def = 0;
189
+
190
+ if ( 'undefined' !== typeof $this.data( 'default' ) ) {
191
+ def = $this.data( 'default' );
192
+ }
193
+
194
+ // type = checkbox
195
+ if ( 'checkbox' == type ) {
196
+ value = $this.is( ':checked' ) ? 1 : 0;
197
+ } else {
198
+ // name = category
199
+ if ( 'category' == name ) {
200
+ value = $( 'input[type=checkbox]:checked', $this ).map(function() {
201
+ return this.value;
202
+ }).get().join( "," );
203
+ }
204
+ }
205
+
206
+ // Add only if the user input differ from the global configuration
207
+ if ( value != def ) {
208
+ props[ name ] = value;
209
+ }
210
+ });
211
+
212
+ var attrs = shortcode;
213
+ for ( var name in props ) {
214
+ if ( props.hasOwnProperty( name ) ) {
215
+ attrs += ( ' ' + name + '="' + props[ name ] + '"' );
216
+ }
217
+ }
218
+
219
+ // Shortcode output
220
+ $( '#aiovg-shortcode').val( '[aiovg_' + attrs + ']' );
221
+ });
222
+
223
+ // Dashboard: Check/Uncheck all checkboxes in the issues table list
224
+ $( '#aiovg-issues-check-all' ).on( 'change', function( e ) {
225
+ var value = $( this ).is( ':checked' ) ? 1 : 0;
226
+
227
+ if ( value ) {
228
+ $( '.aiovg-issue', '#aiovg-issues' ).prop( 'checked', true );
229
+ } else {
230
+ $( '.aiovg-issue', '#aiovg-issues' ).prop( 'checked', false );
231
+ }
232
+ });
233
+
234
+ // Dashboard: Validate the issues form
235
+ $( '#aiovg-issues-form' ).submit(function() {
236
+ var has_input = 0;
237
+
238
+ $( '.aiovg-issue:checked', '#aiovg-issues' ).each(function() {
239
+ has_input = 1;
240
+ });
241
+
242
+ if ( ! has_input ) {
243
+ alert( aiovg_admin.i18n.no_issues_slected );
244
+ return false;
245
+ }
246
+ });
247
 
248
  // Videos: Toggle fields based on the selected video source type
249
  $( '#aiovg-video-type' ).on( 'change', function( e ) {
281
  }
282
  }).trigger( 'change' );
283
 
 
 
 
 
 
 
284
  // Videos: Add new subtitle fields when "Add New File" button clicked
285
  $( '#aiovg-add-new-track' ).on( 'click', function( e ) {
286
  e.preventDefault();
297
  $( '#aiovg-add-new-track' ).trigger( 'click' );
298
  }
299
 
300
+ // Videos: Upload Tracks
301
  $( 'body' ).on( 'click', '.aiovg-upload-track', function( e ) {
302
  e.preventDefault();
303
  aiovg_render_media_uploader( $( this ), 'tracks' );
312
  // Videos: Make the subtitles fields sortable
313
  aiovg_sort_tracks();
314
 
315
+ // Categories: Upload Image
316
  $( '#aiovg-categories-upload-image' ).on( 'click', function( e ) {
317
  e.preventDefault();
318
  aiovg_render_media_uploader( $( this ), 'categories' );
319
  });
320
 
321
+ // Categories: Remove Image
322
  $( '#aiovg-categories-remove-image' ).on( 'click', function( e ) {
323
  e.preventDefault();
 
 
 
 
 
 
 
 
 
324
 
325
+ $( '#aiovg-categories-image-id' ).val( '' );
326
+ $( '#aiovg-categories-image-wrapper' ).html( '' );
327
+
328
+ $( '#aiovg-categories-remove-image' ).hide();
329
+ $( '#aiovg-categories-upload-image' ).show();
 
 
 
330
  });
331
 
332
  // Categories: Clear the image field after a category was created
347
  };
348
  };
349
  });
350
+
351
+ // Settings: Set Section ID
352
+ $( '.form-table', '#aiovg-settings' ).each(function() {
353
+ var str = $( this ).find( 'tr:first th label' ).attr( 'for' );
354
+ var id = str.split( '[' );
355
+ id = id[0].replace( /_/g, '-' );
356
+
357
+ $( this ).attr( 'id', id );
358
+ });
359
 
360
+ // Settings: Upload Files
361
  $( '.aiovg-browse', '#aiovg-settings' ).on( 'click', function( e ) {
362
  e.preventDefault();
363
  aiovg_render_media_uploader( $( this ), 'settings' );
364
  });
 
 
 
 
 
 
 
 
 
365
 
366
+ // Settings: Toggle fields based on the selected categories template
367
+ $( 'tr.template', '#aiovg-categories-settings' ).find( 'select' ).on( 'change', function() {
 
 
 
 
 
 
368
  var template = $( this ).val();
369
 
370
+ $( '#aiovg-categories-settings' ).removeClass(function( index, classes ) {
371
  var matches = classes.match( /\aiovg-template-\S+/ig );
372
  return ( matches ) ? matches.join(' ') : '';
373
  }).addClass( 'aiovg-template-' + template );
374
  }).trigger( 'change' );
375
 
376
+ // Settings: Toggle fields based on the selected videos template
377
+ $( 'tr.template', '#aiovg-videos-settings' ).find( 'select' ).on( 'change', function() {
378
  var template = $( this ).val();
379
 
380
+ $( '#aiovg-videos-settings' ).removeClass(function( index, classes ) {
381
  var matches = classes.match( /\aiovg-template-\S+/ig );
382
  return ( matches ) ? matches.join(' ') : '';
383
  }).addClass( 'aiovg-template-' + template );
384
+ }).trigger( 'change' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
385
 
386
  // Categories Widget: Toggle fields based on the selected categories template
387
  $( document ).on( 'change', '.aiovg-widget-form-categories .aiovg-widget-input-template', function() {
admin/categories.php CHANGED
@@ -21,6 +21,39 @@ if ( ! defined( 'WPINC' ) ) {
21
  */
22
  class AIOVG_Admin_Categories {
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  /**
25
  * Register the custom taxonomy "aiovg_categories".
26
  *
@@ -155,24 +188,5 @@ class AIOVG_Admin_Categories {
155
 
156
  aiovg_delete_category_attachments( $term_id );
157
  }
158
-
159
- /**
160
- * Delete category image.
161
- *
162
- * @since 1.0.0
163
- */
164
- public function ajax_callback_delete_category_image() {
165
- check_ajax_referer( 'aiovg_process_category_image', 'security' );
166
-
167
- $general_settings = get_option( 'aiovg_general_settings' );
168
-
169
- if ( ! empty( $general_settings['delete_media_files'] ) ) {
170
- if ( isset( $_POST['attachment_id'] ) ) {
171
- wp_delete_attachment( (int) $_POST['attachment_id'], true );
172
- }
173
- }
174
-
175
- wp_die();
176
- }
177
 
178
  }
21
  */
22
  class AIOVG_Admin_Categories {
23
 
24
+ /**
25
+ * Add "Categories" menu.
26
+ *
27
+ * @since 1.6.5
28
+ */
29
+ public function admin_menu() {
30
+ add_submenu_page(
31
+ 'all-in-one-video-gallery',
32
+ __( 'All-in-One Video Gallery - Categories', 'all-in-one-video-gallery' ),
33
+ __( 'Categories', 'all-in-one-video-gallery' ),
34
+ 'manage_aiovg_options',
35
+ 'edit-tags.php?taxonomy=aiovg_categories&post_type=aiovg_videos'
36
+ );
37
+ }
38
+
39
+ /**
40
+ * Move "Categories" submenu under our plugin's main menu.
41
+ *
42
+ * @since 1.6.5
43
+ * @param string $parent_file The parent file.
44
+ * @return string $parent_file The parent file.
45
+ */
46
+ public function parent_file( $parent_file ) {
47
+ global $submenu_file, $current_screen;
48
+
49
+ if ( 'aiovg_categories' == $current_screen->taxonomy ) {
50
+ $submenu_file = 'edit-tags.php?taxonomy=aiovg_categories&post_type=aiovg_videos';
51
+ $parent_file = 'all-in-one-video-gallery';
52
+ }
53
+
54
+ return $parent_file;
55
+ }
56
+
57
  /**
58
  * Register the custom taxonomy "aiovg_categories".
59
  *
188
 
189
  aiovg_delete_category_attachments( $term_id );
190
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
 
192
  }
admin/partials/dashboard.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Plugin Dashboard.
5
+ *
6
+ * @link https://plugins360.com
7
+ * @since 1.6.5
8
+ *
9
+ * @package All_In_One_Video_Gallery
10
+ */
11
+ ?>
12
+
13
+ <div id="aiovg-dashboard" class="wrap about-wrap full-width-layout aiovg-dashboard">
14
+ <h1><?php
15
+ esc_html_e( 'All-in-One Video Gallery', 'all-in-one-video-gallery' );
16
+ ?></h1>
17
+
18
+ <p class="about-text">
19
+ <?php
20
+ esc_html_e( 'Add responsive video galleries anywhere on your website – no coding required. Includes HTML5 Player, Thumbnail Grid, Slider, Popup & more.', 'all-in-one-video-gallery' );
21
+ ?>
22
+ </p>
23
+
24
+ <?php
25
+ ?>
26
+
27
+ <div class="wp-badge aiovg-badge"><?php
28
+ printf( esc_html__( 'Version %s', 'all-in-one-video-gallery' ), AIOVG_PLUGIN_VERSION );
29
+ ?></div>
30
+
31
+ <h2 class="nav-tab-wrapper wp-clearfix">
32
+ <?php
33
+ foreach ( $tabs as $tab => $title ) {
34
+ $url = admin_url( add_query_arg( 'tab', $tab, 'admin.php?page=all-in-one-video-gallery' ) );
35
+ $class = ( $tab == $active_tab ? 'nav-tab nav-tab-active' : 'nav-tab' );
36
+
37
+ if ( 'issues' == $tab ) {
38
+ $class .= ' aiovg-text-error';
39
+ $title .= sprintf( ' <span class="count">(%d)</span>', count( $issues['found'] ) );
40
+ }
41
+
42
+ printf(
43
+ '<a href="%s" class="%s">%s</a>',
44
+ esc_url( $url ),
45
+ $class,
46
+ $title
47
+ );
48
+ }
49
+ ?>
50
+ </h2>
51
+
52
+ <?php
53
+ require_once AIOVG_PLUGIN_DIR . "admin/partials/{$active_tab}.php";
54
+ ?>
55
+ </div>
admin/partials/faq.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Dashboard: FAQ.
5
+ *
6
+ * @link https://plugins360.com
7
+ * @since 1.6.5
8
+ *
9
+ * @package All_In_One_Video_Gallery
10
+ */
11
+ ?>
12
+
13
+ <div id="aiovg-faq">
14
+ <div class="aiovg-faq-item">
15
+ <h3>1. <?php esc_html_e( 'Does the plugin support third-party page builders like "Elementor", "WPBakery", "Divi", etc.?', 'all-in-one-video-gallery' ); ?></h3>
16
+ <?php
17
+ printf(
18
+ __( 'Sure, this is the main reason we developed the shortcode builder. Simply generate your shortcode using the <a href="%s">Shortcode Builder</a> and use it in your page builder.', 'all-in-one-video-gallery' ),
19
+ esc_url( admin_url( 'admin.php?page=all-in-one-video-gallery' ) )
20
+ );
21
+ ?>
22
+ </div>
23
+
24
+ <div class="aiovg-faq-item">
25
+ <h3>2. <?php esc_html_e( 'The plugin is not working for me. What should I do now?', 'all-in-one-video-gallery' ); ?></h3>
26
+ <?php
27
+ printf(
28
+ __( 'No Worries. We are just an email away from you. Please contact us <a href="%s">here</a>.', 'all-in-one-video-gallery' ),
29
+ esc_url( admin_url( 'admin.php?page=all-in-one-video-gallery-contact' ) )
30
+ );
31
+ ?>
32
+ </div>
33
+ </div>
admin/partials/issues.php ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Dashboard: Issues.
5
+ *
6
+ * @link https://plugins360.com
7
+ * @since 1.6.5
8
+ *
9
+ * @package All_In_One_Video_Gallery
10
+ */
11
+
12
+ $sections = array(
13
+ 'found' => __( 'Issues', 'all-in-one-video-gallery' ),
14
+ 'ignored' => __( 'Ignored', 'all-in-one-video-gallery' )
15
+ );
16
+
17
+ $active_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'found';
18
+ ?>
19
+
20
+ <div id="aiovg-issues">
21
+ <?php
22
+ // Notices
23
+ if ( isset( $_GET['success'] ) && 1 == $_GET['success'] ) {
24
+ printf(
25
+ '<div class="aiovg-notice aiovg-notice-success">%s</div>',
26
+ ( 'found' == $active_section ? __( 'Congrats! Issues solved.', 'all-in-one-video-gallery' ) : __( 'Issues ignored.', 'all-in-one-video-gallery' ) )
27
+ );
28
+ }
29
+
30
+ // Section Links
31
+ $section_links = array();
32
+
33
+ foreach ( $sections as $key => $title ) {
34
+ $url = admin_url( add_query_arg( 'section', $key, 'admin.php?page=all-in-one-video-gallery&tab=issues' ) );
35
+ $count = count( $issues[ $key ] );
36
+
37
+ $section_links[] = sprintf(
38
+ '<a href="%s" class="%s">%s <span class="count">(%d)</span></a>',
39
+ esc_url( $url ),
40
+ ( $key == $active_section ? 'current' : '' ),
41
+ esc_html( $title ),
42
+ $count
43
+ );
44
+ }
45
+ ?>
46
+ <ul class="subsubsub"><li><?php echo implode( ' | </li><li>', $section_links ); ?></li></ul>
47
+ <div class="clear"></div>
48
+
49
+ <!-- Issues List -->
50
+ <form id="aiovg-issues-form" action="<?php echo esc_url( admin_url( 'admin.php?page=all-in-one-video-gallery&tab=issues&section=' . $active_section ) ); ?>" method="post">
51
+ <table class="widefat striped">
52
+ <thead>
53
+ <tr>
54
+ <td><input type="checkbox" id="aiovg-issues-check-all" /></td>
55
+ <td><?php esc_html_e( 'Issue', 'all-in-one-video-gallery' ); ?></td>
56
+ <td><?php esc_html_e( 'Description', 'all-in-one-video-gallery' ); ?></td>
57
+ </tr>
58
+ </thead>
59
+ <?php if ( count( $issues[ $active_section ] ) > 0 ) : ?>
60
+ <tbody>
61
+ <?php foreach ( $issues[ $active_section ] as $key ) :
62
+ $issue = $this->get_issue_details( $key );
63
+ ?>
64
+ <tr>
65
+ <td><input type="checkbox" name="issues[]" class="aiovg-issue" value="<?php echo esc_attr( $key ); ?>" /></td>
66
+ <td><?php echo esc_html( $issue['title'] ); ?></td>
67
+ <td><?php echo wp_kses_post( $issue['description'] ); ?></td>
68
+ </tr>
69
+ <?php endforeach; ?>
70
+ </tbody>
71
+ <tfoot>
72
+ <tr>
73
+ <td colspan="3">
74
+ <?php if ( 'found' == $active_section ) : ?>
75
+ <input type="submit" name="action" class="button" value="<?php esc_attr_e( 'Ignore', 'all-in-one-video-gallery' ); ?>" />
76
+ <?php endif; ?>
77
+
78
+ <input type="submit" name="action" class="button button-primary" value="<?php esc_attr_e( 'Apply Fix', 'all-in-one-video-gallery' ); ?>" />
79
+ </td>
80
+ </tr>
81
+ </tfoot>
82
+ <?php else : ?>
83
+ <tr>
84
+ <td colspan="3">
85
+ <?php
86
+ if ( 'ignored' == $active_section ) {
87
+ esc_html_e( 'You have no ignored issues.', 'all-in-one-video-gallery' );
88
+ } else {
89
+ esc_html_e( 'You have no issues.', 'all-in-one-video-gallery' );
90
+ }
91
+ ?>
92
+ </td>
93
+ </tr>
94
+ <?php endif; ?>
95
+ </table>
96
+
97
+ <!-- Nonce -->
98
+ <?php wp_nonce_field( 'aiovg_fix_ignore_issues', 'aiovg_issues_nonce' ); ?>
99
+ </form>
100
+ </div>
admin/partials/settings.php CHANGED
@@ -8,26 +8,83 @@
8
  *
9
  * @package All_In_One_Video_Gallery
10
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  ?>
12
 
13
  <div id="aiovg-settings" class="wrap aiovg-settings">
 
 
 
 
14
  <h2 class="nav-tab-wrapper">
15
- <?php
16
- $settings_url = admin_url( 'edit.php?post_type=aiovg_videos&page=aiovg_settings' );
17
-
18
  foreach ( $this->tabs as $tab => $title ) {
19
- $class = ( $tab == $active_tab ) ? 'nav-tab nav-tab-active' : 'nav-tab';
20
- printf( '<a href="%s" class="%s">%s</a>', esc_url( add_query_arg( 'tab', $tab, $settings_url ) ), $class, $title );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  }
22
  ?>
23
  </h2>
24
 
25
- <?php settings_errors(); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
  <form method="post" action="options.php">
28
- <?php
29
- settings_fields( "aiovg_{$active_tab}_settings" );
30
- do_settings_sections( "aiovg_{$active_tab}_settings" );
 
 
31
 
32
  submit_button();
33
  ?>
8
  *
9
  * @package All_In_One_Video_Gallery
10
  */
11
+
12
+ $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : 'general';
13
+ $active_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : '';
14
+
15
+ $sections = array();
16
+ foreach ( $this->sections as $section ) {
17
+ $tab = $section['tab'];
18
+
19
+ if ( ! isset( $sections[ $tab ] ) ) {
20
+ $sections[ $tab ] = array();
21
+ }
22
+
23
+ $sections[ $tab ][] = $section;
24
+ }
25
  ?>
26
 
27
  <div id="aiovg-settings" class="wrap aiovg-settings">
28
+ <h1><?php esc_html_e( 'Plugin Settings', 'all-in-one-video-gallery' ); ?></h1>
29
+
30
+ <?php settings_errors(); ?>
31
+
32
  <h2 class="nav-tab-wrapper">
33
+ <?php
 
 
34
  foreach ( $this->tabs as $tab => $title ) {
35
+ $url = add_query_arg( 'tab', $tab, admin_url( 'admin.php?page=aiovg_settings' ) );
36
+
37
+ foreach ( $sections[ $tab ] as $section ) {
38
+ $url = add_query_arg( 'section', $section['id'], $url );
39
+
40
+ if ( $tab == $active_tab && empty( $active_section ) ) {
41
+ $active_section = $section['id'];
42
+ }
43
+
44
+ break;
45
+ }
46
+
47
+ printf(
48
+ '<a href="%s" class="%s">%s</a>',
49
+ esc_url( $url ),
50
+ ( $tab == $active_tab ? 'nav-tab nav-tab-active' : 'nav-tab' ),
51
+ esc_html( $title )
52
+ );
53
  }
54
  ?>
55
  </h2>
56
 
57
+ <?php
58
+ $section_links = array();
59
+
60
+ foreach ( $sections[ $active_tab ] as $section ) {
61
+ $url = add_query_arg(
62
+ array(
63
+ 'tab' => $active_tab,
64
+ 'section' => $section['id']
65
+ ),
66
+ admin_url( 'admin.php?page=aiovg_settings' )
67
+ );
68
+
69
+ $section_links[] = sprintf(
70
+ '<a href="%s" class="%s">%s</a>',
71
+ esc_url( $url ),
72
+ ( $section['id'] == $active_section ? 'current' : '' ),
73
+ esc_html( $section['title'] )
74
+ );
75
+ }
76
+
77
+ if ( count( $section_links ) > 1 ) : ?>
78
+ <ul class="subsubsub"><li><?php echo implode( ' | </li><li>', $section_links ); ?></li></ul>
79
+ <div class="clear"></div>
80
+ <?php endif; ?>
81
 
82
  <form method="post" action="options.php">
83
+ <?php
84
+ $page_hook = $active_section;
85
+
86
+ settings_fields( $page_hook );
87
+ do_settings_sections( $page_hook );
88
 
89
  submit_button();
90
  ?>
admin/partials/shortcode-builder.php CHANGED
@@ -1,137 +1,413 @@
1
  <?php
2
 
3
  /**
4
- * Shortcode Builder.
5
  *
6
  * @link https://plugins360.com
7
- * @since 1.0.0
8
  *
9
  * @package All_In_One_Video_Gallery
10
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  ?>
12
 
13
- <div id="aiovg-shortcode-builder" class="aiovg-shortcode-builder mfp-hide">
14
- <div id="aiovg-shortcode-form" class="aiovg-shortcode-form">
15
- <p><?php esc_html_e( 'Use the form below to insert "All-in-One Video Gallery" plugin shortcodes.', 'all-in-one-video-gallery' ); ?></p>
16
-
17
- <!-- Shortcodes -->
18
- <div class="aiovg-shortcode-selector">
19
- <label class="aiovg-shortcode-label" for="aiovg-shortcode-type"><?php esc_html_e( 'Shortcode Type', 'all-in-one-video-gallery' ); ?></label>
20
- <select id="aiovg-shortcode-type" class="widefat aiovg-shortcode-type">
21
- <?php
22
- foreach ( $shortcodes as $value => $label ) {
23
- printf( '<option value="%s">%s</option>', $value, $label );
24
- }
25
- ?>
26
- </select>
27
- </div>
28
-
29
- <!-- Fields -->
30
- <?php foreach ( $shortcodes as $shortcode => $label ) : ?>
31
- <div id="aiovg-shortcode-type-<?php echo esc_attr( $shortcode ); ?>" class="aiovg-shortcode-type">
32
- <?php foreach ( $fields[ $shortcode ] as $key => $section ) : ?>
33
- <div class="aiovg-shortcode-section aiovg-shortcode-section-<?php echo esc_attr( $key ); ?>">
34
- <div class="aiovg-shortcode-section-header"><?php echo wp_kses_post( $section['title'] ); ?></div>
35
-
36
- <?php foreach ( $section['fields'] as $field ) : ?>
37
- <div class="aiovg-shortcode-field aiovg-shortcode-field-<?php echo esc_attr( $field['name'] ); ?>">
38
- <?php if ( 'category' == $field['type'] ) : ?>
39
- <label class="aiovg-shortcode-label"><?php echo esc_html( $field['label'] ); ?></label>
40
- <?php
41
- wp_dropdown_categories( array(
42
- 'show_option_none' => '-- ' . esc_html__( 'Top Categories', 'all-in-one-video-gallery' ) . ' --',
43
- 'option_none_value' => 0,
44
- 'taxonomy' => 'aiovg_categories',
45
- 'name' => esc_attr( $field['name'] ),
46
- 'class' => "aiovg-shortcode-input widefat",
47
- 'orderby' => 'name',
48
- 'hierarchical' => true,
49
- 'depth' => 10,
50
- 'show_count' => false,
51
- 'hide_empty' => false,
52
- ) );
53
- ?>
54
- <?php elseif ( 'categories' == $field['type'] ) : ?>
55
- <label class="aiovg-shortcode-label"><?php echo esc_html( $field['label'] ); ?></label>
56
- <ul name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-input aiovg-checklist widefat" data-default="">
57
- <?php
58
- $args = array(
59
- 'taxonomy' => 'aiovg_categories',
60
- 'walker' => null,
61
- 'checked_ontop' => false
62
- );
63
-
64
- wp_terms_checklist( 0, $args );
65
- ?>
66
- </ul>
67
- <?php elseif ( 'video' == $field['type'] ) : ?>
68
- <label class="aiovg-shortcode-label"><?php echo esc_html( $field['label'] ); ?></label>
69
- <select name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-input widefat" data-default="<?php echo esc_attr( $field['value'] ); ?>">
70
- <option value="0">-- <?php esc_html_e( 'Latest Video', 'all-in-one-video-gallery' ); ?> --</option>
71
- <?php
72
- $args = array(
73
- 'post_type' => 'aiovg_videos',
74
- 'post_status' => 'publish',
75
- 'posts_per_page' => 500,
76
- 'orderby' => 'title',
77
- 'order' => 'ASC',
78
- 'no_found_rows' => true,
79
- 'update_post_term_cache' => false,
80
- 'update_post_meta_cache' => false
81
- );
82
-
83
- $aiovg_query = new WP_Query( $args );
84
-
85
- if ( $aiovg_query->have_posts() ) {
86
- $posts = $aiovg_query->posts;
87
-
88
- foreach ( $posts as $post ) {
89
- printf(
90
- '<option value="%d"%s>%s</option>',
91
- $post->ID,
92
- selected( $post->ID, $field['value'], false ),
93
- esc_html( $post->post_title )
94
- );
95
- }
96
- }
97
- ?>
98
- </select>
99
- <?php elseif ( 'text' == $field['type'] || 'url' == $field['type'] || 'number' == $field['type'] ) : ?>
100
- <label class="aiovg-shortcode-label"><?php echo esc_html( $field['label'] ); ?></label>
101
- <input type="text" name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-input widefat" value="<?php echo esc_attr( $field['value'] ); ?>" data-default="<?php echo esc_attr( $field['value'] ); ?>" />
102
- <?php elseif ( 'select' == $field['type'] ) : ?>
103
- <label class="aiovg-shortcode-label"><?php echo esc_html( $field['label'] ); ?></label>
104
- <select name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-input widefat" data-default="<?php echo esc_attr( $field['value'] ); ?>">
105
- <?php
106
- foreach ( $field['options'] as $value => $label ) {
107
- printf( '<option value="%s"%s>%s</option>', esc_attr( $value ), selected( $value, $field['value'], false ), esc_html( $label ) );
108
- }
109
- ?>
110
- </select>
111
- <?php elseif ( 'checkbox' == $field['type'] ) : ?>
112
- <label>
113
- <input type="checkbox" name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-input" data-default="<?php echo esc_attr( $field['value'] ); ?>" value="1" <?php checked( $field['value'] ); ?> />
114
- <?php echo esc_html( $field['label'] ); ?>
115
- </label>
116
- <?php elseif ( 'color' == $field['type'] ) : ?>
117
- <label class="aiovg-shortcode-label"><?php echo esc_html( $field['label'] ); ?></label>
118
- <input type="text" name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-input aiovg-color-picker-field widefat" value="<?php echo esc_attr( $field['value'] ); ?>" data-default="<?php echo esc_attr( $field['value'] ); ?>" />
119
- <?php endif; ?>
120
-
121
- <?php if ( ! empty( $field['description'] ) ) : // Description ?>
122
- <div class="aiovg-shortcode-field-description"><?php echo wp_kses_post( $field['description'] ); ?></div>
123
- <?php endif; ?>
124
- </div>
125
- <?php endforeach; ?>
126
- </div>
127
- <?php endforeach; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  </div>
129
- <?php endforeach; ?>
130
-
131
- <!-- Action Buttons -->
132
- <p class="submit">
133
- <input type="button" id="aiovg-insert-shortcode" class="button-primary" value="<?php esc_attr_e( 'Insert Shortcode', 'all-in-one-video-gallery' ); ?>" />
134
- <a id="aiovg-cancel-shortcode-insert" class="button-secondary"><?php esc_html_e( 'Cancel', 'all-in-one-video-gallery' ); ?></a>
135
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  </div>
137
- </div>
1
  <?php
2
 
3
  /**
4
+ * Dashboard: Shortcode Builder.
5
  *
6
  * @link https://plugins360.com
7
+ * @since 1.6.5
8
  *
9
  * @package All_In_One_Video_Gallery
10
  */
11
+
12
+ $fields = aiovg_get_shortcode_fields();
13
+
14
+ // Videos
15
+ $is_video_found = 0;
16
+
17
+ $args = array(
18
+ 'post_type' => 'aiovg_videos',
19
+ 'post_status' => 'publish',
20
+ 'posts_per_page' => 500,
21
+ 'orderby' => 'title',
22
+ 'order' => 'ASC',
23
+ 'no_found_rows' => true,
24
+ 'update_post_term_cache' => false,
25
+ 'update_post_meta_cache' => false
26
+ );
27
+
28
+ $aiovg_query = new WP_Query( $args );
29
+
30
+ if ( $aiovg_query->have_posts() ) {
31
+ $is_video_found = 1;
32
+ }
33
+
34
+ // Categories
35
+ $is_category_found = 0;
36
+
37
+ $args = array(
38
+ 'parent' => 0,
39
+ 'hide_empty' => false
40
+ );
41
+
42
+ $terms = get_terms( 'aiovg_categories', $args );
43
+
44
+ if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
45
+ $is_category_found = 1;
46
+ }
47
  ?>
48
 
49
+ <!-- Shortcode Selector -->
50
+ <div id="aiovg-shortcode-selector">
51
+ <p class="about-description"><?php esc_html_e( 'Select a shortcode type', 'all-in-one-video-gallery' ); ?></p>
52
+ <ul class="aiovg-radio horizontal">
53
+ <?php
54
+ foreach ( $fields as $shortcode => $params ) {
55
+ printf(
56
+ '<li><label><input type="radio" name="shortcode" value="%s"%s/>%s</label></li>',
57
+ esc_attr( $shortcode ),
58
+ checked( $shortcode, 'videos', false ),
59
+ esc_html( $params['title'] )
60
+ );
61
+ }
62
+ ?>
63
+ </ul>
64
+ </div>
65
+
66
+ <!-- Shortcode Builder -->
67
+ <div id="aiovg-shortcode-builder">
68
+ <!-- Left Column -->
69
+ <div class="aiovg-left-col">
70
+ <div class="aiovg-col-content">
71
+ <?php
72
+ foreach ( $fields as $shortcode => $params ) :
73
+ $class = '';
74
+ $error = '';
75
+
76
+ if ( 'video' == $shortcode ) {
77
+ $class = ' aiovg-type-default';
78
+ } elseif ( 'videos' == $shortcode ) {
79
+ $class = ' aiovg-template-classic';
80
+
81
+ if ( ! $is_video_found ) {
82
+ $error = sprintf(
83
+ __( 'No videos found. <a href="%s">Add</a> your first video.', 'all-in-one-video-gallery' ),
84
+ esc_url( admin_url( 'post-new.php?post_type=aiovg_videos' ) )
85
+ );
86
+ }
87
+ } elseif ( 'categories' == $shortcode ) {
88
+ $class = ' aiovg-template-grid';
89
+
90
+ if ( ! $is_category_found ) {
91
+ $error = sprintf(
92
+ __( 'No categories found. <a href="%s">Add</a> your first category.', 'all-in-one-video-gallery' ),
93
+ esc_url( admin_url( 'edit-tags.php?taxonomy=aiovg_categories&post_type=aiovg_videos' ) )
94
+ );
95
+ }
96
+ }
97
+ ?>
98
+ <div id="aiovg-shortcode-form-<?php echo esc_attr( $shortcode ); ?>" class="aiovg-shortcode-form<?php echo $class; ?>"<?php if ( 'videos' != $shortcode ) echo ' style="display: none;"'; ?>>
99
+ <?php
100
+ if ( ! empty( $error ) ) {
101
+ printf(
102
+ '<p class="aiovg-notice aiovg-notice-error">%s</p>',
103
+ $error
104
+ );
105
+ }
106
+
107
+ foreach ( $params['sections'] as $name => $section ) :
108
+ $class = esc_attr( $name );
109
+ if ( 'general' == $name ) {
110
+ $class .= ' aiovg-active';
111
+ }
112
+ ?>
113
+ <div class="aiovg-shortcode-section aiovg-shortcode-section-<?php echo $class; ?>">
114
+ <div class="aiovg-shortcode-section-header">
115
+ <span class="dashicons-before dashicons-plus"></span>
116
+ <span class="dashicons-before dashicons-minus"></span>
117
+ <?php echo esc_html( $section['title'] ); ?>
118
+ </div>
119
+
120
+ <div class="aiovg-shortcode-controls"<?php if ( 'general' != $name ) echo ' style="display: none;"'; ?>>
121
+ <?php foreach ( $section['fields'] as $field ) : ?>
122
+ <div class="aiovg-shortcode-control aiovg-shortcode-control-<?php echo esc_attr( $field['name'] ); ?>">
123
+ <?php if ( 'text' == $field['type'] || 'url' == $field['type'] || 'number' == $field['type'] ) : ?>
124
+ <label><?php echo esc_html( $field['label'] ); ?></label>
125
+ <input type="text" name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-field widefat" value="<?php echo esc_attr( $field['value'] ); ?>" data-default="<?php echo esc_attr( $field['value'] ); ?>" />
126
+ <?php elseif ( 'textarea' == $field['type'] ) : ?>
127
+ <label><?php echo esc_html( $field['label'] ); ?></label>
128
+ <textarea name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-field widefat" rows="8" data-default="<?php echo esc_attr( $field['value'] ); ?>"><?php echo esc_textarea( $field['value'] ); ?></textarea>
129
+ <?php elseif ( 'select' == $field['type'] || 'radio' == $field['type'] ) : ?>
130
+ <label><?php echo esc_html( $field['label'] ); ?></label>
131
+ <select name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-field widefat" data-default="<?php echo esc_attr( $field['value'] ); ?>">
132
+ <?php
133
+ foreach ( $field['options'] as $value => $label ) {
134
+ printf( '<option value="%s"%s>%s</option>', esc_attr( $value ), selected( $value, $field['value'], false ), esc_html( $label ) );
135
+ }
136
+ ?>
137
+ </select>
138
+ <?php elseif ( 'checkbox' == $field['type'] ) : ?>
139
+ <label>
140
+ <input type="checkbox" name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-field" value="1" data-default="<?php echo esc_attr( $field['value'] ); ?>" <?php checked( $field['value'] ); ?> />
141
+ <?php echo esc_html( $field['label'] ); ?>
142
+ </label>
143
+ <?php elseif ( 'color' == $field['type'] ) : ?>
144
+ <label><?php echo esc_html( $field['label'] ); ?></label>
145
+ <input type="text" name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-field aiovg-color-picker widefat" value="<?php echo esc_attr( $field['value'] ); ?>" data-default="<?php echo esc_attr( $field['value'] ); ?>" />
146
+ <?php elseif ( 'media' == $field['type'] ) : ?>
147
+ <label><?php echo esc_html( $field['label'] ); ?></label>
148
+ <div class="aiovg-media-uploader">
149
+ <input type="text" name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-field widefat" value="<?php echo esc_attr( $field['value'] ); ?>" data-default="<?php echo esc_attr( $field['value'] ); ?>" />
150
+ <div class="aiovg-upload-media hide-if-no-js">
151
+ <a href="javascript:;" id="aiovg-upload-<?php echo esc_attr( $field['name'] ); ?>" data-format="<?php echo esc_attr( $field['name'] ); ?>">
152
+ <small><?php esc_html_e( 'Upload File', 'all-in-one-video-gallery' ); ?></small>
153
+ </a>
154
+ </div>
155
+ </div>
156
+ <?php elseif ( 'parent' == $field['type'] ) : ?>
157
+ <label><?php echo esc_html( $field['label'] ); ?></label>
158
+ <?php
159
+ $args = array(
160
+ 'show_option_none' => '-- ' . esc_html__( 'Select Parent', 'all-in-one-video-gallery' ) . ' --',
161
+ 'option_none_value' => 0,
162
+ 'taxonomy' => 'aiovg_categories',
163
+ 'name' => esc_attr( $field['name'] ),
164
+ 'class' => 'aiovg-shortcode-field widefat',
165
+ 'orderby' => 'name',
166
+ 'selected' => 0,
167
+ 'hierarchical' => true,
168
+ 'depth' => 10,
169
+ 'show_count' => false,
170
+ 'hide_empty' => false
171
+ );
172
+
173
+ wp_dropdown_categories( $args );
174
+ elseif ( 'categories' == $field['type'] ) : ?>
175
+ <label><?php echo esc_html( $field['label'] ); ?></label>
176
+ <ul name="<?php echo esc_attr( $field['name'] ); ?>" class="aiovg-shortcode-field aiovg-checklist widefat" data-default="">
177
+ <?php
178
+ $args = array(
179
+ 'taxonomy' => 'aiovg_categories',
180
+ 'walker' => null,
181
+ 'checked_ontop' => false
182
+ );
183
+
184
+ wp_terms_checklist( 0, $args );
185
+ ?>
186
+ </ul>
187
+ <?php endif; ?>
188
+
189
+ <!-- Hint -->
190
+ <?php if ( ! empty( $field['description'] ) ) : ?>
191
+ <span class="description"><?php echo wp_kses_post( $field['description'] ); ?></span>
192
+ <?php endif; ?>
193
+ </div>
194
+ <?php endforeach; ?>
195
+ </div>
196
+ </div>
197
+ <?php endforeach; ?>
198
+ </div>
199
+ <?php endforeach; ?>
200
+
201
+ <p>
202
+ <a href="#aiovg-shortcode-modal" id="aiovg-generate-shortcode" class="aiovg-modal-button button-primary">
203
+ <?php esc_attr_e( 'Generate Shortcode', 'all-in-one-video-gallery' ); ?>
204
+ </a>
205
+ </p>
206
+ </div>
207
+ </div>
208
+
209
+ <!-- Right Column -->
210
+ <div class="aiovg-right-col">
211
+ <div class="aiovg-col-content">
212
+ <div id="aiovg-shortcode-instructions-video" class="aiovg-shortcode-instructions" style="display: none;">
213
+ <p class="about-description">
214
+ <?php esc_html_e( 'How to add a single video in my POST/PAGE?', 'all-in-one-video-gallery' ); ?>
215
+ </p>
216
+
217
+ <p>
218
+ <?php esc_html_e( 'You can use one of the following methods,', 'all-in-one-video-gallery' ); ?>
219
+ </p>
220
+
221
+ <p>
222
+ <span class="dashicons dashicons-arrow-left-alt"></span>
223
+ <?php esc_html_e( 'Use the shortcode builder in this page to build your shortcode, then add it in your POST/PAGE.', 'all-in-one-video-gallery' ); ?>
224
+ </p>
225
+
226
+ <p>
227
+ <span>2.</span>
228
+ <?php
229
+ printf(
230
+ __( '<a href="%s">Add</a> your video using our "Custom Post Type" form, copy the shortcode, then add it in your POST/PAGE.', 'all-in-one-video-gallery' ),
231
+ esc_url( admin_url( 'post-new.php?post_type=aiovg_videos' ) )
232
+ );
233
+ ?>
234
+ </p>
235
+
236
+ <p>
237
+ <span>3.</span>
238
+ <?php
239
+ printf(
240
+ __( 'Use the <a href="%s">AIOVG - Video Player</a> Gutenberg block and add the video directly in your POST/PAGE.', 'all-in-one-video-gallery' ),
241
+ esc_url( admin_url( 'post-new.php?post_type=page' ) )
242
+ );
243
+ ?>
244
+ </p>
245
+
246
+ <p>
247
+ <span>4.</span>
248
+ <?php
249
+ printf(
250
+ __( 'Use the <a href="%s">AIOVG - Video Player</a> widget in your website sidebars.', 'all-in-one-video-gallery' ),
251
+ esc_url( admin_url( 'widgets.php' ) )
252
+ );
253
+ ?>
254
+ </p>
255
  </div>
256
+
257
+ <div id="aiovg-shortcode-instructions-videos" class="aiovg-shortcode-instructions">
258
+ <p class="about-description">
259
+ <?php esc_html_e( 'How to create/add a video gallery?', 'all-in-one-video-gallery' ); ?>
260
+ </p>
261
+
262
+ <p>
263
+ <span>1.</span>
264
+ <?php
265
+ printf(
266
+ __( 'Optional. <a href="%s">Add Categories</a>', 'all-in-one-video-gallery' ),
267
+ esc_url( admin_url( 'edit-tags.php?taxonomy=aiovg_categories&post_type=aiovg_videos' ) )
268
+ );
269
+ ?>
270
+ </p>
271
+
272
+ <p>
273
+ <span>2.</span>
274
+ <?php
275
+ printf(
276
+ __( '<a href="%s">Add Videos</a>', 'all-in-one-video-gallery' ),
277
+ esc_url( admin_url( 'edit.php?post_type=aiovg_videos' ) )
278
+ );
279
+ ?>
280
+ </p>
281
+
282
+ <p>
283
+ <span>3.</span>
284
+ <?php esc_html_e( 'Then, use one of the following methods to build and show the gallery in your site front-end,', 'all-in-one-video-gallery' ); ?>
285
+ </p>
286
+
287
+ <p class="aiovg-indent">
288
+ <span class="dashicons dashicons-arrow-left-alt"></span>
289
+ <?php esc_html_e( 'Use the shortcode builder in this page to build your shortcode, then add it in your POST/PAGE.', 'all-in-one-video-gallery' ); ?>
290
+ </p>
291
+
292
+ <p class="aiovg-indent">
293
+ <span class="dashicons dashicons-arrow-right"></span>
294
+ <?php
295
+ printf(
296
+ __( 'Use the <a href="%s">AIOVG - Video Gallery</a> Gutenberg block in your POST/PAGE.', 'all-in-one-video-gallery' ),
297
+ esc_url( admin_url( 'post-new.php?post_type=page' ) )
298
+ );
299
+ ?>
300
+ </p>
301
+
302
+ <p class="aiovg-indent">
303
+ <span class="dashicons dashicons-arrow-right"></span>
304
+ <?php
305
+ printf(
306
+ __( 'Use the <a href="%s">AIOVG - Video Gallery</a> widget in your website sidebars.', 'all-in-one-video-gallery' ),
307
+ esc_url( admin_url( 'widgets.php' ) )
308
+ );
309
+ ?>
310
+ </p>
311
+ </div>
312
+
313
+ <div id="aiovg-shortcode-instructions-categories" class="aiovg-shortcode-instructions" style="display: none;">
314
+ <p class="about-description">
315
+ <?php esc_html_e( 'How to add/show video categories?', 'all-in-one-video-gallery' ); ?>
316
+ </p>
317
+
318
+ <p>
319
+ <span>1.</span>
320
+ <?php
321
+ printf(
322
+ __( '<a href="%s">Add Categories</a>', 'all-in-one-video-gallery' ),
323
+ esc_url( admin_url( 'edit-tags.php?taxonomy=aiovg_categories&post_type=aiovg_videos' ) )
324
+ );
325
+ ?>
326
+ </p>
327
+
328
+ <p>
329
+ <span>2.</span>
330
+ <?php esc_html_e( 'Then, use one of the following methods to show the video categories in your site front-end,', 'all-in-one-video-gallery' ); ?>
331
+ </p>
332
+
333
+ <p class="aiovg-indent">
334
+ <span class="dashicons dashicons-arrow-left-alt"></span>
335
+ <?php esc_html_e( 'Use the shortcode builder in this page to build your shortcode, then add it in your POST/PAGE.', 'all-in-one-video-gallery' ); ?>
336
+ </p>
337
+
338
+ <p class="aiovg-indent">
339
+ <span class="dashicons dashicons-arrow-right"></span>
340
+ <?php
341
+ printf(
342
+ __( 'Use the <a href="%s">AIOVG - Video Categories</a> Gutenberg block in your POST/PAGE.', 'all-in-one-video-gallery' ),
343
+ esc_url( admin_url( 'post-new.php?post_type=page' ) )
344
+ );
345
+ ?>
346
+ </p>
347
+
348
+ <p class="aiovg-indent">
349
+ <span class="dashicons dashicons-arrow-right"></span>
350
+ <?php
351
+ printf(
352
+ __( 'Use the <a href="%s">AIOVG - Video Categories</a> widget in your website sidebars.', 'all-in-one-video-gallery' ),
353
+ esc_url( admin_url( 'widgets.php' ) )
354
+ );
355
+ ?>
356
+ </p>
357
+ </div>
358
+
359
+ <div id="aiovg-shortcode-instructions-search_form" class="aiovg-shortcode-instructions" style="display: none;">
360
+ <p class="about-description">
361
+ <?php esc_html_e( 'How to create video search functionality?', 'all-in-one-video-gallery' ); ?>
362
+ </p>
363
+
364
+ <p>
365
+ <?php esc_html_e( 'You can use one of the following methods to add the videos search form in your website,', 'all-in-one-video-gallery' ); ?>
366
+ </p>
367
+
368
+ <p>
369
+ <span class="dashicons dashicons-arrow-left-alt"></span>
370
+ <?php esc_html_e( 'Use the shortcode builder in this page to build your shortcode, then add it in your POST/PAGE.', 'all-in-one-video-gallery' ); ?>
371
+ </p>
372
+
373
+ <p>
374
+ <span>2.</span>
375
+ <?php
376
+ printf(
377
+ __( 'Use the <a href="%s">AIOVG - Search Form</a> Gutenberg block in your POST/PAGE.', 'all-in-one-video-gallery' ),
378
+ esc_url( admin_url( 'post-new.php?post_type=page' ) )
379
+ );
380
+ ?>
381
+ </p>
382
+
383
+ <p>
384
+ <span>3.</span>
385
+ <?php
386
+ printf(
387
+ __( 'Use the <a href="%s">AIOVG - Search Form</a> widget in your website sidebars.', 'all-in-one-video-gallery' ),
388
+ esc_url( admin_url( 'widgets.php' ) )
389
+ );
390
+ ?>
391
+ </p>
392
+
393
+ <p>
394
+ <span class="dashicons dashicons-info"></span>
395
+ <?php
396
+ printf(
397
+ __( 'No matter where you add the search form, but the search results will always be displayed in the <a href="%s">Search Videos</a> page that is added by our plugin dynamically during the activation.', 'all-in-one-video-gallery' ),
398
+ esc_url( admin_url( 'admin.php?page=aiovg_settings&tab=advanced&section=aiovg_page_settings' ) )
399
+ );
400
+ ?>
401
+ </p>
402
+ </div>
403
+ </div>
404
+ </div>
405
+ </div>
406
+
407
+ <!-- Shortcode Modal -->
408
+ <div id="aiovg-shortcode-modal" class="aiovg-modal mfp-hide">
409
+ <div class="aiovg-modal-body">
410
+ <p><?php esc_html_e( 'Congrats! copy the shortcode below and paste it in your POST/PAGE where you need the gallery,', 'all-in-one-video-gallery' ); ?></p>
411
+ <textarea id="aiovg-shortcode" class="widefat code" autofocus="autofocus" onfocus="this.select()"></textarea>
412
  </div>
413
+ </div>
admin/partials/video-sources.php CHANGED
@@ -14,11 +14,14 @@
14
  <tbody>
15
  <tr>
16
  <td class="label aiovg-hidden-xs">
17
- <label><?php esc_html_e( "Type", 'all-in-one-video-gallery' ); ?></label>
18
  </td>
19
  <td>
20
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Type", 'all-in-one-video-gallery' ); ?></strong></p>
21
- <select name="type" id="aiovg-video-type" class="select">
 
 
 
22
  <?php
23
  $types = aiovg_get_video_source_types( true );
24
  foreach ( $types as $key => $label ) {
@@ -30,30 +33,35 @@
30
  </tr>
31
  <tr class="aiovg-toggle-fields aiovg-type-default">
32
  <td class="label aiovg-hidden-xs">
33
- <label><?php esc_html_e( "MP4", 'all-in-one-video-gallery' ); ?></label>
34
  </td>
35
  <td>
36
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "MP4", 'all-in-one-video-gallery' ); ?></strong></p>
37
- <div class="aiovg-input-wrap aiovg-media-uploader">
38
- <input type="text" name="mp4" id="aiovg-mp4" class="text" placeholder="<?php esc_attr_e( 'Enter your Direct File URL here (OR) use the Upload Media button', 'all-in-one-video-gallery' ); ?>" value="<?php echo esc_attr( $mp4 ); ?>" />
39
- <a class="button aiovg-upload-media hide-if-no-js" href="javascript:;" id="aiovg-upload-mp4" data-format="mp4">
40
- <?php esc_html_e( 'Upload Media', 'all-in-one-video-gallery' ); ?>
41
- </a>
42
- </div>
43
-
44
- <br />
45
-
46
- <ul class="aiovg-checkbox-list horizontal">
 
 
 
 
 
47
  <li>
48
  <label>
49
  <input type="checkbox" name="has_webm" id="aiovg-has-webm" value="1" <?php checked( $has_webm, 1 ); ?> />
50
- <?php esc_html_e( "WebM", 'all-in-one-video-gallery' ); ?>
51
  </label>
52
  </li>
53
  <li>
54
  <label>
55
  <input type="checkbox" name="has_ogv" id="aiovg-has-ogv" value="1" <?php checked( $has_ogv, 1 ); ?> />
56
- <?php esc_html_e( "OGV", 'all-in-one-video-gallery' ); ?>
57
  </label>
58
  </li>
59
  </ul>
@@ -61,118 +69,154 @@
61
  </tr>
62
  <tr id="aiovg-field-webm" class="aiovg-toggle-fields">
63
  <td class="label aiovg-hidden-xs">
64
- <label><?php esc_html_e( "WebM", 'all-in-one-video-gallery' ); ?></label>
65
  </td>
66
  <td>
67
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "WebM", 'all-in-one-video-gallery' ); ?></strong></p>
68
- <div class="aiovg-input-wrap aiovg-media-uploader">
69
- <input type="text" name="webm" id="aiovg-webm" class="text" placeholder="<?php esc_attr_e( 'Enter your Direct File URL here (OR) use the Upload Media button', 'all-in-one-video-gallery' ); ?>" value="<?php echo esc_attr( $webm ); ?>" />
70
- <a class="button aiovg-upload-media hide-if-no-js" href="javascript:;" id="aiovg-upload-webm" data-format="webm">
71
- <?php esc_html_e( 'Upload Media', 'all-in-one-video-gallery' ); ?>
72
- </a>
73
- </div>
 
 
 
 
 
74
  </td>
75
  </tr>
76
  <tr id="aiovg-field-ogv" class="aiovg-toggle-fields">
77
  <td class="label aiovg-hidden-xs">
78
- <label><?php esc_html_e( "OGV", 'all-in-one-video-gallery' ); ?></label>
79
  </td>
80
  <td>
81
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "OGV", 'all-in-one-video-gallery' ); ?></strong></p>
82
- <div class="aiovg-input-wrap aiovg-media-uploader">
83
- <input type="text" name="ogv" id="aiovg-ogv" class="text" placeholder="<?php esc_attr_e( 'Enter your Direct File URL here (OR) use the Upload Media button', 'all-in-one-video-gallery' ); ?>" value="<?php echo esc_attr( $ogv ); ?>" />
84
- <a class="button aiovg-upload-media hide-if-no-js" href="javascript:;" id="aiovg-upload-ogv" data-format="ogv">
85
- <?php esc_html_e( 'Upload Media', 'all-in-one-video-gallery' ); ?>
86
- </a>
87
- </div>
 
 
 
 
 
88
  </td>
89
  </tr>
90
  <tr class="aiovg-toggle-fields aiovg-type-youtube">
91
  <td class="label aiovg-hidden-xs">
92
- <label><?php esc_html_e( "YouTube", 'all-in-one-video-gallery' ); ?></label>
93
  </td>
94
  <td>
95
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "YouTube", 'all-in-one-video-gallery' ); ?></strong></p>
96
- <div class="aiovg-input-wrap">
 
 
 
97
  <input type="text" name="youtube" id="aiovg-youtube" class="text" placeholder="<?php printf( '%s: https://www.youtube.com/watch?v=twYp6W6vt2U', esc_attr__( 'Example', 'all-in-one-video-gallery' ) ); ?>" value="<?php echo esc_url( $youtube ); ?>" />
98
- </div>
99
  </td>
100
  </tr>
101
  <tr class="aiovg-toggle-fields aiovg-type-vimeo">
102
  <td class="label aiovg-hidden-xs">
103
- <label><?php esc_html_e( "Vimeo", 'all-in-one-video-gallery' ); ?></label>
104
  </td>
105
  <td>
106
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Vimeo", 'all-in-one-video-gallery' ); ?></strong></p>
107
- <div class="aiovg-input-wrap">
 
 
 
108
  <input type="text" name="vimeo" id="aiovg-vimeo" class="text" placeholder="<?php printf( '%s: https://vimeo.com/108018156', esc_attr__( 'Example', 'all-in-one-video-gallery' ) ); ?>" value="<?php echo esc_url( $vimeo ); ?>" />
109
- </div>
110
  </td>
111
  </tr>
112
  <tr class="aiovg-toggle-fields aiovg-type-dailymotion">
113
  <td class="label aiovg-hidden-xs">
114
- <label><?php esc_html_e( "Dailymotion", 'all-in-one-video-gallery' ); ?></label>
115
  </td>
116
  <td>
117
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Dailymotion", 'all-in-one-video-gallery' ); ?></strong></p>
118
- <div class="aiovg-input-wrap">
 
 
 
119
  <input type="text" name="dailymotion" id="aiovg-dailymotion" class="text" placeholder="<?php printf( '%s: https://www.dailymotion.com/video/x11prnt', esc_attr__( 'Example', 'all-in-one-video-gallery' ) ); ?>" value="<?php echo esc_url( $dailymotion ); ?>" />
120
- </div>
121
  </td>
122
  </tr>
123
  <tr class="aiovg-toggle-fields aiovg-type-facebook">
124
  <td class="label aiovg-hidden-xs">
125
- <label><?php esc_html_e( "Facebook", 'all-in-one-video-gallery' ); ?></label>
126
  </td>
127
  <td>
128
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Facebook", 'all-in-one-video-gallery' ); ?></strong></p>
129
- <div class="aiovg-input-wrap">
 
 
 
130
  <input type="text" name="facebook" id="aiovg-facebook" class="text" placeholder="<?php printf( '%s: https://www.facebook.com/facebook/videos/10155278547321729', esc_attr__( 'Example', 'all-in-one-video-gallery' ) ); ?>" value="<?php echo esc_url( $facebook ); ?>" />
131
- </div>
132
  </td>
133
  </tr>
134
  <tr class="aiovg-toggle-fields aiovg-type-embedcode">
135
  <td class="label aiovg-hidden-xs">
136
- <label><?php esc_html_e( "Embed Code", 'all-in-one-video-gallery' ); ?></label>
137
  </td>
138
  <td>
139
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Embed Code", 'all-in-one-video-gallery' ); ?></strong></p>
140
- <textarea name="embedcode" id="aiovg-embedcode" class="textarea" placeholder="<?php esc_attr_e( 'Enter your Iframe Embed Code here', 'all-in-one-video-gallery' ); ?>" rows="6"><?php echo esc_textarea( $embedcode ); ?></textarea>
 
 
 
141
  </td>
142
  </tr>
143
  <?php do_action( 'aiovg_admin_add_video_source_fields', $post->ID ); ?>
144
  <tr>
145
  <td class="label aiovg-hidden-xs">
146
- <label><?php esc_html_e( "Image", 'all-in-one-video-gallery' ); ?></label>
147
  </td>
148
  <td>
149
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Image", 'all-in-one-video-gallery' ); ?></strong></p>
150
- <div class="aiovg-input-wrap aiovg-media-uploader">
151
- <input type="text" name="image" id="aiovg-image" class="text" placeholder="<?php esc_attr_e( 'Enter your Direct File URL here (OR) use the Upload Media button', 'all-in-one-video-gallery' ); ?>" value="<?php echo esc_attr( $image ); ?>" />
152
- <a class="button aiovg-upload-media hide-if-no-js" href="javascript:;" id="aiovg-upload-image" data-format="image">
153
- <?php esc_html_e( 'Upload Media', 'all-in-one-video-gallery' ); ?>
154
- </a>
155
- </div>
 
 
 
 
 
156
  </td>
157
  </tr>
158
  <tr>
159
  <td class="label aiovg-hidden-xs">
160
- <label><?php esc_html_e( "Duration", 'all-in-one-video-gallery' ); ?></label>
161
  </td>
162
  <td>
163
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Duration", 'all-in-one-video-gallery' ); ?></strong></p>
164
- <div class="aiovg-input-wrap">
 
 
 
165
  <input type="text" name="duration" id="aiovg-duration" class="text" placeholder="6:30" value="<?php echo esc_attr( $duration ); ?>" />
166
  </div>
167
  </td>
168
  </tr>
169
  <tr>
170
  <td class="label aiovg-hidden-xs">
171
- <label><?php esc_html_e( "Views", 'all-in-one-video-gallery' ); ?></label>
172
  </td>
173
  <td>
174
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Views", 'all-in-one-video-gallery' ); ?></strong></p>
175
- <div class="aiovg-input-wrap">
 
 
 
176
  <input type="text" name="views" id="aiovg-views" class="text" value="<?php echo esc_attr( $views ); ?>" />
177
  </div>
178
  </td>
14
  <tbody>
15
  <tr>
16
  <td class="label aiovg-hidden-xs">
17
+ <label><?php esc_html_e( 'Type', 'all-in-one-video-gallery' ); ?></label>
18
  </td>
19
  <td>
20
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
21
+ <strong><?php esc_html_e( 'Type', 'all-in-one-video-gallery' ); ?></strong>
22
+ </p>
23
+
24
+ <select name="type" id="aiovg-video-type" class="select">
25
  <?php
26
  $types = aiovg_get_video_source_types( true );
27
  foreach ( $types as $key => $label ) {
33
  </tr>
34
  <tr class="aiovg-toggle-fields aiovg-type-default">
35
  <td class="label aiovg-hidden-xs">
36
+ <label><?php esc_html_e( 'MP4', 'all-in-one-video-gallery' ); ?></label>
37
  </td>
38
  <td>
39
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
40
+ <strong><?php esc_html_e( 'MP4', 'all-in-one-video-gallery' ); ?></strong>
41
+ </p>
42
+
43
+ <div class="aiovg-input-wrap aiovg-media-uploader">
44
+ <input type="text" name="mp4" id="aiovg-mp4" class="text" placeholder="<?php esc_attr_e( 'Enter your direct file URL (OR) upload your file using the link here', 'all-in-one-video-gallery' ); ?> &rarr;" value="<?php echo esc_attr( $mp4 ); ?>" />
45
+ <div class="aiovg-upload-media hide-if-no-js">
46
+ <a href="javascript:;" id="aiovg-upload-mp4" data-format="mp4">
47
+ <?php esc_html_e( 'Upload File', 'all-in-one-video-gallery' ); ?>
48
+ </a>
49
+ </div>
50
+ </div>
51
+
52
+ <br />
53
+
54
+ <ul class="aiovg-checkbox horizontal">
55
  <li>
56
  <label>
57
  <input type="checkbox" name="has_webm" id="aiovg-has-webm" value="1" <?php checked( $has_webm, 1 ); ?> />
58
+ <?php esc_html_e( 'WebM', 'all-in-one-video-gallery' ); ?>
59
  </label>
60
  </li>
61
  <li>
62
  <label>
63
  <input type="checkbox" name="has_ogv" id="aiovg-has-ogv" value="1" <?php checked( $has_ogv, 1 ); ?> />
64
+ <?php esc_html_e( 'OGV', 'all-in-one-video-gallery' ); ?>
65
  </label>
66
  </li>
67
  </ul>
69
  </tr>
70
  <tr id="aiovg-field-webm" class="aiovg-toggle-fields">
71
  <td class="label aiovg-hidden-xs">
72
+ <label><?php esc_html_e( 'WebM', 'all-in-one-video-gallery' ); ?></label>
73
  </td>
74
  <td>
75
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
76
+ <strong><?php esc_html_e( 'WebM', 'all-in-one-video-gallery' ); ?></strong>
77
+ </p>
78
+
79
+ <div class="aiovg-input-wrap aiovg-media-uploader">
80
+ <input type="text" name="webm" id="aiovg-webm" class="text" placeholder="<?php esc_attr_e( 'Enter your direct file URL (OR) upload your file using the link here', 'all-in-one-video-gallery' ); ?> &rarr;" value="<?php echo esc_attr( $webm ); ?>" />
81
+ <div class="aiovg-upload-media hide-if-no-js">
82
+ <a href="javascript:;" id="aiovg-upload-webm" data-format="webm">
83
+ <?php esc_html_e( 'Upload File', 'all-in-one-video-gallery' ); ?>
84
+ </a>
85
+ </div>
86
+ </div>
87
  </td>
88
  </tr>
89
  <tr id="aiovg-field-ogv" class="aiovg-toggle-fields">
90
  <td class="label aiovg-hidden-xs">
91
+ <label><?php esc_html_e( 'OGV', 'all-in-one-video-gallery' ); ?></label>
92
  </td>
93
  <td>
94
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
95
+ <strong><?php esc_html_e( 'OGV', 'all-in-one-video-gallery' ); ?></strong>
96
+ </p>
97
+
98
+ <div class="aiovg-input-wrap aiovg-media-uploader">
99
+ <input type="text" name="ogv" id="aiovg-ogv" class="text" placeholder="<?php esc_attr_e( 'Enter your direct file URL (OR) upload your file using the link here', 'all-in-one-video-gallery' ); ?> &rarr;" value="<?php echo esc_attr( $ogv ); ?>" />
100
+ <div class="aiovg-upload-media hide-if-no-js">
101
+ <a href="javascript:;" id="aiovg-upload-ogv" data-format="ogv">
102
+ <?php esc_html_e( 'Upload File', 'all-in-one-video-gallery' ); ?>
103
+ </a>
104
+ </div>
105
+ </div>
106
  </td>
107
  </tr>
108
  <tr class="aiovg-toggle-fields aiovg-type-youtube">
109
  <td class="label aiovg-hidden-xs">
110
+ <label><?php esc_html_e( 'YouTube', 'all-in-one-video-gallery' ); ?></label>
111
  </td>
112
  <td>
113
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
114
+ <strong><?php esc_html_e( 'YouTube', 'all-in-one-video-gallery' ); ?></strong>
115
+ </p>
116
+
117
+ <div class="aiovg-input-wrap">
118
  <input type="text" name="youtube" id="aiovg-youtube" class="text" placeholder="<?php printf( '%s: https://www.youtube.com/watch?v=twYp6W6vt2U', esc_attr__( 'Example', 'all-in-one-video-gallery' ) ); ?>" value="<?php echo esc_url( $youtube ); ?>" />
119
+ </div>
120
  </td>
121
  </tr>
122
  <tr class="aiovg-toggle-fields aiovg-type-vimeo">
123
  <td class="label aiovg-hidden-xs">
124
+ <label><?php esc_html_e( 'Vimeo', 'all-in-one-video-gallery' ); ?></label>
125
  </td>
126
  <td>
127
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
128
+ <strong><?php esc_html_e( 'Vimeo', 'all-in-one-video-gallery' ); ?></strong>
129
+ </p>
130
+
131
+ <div class="aiovg-input-wrap">
132
  <input type="text" name="vimeo" id="aiovg-vimeo" class="text" placeholder="<?php printf( '%s: https://vimeo.com/108018156', esc_attr__( 'Example', 'all-in-one-video-gallery' ) ); ?>" value="<?php echo esc_url( $vimeo ); ?>" />
133
+ </div>
134
  </td>
135
  </tr>
136
  <tr class="aiovg-toggle-fields aiovg-type-dailymotion">
137
  <td class="label aiovg-hidden-xs">
138
+ <label><?php esc_html_e( 'Dailymotion', 'all-in-one-video-gallery' ); ?></label>
139
  </td>
140
  <td>
141
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
142
+ <strong><?php esc_html_e( 'Dailymotion', 'all-in-one-video-gallery' ); ?></strong>
143
+ </p>
144
+
145
+ <div class="aiovg-input-wrap">
146
  <input type="text" name="dailymotion" id="aiovg-dailymotion" class="text" placeholder="<?php printf( '%s: https://www.dailymotion.com/video/x11prnt', esc_attr__( 'Example', 'all-in-one-video-gallery' ) ); ?>" value="<?php echo esc_url( $dailymotion ); ?>" />
147
+ </div>
148
  </td>
149
  </tr>
150
  <tr class="aiovg-toggle-fields aiovg-type-facebook">
151
  <td class="label aiovg-hidden-xs">
152
+ <label><?php esc_html_e( 'Facebook', 'all-in-one-video-gallery' ); ?></label>
153
  </td>
154
  <td>
155
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
156
+ <strong><?php esc_html_e( 'Facebook', 'all-in-one-video-gallery' ); ?></strong>
157
+ </p>
158
+
159
+ <div class="aiovg-input-wrap">
160
  <input type="text" name="facebook" id="aiovg-facebook" class="text" placeholder="<?php printf( '%s: https://www.facebook.com/facebook/videos/10155278547321729', esc_attr__( 'Example', 'all-in-one-video-gallery' ) ); ?>" value="<?php echo esc_url( $facebook ); ?>" />
161
+ </div>
162
  </td>
163
  </tr>
164
  <tr class="aiovg-toggle-fields aiovg-type-embedcode">
165
  <td class="label aiovg-hidden-xs">
166
+ <label><?php esc_html_e( 'Embed Code', 'all-in-one-video-gallery' ); ?></label>
167
  </td>
168
  <td>
169
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
170
+ <strong><?php esc_html_e( 'Embed Code', 'all-in-one-video-gallery' ); ?></strong>
171
+ </p>
172
+
173
+ <textarea name="embedcode" id="aiovg-embedcode" class="textarea" rows="6" placeholder="<?php esc_attr_e( 'Enter your Iframe Embed Code', 'all-in-one-video-gallery' ); ?>"><?php echo esc_textarea( $embedcode ); ?></textarea>
174
  </td>
175
  </tr>
176
  <?php do_action( 'aiovg_admin_add_video_source_fields', $post->ID ); ?>
177
  <tr>
178
  <td class="label aiovg-hidden-xs">
179
+ <label><?php esc_html_e( 'Image', 'all-in-one-video-gallery' ); ?></label>
180
  </td>
181
  <td>
182
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
183
+ <strong><?php esc_html_e( 'Image', 'all-in-one-video-gallery' ); ?></strong>
184
+ </p>
185
+
186
+ <div class="aiovg-input-wrap aiovg-media-uploader">
187
+ <input type="text" name="image" id="aiovg-image" class="text" placeholder="<?php esc_attr_e( 'Enter your direct file URL (OR) upload your file using the link here', 'all-in-one-video-gallery' ); ?> &rarr;" value="<?php echo esc_attr( $image ); ?>" />
188
+ <div class="aiovg-upload-media hide-if-no-js">
189
+ <a href="javascript:;" id="aiovg-upload-image" data-format="image">
190
+ <?php esc_html_e( 'Upload File', 'all-in-one-video-gallery' ); ?>
191
+ </a>
192
+ </div>
193
+ </div>
194
  </td>
195
  </tr>
196
  <tr>
197
  <td class="label aiovg-hidden-xs">
198
+ <label><?php esc_html_e( 'Duration', 'all-in-one-video-gallery' ); ?></label>
199
  </td>
200
  <td>
201
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
202
+ <strong><?php esc_html_e( 'Duration', 'all-in-one-video-gallery' ); ?></strong>
203
+ </p>
204
+
205
+ <div class="aiovg-input-wrap">
206
  <input type="text" name="duration" id="aiovg-duration" class="text" placeholder="6:30" value="<?php echo esc_attr( $duration ); ?>" />
207
  </div>
208
  </td>
209
  </tr>
210
  <tr>
211
  <td class="label aiovg-hidden-xs">
212
+ <label><?php esc_html_e( 'Views', 'all-in-one-video-gallery' ); ?></label>
213
  </td>
214
  <td>
215
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
216
+ <strong><?php esc_html_e( 'Views', 'all-in-one-video-gallery' ); ?></strong>
217
+ </p>
218
+
219
+ <div class="aiovg-input-wrap">
220
  <input type="text" name="views" id="aiovg-views" class="text" value="<?php echo esc_attr( $views ); ?>" />
221
  </div>
222
  </td>
admin/partials/video-tracks.php CHANGED
@@ -22,21 +22,21 @@
22
  <tr class="aiovg-tracks-row">
23
  <td class="aiovg-handle aiovg-hidden-xs"><span class="dashicons dashicons-sort"></span></td>
24
  <td>
25
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "File URL", 'all-in-one-video-gallery' ); ?></strong></p>
26
  <div class="aiovg-input-wrap">
27
- <input type="text" name="track_src[]" id="aiovg-track-<?php echo esc_attr( $key ); ?>" class="text aiovg-track-src" placeholder="<?php esc_attr_e( "Enter your Direct File URL here (OR) use the Upload Media button", 'all-in-one-video-gallery' ); ?>" value="<?php echo esc_attr( $track['src'] ); ?>" />
28
  </div>
29
  </td>
30
  <td>
31
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Label", 'all-in-one-video-gallery' ); ?></strong></p>
32
  <div class="aiovg-input-wrap">
33
- <input type="text" name="track_label[]" class="text aiovg-track-label" placeholder="<?php esc_attr_e( "English", 'all-in-one-video-gallery' ); ?>" value="<?php echo esc_attr( $track['label'] ); ?>" />
34
  </div>
35
  </td>
36
  <td>
37
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Srclang", 'all-in-one-video-gallery' ); ?></strong></p>
38
  <div class="aiovg-input-wrap">
39
- <input type="text" name="track_srclang[]" class="text aiovg-track-srclang" placeholder="<?php esc_attr_e( "en", 'all-in-one-video-gallery' ); ?>" value="<?php echo esc_attr( $track['srclang'] ); ?>" />
40
  </div>
41
  </td>
42
  <td>
@@ -58,21 +58,21 @@
58
  <tr class="aiovg-tracks-row">
59
  <td class="aiovg-handle aiovg-hidden-xs"><span class="dashicons dashicons-sort"></span></td>
60
  <td>
61
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "File URL", 'all-in-one-video-gallery' ); ?></strong></p>
62
  <div class="aiovg-input-wrap">
63
- <input type="text" name="track_src[]" class="text aiovg-track-src" placeholder="<?php esc_attr_e( "Enter your Direct File URL here (OR) use the Upload Media button", 'all-in-one-video-gallery' ); ?>" />
64
  </div>
65
  </td>
66
  <td>
67
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Label", 'all-in-one-video-gallery' ); ?></strong></p>
68
  <div class="aiovg-input-wrap">
69
- <input type="text" name="track_label[]" class="text aiovg-track-label" placeholder="<?php esc_attr_e( "English", 'all-in-one-video-gallery' ); ?>" />
70
  </div>
71
  </td>
72
  <td>
73
- <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( "Srclang", 'all-in-one-video-gallery' ); ?></strong></p>
74
  <div class="aiovg-input-wrap">
75
- <input type="text" name="track_srclang[]" class="text aiovg-track-srclang" placeholder="<?php esc_attr_e( "en", 'all-in-one-video-gallery' ); ?>" />
76
  </div>
77
  </td>
78
  <td>
22
  <tr class="aiovg-tracks-row">
23
  <td class="aiovg-handle aiovg-hidden-xs"><span class="dashicons dashicons-sort"></span></td>
24
  <td>
25
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( 'File URL', 'all-in-one-video-gallery' ); ?></strong></p>
26
  <div class="aiovg-input-wrap">
27
+ <input type="text" name="track_src[]" id="aiovg-track-<?php echo esc_attr( $key ); ?>" class="text aiovg-track-src" value="<?php echo esc_attr( $track['src'] ); ?>" />
28
  </div>
29
  </td>
30
  <td>
31
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( 'Label', 'all-in-one-video-gallery' ); ?></strong></p>
32
  <div class="aiovg-input-wrap">
33
+ <input type="text" name="track_label[]" class="text aiovg-track-label" placeholder="<?php esc_attr_e( 'English', 'all-in-one-video-gallery' ); ?>" value="<?php echo esc_attr( $track['label'] ); ?>" />
34
  </div>
35
  </td>
36
  <td>
37
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( 'Srclang', 'all-in-one-video-gallery' ); ?></strong></p>
38
  <div class="aiovg-input-wrap">
39
+ <input type="text" name="track_srclang[]" class="text aiovg-track-srclang" placeholder="<?php esc_attr_e( 'en', 'all-in-one-video-gallery' ); ?>" value="<?php echo esc_attr( $track['srclang'] ); ?>" />
40
  </div>
41
  </td>
42
  <td>
58
  <tr class="aiovg-tracks-row">
59
  <td class="aiovg-handle aiovg-hidden-xs"><span class="dashicons dashicons-sort"></span></td>
60
  <td>
61
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( 'File URL', 'all-in-one-video-gallery' ); ?></strong></p>
62
  <div class="aiovg-input-wrap">
63
+ <input type="text" name="track_src[]" class="text aiovg-track-src" />
64
  </div>
65
  </td>
66
  <td>
67
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( 'Label', 'all-in-one-video-gallery' ); ?></strong></p>
68
  <div class="aiovg-input-wrap">
69
+ <input type="text" name="track_label[]" class="text aiovg-track-label" placeholder="<?php esc_attr_e( 'English', 'all-in-one-video-gallery' ); ?>" />
70
  </div>
71
  </td>
72
  <td>
73
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg"><strong><?php esc_html_e( 'Srclang', 'all-in-one-video-gallery' ); ?></strong></p>
74
  <div class="aiovg-input-wrap">
75
+ <input type="text" name="track_srclang[]" class="text aiovg-track-srclang" placeholder="<?php esc_attr_e( 'en', 'all-in-one-video-gallery' ); ?>" />
76
  </div>
77
  </td>
78
  <td>
admin/partials/welcome.php DELETED
@@ -1,188 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Welcome page.
5
- *
6
- * @link https://plugins360.com
7
- * @since 1.0.0
8
- *
9
- * @package All_In_One_Video_Gallery
10
- */
11
- ?>
12
-
13
- <div id="aiovg-welcome" class="wrap about-wrap full-width-layout aiovg-welcome">
14
- <h1><?php
15
- printf( esc_html__( 'All-in-One Video Gallery - %s', 'all-in-one-video-gallery' ), AIOVG_PLUGIN_VERSION );
16
- ?></h1>
17
-
18
- <p class="about-text">
19
- <?php
20
- esc_html_e( "The last video player & gallery plugin you'll ever need.", 'all-in-one-video-gallery' );
21
- ?>
22
- </p>
23
-
24
- <?php
25
- ?>
26
-
27
- <div class="wp-badge aiovg-badge"><?php
28
- printf( esc_html__( 'Version %s', 'all-in-one-video-gallery' ), AIOVG_PLUGIN_VERSION );
29
- ?></div>
30
-
31
- <h2 class="nav-tab-wrapper wp-clearfix">
32
- <?php
33
- foreach ( $tabs as $tab => $title ) {
34
- $class = ( $tab == $active_tab ? 'nav-tab nav-tab-active' : 'nav-tab' );
35
- if ( 'aiovg_new' == $tab ) {
36
- $title .= '<span class="dashicons dashicons-info"></span>';
37
- }
38
- printf(
39
- '<a href="%s" class="%s">%s</a>',
40
- esc_url( admin_url( add_query_arg( 'page', $tab, 'index.php' ) ) ),
41
- $class,
42
- $title
43
- );
44
- }
45
- ?>
46
- </h2>
47
-
48
- <?php
49
-
50
- if ( 'aiovg_welcome' == $active_tab ) {
51
- ?>
52
- <p class="about-description">
53
- <strong><?php
54
- printf( esc_html__( 'Step #%d:', 'all-in-one-video-gallery' ), 0 );
55
- ?></strong>
56
- &rarr;
57
- <?php
58
- _e( 'Install & Activate <strong>All-in-One Video Gallery</strong>', 'all-in-one-video-gallery' );
59
- ?>
60
- </p>
61
-
62
- <p class="about-description">
63
- <strong><?php
64
- printf( esc_html__( 'Step #%d:', 'all-in-one-video-gallery' ), 1 );
65
- ?></strong>
66
- &rarr;
67
- <code><?php
68
- esc_html_e( 'Optional', 'all-in-one-video-gallery' );
69
- ?></code>
70
- <a href="<?php
71
- echo esc_url( admin_url( 'edit-tags.php?taxonomy=aiovg_categories&post_type=aiovg_videos' ) ) ;
72
- ?>">
73
- <?php
74
- esc_html_e( 'Add Categories', 'all-in-one-video-gallery' );
75
- ?>
76
- </a>
77
- </p>
78
-
79
- <p class="about-description">
80
- <strong><?php
81
- printf( esc_html__( 'Step #%d:', 'all-in-one-video-gallery' ), 2 );
82
- ?></strong>
83
- &rarr;
84
- <a href="<?php
85
- echo esc_url( admin_url( 'post-new.php?post_type=aiovg_videos' ) ) ;
86
- ?>">
87
- <?php
88
- esc_html_e( 'Add Videos', 'all-in-one-video-gallery' );
89
- ?>
90
- </a>
91
- </p>
92
-
93
- <p class="about-description">
94
- <strong><?php
95
- printf( esc_html__( 'Step #%d:', 'all-in-one-video-gallery' ), 3 );
96
- ?></strong>
97
- &rarr;
98
- <code><?php
99
- esc_html_e( 'Optional', 'all-in-one-video-gallery' );
100
- ?></code>
101
- <?php
102
- printf( __( 'Add a Categories <a href="%s">Page</a> to your site front-end. Find step by step instructions <a href="%s" target="_blank">here</a>', 'all-in-one-video-gallery' ), esc_url( admin_url( 'post-new.php?post_type=page' ) ), 'https://plugins360.com/all-in-one-video-gallery/displaying-categories/' );
103
- ?>
104
- </p>
105
-
106
- <p class="about-description">
107
- <strong><?php
108
- printf( esc_html__( 'Step #%d:', 'all-in-one-video-gallery' ), 4 );
109
- ?></strong>
110
- &rarr;
111
- <?php
112
- printf( __( 'Add a Videos <a href="%s">Page</a> to your site front-end. Find step by step instructions <a href="%s" target="_blank">here</a>', 'all-in-one-video-gallery' ), esc_url( admin_url( 'post-new.php?post_type=page' ) ), 'https://plugins360.com/all-in-one-video-gallery/displaying-video-gallery/' );
113
- ?>
114
- </p>
115
-
116
- <p>
117
- <?php
118
- printf( __( 'Please <a href="%s" target="_blank">refer</a> for more advanced tutorials.', 'all-in-one-video-gallery' ), 'https://plugins360.com/all-in-one-video-gallery/documentation/' );
119
- ?>
120
- </p>
121
- <?php
122
- }
123
-
124
- ?>
125
-
126
- <?php
127
-
128
- if ( 'aiovg_new' == $active_tab ) {
129
- ?>
130
- <p class="about-description"><span class="dashicons dashicons-awards"></span> <?php
131
- esc_html_e( 'Introducing our new Automation tool', 'all-in-one-video-gallery' );
132
- ?></p>
133
-
134
- <p>
135
- <?php
136
- printf(
137
- '%s <a href="%s" target="_blank">%s</a>',
138
- esc_html__( "Your site on Autopilot. Simply configure your YouTube channel, playlist or a search keyword and schedule it. The plugin will do the rest by auto importing videos from your YouTube account. Each time a new video is uploaded there, it'll be automatically imported to your site within the hour.", 'all-in-one-video-gallery' ),
139
- 'https://plugins360.com/all-in-one-video-gallery/automations/',
140
- esc_html__( 'Learn more', 'all-in-one-video-gallery' )
141
- );
142
- ?>
143
- </p>
144
- <?php
145
- }
146
-
147
- ?>
148
-
149
- <?php
150
-
151
- if ( 'aiovg_support' == $active_tab ) {
152
- ?>
153
- <p class="about-description"><?php
154
- esc_html_e( 'Need Help?', 'all-in-one-video-gallery' );
155
- ?></p>
156
-
157
- <div class="changelog">
158
- <div class="two-col">
159
- <div class="col">
160
- <h3><?php
161
- esc_html_e( 'Phenomenal Support', 'all-in-one-video-gallery' );
162
- ?></h3>
163
-
164
- <p>
165
- <?php
166
- printf( __( 'We do our best to provide the best support we can. If you encounter a problem or have a question, simply submit your question using our <a href="%s" target="_blank">support form</a>.', 'all-in-one-video-gallery' ), 'https://wordpress.org/support/plugin/all-in-one-video-gallery' );
167
- ?>
168
- </p>
169
- </div>
170
-
171
- <div class="col">
172
- <h3><?php
173
- esc_html_e( 'Need Even Faster Support?', 'all-in-one-video-gallery' );
174
- ?></h3>
175
-
176
- <p>
177
- <?php
178
- printf( __( 'Our <a href="%s" target="_blank">Priority Support</a> system is there for customers that need faster and/or more in-depth assistance.', 'all-in-one-video-gallery' ), 'https://plugins360.com/support/' );
179
- ?>
180
- </p>
181
- </div>
182
- </div>
183
- </div>
184
- <?php
185
- }
186
-
187
- ?>
188
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/settings.php CHANGED
@@ -53,10 +53,10 @@ class AIOVG_Admin_Settings {
53
  *
54
  * @since 1.0.0
55
  */
56
- public function add_settings_menu() {
57
  add_submenu_page(
58
- 'edit.php?post_type=aiovg_videos',
59
- __( 'Settings', 'all-in-one-video-gallery' ),
60
  __( 'Settings', 'all-in-one-video-gallery' ),
61
  'manage_aiovg_options',
62
  'aiovg_settings',
@@ -70,7 +70,6 @@ class AIOVG_Admin_Settings {
70
  * @since 1.0.0
71
  */
72
  public function display_settings_form() {
73
- $active_tab = isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $this->tabs ) ? sanitize_text_field( $_GET['tab'] ) : 'general';
74
  require_once AIOVG_PLUGIN_DIR . 'admin/partials/settings.php';
75
  }
76
 
@@ -121,26 +120,31 @@ class AIOVG_Admin_Settings {
121
  'id' => 'aiovg_player_settings',
122
  'title' => __( 'Player Settings', 'all-in-one-video-gallery' ),
123
  'tab' => 'general'
124
- ),
125
- array(
126
- 'id' => 'aiovg_image_settings',
127
- 'title' => __( 'Image Settings', 'all-in-one-video-gallery' ),
128
  'tab' => 'display'
129
  ),
130
  array(
131
  'id' => 'aiovg_categories_settings',
132
- 'title' => __( 'Categories Page', 'all-in-one-video-gallery' ),
133
- 'tab' => 'display'
134
- ),
135
- array(
136
- 'id' => 'aiovg_videos_settings',
137
- 'title' => __( 'Video Gallery Pages', 'all-in-one-video-gallery' ),
138
  'tab' => 'display'
139
- ),
140
  array(
141
  'id' => 'aiovg_video_settings',
142
  'title' => __( 'Single Video Page', 'all-in-one-video-gallery' ),
143
  'tab' => 'display'
 
 
 
 
 
 
 
 
 
 
144
  ),
145
  array(
146
  'id' => 'aiovg_permalink_settings',
@@ -153,12 +157,7 @@ class AIOVG_Admin_Settings {
153
  'title' => __( 'Socialshare Buttons', 'all-in-one-video-gallery' ),
154
  'description' => __( 'Select social share buttons displayed in the single video pages.', 'all-in-one-video-gallery' ),
155
  'tab' => 'advanced'
156
- ),
157
- array(
158
- 'id' => 'aiovg_page_settings',
159
- 'title' => __( 'Page Settings', 'all-in-one-video-gallery' ),
160
- 'tab' => 'advanced'
161
- ),
162
  array(
163
  'id' => 'aiovg_privacy_settings',
164
  'title' => __( 'Privacy Settings', 'all-in-one-video-gallery' ),
@@ -242,6 +241,13 @@ class AIOVG_Admin_Settings {
242
  'description' => __( 'Check this, so that the video will start over again, every time it is finished', 'all-in-one-video-gallery' ),
243
  'type' => 'checkbox',
244
  'sanitize_callback' => 'intval'
 
 
 
 
 
 
 
245
  ),
246
  array(
247
  'name' => 'preload',
@@ -290,99 +296,8 @@ class AIOVG_Admin_Settings {
290
  ),
291
  'sanitize_callback' => 'aiovg_sanitize_array'
292
  )
293
- ),
294
- 'aiovg_image_settings' => array(
295
- array(
296
- 'name' => 'width',
297
- 'label' => __( 'Width', 'all-in-one-video-gallery' ),
298
- 'description' => __( 'Always 100% of its enclosing container/html element.', 'all-in-one-video-gallery' ),
299
- 'type' => 'html',
300
- 'sanitize_callback' => 'aiovg_sanitize_int'
301
- ),
302
- array(
303
- 'name' => 'ratio',
304
- 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
305
- 'description' => __( "In percentage. 1 to 100. Calculate images's height using the ratio value entered.", 'all-in-one-video-gallery' ),
306
- 'type' => 'text',
307
- 'sanitize_callback' => 'floatval'
308
- ),
309
- ),
310
- 'aiovg_categories_settings' => array(
311
- array(
312
- 'name' => 'template',
313
- 'label' => __( 'Select Template', 'all-in-one-video-gallery' ),
314
- 'description' => '',
315
- 'type' => 'select',
316
- 'options' => array(
317
- 'grid' => __( 'Grid', 'all-in-one-video-gallery' ),
318
- 'list' => __( 'List', 'all-in-one-video-gallery' )
319
- ),
320
- 'sanitize_callback' => 'sanitize_key'
321
- ),
322
- array(
323
- 'name' => 'columns',
324
- 'label' => __( 'Columns', 'all-in-one-video-gallery' ),
325
- 'description' => __( 'Enter the number of columns you like to have in your categories page.', 'all-in-one-video-gallery' ),
326
- 'type' => 'number',
327
- 'min' => 1,
328
- 'max' => 12,
329
- 'step' => 1,
330
- 'sanitize_callback' => 'intval'
331
- ),
332
- array(
333
- 'name' => 'orderby',
334
- 'label' => __( 'Order by', 'all-in-one-video-gallery' ),
335
- 'description' => '',
336
- 'type' => 'select',
337
- 'options' => array(
338
- 'id' => __( 'ID', 'all-in-one-video-gallery' ),
339
- 'count' => __( 'Count', 'all-in-one-video-gallery' ),
340
- 'name' => __( 'Name', 'all-in-one-video-gallery' ),
341
- 'slug' => __( 'Slug', 'all-in-one-video-gallery' )
342
- ),
343
- 'sanitize_callback' => 'sanitize_key'
344
- ),
345
- array(
346
- 'name' => 'order',
347
- 'label' => __( 'Order', 'all-in-one-video-gallery' ),
348
- 'description' => '',
349
- 'type' => 'select',
350
- 'options' => array(
351
- 'asc' => __( 'Ascending', 'all-in-one-video-gallery' ),
352
- 'desc' => __( 'Descending', 'all-in-one-video-gallery' )
353
- ),
354
- 'sanitize_callback' => 'sanitize_key'
355
- ),
356
- array(
357
- 'name' => 'hierarchical',
358
- 'label' => __( 'Show Hierarchy', 'all-in-one-video-gallery' ),
359
- 'description' => __( 'Check this to show the child categories', 'all-in-one-video-gallery' ),
360
- 'type' => 'checkbox',
361
- 'sanitize_callback' => 'intval'
362
- ),
363
- array(
364
- 'name' => 'show_description',
365
- 'label' => __( 'Show Description', 'all-in-one-video-gallery' ),
366
- 'description' => __( 'Check this to show the categories description', 'all-in-one-video-gallery' ),
367
- 'type' => 'checkbox',
368
- 'sanitize_callback' => 'intval'
369
- ),
370
- array(
371
- 'name' => 'show_count',
372
- 'label' => __( 'Show Videos Count', 'all-in-one-video-gallery' ),
373
- 'description' => __( 'Check this to show the videos count next to the category name', 'all-in-one-video-gallery' ),
374
- 'type' => 'checkbox',
375
- 'sanitize_callback' => 'intval'
376
- ),
377
- array(
378
- 'name' => 'hide_empty',
379
- 'label' => __( 'Hide Empty Categories', 'all-in-one-video-gallery' ),
380
- 'description' => __( 'Check this to hide categories with no videos', 'all-in-one-video-gallery' ),
381
- 'type' => 'checkbox',
382
- 'sanitize_callback' => 'intval'
383
- )
384
- ),
385
- 'aiovg_videos_settings' => array(
386
  array(
387
  'name' => 'template',
388
  'label' => __( 'Select Template', 'all-in-one-video-gallery' ),
@@ -467,6 +382,81 @@ class AIOVG_Admin_Settings {
467
  'sanitize_callback' => 'intval'
468
  ),
469
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
470
  'aiovg_video_settings' => array(
471
  array(
472
  'name' => 'display',
@@ -489,33 +479,24 @@ class AIOVG_Admin_Settings {
489
  'type' => 'checkbox',
490
  'sanitize_callback' => 'intval'
491
  )
492
- ),
493
- 'aiovg_permalink_settings' => array(
494
  array(
495
- 'name' => 'video',
496
- 'label' => __( 'Video Detail Page', 'all-in-one-video-gallery' ),
497
- 'description' => __( 'Replaces the SLUG value used by custom post type "aiovg_videos".', 'all-in-one-video-gallery' ),
498
- 'type' => 'text',
499
- 'sanitize_callback' => 'sanitize_text_field'
500
- )
501
- ),
502
- 'aiovg_socialshare_settings' => array(
503
  array(
504
- 'name' => 'services',
505
- 'label' => __( 'Enable Services', 'all-in-one-video-gallery' ),
506
- 'description' => '',
507
- 'type' => 'multicheck',
508
- 'options' => array(
509
- 'facebook' => __( 'Facebook', 'all-in-one-video-gallery' ),
510
- 'twitter' => __( 'Twitter', 'all-in-one-video-gallery' ),
511
- 'gplus' => __( 'Google Plus', 'all-in-one-video-gallery' ),
512
- 'linkedin' => __( 'Linkedin', 'all-in-one-video-gallery' ),
513
- 'pinterest' => __( 'Pinterest', 'all-in-one-video-gallery' )
514
- ),
515
- 'sanitize_callback' => 'aiovg_sanitize_array'
516
- )
517
- ),
518
- 'aiovg_page_settings' => array(
519
  array(
520
  'name' => 'category',
521
  'label' => __( 'Single Category Page', 'all-in-one-video-gallery' ),
@@ -544,7 +525,32 @@ class AIOVG_Admin_Settings {
544
  'type' => 'pages',
545
  'sanitize_callback' => 'sanitize_key'
546
  )
547
- ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
548
  'aiovg_privacy_settings' => array(
549
  array(
550
  'name' => 'show_consent',
@@ -634,7 +640,7 @@ class AIOVG_Admin_Settings {
634
  public function initialize_settings() {
635
  // Register settings sections & fields
636
  foreach ( $this->sections as $section ) {
637
- $page_hook = "aiovg_{$section['tab']}_settings";
638
 
639
  // Sections
640
  if ( false == get_option( $section['id'] ) ) {
@@ -927,7 +933,7 @@ class AIOVG_Admin_Settings {
927
  $value = esc_attr( $this->get_option( $args['id'], $args['section'], '#ffffff' ) );
928
  $size = isset( $args['size'] ) && ! is_null( $args['size'] ) ? $args['size'] : 'regular';
929
 
930
- $html = sprintf( '<input type="text" class="%1$s-text aiovg-color-picker-field" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s" data-default-color="%5$s" />', $size, $args['section'], $args['id'], $value, '#ffffff' );
931
  $html .= $this->get_field_description( $args );
932
 
933
  echo $html;
@@ -963,7 +969,11 @@ class AIOVG_Admin_Settings {
963
  */
964
  public function get_field_description( $args ) {
965
  if ( ! empty( $args['description'] ) ) {
966
- $description = sprintf( '<p class="description">%s</p>', $args['description'] );
 
 
 
 
967
  } else {
968
  $description = '';
969
  }
53
  *
54
  * @since 1.0.0
55
  */
56
+ public function admin_menu() {
57
  add_submenu_page(
58
+ 'all-in-one-video-gallery',
59
+ __( 'All-in-One Video Gallery - Settings', 'all-in-one-video-gallery' ),
60
  __( 'Settings', 'all-in-one-video-gallery' ),
61
  'manage_aiovg_options',
62
  'aiovg_settings',
70
  * @since 1.0.0
71
  */
72
  public function display_settings_form() {
 
73
  require_once AIOVG_PLUGIN_DIR . 'admin/partials/settings.php';
74
  }
75
 
120
  'id' => 'aiovg_player_settings',
121
  'title' => __( 'Player Settings', 'all-in-one-video-gallery' ),
122
  'tab' => 'general'
123
+ ),
124
+ array(
125
+ 'id' => 'aiovg_videos_settings',
126
+ 'title' => __( 'Videos Layout', 'all-in-one-video-gallery' ),
127
  'tab' => 'display'
128
  ),
129
  array(
130
  'id' => 'aiovg_categories_settings',
131
+ 'title' => __( 'Categories Layout', 'all-in-one-video-gallery' ),
 
 
 
 
 
132
  'tab' => 'display'
133
+ ),
134
  array(
135
  'id' => 'aiovg_video_settings',
136
  'title' => __( 'Single Video Page', 'all-in-one-video-gallery' ),
137
  'tab' => 'display'
138
+ ),
139
+ array(
140
+ 'id' => 'aiovg_image_settings',
141
+ 'title' => __( 'Image Settings', 'all-in-one-video-gallery' ),
142
+ 'tab' => 'display'
143
+ ),
144
+ array(
145
+ 'id' => 'aiovg_page_settings',
146
+ 'title' => __( 'Page Settings', 'all-in-one-video-gallery' ),
147
+ 'tab' => 'advanced'
148
  ),
149
  array(
150
  'id' => 'aiovg_permalink_settings',
157
  'title' => __( 'Socialshare Buttons', 'all-in-one-video-gallery' ),
158
  'description' => __( 'Select social share buttons displayed in the single video pages.', 'all-in-one-video-gallery' ),
159
  'tab' => 'advanced'
160
+ ),
 
 
 
 
 
161
  array(
162
  'id' => 'aiovg_privacy_settings',
163
  'title' => __( 'Privacy Settings', 'all-in-one-video-gallery' ),
241
  'description' => __( 'Check this, so that the video will start over again, every time it is finished', 'all-in-one-video-gallery' ),
242
  'type' => 'checkbox',
243
  'sanitize_callback' => 'intval'
244
+ ),
245
+ array(
246
+ 'name' => 'muted',
247
+ 'label' => __( 'Muted', 'all-in-one-video-gallery' ),
248
+ 'description' => __( 'Check this to turn OFF the audio output of the video by default', 'all-in-one-video-gallery' ),
249
+ 'type' => 'checkbox',
250
+ 'sanitize_callback' => 'intval'
251
  ),
252
  array(
253
  'name' => 'preload',
296
  ),
297
  'sanitize_callback' => 'aiovg_sanitize_array'
298
  )
299
+ ),
300
+ 'aiovg_videos_settings' => array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  array(
302
  'name' => 'template',
303
  'label' => __( 'Select Template', 'all-in-one-video-gallery' ),
382
  'sanitize_callback' => 'intval'
383
  ),
384
  ),
385
+ 'aiovg_categories_settings' => array(
386
+ array(
387
+ 'name' => 'template',
388
+ 'label' => __( 'Select Template', 'all-in-one-video-gallery' ),
389
+ 'description' => '',
390
+ 'type' => 'select',
391
+ 'options' => array(
392
+ 'grid' => __( 'Grid', 'all-in-one-video-gallery' ),
393
+ 'list' => __( 'List', 'all-in-one-video-gallery' )
394
+ ),
395
+ 'sanitize_callback' => 'sanitize_key'
396
+ ),
397
+ array(
398
+ 'name' => 'columns',
399
+ 'label' => __( 'Columns', 'all-in-one-video-gallery' ),
400
+ 'description' => __( 'Enter the number of columns you like to have in your categories page.', 'all-in-one-video-gallery' ),
401
+ 'type' => 'number',
402
+ 'min' => 1,
403
+ 'max' => 12,
404
+ 'step' => 1,
405
+ 'sanitize_callback' => 'intval'
406
+ ),
407
+ array(
408
+ 'name' => 'orderby',
409
+ 'label' => __( 'Order by', 'all-in-one-video-gallery' ),
410
+ 'description' => '',
411
+ 'type' => 'select',
412
+ 'options' => array(
413
+ 'id' => __( 'ID', 'all-in-one-video-gallery' ),
414
+ 'count' => __( 'Count', 'all-in-one-video-gallery' ),
415
+ 'name' => __( 'Name', 'all-in-one-video-gallery' ),
416
+ 'slug' => __( 'Slug', 'all-in-one-video-gallery' )
417
+ ),
418
+ 'sanitize_callback' => 'sanitize_key'
419
+ ),
420
+ array(
421
+ 'name' => 'order',
422
+ 'label' => __( 'Order', 'all-in-one-video-gallery' ),
423
+ 'description' => '',
424
+ 'type' => 'select',
425
+ 'options' => array(
426
+ 'asc' => __( 'Ascending', 'all-in-one-video-gallery' ),
427
+ 'desc' => __( 'Descending', 'all-in-one-video-gallery' )
428
+ ),
429
+ 'sanitize_callback' => 'sanitize_key'
430
+ ),
431
+ array(
432
+ 'name' => 'hierarchical',
433
+ 'label' => __( 'Show Hierarchy', 'all-in-one-video-gallery' ),
434
+ 'description' => __( 'Check this to show the child categories', 'all-in-one-video-gallery' ),
435
+ 'type' => 'checkbox',
436
+ 'sanitize_callback' => 'intval'
437
+ ),
438
+ array(
439
+ 'name' => 'show_description',
440
+ 'label' => __( 'Show Description', 'all-in-one-video-gallery' ),
441
+ 'description' => __( 'Check this to show the categories description', 'all-in-one-video-gallery' ),
442
+ 'type' => 'checkbox',
443
+ 'sanitize_callback' => 'intval'
444
+ ),
445
+ array(
446
+ 'name' => 'show_count',
447
+ 'label' => __( 'Show Videos Count', 'all-in-one-video-gallery' ),
448
+ 'description' => __( 'Check this to show the videos count next to the category name', 'all-in-one-video-gallery' ),
449
+ 'type' => 'checkbox',
450
+ 'sanitize_callback' => 'intval'
451
+ ),
452
+ array(
453
+ 'name' => 'hide_empty',
454
+ 'label' => __( 'Hide Empty Categories', 'all-in-one-video-gallery' ),
455
+ 'description' => __( 'Check this to hide categories with no videos', 'all-in-one-video-gallery' ),
456
+ 'type' => 'checkbox',
457
+ 'sanitize_callback' => 'intval'
458
+ )
459
+ ),
460
  'aiovg_video_settings' => array(
461
  array(
462
  'name' => 'display',
479
  'type' => 'checkbox',
480
  'sanitize_callback' => 'intval'
481
  )
482
+ ),
483
+ 'aiovg_image_settings' => array(
484
  array(
485
+ 'name' => 'width',
486
+ 'label' => __( 'Width', 'all-in-one-video-gallery' ),
487
+ 'description' => __( 'Always 100% of its enclosing container/html element.', 'all-in-one-video-gallery' ),
488
+ 'type' => 'html',
489
+ 'sanitize_callback' => 'aiovg_sanitize_int'
490
+ ),
 
 
491
  array(
492
+ 'name' => 'ratio',
493
+ 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
494
+ 'description' => __( "In percentage. 1 to 100. Calculate images's height using the ratio value entered.", 'all-in-one-video-gallery' ),
495
+ 'type' => 'text',
496
+ 'sanitize_callback' => 'floatval'
497
+ ),
498
+ ),
499
+ 'aiovg_page_settings' => array(
 
 
 
 
 
 
 
500
  array(
501
  'name' => 'category',
502
  'label' => __( 'Single Category Page', 'all-in-one-video-gallery' ),
525
  'type' => 'pages',
526
  'sanitize_callback' => 'sanitize_key'
527
  )
528
+ ),
529
+ 'aiovg_permalink_settings' => array(
530
+ array(
531
+ 'name' => 'video',
532
+ 'label' => __( 'Video Detail Page', 'all-in-one-video-gallery' ),
533
+ 'description' => __( 'Replaces the SLUG value used by custom post type "aiovg_videos".', 'all-in-one-video-gallery' ),
534
+ 'type' => 'text',
535
+ 'sanitize_callback' => 'sanitize_text_field'
536
+ )
537
+ ),
538
+ 'aiovg_socialshare_settings' => array(
539
+ array(
540
+ 'name' => 'services',
541
+ 'label' => __( 'Enable Services', 'all-in-one-video-gallery' ),
542
+ 'description' => '',
543
+ 'type' => 'multicheck',
544
+ 'options' => array(
545
+ 'facebook' => __( 'Facebook', 'all-in-one-video-gallery' ),
546
+ 'twitter' => __( 'Twitter', 'all-in-one-video-gallery' ),
547
+ 'linkedin' => __( 'Linkedin', 'all-in-one-video-gallery' ),
548
+ 'pinterest' => __( 'Pinterest', 'all-in-one-video-gallery' ),
549
+ 'whatsapp' => __( 'WhatsApp', 'all-in-one-video-gallery' )
550
+ ),
551
+ 'sanitize_callback' => 'aiovg_sanitize_array'
552
+ )
553
+ ),
554
  'aiovg_privacy_settings' => array(
555
  array(
556
  'name' => 'show_consent',
640
  public function initialize_settings() {
641
  // Register settings sections & fields
642
  foreach ( $this->sections as $section ) {
643
+ $page_hook = $section['id'];
644
 
645
  // Sections
646
  if ( false == get_option( $section['id'] ) ) {
933
  $value = esc_attr( $this->get_option( $args['id'], $args['section'], '#ffffff' ) );
934
  $size = isset( $args['size'] ) && ! is_null( $args['size'] ) ? $args['size'] : 'regular';
935
 
936
+ $html = sprintf( '<input type="text" class="%1$s-text aiovg-color-picker" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s" data-default-color="%5$s" />', $size, $args['section'], $args['id'], $value, '#ffffff' );
937
  $html .= $this->get_field_description( $args );
938
 
939
  echo $html;
969
  */
970
  public function get_field_description( $args ) {
971
  if ( ! empty( $args['description'] ) ) {
972
+ if ( 'wysiwyg' == $args['type'] ) {
973
+ $description = sprintf( '<pre>%s</pre>', $args['description'] );
974
+ } else {
975
+ $description = sprintf( '<p class="description">%s</p>', $args['description'] );
976
+ }
977
  } else {
978
  $description = '';
979
  }
admin/shortcode-builder.php DELETED
@@ -1,88 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Shortcode Builder.
5
- *
6
- * @link https://plugins360.com
7
- * @since 1.0.0
8
- *
9
- * @package All_In_One_Video_Gallery
10
- */
11
-
12
- // Exit if accessed directly
13
- if ( ! defined( 'WPINC' ) ) {
14
- die;
15
- }
16
-
17
- /**
18
- * AIOVG_Admin_Shortcode_Builder class.
19
- *
20
- * @since 1.0.0
21
- */
22
- class AIOVG_Admin_Shortcode_Builder {
23
-
24
- /**
25
- * Adds an "Video Player & Gallery" button above the TinyMCE Editor on add/edit screens.
26
- *
27
- * @since 1.0.0
28
- */
29
- public function media_buttons() {
30
- global $pagenow, $typenow;
31
-
32
- // Only run in post/page creation and edit screens
33
- if ( ! in_array( $pagenow, array( 'post.php', 'page.php', 'post-new.php', 'post-edit.php' ) ) ) {
34
- return;
35
- }
36
-
37
- // check if this is our custom post type page
38
- if ( in_array( $typenow, array( 'aiovg_videos', 'aiovg_automations' ) ) ) {
39
- return;
40
- }
41
-
42
- // check if the post/page uses Gutenberg editor
43
- if ( aiovg_is_gutenberg_page() ) {
44
- return;
45
- }
46
-
47
- printf( '<a href="#aiovg-shortcode-builder" class="button button-primary aiovg-media-button" id="aiovg-media-button"><span class="wp-media-buttons-icon dashicons dashicons-playlist-video"></span> %s</a>', __( 'Video Player & Gallery', 'all-in-one-video-gallery' ) );
48
- }
49
-
50
- /**
51
- * Prints the footer code needed for the "AIO Video Gallery" TinyMCE button.
52
- *
53
- * @since 1.0.0
54
- */
55
- public function admin_footer() {
56
- global $pagenow, $typenow;
57
-
58
- // Only run in post/page creation and edit screens
59
- if ( ! in_array( $pagenow, array( 'post.php', 'page.php', 'post-new.php', 'post-edit.php' ) ) ) {
60
- return;
61
- }
62
-
63
- // check if this is our custom post type page
64
- if ( in_array( $typenow, array( 'aiovg_videos', 'aiovg_automations' ) ) ) {
65
- return;
66
- }
67
-
68
- // check if the post/page uses Gutenberg editor
69
- if ( aiovg_is_gutenberg_page() ) {
70
- return;
71
- }
72
-
73
- // Shortcodes
74
- $shortcodes = array(
75
- 'categories' => __( 'Video Categories', 'all-in-one-video-gallery' ) . ' - [aiovg_categories]',
76
- 'videos' => __( 'Video Gallery', 'all-in-one-video-gallery' ) . ' - [aiovg_videos]',
77
- 'video' => __( 'Single Video', 'all-in-one-video-gallery' ) . ' - [aiovg_video]',
78
- 'search_form' => __( 'Search Form', 'all-in-one-video-gallery' ) . ' - [aiovg_search_form]'
79
- );
80
-
81
- // Fields
82
- $fields = aiovg_get_block_fields();
83
-
84
- // ...
85
- require_once AIOVG_PLUGIN_DIR . 'admin/partials/shortcode-builder.php';
86
- }
87
-
88
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/videos.php CHANGED
@@ -21,6 +21,39 @@ if ( ! defined( 'WPINC' ) ) {
21
  */
22
  class AIOVG_Admin_Videos {
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  /**
25
  * Register the custom post type "aiovg_videos".
26
  *
@@ -74,9 +107,7 @@ class AIOVG_Admin_Videos {
74
  'hierarchical' => false,
75
  'public' => true,
76
  'show_ui' => ( current_user_can( 'administrator' ) || current_user_can( 'editor' ) ) ? true : false,
77
- 'show_in_menu' => true,
78
- 'menu_position' => 10,
79
- 'menu_icon' => 'dashicons-playlist-video',
80
  'show_in_admin_bar' => true,
81
  'show_in_nav_menus' => false,
82
  'show_in_rest' => false,
21
  */
22
  class AIOVG_Admin_Videos {
23
 
24
+ /**
25
+ * Add "All Videos" menu.
26
+ *
27
+ * @since 1.6.5
28
+ */
29
+ public function admin_menu() {
30
+ add_submenu_page(
31
+ 'all-in-one-video-gallery',
32
+ __( 'All-in-One Video Gallery - Videos', 'all-in-one-video-gallery' ),
33
+ __( 'All Videos', 'all-in-one-video-gallery' ),
34
+ 'edit_others_aiovg_videos',
35
+ 'edit.php?post_type=aiovg_videos'
36
+ );
37
+ }
38
+
39
+ /**
40
+ * Move "All Videos" submenu under our plugin's main menu.
41
+ *
42
+ * @since 1.6.5
43
+ * @param string $parent_file The parent file.
44
+ * @return string $parent_file The parent file.
45
+ */
46
+ public function parent_file( $parent_file ) {
47
+ global $submenu_file, $current_screen;
48
+
49
+ if ( 'aiovg_videos' == $current_screen->post_type ) {
50
+ $submenu_file = 'edit.php?post_type=aiovg_videos';
51
+ $parent_file = 'all-in-one-video-gallery';
52
+ }
53
+
54
+ return $parent_file;
55
+ }
56
+
57
  /**
58
  * Register the custom post type "aiovg_videos".
59
  *
107
  'hierarchical' => false,
108
  'public' => true,
109
  'show_ui' => ( current_user_can( 'administrator' ) || current_user_can( 'editor' ) ) ? true : false,
110
+ 'show_in_menu' => false,
 
 
111
  'show_in_admin_bar' => true,
112
  'show_in_nav_menus' => false,
113
  'show_in_rest' => false,
admin/welcome.php DELETED
@@ -1,77 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Welcome page.
5
- *
6
- * @link https://plugins360.com
7
- * @since 1.0.0
8
- *
9
- * @package All_In_One_Video_Gallery
10
- */
11
-
12
- // Exit if accessed directly
13
- if ( ! defined( 'WPINC' ) ) {
14
- die;
15
- }
16
-
17
- /**
18
- * AIOVG_Admin_Welcome class.
19
- *
20
- * @since 1.0.0
21
- */
22
- class AIOVG_Admin_Welcome {
23
-
24
- /**
25
- * Add welcome page sub menus.
26
- *
27
- * @since 1.0.0
28
- */
29
- public function add_welcome_menus() {
30
- add_dashboard_page(
31
- __( 'Welcome - All-in-One Video Gallery', 'all-in-one-video-gallery' ),
32
- __( 'Welcome - All-in-One Video Gallery', 'all-in-one-video-gallery' ),
33
- 'manage_aiovg_options',
34
- 'aiovg_welcome',
35
- array( $this, 'display_welcome_content' )
36
- );
37
-
38
- add_dashboard_page(
39
- __( 'Welcome - All-in-One Video Gallery', 'all-in-one-video-gallery' ),
40
- __( 'Welcome - All-in-One Video Gallery', 'all-in-one-video-gallery' ),
41
- 'manage_aiovg_options',
42
- 'aiovg_new',
43
- array( $this, 'display_welcome_content' )
44
- );
45
-
46
- add_dashboard_page(
47
- __( 'Welcome - All-in-One Video Gallery', 'all-in-one-video-gallery' ),
48
- __( 'Welcome - All-in-One Video Gallery', 'all-in-one-video-gallery' ),
49
- 'manage_aiovg_options',
50
- 'aiovg_support',
51
- array( $this, 'display_welcome_content' )
52
- );
53
-
54
- // Now remove the menus so plugins that allow customizing the admin menu don't show them
55
- remove_submenu_page( 'index.php', 'aiovg_welcome' );
56
- remove_submenu_page( 'index.php', 'aiovg_new' );
57
- remove_submenu_page( 'index.php', 'aiovg_support' );
58
- }
59
-
60
- /**
61
- * Display welcome page content.
62
- *
63
- * @since 1.0.0
64
- */
65
- public function display_welcome_content() {
66
- $tabs = array(
67
- 'aiovg_welcome' => __( 'Getting Started', 'all-in-one-video-gallery' ),
68
- 'aiovg_new' => __( 'New', 'all-in-one-video-gallery' ),
69
- 'aiovg_support' => __( 'Support', 'all-in-one-video-gallery' )
70
- );
71
-
72
- $active_tab = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : 'aiovg_welcome';
73
-
74
- require_once AIOVG_PLUGIN_DIR . 'admin/partials/welcome.php';
75
- }
76
-
77
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
all-in-one-video-gallery.php CHANGED
@@ -10,8 +10,8 @@
10
  * @wordpress-plugin
11
  * Plugin Name: All-in-One Video Gallery
12
  * Plugin URI: https://plugins360.com/all-in-one-video-gallery/
13
- * Description: No coding required. A Responsive & Lightweight video gallery plugin. HTML5 Video Player, Custom Post Type interface, Categories, Visual Gallery Builder (Gutenberg), forms to Search Videos, Social Sharing and everything you will need to build a YouTube/Vimeo like video sharing website.
14
- * Version: 1.6.4
15
  * Author: Team Plugins360
16
  * Author URI: https://plugins360.com
17
  * License: GPL-2.0+
@@ -57,8 +57,8 @@ if ( !function_exists( 'aiovg_fs' ) ) {
57
  'is_require_payment' => false,
58
  ),
59
  'menu' => array(
60
- 'slug' => 'edit.php?post_type=aiovg_videos',
61
- 'first-path' => 'index.php?page=aiovg_welcome',
62
  'support' => false,
63
  ),
64
  'is_live' => true,
@@ -76,7 +76,7 @@ if ( !function_exists( 'aiovg_fs' ) ) {
76
 
77
  // The current version of the plugin
78
  if ( !defined( 'AIOVG_PLUGIN_VERSION' ) ) {
79
- define( 'AIOVG_PLUGIN_VERSION', '1.6.4' );
80
  }
81
  // The unique identifier of the plugin
82
  if ( !defined( 'AIOVG_PLUGIN_SLUG' ) ) {
@@ -94,6 +94,8 @@ if ( !defined( 'AIOVG_PLUGIN_URL' ) ) {
94
  if ( !defined( 'AIOVG_PLUGIN_FILE_NAME' ) ) {
95
  define( 'AIOVG_PLUGIN_FILE_NAME', plugin_basename( __FILE__ ) );
96
  }
 
 
97
 
98
  if ( !function_exists( 'aiovg_activate' ) ) {
99
  /**
10
  * @wordpress-plugin
11
  * Plugin Name: All-in-One Video Gallery
12
  * Plugin URI: https://plugins360.com/all-in-one-video-gallery/
13
+ * Description: No coding required. A Responsive & Lightweight video gallery plugin. HTML5 Player, Categories, Visual Builder (Gutenberg), Search Form, Comments, Social Sharing and everything you will need to build a YouTube/Vimeo like video sharing website.
14
+ * Version: 1.6.5
15
  * Author: Team Plugins360
16
  * Author URI: https://plugins360.com
17
  * License: GPL-2.0+
57
  'is_require_payment' => false,
58
  ),
59
  'menu' => array(
60
+ 'slug' => 'all-in-one-video-gallery',
61
+ 'first-path' => 'admin.php?page=all-in-one-video-gallery',
62
  'support' => false,
63
  ),
64
  'is_live' => true,
76
 
77
  // The current version of the plugin
78
  if ( !defined( 'AIOVG_PLUGIN_VERSION' ) ) {
79
+ define( 'AIOVG_PLUGIN_VERSION', '1.6.5' );
80
  }
81
  // The unique identifier of the plugin
82
  if ( !defined( 'AIOVG_PLUGIN_SLUG' ) ) {
94
  if ( !defined( 'AIOVG_PLUGIN_FILE_NAME' ) ) {
95
  define( 'AIOVG_PLUGIN_FILE_NAME', plugin_basename( __FILE__ ) );
96
  }
97
+ // The global plugin variable
98
+ $aiovg = array();
99
 
100
  if ( !function_exists( 'aiovg_activate' ) ) {
101
  /**
blocks/blocks.php CHANGED
@@ -50,12 +50,12 @@ class AIOVG_Blocks {
50
  $videos_settings = get_option( 'aiovg_videos_settings' );
51
  $player_settings = get_option( 'aiovg_player_settings' );
52
 
53
- $fields = aiovg_get_block_fields();
54
- $videos = $fields['videos'];
55
 
56
  foreach ( $videos as $key => $section ) {
57
  foreach ( $section['fields'] as $_key => $field ) {
58
- if ( in_array( $field['name'], array( 'title', 'exclude', 'ratio', 'excerpt_length', 'show_more', 'more_label', 'more_link' ) ) ) {
59
  unset( $videos[ $key ]['fields'][ $_key ] );
60
  continue;
61
  }
@@ -70,8 +70,6 @@ class AIOVG_Blocks {
70
  'i18n' => array(
71
  'block_categories_title' => __( 'AIOVG - Video Categories', 'all-in-one-video-gallery' ),
72
  'block_categories_description' => __( 'Display a list of video categories.', 'all-in-one-video-gallery' ),
73
- 'top_categories' => __( 'Top Categories', 'all-in-one-video-gallery' ),
74
- 'categories_settings' => __( 'Categories Settings', 'all-in-one-video-gallery' ),
75
  'select_parent' => __( 'Select Parent', 'all-in-one-video-gallery' ),
76
  'select_template' => __( 'Select Template', 'all-in-one-video-gallery' ),
77
  'grid' => __( 'Grid', 'all-in-one-video-gallery' ),
@@ -94,7 +92,6 @@ class AIOVG_Blocks {
94
  'select_color' => __( 'Selected Color', 'all-in-one-video-gallery' ),
95
  'block_search_title' => __( 'AIOVG - Search Form', 'all-in-one-video-gallery' ),
96
  'block_search_description' => __( 'A videos search form for your site.', 'all-in-one-video-gallery' ),
97
- 'search_form_settings' => __( 'Search Form Settings', 'all-in-one-video-gallery' ),
98
  'vertical' => __( 'Vertical', 'all-in-one-video-gallery' ),
99
  'horizontal' => __( 'Horizontal', 'all-in-one-video-gallery' ),
100
  'search_by_categories' => __( 'Search By Categories', 'all-in-one-video-gallery' ),
@@ -103,13 +100,14 @@ class AIOVG_Blocks {
103
  'media_placeholder_title' => __( 'Add MP4, WebM, OGV, YouTube, Vimeo, Dailymotion, Facebook, etc.', 'all-in-one-video-gallery' ),
104
  'media_placeholder_name' => __( 'a video', 'all-in-one-video-gallery' ),
105
  'edit_video' => __( 'Edit video', 'all-in-one-video-gallery' ),
106
- 'general_settings' => __( 'General Settings', 'all-in-one-video-gallery' ),
107
  'width' => __( 'Width', 'all-in-one-video-gallery' ),
108
  'width_help' => __( 'In pixels. Maximum width of the player. Leave this field empty to scale 100% of its enclosing container/html element.', 'all-in-one-video-gallery' ),
109
  'ratio' => __( 'Ratio', 'all-in-one-video-gallery' ),
110
  'ratio_help' => __( "In percentage. 1 to 100. Calculate player's height using the ratio value entered.", 'all-in-one-video-gallery' ),
111
  'autoplay' => __( 'Autoplay', 'all-in-one-video-gallery' ),
112
  'loop' => __( 'Loop', 'all-in-one-video-gallery' ),
 
113
  'poster_image' => __( 'Poster Image', 'all-in-one-video-gallery' ),
114
  'select_poster_image' => __( 'Select Poster Image', 'all-in-one-video-gallery' ),
115
  'replace_image' => __( 'Replace Image', 'all-in-one-video-gallery' ),
@@ -123,8 +121,8 @@ class AIOVG_Blocks {
123
  'fullscreen' => __( 'Fullscreen', 'all-in-one-video-gallery' )
124
  ),
125
  'categories' => array(
126
- 'id' => 0,
127
  'template' => $categories_settings['template'],
 
128
  'columns' => $categories_settings['columns'],
129
  'orderby' => $categories_settings['orderby'],
130
  'order' => $categories_settings['order'],
@@ -145,6 +143,7 @@ class AIOVG_Blocks {
145
  'ratio' => $player_settings['ratio'],
146
  'autoplay' => $player_settings['autoplay'] ? true : false,
147
  'loop' => $player_settings['loop'] ? true : false,
 
148
  'playpause' => isset( $player_settings['controls']['playpause'] ),
149
  'current' => isset( $player_settings['controls']['current'] ),
150
  'progress' => isset( $player_settings['controls']['progress'] ),
@@ -224,10 +223,10 @@ class AIOVG_Blocks {
224
  ) );
225
 
226
  // Hook a render function to the videos block
227
- $fields = aiovg_get_block_fields();
228
  $attributes = array();
229
 
230
- foreach ( $fields['videos'] as $key => $section ) {
231
  foreach ( $section['fields'] as $field ) {
232
  if ( in_array( $field['name'], array( 'title', 'exclude', 'ratio', 'excerpt_length', 'show_more', 'more_label', 'more_link' ) ) ) {
233
  continue;
@@ -296,6 +295,9 @@ class AIOVG_Blocks {
296
  'loop' => array(
297
  'type' => 'boolean'
298
  ),
 
 
 
299
  'playpause' => array(
300
  'type' => 'boolean'
301
  ),
@@ -467,4 +469,4 @@ class AIOVG_Blocks {
467
  return implode( ' ', $attributes );
468
  }
469
 
470
- }
50
  $videos_settings = get_option( 'aiovg_videos_settings' );
51
  $player_settings = get_option( 'aiovg_player_settings' );
52
 
53
+ $fields = aiovg_get_shortcode_fields();
54
+ $videos = $fields['videos']['sections'];
55
 
56
  foreach ( $videos as $key => $section ) {
57
  foreach ( $section['fields'] as $_key => $field ) {
58
+ if ( in_array( $field['name'], array( 'title', 'include', 'exclude', 'ratio', 'excerpt_length', 'show_more', 'more_label', 'more_link' ) ) ) {
59
  unset( $videos[ $key ]['fields'][ $_key ] );
60
  continue;
61
  }
70
  'i18n' => array(
71
  'block_categories_title' => __( 'AIOVG - Video Categories', 'all-in-one-video-gallery' ),
72
  'block_categories_description' => __( 'Display a list of video categories.', 'all-in-one-video-gallery' ),
 
 
73
  'select_parent' => __( 'Select Parent', 'all-in-one-video-gallery' ),
74
  'select_template' => __( 'Select Template', 'all-in-one-video-gallery' ),
75
  'grid' => __( 'Grid', 'all-in-one-video-gallery' ),
92
  'select_color' => __( 'Selected Color', 'all-in-one-video-gallery' ),
93
  'block_search_title' => __( 'AIOVG - Search Form', 'all-in-one-video-gallery' ),
94
  'block_search_description' => __( 'A videos search form for your site.', 'all-in-one-video-gallery' ),
 
95
  'vertical' => __( 'Vertical', 'all-in-one-video-gallery' ),
96
  'horizontal' => __( 'Horizontal', 'all-in-one-video-gallery' ),
97
  'search_by_categories' => __( 'Search By Categories', 'all-in-one-video-gallery' ),
100
  'media_placeholder_title' => __( 'Add MP4, WebM, OGV, YouTube, Vimeo, Dailymotion, Facebook, etc.', 'all-in-one-video-gallery' ),
101
  'media_placeholder_name' => __( 'a video', 'all-in-one-video-gallery' ),
102
  'edit_video' => __( 'Edit video', 'all-in-one-video-gallery' ),
103
+ 'general_settings' => __( 'General', 'all-in-one-video-gallery' ),
104
  'width' => __( 'Width', 'all-in-one-video-gallery' ),
105
  'width_help' => __( 'In pixels. Maximum width of the player. Leave this field empty to scale 100% of its enclosing container/html element.', 'all-in-one-video-gallery' ),
106
  'ratio' => __( 'Ratio', 'all-in-one-video-gallery' ),
107
  'ratio_help' => __( "In percentage. 1 to 100. Calculate player's height using the ratio value entered.", 'all-in-one-video-gallery' ),
108
  'autoplay' => __( 'Autoplay', 'all-in-one-video-gallery' ),
109
  'loop' => __( 'Loop', 'all-in-one-video-gallery' ),
110
+ 'muted' => __( 'Muted', 'all-in-one-video-gallery' ),
111
  'poster_image' => __( 'Poster Image', 'all-in-one-video-gallery' ),
112
  'select_poster_image' => __( 'Select Poster Image', 'all-in-one-video-gallery' ),
113
  'replace_image' => __( 'Replace Image', 'all-in-one-video-gallery' ),
121
  'fullscreen' => __( 'Fullscreen', 'all-in-one-video-gallery' )
122
  ),
123
  'categories' => array(
 
124
  'template' => $categories_settings['template'],
125
+ 'id' => 0,
126
  'columns' => $categories_settings['columns'],
127
  'orderby' => $categories_settings['orderby'],
128
  'order' => $categories_settings['order'],
143
  'ratio' => $player_settings['ratio'],
144
  'autoplay' => $player_settings['autoplay'] ? true : false,
145
  'loop' => $player_settings['loop'] ? true : false,
146
+ 'muted' => $player_settings['muted'] ? true : false,
147
  'playpause' => isset( $player_settings['controls']['playpause'] ),
148
  'current' => isset( $player_settings['controls']['current'] ),
149
  'progress' => isset( $player_settings['controls']['progress'] ),
223
  ) );
224
 
225
  // Hook a render function to the videos block
226
+ $fields = aiovg_get_shortcode_fields();
227
  $attributes = array();
228
 
229
+ foreach ( $fields['videos']['sections'] as $key => $section ) {
230
  foreach ( $section['fields'] as $field ) {
231
  if ( in_array( $field['name'], array( 'title', 'exclude', 'ratio', 'excerpt_length', 'show_more', 'more_label', 'more_link' ) ) ) {
232
  continue;
295
  'loop' => array(
296
  'type' => 'boolean'
297
  ),
298
+ 'muted' => array(
299
+ 'type' => 'boolean'
300
+ ),
301
  'playpause' => array(
302
  'type' => 'boolean'
303
  ),
469
  return implode( ' ', $attributes );
470
  }
471
 
472
+ }
blocks/dist/blocks.build.js CHANGED
@@ -1 +1 @@
1
- !function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=23)}([function(e,t,n){var o=n(15),r="object"==typeof self&&self&&self.Object===Object&&self,i=o||r||Function("return this")();e.exports=i},function(e,t,n){function o(e,t){var n=i(e,t);return r(n)?n:void 0}var r=n(47),i=n(53);e.exports=o},function(e,t,n){function o(e){return null==e?void 0===e?c:l:u&&u in Object(e)?i(e):a(e)}var r=n(11),i=n(49),a=n(50),l="[object Null]",c="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=o},function(e,t){function n(e){return null!=e&&"object"==typeof e}e.exports=n},function(e,t,n){function o(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}var r=n(37),i=n(38),a=n(39),l=n(40),c=n(41);o.prototype.clear=r,o.prototype.delete=i,o.prototype.get=a,o.prototype.has=l,o.prototype.set=c,e.exports=o},function(e,t,n){function o(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}var r=n(13);e.exports=o},function(e,t){function n(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=n},function(e,t,n){var o=n(1),r=o(Object,"create");e.exports=r},function(e,t,n){function o(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}var r=n(62);e.exports=o},function(e,t,n){"use strict";function o(){var e={};for(var t in aiovg_blocks.videos){var n=aiovg_blocks.videos[t].fields;for(var o in n){e[n[o].name]={type:r(n[o].type),default:n[o].value}}}return e}function r(e){var t="string";return"categories"==e?t="array":"number"==e?t="number":"checkbox"==e&&(t="boolean"),t}function i(e){var t,n,o={},r=[];for(n=0;n<e.length;n+=1)o[e[n].id]=n,e[n].children=[];for(n=0;n<e.length;n+=1)t=e[n],t.parent>0?e[o[t.parent]].children.push(t):r.push(t);return r}function a(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";for(t=0;t<e.length;t+=1)n.push({label:o+e[t].name,value:e[t].id}),e[t].children.length>0&&a(e[t].children,n,o.trim()+"--- ");return n}t.c=o,t.b=i,t.a=a},function(e,t,n){var o=n(1),r=n(0),i=o(r,"Map");e.exports=i},function(e,t,n){var o=n(0),r=o.Symbol;e.exports=r},function(e,t){var n=Array.isArray;e.exports=n},function(e,t){function n(e,t){return e===t||e!==e&&t!==t}e.exports=n},function(e,t,n){function o(e){if(!i(e))return!1;var t=r(e);return t==l||t==c||t==a||t==u}var r=n(2),i=n(6),a="[object AsyncFunction]",l="[object Function]",c="[object GeneratorFunction]",u="[object Proxy]";e.exports=o},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(t,n(48))},function(e,t){function n(e){if(null!=e){try{return r.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var o=Function.prototype,r=o.toString;e.exports=n},function(e,t,n){function o(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}var r=n(54),i=n(61),a=n(63),l=n(64),c=n(65);o.prototype.clear=r,o.prototype.delete=i,o.prototype.get=a,o.prototype.has=l,o.prototype.set=c,e.exports=o},function(e,t,n){function o(e,t,n,o,u,s){var p=n&l,f=e.length,b=t.length;if(f!=b&&!(p&&b>f))return!1;var v=s.get(e);if(v&&s.get(t))return v==t;var h=-1,g=!0,d=n&c?new r:void 0;for(s.set(e,t),s.set(t,e);++h<f;){var y=e[h],_=t[h];if(o)var m=p?o(_,y,h,t,e,s):o(y,_,h,e,t,s);if(void 0!==m){if(m)continue;g=!1;break}if(d){if(!i(t,function(e,t){if(!a(d,t)&&(y===e||u(y,e,n,o,s)))return d.push(t)})){g=!1;break}}else if(y!==_&&!u(y,_,n,o,s)){g=!1;break}}return s.delete(e),s.delete(t),g}var r=n(66),i=n(69),a=n(70),l=1,c=2;e.exports=o},function(e,t,n){(function(e){var o=n(0),r=n(87),i="object"==typeof t&&t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,l=a&&a.exports===i,c=l?o.Buffer:void 0,u=c?c.isBuffer:void 0,s=u||r;e.exports=s}).call(t,n(20)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var o=n(89),r=n(90),i=n(91),a=i&&i.isTypedArray,l=a?r(a):o;e.exports=l},function(e,t){function n(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}var o=9007199254740991;e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(24),n(26),n(28),n(30)},function(e,t,n){"use strict";var o=n(25),r=wp.i18n.__;(0,wp.blocks.registerBlockType)("aiovg/categories",{title:aiovg_blocks.i18n.block_categories_title,description:aiovg_blocks.i18n.block_categories_description,icon:"category",category:"all-in-one-video-gallery",keywords:[r("categories"),r("gallery"),r("all-in-one-video-gallery")],attributes:{id:{type:"number",default:aiovg_blocks.categories.id},template:{type:"string",default:aiovg_blocks.categories.template},columns:{type:"number",default:aiovg_blocks.categories.columns},orderby:{type:"string",default:aiovg_blocks.categories.orderby},order:{type:"string",default:aiovg_blocks.categories.order},hierarchical:{type:"boolean",default:aiovg_blocks.categories.hierarchical},show_description:{type:"boolean",default:aiovg_blocks.categories.show_description},show_count:{type:"boolean",default:aiovg_blocks.categories.show_count},hide_empty:{type:"boolean",default:aiovg_blocks.categories.hide_empty}},supports:{customClassName:!1},edit:o.a,save:function(e){return null}})},function(e,t,n){"use strict";function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function l(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=n(9),u=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),s=wp.components,p=s.Disabled,f=s.PanelBody,b=s.RangeControl,v=s.SelectControl,h=s.ServerSideRender,g=s.ToggleControl,d=wp.element,y=d.Component,_=d.Fragment,m=wp.editor.InspectorControls,w=wp.data.withSelect,k=function(e){function t(){i(this,t);var e=a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.toggleAttribute=e.toggleAttribute.bind(e),e}return l(t,e),u(t,[{key:"getCategoriesTree",value:function(){var e=this.props.categoriesList,t=[{label:"-- "+aiovg_blocks.i18n.top_categories+" --",value:0}];if(e&&e.length>0){var n=Object(c.b)(e),o=Object(c.a)(n);t=[].concat(r(t),r(o))}return t}},{key:"toggleAttribute",value:function(e){var t=this;return function(n){t.props.setAttributes(o({},e,n))}}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes,o=t.id,r=t.template,i=t.columns,a=t.orderby,l=t.order,c=t.hierarchical,u=t.show_description,s=t.show_count,d=t.hide_empty,y=this.getCategoriesTree();return wp.element.createElement(_,null,wp.element.createElement(m,null,wp.element.createElement(f,{title:aiovg_blocks.i18n.categories_settings},wp.element.createElement(v,{label:aiovg_blocks.i18n.select_parent,value:o,options:y,onChange:function(e){return n({id:Number(e)})}}),wp.element.createElement(v,{label:aiovg_blocks.i18n.select_template,value:r,options:[{label:aiovg_blocks.i18n.grid,value:"grid"},{label:aiovg_blocks.i18n.list,value:"list"}],onChange:function(e){return n({template:e})}}),"grid"==r&&wp.element.createElement(b,{label:aiovg_blocks.i18n.columns,value:i,min:1,max:12,onChange:function(e){return n({columns:e})}}),wp.element.createElement(v,{label:aiovg_blocks.i18n.order_by,value:a,options:[{label:aiovg_blocks.i18n.id,value:"id"},{label:aiovg_blocks.i18n.count,value:"count"},{label:aiovg_blocks.i18n.name,value:"name"},{label:aiovg_blocks.i18n.slug,value:"slug"}],onChange:function(e){return n({orderby:e})}}),wp.element.createElement(v,{label:aiovg_blocks.i18n.order,value:l,options:[{label:aiovg_blocks.i18n.asc,value:"asc"},{label:aiovg_blocks.i18n.desc,value:"desc"}],onChange:function(e){return n({order:e})}}),"list"==r&&wp.element.createElement(g,{label:aiovg_blocks.i18n.show_hierarchy,checked:c,onChange:this.toggleAttribute("hierarchical")}),"grid"==r&&wp.element.createElement(g,{label:aiovg_blocks.i18n.show_description,checked:u,onChange:this.toggleAttribute("show_description")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.show_videos_count,checked:s,onChange:this.toggleAttribute("show_count")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.hide_empty_categories,checked:d,onChange:this.toggleAttribute("hide_empty")}))),wp.element.createElement(p,null,wp.element.createElement(h,{block:"aiovg/categories",attributes:t})))}}]),t}(y);t.a=w(function(e){return{categoriesList:(0,e("core").getEntityRecords)("taxonomy","aiovg_categories",{per_page:100})}})(k)},function(e,t,n){"use strict";var o=n(27),r=wp.i18n.__;(0,wp.blocks.registerBlockType)("aiovg/search",{title:aiovg_blocks.i18n.block_search_title,description:aiovg_blocks.i18n.block_search_description,icon:"search",category:"all-in-one-video-gallery",keywords:[r("search"),r("videos"),r("all-in-one-video-gallery")],attributes:{template:{type:"string",default:aiovg_blocks.search.template},category:{type:"boolean",default:aiovg_blocks.search.category}},supports:{customClassName:!1},edit:o.a,save:function(e){return null}})},function(e,t,n){"use strict";function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),c=wp.components,u=c.Disabled,s=c.PanelBody,p=c.SelectControl,f=c.ServerSideRender,b=c.ToggleControl,v=wp.element,h=v.Component,g=v.Fragment,d=wp.editor.InspectorControls,y=function(e){function t(){r(this,t);var e=i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.toggleAttribute=e.toggleAttribute.bind(e),e}return a(t,e),l(t,[{key:"toggleAttribute",value:function(e){var t=this;return function(n){t.props.setAttributes(o({},e,n))}}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes,o=t.template,r=t.category;return wp.element.createElement(g,null,wp.element.createElement(d,null,wp.element.createElement(s,{title:aiovg_blocks.i18n.search_form_settings},wp.element.createElement(p,{label:aiovg_blocks.i18n.select_template,value:o,options:[{label:aiovg_blocks.i18n.vertical,value:"vertical"},{label:aiovg_blocks.i18n.horizontal,value:"horizontal"}],onChange:function(e){return n({template:e})}}),wp.element.createElement(b,{label:aiovg_blocks.i18n.search_by_categories,checked:r,onChange:this.toggleAttribute("category")}))),wp.element.createElement(u,null,wp.element.createElement(f,{block:"aiovg/search",attributes:t})))}}]),t}(h);t.a=y},function(e,t,n){"use strict";var o=n(29),r=wp.i18n.__;(0,wp.blocks.registerBlockType)("aiovg/video",{title:aiovg_blocks.i18n.block_video_title,description:aiovg_blocks.i18n.block_video_description,icon:"format-video",category:"all-in-one-video-gallery",keywords:[r("video"),r("player"),r("all-in-one-video-gallery")],attributes:{src:{type:"string"},poster:{type:"string"},width:{type:"number",default:aiovg_blocks.video.width},ratio:{type:"number",default:aiovg_blocks.video.ratio},autoplay:{type:"boolean",default:aiovg_blocks.video.autoplay},loop:{type:"boolean",default:aiovg_blocks.video.loop},playpause:{type:"boolean",default:aiovg_blocks.video.playpause},current:{type:"boolean",default:aiovg_blocks.video.current},progress:{type:"boolean",default:aiovg_blocks.video.progress},duration:{type:"boolean",default:aiovg_blocks.video.duration},volume:{type:"boolean",default:aiovg_blocks.video.volume},fullscreen:{type:"boolean",default:aiovg_blocks.video.fullscreen}},supports:{customClassName:!1},edit:o.a,save:function(e){return null}})},function(e,t,n){"use strict";function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),c=wp.components,u=c.BaseControl,s=c.Button,p=c.Disabled,f=c.IconButton,b=c.PanelBody,v=c.ServerSideRender,h=c.TextControl,g=c.ToggleControl,d=c.Toolbar,y=c.withNotices,_=wp.element,m=_.Component,w=_.Fragment,k=_.createRef,j=wp.editor,x=j.BlockControls,O=j.InspectorControls,E=j.MediaPlaceholder,C=j.MediaUpload,A=function(e){function t(){r(this,t);var e=i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.state={editing:!e.props.attributes.src},e.videoPlayer=k(),e.toggleAttribute=e.toggleAttribute.bind(e),e.onSelectURL=e.onSelectURL.bind(e),e.onSelectPoster=e.onSelectPoster.bind(e),e.onRemovePoster=e.onRemovePoster.bind(e),e}return a(t,e),l(t,[{key:"toggleAttribute",value:function(e){var t=this;return function(n){t.props.setAttributes(o({},e,n))}}},{key:"onSelectURL",value:function(e){var t=this.props,n=t.attributes,o=t.setAttributes;e!==n.src&&o({src:e}),this.setState({editing:!1})}},{key:"onSelectPoster",value:function(e){(0,this.props.setAttributes)({poster:e.url})}},{key:"onRemovePoster",value:function(){(0,this.props.setAttributes)({poster:""})}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,o=t.setAttributes,r=t.className,i=t.noticeOperations,a=t.noticeUI,l=n.poster,c=n.width,y=n.ratio,_=n.autoplay,m=n.loop,k=n.playpause,j=n.current,A=n.progress,S=n.duration,P=n.volume,T=n.fullscreen,z=this.state.editing,R=function(){e.setState({editing:!0})},M=function(t){if(!t||!t.url)return o({src:void 0}),void R();o({src:t.url}),e.setState({src:t.url,editing:!1})};return z?wp.element.createElement(E,{icon:"media-video",labels:{title:aiovg_blocks.i18n.media_placeholder_title,name:aiovg_blocks.i18n.media_placeholder_name},className:r,accept:"video/*",type:"video",value:n,onSelect:M,onSelectURL:this.onSelectURL,notices:a,onError:i.createErrorNotice}):wp.element.createElement(w,null,wp.element.createElement(x,null,wp.element.createElement(d,null,wp.element.createElement(f,{className:"components-icon-button components-toolbar__control",label:aiovg_blocks.i18n.edit_video,onClick:R,icon:"edit"}))),wp.element.createElement(O,null,wp.element.createElement(b,{title:aiovg_blocks.i18n.general_settings},wp.element.createElement(h,{label:aiovg_blocks.i18n.width,help:aiovg_blocks.i18n.width_help,value:c>0?c:"",onChange:function(e){return o({width:Number(e)})}}),wp.element.createElement(h,{label:aiovg_blocks.i18n.ratio,help:aiovg_blocks.i18n.ratio_help,value:y,onChange:function(e){return o({ratio:Number(e)})}}),wp.element.createElement(g,{label:aiovg_blocks.i18n.autoplay,checked:_,onChange:this.toggleAttribute("autoplay")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.loop,checked:m,onChange:this.toggleAttribute("loop")}),wp.element.createElement(u,{className:"editor-video-poster-control",label:aiovg_blocks.i18n.poster_image},wp.element.createElement(C,{title:aiovg_blocks.i18n.select_poster_image,onSelect:this.onSelectPoster,type:"image",render:function(e){var t=e.open;return wp.element.createElement(s,{isDefault:!0,onClick:t},l?aiovg_blocks.i18n.replace_image:aiovg_blocks.i18n.select_poster_image)}}),!!l&&wp.element.createElement(s,{onClick:this.onRemovePoster,isLink:!0,isDestructive:!0},aiovg_blocks.i18n.remove_poster_image))),wp.element.createElement(b,{title:aiovg_blocks.i18n.player_controls},wp.element.createElement(g,{label:aiovg_blocks.i18n.play_pause,checked:k,onChange:this.toggleAttribute("playpause")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.current_time,checked:j,onChange:this.toggleAttribute("current")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.progressbar,checked:A,onChange:this.toggleAttribute("progress")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.duration,checked:S,onChange:this.toggleAttribute("duration")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.volume,checked:P,onChange:this.toggleAttribute("volume")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.fullscreen,checked:T,onChange:this.toggleAttribute("fullscreen")}))),wp.element.createElement(p,null,wp.element.createElement(v,{block:"aiovg/video",attributes:n})))}}]),t}(m);t.a=y(A)},function(e,t,n){"use strict";var o=n(9),r=n(31),i=wp.i18n.__;(0,wp.blocks.registerBlockType)("aiovg/videos",{title:aiovg_blocks.i18n.block_videos_title,description:aiovg_blocks.i18n.block_videos_description,icon:"playlist-video",category:"all-in-one-video-gallery",keywords:[i("videos"),i("gallery"),i("all-in-one-video-gallery")],attributes:Object(o.c)(),supports:{customClassName:!1},edit:r.a,save:function(e){return null}})},function(e,t,n){"use strict";function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function l(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=n(9),u=n(32),s=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),p=wp.components,f=p.Disabled,b=p.PanelBody,v=p.RangeControl,h=p.SelectControl,g=p.TextControl,d=p.TextareaControl,y=p.ToggleControl,_=wp.element,m=_.Component,w=_.Fragment,k=wp.editor,j=k.InspectorControls,x=k.PanelColorSettings,O=wp.hooks.applyFilters,E=wp.data.withSelect,C=function(e){function t(){i(this,t);var e=a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.onChange=e.onChange.bind(e),e.toggleAttribute=e.toggleAttribute.bind(e),e.initializeGallery=e.initializeGallery.bind(e),e}return l(t,e),s(t,[{key:"getControl",value:function(e,t){var n=this.props.attributes,o=e.placeholder?e.placeholder:"",r=e.description?e.description:"";switch(e.type){case"categories":var i=this.getCategoriesTree();return this.canShowControl(e.name)&&wp.element.createElement(h,{multiple:!0,key:t,label:e.label,help:r,options:i,value:n[e.name],onChange:this.onChange(e.name)});case"number":return this.canShowControl(e.name)&&wp.element.createElement(v,{key:t,label:e.label,help:r,placeholder:o,value:n[e.name],min:e.min,max:e.max,onChange:this.onChange(e.name)});case"textarea":return this.canShowControl(e.name)&&wp.element.createElement(d,{key:t,label:e.label,help:r,placeholder:o,value:n[e.name],onChange:this.onChange(e.name)});case"select":case"radio":var a=[];for(var l in e.options)a.push({label:e.options[l],value:l});return this.canShowControl(e.name)&&wp.element.createElement(h,{key:t,label:e.label,help:r,options:a,value:n[e.name],onChange:this.onChange(e.name)});case"checkbox":return this.canShowControl(e.name)&&wp.element.createElement(y,{key:t,label:e.label,help:r,checked:n[e.name],onChange:this.toggleAttribute(e.name)});case"color":return this.canShowControl(e.name)&&wp.element.createElement(x,{key:t,title:e.label,colorSettings:[{label:aiovg_blocks.i18n.select_color,value:n[e.name],onChange:this.onChange(e.name)}]});default:return this.canShowControl(e.name)&&wp.element.createElement(g,{key:t,label:e.label,help:r,placeholder:o,value:n[e.name],onChange:this.onChange(e.name)})}}},{key:"canShowPanel",value:function(e){var t=this.props.attributes;return O("aiovg_block_toggle_panels",!0,e,t)}},{key:"canShowControl",value:function(e){var t=this.props.attributes;return O("aiovg_block_toggle_controls",!0,e,t)}},{key:"onChange",value:function(e){var t=this;return function(n){t.props.setAttributes(r({},e,n))}}},{key:"toggleAttribute",value:function(e){var t=this;return function(n){t.props.setAttributes(r({},e,n))}}},{key:"getCategoriesTree",value:function(){var e=this.props.categoriesList,t=[];if(e&&e.length>0){var n=Object(c.b)(e),r=Object(c.a)(n);t=[].concat(o(t),o(r))}return t}},{key:"initializeGallery",value:function(){O("aiovg_block_init",this.props.attributes)}},{key:"render",value:function(){var e=this,t=this.props.attributes,n=aiovg_blocks.videos;return wp.element.createElement(w,null,wp.element.createElement(j,null,Object.keys(n).map(function(t,o){return e.canShowPanel(t)&&wp.element.createElement(b,{key:"aiovg-block-panel-"+o,title:n[t].title,initialOpen:0==o,className:"aiovg-block-panel"},Object.keys(n[t].fields).map(function(o,r){return e.getControl(n[t].fields[o],"aiovg-block-control-"+r)}))})),wp.element.createElement(f,null,wp.element.createElement(u.a,{block:"aiovg/videos",attributes:t,onChange:this.initializeGallery})))}}]),t}(m);t.a=E(function(e){return{categoriesList:(0,e("core").getEntityRecords)("taxonomy","aiovg_categories",{per_page:100})}})(C)},function(e,t,n){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return w("/wp/v2/block-renderer/"+e,Object.assign({context:"edit"},null!==t?{attributes:t}:{},n))}var l=n(33),c=n.n(l),u=n(102),s=n.n(u),p=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),f=wp.i18n,b=f.__,v=f.sprintf,h=wp.components,g=h.Placeholder,d=h.Spinner,y=wp.element,_=y.Component,m=y.RawHTML,w=wp.url.addQueryArgs,k=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={response:null},n}return i(t,e),p(t,[{key:"componentDidMount",value:function(){this.isStillMounted=!0,this.fetch(this.props),this.fetch=s()(this.fetch,500)}},{key:"componentWillUnmount",value:function(){this.isStillMounted=!1}},{key:"componentDidUpdate",value:function(e,t){c()(e,this.props)||this.fetch(this.props),this.state.response!==t.response&&this.props.onChange&&this.props.onChange()}},{key:"fetch",value:function(e){var t=this;if(this.isStillMounted){null!==this.state.response&&this.setState({response:null});var n=e.block,o=e.attributes,r=void 0===o?null:o,i=e.urlQueryArgs,l=void 0===i?{}:i,c=a(n,r,l),u=this.currentFetchRequest=wp.apiFetch({path:c}).then(function(e){t.isStillMounted&&u===t.currentFetchRequest&&e&&e.rendered&&t.setState({response:e.rendered})}).catch(function(e){t.isStillMounted&&u===t.currentFetchRequest&&t.setState({response:{error:!0,errorMsg:e.message}})});return u}}},{key:"render",value:function(){var e=this.state.response;if(!e)return wp.element.createElement(g,null,wp.element.createElement(d,null));if(e.error){var t=v(b("Error loading block: %s"),e.errorMsg);return wp.element.createElement(g,null,t)}return e.length?wp.element.createElement(m,{key:"html"},e):wp.element.createElement(g,null,b("No results found."))}}]),t}(_);t.a=k},function(e,t,n){function o(e,t){return r(e,t)}var r=n(34);e.exports=o},function(e,t,n){function o(e,t,n,a,l){return e===t||(null==e||null==t||!i(e)&&!i(t)?e!==e&&t!==t:r(e,t,n,a,o,l))}var r=n(35),i=n(3);e.exports=o},function(e,t,n){function o(e,t,n,o,g,y){var _=u(e),m=u(t),w=_?v:c(e),k=m?v:c(t);w=w==b?h:w,k=k==b?h:k;var j=w==h,x=k==h,O=w==k;if(O&&s(e)){if(!s(t))return!1;_=!0,j=!1}if(O&&!j)return y||(y=new r),_||p(e)?i(e,t,n,o,g,y):a(e,t,w,n,o,g,y);if(!(n&f)){var E=j&&d.call(e,"__wrapped__"),C=x&&d.call(t,"__wrapped__");if(E||C){var A=E?e.value():e,S=C?t.value():t;return y||(y=new r),g(A,S,n,o,y)}}return!!O&&(y||(y=new r),l(e,t,n,o,g,y))}var r=n(36),i=n(18),a=n(71),l=n(75),c=n(97),u=n(12),s=n(19),p=n(21),f=1,b="[object Arguments]",v="[object Array]",h="[object Object]",g=Object.prototype,d=g.hasOwnProperty;e.exports=o},function(e,t,n){function o(e){var t=this.__data__=new r(e);this.size=t.size}var r=n(4),i=n(42),a=n(43),l=n(44),c=n(45),u=n(46);o.prototype.clear=i,o.prototype.delete=a,o.prototype.get=l,o.prototype.has=c,o.prototype.set=u,e.exports=o},function(e,t){function n(){this.__data__=[],this.size=0}e.exports=n},function(e,t,n){function o(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():a.call(t,n,1),--this.size,!0)}var r=n(5),i=Array.prototype,a=i.splice;e.exports=o},function(e,t,n){function o(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}var r=n(5);e.exports=o},function(e,t,n){function o(e){return r(this.__data__,e)>-1}var r=n(5);e.exports=o},function(e,t,n){function o(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}var r=n(5);e.exports=o},function(e,t,n){function o(){this.__data__=new r,this.size=0}var r=n(4);e.exports=o},function(e,t){function n(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}e.exports=n},function(e,t){function n(e){return this.__data__.get(e)}e.exports=n},function(e,t){function n(e){return this.__data__.has(e)}e.exports=n},function(e,t,n){function o(e,t){var n=this.__data__;if(n instanceof r){var o=n.__data__;if(!i||o.length<l-1)return o.push([e,t]),this.size=++n.size,this;n=this.__data__=new a(o)}return n.set(e,t),this.size=n.size,this}var r=n(4),i=n(10),a=n(17),l=200;e.exports=o},function(e,t,n){function o(e){return!(!a(e)||i(e))&&(r(e)?v:u).test(l(e))}var r=n(14),i=n(51),a=n(6),l=n(16),c=/[\\^$.*+?()[\]{}|]/g,u=/^\[object .+?Constructor\]$/,s=Function.prototype,p=Object.prototype,f=s.toString,b=p.hasOwnProperty,v=RegExp("^"+f.call(b).replace(c,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=o},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"===typeof window&&(n=window)}e.exports=n},function(e,t,n){function o(e){var t=a.call(e,c),n=e[c];try{e[c]=void 0;var o=!0}catch(e){}var r=l.call(e);return o&&(t?e[c]=n:delete e[c]),r}var r=n(11),i=Object.prototype,a=i.hasOwnProperty,l=i.toString,c=r?r.toStringTag:void 0;e.exports=o},function(e,t){function n(e){return r.call(e)}var o=Object.prototype,r=o.toString;e.exports=n},function(e,t,n){function o(e){return!!i&&i in e}var r=n(52),i=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=o},function(e,t,n){var o=n(0),r=o["__core-js_shared__"];e.exports=r},function(e,t){function n(e,t){return null==e?void 0:e[t]}e.exports=n},function(e,t,n){function o(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}var r=n(55),i=n(4),a=n(10);e.exports=o},function(e,t,n){function o(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}var r=n(56),i=n(57),a=n(58),l=n(59),c=n(60);o.prototype.clear=r,o.prototype.delete=i,o.prototype.get=a,o.prototype.has=l,o.prototype.set=c,e.exports=o},function(e,t,n){function o(){this.__data__=r?r(null):{},this.size=0}var r=n(7);e.exports=o},function(e,t){function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}e.exports=n},function(e,t,n){function o(e){var t=this.__data__;if(r){var n=t[e];return n===i?void 0:n}return l.call(t,e)?t[e]:void 0}var r=n(7),i="__lodash_hash_undefined__",a=Object.prototype,l=a.hasOwnProperty;e.exports=o},function(e,t,n){function o(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}var r=n(7),i=Object.prototype,a=i.hasOwnProperty;e.exports=o},function(e,t,n){function o(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?i:t,this}var r=n(7),i="__lodash_hash_undefined__";e.exports=o},function(e,t,n){function o(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}var r=n(8);e.exports=o},function(e,t){function n(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}e.exports=n},function(e,t,n){function o(e){return r(this,e).get(e)}var r=n(8);e.exports=o},function(e,t,n){function o(e){return r(this,e).has(e)}var r=n(8);e.exports=o},function(e,t,n){function o(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}var r=n(8);e.exports=o},function(e,t,n){function o(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}var r=n(17),i=n(67),a=n(68);o.prototype.add=o.prototype.push=i,o.prototype.has=a,e.exports=o},function(e,t){function n(e){return this.__data__.set(e,o),this}var o="__lodash_hash_undefined__";e.exports=n},function(e,t){function n(e){return this.__data__.has(e)}e.exports=n},function(e,t){function n(e,t){for(var n=-1,o=null==e?0:e.length;++n<o;)if(t(e[n],n,e))return!0;return!1}e.exports=n},function(e,t){function n(e,t){return e.has(t)}e.exports=n},function(e,t,n){function o(e,t,n,o,r,j,O){switch(n){case k:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case w:return!(e.byteLength!=t.byteLength||!j(new i(e),new i(t)));case f:case b:case g:return a(+e,+t);case v:return e.name==t.name&&e.message==t.message;case d:case _:return e==t+"";case h:var E=c;case y:var C=o&s;if(E||(E=u),e.size!=t.size&&!C)return!1;var A=O.get(e);if(A)return A==t;o|=p,O.set(e,t);var S=l(E(e),E(t),o,r,j,O);return O.delete(e),S;case m:if(x)return x.call(e)==x.call(t)}return!1}var r=n(11),i=n(72),a=n(13),l=n(18),c=n(73),u=n(74),s=1,p=2,f="[object Boolean]",b="[object Date]",v="[object Error]",h="[object Map]",g="[object Number]",d="[object RegExp]",y="[object Set]",_="[object String]",m="[object Symbol]",w="[object ArrayBuffer]",k="[object DataView]",j=r?r.prototype:void 0,x=j?j.valueOf:void 0;e.exports=o},function(e,t,n){var o=n(0),r=o.Uint8Array;e.exports=r},function(e,t){function n(e){var t=-1,n=Array(e.size);return e.forEach(function(e,o){n[++t]=[o,e]}),n}e.exports=n},function(e,t){function n(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}e.exports=n},function(e,t,n){function o(e,t,n,o,a,c){var u=n&i,s=r(e),p=s.length;if(p!=r(t).length&&!u)return!1;for(var f=p;f--;){var b=s[f];if(!(u?b in t:l.call(t,b)))return!1}var v=c.get(e);if(v&&c.get(t))return v==t;var h=!0;c.set(e,t),c.set(t,e);for(var g=u;++f<p;){b=s[f];var d=e[b],y=t[b];if(o)var _=u?o(y,d,b,t,e,c):o(d,y,b,e,t,c);if(!(void 0===_?d===y||a(d,y,n,o,c):_)){h=!1;break}g||(g="constructor"==b)}if(h&&!g){var m=e.constructor,w=t.constructor;m!=w&&"constructor"in e&&"constructor"in t&&!("function"==typeof m&&m instanceof m&&"function"==typeof w&&w instanceof w)&&(h=!1)}return c.delete(e),c.delete(t),h}var r=n(76),i=1,a=Object.prototype,l=a.hasOwnProperty;e.exports=o},function(e,t,n){function o(e){return r(e,a,i)}var r=n(77),i=n(79),a=n(82);e.exports=o},function(e,t,n){function o(e,t,n){var o=t(e);return i(e)?o:r(o,n(e))}var r=n(78),i=n(12);e.exports=o},function(e,t){function n(e,t){for(var n=-1,o=t.length,r=e.length;++n<o;)e[r+n]=t[n];return e}e.exports=n},function(e,t,n){var o=n(80),r=n(81),i=Object.prototype,a=i.propertyIsEnumerable,l=Object.getOwnPropertySymbols,c=l?function(e){return null==e?[]:(e=Object(e),o(l(e),function(t){return a.call(e,t)}))}:r;e.exports=c},function(e,t){function n(e,t){for(var n=-1,o=null==e?0:e.length,r=0,i=[];++n<o;){var a=e[n];t(a,n,e)&&(i[r++]=a)}return i}e.exports=n},function(e,t){function n(){return[]}e.exports=n},function(e,t,n){function o(e){return a(e)?r(e):i(e)}var r=n(83),i=n(92),a=n(96);e.exports=o},function(e,t,n){function o(e,t){var n=a(e),o=!n&&i(e),s=!n&&!o&&l(e),f=!n&&!o&&!s&&u(e),b=n||o||s||f,v=b?r(e.length,String):[],h=v.length;for(var g in e)!t&&!p.call(e,g)||b&&("length"==g||s&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||c(g,h))||v.push(g);return v}var r=n(84),i=n(85),a=n(12),l=n(19),c=n(88),u=n(21),s=Object.prototype,p=s.hasOwnProperty;e.exports=o},function(e,t){function n(e,t){for(var n=-1,o=Array(e);++n<e;)o[n]=t(n);return o}e.exports=n},function(e,t,n){var o=n(86),r=n(3),i=Object.prototype,a=i.hasOwnProperty,l=i.propertyIsEnumerable,c=o(function(){return arguments}())?o:function(e){return r(e)&&a.call(e,"callee")&&!l.call(e,"callee")};e.exports=c},function(e,t,n){function o(e){return i(e)&&r(e)==a}var r=n(2),i=n(3),a="[object Arguments]";e.exports=o},function(e,t){function n(){return!1}e.exports=n},function(e,t){function n(e,t){var n=typeof e;return!!(t=null==t?o:t)&&("number"==n||"symbol"!=n&&r.test(e))&&e>-1&&e%1==0&&e<t}var o=9007199254740991,r=/^(?:0|[1-9]\d*)$/;e.exports=n},function(e,t,n){function o(e){return a(e)&&i(e.length)&&!!l[r(e)]}var r=n(2),i=n(22),a=n(3),l={};l["[object Float32Array]"]=l["[object Float64Array]"]=l["[object Int8Array]"]=l["[object Int16Array]"]=l["[object Int32Array]"]=l["[object Uint8Array]"]=l["[object Uint8ClampedArray]"]=l["[object Uint16Array]"]=l["[object Uint32Array]"]=!0,l["[object Arguments]"]=l["[object Array]"]=l["[object ArrayBuffer]"]=l["[object Boolean]"]=l["[object DataView]"]=l["[object Date]"]=l["[object Error]"]=l["[object Function]"]=l["[object Map]"]=l["[object Number]"]=l["[object Object]"]=l["[object RegExp]"]=l["[object Set]"]=l["[object String]"]=l["[object WeakMap]"]=!1,e.exports=o},function(e,t){function n(e){return function(t){return e(t)}}e.exports=n},function(e,t,n){(function(e){var o=n(15),r="object"==typeof t&&t&&!t.nodeType&&t,i=r&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===r,l=a&&o.process,c=function(){try{var e=i&&i.require&&i.require("util").types;return e||l&&l.binding&&l.binding("util")}catch(e){}}();e.exports=c}).call(t,n(20)(e))},function(e,t,n){function o(e){if(!r(e))return i(e);var t=[];for(var n in Object(e))l.call(e,n)&&"constructor"!=n&&t.push(n);return t}var r=n(93),i=n(94),a=Object.prototype,l=a.hasOwnProperty;e.exports=o},function(e,t){function n(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||o)}var o=Object.prototype;e.exports=n},function(e,t,n){var o=n(95),r=o(Object.keys,Object);e.exports=r},function(e,t){function n(e,t){return function(n){return e(t(n))}}e.exports=n},function(e,t,n){function o(e){return null!=e&&i(e.length)&&!r(e)}var r=n(14),i=n(22);e.exports=o},function(e,t,n){var o=n(98),r=n(10),i=n(99),a=n(100),l=n(101),c=n(2),u=n(16),s=u(o),p=u(r),f=u(i),b=u(a),v=u(l),h=c;(o&&"[object DataView]"!=h(new o(new ArrayBuffer(1)))||r&&"[object Map]"!=h(new r)||i&&"[object Promise]"!=h(i.resolve())||a&&"[object Set]"!=h(new a)||l&&"[object WeakMap]"!=h(new l))&&(h=function(e){var t=c(e),n="[object Object]"==t?e.constructor:void 0,o=n?u(n):"";if(o)switch(o){case s:return"[object DataView]";case p:return"[object Map]";case f:return"[object Promise]";case b:return"[object Set]";case v:return"[object WeakMap]"}return t}),e.exports=h},function(e,t,n){var o=n(1),r=n(0),i=o(r,"DataView");e.exports=i},function(e,t,n){var o=n(1),r=n(0),i=o(r,"Promise");e.exports=i},function(e,t,n){var o=n(1),r=n(0),i=o(r,"Set");e.exports=i},function(e,t,n){var o=n(1),r=n(0),i=o(r,"WeakMap");e.exports=i},function(e,t,n){function o(e,t,n){function o(t){var n=y,o=_;return y=_=void 0,x=t,w=e.apply(o,n)}function s(e){return x=e,k=setTimeout(b,t),O?o(e):w}function p(e){var n=e-j,o=e-x,r=t-n;return E?u(r,m-o):r}function f(e){var n=e-j,o=e-x;return void 0===j||n>=t||n<0||E&&o>=m}function b(){var e=i();if(f(e))return v(e);k=setTimeout(b,p(e))}function v(e){return k=void 0,C&&y?o(e):(y=_=void 0,w)}function h(){void 0!==k&&clearTimeout(k),x=0,y=j=_=k=void 0}function g(){return void 0===k?w:v(i())}function d(){var e=i(),n=f(e);if(y=arguments,_=this,j=e,n){if(void 0===k)return s(j);if(E)return k=setTimeout(b,t),o(j)}return void 0===k&&(k=setTimeout(b,t)),w}var y,_,m,w,k,j,x=0,O=!1,E=!1,C=!0;if("function"!=typeof e)throw new TypeError(l);return t=a(t)||0,r(n)&&(O=!!n.leading,E="maxWait"in n,m=E?c(a(n.maxWait)||0,t):m,C="trailing"in n?!!n.trailing:C),d.cancel=h,d.flush=g,d}var r=n(6),i=n(103),a=n(104),l="Expected a function",c=Math.max,u=Math.min;e.exports=o},function(e,t,n){var o=n(0),r=function(){return o.Date.now()};e.exports=r},function(e,t,n){function o(e){if("number"==typeof e)return e;if(i(e))return a;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(l,"");var n=u.test(e);return n||s.test(e)?p(e.slice(2),n?2:8):c.test(e)?a:+e}var r=n(6),i=n(105),a=NaN,l=/^\s+|\s+$/g,c=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,s=/^0o[0-7]+$/i,p=parseInt;e.exports=o},function(e,t,n){function o(e){return"symbol"==typeof e||i(e)&&r(e)==a}var r=n(2),i=n(3),a="[object Symbol]";e.exports=o}]);
1
+ !function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=23)}([function(e,t,n){var o=n(15),r="object"==typeof self&&self&&self.Object===Object&&self,i=o||r||Function("return this")();e.exports=i},function(e,t,n){function o(e,t){var n=i(e,t);return r(n)?n:void 0}var r=n(47),i=n(53);e.exports=o},function(e,t,n){function o(e){return null==e?void 0===e?c:l:u&&u in Object(e)?i(e):a(e)}var r=n(11),i=n(49),a=n(50),l="[object Null]",c="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=o},function(e,t){function n(e){return null!=e&&"object"==typeof e}e.exports=n},function(e,t,n){function o(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}var r=n(37),i=n(38),a=n(39),l=n(40),c=n(41);o.prototype.clear=r,o.prototype.delete=i,o.prototype.get=a,o.prototype.has=l,o.prototype.set=c,e.exports=o},function(e,t,n){function o(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}var r=n(13);e.exports=o},function(e,t){function n(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=n},function(e,t,n){var o=n(1),r=o(Object,"create");e.exports=r},function(e,t,n){function o(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}var r=n(62);e.exports=o},function(e,t,n){"use strict";function o(){var e={};for(var t in aiovg_blocks.videos){var n=aiovg_blocks.videos[t].fields;for(var o in n){e[n[o].name]={type:r(n[o].type),default:n[o].value}}}return e}function r(e){var t="string";return"categories"==e?t="array":"number"==e?t="number":"checkbox"==e&&(t="boolean"),t}function i(e){var t,n,o={},r=[];for(n=0;n<e.length;n+=1)o[e[n].id]=n,e[n].children=[];for(n=0;n<e.length;n+=1)t=e[n],t.parent>0?e[o[t.parent]].children.push(t):r.push(t);return r}function a(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";for(t=0;t<e.length;t+=1)n.push({label:o+e[t].name,value:e[t].id}),e[t].children.length>0&&a(e[t].children,n,o.trim()+"--- ");return n}t.c=o,t.b=i,t.a=a},function(e,t,n){var o=n(1),r=n(0),i=o(r,"Map");e.exports=i},function(e,t,n){var o=n(0),r=o.Symbol;e.exports=r},function(e,t){var n=Array.isArray;e.exports=n},function(e,t){function n(e,t){return e===t||e!==e&&t!==t}e.exports=n},function(e,t,n){function o(e){if(!i(e))return!1;var t=r(e);return t==l||t==c||t==a||t==u}var r=n(2),i=n(6),a="[object AsyncFunction]",l="[object Function]",c="[object GeneratorFunction]",u="[object Proxy]";e.exports=o},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(t,n(48))},function(e,t){function n(e){if(null!=e){try{return r.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var o=Function.prototype,r=o.toString;e.exports=n},function(e,t,n){function o(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}var r=n(54),i=n(61),a=n(63),l=n(64),c=n(65);o.prototype.clear=r,o.prototype.delete=i,o.prototype.get=a,o.prototype.has=l,o.prototype.set=c,e.exports=o},function(e,t,n){function o(e,t,n,o,u,s){var p=n&l,f=e.length,b=t.length;if(f!=b&&!(p&&b>f))return!1;var v=s.get(e);if(v&&s.get(t))return v==t;var h=-1,g=!0,d=n&c?new r:void 0;for(s.set(e,t),s.set(t,e);++h<f;){var y=e[h],_=t[h];if(o)var m=p?o(_,y,h,t,e,s):o(y,_,h,e,t,s);if(void 0!==m){if(m)continue;g=!1;break}if(d){if(!i(t,function(e,t){if(!a(d,t)&&(y===e||u(y,e,n,o,s)))return d.push(t)})){g=!1;break}}else if(y!==_&&!u(y,_,n,o,s)){g=!1;break}}return s.delete(e),s.delete(t),g}var r=n(66),i=n(69),a=n(70),l=1,c=2;e.exports=o},function(e,t,n){(function(e){var o=n(0),r=n(87),i="object"==typeof t&&t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,l=a&&a.exports===i,c=l?o.Buffer:void 0,u=c?c.isBuffer:void 0,s=u||r;e.exports=s}).call(t,n(20)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var o=n(89),r=n(90),i=n(91),a=i&&i.isTypedArray,l=a?r(a):o;e.exports=l},function(e,t){function n(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}var o=9007199254740991;e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(24),n(26),n(28),n(30)},function(e,t,n){"use strict";var o=n(25),r=wp.i18n.__;(0,wp.blocks.registerBlockType)("aiovg/categories",{title:aiovg_blocks.i18n.block_categories_title,description:aiovg_blocks.i18n.block_categories_description,icon:"category",category:"all-in-one-video-gallery",keywords:[r("categories"),r("gallery"),r("all-in-one-video-gallery")],attributes:{template:{type:"string",default:aiovg_blocks.categories.template},id:{type:"number",default:aiovg_blocks.categories.id},columns:{type:"number",default:aiovg_blocks.categories.columns},orderby:{type:"string",default:aiovg_blocks.categories.orderby},order:{type:"string",default:aiovg_blocks.categories.order},hierarchical:{type:"boolean",default:aiovg_blocks.categories.hierarchical},show_description:{type:"boolean",default:aiovg_blocks.categories.show_description},show_count:{type:"boolean",default:aiovg_blocks.categories.show_count},hide_empty:{type:"boolean",default:aiovg_blocks.categories.hide_empty}},supports:{customClassName:!1},edit:o.a,save:function(e){return null}})},function(e,t,n){"use strict";function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function l(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=n(9),u=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),s=wp.components,p=s.Disabled,f=s.PanelBody,b=s.RangeControl,v=s.SelectControl,h=s.ServerSideRender,g=s.ToggleControl,d=wp.element,y=d.Component,_=d.Fragment,m=wp.editor.InspectorControls,w=wp.data.withSelect,k=function(e){function t(){i(this,t);var e=a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.toggleAttribute=e.toggleAttribute.bind(e),e}return l(t,e),u(t,[{key:"getCategoriesTree",value:function(){var e=this.props.categoriesList,t=[{label:"-- "+aiovg_blocks.i18n.select_parent+" --",value:0}];if(e&&e.length>0){var n=Object(c.b)(e),o=Object(c.a)(n);t=[].concat(r(t),r(o))}return t}},{key:"toggleAttribute",value:function(e){var t=this;return function(n){t.props.setAttributes(o({},e,n))}}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes,o=t.id,r=t.template,i=t.columns,a=t.orderby,l=t.order,c=t.hierarchical,u=t.show_description,s=t.show_count,d=t.hide_empty,y=this.getCategoriesTree();return wp.element.createElement(_,null,wp.element.createElement(m,null,wp.element.createElement(f,{title:aiovg_blocks.i18n.general_settings},wp.element.createElement(v,{label:aiovg_blocks.i18n.select_template,value:r,options:[{label:aiovg_blocks.i18n.grid,value:"grid"},{label:aiovg_blocks.i18n.list,value:"list"}],onChange:function(e){return n({template:e})}}),wp.element.createElement(v,{label:aiovg_blocks.i18n.select_parent,value:o,options:y,onChange:function(e){return n({id:Number(e)})}}),"grid"==r&&wp.element.createElement(b,{label:aiovg_blocks.i18n.columns,value:i,min:1,max:12,onChange:function(e){return n({columns:e})}}),wp.element.createElement(v,{label:aiovg_blocks.i18n.order_by,value:a,options:[{label:aiovg_blocks.i18n.id,value:"id"},{label:aiovg_blocks.i18n.count,value:"count"},{label:aiovg_blocks.i18n.name,value:"name"},{label:aiovg_blocks.i18n.slug,value:"slug"}],onChange:function(e){return n({orderby:e})}}),wp.element.createElement(v,{label:aiovg_blocks.i18n.order,value:l,options:[{label:aiovg_blocks.i18n.asc,value:"asc"},{label:aiovg_blocks.i18n.desc,value:"desc"}],onChange:function(e){return n({order:e})}}),"list"==r&&wp.element.createElement(g,{label:aiovg_blocks.i18n.show_hierarchy,checked:c,onChange:this.toggleAttribute("hierarchical")}),"grid"==r&&wp.element.createElement(g,{label:aiovg_blocks.i18n.show_description,checked:u,onChange:this.toggleAttribute("show_description")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.show_videos_count,checked:s,onChange:this.toggleAttribute("show_count")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.hide_empty_categories,checked:d,onChange:this.toggleAttribute("hide_empty")}))),wp.element.createElement(p,null,wp.element.createElement(h,{block:"aiovg/categories",attributes:t})))}}]),t}(y);t.a=w(function(e){return{categoriesList:(0,e("core").getEntityRecords)("taxonomy","aiovg_categories",{per_page:100})}})(k)},function(e,t,n){"use strict";var o=n(27),r=wp.i18n.__;(0,wp.blocks.registerBlockType)("aiovg/search",{title:aiovg_blocks.i18n.block_search_title,description:aiovg_blocks.i18n.block_search_description,icon:"search",category:"all-in-one-video-gallery",keywords:[r("search"),r("videos"),r("all-in-one-video-gallery")],attributes:{template:{type:"string",default:aiovg_blocks.search.template},category:{type:"boolean",default:aiovg_blocks.search.category}},supports:{customClassName:!1},edit:o.a,save:function(e){return null}})},function(e,t,n){"use strict";function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),c=wp.components,u=c.Disabled,s=c.PanelBody,p=c.SelectControl,f=c.ServerSideRender,b=c.ToggleControl,v=wp.element,h=v.Component,g=v.Fragment,d=wp.editor.InspectorControls,y=function(e){function t(){r(this,t);var e=i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.toggleAttribute=e.toggleAttribute.bind(e),e}return a(t,e),l(t,[{key:"toggleAttribute",value:function(e){var t=this;return function(n){t.props.setAttributes(o({},e,n))}}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes,o=t.template,r=t.category;return wp.element.createElement(g,null,wp.element.createElement(d,null,wp.element.createElement(s,{title:aiovg_blocks.i18n.general_settings},wp.element.createElement(p,{label:aiovg_blocks.i18n.select_template,value:o,options:[{label:aiovg_blocks.i18n.vertical,value:"vertical"},{label:aiovg_blocks.i18n.horizontal,value:"horizontal"}],onChange:function(e){return n({template:e})}}),wp.element.createElement(b,{label:aiovg_blocks.i18n.search_by_categories,checked:r,onChange:this.toggleAttribute("category")}))),wp.element.createElement(u,null,wp.element.createElement(f,{block:"aiovg/search",attributes:t})))}}]),t}(h);t.a=y},function(e,t,n){"use strict";var o=n(29),r=wp.i18n.__;(0,wp.blocks.registerBlockType)("aiovg/video",{title:aiovg_blocks.i18n.block_video_title,description:aiovg_blocks.i18n.block_video_description,icon:"format-video",category:"all-in-one-video-gallery",keywords:[r("video"),r("player"),r("all-in-one-video-gallery")],attributes:{src:{type:"string"},poster:{type:"string"},width:{type:"number",default:aiovg_blocks.video.width},ratio:{type:"number",default:aiovg_blocks.video.ratio},autoplay:{type:"boolean",default:aiovg_blocks.video.autoplay},loop:{type:"boolean",default:aiovg_blocks.video.loop},muted:{type:"boolean",default:aiovg_blocks.video.muted},playpause:{type:"boolean",default:aiovg_blocks.video.playpause},current:{type:"boolean",default:aiovg_blocks.video.current},progress:{type:"boolean",default:aiovg_blocks.video.progress},duration:{type:"boolean",default:aiovg_blocks.video.duration},volume:{type:"boolean",default:aiovg_blocks.video.volume},fullscreen:{type:"boolean",default:aiovg_blocks.video.fullscreen}},supports:{customClassName:!1},edit:o.a,save:function(e){return null}})},function(e,t,n){"use strict";function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),c=wp.components,u=c.BaseControl,s=c.Button,p=c.Disabled,f=c.IconButton,b=c.PanelBody,v=c.ServerSideRender,h=c.TextControl,g=c.ToggleControl,d=c.Toolbar,y=c.withNotices,_=wp.element,m=_.Component,w=_.Fragment,k=_.createRef,j=wp.editor,x=j.BlockControls,O=j.InspectorControls,E=j.MediaPlaceholder,C=j.MediaUpload,A=function(e){function t(){r(this,t);var e=i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.state={editing:!e.props.attributes.src},e.videoPlayer=k(),e.toggleAttribute=e.toggleAttribute.bind(e),e.onSelectURL=e.onSelectURL.bind(e),e.onSelectPoster=e.onSelectPoster.bind(e),e.onRemovePoster=e.onRemovePoster.bind(e),e}return a(t,e),l(t,[{key:"toggleAttribute",value:function(e){var t=this;return function(n){t.props.setAttributes(o({},e,n))}}},{key:"onSelectURL",value:function(e){var t=this.props,n=t.attributes,o=t.setAttributes;e!==n.src&&o({src:e}),this.setState({editing:!1})}},{key:"onSelectPoster",value:function(e){(0,this.props.setAttributes)({poster:e.url})}},{key:"onRemovePoster",value:function(){(0,this.props.setAttributes)({poster:""})}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,o=t.setAttributes,r=t.className,i=t.noticeOperations,a=t.noticeUI,l=n.poster,c=n.width,y=n.ratio,_=n.autoplay,m=n.loop,k=n.muted,j=n.playpause,A=n.current,S=n.progress,P=n.duration,T=n.volume,z=n.fullscreen,R=this.state.editing,M=function(){e.setState({editing:!0})},N=function(t){if(!t||!t.url)return o({src:void 0}),void M();o({src:t.url}),e.setState({src:t.url,editing:!1})};return R?wp.element.createElement(E,{icon:"media-video",labels:{title:aiovg_blocks.i18n.media_placeholder_title,name:aiovg_blocks.i18n.media_placeholder_name},className:r,accept:"video/*",type:"video",value:n,onSelect:N,onSelectURL:this.onSelectURL,notices:a,onError:i.createErrorNotice}):wp.element.createElement(w,null,wp.element.createElement(x,null,wp.element.createElement(d,null,wp.element.createElement(f,{className:"components-icon-button components-toolbar__control",label:aiovg_blocks.i18n.edit_video,onClick:M,icon:"edit"}))),wp.element.createElement(O,null,wp.element.createElement(b,{title:aiovg_blocks.i18n.general_settings},wp.element.createElement(h,{label:aiovg_blocks.i18n.width,help:aiovg_blocks.i18n.width_help,value:c>0?c:"",onChange:function(e){return o({width:Number(e)})}}),wp.element.createElement(h,{label:aiovg_blocks.i18n.ratio,help:aiovg_blocks.i18n.ratio_help,value:y,onChange:function(e){return o({ratio:Number(e)})}}),wp.element.createElement(g,{label:aiovg_blocks.i18n.autoplay,checked:_,onChange:this.toggleAttribute("autoplay")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.loop,checked:m,onChange:this.toggleAttribute("loop")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.muted,checked:k,onChange:this.toggleAttribute("muted")}),wp.element.createElement(u,{className:"editor-video-poster-control",label:aiovg_blocks.i18n.poster_image},wp.element.createElement(C,{title:aiovg_blocks.i18n.select_poster_image,onSelect:this.onSelectPoster,type:"image",render:function(e){var t=e.open;return wp.element.createElement(s,{isDefault:!0,onClick:t},l?aiovg_blocks.i18n.replace_image:aiovg_blocks.i18n.select_poster_image)}}),!!l&&wp.element.createElement(s,{onClick:this.onRemovePoster,isLink:!0,isDestructive:!0},aiovg_blocks.i18n.remove_poster_image))),wp.element.createElement(b,{title:aiovg_blocks.i18n.player_controls},wp.element.createElement(g,{label:aiovg_blocks.i18n.play_pause,checked:j,onChange:this.toggleAttribute("playpause")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.current_time,checked:A,onChange:this.toggleAttribute("current")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.progressbar,checked:S,onChange:this.toggleAttribute("progress")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.duration,checked:P,onChange:this.toggleAttribute("duration")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.volume,checked:T,onChange:this.toggleAttribute("volume")}),wp.element.createElement(g,{label:aiovg_blocks.i18n.fullscreen,checked:z,onChange:this.toggleAttribute("fullscreen")}))),wp.element.createElement(p,null,wp.element.createElement(v,{block:"aiovg/video",attributes:n})))}}]),t}(m);t.a=y(A)},function(e,t,n){"use strict";var o=n(9),r=n(31),i=wp.i18n.__;(0,wp.blocks.registerBlockType)("aiovg/videos",{title:aiovg_blocks.i18n.block_videos_title,description:aiovg_blocks.i18n.block_videos_description,icon:"playlist-video",category:"all-in-one-video-gallery",keywords:[i("videos"),i("gallery"),i("all-in-one-video-gallery")],attributes:Object(o.c)(),supports:{customClassName:!1},edit:r.a,save:function(e){return null}})},function(e,t,n){"use strict";function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function l(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=n(9),u=n(32),s=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),p=wp.components,f=p.Disabled,b=p.PanelBody,v=p.RangeControl,h=p.SelectControl,g=p.TextControl,d=p.TextareaControl,y=p.ToggleControl,_=wp.element,m=_.Component,w=_.Fragment,k=wp.editor,j=k.InspectorControls,x=k.PanelColorSettings,O=wp.hooks.applyFilters,E=wp.data.withSelect,C=function(e){function t(){i(this,t);var e=a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.onChange=e.onChange.bind(e),e.toggleAttribute=e.toggleAttribute.bind(e),e.initializeGallery=e.initializeGallery.bind(e),e}return l(t,e),s(t,[{key:"getControl",value:function(e,t){var n=this.props.attributes,o=e.placeholder?e.placeholder:"",r=e.description?e.description:"";switch(e.type){case"categories":var i=this.getCategoriesTree();return this.canShowControl(e.name)&&wp.element.createElement(h,{multiple:!0,key:t,label:e.label,help:r,options:i,value:n[e.name],onChange:this.onChange(e.name)});case"number":return this.canShowControl(e.name)&&wp.element.createElement(v,{key:t,label:e.label,help:r,placeholder:o,value:n[e.name],min:e.min,max:e.max,onChange:this.onChange(e.name)});case"textarea":return this.canShowControl(e.name)&&wp.element.createElement(d,{key:t,label:e.label,help:r,placeholder:o,value:n[e.name],onChange:this.onChange(e.name)});case"select":case"radio":var a=[];for(var l in e.options)a.push({label:e.options[l],value:l});return this.canShowControl(e.name)&&wp.element.createElement(h,{key:t,label:e.label,help:r,options:a,value:n[e.name],onChange:this.onChange(e.name)});case"checkbox":return this.canShowControl(e.name)&&wp.element.createElement(y,{key:t,label:e.label,help:r,checked:n[e.name],onChange:this.toggleAttribute(e.name)});case"color":return this.canShowControl(e.name)&&wp.element.createElement(x,{key:t,title:e.label,colorSettings:[{label:aiovg_blocks.i18n.select_color,value:n[e.name],onChange:this.onChange(e.name)}]});default:return this.canShowControl(e.name)&&wp.element.createElement(g,{key:t,label:e.label,help:r,placeholder:o,value:n[e.name],onChange:this.onChange(e.name)})}}},{key:"canShowPanel",value:function(e){var t=this.props.attributes;return O("aiovg_block_toggle_panels",!0,e,t)}},{key:"canShowControl",value:function(e){var t=this.props.attributes;return O("aiovg_block_toggle_controls",!0,e,t)}},{key:"onChange",value:function(e){var t=this;return function(n){t.props.setAttributes(r({},e,n))}}},{key:"toggleAttribute",value:function(e){var t=this;return function(n){t.props.setAttributes(r({},e,n))}}},{key:"getCategoriesTree",value:function(){var e=this.props.categoriesList,t=[];if(e&&e.length>0){var n=Object(c.b)(e),r=Object(c.a)(n);t=[].concat(o(t),o(r))}return t}},{key:"initializeGallery",value:function(){O("aiovg_block_init",this.props.attributes)}},{key:"render",value:function(){var e=this,t=this.props.attributes,n=aiovg_blocks.videos;return wp.element.createElement(w,null,wp.element.createElement(j,null,Object.keys(n).map(function(t,o){return e.canShowPanel(t)&&wp.element.createElement(b,{key:"aiovg-block-panel-"+o,title:n[t].title,initialOpen:0==o,className:"aiovg-block-panel"},Object.keys(n[t].fields).map(function(o,r){return e.getControl(n[t].fields[o],"aiovg-block-control-"+r)}))})),wp.element.createElement(f,null,wp.element.createElement(u.a,{block:"aiovg/videos",attributes:t,onChange:this.initializeGallery})))}}]),t}(m);t.a=E(function(e){return{categoriesList:(0,e("core").getEntityRecords)("taxonomy","aiovg_categories",{per_page:100})}})(C)},function(e,t,n){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return w("/wp/v2/block-renderer/"+e,Object.assign({context:"edit"},null!==t?{attributes:t}:{},n))}var l=n(33),c=n.n(l),u=n(102),s=n.n(u),p=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),f=wp.i18n,b=f.__,v=f.sprintf,h=wp.components,g=h.Placeholder,d=h.Spinner,y=wp.element,_=y.Component,m=y.RawHTML,w=wp.url.addQueryArgs,k=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={response:null},n}return i(t,e),p(t,[{key:"componentDidMount",value:function(){this.isStillMounted=!0,this.fetch(this.props),this.fetch=s()(this.fetch,500)}},{key:"componentWillUnmount",value:function(){this.isStillMounted=!1}},{key:"componentDidUpdate",value:function(e,t){c()(e,this.props)||this.fetch(this.props),this.state.response!==t.response&&this.props.onChange&&this.props.onChange()}},{key:"fetch",value:function(e){var t=this;if(this.isStillMounted){null!==this.state.response&&this.setState({response:null});var n=e.block,o=e.attributes,r=void 0===o?null:o,i=e.urlQueryArgs,l=void 0===i?{}:i,c=a(n,r,l),u=this.currentFetchRequest=wp.apiFetch({path:c}).then(function(e){t.isStillMounted&&u===t.currentFetchRequest&&e&&e.rendered&&t.setState({response:e.rendered})}).catch(function(e){t.isStillMounted&&u===t.currentFetchRequest&&t.setState({response:{error:!0,errorMsg:e.message}})});return u}}},{key:"render",value:function(){var e=this.state.response;if(!e)return wp.element.createElement(g,null,wp.element.createElement(d,null));if(e.error){var t=v(b("Error loading block: %s"),e.errorMsg);return wp.element.createElement(g,null,t)}return e.length?wp.element.createElement(m,{key:"html"},e):wp.element.createElement(g,null,b("No results found."))}}]),t}(_);t.a=k},function(e,t,n){function o(e,t){return r(e,t)}var r=n(34);e.exports=o},function(e,t,n){function o(e,t,n,a,l){return e===t||(null==e||null==t||!i(e)&&!i(t)?e!==e&&t!==t:r(e,t,n,a,o,l))}var r=n(35),i=n(3);e.exports=o},function(e,t,n){function o(e,t,n,o,g,y){var _=u(e),m=u(t),w=_?v:c(e),k=m?v:c(t);w=w==b?h:w,k=k==b?h:k;var j=w==h,x=k==h,O=w==k;if(O&&s(e)){if(!s(t))return!1;_=!0,j=!1}if(O&&!j)return y||(y=new r),_||p(e)?i(e,t,n,o,g,y):a(e,t,w,n,o,g,y);if(!(n&f)){var E=j&&d.call(e,"__wrapped__"),C=x&&d.call(t,"__wrapped__");if(E||C){var A=E?e.value():e,S=C?t.value():t;return y||(y=new r),g(A,S,n,o,y)}}return!!O&&(y||(y=new r),l(e,t,n,o,g,y))}var r=n(36),i=n(18),a=n(71),l=n(75),c=n(97),u=n(12),s=n(19),p=n(21),f=1,b="[object Arguments]",v="[object Array]",h="[object Object]",g=Object.prototype,d=g.hasOwnProperty;e.exports=o},function(e,t,n){function o(e){var t=this.__data__=new r(e);this.size=t.size}var r=n(4),i=n(42),a=n(43),l=n(44),c=n(45),u=n(46);o.prototype.clear=i,o.prototype.delete=a,o.prototype.get=l,o.prototype.has=c,o.prototype.set=u,e.exports=o},function(e,t){function n(){this.__data__=[],this.size=0}e.exports=n},function(e,t,n){function o(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():a.call(t,n,1),--this.size,!0)}var r=n(5),i=Array.prototype,a=i.splice;e.exports=o},function(e,t,n){function o(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}var r=n(5);e.exports=o},function(e,t,n){function o(e){return r(this.__data__,e)>-1}var r=n(5);e.exports=o},function(e,t,n){function o(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}var r=n(5);e.exports=o},function(e,t,n){function o(){this.__data__=new r,this.size=0}var r=n(4);e.exports=o},function(e,t){function n(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}e.exports=n},function(e,t){function n(e){return this.__data__.get(e)}e.exports=n},function(e,t){function n(e){return this.__data__.has(e)}e.exports=n},function(e,t,n){function o(e,t){var n=this.__data__;if(n instanceof r){var o=n.__data__;if(!i||o.length<l-1)return o.push([e,t]),this.size=++n.size,this;n=this.__data__=new a(o)}return n.set(e,t),this.size=n.size,this}var r=n(4),i=n(10),a=n(17),l=200;e.exports=o},function(e,t,n){function o(e){return!(!a(e)||i(e))&&(r(e)?v:u).test(l(e))}var r=n(14),i=n(51),a=n(6),l=n(16),c=/[\\^$.*+?()[\]{}|]/g,u=/^\[object .+?Constructor\]$/,s=Function.prototype,p=Object.prototype,f=s.toString,b=p.hasOwnProperty,v=RegExp("^"+f.call(b).replace(c,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=o},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"===typeof window&&(n=window)}e.exports=n},function(e,t,n){function o(e){var t=a.call(e,c),n=e[c];try{e[c]=void 0;var o=!0}catch(e){}var r=l.call(e);return o&&(t?e[c]=n:delete e[c]),r}var r=n(11),i=Object.prototype,a=i.hasOwnProperty,l=i.toString,c=r?r.toStringTag:void 0;e.exports=o},function(e,t){function n(e){return r.call(e)}var o=Object.prototype,r=o.toString;e.exports=n},function(e,t,n){function o(e){return!!i&&i in e}var r=n(52),i=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=o},function(e,t,n){var o=n(0),r=o["__core-js_shared__"];e.exports=r},function(e,t){function n(e,t){return null==e?void 0:e[t]}e.exports=n},function(e,t,n){function o(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}var r=n(55),i=n(4),a=n(10);e.exports=o},function(e,t,n){function o(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}var r=n(56),i=n(57),a=n(58),l=n(59),c=n(60);o.prototype.clear=r,o.prototype.delete=i,o.prototype.get=a,o.prototype.has=l,o.prototype.set=c,e.exports=o},function(e,t,n){function o(){this.__data__=r?r(null):{},this.size=0}var r=n(7);e.exports=o},function(e,t){function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}e.exports=n},function(e,t,n){function o(e){var t=this.__data__;if(r){var n=t[e];return n===i?void 0:n}return l.call(t,e)?t[e]:void 0}var r=n(7),i="__lodash_hash_undefined__",a=Object.prototype,l=a.hasOwnProperty;e.exports=o},function(e,t,n){function o(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}var r=n(7),i=Object.prototype,a=i.hasOwnProperty;e.exports=o},function(e,t,n){function o(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?i:t,this}var r=n(7),i="__lodash_hash_undefined__";e.exports=o},function(e,t,n){function o(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}var r=n(8);e.exports=o},function(e,t){function n(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}e.exports=n},function(e,t,n){function o(e){return r(this,e).get(e)}var r=n(8);e.exports=o},function(e,t,n){function o(e){return r(this,e).has(e)}var r=n(8);e.exports=o},function(e,t,n){function o(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}var r=n(8);e.exports=o},function(e,t,n){function o(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}var r=n(17),i=n(67),a=n(68);o.prototype.add=o.prototype.push=i,o.prototype.has=a,e.exports=o},function(e,t){function n(e){return this.__data__.set(e,o),this}var o="__lodash_hash_undefined__";e.exports=n},function(e,t){function n(e){return this.__data__.has(e)}e.exports=n},function(e,t){function n(e,t){for(var n=-1,o=null==e?0:e.length;++n<o;)if(t(e[n],n,e))return!0;return!1}e.exports=n},function(e,t){function n(e,t){return e.has(t)}e.exports=n},function(e,t,n){function o(e,t,n,o,r,j,O){switch(n){case k:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case w:return!(e.byteLength!=t.byteLength||!j(new i(e),new i(t)));case f:case b:case g:return a(+e,+t);case v:return e.name==t.name&&e.message==t.message;case d:case _:return e==t+"";case h:var E=c;case y:var C=o&s;if(E||(E=u),e.size!=t.size&&!C)return!1;var A=O.get(e);if(A)return A==t;o|=p,O.set(e,t);var S=l(E(e),E(t),o,r,j,O);return O.delete(e),S;case m:if(x)return x.call(e)==x.call(t)}return!1}var r=n(11),i=n(72),a=n(13),l=n(18),c=n(73),u=n(74),s=1,p=2,f="[object Boolean]",b="[object Date]",v="[object Error]",h="[object Map]",g="[object Number]",d="[object RegExp]",y="[object Set]",_="[object String]",m="[object Symbol]",w="[object ArrayBuffer]",k="[object DataView]",j=r?r.prototype:void 0,x=j?j.valueOf:void 0;e.exports=o},function(e,t,n){var o=n(0),r=o.Uint8Array;e.exports=r},function(e,t){function n(e){var t=-1,n=Array(e.size);return e.forEach(function(e,o){n[++t]=[o,e]}),n}e.exports=n},function(e,t){function n(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}e.exports=n},function(e,t,n){function o(e,t,n,o,a,c){var u=n&i,s=r(e),p=s.length;if(p!=r(t).length&&!u)return!1;for(var f=p;f--;){var b=s[f];if(!(u?b in t:l.call(t,b)))return!1}var v=c.get(e);if(v&&c.get(t))return v==t;var h=!0;c.set(e,t),c.set(t,e);for(var g=u;++f<p;){b=s[f];var d=e[b],y=t[b];if(o)var _=u?o(y,d,b,t,e,c):o(d,y,b,e,t,c);if(!(void 0===_?d===y||a(d,y,n,o,c):_)){h=!1;break}g||(g="constructor"==b)}if(h&&!g){var m=e.constructor,w=t.constructor;m!=w&&"constructor"in e&&"constructor"in t&&!("function"==typeof m&&m instanceof m&&"function"==typeof w&&w instanceof w)&&(h=!1)}return c.delete(e),c.delete(t),h}var r=n(76),i=1,a=Object.prototype,l=a.hasOwnProperty;e.exports=o},function(e,t,n){function o(e){return r(e,a,i)}var r=n(77),i=n(79),a=n(82);e.exports=o},function(e,t,n){function o(e,t,n){var o=t(e);return i(e)?o:r(o,n(e))}var r=n(78),i=n(12);e.exports=o},function(e,t){function n(e,t){for(var n=-1,o=t.length,r=e.length;++n<o;)e[r+n]=t[n];return e}e.exports=n},function(e,t,n){var o=n(80),r=n(81),i=Object.prototype,a=i.propertyIsEnumerable,l=Object.getOwnPropertySymbols,c=l?function(e){return null==e?[]:(e=Object(e),o(l(e),function(t){return a.call(e,t)}))}:r;e.exports=c},function(e,t){function n(e,t){for(var n=-1,o=null==e?0:e.length,r=0,i=[];++n<o;){var a=e[n];t(a,n,e)&&(i[r++]=a)}return i}e.exports=n},function(e,t){function n(){return[]}e.exports=n},function(e,t,n){function o(e){return a(e)?r(e):i(e)}var r=n(83),i=n(92),a=n(96);e.exports=o},function(e,t,n){function o(e,t){var n=a(e),o=!n&&i(e),s=!n&&!o&&l(e),f=!n&&!o&&!s&&u(e),b=n||o||s||f,v=b?r(e.length,String):[],h=v.length;for(var g in e)!t&&!p.call(e,g)||b&&("length"==g||s&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||c(g,h))||v.push(g);return v}var r=n(84),i=n(85),a=n(12),l=n(19),c=n(88),u=n(21),s=Object.prototype,p=s.hasOwnProperty;e.exports=o},function(e,t){function n(e,t){for(var n=-1,o=Array(e);++n<e;)o[n]=t(n);return o}e.exports=n},function(e,t,n){var o=n(86),r=n(3),i=Object.prototype,a=i.hasOwnProperty,l=i.propertyIsEnumerable,c=o(function(){return arguments}())?o:function(e){return r(e)&&a.call(e,"callee")&&!l.call(e,"callee")};e.exports=c},function(e,t,n){function o(e){return i(e)&&r(e)==a}var r=n(2),i=n(3),a="[object Arguments]";e.exports=o},function(e,t){function n(){return!1}e.exports=n},function(e,t){function n(e,t){var n=typeof e;return!!(t=null==t?o:t)&&("number"==n||"symbol"!=n&&r.test(e))&&e>-1&&e%1==0&&e<t}var o=9007199254740991,r=/^(?:0|[1-9]\d*)$/;e.exports=n},function(e,t,n){function o(e){return a(e)&&i(e.length)&&!!l[r(e)]}var r=n(2),i=n(22),a=n(3),l={};l["[object Float32Array]"]=l["[object Float64Array]"]=l["[object Int8Array]"]=l["[object Int16Array]"]=l["[object Int32Array]"]=l["[object Uint8Array]"]=l["[object Uint8ClampedArray]"]=l["[object Uint16Array]"]=l["[object Uint32Array]"]=!0,l["[object Arguments]"]=l["[object Array]"]=l["[object ArrayBuffer]"]=l["[object Boolean]"]=l["[object DataView]"]=l["[object Date]"]=l["[object Error]"]=l["[object Function]"]=l["[object Map]"]=l["[object Number]"]=l["[object Object]"]=l["[object RegExp]"]=l["[object Set]"]=l["[object String]"]=l["[object WeakMap]"]=!1,e.exports=o},function(e,t){function n(e){return function(t){return e(t)}}e.exports=n},function(e,t,n){(function(e){var o=n(15),r="object"==typeof t&&t&&!t.nodeType&&t,i=r&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===r,l=a&&o.process,c=function(){try{var e=i&&i.require&&i.require("util").types;return e||l&&l.binding&&l.binding("util")}catch(e){}}();e.exports=c}).call(t,n(20)(e))},function(e,t,n){function o(e){if(!r(e))return i(e);var t=[];for(var n in Object(e))l.call(e,n)&&"constructor"!=n&&t.push(n);return t}var r=n(93),i=n(94),a=Object.prototype,l=a.hasOwnProperty;e.exports=o},function(e,t){function n(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||o)}var o=Object.prototype;e.exports=n},function(e,t,n){var o=n(95),r=o(Object.keys,Object);e.exports=r},function(e,t){function n(e,t){return function(n){return e(t(n))}}e.exports=n},function(e,t,n){function o(e){return null!=e&&i(e.length)&&!r(e)}var r=n(14),i=n(22);e.exports=o},function(e,t,n){var o=n(98),r=n(10),i=n(99),a=n(100),l=n(101),c=n(2),u=n(16),s=u(o),p=u(r),f=u(i),b=u(a),v=u(l),h=c;(o&&"[object DataView]"!=h(new o(new ArrayBuffer(1)))||r&&"[object Map]"!=h(new r)||i&&"[object Promise]"!=h(i.resolve())||a&&"[object Set]"!=h(new a)||l&&"[object WeakMap]"!=h(new l))&&(h=function(e){var t=c(e),n="[object Object]"==t?e.constructor:void 0,o=n?u(n):"";if(o)switch(o){case s:return"[object DataView]";case p:return"[object Map]";case f:return"[object Promise]";case b:return"[object Set]";case v:return"[object WeakMap]"}return t}),e.exports=h},function(e,t,n){var o=n(1),r=n(0),i=o(r,"DataView");e.exports=i},function(e,t,n){var o=n(1),r=n(0),i=o(r,"Promise");e.exports=i},function(e,t,n){var o=n(1),r=n(0),i=o(r,"Set");e.exports=i},function(e,t,n){var o=n(1),r=n(0),i=o(r,"WeakMap");e.exports=i},function(e,t,n){function o(e,t,n){function o(t){var n=y,o=_;return y=_=void 0,x=t,w=e.apply(o,n)}function s(e){return x=e,k=setTimeout(b,t),O?o(e):w}function p(e){var n=e-j,o=e-x,r=t-n;return E?u(r,m-o):r}function f(e){var n=e-j,o=e-x;return void 0===j||n>=t||n<0||E&&o>=m}function b(){var e=i();if(f(e))return v(e);k=setTimeout(b,p(e))}function v(e){return k=void 0,C&&y?o(e):(y=_=void 0,w)}function h(){void 0!==k&&clearTimeout(k),x=0,y=j=_=k=void 0}function g(){return void 0===k?w:v(i())}function d(){var e=i(),n=f(e);if(y=arguments,_=this,j=e,n){if(void 0===k)return s(j);if(E)return k=setTimeout(b,t),o(j)}return void 0===k&&(k=setTimeout(b,t)),w}var y,_,m,w,k,j,x=0,O=!1,E=!1,C=!0;if("function"!=typeof e)throw new TypeError(l);return t=a(t)||0,r(n)&&(O=!!n.leading,E="maxWait"in n,m=E?c(a(n.maxWait)||0,t):m,C="trailing"in n?!!n.trailing:C),d.cancel=h,d.flush=g,d}var r=n(6),i=n(103),a=n(104),l="Expected a function",c=Math.max,u=Math.min;e.exports=o},function(e,t,n){var o=n(0),r=function(){return o.Date.now()};e.exports=r},function(e,t,n){function o(e){if("number"==typeof e)return e;if(i(e))return a;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(l,"");var n=u.test(e);return n||s.test(e)?p(e.slice(2),n?2:8):c.test(e)?a:+e}var r=n(6),i=n(105),a=NaN,l=/^\s+|\s+$/g,c=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,s=/^0o[0-7]+$/i,p=parseInt;e.exports=o},function(e,t,n){function o(e){return"symbol"==typeof e||i(e)&&r(e)==a}var r=n(2),i=n(3),a="[object Symbol]";e.exports=o}]);
blocks/src/blocks/categories/edit.js CHANGED
@@ -37,7 +37,7 @@ class AIOVGCategoriesEdit extends Component {
37
  const { categoriesList } = this.props;
38
 
39
  let categories = [{
40
- label: '-- ' + aiovg_blocks.i18n.top_categories + ' --',
41
  value: 0
42
  }];
43
 
@@ -80,14 +80,7 @@ class AIOVGCategoriesEdit extends Component {
80
  return (
81
  <Fragment>
82
  <InspectorControls>
83
- <PanelBody title={ aiovg_blocks.i18n.categories_settings }>
84
- <SelectControl
85
- label={ aiovg_blocks.i18n.select_parent }
86
- value={ id }
87
- options={ categories }
88
- onChange={ ( value ) => setAttributes( { id: Number( value ) } ) }
89
- />
90
-
91
  <SelectControl
92
  label={ aiovg_blocks.i18n.select_template }
93
  value={ template }
@@ -98,6 +91,13 @@ class AIOVGCategoriesEdit extends Component {
98
  onChange={ ( value ) => setAttributes( { template: value } ) }
99
  />
100
 
 
 
 
 
 
 
 
101
  {'grid' == template && <RangeControl
102
  label={ aiovg_blocks.i18n.columns }
103
  value={ columns }
37
  const { categoriesList } = this.props;
38
 
39
  let categories = [{
40
+ label: '-- ' + aiovg_blocks.i18n.select_parent + ' --',
41
  value: 0
42
  }];
43
 
80
  return (
81
  <Fragment>
82
  <InspectorControls>
83
+ <PanelBody title={ aiovg_blocks.i18n.general_settings }>
 
 
 
 
 
 
 
84
  <SelectControl
85
  label={ aiovg_blocks.i18n.select_template }
86
  value={ template }
91
  onChange={ ( value ) => setAttributes( { template: value } ) }
92
  />
93
 
94
+ <SelectControl
95
+ label={ aiovg_blocks.i18n.select_parent }
96
+ value={ id }
97
+ options={ categories }
98
+ onChange={ ( value ) => setAttributes( { id: Number( value ) } ) }
99
+ />
100
+
101
  {'grid' == template && <RangeControl
102
  label={ aiovg_blocks.i18n.columns }
103
  value={ columns }
blocks/src/blocks/categories/index.js CHANGED
@@ -29,14 +29,14 @@ registerBlockType( 'aiovg/categories', {
29
  __( 'all-in-one-video-gallery' ),
30
  ],
31
  attributes: {
32
- id: {
33
- type: 'number',
34
- default: aiovg_blocks.categories.id
35
- },
36
  template: {
37
  type: 'string',
38
  default: aiovg_blocks.categories.template
39
  },
 
 
 
 
40
  columns: {
41
  type: 'number',
42
  default: aiovg_blocks.categories.columns
29
  __( 'all-in-one-video-gallery' ),
30
  ],
31
  attributes: {
 
 
 
 
32
  template: {
33
  type: 'string',
34
  default: aiovg_blocks.categories.template
35
  },
36
+ id: {
37
+ type: 'number',
38
+ default: aiovg_blocks.categories.id
39
+ },
40
  columns: {
41
  type: 'number',
42
  default: aiovg_blocks.categories.columns
blocks/src/blocks/search/edit.js CHANGED
@@ -44,7 +44,7 @@ class AIOVGSearchEdit extends Component {
44
  return (
45
  <Fragment>
46
  <InspectorControls>
47
- <PanelBody title={ aiovg_blocks.i18n.search_form_settings }>
48
  <SelectControl
49
  label={ aiovg_blocks.i18n.select_template }
50
  value={ template }
44
  return (
45
  <Fragment>
46
  <InspectorControls>
47
+ <PanelBody title={ aiovg_blocks.i18n.general_settings }>
48
  <SelectControl
49
  label={ aiovg_blocks.i18n.select_template }
50
  value={ template }
blocks/src/blocks/video/edit.js CHANGED
@@ -94,6 +94,7 @@ class AIOVGVideoEdit extends Component {
94
  ratio,
95
  autoplay,
96
  loop,
 
97
  playpause,
98
  current,
99
  progress,
@@ -183,6 +184,12 @@ class AIOVGVideoEdit extends Component {
183
  onChange={ this.toggleAttribute( 'loop' ) }
184
  />
185
 
 
 
 
 
 
 
186
  <BaseControl
187
  className="editor-video-poster-control"
188
  label={ aiovg_blocks.i18n.poster_image }
94
  ratio,
95
  autoplay,
96
  loop,
97
+ muted,
98
  playpause,
99
  current,
100
  progress,
184
  onChange={ this.toggleAttribute( 'loop' ) }
185
  />
186
 
187
+ <ToggleControl
188
+ label={ aiovg_blocks.i18n.muted }
189
+ checked={ muted }
190
+ onChange={ this.toggleAttribute( 'muted' ) }
191
+ />
192
+
193
  <BaseControl
194
  className="editor-video-poster-control"
195
  label={ aiovg_blocks.i18n.poster_image }
blocks/src/blocks/video/index.js CHANGED
@@ -51,6 +51,10 @@ registerBlockType( 'aiovg/video', {
51
  type: 'boolean',
52
  default: aiovg_blocks.video.loop
53
  },
 
 
 
 
54
  playpause: {
55
  type: 'boolean',
56
  default: aiovg_blocks.video.playpause
51
  type: 'boolean',
52
  default: aiovg_blocks.video.loop
53
  },
54
+ muted: {
55
+ type: 'boolean',
56
+ default: aiovg_blocks.video.muted
57
+ },
58
  playpause: {
59
  type: 'boolean',
60
  default: aiovg_blocks.video.playpause
freemius/assets/img/all-in-one-video-gallery.png ADDED
Binary file
includes/functions.php CHANGED
@@ -223,450 +223,6 @@ function aiovg_get_attachment_id( $url, $media = 'image' ) {
223
  return $attachment_id;
224
  }
225
 
226
- /**
227
- * Get block fields.
228
- *
229
- * @since 1.5.7
230
- */
231
- function aiovg_get_block_fields() {
232
- $defaults = aiovg_get_default_settings();
233
- $image_settings = array_merge( $defaults['aiovg_image_settings'], get_option( 'aiovg_image_settings', array() ) );
234
- $categories_settings = array_merge( $defaults['aiovg_categories_settings'], get_option( 'aiovg_categories_settings', array() ) );
235
- $videos_settings = array_merge( $defaults['aiovg_videos_settings'], get_option( 'aiovg_videos_settings', array() ) );
236
- $player_settings = array_merge( $defaults['aiovg_player_settings'], get_option( 'aiovg_player_settings', array() ) );
237
- $video_templates = aiovg_get_video_templates();
238
-
239
- // Fields
240
- $fields = array(
241
- 'categories' => array(
242
- 'general' => array(
243
- 'title' => __( 'General Settings', 'all-in-one-video-gallery' ),
244
- 'fields' => array(
245
- array(
246
- 'name' => 'title',
247
- 'label' => __( 'Title', 'all-in-one-video-gallery' ),
248
- 'description' => '',
249
- 'type' => 'text',
250
- 'value' => ''
251
- ),
252
- array(
253
- 'name' => 'template',
254
- 'label' => __( 'Select Template', 'all-in-one-video-gallery' ),
255
- 'description' => '',
256
- 'type' => 'select',
257
- 'options' => array(
258
- 'grid' => __( 'Grid', 'all-in-one-video-gallery' ),
259
- 'list' => __( 'List', 'all-in-one-video-gallery' )
260
- ),
261
- 'value' => $categories_settings['template']
262
- ),
263
- array(
264
- 'name' => 'id',
265
- 'label' => __( 'Select Parent', 'all-in-one-video-gallery' ),
266
- 'description' => '',
267
- 'type' => 'category',
268
- 'options' => array(),
269
- 'value' => 0
270
- ),
271
- array(
272
- 'name' => 'ratio',
273
- 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
274
- 'description' => '',
275
- 'type' => 'text',
276
- 'value' => $image_settings['ratio']
277
- ),
278
- array(
279
- 'name' => 'columns',
280
- 'label' => __( 'Columns', 'all-in-one-video-gallery' ),
281
- 'description' => '',
282
- 'type' => 'number',
283
- 'min' => 1,
284
- 'max' => 12,
285
- 'step' => 1,
286
- 'value' => $categories_settings['columns']
287
- ),
288
- array(
289
- 'name' => 'orderby',
290
- 'label' => __( 'Order By', 'all-in-one-video-gallery' ),
291
- 'description' => '',
292
- 'type' => 'select',
293
- 'options' => array(
294
- 'id' => __( 'ID', 'all-in-one-video-gallery' ),
295
- 'count' => __( 'Count', 'all-in-one-video-gallery' ),
296
- 'name' => __( 'Name', 'all-in-one-video-gallery' ),
297
- 'slug' => __( 'Slug', 'all-in-one-video-gallery' )
298
- ),
299
- 'value' => $categories_settings['orderby']
300
- ),
301
- array(
302
- 'name' => 'order',
303
- 'label' => __( 'Order', 'all-in-one-video-gallery' ),
304
- 'description' => '',
305
- 'type' => 'select',
306
- 'options' => array(
307
- 'asc' => __( 'ASC', 'all-in-one-video-gallery' ),
308
- 'desc' => __( 'DESC', 'all-in-one-video-gallery' )
309
- ),
310
- 'value' => $categories_settings['order']
311
- ),
312
- array(
313
- 'name' => 'hierarchical',
314
- 'label' => __( 'Show Hierarchy', 'all-in-one-video-gallery' ),
315
- 'description' => '',
316
- 'type' => 'checkbox',
317
- 'value' => $categories_settings['hierarchical']
318
- ),
319
- array(
320
- 'name' => 'show_description',
321
- 'label' => __( 'Show Description', 'all-in-one-video-gallery' ),
322
- 'description' => '',
323
- 'type' => 'checkbox',
324
- 'value' => $categories_settings['show_description']
325
- ),
326
- array(
327
- 'name' => 'show_count',
328
- 'label' => __( 'Show Videos Count', 'all-in-one-video-gallery' ),
329
- 'description' => '',
330
- 'type' => 'checkbox',
331
- 'value' => $categories_settings['show_count']
332
- ),
333
- array(
334
- 'name' => 'hide_empty',
335
- 'label' => __( 'Hide Empty Categories', 'all-in-one-video-gallery' ),
336
- 'description' => '',
337
- 'type' => 'checkbox',
338
- 'value' => $categories_settings['hide_empty']
339
- )
340
- )
341
- )
342
- ),
343
- 'videos' => array(
344
- 'general' => array(
345
- 'title' => __( 'General Settings', 'all-in-one-video-gallery' ),
346
- 'fields' => array(
347
- array(
348
- 'name' => 'title',
349
- 'label' => __( 'Title', 'all-in-one-video-gallery' ),
350
- 'description' => '',
351
- 'type' => 'text',
352
- 'value' => ''
353
- ),
354
- array(
355
- 'name' => 'template',
356
- 'label' => __( 'Select Template', 'all-in-one-video-gallery' ),
357
- 'description' => ( aiovg_fs()->is_not_paying() ? sprintf( __( '<a href="%s" target="_blank">Upgrade Pro</a> for more templates (Popup, Slider, etc.)', 'all-in-one-video-gallery' ), esc_url( aiovg_fs()->get_upgrade_url() ) ) : '' ),
358
- 'type' => 'select',
359
- 'options' => $video_templates,
360
- 'value' => $videos_settings['template']
361
- ),
362
- array(
363
- 'name' => 'category',
364
- 'label' => __( 'Select Categories', 'all-in-one-video-gallery' ),
365
- 'description' => '',
366
- 'type' => 'categories',
367
- 'value' => array()
368
- ),
369
- array(
370
- 'name' => 'exclude',
371
- 'label' => __( 'Exclude Video ID(s)', 'all-in-one-video-gallery' ),
372
- 'description' => '',
373
- 'type' => 'text',
374
- 'value' => ''
375
- ),
376
- array(
377
- 'name' => 'limit',
378
- 'label' => __( 'Limit (per page)', 'all-in-one-video-gallery' ),
379
- 'description' => '',
380
- 'type' => 'number',
381
- 'min' => 0,
382
- 'max' => 500,
383
- 'step' => 1,
384
- 'value' => $videos_settings['limit']
385
- ),
386
- array(
387
- 'name' => 'orderby',
388
- 'label' => __( 'Order By', 'all-in-one-video-gallery' ),
389
- 'description' => '',
390
- 'type' => 'select',
391
- 'options' => array(
392
- 'title' => __( 'Title', 'all-in-one-video-gallery' ),
393
- 'date' => __( 'Date Posted', 'all-in-one-video-gallery' ),
394
- 'views' => __( 'Views Count', 'all-in-one-video-gallery' ),
395
- 'rand' => __( 'Random', 'all-in-one-video-gallery' )
396
- ),
397
- 'value' => $videos_settings['orderby']
398
- ),
399
- array(
400
- 'name' => 'order',
401
- 'label' => __( 'Order', 'all-in-one-video-gallery' ),
402
- 'description' => '',
403
- 'type' => 'select',
404
- 'options' => array(
405
- 'asc' => __( 'ASC', 'all-in-one-video-gallery' ),
406
- 'desc' => __( 'DESC', 'all-in-one-video-gallery' )
407
- ),
408
- 'value' => $videos_settings['order']
409
- ),
410
- array(
411
- 'name' => 'featured',
412
- 'label' => __( 'Featured Only', 'all-in-one-video-gallery' ),
413
- 'description' => '',
414
- 'type' => 'checkbox',
415
- 'value' => 0
416
- ),
417
- array(
418
- 'name' => 'related',
419
- 'label' => __( 'Follow URL', 'all-in-one-video-gallery' ) . ' (' . __( 'Related Videos', 'all-in-one-video-gallery' ) . ')',
420
- 'description' => '',
421
- 'type' => 'checkbox',
422
- 'value' => 0
423
- ),
424
- )
425
- ),
426
- 'gallery' => array(
427
- 'title' => __( 'Gallery Settings', 'all-in-one-video-gallery' ),
428
- 'fields' => array(
429
- array(
430
- 'name' => 'ratio',
431
- 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
432
- 'description' => '',
433
- 'type' => 'text',
434
- 'value' => $image_settings['ratio']
435
- ),
436
- array(
437
- 'name' => 'columns',
438
- 'label' => __( 'Columns', 'all-in-one-video-gallery' ),
439
- 'description' => '',
440
- 'type' => 'number',
441
- 'min' => 1,
442
- 'max' => 12,
443
- 'step' => 1,
444
- 'value' => $videos_settings['columns']
445
- ),
446
- array(
447
- 'name' => 'thumbnail_style',
448
- 'label' => __( 'Thumbnail Style', 'all-in-one-video-gallery' ),
449
- 'description' => '',
450
- 'type' => 'select',
451
- 'options' => array(
452
- 'standard' => __( 'Image Top Aligned', 'all-in-one-video-gallery' ),
453
- 'image-left' => __( 'Image Left Aligned', 'all-in-one-video-gallery' )
454
- ),
455
- 'value' => $videos_settings['thumbnail_style']
456
- ),
457
- array(
458
- 'name' => 'show_count',
459
- 'label' => __( 'Show Videos Count', 'all-in-one-video-gallery' ),
460
- 'description' => '',
461
- 'type' => 'checkbox',
462
- 'value' => 0
463
- ),
464
- array(
465
- 'name' => 'show_category',
466
- 'label' => __( 'Show Category Name', 'all-in-one-video-gallery' ),
467
- 'description' => '',
468
- 'type' => 'checkbox',
469
- 'value' => isset( $videos_settings['display']['category'] )
470
- ),
471
- array(
472
- 'name' => 'show_date',
473
- 'label' => __( 'Show Date Added', 'all-in-one-video-gallery' ),
474
- 'description' => '',
475
- 'type' => 'checkbox',
476
- 'value' => isset( $videos_settings['display']['date'] )
477
- ),
478
- array(
479
- 'name' => 'show_user',
480
- 'label' => __( 'Show Author Name', 'all-in-one-video-gallery' ),
481
- 'description' => '',
482
- 'type' => 'checkbox',
483
- 'value' => isset( $videos_settings['display']['user'] )
484
- ),
485
- array(
486
- 'name' => 'show_views',
487
- 'label' => __( 'Show Views Count', 'all-in-one-video-gallery' ),
488
- 'description' => '',
489
- 'type' => 'checkbox',
490
- 'value' => isset( $videos_settings['display']['views'] )
491
- ),
492
- array(
493
- 'name' => 'show_duration',
494
- 'label' => __( 'Show Video Duration', 'all-in-one-video-gallery' ),
495
- 'description' => '',
496
- 'type' => 'checkbox',
497
- 'value' => isset( $videos_settings['display']['duration'] )
498
- ),
499
- array(
500
- 'name' => 'show_excerpt',
501
- 'label' => __( 'Show Video Excerpt', 'all-in-one-video-gallery' ),
502
- 'description' => '',
503
- 'type' => 'checkbox',
504
- 'value' => isset( $videos_settings['display']['excerpt'] )
505
- ),
506
- array(
507
- 'name' => 'excerpt_length',
508
- 'label' => __( 'Excerpt Length', 'all-in-one-video-gallery' ),
509
- 'description' => '',
510
- 'type' => 'number',
511
- 'value' => $videos_settings['excerpt_length']
512
- ),
513
- array(
514
- 'name' => 'show_pagination',
515
- 'label' => __( 'Show Pagination', 'all-in-one-video-gallery' ),
516
- 'description' => '',
517
- 'type' => 'checkbox',
518
- 'value' => 1
519
- ),
520
- array(
521
- 'name' => 'show_more',
522
- 'label' => __( 'Show More Button', 'all-in-one-video-gallery' ),
523
- 'description' => '',
524
- 'type' => 'checkbox',
525
- 'value' => 0
526
- ),
527
- array(
528
- 'name' => 'more_label',
529
- 'label' => __( 'More Button Label', 'all-in-one-video-gallery' ),
530
- 'description' => '',
531
- 'type' => 'text',
532
- 'value' => __( 'Show More', 'all-in-one-video-gallery' )
533
- ),
534
- array(
535
- 'name' => 'more_link',
536
- 'label' => __( 'More Button Link', 'all-in-one-video-gallery' ),
537
- 'description' => '',
538
- 'type' => 'url',
539
- 'value' => ''
540
- ),
541
- )
542
- )
543
- ),
544
- 'video' => array(
545
- 'general' => array(
546
- 'title' => __( 'General Settings', 'all-in-one-video-gallery' ),
547
- 'fields' => array(
548
- array(
549
- 'name' => 'id',
550
- 'label' => __( 'Select Video', 'all-in-one-video-gallery' ),
551
- 'description' => '',
552
- 'type' => 'video',
553
- 'value' => 0
554
- ),
555
- array(
556
- 'name' => 'width',
557
- 'label' => __( 'Width', 'all-in-one-video-gallery' ),
558
- 'description' => '',
559
- 'type' => 'text',
560
- 'value' => ''
561
- ),
562
- array(
563
- 'name' => 'ratio',
564
- 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
565
- 'description' => '',
566
- 'type' => 'text',
567
- 'value' => $player_settings['ratio']
568
- ),
569
- array(
570
- 'name' => 'autoplay',
571
- 'label' => __( 'Autoplay', 'all-in-one-video-gallery' ),
572
- 'description' => '',
573
- 'type' => 'checkbox',
574
- 'value' => $player_settings['autoplay']
575
- ),
576
- array(
577
- 'name' => 'loop',
578
- 'label' => __( 'Loop', 'all-in-one-video-gallery' ),
579
- 'description' => '',
580
- 'type' => 'checkbox',
581
- 'value' => $player_settings['loop']
582
- )
583
- )
584
- ),
585
- 'controls' => array(
586
- 'title' => __( 'Player Controls', 'all-in-one-video-gallery' ),
587
- 'fields' => array(
588
- array(
589
- 'name' => 'playpause',
590
- 'label' => __( 'Play / Pause', 'all-in-one-video-gallery' ),
591
- 'description' => '',
592
- 'type' => 'checkbox',
593
- 'value' => isset( $player_settings['controls']['playpause'] )
594
- ),
595
- array(
596
- 'name' => 'current',
597
- 'label' => __( 'Current Time', 'all-in-one-video-gallery' ),
598
- 'description' => '',
599
- 'type' => 'checkbox',
600
- 'value' => isset( $player_settings['controls']['current'] )
601
- ),
602
- array(
603
- 'name' => 'progress',
604
- 'label' => __( 'Progressbar', 'all-in-one-video-gallery' ),
605
- 'description' => '',
606
- 'type' => 'checkbox',
607
- 'value' => isset( $player_settings['controls']['progress'] )
608
- ),
609
- array(
610
- 'name' => 'duration',
611
- 'label' => __( 'Duration', 'all-in-one-video-gallery' ),
612
- 'description' => '',
613
- 'type' => 'checkbox',
614
- 'value' => isset( $player_settings['controls']['duration'] )
615
- ),
616
- array(
617
- 'name' => 'tracks',
618
- 'label' => __( 'Subtitles', 'all-in-one-video-gallery' ),
619
- 'description' => '',
620
- 'type' => 'checkbox',
621
- 'value' => isset( $player_settings['controls']['tracks'] )
622
- ),
623
- array(
624
- 'name' => 'volume',
625
- 'label' => __( 'Volume', 'all-in-one-video-gallery' ),
626
- 'description' => '',
627
- 'type' => 'checkbox',
628
- 'value' => isset( $player_settings['controls']['volume'] )
629
- ),
630
- array(
631
- 'name' => 'fullscreen',
632
- 'label' => __( 'Fullscreen', 'all-in-one-video-gallery' ),
633
- 'description' => '',
634
- 'type' => 'checkbox',
635
- 'value' => isset( $player_settings['controls']['fullscreen'] )
636
- )
637
- )
638
- )
639
- ),
640
- 'search_form' => array(
641
- 'general' => array(
642
- 'title' => __( 'General Settings', 'all-in-one-video-gallery' ),
643
- 'fields' => array(
644
- array(
645
- 'name' => 'template',
646
- 'label' => __( 'Select Template', 'all-in-one-video-gallery' ),
647
- 'description' => '',
648
- 'type' => 'select',
649
- 'options' => array(
650
- 'vertical' => __( 'Vertical', 'all-in-one-video-gallery' ),
651
- 'horizontal' => __( 'Horizontal', 'all-in-one-video-gallery' )
652
- ),
653
- 'value' => 'horizontal'
654
- ),
655
- array(
656
- 'name' => 'category',
657
- 'label' => __( 'Search By Categories', 'all-in-one-video-gallery' ),
658
- 'description' => '',
659
- 'type' => 'checkbox',
660
- 'value' => 0
661
- )
662
- )
663
- )
664
- )
665
- );
666
-
667
- return apply_filters( 'aiovg_block_fields', $fields );
668
- }
669
-
670
  /**
671
  * Get the category page URL.
672
  *
@@ -692,6 +248,35 @@ function aiovg_get_category_page_url( $term ) {
692
  return $url;
693
  }
694
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
695
  /**
696
  * Get Dailymotion ID from URL.
697
  *
@@ -759,6 +344,7 @@ function aiovg_get_default_settings() {
759
  'ratio' => 56.25,
760
  'autoplay' => 1,
761
  'loop' => 0,
 
762
  'preload' => 'metadata',
763
  'controls' => array(
764
  'playpause' => 'playpause',
@@ -772,19 +358,6 @@ function aiovg_get_default_settings() {
772
  'use_native_controls' => array(
773
  'dailymotion' => 'dailymotion'
774
  )
775
- ),
776
- 'aiovg_image_settings' => array(
777
- 'ratio' => 56.25
778
- ),
779
- 'aiovg_categories_settings' => array(
780
- 'template' => 'grid',
781
- 'columns' => 3,
782
- 'orderby' => 'name',
783
- 'order' => 'asc',
784
- 'hierarchical' => 1,
785
- 'show_description' => 0,
786
- 'show_count' => 1,
787
- 'hide_empty' => 0
788
  ),
789
  'aiovg_videos_settings' => array(
790
  'template' => 'classic',
@@ -800,7 +373,17 @@ function aiovg_get_default_settings() {
800
  'duration' => 'duration'
801
  ),
802
  'excerpt_length' => 75
803
- ),
 
 
 
 
 
 
 
 
 
 
804
  'aiovg_video_settings' => array(
805
  'display' => array(
806
  'category' => 'category',
@@ -809,24 +392,27 @@ function aiovg_get_default_settings() {
809
  ),
810
  'has_comments' => 1
811
  ),
812
- 'aiovg_privacy_settings' => array(
813
- 'show_consent' => 0,
814
- 'consent_message' => __( '<strong>Please accept cookies to play this video</strong>. By accepting you will be accessing content from a service provided by an external third party.', 'all-in-one-video-gallery' ),
815
- 'consent_button_label' => __( 'Accept', 'all-in-one-video-gallery' )
816
- ),
817
  'aiovg_permalink_settings' => array(
818
  'video' => 'aiovg_videos'
819
  ),
820
  'aiovg_socialshare_settings' => array(
821
  'services' => array(
822
  'facebook' => 'facebook',
823
- 'twitter' => 'twitter',
824
- 'gplus' => 'gplus',
825
  'linkedin' => 'linkedin',
826
- 'pinterest' => 'pinterest'
 
827
  )
828
  ),
829
- 'aiovg_page_settings' => aiovg_insert_custom_pages()
 
 
 
 
830
  );
831
 
832
  return $defaults;
@@ -839,24 +425,30 @@ function aiovg_get_default_settings() {
839
  * @param string $embedcode Iframe Embed Code.
840
  * @return string $url Image URL.
841
  */
842
- function aiovg_get_embedcode_image_url( $embedcode ) {
 
 
843
  $document = new DOMDocument();
844
- $document->loadHTML( $embedcode );
845
-
846
  $iframes = $document->getElementsByTagName( 'iframe' );
847
- $src = $iframes->item(0)->getAttribute( 'src' );
 
 
848
 
849
- // YouTube
850
- $url = aiovg_get_youtube_image_url( $src );
851
-
852
- // Vimeo
853
- if ( empty( $url ) ) {
854
- $url = aiovg_get_vimeo_image_url( $src );
855
- }
856
-
857
- // Dailymotion
858
- if ( empty( $url ) ) {
859
- $url = aiovg_get_dailymotion_image_url( $src );
 
 
860
  }
861
 
862
  // Return image url
@@ -937,15 +529,18 @@ function aiovg_get_image_url( $id, $size = "large", $default = '', $type = 'gall
937
  * Get message to display based on the $type input.
938
  *
939
  * @since 1.0.0
940
- * @param string $type Type of the message.
941
  * @return string $message Message to display.
942
  */
943
- function aiovg_get_message( $type ) {
944
  $message = '';
945
 
946
- switch ( $type ) {
947
- case 'empty':
948
- $message = __( 'No Items found.', 'all-in-one-video-gallery' );
 
 
 
949
  break;
950
  }
951
 
@@ -972,6 +567,36 @@ function aiovg_get_page_number() {
972
  return absint( $paged );
973
  }
974
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
975
  /**
976
  * Get player HTML.
977
  *
@@ -997,6 +622,7 @@ function aiovg_get_player_html( $post_id = 0, $atts = array() ) {
997
  'poster' => '',
998
  'autoplay' => '',
999
  'loop' => '',
 
1000
  'playpause' => '',
1001
  'current' => '',
1002
  'progress' => '',
@@ -1081,6 +707,7 @@ function aiovg_get_player_page_url( $post_id = 0, $atts = array() ) {
1081
  break;
1082
  case 'autoplay':
1083
  case 'loop':
 
1084
  case 'playpause':
1085
  case 'current':
1086
  case 'progress':
@@ -1120,6 +747,533 @@ function aiovg_get_search_page_url() {
1120
  return $url;
1121
  }
1122
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1123
  /**
1124
  * Get unique ID.
1125
  *
@@ -1127,13 +1281,13 @@ function aiovg_get_search_page_url() {
1127
  * @return string Unique ID.
1128
  */
1129
  function aiovg_get_uniqid() {
1130
- global $aiovg_uniqid;
1131
 
1132
- if ( ! $aiovg_uniqid ) {
1133
- $aiovg_uniqid = 0;
1134
  }
1135
 
1136
- return uniqid() . ++$aiovg_uniqid;
1137
  }
1138
 
1139
  /**
@@ -1320,28 +1474,9 @@ function aiovg_insert_array_after( $key, $array, $new_array ) {
1320
  */
1321
  function aiovg_insert_custom_pages() {
1322
  // Vars
1323
- if ( false == get_option( 'aiovg_page_settings' ) ) {
1324
- $page_definitions = array(
1325
- 'category' => array(
1326
- 'title' => __( 'Video Category', 'all-in-one-video-gallery' ),
1327
- 'content' => '[aiovg_category]'
1328
- ),
1329
- 'search' => array(
1330
- 'title' => __( 'Search Videos', 'all-in-one-video-gallery' ),
1331
- 'content' => '[aiovg_search]'
1332
- ),
1333
- 'user_videos' => array(
1334
- 'title' => __( 'User Videos', 'all-in-one-video-gallery' ),
1335
- 'content' => '[aiovg_user_videos]'
1336
- ),
1337
- 'player' => array(
1338
- 'title' => __( 'Player Embed', 'all-in-one-video-gallery' ),
1339
- 'content' => ''
1340
- )
1341
- );
1342
-
1343
- // ...
1344
  $pages = array();
 
1345
 
1346
  foreach ( $page_definitions as $slug => $page ) {
1347
  $page_check = get_page_by_title( $page['title'] );
@@ -1442,19 +1577,20 @@ function aiovg_sanitize_int( $value ) {
1442
  * @param int $post_id Post ID
1443
  */
1444
  function aiovg_update_views_count( $post_id ) {
1445
- $user_ip = $_SERVER['REMOTE_ADDR']; // Retrieve the current IP address of the visitor
1446
- $key = $user_ip . '_aiovg_' . $post_id; // Combine post ID & IP to form unique key
1447
- $value = array( $user_ip, $post_id ); // Store post ID & IP as separate values
1448
- $visited = get_transient( $key ); // Get transient and store in variable
1449
 
1450
- // Check to see if the post ID/IP ($key) address is currently stored as a transient
1451
- if ( false === $visited ) {
1452
- // Store the unique key, Post ID & IP address for 12 hours if it does not exist
1453
- set_transient( $key, $value, 60 * 60 * 12 );
1454
 
1455
- // Now run post views function
1456
  $count = (int) get_post_meta( $post_id, 'views', true );
1457
  update_post_meta( $post_id, 'views', ++$count );
 
 
 
 
1458
  }
1459
  }
1460
 
@@ -1576,6 +1712,7 @@ function the_aiovg_socialshare_buttons() {
1576
  // Get current page title
1577
  $title = get_the_title();
1578
  $title = str_replace( ' ', '%20', $title );
 
1579
 
1580
  // Get image
1581
  $image_url = get_post_meta( $post->ID, 'image', true );
@@ -1587,28 +1724,49 @@ function the_aiovg_socialshare_buttons() {
1587
  $buttons = array();
1588
 
1589
  if ( isset( $socialshare_settings['services']['facebook'] ) ) {
1590
- $facebook = "https://www.facebook.com/sharer/sharer.php?u={$url}";
1591
- $buttons[] = sprintf( '<a class="aiovg-social-facebook aiovg-link-social" href="%s" target="_blank">%s</a>', $facebook, __( 'Facebook', 'all-in-one-video-gallery' ) );
 
 
 
1592
  }
1593
 
1594
  if ( isset( $socialshare_settings['services']['twitter'] ) ) {
1595
- $twitter = "https://twitter.com/intent/tweet?text={$title}&amp;url={$url}";
1596
- $buttons[] = sprintf( '<a class="aiovg-social-twitter aiovg-link-social" href="%s" target="_blank">%s</a>', $twitter, __( 'Twitter', 'all-in-one-video-gallery' ) );
1597
- }
1598
-
1599
- if ( isset( $socialshare_settings['services']['gplus'] ) ) {
1600
- $google = "https://plus.google.com/share?url={$url}";
1601
- $buttons[] = sprintf( '<a class="aiovg-social-googleplus aiovg-link-social" href="%s" target="_blank">%s</a>', $google, __( 'Google+', 'all-in-one-video-gallery' ) );
1602
- }
1603
 
1604
  if ( isset( $socialshare_settings['services']['linkedin'] ) ) {
1605
- $linkedin = "https://www.linkedin.com/shareArticle?url={$url}&amp;title={$title}";
1606
- $buttons[] = sprintf( '<a class="aiovg-social-linkedin aiovg-link-social" href="%s" target="_blank">%s</a>', $linkedin, __( 'Linkedin', 'all-in-one-video-gallery' ) );
 
 
 
1607
  }
1608
 
1609
  if ( isset( $socialshare_settings['services']['pinterest'] ) ) {
1610
- $pinterest = "https://pinterest.com/pin/create/button/?url={$url}&amp;media={$image}&amp;description={$title}";
1611
- $buttons[] = sprintf( '<a class="aiovg-social-pinterest aiovg-link-social" href="%s" target="_blank">%s</a>', $pinterest, __( 'Pin It', 'all-in-one-video-gallery' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1612
  }
1613
 
1614
  if ( count( $buttons ) ) {
223
  return $attachment_id;
224
  }
225
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
  /**
227
  * Get the category page URL.
228
  *
248
  return $url;
249
  }
250
 
251
+ /**
252
+ * Get the list of custom plugin pages.
253
+ *
254
+ * @since 1.6.5
255
+ * @return array $pages Array of pages.
256
+ */
257
+ function aiovg_get_custom_pages_list() {
258
+ $pages = array(
259
+ 'category' => array(
260
+ 'title' => __( 'Video Category', 'all-in-one-video-gallery' ),
261
+ 'content' => '[aiovg_category]'
262
+ ),
263
+ 'search' => array(
264
+ 'title' => __( 'Search Videos', 'all-in-one-video-gallery' ),
265
+ 'content' => '[aiovg_search]'
266
+ ),
267
+ 'user_videos' => array(
268
+ 'title' => __( 'User Videos', 'all-in-one-video-gallery' ),
269
+ 'content' => '[aiovg_user_videos]'
270
+ ),
271
+ 'player' => array(
272
+ 'title' => __( 'Player Embed', 'all-in-one-video-gallery' ),
273
+ 'content' => ''
274
+ )
275
+ );
276
+
277
+ return apply_filters( 'aiovg_custom_pages_list', $pages );
278
+ }
279
+
280
  /**
281
  * Get Dailymotion ID from URL.
282
  *
344
  'ratio' => 56.25,
345
  'autoplay' => 1,
346
  'loop' => 0,
347
+ 'muted' => 0,
348
  'preload' => 'metadata',
349
  'controls' => array(
350
  'playpause' => 'playpause',
358
  'use_native_controls' => array(
359
  'dailymotion' => 'dailymotion'
360
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
361
  ),
362
  'aiovg_videos_settings' => array(
363
  'template' => 'classic',
373
  'duration' => 'duration'
374
  ),
375
  'excerpt_length' => 75
376
+ ),
377
+ 'aiovg_categories_settings' => array(
378
+ 'template' => 'grid',
379
+ 'columns' => 3,
380
+ 'orderby' => 'name',
381
+ 'order' => 'asc',
382
+ 'hierarchical' => 1,
383
+ 'show_description' => 0,
384
+ 'show_count' => 1,
385
+ 'hide_empty' => 0
386
+ ),
387
  'aiovg_video_settings' => array(
388
  'display' => array(
389
  'category' => 'category',
392
  ),
393
  'has_comments' => 1
394
  ),
395
+ 'aiovg_image_settings' => array(
396
+ 'ratio' => 56.25
397
+ ),
398
+ 'aiovg_page_settings' => aiovg_insert_custom_pages(),
 
399
  'aiovg_permalink_settings' => array(
400
  'video' => 'aiovg_videos'
401
  ),
402
  'aiovg_socialshare_settings' => array(
403
  'services' => array(
404
  'facebook' => 'facebook',
405
+ 'twitter' => 'twitter',
 
406
  'linkedin' => 'linkedin',
407
+ 'pinterest' => 'pinterest',
408
+ 'whatsapp' => 'whatsapp'
409
  )
410
  ),
411
+ 'aiovg_privacy_settings' => array(
412
+ 'show_consent' => 0,
413
+ 'consent_message' => __( '<strong>Please accept cookies to play this video</strong>. By accepting you will be accessing content from a service provided by an external third party.', 'all-in-one-video-gallery' ),
414
+ 'consent_button_label' => __( 'Accept', 'all-in-one-video-gallery' )
415
+ )
416
  );
417
 
418
  return $defaults;
425
  * @param string $embedcode Iframe Embed Code.
426
  * @return string $url Image URL.
427
  */
428
+ function aiovg_get_embedcode_image_url( $embedcode ) {
429
+ $url = '';
430
+
431
  $document = new DOMDocument();
432
+ $document->loadHTML( $embedcode );
433
+
434
  $iframes = $document->getElementsByTagName( 'iframe' );
435
+ if ( $iframes->length > 0 ) {
436
+ if ( $iframes->item(0)->hasAttribute( 'src' ) ) {
437
+ $src = $iframes->item(0)->getAttribute( 'src' );
438
 
439
+ // YouTube
440
+ $url = aiovg_get_youtube_image_url( $src );
441
+
442
+ // Vimeo
443
+ if ( empty( $url ) ) {
444
+ $url = aiovg_get_vimeo_image_url( $src );
445
+ }
446
+
447
+ // Dailymotion
448
+ if ( empty( $url ) ) {
449
+ $url = aiovg_get_dailymotion_image_url( $src );
450
+ }
451
+ }
452
  }
453
 
454
  // Return image url
529
  * Get message to display based on the $type input.
530
  *
531
  * @since 1.0.0
532
+ * @param string $msg_id Message Identifier.
533
  * @return string $message Message to display.
534
  */
535
+ function aiovg_get_message( $msg_id ) {
536
  $message = '';
537
 
538
+ switch ( $msg_id ) {
539
+ case 'videos_empty':
540
+ $message = __( 'No Videos found.', 'all-in-one-video-gallery' );
541
+ break;
542
+ case 'categories_empty':
543
+ $message = __( 'No Categories found.', 'all-in-one-video-gallery' );
544
  break;
545
  }
546
 
567
  return absint( $paged );
568
  }
569
 
570
+ /**
571
+ * Get MySQL's RAND function seed value.
572
+ *
573
+ * @since 1.6.5
574
+ * @return string $seed Seed value.
575
+ */
576
+ function aiovg_get_orderby_rand_seed() {
577
+ global $aiovg;
578
+
579
+ $seed = '';
580
+
581
+ if ( isset( $aiovg['rand_seed'] ) ) {
582
+ $aiovg['rand_seed'] = sanitize_text_field( $aiovg['rand_seed'] );
583
+ $seed = $aiovg['rand_seed'];
584
+
585
+ if ( 1 == aiovg_get_page_number() ) {
586
+ $transient_seed = get_transient( 'aiovg_rand_seed_' . $aiovg['rand_seed'] );
587
+
588
+ if ( empty( $transient_seed ) ) {
589
+ $seed = wp_rand();
590
+ set_transient( 'aiovg_rand_seed_' . $aiovg['rand_seed'], $seed, 12 * 60 * 60 );
591
+ } else {
592
+ $seed = sanitize_text_field( $transient_seed );
593
+ }
594
+ }
595
+ }
596
+
597
+ return $seed;
598
+ }
599
+
600
  /**
601
  * Get player HTML.
602
  *
622
  'poster' => '',
623
  'autoplay' => '',
624
  'loop' => '',
625
+ 'muted' => '',
626
  'playpause' => '',
627
  'current' => '',
628
  'progress' => '',
707
  break;
708
  case 'autoplay':
709
  case 'loop':
710
+ case 'muted':
711
  case 'playpause':
712
  case 'current':
713
  case 'progress':
747
  return $url;
748
  }
749
 
750
+ /**
751
+ * Get shortcode builder form fields.
752
+ *
753
+ * @since 1.5.7
754
+ */
755
+ function aiovg_get_shortcode_fields() {
756
+ $defaults = aiovg_get_default_settings();
757
+ $image_settings = array_merge( $defaults['aiovg_image_settings'], get_option( 'aiovg_image_settings', array() ) );
758
+ $categories_settings = array_merge( $defaults['aiovg_categories_settings'], get_option( 'aiovg_categories_settings', array() ) );
759
+ $videos_settings = array_merge( $defaults['aiovg_videos_settings'], get_option( 'aiovg_videos_settings', array() ) );
760
+ $player_settings = array_merge( $defaults['aiovg_player_settings'], get_option( 'aiovg_player_settings', array() ) );
761
+ $video_templates = aiovg_get_video_templates();
762
+
763
+ // Fields
764
+ $fields = array(
765
+ 'video' => array(
766
+ 'title' => __( 'Single Video', 'all-in-one-video-gallery' ),
767
+ 'sections' => array(
768
+ 'general' => array(
769
+ 'title' => __( 'General', 'all-in-one-video-gallery' ),
770
+ 'fields' => array(
771
+ array(
772
+ 'name' => 'id',
773
+ 'label' => __( 'Select Video', 'all-in-one-video-gallery' ),
774
+ 'description' => '',
775
+ 'type' => 'video',
776
+ 'value' => 0
777
+ ),
778
+ array(
779
+ 'name' => 'type',
780
+ 'label' => __( 'Source Type', 'all-in-one-video-gallery' ),
781
+ 'description' => '',
782
+ 'type' => 'select',
783
+ 'options' => aiovg_get_video_source_types(),
784
+ 'value' => 'default'
785
+ ),
786
+ array(
787
+ 'name' => 'mp4',
788
+ 'label' => __( 'MP4', 'all-in-one-video-gallery' ),
789
+ 'description' => __( 'Enter your direct file URL in the textbox above (OR) upload your file using the "Upload File" link.', 'all-in-one-video-gallery' ),
790
+ 'type' => 'media',
791
+ 'value' => ''
792
+ ),
793
+ array(
794
+ 'name' => 'youtube',
795
+ 'label' => __( 'YouTube', 'all-in-one-video-gallery' ),
796
+ 'description' => sprintf( '%s: https://www.youtube.com/watch?v=twYp6W6vt2U', __( 'Example', 'all-in-one-video-gallery' ) ),
797
+ 'type' => 'text',
798
+ 'value' => ''
799
+ ),
800
+ array(
801
+ 'name' => 'vimeo',
802
+ 'label' => __( 'Vimeo', 'all-in-one-video-gallery' ),
803
+ 'description' => sprintf( '%s: https://vimeo.com/108018156', __( 'Example', 'all-in-one-video-gallery' ) ),
804
+ 'type' => 'text',
805
+ 'value' => ''
806
+ ),
807
+ array(
808
+ 'name' => 'dailymotion',
809
+ 'label' => __( 'Dailymotion', 'all-in-one-video-gallery' ),
810
+ 'description' => sprintf( '%s: https://www.dailymotion.com/video/x11prnt', __( 'Example', 'all-in-one-video-gallery' ) ),
811
+ 'type' => 'text',
812
+ 'value' => ''
813
+ ),
814
+ array(
815
+ 'name' => 'facebook',
816
+ 'label' => __( 'Facebook', 'all-in-one-video-gallery' ),
817
+ 'description' => sprintf( '%s: https://www.facebook.com/facebook/videos/10155278547321729', __( 'Example', 'all-in-one-video-gallery' ) ),
818
+ 'type' => 'text',
819
+ 'value' => ''
820
+ ),
821
+ array(
822
+ 'name' => 'poster',
823
+ 'label' => __( 'Image', 'all-in-one-video-gallery' ),
824
+ 'description' => __( 'Enter your direct file URL in the textbox above (OR) upload your file using the "Upload File" link.', 'all-in-one-video-gallery' ),
825
+ 'type' => 'media',
826
+ 'value' => ''
827
+ ),
828
+ array(
829
+ 'name' => 'width',
830
+ 'label' => __( 'Width', 'all-in-one-video-gallery' ),
831
+ 'description' => __( 'In pixels. Maximum width of the player. Leave this field empty to scale 100% of its enclosing container/html element.', 'all-in-one-video-gallery' ),
832
+ 'type' => 'text',
833
+ 'value' => ''
834
+ ),
835
+ array(
836
+ 'name' => 'ratio',
837
+ 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
838
+ 'description' => __( "In percentage. 1 to 100. Calculate player's height using the ratio value entered.", 'all-in-one-video-gallery' ),
839
+ 'type' => 'text',
840
+ 'value' => $player_settings['ratio']
841
+ ),
842
+ array(
843
+ 'name' => 'autoplay',
844
+ 'label' => __( 'Autoplay', 'all-in-one-video-gallery' ),
845
+ 'description' => '',
846
+ 'type' => 'checkbox',
847
+ 'value' => $player_settings['autoplay']
848
+ ),
849
+ array(
850
+ 'name' => 'loop',
851
+ 'label' => __( 'Loop', 'all-in-one-video-gallery' ),
852
+ 'description' => '',
853
+ 'type' => 'checkbox',
854
+ 'value' => $player_settings['loop']
855
+ ),
856
+ array(
857
+ 'name' => 'muted',
858
+ 'label' => __( 'Muted', 'all-in-one-video-gallery' ),
859
+ 'description' => '',
860
+ 'type' => 'checkbox',
861
+ 'value' => $player_settings['muted']
862
+ )
863
+ )
864
+ ),
865
+ 'controls' => array(
866
+ 'title' => __( 'Player Controls', 'all-in-one-video-gallery' ),
867
+ 'fields' => array(
868
+ array(
869
+ 'name' => 'playpause',
870
+ 'label' => __( 'Play / Pause', 'all-in-one-video-gallery' ),
871
+ 'description' => '',
872
+ 'type' => 'checkbox',
873
+ 'value' => isset( $player_settings['controls']['playpause'] )
874
+ ),
875
+ array(
876
+ 'name' => 'current',
877
+ 'label' => __( 'Current Time', 'all-in-one-video-gallery' ),
878
+ 'description' => '',
879
+ 'type' => 'checkbox',
880
+ 'value' => isset( $player_settings['controls']['current'] )
881
+ ),
882
+ array(
883
+ 'name' => 'progress',
884
+ 'label' => __( 'Progressbar', 'all-in-one-video-gallery' ),
885
+ 'description' => '',
886
+ 'type' => 'checkbox',
887
+ 'value' => isset( $player_settings['controls']['progress'] )
888
+ ),
889
+ array(
890
+ 'name' => 'duration',
891
+ 'label' => __( 'Duration', 'all-in-one-video-gallery' ),
892
+ 'description' => '',
893
+ 'type' => 'checkbox',
894
+ 'value' => isset( $player_settings['controls']['duration'] )
895
+ ),
896
+ array(
897
+ 'name' => 'tracks',
898
+ 'label' => __( 'Subtitles', 'all-in-one-video-gallery' ),
899
+ 'description' => '',
900
+ 'type' => 'checkbox',
901
+ 'value' => isset( $player_settings['controls']['tracks'] )
902
+ ),
903
+ array(
904
+ 'name' => 'volume',
905
+ 'label' => __( 'Volume', 'all-in-one-video-gallery' ),
906
+ 'description' => '',
907
+ 'type' => 'checkbox',
908
+ 'value' => isset( $player_settings['controls']['volume'] )
909
+ ),
910
+ array(
911
+ 'name' => 'fullscreen',
912
+ 'label' => __( 'Fullscreen', 'all-in-one-video-gallery' ),
913
+ 'description' => '',
914
+ 'type' => 'checkbox',
915
+ 'value' => isset( $player_settings['controls']['fullscreen'] )
916
+ )
917
+ )
918
+ )
919
+ )
920
+ ),
921
+ 'videos' => array(
922
+ 'title' => __( 'Video Gallery', 'all-in-one-video-gallery' ),
923
+ 'sections' => array(
924
+ 'general' => array(
925
+ 'title' => __( 'General', 'all-in-one-video-gallery' ),
926
+ 'fields' => array(
927
+ array(
928
+ 'name' => 'title',
929
+ 'label' => __( 'Title', 'all-in-one-video-gallery' ),
930
+ 'description' => '',
931
+ 'type' => 'text',
932
+ 'value' => ''
933
+ ),
934
+ array(
935
+ 'name' => 'template',
936
+ 'label' => __( 'Select Template', 'all-in-one-video-gallery' ),
937
+ 'description' => ( aiovg_fs()->is_not_paying() ? sprintf( __( '<a href="%s" target="_blank">Upgrade Pro</a> for more templates (Popup, Slider, etc.)', 'all-in-one-video-gallery' ), esc_url( aiovg_fs()->get_upgrade_url() ) ) : '' ),
938
+ 'type' => 'select',
939
+ 'options' => $video_templates,
940
+ 'value' => $videos_settings['template']
941
+ ),
942
+ array(
943
+ 'name' => 'category',
944
+ 'label' => __( 'Select Categories', 'all-in-one-video-gallery' ),
945
+ 'description' => '',
946
+ 'type' => 'categories',
947
+ 'value' => array()
948
+ ),
949
+ array(
950
+ 'name' => 'include',
951
+ 'label' => __( 'Include Video ID(s)', 'all-in-one-video-gallery' ),
952
+ 'description' => '',
953
+ 'type' => 'text',
954
+ 'value' => ''
955
+ ),
956
+ array(
957
+ 'name' => 'exclude',
958
+ 'label' => __( 'Exclude Video ID(s)', 'all-in-one-video-gallery' ),
959
+ 'description' => '',
960
+ 'type' => 'text',
961
+ 'value' => ''
962
+ ),
963
+ array(
964
+ 'name' => 'limit',
965
+ 'label' => __( 'Limit (per page)', 'all-in-one-video-gallery' ),
966
+ 'description' => '',
967
+ 'type' => 'number',
968
+ 'min' => 0,
969
+ 'max' => 500,
970
+ 'step' => 1,
971
+ 'value' => $videos_settings['limit']
972
+ ),
973
+ array(
974
+ 'name' => 'orderby',
975
+ 'label' => __( 'Order By', 'all-in-one-video-gallery' ),
976
+ 'description' => '',
977
+ 'type' => 'select',
978
+ 'options' => array(
979
+ 'title' => __( 'Title', 'all-in-one-video-gallery' ),
980
+ 'date' => __( 'Date Posted', 'all-in-one-video-gallery' ),
981
+ 'views' => __( 'Views Count', 'all-in-one-video-gallery' ),
982
+ 'rand' => __( 'Random', 'all-in-one-video-gallery' )
983
+ ),
984
+ 'value' => $videos_settings['orderby']
985
+ ),
986
+ array(
987
+ 'name' => 'order',
988
+ 'label' => __( 'Order', 'all-in-one-video-gallery' ),
989
+ 'description' => '',
990
+ 'type' => 'select',
991
+ 'options' => array(
992
+ 'asc' => __( 'ASC', 'all-in-one-video-gallery' ),
993
+ 'desc' => __( 'DESC', 'all-in-one-video-gallery' )
994
+ ),
995
+ 'value' => $videos_settings['order']
996
+ ),
997
+ array(
998
+ 'name' => 'featured',
999
+ 'label' => __( 'Featured Only', 'all-in-one-video-gallery' ),
1000
+ 'description' => '',
1001
+ 'type' => 'checkbox',
1002
+ 'value' => 0
1003
+ ),
1004
+ array(
1005
+ 'name' => 'related',
1006
+ 'label' => __( 'Follow URL', 'all-in-one-video-gallery' ) . ' (' . __( 'Related Videos', 'all-in-one-video-gallery' ) . ')',
1007
+ 'description' => '',
1008
+ 'type' => 'checkbox',
1009
+ 'value' => 0
1010
+ ),
1011
+ )
1012
+ ),
1013
+ 'gallery' => array(
1014
+ 'title' => __( 'Gallery', 'all-in-one-video-gallery' ),
1015
+ 'fields' => array(
1016
+ array(
1017
+ 'name' => 'ratio',
1018
+ 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
1019
+ 'description' => '',
1020
+ 'type' => 'text',
1021
+ 'value' => $image_settings['ratio']
1022
+ ),
1023
+ array(
1024
+ 'name' => 'columns',
1025
+ 'label' => __( 'Columns', 'all-in-one-video-gallery' ),
1026
+ 'description' => '',
1027
+ 'type' => 'number',
1028
+ 'min' => 1,
1029
+ 'max' => 12,
1030
+ 'step' => 1,
1031
+ 'value' => $videos_settings['columns']
1032
+ ),
1033
+ array(
1034
+ 'name' => 'thumbnail_style',
1035
+ 'label' => __( 'Thumbnail Style', 'all-in-one-video-gallery' ),
1036
+ 'description' => '',
1037
+ 'type' => 'select',
1038
+ 'options' => array(
1039
+ 'standard' => __( 'Image Top Aligned', 'all-in-one-video-gallery' ),
1040
+ 'image-left' => __( 'Image Left Aligned', 'all-in-one-video-gallery' )
1041
+ ),
1042
+ 'value' => $videos_settings['thumbnail_style']
1043
+ ),
1044
+ array(
1045
+ 'name' => 'show_count',
1046
+ 'label' => __( 'Show Videos Count', 'all-in-one-video-gallery' ),
1047
+ 'description' => '',
1048
+ 'type' => 'checkbox',
1049
+ 'value' => 0
1050
+ ),
1051
+ array(
1052
+ 'name' => 'show_category',
1053
+ 'label' => __( 'Show Category Name', 'all-in-one-video-gallery' ),
1054
+ 'description' => '',
1055
+ 'type' => 'checkbox',
1056
+ 'value' => isset( $videos_settings['display']['category'] )
1057
+ ),
1058
+ array(
1059
+ 'name' => 'show_date',
1060
+ 'label' => __( 'Show Date Added', 'all-in-one-video-gallery' ),
1061
+ 'description' => '',
1062
+ 'type' => 'checkbox',
1063
+ 'value' => isset( $videos_settings['display']['date'] )
1064
+ ),
1065
+ array(
1066
+ 'name' => 'show_user',
1067
+ 'label' => __( 'Show Author Name', 'all-in-one-video-gallery' ),
1068
+ 'description' => '',
1069
+ 'type' => 'checkbox',
1070
+ 'value' => isset( $videos_settings['display']['user'] )
1071
+ ),
1072
+ array(
1073
+ 'name' => 'show_views',
1074
+ 'label' => __( 'Show Views Count', 'all-in-one-video-gallery' ),
1075
+ 'description' => '',
1076
+ 'type' => 'checkbox',
1077
+ 'value' => isset( $videos_settings['display']['views'] )
1078
+ ),
1079
+ array(
1080
+ 'name' => 'show_duration',
1081
+ 'label' => __( 'Show Video Duration', 'all-in-one-video-gallery' ),
1082
+ 'description' => '',
1083
+ 'type' => 'checkbox',
1084
+ 'value' => isset( $videos_settings['display']['duration'] )
1085
+ ),
1086
+ array(
1087
+ 'name' => 'show_excerpt',
1088
+ 'label' => __( 'Show Video Excerpt', 'all-in-one-video-gallery' ),
1089
+ 'description' => '',
1090
+ 'type' => 'checkbox',
1091
+ 'value' => isset( $videos_settings['display']['excerpt'] )
1092
+ ),
1093
+ array(
1094
+ 'name' => 'excerpt_length',
1095
+ 'label' => __( 'Excerpt Length', 'all-in-one-video-gallery' ),
1096
+ 'description' => '',
1097
+ 'type' => 'number',
1098
+ 'value' => $videos_settings['excerpt_length']
1099
+ ),
1100
+ array(
1101
+ 'name' => 'show_pagination',
1102
+ 'label' => __( 'Show Pagination', 'all-in-one-video-gallery' ),
1103
+ 'description' => '',
1104
+ 'type' => 'checkbox',
1105
+ 'value' => 1
1106
+ ),
1107
+ array(
1108
+ 'name' => 'show_more',
1109
+ 'label' => __( 'Show More Button', 'all-in-one-video-gallery' ),
1110
+ 'description' => '',
1111
+ 'type' => 'checkbox',
1112
+ 'value' => 0
1113
+ ),
1114
+ array(
1115
+ 'name' => 'more_label',
1116
+ 'label' => __( 'More Button Label', 'all-in-one-video-gallery' ),
1117
+ 'description' => '',
1118
+ 'type' => 'text',
1119
+ 'value' => __( 'Show More', 'all-in-one-video-gallery' )
1120
+ ),
1121
+ array(
1122
+ 'name' => 'more_link',
1123
+ 'label' => __( 'More Button Link', 'all-in-one-video-gallery' ),
1124
+ 'description' => '',
1125
+ 'type' => 'url',
1126
+ 'value' => ''
1127
+ ),
1128
+ )
1129
+ )
1130
+ )
1131
+ ),
1132
+ 'categories' => array(
1133
+ 'title' => __( 'Categories', 'all-in-one-video-gallery' ),
1134
+ 'sections' => array(
1135
+ 'general' => array(
1136
+ 'title' => __( 'General', 'all-in-one-video-gallery' ),
1137
+ 'fields' => array(
1138
+ array(
1139
+ 'name' => 'title',
1140
+ 'label' => __( 'Title', 'all-in-one-video-gallery' ),
1141
+ 'description' => '',
1142
+ 'type' => 'text',
1143
+ 'value' => ''
1144
+ ),
1145
+ array(
1146
+ 'name' => 'template',
1147
+ 'label' => __( 'Select Template', 'all-in-one-video-gallery' ),
1148
+ 'description' => '',
1149
+ 'type' => 'select',
1150
+ 'options' => array(
1151
+ 'grid' => __( 'Grid', 'all-in-one-video-gallery' ),
1152
+ 'list' => __( 'List', 'all-in-one-video-gallery' )
1153
+ ),
1154
+ 'value' => $categories_settings['template']
1155
+ ),
1156
+ array(
1157
+ 'name' => 'id',
1158
+ 'label' => __( 'Select Parent', 'all-in-one-video-gallery' ),
1159
+ 'description' => '',
1160
+ 'type' => 'parent',
1161
+ 'options' => array(),
1162
+ 'value' => 0
1163
+ ),
1164
+ array(
1165
+ 'name' => 'include',
1166
+ 'label' => __( 'Include Category ID(s)', 'all-in-one-video-gallery' ),
1167
+ 'description' => '',
1168
+ 'type' => 'text',
1169
+ 'value' => ''
1170
+ ),
1171
+ array(
1172
+ 'name' => 'ratio',
1173
+ 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
1174
+ 'description' => '',
1175
+ 'type' => 'text',
1176
+ 'value' => $image_settings['ratio']
1177
+ ),
1178
+ array(
1179
+ 'name' => 'columns',
1180
+ 'label' => __( 'Columns', 'all-in-one-video-gallery' ),
1181
+ 'description' => '',
1182
+ 'type' => 'number',
1183
+ 'min' => 1,
1184
+ 'max' => 12,
1185
+ 'step' => 1,
1186
+ 'value' => $categories_settings['columns']
1187
+ ),
1188
+ array(
1189
+ 'name' => 'orderby',
1190
+ 'label' => __( 'Order By', 'all-in-one-video-gallery' ),
1191
+ 'description' => '',
1192
+ 'type' => 'select',
1193
+ 'options' => array(
1194
+ 'id' => __( 'ID', 'all-in-one-video-gallery' ),
1195
+ 'count' => __( 'Count', 'all-in-one-video-gallery' ),
1196
+ 'name' => __( 'Name', 'all-in-one-video-gallery' ),
1197
+ 'slug' => __( 'Slug', 'all-in-one-video-gallery' )
1198
+ ),
1199
+ 'value' => $categories_settings['orderby']
1200
+ ),
1201
+ array(
1202
+ 'name' => 'order',
1203
+ 'label' => __( 'Order', 'all-in-one-video-gallery' ),
1204
+ 'description' => '',
1205
+ 'type' => 'select',
1206
+ 'options' => array(
1207
+ 'asc' => __( 'ASC', 'all-in-one-video-gallery' ),
1208
+ 'desc' => __( 'DESC', 'all-in-one-video-gallery' )
1209
+ ),
1210
+ 'value' => $categories_settings['order']
1211
+ ),
1212
+ array(
1213
+ 'name' => 'hierarchical',
1214
+ 'label' => __( 'Show Hierarchy', 'all-in-one-video-gallery' ),
1215
+ 'description' => '',
1216
+ 'type' => 'checkbox',
1217
+ 'value' => $categories_settings['hierarchical']
1218
+ ),
1219
+ array(
1220
+ 'name' => 'show_description',
1221
+ 'label' => __( 'Show Description', 'all-in-one-video-gallery' ),
1222
+ 'description' => '',
1223
+ 'type' => 'checkbox',
1224
+ 'value' => $categories_settings['show_description']
1225
+ ),
1226
+ array(
1227
+ 'name' => 'show_count',
1228
+ 'label' => __( 'Show Videos Count', 'all-in-one-video-gallery' ),
1229
+ 'description' => '',
1230
+ 'type' => 'checkbox',
1231
+ 'value' => $categories_settings['show_count']
1232
+ ),
1233
+ array(
1234
+ 'name' => 'hide_empty',
1235
+ 'label' => __( 'Hide Empty Categories', 'all-in-one-video-gallery' ),
1236
+ 'description' => '',
1237
+ 'type' => 'checkbox',
1238
+ 'value' => $categories_settings['hide_empty']
1239
+ )
1240
+ )
1241
+ )
1242
+ )
1243
+ ),
1244
+ 'search_form' => array(
1245
+ 'title' => __( 'Search Form', 'all-in-one-video-gallery' ),
1246
+ 'sections' => array(
1247
+ 'general' => array(
1248
+ 'title' => __( 'General', 'all-in-one-video-gallery' ),
1249
+ 'fields' => array(
1250
+ array(
1251
+ 'name' => 'template',
1252
+ 'label' => __( 'Select Template', 'all-in-one-video-gallery' ),
1253
+ 'description' => '',
1254
+ 'type' => 'select',
1255
+ 'options' => array(
1256
+ 'vertical' => __( 'Vertical', 'all-in-one-video-gallery' ),
1257
+ 'horizontal' => __( 'Horizontal', 'all-in-one-video-gallery' )
1258
+ ),
1259
+ 'value' => 'horizontal'
1260
+ ),
1261
+ array(
1262
+ 'name' => 'category',
1263
+ 'label' => __( 'Search By Categories', 'all-in-one-video-gallery' ),
1264
+ 'description' => '',
1265
+ 'type' => 'checkbox',
1266
+ 'value' => 0
1267
+ )
1268
+ )
1269
+ )
1270
+ )
1271
+ )
1272
+ );
1273
+
1274
+ return apply_filters( 'aiovg_shortcode_fields', $fields );
1275
+ }
1276
+
1277
  /**
1278
  * Get unique ID.
1279
  *
1281
  * @return string Unique ID.
1282
  */
1283
  function aiovg_get_uniqid() {
1284
+ global $aiovg;
1285
 
1286
+ if ( ! isset( $aiovg['uniqid'] ) ) {
1287
+ $aiovg['uniqid'] = 0;
1288
  }
1289
 
1290
+ return uniqid() . ++$aiovg['uniqid'];
1291
  }
1292
 
1293
  /**
1474
  */
1475
  function aiovg_insert_custom_pages() {
1476
  // Vars
1477
+ if ( false == get_option( 'aiovg_page_settings' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1478
  $pages = array();
1479
+ $page_definitions = aiovg_get_custom_pages_list();
1480
 
1481
  foreach ( $page_definitions as $slug => $page ) {
1482
  $page_check = get_page_by_title( $page['title'] );
1577
  * @param int $post_id Post ID
1578
  */
1579
  function aiovg_update_views_count( $post_id ) {
1580
+ $visited = array();
 
 
 
1581
 
1582
+ if ( isset( $_COOKIE['aiovg_videos_views'] ) ) {
1583
+ $visited = explode( '|', $_COOKIE['aiovg_videos_views'] );
1584
+ $visited = array_map( 'intval', $visited );
1585
+ }
1586
 
1587
+ if ( ! in_array( $post_id, $visited ) ) {
1588
  $count = (int) get_post_meta( $post_id, 'views', true );
1589
  update_post_meta( $post_id, 'views', ++$count );
1590
+
1591
+ // SetCookie
1592
+ $visited[] = $post_id;
1593
+ setcookie( 'aiovg_videos_views', implode( '|', $visited ), time() + ( 12 * 60 * 60 ), COOKIEPATH, COOKIE_DOMAIN );
1594
  }
1595
  }
1596
 
1712
  // Get current page title
1713
  $title = get_the_title();
1714
  $title = str_replace( ' ', '%20', $title );
1715
+ $title = str_replace( '|', '%7C', $title );
1716
 
1717
  // Get image
1718
  $image_url = get_post_meta( $post->ID, 'image', true );
1724
  $buttons = array();
1725
 
1726
  if ( isset( $socialshare_settings['services']['facebook'] ) ) {
1727
+ $buttons[] = sprintf(
1728
+ '<a class="aiovg-social-facebook aiovg-link-social" href="%s" target="_blank">%s</a>',
1729
+ esc_url( "https://www.facebook.com/sharer/sharer.php?u={$url}" ),
1730
+ esc_html__( 'Facebook', 'all-in-one-video-gallery' )
1731
+ );
1732
  }
1733
 
1734
  if ( isset( $socialshare_settings['services']['twitter'] ) ) {
1735
+ $buttons[] = sprintf(
1736
+ '<a class="aiovg-social-twitter aiovg-link-social" href="%s" target="_blank">%s</a>',
1737
+ esc_url( "https://twitter.com/intent/tweet?text={$title}&amp;url={$url}" ),
1738
+ esc_html__( 'Twitter', 'all-in-one-video-gallery' )
1739
+ );
1740
+ }
 
 
1741
 
1742
  if ( isset( $socialshare_settings['services']['linkedin'] ) ) {
1743
+ $buttons[] = sprintf(
1744
+ '<a class="aiovg-social-linkedin aiovg-link-social" href="%s" target="_blank">%s</a>',
1745
+ esc_url( "https://www.linkedin.com/shareArticle?url={$url}&amp;title={$title}" ),
1746
+ esc_html__( 'Linkedin', 'all-in-one-video-gallery' )
1747
+ );
1748
  }
1749
 
1750
  if ( isset( $socialshare_settings['services']['pinterest'] ) ) {
1751
+ $buttons[] = sprintf(
1752
+ '<a class="aiovg-social-pinterest aiovg-link-social" href="%s" target="_blank">%s</a>',
1753
+ esc_url( "https://pinterest.com/pin/create/button/?url={$url}&amp;media={$image}&amp;description={$title}" ),
1754
+ esc_html__( 'Pin It', 'all-in-one-video-gallery' )
1755
+ );
1756
+ }
1757
+
1758
+ if ( isset( $socialshare_settings['services']['whatsapp'] ) ) {
1759
+ if ( wp_is_mobile() ) {
1760
+ $whatsapp_url = "whatsapp://send?text={$title} " . rawurlencode( $url );
1761
+ } else {
1762
+ $whatsapp_url = esc_url( "https://api.whatsapp.com/send?text={$title}&nbsp;{$url}" );
1763
+ }
1764
+
1765
+ $buttons[] = sprintf(
1766
+ '<a class="aiovg-social-whatsapp aiovg-link-social" href="%s" target="_blank">%s</a>',
1767
+ $whatsapp_url,
1768
+ esc_html__( 'WhatsApp', 'all-in-one-video-gallery' )
1769
+ );
1770
  }
1771
 
1772
  if ( count( $buttons ) ) {
includes/init.php CHANGED
@@ -87,11 +87,9 @@ class AIOVG_Init {
87
  * The classes responsible for defining all actions that occur in the admin area.
88
  */
89
  require_once AIOVG_PLUGIN_DIR . 'admin/admin.php';
90
- require_once AIOVG_PLUGIN_DIR . 'admin/welcome.php';
91
  require_once AIOVG_PLUGIN_DIR . 'admin/videos.php';
92
  require_once AIOVG_PLUGIN_DIR . 'admin/categories.php';
93
  require_once AIOVG_PLUGIN_DIR . 'admin/settings.php';
94
- require_once AIOVG_PLUGIN_DIR . 'admin/shortcode-builder.php';
95
 
96
  /**
97
  * The classes responsible for defining all actions that occur in the public-facing
@@ -144,20 +142,16 @@ class AIOVG_Init {
144
  $this->loader->add_action( 'wp_loaded', $admin, 'wp_loaded' );
145
  $this->loader->add_action( 'admin_enqueue_scripts', $admin, 'enqueue_styles' );
146
  $this->loader->add_action( 'admin_enqueue_scripts', $admin, 'enqueue_scripts' );
147
- $this->loader->add_action( 'admin_notices', $admin, 'admin_notice' );
148
- $this->loader->add_action( 'wp_ajax_aiovg_dismiss_admin_notice', $admin, 'ajax_callback_dismiss_admin_notice' );
149
 
150
  $this->loader->add_filter( 'plugin_action_links_' . AIOVG_PLUGIN_FILE_NAME, $admin, 'plugin_action_links' );
151
  $this->loader->add_filter( 'wp_check_filetype_and_ext', $admin, 'add_filetype_and_ext', 10, 4 );
152
 
153
- // Hooks specific to the welcome page
154
- $welcome = new AIOVG_Admin_Welcome();
155
-
156
- $this->loader->add_action( 'admin_menu', $welcome, 'add_welcome_menus' );
157
-
158
  // Hooks specific to the videos page
159
  $videos = new AIOVG_Admin_Videos();
160
 
 
161
  $this->loader->add_action( 'init', $videos, 'register_post_type' );
162
  $this->loader->add_action( 'before_delete_post', $videos, 'before_delete_post' );
163
 
@@ -169,6 +163,7 @@ class AIOVG_Init {
169
  $this->loader->add_action( 'restrict_manage_posts', $videos, 'restrict_manage_posts' );
170
  $this->loader->add_action( 'manage_aiovg_videos_posts_custom_column', $videos, 'custom_column_content', 10, 2 );
171
 
 
172
  $this->loader->add_filter( 'parse_query', $videos, 'parse_query' );
173
  $this->loader->add_filter( 'manage_edit-aiovg_videos_columns', $videos, 'get_columns' );
174
  }
@@ -176,14 +171,15 @@ class AIOVG_Init {
176
  // Hooks specific to the categories page
177
  $categories = new AIOVG_Admin_Categories();
178
 
 
179
  $this->loader->add_action( 'init', $categories, 'register_taxonomy' );
180
  $this->loader->add_action( 'aiovg_categories_add_form_fields', $categories, 'add_image_field' );
181
  $this->loader->add_action( 'aiovg_categories_edit_form_fields', $categories, 'edit_image_field' );
182
  $this->loader->add_action( 'created_aiovg_categories', $categories, 'save_image_field' );
183
  $this->loader->add_action( 'edited_aiovg_categories', $categories, 'save_image_field' );
184
  $this->loader->add_action( 'pre_delete_term', $categories, 'pre_delete_term', 10, 2 );
185
- $this->loader->add_action( 'wp_ajax_aiovg_delete_category_image', $categories, 'ajax_callback_delete_category_image' );
186
 
 
187
  $this->loader->add_filter( "manage_edit-aiovg_categories_columns", $categories, 'get_columns' );
188
  $this->loader->add_filter( "manage_edit-aiovg_categories_sortable_columns", $categories, 'get_columns' );
189
  $this->loader->add_filter( "manage_aiovg_categories_custom_column", $categories, 'custom_column_content', 10, 3 );
@@ -191,14 +187,8 @@ class AIOVG_Init {
191
  // Hooks specific to the settings page
192
  $settings = new AIOVG_Admin_Settings();
193
 
194
- $this->loader->add_action( 'admin_menu', $settings, 'add_settings_menu' );
195
  $this->loader->add_action( 'admin_init', $settings, 'admin_init' );
196
-
197
- // Hooks specific to the shortcode builder
198
- $shortcode_builder = new AIOVG_Admin_Shortcode_Builder();
199
-
200
- $this->loader->add_action( 'media_buttons', $shortcode_builder, 'media_buttons', 11 );
201
- $this->loader->add_action( 'admin_footer', $shortcode_builder, 'admin_footer' );
202
  }
203
 
204
  /**
@@ -213,19 +203,21 @@ class AIOVG_Init {
213
  $public = new AIOVG_Public();
214
 
215
  $this->loader->add_action( 'template_redirect', $public, 'template_redirect', 0 );
216
- $this->loader->add_action( 'init', $public, 'add_rewrites' );
217
  $this->loader->add_action( 'wp_loaded', $public, 'maybe_flush_rules' );
218
  $this->loader->add_action( 'wp_enqueue_scripts', $public, 'enqueue_styles' );
219
  $this->loader->add_action( 'wp_enqueue_scripts', $public, 'enqueue_scripts' );
220
  $this->loader->add_action( 'wp_head', $public, 'og_metatags' );
221
- $this->loader->add_action( 'wp_ajax_aiovg_set_cookie', $public, 'set_cookie' );
222
- $this->loader->add_action( 'wp_ajax_nopriv_aiovg_set_cookie', $public, 'set_cookie' );
223
 
224
  if ( aiovg_can_use_yoast() ) {
225
  $this->loader->add_filter( 'wpseo_title', $public, 'wpseo_title' );
226
  $this->loader->add_filter( 'wpseo_metadesc', $public, 'wpseo_metadesc' );
227
  $this->loader->add_filter( 'wpseo_canonical', $public, 'wpseo_canonical' );
228
  $this->loader->add_filter( 'wpseo_opengraph_url', $public, 'wpseo_canonical' );
 
 
229
  $this->loader->add_filter( 'wpseo_breadcrumb_links', $public, 'wpseo_breadcrumb_links' );
230
  } else {
231
  $this->loader->add_filter( 'wp_title', $public, 'wp_title', 99, 3 );
87
  * The classes responsible for defining all actions that occur in the admin area.
88
  */
89
  require_once AIOVG_PLUGIN_DIR . 'admin/admin.php';
 
90
  require_once AIOVG_PLUGIN_DIR . 'admin/videos.php';
91
  require_once AIOVG_PLUGIN_DIR . 'admin/categories.php';
92
  require_once AIOVG_PLUGIN_DIR . 'admin/settings.php';
 
93
 
94
  /**
95
  * The classes responsible for defining all actions that occur in the public-facing
142
  $this->loader->add_action( 'wp_loaded', $admin, 'wp_loaded' );
143
  $this->loader->add_action( 'admin_enqueue_scripts', $admin, 'enqueue_styles' );
144
  $this->loader->add_action( 'admin_enqueue_scripts', $admin, 'enqueue_scripts' );
145
+ $this->loader->add_action( 'admin_init', $admin, 'admin_init' );
146
+ $this->loader->add_action( 'admin_menu', $admin, 'admin_menu' );
147
 
148
  $this->loader->add_filter( 'plugin_action_links_' . AIOVG_PLUGIN_FILE_NAME, $admin, 'plugin_action_links' );
149
  $this->loader->add_filter( 'wp_check_filetype_and_ext', $admin, 'add_filetype_and_ext', 10, 4 );
150
 
 
 
 
 
 
151
  // Hooks specific to the videos page
152
  $videos = new AIOVG_Admin_Videos();
153
 
154
+ $this->loader->add_action( 'admin_menu', $videos, 'admin_menu' );
155
  $this->loader->add_action( 'init', $videos, 'register_post_type' );
156
  $this->loader->add_action( 'before_delete_post', $videos, 'before_delete_post' );
157
 
163
  $this->loader->add_action( 'restrict_manage_posts', $videos, 'restrict_manage_posts' );
164
  $this->loader->add_action( 'manage_aiovg_videos_posts_custom_column', $videos, 'custom_column_content', 10, 2 );
165
 
166
+ $this->loader->add_filter( 'parent_file', $videos, 'parent_file' );
167
  $this->loader->add_filter( 'parse_query', $videos, 'parse_query' );
168
  $this->loader->add_filter( 'manage_edit-aiovg_videos_columns', $videos, 'get_columns' );
169
  }
171
  // Hooks specific to the categories page
172
  $categories = new AIOVG_Admin_Categories();
173
 
174
+ $this->loader->add_action( 'admin_menu', $categories, 'admin_menu' );
175
  $this->loader->add_action( 'init', $categories, 'register_taxonomy' );
176
  $this->loader->add_action( 'aiovg_categories_add_form_fields', $categories, 'add_image_field' );
177
  $this->loader->add_action( 'aiovg_categories_edit_form_fields', $categories, 'edit_image_field' );
178
  $this->loader->add_action( 'created_aiovg_categories', $categories, 'save_image_field' );
179
  $this->loader->add_action( 'edited_aiovg_categories', $categories, 'save_image_field' );
180
  $this->loader->add_action( 'pre_delete_term', $categories, 'pre_delete_term', 10, 2 );
 
181
 
182
+ $this->loader->add_filter( 'parent_file', $categories, 'parent_file' );
183
  $this->loader->add_filter( "manage_edit-aiovg_categories_columns", $categories, 'get_columns' );
184
  $this->loader->add_filter( "manage_edit-aiovg_categories_sortable_columns", $categories, 'get_columns' );
185
  $this->loader->add_filter( "manage_aiovg_categories_custom_column", $categories, 'custom_column_content', 10, 3 );
187
  // Hooks specific to the settings page
188
  $settings = new AIOVG_Admin_Settings();
189
 
190
+ $this->loader->add_action( 'admin_menu', $settings, 'admin_menu' );
191
  $this->loader->add_action( 'admin_init', $settings, 'admin_init' );
 
 
 
 
 
 
192
  }
193
 
194
  /**
203
  $public = new AIOVG_Public();
204
 
205
  $this->loader->add_action( 'template_redirect', $public, 'template_redirect', 0 );
206
+ $this->loader->add_action( 'init', $public, 'init' );
207
  $this->loader->add_action( 'wp_loaded', $public, 'maybe_flush_rules' );
208
  $this->loader->add_action( 'wp_enqueue_scripts', $public, 'enqueue_styles' );
209
  $this->loader->add_action( 'wp_enqueue_scripts', $public, 'enqueue_scripts' );
210
  $this->loader->add_action( 'wp_head', $public, 'og_metatags' );
211
+ $this->loader->add_action( 'wp_ajax_aiovg_set_cookie', $public, 'set_gdpr_cookie' );
212
+ $this->loader->add_action( 'wp_ajax_nopriv_aiovg_set_cookie', $public, 'set_gdpr_cookie' );
213
 
214
  if ( aiovg_can_use_yoast() ) {
215
  $this->loader->add_filter( 'wpseo_title', $public, 'wpseo_title' );
216
  $this->loader->add_filter( 'wpseo_metadesc', $public, 'wpseo_metadesc' );
217
  $this->loader->add_filter( 'wpseo_canonical', $public, 'wpseo_canonical' );
218
  $this->loader->add_filter( 'wpseo_opengraph_url', $public, 'wpseo_canonical' );
219
+ $this->loader->add_filter( 'wpseo_opengraph_image', $public, 'wpseo_opengraph_image' );
220
+ $this->loader->add_filter( 'wpseo_twitter_image', $public, 'wpseo_twitter_image' );
221
  $this->loader->add_filter( 'wpseo_breadcrumb_links', $public, 'wpseo_breadcrumb_links' );
222
  } else {
223
  $this->loader->add_filter( 'wp_title', $public, 'wp_title', 99, 3 );
includes/uninstall.php CHANGED
@@ -87,7 +87,6 @@ class AIOVG_Uninstall
87
  'aiovg_permalink_settings',
88
  'aiovg_socialshare_settings',
89
  'aiovg_page_settings',
90
- 'aiovg_admin_notice_dismissed',
91
  'aiovg_version'
92
  );
93
  foreach ( $aiovg_settings as $settings ) {
87
  'aiovg_permalink_settings',
88
  'aiovg_socialshare_settings',
89
  'aiovg_page_settings',
 
90
  'aiovg_version'
91
  );
92
  foreach ( $aiovg_settings as $settings ) {
languages/all-in-one-video-gallery.pot CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: All-in-One Video Gallery\n"
4
- "POT-Creation-Date: 2019-05-25 18:39+0530\n"
5
- "PO-Revision-Date: 2019-05-25 18:39+0530\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
@@ -16,108 +16,151 @@ msgstr ""
16
  "X-Poedit-KeywordsList: __;_e;esc_html__;esc_html_e;esc_attr__;esc_attr_e\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
- #: admin/admin.php:165 admin/settings.php:59 admin/settings.php:60
20
- msgid "Settings"
 
 
 
 
21
  msgstr ""
22
 
23
- #: admin/admin.php:180 blocks/blocks.php:37
 
 
 
 
24
  msgid "All-in-One Video Gallery"
25
  msgstr ""
26
 
27
- #: admin/admin.php:182 admin/welcome.php:67
28
- msgid "Getting Started"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  msgstr ""
30
 
31
- #: admin/admin.php:184
32
- msgid "Contact Us"
33
  msgstr ""
34
 
35
- #: admin/admin.php:187
36
- msgid "Upgrade Pro"
37
  msgstr ""
38
 
39
- #: admin/categories.php:33 premium/admin/automations.php:242
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  msgid "Categories"
41
  msgstr ""
42
 
43
- #: admin/categories.php:34 admin/videos.php:339
44
- #: premium/admin/automations.php:160
45
  msgid "All Categories"
46
  msgstr ""
47
 
48
- #: admin/categories.php:35
49
  msgid "Parent Category"
50
  msgstr ""
51
 
52
- #: admin/categories.php:36
53
  msgid "Parent Category:"
54
  msgstr ""
55
 
56
- #: admin/categories.php:37
57
  msgid "New Category Name"
58
  msgstr ""
59
 
60
- #: admin/categories.php:38
61
  msgid "Add New Category"
62
  msgstr ""
63
 
64
- #: admin/categories.php:39
65
  msgid "Edit Category"
66
  msgstr ""
67
 
68
- #: admin/categories.php:40
69
  msgid "Update Category"
70
  msgstr ""
71
 
72
- #: admin/categories.php:41
73
  msgid "View Category"
74
  msgstr ""
75
 
76
- #: admin/categories.php:42
77
  msgid "Separate categories with commas"
78
  msgstr ""
79
 
80
- #: admin/categories.php:43
81
  msgid "Add or remove categories"
82
  msgstr ""
83
 
84
- #: admin/categories.php:44
85
  msgid "Choose from the most used"
86
  msgstr ""
87
 
88
- #: admin/categories.php:45
89
  msgid "Popular Categories"
90
  msgstr ""
91
 
92
- #: admin/categories.php:46
93
  msgid "Search Categories"
94
  msgstr ""
95
 
96
- #: admin/categories.php:47
97
  msgid "Not Found"
98
  msgstr ""
99
 
100
- #: admin/categories.php:48
101
  msgid "No categories"
102
  msgstr ""
103
 
104
- #: admin/categories.php:49
105
  msgid "Categories list"
106
  msgstr ""
107
 
108
- #: admin/categories.php:50
109
  msgid "Categories list navigation"
110
  msgstr ""
111
 
112
- #: admin/categories.php:124 admin/settings.php:338 admin/videos.php:402
113
- #: blocks/blocks.php:81 includes/functions.php:294
114
  #: widgets/forms/categories.php:64
115
  msgid "ID"
116
  msgstr ""
117
 
118
  #: admin/partials/category-image.php:15 admin/partials/category-image.php:26
119
- #: admin/partials/video-sources.php:146 admin/partials/video-sources.php:149
120
- #: premium/public/templates/video-form.php:275
121
  msgid "Image"
122
  msgstr ""
123
 
@@ -129,531 +172,645 @@ msgstr ""
129
  msgid "Remove Image"
130
  msgstr ""
131
 
132
- #: admin/partials/shortcode-builder.php:15
133
  msgid ""
134
- "Use the form below to insert \"All-in-One Video Gallery\" plugin shortcodes."
 
135
  msgstr ""
136
 
137
- #: admin/partials/shortcode-builder.php:19
138
- msgid "Shortcode Type"
139
  msgstr ""
140
 
141
- #: admin/partials/shortcode-builder.php:42 blocks/blocks.php:73
142
- msgid "Top Categories"
 
143
  msgstr ""
144
 
145
- #: admin/partials/shortcode-builder.php:70 widgets/forms/video.php:22
146
- msgid "Latest Video"
 
 
147
  msgstr ""
148
 
149
- #: admin/partials/shortcode-builder.php:133
150
- msgid "Insert Shortcode"
 
 
 
 
151
  msgstr ""
152
 
153
- #: admin/partials/shortcode-builder.php:134
154
- #: premium/public/templates/video-form.php:339
155
- msgid "Cancel"
156
  msgstr ""
157
 
158
- #: admin/partials/video-sources.php:17 admin/partials/video-sources.php:20
159
- #: premium/public/templates/video-form.php:75
160
- msgid "Type"
 
 
161
  msgstr ""
162
 
163
- #: admin/partials/video-sources.php:33 admin/partials/video-sources.php:36
164
- #: premium/public/templates/video-form.php:94
165
- msgid "MP4"
166
  msgstr ""
167
 
168
- #: admin/partials/video-sources.php:38 admin/partials/video-sources.php:69
169
- #: admin/partials/video-sources.php:83 admin/partials/video-sources.php:151
170
- #: admin/partials/video-tracks.php:27 admin/partials/video-tracks.php:63
171
- #: premium/public/templates/video-form.php:102
172
- #: premium/public/templates/video-form.php:146
173
- #: premium/public/templates/video-form.php:173
174
- #: premium/public/templates/video-form.php:184
175
- #: premium/public/templates/video-form.php:281
176
- msgid "Enter your Direct File URL here (OR) use the Upload Media button"
177
  msgstr ""
178
 
179
- #: admin/partials/video-sources.php:40 admin/partials/video-sources.php:71
180
- #: admin/partials/video-sources.php:85 admin/partials/video-sources.php:153
181
- #: premium/public/templates/video-form.php:105
182
- #: premium/public/templates/video-form.php:149
183
- #: premium/public/templates/video-form.php:176
184
- #: premium/public/templates/video-form.php:284
185
- msgid "Upload Media"
186
  msgstr ""
187
 
188
- #: admin/partials/video-sources.php:50 admin/partials/video-sources.php:64
189
- #: admin/partials/video-sources.php:67
190
- #: premium/public/templates/video-form.php:124
191
- #: premium/public/templates/video-form.php:140
192
- msgid "WebM"
193
  msgstr ""
194
 
195
- #: admin/partials/video-sources.php:56 admin/partials/video-sources.php:78
196
- #: admin/partials/video-sources.php:81
197
- #: premium/public/templates/video-form.php:130
198
- #: premium/public/templates/video-form.php:167
199
- msgid "OGV"
200
  msgstr ""
201
 
202
- #: admin/partials/video-sources.php:92 admin/partials/video-sources.php:95
203
- #: admin/settings.php:286 includes/functions.php:1175
204
- #: premium/includes/functions.php:109
205
- #: premium/public/templates/video-form.php:197
206
- msgid "YouTube"
207
  msgstr ""
208
 
209
- #: admin/partials/video-sources.php:97 admin/partials/video-sources.php:108
210
- #: admin/partials/video-sources.php:119 admin/partials/video-sources.php:130
211
- #: premium/admin/partials/adaptive-streaming.php:20
212
- #: premium/admin/partials/adaptive-streaming.php:31
213
- #: premium/admin/partials/automations-sources.php:75
214
- #: premium/admin/partials/automations-sources.php:94
215
- #: premium/admin/partials/automations-sources.php:112
216
- #: premium/admin/partials/automations-sources.php:130
217
- #: premium/admin/partials/automations-sources.php:148
218
- #: premium/admin/partials/automations-sources.php:162
219
- #: premium/public/templates/video-form.php:202
220
- #: premium/public/templates/video-form.php:218
221
- #: premium/public/templates/video-form.php:234
222
- #: premium/public/templates/video-form.php:250
223
- #: premium/public/templates/video-form.php:266
224
- msgid "Example"
225
  msgstr ""
226
 
227
- #: admin/partials/video-sources.php:103 admin/partials/video-sources.php:106
228
- #: admin/settings.php:287 includes/functions.php:1176
229
- #: premium/public/templates/video-form.php:213
230
- msgid "Vimeo"
231
  msgstr ""
232
 
233
- #: admin/partials/video-sources.php:114 admin/partials/video-sources.php:117
234
- #: admin/settings.php:288 includes/functions.php:1177
235
- #: premium/public/templates/video-form.php:229
236
- msgid "Dailymotion"
237
  msgstr ""
238
 
239
- #: admin/partials/video-sources.php:125 admin/partials/video-sources.php:128
240
- #: admin/settings.php:289 admin/settings.php:509 includes/functions.php:1178
241
- #: includes/functions.php:1587 premium/public/templates/video-form.php:245
242
- msgid "Facebook"
243
  msgstr ""
244
 
245
- #: admin/partials/video-sources.php:136 admin/partials/video-sources.php:139
246
- msgid "Embed Code"
 
247
  msgstr ""
248
 
249
- #: admin/partials/video-sources.php:140
250
- msgid "Enter your Iframe Embed Code here"
 
251
  msgstr ""
252
 
253
- #: admin/partials/video-sources.php:160 admin/partials/video-sources.php:163
254
- #: admin/settings.php:273 blocks/blocks.php:121 includes/functions.php:611
255
- #: widgets/forms/video.php:92
256
- msgid "Duration"
 
257
  msgstr ""
258
 
259
- #: admin/partials/video-sources.php:171 admin/partials/video-sources.php:174
260
- #: admin/videos.php:400
261
- msgid "Views"
 
262
  msgstr ""
263
 
264
- #: admin/partials/video-submitbox.php:16
265
- msgid "Mark as"
266
  msgstr ""
267
 
268
- #: admin/partials/video-submitbox.php:17 admin/videos.php:401
269
- msgid "Featured"
270
  msgstr ""
271
 
272
- #: admin/partials/video-submitbox.php:25
273
- msgid "Video Shortcode"
274
  msgstr ""
275
 
276
- #: admin/partials/video-tracks.php:16 admin/partials/video-tracks.php:25
277
- #: admin/partials/video-tracks.php:61
278
- msgid "File URL"
 
 
 
 
279
  msgstr ""
280
 
281
- #: admin/partials/video-tracks.php:17 admin/partials/video-tracks.php:31
282
- #: admin/partials/video-tracks.php:67
283
- msgid "Label"
 
 
284
  msgstr ""
285
 
286
- #: admin/partials/video-tracks.php:18 admin/partials/video-tracks.php:37
287
- #: admin/partials/video-tracks.php:73
288
- msgid "Srclang"
 
 
289
  msgstr ""
290
 
291
- #: admin/partials/video-tracks.php:33 admin/partials/video-tracks.php:69
292
- msgid "English"
 
 
 
293
  msgstr ""
294
 
295
- #: admin/partials/video-tracks.php:39 admin/partials/video-tracks.php:75
296
- msgid "en"
297
  msgstr ""
298
 
299
- #: admin/partials/video-tracks.php:44 admin/partials/video-tracks.php:80
300
- msgid "Upload File"
 
301
  msgstr ""
302
 
303
- #: admin/partials/video-tracks.php:46 admin/partials/video-tracks.php:82
304
- #: premium/public/templates/user-dashboard.php:124
305
- msgid "Delete"
306
  msgstr ""
307
 
308
- #: admin/partials/video-tracks.php:54
309
- msgid "Add New File"
 
 
310
  msgstr ""
311
 
312
- #: admin/partials/welcome.php:14
313
  #, php-format
314
- msgid "All-in-One Video Gallery - %s"
 
 
315
  msgstr ""
316
 
317
- #: admin/partials/welcome.php:17
318
- msgid "The last video player & gallery plugin you'll ever need."
 
 
 
319
  msgstr ""
320
 
321
- #: admin/partials/welcome.php:22
322
- msgid "Getting Started - Premium Features"
323
  msgstr ""
324
 
325
- #: admin/partials/welcome.php:26
326
  #, php-format
327
- msgid "Version %s"
328
  msgstr ""
329
 
330
- #: admin/partials/welcome.php:44 admin/partials/welcome.php:50
331
- #: admin/partials/welcome.php:59 admin/partials/welcome.php:67
332
- #: admin/partials/welcome.php:80
333
- #, php-format
334
- msgid "Step #%d:"
335
  msgstr ""
336
 
337
- #: admin/partials/welcome.php:46
338
- msgid "Install & Activate <strong>All-in-One Video Gallery</strong>"
 
 
 
339
  msgstr ""
340
 
341
- #: admin/partials/welcome.php:52 admin/partials/welcome.php:69
342
- msgid "Optional"
 
 
 
343
  msgstr ""
344
 
345
- #: admin/partials/welcome.php:54
346
- msgid "Add Categories"
347
  msgstr ""
348
 
349
- #: admin/partials/welcome.php:62
350
- msgid "Add Videos"
 
 
351
  msgstr ""
352
 
353
- #: admin/partials/welcome.php:72
354
  #, php-format
355
  msgid ""
356
- "Add a Categories <a href=\"%s\">Page</a> to your site front-end. Find step "
357
- "by step instructions <a href=\"%s\" target=\"_blank\">here</a>"
358
  msgstr ""
359
 
360
- #: admin/partials/welcome.php:84
361
  #, php-format
362
  msgid ""
363
- "Add a Videos <a href=\"%s\">Page</a> to your site front-end. Find step by "
364
- "step instructions <a href=\"%s\" target=\"_blank\">here</a>"
365
  msgstr ""
366
 
367
- #: admin/partials/welcome.php:94
368
  #, php-format
369
  msgid ""
370
- "Please <a href=\"%s\" target=\"_blank\">refer</a> for more advanced "
371
- "tutorials."
 
372
  msgstr ""
373
 
374
- #: admin/partials/welcome.php:102
375
- msgid "Introducing our new Automation tool"
 
 
376
  msgstr ""
377
 
378
- #: admin/partials/welcome.php:108
379
- msgid ""
380
- "Your site on Autopilot. Simply configure your YouTube channel, playlist or a "
381
- "search keyword and schedule it. The plugin will do the rest by auto "
382
- "importing videos from your YouTube account. Each time a new video is "
383
- "uploaded there, it'll be automatically imported to your site within the hour."
384
  msgstr ""
385
 
386
- #: admin/partials/welcome.php:110
387
- msgid "Learn more"
 
388
  msgstr ""
389
 
390
- #: admin/partials/welcome.php:117
391
- msgid "Need Help?"
 
392
  msgstr ""
393
 
394
- #: admin/partials/welcome.php:122
395
- msgid "Phenomenal Support"
 
 
 
396
  msgstr ""
397
 
398
- #: admin/partials/welcome.php:125
399
- #, php-format
400
- msgid ""
401
- "We do our best to provide the best support we can. If you encounter a "
402
- "problem or have a question, simply submit your question using our <a href="
403
- "\"%s\" target=\"_blank\">support form</a>."
404
  msgstr ""
405
 
406
- #: admin/partials/welcome.php:130
407
- msgid "Need Even Faster Support?"
 
 
 
408
  msgstr ""
409
 
410
- #: admin/partials/welcome.php:133
411
- #, php-format
412
- msgid ""
413
- "Our <a href=\"%s\" target=\"_blank\">Priority Support</a> system is there "
414
- "for customers that need faster and/or more in-depth assistance."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
415
  msgstr ""
416
 
417
- #: admin/settings.php:99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
418
  msgid "General"
419
  msgstr ""
420
 
421
- #: admin/settings.php:100
422
  msgid "Display"
423
  msgstr ""
424
 
425
- #: admin/settings.php:101
426
  msgid "Advanced"
427
  msgstr ""
428
 
429
- #: admin/settings.php:117 blocks/blocks.php:106 includes/functions.php:243
430
- #: includes/functions.php:345 includes/functions.php:546
431
- #: includes/functions.php:642
432
  msgid "General Settings"
433
  msgstr ""
434
 
435
- #: admin/settings.php:122
436
  msgid "Player Settings"
437
  msgstr ""
438
 
439
- #: admin/settings.php:127
440
- msgid "Image Settings"
441
  msgstr ""
442
 
443
- #: admin/settings.php:132
444
- msgid "Categories Page"
445
  msgstr ""
446
 
447
- #: admin/settings.php:137
448
- msgid "Video Gallery Pages"
449
  msgstr ""
450
 
451
- #: admin/settings.php:142
452
- msgid "Single Video Page"
 
 
 
 
453
  msgstr ""
454
 
455
- #: admin/settings.php:147
456
  msgid "Permalink Slugs"
457
  msgstr ""
458
 
459
- #: admin/settings.php:148
460
  msgid ""
461
  "NOTE: Just make sure that, after updating the fields in this section, you "
462
  "flush the rewrite rules by visiting \"Settings > Permalinks\". Otherwise "
463
  "you'll still see the old links."
464
  msgstr ""
465
 
466
- #: admin/settings.php:153
467
  msgid "Socialshare Buttons"
468
  msgstr ""
469
 
470
- #: admin/settings.php:154
471
  msgid "Select social share buttons displayed in the single video pages."
472
  msgstr ""
473
 
474
- #: admin/settings.php:159
475
- msgid "Page Settings"
476
- msgstr ""
477
-
478
- #: admin/settings.php:164
479
  msgid "Privacy Settings"
480
  msgstr ""
481
 
482
- #: admin/settings.php:165
483
  msgid ""
484
  "These options will help with privacy restrictions such as GDPR and the EU "
485
  "Cookie Law."
486
  msgstr ""
487
 
488
- #: admin/settings.php:173
489
  msgid "Logo & Branding"
490
  msgstr ""
491
 
492
- #: admin/settings.php:194
493
  msgid "Remove data on uninstall?"
494
  msgstr ""
495
 
496
- #: admin/settings.php:195
497
  msgid ""
498
  "Check this box to delete all of the plugin data (database stored content) "
499
  "when uninstalled"
500
  msgstr ""
501
 
502
- #: admin/settings.php:201
503
  msgid "Delete media files?"
504
  msgstr ""
505
 
506
- #: admin/settings.php:202
507
  msgid ""
508
  "Check this box to also delete the associated media files when a video post "
509
  "or a video category is deleted"
510
  msgstr ""
511
 
512
- #: admin/settings.php:210 admin/settings.php:297 blocks/blocks.php:107
513
- #: includes/functions.php:557 premium/widgets/forms/companion.php:15
514
  #: widgets/forms/video.php:54
515
  msgid "Width"
516
  msgstr ""
517
 
518
- #: admin/settings.php:211 blocks/blocks.php:108
519
  #, php-format
520
  msgid ""
521
  "In pixels. Maximum width of the player. Leave this field empty to scale "
522
  "100% of its enclosing container/html element."
523
  msgstr ""
524
 
525
- #: admin/settings.php:217 admin/settings.php:304 blocks/blocks.php:109
526
- #: includes/functions.php:273 includes/functions.php:431
527
- #: includes/functions.php:564 widgets/forms/video.php:59
528
  msgid "Ratio"
529
  msgstr ""
530
 
531
- #: admin/settings.php:220 blocks/blocks.php:110
532
  msgid ""
533
  "In percentage. 1 to 100. Calculate player's height using the ratio value "
534
  "entered."
535
  msgstr ""
536
 
537
- #: admin/settings.php:221
538
  msgid "Examples"
539
  msgstr ""
540
 
541
- #: admin/settings.php:222
542
  msgid "Wide Screen TV"
543
  msgstr ""
544
 
545
- #: admin/settings.php:223
546
  msgid "Monitor Screens"
547
  msgstr ""
548
 
549
- #: admin/settings.php:224
550
  msgid "Classic TV"
551
  msgstr ""
552
 
553
- #: admin/settings.php:225
554
  msgid "Photo Camera"
555
  msgstr ""
556
 
557
- #: admin/settings.php:226
558
  msgid "Square"
559
  msgstr ""
560
 
561
- #: admin/settings.php:227
562
  msgid "Cinemascope"
563
  msgstr ""
564
 
565
- #: admin/settings.php:234 blocks/blocks.php:111 includes/functions.php:571
566
  #: widgets/forms/video.php:65
567
  msgid "Autoplay"
568
  msgstr ""
569
 
570
- #: admin/settings.php:235
571
  msgid "Check this to start playing the video as soon as it is ready"
572
  msgstr ""
573
 
574
- #: admin/settings.php:241 blocks/blocks.php:112 includes/functions.php:578
575
  #: widgets/forms/video.php:70
576
  msgid "Loop"
577
  msgstr ""
578
 
579
- #: admin/settings.php:242
580
  msgid ""
581
  "Check this, so that the video will start over again, every time it is "
582
  "finished"
583
  msgstr ""
584
 
 
 
 
 
 
585
  #: admin/settings.php:248
 
 
 
 
586
  msgid "Preload"
587
  msgstr ""
588
 
589
- #: admin/settings.php:251
590
  msgid "Specifies if and how the video should be loaded when the page loads."
591
  msgstr ""
592
 
593
- #: admin/settings.php:252
594
  msgid "\"Auto\" - the video should be loaded entirely when the page loads"
595
  msgstr ""
596
 
597
- #: admin/settings.php:253
598
  msgid "\"Metadata\" - only metadata should be loaded when the page loads"
599
  msgstr ""
600
 
601
- #: admin/settings.php:254
602
  msgid "\"None\" - the video should not be loaded when the page loads"
603
  msgstr ""
604
 
605
- #: admin/settings.php:258
606
  msgid "Auto"
607
  msgstr ""
608
 
609
- #: admin/settings.php:259
610
  msgid "Metadata"
611
  msgstr ""
612
 
613
- #: admin/settings.php:260
614
  msgid "None"
615
  msgstr ""
616
 
617
- #: admin/settings.php:266 blocks/blocks.php:117 includes/functions.php:586
618
- #: widgets/forms/video.php:73
619
  msgid "Player Controls"
620
  msgstr ""
621
 
622
- #: admin/settings.php:270 blocks/blocks.php:118 includes/functions.php:590
623
- #: widgets/forms/video.php:77
624
  msgid "Play / Pause"
625
  msgstr ""
626
 
627
- #: admin/settings.php:271 blocks/blocks.php:119 includes/functions.php:597
628
- #: widgets/forms/video.php:82
629
  msgid "Current Time"
630
  msgstr ""
631
 
632
- #: admin/settings.php:272 blocks/blocks.php:120 includes/functions.php:604
633
- #: widgets/forms/video.php:87
634
  msgid "Progressbar"
635
  msgstr ""
636
 
637
- #: admin/settings.php:274 admin/videos.php:143 includes/functions.php:618
638
- #: widgets/forms/video.php:97
639
  msgid "Subtitles"
640
  msgstr ""
641
 
642
- #: admin/settings.php:275 blocks/blocks.php:122 includes/functions.php:625
643
- #: widgets/forms/video.php:102
644
  msgid "Volume"
645
  msgstr ""
646
 
647
- #: admin/settings.php:276 blocks/blocks.php:123 includes/functions.php:632
648
- #: widgets/forms/video.php:107
649
  msgid "Fullscreen"
650
  msgstr ""
651
 
652
- #: admin/settings.php:282
653
  msgid "Use Native Controls"
654
  msgstr ""
655
 
656
- #: admin/settings.php:283
657
  msgid ""
658
  "Enables native player controls on the selected source types. For example, "
659
  "uses YouTube Player for playing YouTube videos & Vimeo Player for playing "
@@ -661,529 +818,497 @@ msgid ""
661
  "selected sources."
662
  msgstr ""
663
 
664
- #: admin/settings.php:298
665
- #, php-format
666
- msgid "Always 100% of its enclosing container/html element."
 
 
667
  msgstr ""
668
 
669
- #: admin/settings.php:305
 
670
  msgid ""
671
- "In percentage. 1 to 100. Calculate images's height using the ratio value "
672
- "entered."
673
  msgstr ""
674
 
675
- #: admin/settings.php:313 admin/settings.php:388 blocks/blocks.php:76
676
- #: includes/functions.php:254 includes/functions.php:356
677
- #: includes/functions.php:646 widgets/forms/categories.php:39
678
- #: widgets/forms/search.php:20
679
- msgid "Select Template"
680
  msgstr ""
681
 
682
- #: admin/settings.php:317 blocks/blocks.php:77 includes/functions.php:258
683
- #: widgets/forms/categories.php:43
684
- msgid "Grid"
685
  msgstr ""
686
 
687
- #: admin/settings.php:318 blocks/blocks.php:78 includes/functions.php:259
688
- #: widgets/forms/categories.php:44
689
- msgid "List"
690
  msgstr ""
691
 
692
- #: admin/settings.php:324 admin/settings.php:396 blocks/blocks.php:79
693
- #: includes/functions.php:280 includes/functions.php:438
694
- #: widgets/forms/categories.php:55
695
- msgid "Columns"
696
  msgstr ""
697
 
698
- #: admin/settings.php:325
699
- msgid "Enter the number of columns you like to have in your categories page."
 
 
 
 
700
  msgstr ""
701
 
702
- #: admin/settings.php:334
703
- msgid "Order by"
 
 
 
 
 
704
  msgstr ""
705
 
706
- #: admin/settings.php:339 blocks/blocks.php:82 includes/functions.php:295
707
- #: widgets/forms/categories.php:65
708
- msgid "Count"
709
  msgstr ""
710
 
711
- #: admin/settings.php:340 blocks/blocks.php:83 includes/functions.php:296
712
- #: widgets/forms/categories.php:66
713
- msgid "Name"
 
714
  msgstr ""
715
 
716
- #: admin/settings.php:341 blocks/blocks.php:84 includes/functions.php:297
717
- #: widgets/forms/categories.php:67
718
- msgid "Slug"
719
  msgstr ""
720
 
721
- #: admin/settings.php:347 admin/settings.php:426 blocks/blocks.php:85
722
- #: includes/functions.php:303 includes/functions.php:401
723
  #: widgets/forms/categories.php:78
724
  msgid "Order"
725
  msgstr ""
726
 
727
- #: admin/settings.php:351 admin/settings.php:430
728
  msgid "Ascending"
729
  msgstr ""
730
 
731
- #: admin/settings.php:352 admin/settings.php:431
732
  msgid "Descending"
733
  msgstr ""
734
 
735
- #: admin/settings.php:358 blocks/blocks.php:88 includes/functions.php:314
736
- #: widgets/forms/categories.php:95
737
- msgid "Show Hierarchy"
738
- msgstr ""
739
-
740
- #: admin/settings.php:359
741
- msgid "Check this to show the child categories"
742
- msgstr ""
743
-
744
- #: admin/settings.php:365 blocks/blocks.php:89 includes/functions.php:321
745
- #: widgets/forms/categories.php:100
746
- msgid "Show Description"
747
  msgstr ""
748
 
749
- #: admin/settings.php:366
750
- msgid "Check this to show the categories description"
751
  msgstr ""
752
 
753
- #: admin/settings.php:372 blocks/blocks.php:90 includes/functions.php:328
754
- #: includes/functions.php:459 widgets/forms/categories.php:105
755
- msgid "Show Videos Count"
756
  msgstr ""
757
 
758
- #: admin/settings.php:373
759
- msgid "Check this to show the videos count next to the category name"
760
  msgstr ""
761
 
762
- #: admin/settings.php:379 blocks/blocks.php:91 includes/functions.php:335
763
- #: widgets/forms/categories.php:110
764
- msgid "Hide Empty Categories"
765
  msgstr ""
766
 
767
- #: admin/settings.php:380
768
- msgid "Check this to hide categories with no videos"
769
  msgstr ""
770
 
771
- #: admin/settings.php:389 includes/functions.php:357
772
- #, php-format
773
- msgid ""
774
- "<a href=\"%s\" target=\"_blank\">Upgrade Pro</a> for more templates (Popup, "
775
- "Slider, etc.)"
776
  msgstr ""
777
 
778
- #: admin/settings.php:397
779
- msgid "Enter the number of columns you like to have in the gallery view."
780
  msgstr ""
781
 
782
- #: admin/settings.php:406 includes/functions.php:378
783
- msgid "Limit (per page)"
784
  msgstr ""
785
 
786
- #: admin/settings.php:407
787
- msgid ""
788
- "Number of videos to show per page. Use a value of \"0\" to show all videos."
789
  msgstr ""
790
 
791
- #: admin/settings.php:413 blocks/blocks.php:80 includes/functions.php:290
792
- #: includes/functions.php:388
793
- #: premium/admin/partials/automations-sources.php:170
794
- #: premium/admin/partials/automations-sources.php:173
795
- #: widgets/forms/categories.php:60
796
- msgid "Order By"
797
  msgstr ""
798
 
799
- #: admin/settings.php:417 includes/functions.php:247 includes/functions.php:349
800
- #: includes/functions.php:392
801
- #: premium/admin/partials/automations-sources.php:180
802
- #: premium/public/templates/user-dashboard.php:65
803
- #: widgets/forms/categories.php:15 widgets/forms/search.php:15
804
- #: widgets/forms/video.php:15
805
- msgid "Title"
806
  msgstr ""
807
 
808
- #: admin/settings.php:418 includes/functions.php:393
809
- msgid "Date Posted"
 
810
  msgstr ""
811
 
812
- #: admin/settings.php:419 admin/settings.php:456 admin/settings.php:480
813
- #: includes/functions.php:394
814
- #: premium/admin/partials/automations-sources.php:181
815
- msgid "Views Count"
816
  msgstr ""
817
 
818
- #: admin/settings.php:420 includes/functions.php:395
819
- msgid "Random"
820
  msgstr ""
821
 
822
- #: admin/settings.php:437 includes/functions.php:448
823
- msgid "Thumbnail Style"
824
  msgstr ""
825
 
826
- #: admin/settings.php:441 includes/functions.php:452
827
- msgid "Image Top Aligned"
 
828
  msgstr ""
829
 
830
- #: admin/settings.php:442 includes/functions.php:453
831
- msgid "Image Left Aligned"
 
832
  msgstr ""
833
 
834
- #: admin/settings.php:448 admin/settings.php:473
835
- msgid "Show / Hide"
 
836
  msgstr ""
837
 
838
- #: admin/settings.php:452
839
- msgid "Videos Count"
 
840
  msgstr ""
841
 
842
- #: admin/settings.php:453 admin/settings.php:477
843
- msgid "Category Name"
844
  msgstr ""
845
 
846
- #: admin/settings.php:454 admin/settings.php:478
847
- msgid "Date Added"
 
848
  msgstr ""
849
 
850
- #: admin/settings.php:455 admin/settings.php:479
851
- msgid "Author Name"
852
  msgstr ""
853
 
854
- #: admin/settings.php:457
855
- msgid "Video Duration"
 
856
  msgstr ""
857
 
858
- #: admin/settings.php:458
859
- msgid "Video Excerpt"
860
  msgstr ""
861
 
862
- #: admin/settings.php:464 includes/functions.php:508
863
- msgid "Excerpt Length"
 
864
  msgstr ""
865
 
866
- #: admin/settings.php:465
867
- msgid "Number of characters."
868
  msgstr ""
869
 
870
- #: admin/settings.php:481 includes/functions.php:419
871
  msgid "Related Videos"
872
  msgstr ""
873
 
874
- #: admin/settings.php:487
875
  msgid "Enable Comments"
876
  msgstr ""
877
 
878
- #: admin/settings.php:488
879
  msgid ""
880
  "Allow visitors to comment videos using the standard WordPress comment form. "
881
  "Comments are public"
882
  msgstr ""
883
 
884
- #: admin/settings.php:496
885
- msgid "Video Detail Page"
886
- msgstr ""
887
-
888
- #: admin/settings.php:497
889
- msgid "Replaces the SLUG value used by custom post type \"aiovg_videos\"."
890
- msgstr ""
891
-
892
- #: admin/settings.php:505
893
- msgid "Enable Services"
894
- msgstr ""
895
-
896
- #: admin/settings.php:510 includes/functions.php:1592
897
- msgid "Twitter"
898
- msgstr ""
899
-
900
- #: admin/settings.php:511
901
- msgid "Google Plus"
902
- msgstr ""
903
-
904
- #: admin/settings.php:512 includes/functions.php:1602
905
- msgid "Linkedin"
906
  msgstr ""
907
 
908
- #: admin/settings.php:513
909
- msgid "Pinterest"
 
 
910
  msgstr ""
911
 
912
- #: admin/settings.php:521
913
  msgid "Single Category Page"
914
  msgstr ""
915
 
916
- #: admin/settings.php:522
917
  msgid ""
918
  "This is the page where the videos from a particular category is displayed. "
919
  "The [aiovg_category] short code must be on this page."
920
  msgstr ""
921
 
922
- #: admin/settings.php:528
923
  msgid "Search Page"
924
  msgstr ""
925
 
926
- #: admin/settings.php:529
927
  msgid ""
928
  "This is the page where the search results are displayed. The [aiovg_search] "
929
  "short code must be on this page."
930
  msgstr ""
931
 
932
- #: admin/settings.php:535
933
  msgid "User Videos Page"
934
  msgstr ""
935
 
936
- #: admin/settings.php:536
937
  msgid ""
938
  "This is the page where the videos from an user is displayed. The "
939
  "[aiovg_user_videos] short code must be on this page."
940
  msgstr ""
941
 
942
- #: admin/settings.php:542
943
  msgid "Player Page"
944
  msgstr ""
945
 
946
- #: admin/settings.php:543
947
  msgid "This is the page used to show the video player."
948
  msgstr ""
949
 
950
- #: admin/settings.php:551
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
951
  msgid "GDPR - Show Consent"
952
  msgstr ""
953
 
954
- #: admin/settings.php:552
955
  msgid "Ask for consent before loading YouTube / Vimeo content."
956
  msgstr ""
957
 
958
- #: admin/settings.php:558
959
  msgid "GDPR - Consent Message"
960
  msgstr ""
961
 
962
- #: admin/settings.php:565
963
  msgid "GDPR - Consent Button Label"
964
  msgstr ""
965
 
966
- #: admin/settings.php:577
967
  msgid "Show Logo"
968
  msgstr ""
969
 
970
- #: admin/settings.php:578
971
  msgid "Check this option to show the watermark on the video."
972
  msgstr ""
973
 
974
- #: admin/settings.php:584
975
  msgid "Logo Image"
976
  msgstr ""
977
 
978
- #: admin/settings.php:585
979
  msgid ""
980
  "Upload the image file of your logo. We recommend using the transparent PNG "
981
  "format with width below 100 pixels. If you do not enter any image, no logo "
982
  "will displayed."
983
  msgstr ""
984
 
985
- #: admin/settings.php:591
986
  msgid "Logo Link"
987
  msgstr ""
988
 
989
- #: admin/settings.php:592
990
  msgid ""
991
  "The URL to visit when the watermark image is clicked. Clicking a logo will "
992
  "have no affect unless this is configured."
993
  msgstr ""
994
 
995
- #: admin/settings.php:598
996
  msgid "Logo Position"
997
  msgstr ""
998
 
999
- #: admin/settings.php:599
1000
  msgid "This sets the corner in which to display the watermark."
1001
  msgstr ""
1002
 
1003
- #: admin/settings.php:602
1004
  msgid "Top Left"
1005
  msgstr ""
1006
 
1007
- #: admin/settings.php:603
1008
  msgid "Top Right"
1009
  msgstr ""
1010
 
1011
- #: admin/settings.php:604
1012
  msgid "Bottom Left"
1013
  msgstr ""
1014
 
1015
- #: admin/settings.php:605
1016
  msgid "Bottom Right"
1017
  msgstr ""
1018
 
1019
- #: admin/settings.php:611
1020
  msgid "Logo Margin"
1021
  msgstr ""
1022
 
1023
- #: admin/settings.php:612
1024
  msgid "The distance, in pixels, of the logo from the edges of the display."
1025
  msgstr ""
1026
 
1027
- #: admin/settings.php:618
1028
  msgid "Copyright Text"
1029
  msgstr ""
1030
 
1031
- #: admin/settings.php:619
1032
  msgid "Text that is shown when a user right-clicks the player with the mouse."
1033
  msgstr ""
1034
 
1035
- #: admin/settings.php:895
1036
  msgid "Choose File"
1037
  msgstr ""
1038
 
1039
- #: admin/settings.php:944
1040
  msgid "Select a page"
1041
  msgstr ""
1042
 
1043
- #: admin/shortcode-builder.php:34
1044
- msgid "Video Player & Gallery"
1045
- msgstr ""
1046
-
1047
- #: admin/shortcode-builder.php:50
1048
- #: premium/admin/partials/automations-video-settings.php:17
1049
- #: premium/admin/partials/automations-video-settings.php:20
1050
- #: widgets/categories.php:54
1051
- msgid "Video Categories"
1052
- msgstr ""
1053
-
1054
- #: admin/shortcode-builder.php:51 admin/videos.php:36 widgets/videos.php:269
1055
- msgid "Video Gallery"
1056
- msgstr ""
1057
-
1058
- #: admin/shortcode-builder.php:52
1059
- msgid "Single Video"
1060
  msgstr ""
1061
 
1062
- #: admin/shortcode-builder.php:53
1063
- msgid "Search Form"
1064
  msgstr ""
1065
 
1066
- #: admin/videos.php:37 admin/videos.php:69
1067
  msgid "Video"
1068
  msgstr ""
1069
 
1070
- #: admin/videos.php:38
1071
  msgid "Video Archives"
1072
  msgstr ""
1073
 
1074
- #: admin/videos.php:39
1075
  msgid "Video Attributes"
1076
  msgstr ""
1077
 
1078
- #: admin/videos.php:40
1079
- msgid "Parent Video:"
1080
- msgstr ""
1081
-
1082
- #: admin/videos.php:41 admin/videos.php:354
1083
- msgid "All Videos"
1084
  msgstr ""
1085
 
1086
- #: admin/videos.php:42 premium/public/templates/user-dashboard.php:52
1087
  msgid "Add New Video"
1088
  msgstr ""
1089
 
1090
- #: admin/videos.php:43 premium/admin/automations.php:84
1091
  msgid "Add New"
1092
  msgstr ""
1093
 
1094
- #: admin/videos.php:44
1095
  msgid "New Video"
1096
  msgstr ""
1097
 
1098
- #: admin/videos.php:45
1099
  msgid "Edit Video"
1100
  msgstr ""
1101
 
1102
- #: admin/videos.php:46
1103
  msgid "Update Video"
1104
  msgstr ""
1105
 
1106
- #: admin/videos.php:47
1107
  msgid "View Video"
1108
  msgstr ""
1109
 
1110
- #: admin/videos.php:48
1111
  msgid "View Videos"
1112
  msgstr ""
1113
 
1114
- #: admin/videos.php:49
1115
  msgid "Search Video"
1116
  msgstr ""
1117
 
1118
- #: admin/videos.php:50
1119
  msgid "Not found"
1120
  msgstr ""
1121
 
1122
- #: admin/videos.php:51
1123
  msgid "Not found in Trash"
1124
  msgstr ""
1125
 
1126
- #: admin/videos.php:52
1127
  msgid "Featured Image"
1128
  msgstr ""
1129
 
1130
- #: admin/videos.php:53
1131
  msgid "Set featured image"
1132
  msgstr ""
1133
 
1134
- #: admin/videos.php:54
1135
  msgid "Remove featured image"
1136
  msgstr ""
1137
 
1138
- #: admin/videos.php:55
1139
  msgid "Use as featured image"
1140
  msgstr ""
1141
 
1142
- #: admin/videos.php:56
1143
  msgid "Insert into video"
1144
  msgstr ""
1145
 
1146
- #: admin/videos.php:57
1147
  msgid "Uploaded to this video"
1148
  msgstr ""
1149
 
1150
- #: admin/videos.php:58
1151
  msgid "Videos list"
1152
  msgstr ""
1153
 
1154
- #: admin/videos.php:59
1155
  msgid "Videos list navigation"
1156
  msgstr ""
1157
 
1158
- #: admin/videos.php:60
1159
  msgid "Filter videos list"
1160
  msgstr ""
1161
 
1162
- #: admin/videos.php:70 premium/public/templates/video-form.php:302
1163
  msgid "Video Description"
1164
  msgstr ""
1165
 
1166
- #: admin/videos.php:134
1167
  msgid "Video Sources"
1168
  msgstr ""
1169
 
1170
- #: admin/videos.php:355
1171
  msgid "Featured only"
1172
  msgstr ""
1173
 
1174
- #: admin/welcome.php:31 admin/welcome.php:32 admin/welcome.php:39
1175
- #: admin/welcome.php:40 admin/welcome.php:47 admin/welcome.php:48
1176
- msgid "Welcome - All-in-One Video Gallery"
1177
- msgstr ""
1178
-
1179
- #: admin/welcome.php:68
1180
- msgid "New"
1181
- msgstr ""
1182
-
1183
- #: admin/welcome.php:69
1184
- msgid "Support"
1185
- msgstr ""
1186
-
1187
  #: blocks/blocks.php:71 widgets/categories.php:68
1188
  msgid "AIOVG - Video Categories"
1189
  msgstr ""
@@ -1192,242 +1317,270 @@ msgstr ""
1192
  msgid "Display a list of video categories."
1193
  msgstr ""
1194
 
1195
- #: blocks/blocks.php:74
1196
- msgid "Categories Settings"
1197
- msgstr ""
1198
-
1199
- #: blocks/blocks.php:75 includes/functions.php:265
1200
- #: widgets/forms/categories.php:20 widgets/forms/categories.php:23
1201
- msgid "Select Parent"
1202
- msgstr ""
1203
-
1204
- #: blocks/blocks.php:86 includes/functions.php:307 includes/functions.php:405
1205
  #: widgets/forms/categories.php:82
1206
  msgid "ASC"
1207
  msgstr ""
1208
 
1209
- #: blocks/blocks.php:87 includes/functions.php:308 includes/functions.php:406
1210
  #: widgets/forms/categories.php:83
1211
  msgid "DESC"
1212
  msgstr ""
1213
 
1214
- #: blocks/blocks.php:92 widgets/videos.php:63
1215
  msgid "AIOVG - Video Gallery"
1216
  msgstr ""
1217
 
1218
- #: blocks/blocks.php:93
1219
  msgid "Display a Video gallery."
1220
  msgstr ""
1221
 
1222
- #: blocks/blocks.php:94
1223
  msgid "Selected Color"
1224
  msgstr ""
1225
 
1226
- #: blocks/blocks.php:95 widgets/search.php:46
1227
  msgid "AIOVG - Search Form"
1228
  msgstr ""
1229
 
1230
- #: blocks/blocks.php:96 widgets/search.php:43
1231
  msgid "A videos search form for your site."
1232
  msgstr ""
1233
 
1234
- #: blocks/blocks.php:97
1235
- msgid "Search Form Settings"
1236
- msgstr ""
1237
-
1238
- #: blocks/blocks.php:98 includes/functions.php:650 widgets/forms/search.php:24
1239
  msgid "Vertical"
1240
  msgstr ""
1241
 
1242
- #: blocks/blocks.php:99 includes/functions.php:651 widgets/forms/search.php:25
1243
  msgid "Horizontal"
1244
  msgstr ""
1245
 
1246
- #: blocks/blocks.php:100 includes/functions.php:657 widgets/forms/search.php:37
1247
  msgid "Search By Categories"
1248
  msgstr ""
1249
 
1250
- #: blocks/blocks.php:101 widgets/video.php:46
1251
  msgid "AIOVG - Video Player"
1252
  msgstr ""
1253
 
1254
- #: blocks/blocks.php:102 widgets/video.php:43
1255
  msgid "Display a video player."
1256
  msgstr ""
1257
 
1258
- #: blocks/blocks.php:103
1259
  msgid "Add MP4, WebM, OGV, YouTube, Vimeo, Dailymotion, Facebook, etc."
1260
  msgstr ""
1261
 
1262
- #: blocks/blocks.php:104
1263
  msgid "a video"
1264
  msgstr ""
1265
 
1266
- #: blocks/blocks.php:105
1267
  msgid "Edit video"
1268
  msgstr ""
1269
 
1270
- #: blocks/blocks.php:113
1271
  msgid "Poster Image"
1272
  msgstr ""
1273
 
1274
- #: blocks/blocks.php:114
1275
  msgid "Select Poster Image"
1276
  msgstr ""
1277
 
1278
- #: blocks/blocks.php:115
1279
  msgid "Replace Image"
1280
  msgstr ""
1281
 
1282
- #: blocks/blocks.php:116
1283
  msgid "Remove Poster Image"
1284
  msgstr ""
1285
 
1286
- #: includes/functions.php:364 premium/public/templates/video-form.php:52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1287
  msgid "Select Categories"
1288
  msgstr ""
1289
 
1290
- #: includes/functions.php:371
 
 
 
 
1291
  msgid "Exclude Video ID(s)"
1292
  msgstr ""
1293
 
1294
- #: includes/functions.php:412
1295
  msgid "Featured Only"
1296
  msgstr ""
1297
 
1298
- #: includes/functions.php:419
1299
  msgid "Follow URL"
1300
  msgstr ""
1301
 
1302
- #: includes/functions.php:427
1303
- msgid "Gallery Settings"
1304
  msgstr ""
1305
 
1306
- #: includes/functions.php:466
1307
  msgid "Show Category Name"
1308
  msgstr ""
1309
 
1310
- #: includes/functions.php:473
1311
  msgid "Show Date Added"
1312
  msgstr ""
1313
 
1314
- #: includes/functions.php:480
1315
  msgid "Show Author Name"
1316
  msgstr ""
1317
 
1318
- #: includes/functions.php:487
1319
  msgid "Show Views Count"
1320
  msgstr ""
1321
 
1322
- #: includes/functions.php:494
1323
  msgid "Show Video Duration"
1324
  msgstr ""
1325
 
1326
- #: includes/functions.php:501
1327
  msgid "Show Video Excerpt"
1328
  msgstr ""
1329
 
1330
- #: includes/functions.php:515
1331
  msgid "Show Pagination"
1332
  msgstr ""
1333
 
1334
- #: includes/functions.php:522
1335
  msgid "Show More Button"
1336
  msgstr ""
1337
 
1338
- #: includes/functions.php:529
1339
  msgid "More Button Label"
1340
  msgstr ""
1341
 
1342
- #: includes/functions.php:532
1343
  msgid "Show More"
1344
  msgstr ""
1345
 
1346
- #: includes/functions.php:536
1347
  msgid "More Button Link"
1348
  msgstr ""
1349
 
1350
- #: includes/functions.php:550 widgets/forms/video.php:20
1351
- msgid "Select Video"
1352
- msgstr ""
1353
-
1354
- #: includes/functions.php:814
1355
- msgid ""
1356
- "<strong>Please accept cookies to play this video</strong>. By accepting you "
1357
- "will be accessing content from a service provided by an external third party."
1358
- msgstr ""
1359
-
1360
- #: includes/functions.php:815
1361
- msgid "Accept"
1362
  msgstr ""
1363
 
1364
- #: includes/functions.php:948
1365
- msgid "No Items found."
1366
  msgstr ""
1367
 
1368
- #: includes/functions.php:1174
1369
  msgid "Self Hosted"
1370
  msgstr ""
1371
 
1372
- #: includes/functions.php:1174
1373
  msgid "External URL"
1374
  msgstr ""
1375
 
1376
- #: includes/functions.php:1182
1377
  msgid "Iframe Embed Code"
1378
  msgstr ""
1379
 
1380
- #: includes/functions.php:1196
1381
  msgid "Classic"
1382
  msgstr ""
1383
 
1384
- #: includes/functions.php:1343
1385
- msgid "Video Category"
1386
- msgstr ""
1387
-
1388
- #: includes/functions.php:1347 widgets/search.php:109
1389
- msgid "Search Videos"
1390
- msgstr ""
1391
-
1392
- #: includes/functions.php:1351
1393
- msgid "User Videos"
1394
- msgstr ""
1395
-
1396
- #: includes/functions.php:1355
1397
- msgid "Player Embed"
1398
- msgstr ""
1399
-
1400
- #: includes/functions.php:1526
1401
  msgid "&laquo;"
1402
  msgstr ""
1403
 
1404
- #: includes/functions.php:1527
1405
  msgid "&raquo;"
1406
  msgstr ""
1407
 
1408
- #: includes/functions.php:1542
1409
  #, php-format
1410
  msgid "Page %d of %d"
1411
  msgstr ""
1412
 
1413
- #: includes/functions.php:1597
1414
- msgid "Google+"
1415
  msgstr ""
1416
 
1417
- #: includes/functions.php:1607
1418
- msgid "Pin It"
 
 
 
 
 
 
 
 
 
 
1419
  msgstr ""
1420
 
1421
- #: premium/admin/admin.php:48
1422
  #, php-format
1423
  msgid "Proudly by \"%s\""
1424
  msgstr ""
1425
 
1426
- #: premium/admin/admin.php:114
1427
  msgid "[{site_name}] Video \"{video_title}\" received"
1428
  msgstr ""
1429
 
1430
- #: premium/admin/admin.php:115
1431
  msgid ""
1432
  "Dear {name},\n"
1433
  "\n"
@@ -1438,11 +1591,11 @@ msgid ""
1438
  "The Administrator of {site_name}"
1439
  msgstr ""
1440
 
1441
- #: premium/admin/admin.php:124
1442
  msgid "[{site_name}] Video \"{video_title}\" published"
1443
  msgstr ""
1444
 
1445
- #: premium/admin/admin.php:125
1446
  msgid ""
1447
  "Dear {name},\n"
1448
  "\n"
@@ -1453,109 +1606,126 @@ msgid ""
1453
  "The Administrator of {site_name}"
1454
  msgstr ""
1455
 
1456
- #: premium/admin/admin.php:181
1457
  msgid "Please wait while we are loading data from the API server..."
1458
  msgstr ""
1459
 
1460
- #: premium/admin/ads.php:33
 
 
 
 
 
 
 
 
1461
  msgid "Ads"
1462
  msgstr ""
1463
 
1464
- #: premium/admin/ads.php:49
1465
  msgid "Ads Settings"
1466
  msgstr ""
1467
 
1468
- #: premium/admin/ads.php:50
1469
  msgid ""
1470
  "Monetize your videos using DoubleClick for Publishers (DFP), the Google "
1471
  "AdSense network, or any VAST-compliant ad server."
1472
  msgstr ""
1473
 
1474
- #: premium/admin/ads.php:68
1475
  msgid "Enable Ads"
1476
  msgstr ""
1477
 
1478
- #: premium/admin/ads.php:69
1479
  msgid "Check this option to enable advertisements on your videos"
1480
  msgstr ""
1481
 
1482
- #: premium/admin/ads.php:75
1483
  msgid "VAST URL"
1484
  msgstr ""
1485
 
1486
- #: premium/admin/ads.php:76
1487
  #, php-format
1488
  msgid ""
1489
  "Click here for a list of <a href=\"%s\" target=\"_blank\">Ad Tag Variables</"
1490
  "a> (Macros) supported by the plugin."
1491
  msgstr ""
1492
 
1493
- #: premium/admin/ads.php:82
1494
  msgid "VPAID Mode"
1495
  msgstr ""
1496
 
1497
- #: premium/admin/ads.php:86
1498
  msgid "Enabled"
1499
  msgstr ""
1500
 
1501
- #: premium/admin/ads.php:87
1502
  msgid "Insecure"
1503
  msgstr ""
1504
 
1505
- #: premium/admin/ads.php:88
1506
  msgid "Disabled"
1507
  msgstr ""
1508
 
1509
- #: premium/admin/ads.php:94
1510
  msgid "Livestream Ad Interval"
1511
  msgstr ""
1512
 
1513
- #: premium/admin/ads.php:95
1514
  msgid ""
1515
  "Optional. Seconds after the next advertisement should play in your live "
1516
  "streaming video player."
1517
  msgstr ""
1518
 
1519
- #: premium/admin/ads.php:102
1520
  msgid "Google Publisher Tag (GPT)"
1521
  msgstr ""
1522
 
1523
- #: premium/admin/ads.php:103
1524
  #, php-format
1525
  msgid ""
1526
  "Optional. Check this option to display companion ads using <a href=\"%s\" "
1527
  "target=\"_blank\">Google Publisher Tag</a>"
1528
  msgstr ""
1529
 
1530
- #: premium/admin/ads.php:120
1531
  msgid "Video Ads"
1532
  msgstr ""
1533
 
1534
- #: premium/admin/automations.php:34
 
 
 
 
 
 
 
 
 
1535
  msgid "Automations Settings"
1536
  msgstr ""
1537
 
1538
- #: premium/admin/automations.php:53
1539
  msgid "YouTube API key"
1540
  msgstr ""
1541
 
1542
- #: premium/admin/automations.php:54 premium/includes/youtube.php:56
1543
  #, php-format
1544
  msgid ""
1545
  "Follow <a href=\"%s\" target=\"_blank\">this guide</a> to get your own API "
1546
  "key."
1547
  msgstr ""
1548
 
1549
- #: premium/admin/automations.php:60
1550
  msgid "Enable Fast Mode"
1551
  msgstr ""
1552
 
1553
- #: premium/admin/automations.php:61
1554
  msgid ""
1555
  "Increase speed by disabling do_action calls in wp_insert_post during import"
1556
  msgstr ""
1557
 
1558
- #: premium/admin/automations.php:62
1559
  msgid ""
1560
  "NOTE: This option is for advanced users with knowledge of WordPress "
1561
  "development. Your theme or plugins may require these calls when posts are "
@@ -1565,629 +1735,605 @@ msgid ""
1565
  "work properly if you check this box."
1566
  msgstr ""
1567
 
1568
- #: premium/admin/automations.php:80 premium/admin/automations.php:82
1569
- #: premium/admin/automations.php:95
1570
- msgid "Automations"
1571
- msgstr ""
1572
-
1573
- #: premium/admin/automations.php:81
1574
  msgid "Automation"
1575
  msgstr ""
1576
 
1577
- #: premium/admin/automations.php:83
1578
  msgid "Add New Source"
1579
  msgstr ""
1580
 
1581
- #: premium/admin/automations.php:85
1582
  msgid "New Source"
1583
  msgstr ""
1584
 
1585
- #: premium/admin/automations.php:86
1586
  msgid "Edit Source"
1587
  msgstr ""
1588
 
1589
- #: premium/admin/automations.php:87
1590
  msgid "Update Source"
1591
  msgstr ""
1592
 
1593
- #: premium/admin/automations.php:88
1594
  msgid "View Source"
1595
  msgstr ""
1596
 
1597
- #: premium/admin/automations.php:89
1598
  msgid "Search Sources"
1599
  msgstr ""
1600
 
1601
- #: premium/admin/automations.php:90
1602
  msgid "No sources found"
1603
  msgstr ""
1604
 
1605
- #: premium/admin/automations.php:91
1606
  msgid "No sources found in Trash"
1607
  msgstr ""
1608
 
1609
- #: premium/admin/automations.php:96
1610
  msgid "Automations Description"
1611
  msgstr ""
1612
 
1613
- #: premium/admin/automations.php:130
1614
  msgid "Enter your source title"
1615
  msgstr ""
1616
 
1617
- #: premium/admin/automations.php:144
1618
  msgid "Imported only"
1619
  msgstr ""
1620
 
1621
- #: premium/admin/automations.php:241
1622
  msgid "Source"
1623
  msgstr ""
1624
 
1625
- #: premium/admin/automations.php:243
1626
  msgid "Stats"
1627
  msgstr ""
1628
 
1629
- #: premium/admin/automations.php:259
1630
  msgid "Imported"
1631
  msgstr ""
1632
 
1633
- #: premium/admin/automations.php:320 premium/admin/automations.php:510
1634
  msgid "Paused"
1635
  msgstr ""
1636
 
1637
- #: premium/admin/automations.php:338
1638
- #: premium/admin/partials/automations-statistics.php:23
1639
  msgid "Import status"
1640
  msgstr ""
1641
 
1642
- #: premium/admin/automations.php:342
1643
- #: premium/admin/partials/automations-statistics.php:35
1644
  msgid "videos imported"
1645
  msgstr ""
1646
 
1647
- #: premium/admin/automations.php:343
1648
- #: premium/admin/partials/automations-statistics.php:60
1649
  msgid "Next scheduled update"
1650
  msgstr ""
1651
 
1652
- #: premium/admin/automations.php:411
1653
  msgid "Configure Import Sources"
1654
  msgstr ""
1655
 
1656
- #: premium/admin/automations.php:420
1657
  msgid "Video Post Settings"
1658
  msgstr ""
1659
 
1660
- #: premium/admin/automations.php:429
1661
  msgid "Import Stats"
1662
  msgstr ""
1663
 
1664
- #: premium/admin/automations.php:646
1665
  msgid "Test Run"
1666
  msgstr ""
1667
 
1668
- #: premium/admin/automations.php:647
1669
  msgid "Publish & Import"
1670
  msgstr ""
1671
 
1672
- #: premium/admin/automations.php:647
1673
  msgid "Import Next Batch"
1674
  msgstr ""
1675
 
1676
- #: premium/admin/partials/adaptive-streaming.php:15
1677
- #: premium/admin/partials/adaptive-streaming.php:18
1678
- #: premium/public/templates/video-form.php:261
1679
- msgid "M(PEG)-DASH"
1680
- msgstr ""
1681
-
1682
- #: premium/admin/partials/adaptive-streaming.php:26
1683
- #: premium/admin/partials/adaptive-streaming.php:29
1684
- #: premium/public/templates/video-form.php:261
1685
- msgid "HLS"
1686
- msgstr ""
1687
-
1688
- #: premium/admin/partials/ads.php:16
1689
  msgid "Disable Ads"
1690
  msgstr ""
1691
 
1692
- #: premium/admin/partials/automations-sources.php:17
1693
- #: premium/admin/partials/automations-sources.php:20
1694
  msgid "Video Service"
1695
  msgstr ""
1696
 
1697
- #: premium/admin/partials/automations-sources.php:41
1698
- #: premium/admin/partials/automations-sources.php:44
1699
- msgid "Source Type"
1700
- msgstr ""
1701
-
1702
- #: premium/admin/partials/automations-sources.php:65
1703
- #: premium/admin/partials/automations-sources.php:68
1704
  msgid "Search Keyword"
1705
  msgstr ""
1706
 
1707
- #: premium/admin/partials/automations-sources.php:76
1708
  msgid "Enter search terms (space:AND, -:NOT, |:OR)"
1709
  msgstr ""
1710
 
1711
- #: premium/admin/partials/automations-sources.php:84
1712
- #: premium/admin/partials/automations-sources.php:87
1713
  msgid "Playlist URL"
1714
  msgstr ""
1715
 
1716
- #: premium/admin/partials/automations-sources.php:102
1717
- #: premium/admin/partials/automations-sources.php:105
1718
  msgid "Channel URL"
1719
  msgstr ""
1720
 
1721
- #: premium/admin/partials/automations-sources.php:120
1722
- #: premium/admin/partials/automations-sources.php:123
1723
- #: premium/includes/functions.php:94
1724
  msgid "Username"
1725
  msgstr ""
1726
 
1727
- #: premium/admin/partials/automations-sources.php:138
1728
- #: premium/admin/partials/automations-sources.php:141
1729
  msgid "Video URLs"
1730
  msgstr ""
1731
 
1732
- #: premium/admin/partials/automations-sources.php:149
1733
  msgid "Enter one video per line."
1734
  msgstr ""
1735
 
1736
- #: premium/admin/partials/automations-sources.php:157
1737
- #: premium/admin/partials/automations-sources.php:160
1738
  msgid "Exclude URLs"
1739
  msgstr ""
1740
 
1741
- #: premium/admin/partials/automations-sources.php:163
1742
  msgid ""
1743
  "Enter the list of video URLs those should be excluded during the import. "
1744
  "Enter one video per line."
1745
  msgstr ""
1746
 
1747
- #: premium/admin/partials/automations-sources.php:177
1748
  msgid "Date"
1749
  msgstr ""
1750
 
1751
- #: premium/admin/partials/automations-sources.php:178
1752
  msgid "Rating"
1753
  msgstr ""
1754
 
1755
- #: premium/admin/partials/automations-sources.php:179
1756
  msgid "Relevance"
1757
  msgstr ""
1758
 
1759
- #: premium/admin/partials/automations-sources.php:194
1760
- #: premium/admin/partials/automations-sources.php:197
1761
  msgid "Batch Limit"
1762
  msgstr ""
1763
 
1764
- #: premium/admin/partials/automations-sources.php:200
1765
  msgid ""
1766
  "Enter the maximum amount of videos to be imported per batch. We recommend "
1767
  "keeping this value less than 500."
1768
  msgstr ""
1769
 
1770
- #: premium/admin/partials/automations-sources.php:207
1771
- #: premium/admin/partials/automations-sources.php:210
1772
  msgid "Schedule"
1773
  msgstr ""
1774
 
1775
- #: premium/admin/partials/automations-sources.php:214
1776
  msgid "Only Once"
1777
  msgstr ""
1778
 
1779
- #: premium/admin/partials/automations-sources.php:215
1780
  msgid "Every 1 Hour"
1781
  msgstr ""
1782
 
1783
- #: premium/admin/partials/automations-sources.php:216
1784
  msgid "Every 1 Day"
1785
  msgstr ""
1786
 
1787
- #: premium/admin/partials/automations-sources.php:217
1788
  msgid "Every 1 Week"
1789
  msgstr ""
1790
 
1791
- #: premium/admin/partials/automations-sources.php:218
1792
  msgid "Every 1 Month"
1793
  msgstr ""
1794
 
1795
- #: premium/admin/partials/automations-sources.php:226
1796
  msgid "Configure how frequent the plugin the plugin should import videos."
1797
  msgstr ""
1798
 
1799
- #: premium/admin/partials/automations-sources.php:232
1800
- #: premium/admin/partials/automations-sources.php:235
1801
  msgid "Reschedule"
1802
  msgstr ""
1803
 
1804
- #: premium/admin/partials/automations-sources.php:238
1805
  msgid ""
1806
  "Check this option if the plugin should check for new videos after the import "
1807
  "has been completed."
1808
  msgstr ""
1809
 
1810
- #: premium/admin/partials/automations-statistics.php:44
1811
  msgid "videos excluded"
1812
  msgstr ""
1813
 
1814
- #: premium/admin/partials/automations-statistics.php:53
1815
  msgid "duplicate videos ignored"
1816
  msgstr ""
1817
 
1818
- #: premium/admin/partials/automations-statistics.php:64
1819
  msgid "History"
1820
  msgstr ""
1821
 
1822
- #: premium/admin/partials/automations-statistics.php:72
1823
  #, php-format
1824
  msgid "Imported %d videos on %s"
1825
  msgstr ""
1826
 
1827
- #: premium/admin/partials/automations-statistics.php:82
1828
  msgid "You have not started importing videos."
1829
  msgstr ""
1830
 
1831
- #: premium/admin/partials/automations-submitbox.php:15
1832
  msgid ""
1833
  "We are importing your videos. Please do not refresh or leave this page. This "
1834
  "can take a few minutes."
1835
  msgstr ""
1836
 
1837
- #: premium/admin/partials/automations-test-screen.php:21
1838
  msgid ""
1839
  "Congrats! Your configuration is working. You can publish the form and start "
1840
  "importing videos."
1841
  msgstr ""
1842
 
1843
- #: premium/admin/partials/automations-test-screen.php:40
1844
  #, php-format
1845
  msgid "Published on %s"
1846
  msgstr ""
1847
 
1848
- #: premium/admin/partials/automations-video-settings.php:33
 
 
 
 
 
 
1849
  msgid "Select the categories to which the imported videos should be posted."
1850
  msgstr ""
1851
 
1852
- #: premium/admin/partials/automations-video-settings.php:39
1853
- #: premium/admin/partials/automations-video-settings.php:42
1854
  msgid "Video Date"
1855
  msgstr ""
1856
 
1857
- #: premium/admin/partials/automations-video-settings.php:46
1858
  msgid "Original date on the video service"
1859
  msgstr ""
1860
 
1861
- #: premium/admin/partials/automations-video-settings.php:47
1862
  msgid "Date when the video is imported"
1863
  msgstr ""
1864
 
1865
- #: premium/admin/partials/automations-video-settings.php:55
1866
  msgid ""
1867
  "Select whether to use the original posting date on the video service, or the "
1868
  "date when the video is imported."
1869
  msgstr ""
1870
 
1871
- #: premium/admin/partials/automations-video-settings.php:61
1872
- #: premium/admin/partials/automations-video-settings.php:64
1873
  msgid "Video Author"
1874
  msgstr ""
1875
 
1876
- #: premium/admin/partials/automations-video-settings.php:73
1877
  msgid "Select the author to whom the video should be assigned."
1878
  msgstr ""
1879
 
1880
- #: premium/admin/partials/automations-video-settings.php:79
1881
- #: premium/admin/partials/automations-video-settings.php:82
1882
  msgid "Video Status"
1883
  msgstr ""
1884
 
1885
- #: premium/admin/partials/automations-video-settings.php:86
1886
  msgid "Draft"
1887
  msgstr ""
1888
 
1889
- #: premium/admin/partials/automations-video-settings.php:87
1890
- #: premium/admin/user.php:123 premium/admin/user.php:134
1891
  msgid "Pending"
1892
  msgstr ""
1893
 
1894
- #: premium/admin/partials/automations-video-settings.php:88
1895
- #: premium/admin/user.php:122 premium/admin/user.php:133
1896
- #: premium/public/templates/video-form.php:332
1897
  msgid "Publish"
1898
  msgstr ""
1899
 
1900
- #: premium/admin/partials/automations-video-settings.php:96
1901
  msgid ""
1902
  "Select the default status of the imported videos. Site admin will be "
1903
  "notified through email when an import occurs with the \"Pending\" status."
1904
  msgstr ""
1905
 
1906
- #: premium/admin/popup.php:32
1907
  msgid "Popup"
1908
  msgstr ""
1909
 
1910
- #: premium/admin/slider.php:32
1911
  msgid "Slider"
1912
  msgstr ""
1913
 
1914
- #: premium/admin/slider.php:52 premium/public/slider.php:44
1915
  msgid "Slider Layout"
1916
  msgstr ""
1917
 
1918
- #: premium/admin/slider.php:56 premium/public/slider.php:48
1919
  msgid "Player Only"
1920
  msgstr ""
1921
 
1922
- #: premium/admin/slider.php:57 premium/public/slider.php:49
1923
  msgid "Thumbnails Only"
1924
  msgstr ""
1925
 
1926
- #: premium/admin/slider.php:58 premium/public/slider.php:50
1927
  msgid "Player + Thumbnails"
1928
  msgstr ""
1929
 
1930
- #: premium/admin/slider.php:70 premium/public/slider.php:59
1931
  msgid "Arrows"
1932
  msgstr ""
1933
 
1934
- #: premium/admin/slider.php:77 premium/public/slider.php:66
1935
  msgid "Arrow Size (in pixels)"
1936
  msgstr ""
1937
 
1938
- #: premium/admin/slider.php:87 premium/public/slider.php:76
1939
  msgid "Arrow BG Color"
1940
  msgstr ""
1941
 
1942
- #: premium/admin/slider.php:94 premium/public/slider.php:83
1943
  msgid "Arrow Icon Color"
1944
  msgstr ""
1945
 
1946
- #: premium/admin/slider.php:101 premium/public/slider.php:90
1947
  msgid "Arrow Radius (in pixels)"
1948
  msgstr ""
1949
 
1950
- #: premium/admin/slider.php:111
1951
  msgid "Arrow Top Offset"
1952
  msgstr ""
1953
 
1954
- #: premium/admin/slider.php:121
1955
  msgid "Arrow Left Offset"
1956
  msgstr ""
1957
 
1958
- #: premium/admin/slider.php:131
1959
  msgid "Arrow Right Offset"
1960
  msgstr ""
1961
 
1962
- #: premium/admin/slider.php:141 premium/public/slider.php:130
1963
  msgid "Dots"
1964
  msgstr ""
1965
 
1966
- #: premium/admin/slider.php:148
1967
  msgid "Dot Size (in pixels)"
1968
  msgstr ""
1969
 
1970
- #: premium/admin/slider.php:158 premium/public/slider.php:147
1971
  msgid "Dot Color"
1972
  msgstr ""
1973
 
1974
- #: premium/admin/user.php:33
1975
  msgid "User"
1976
  msgstr ""
1977
 
1978
- #: premium/admin/user.php:50
1979
- msgid "Front-end Video Submission Settings"
1980
  msgstr ""
1981
 
1982
- #: premium/admin/user.php:56
1983
- msgid "User Account Settings"
1984
  msgstr ""
1985
 
1986
- #: premium/admin/user.php:62
1987
  msgid "[Email Template] Video Pending Review"
1988
  msgstr ""
1989
 
1990
- #: premium/admin/user.php:68
1991
  msgid "[Email Template] Video Published"
1992
  msgstr ""
1993
 
1994
- #: premium/admin/user.php:88
1995
- msgid "Assign Categories"
1996
  msgstr ""
1997
 
1998
- #: premium/admin/user.php:89
1999
- msgid "Check this box to allow users to select categories for their videos"
 
 
2000
  msgstr ""
2001
 
2002
- #: premium/admin/user.php:95
2003
- msgid "Allowed Source Types"
2004
  msgstr ""
2005
 
2006
- #: premium/admin/user.php:103
2007
- msgid "Allow File Uploads"
 
 
2008
  msgstr ""
2009
 
2010
- #: premium/admin/user.php:110
2011
- msgid "Maximum Upload Size"
2012
  msgstr ""
2013
 
2014
- #: premium/admin/user.php:111
2015
  msgid ""
2016
- "In bytes. Enter the maximum file size the users can upload in your website. "
2017
- "Leave this field empty to allow the maximium possible file size."
2018
  msgstr ""
2019
 
2020
- #: premium/admin/user.php:118
2021
- msgid "Default New Video Status"
2022
  msgstr ""
2023
 
2024
- #: premium/admin/user.php:129
2025
- msgid "Edit Video Status"
2026
  msgstr ""
2027
 
2028
- #: premium/admin/user.php:140
2029
- msgid "Terms and Conditions URL"
2030
  msgstr ""
2031
 
2032
- #: premium/admin/user.php:141
2033
- msgid "Optional. Enter your Terms and Conditions Page URL."
2034
  msgstr ""
2035
 
2036
- #: premium/admin/user.php:150
2037
- msgid "Custom Login URL"
2038
  msgstr ""
2039
 
2040
- #: premium/admin/user.php:151
2041
  msgid ""
2042
- "Optional. Enter your custom Login Page URL. Leave this field empty to use "
2043
- "the default WordPress Login form."
2044
  msgstr ""
2045
 
2046
- #: premium/admin/user.php:157
2047
- msgid "Custom Registration URL"
2048
  msgstr ""
2049
 
2050
- #: premium/admin/user.php:158
2051
- msgid ""
2052
- "Optional. Enter your custom Registration Page URL. Leave this field empty to "
2053
- "use the default WordPress Registration URL."
2054
  msgstr ""
2055
 
2056
- #: premium/admin/user.php:164
2057
- msgid "Custom Forgot Password URL"
2058
  msgstr ""
2059
 
2060
- #: premium/admin/user.php:165
2061
- msgid ""
2062
- "Optional. Enter your custom Forgot Password Page URL. Leave this field empty "
2063
- "to use the default WordPress Forgot Password URL."
2064
  msgstr ""
2065
 
2066
- #: premium/admin/user.php:174 premium/admin/user.php:201
2067
  msgid "Email Subject"
2068
  msgstr ""
2069
 
2070
- #: premium/admin/user.php:181 premium/admin/user.php:208
2071
  msgid "Email Body"
2072
  msgstr ""
2073
 
2074
- #: premium/admin/user.php:182 premium/admin/user.php:209
2075
- msgid "SUPPORTED PLACEHOLDERS:"
2076
  msgstr ""
2077
 
2078
- #: premium/admin/user.php:183 premium/admin/user.php:210
2079
  msgid "The video owner's display name on the site"
2080
  msgstr ""
2081
 
2082
- #: premium/admin/user.php:184 premium/admin/user.php:211
2083
  msgid "The video owner's user name on the site"
2084
  msgstr ""
2085
 
2086
- #: premium/admin/user.php:185 premium/admin/user.php:212
2087
  msgid "Your site name"
2088
  msgstr ""
2089
 
2090
- #: premium/admin/user.php:186 premium/admin/user.php:213
2091
  msgid "Your site name with link"
2092
  msgstr ""
2093
 
2094
- #: premium/admin/user.php:187 premium/admin/user.php:214
2095
  msgid "Your site url with link"
2096
  msgstr ""
2097
 
2098
- #: premium/admin/user.php:188 premium/admin/user.php:215
2099
  msgid "Video's title"
2100
  msgstr ""
2101
 
2102
- #: premium/admin/user.php:189 premium/admin/user.php:216
2103
  msgid "Video's title with link"
2104
  msgstr ""
2105
 
2106
- #: premium/admin/user.php:190 premium/admin/user.php:217
2107
  msgid "Video's url with link"
2108
  msgstr ""
2109
 
2110
- #: premium/admin/user.php:191 premium/admin/user.php:218
2111
  msgid "Current date"
2112
  msgstr ""
2113
 
2114
- #: premium/admin/user.php:192 premium/admin/user.php:219
2115
  msgid "Current time"
2116
  msgstr ""
2117
 
2118
- #: premium/admin/user.php:227 premium/includes/functions.php:237
2119
- msgid "User Dashboard"
2120
- msgstr ""
2121
-
2122
- #: premium/admin/user.php:228
2123
  msgid ""
2124
  "This is the page where the users can manage (add, edit or delete) their "
2125
  "videos in front-end. The [aiovg_user_dashboard] short code must be on this "
2126
  "page."
2127
  msgstr ""
2128
 
2129
- #: premium/admin/user.php:235 premium/includes/functions.php:241
2130
- msgid "Video Form"
2131
- msgstr ""
2132
-
2133
- #: premium/admin/user.php:236
2134
  msgid ""
2135
  "This is the form page where the users can add their videos in front-end. The "
2136
  "[aiovg_video_form] short code must be on this page."
2137
  msgstr ""
2138
 
2139
- #: premium/includes/functions.php:91
2140
- #: premium/public/templates/user-dashboard.php:45
2141
  #: public/templates/search-form-template-horizontal.php:44
2142
  #: public/templates/search-form-template-vertical.php:44
2143
  msgid "Search"
2144
  msgstr ""
2145
 
2146
- #: premium/includes/functions.php:92
2147
  msgid "Playlist"
2148
  msgstr ""
2149
 
2150
- #: premium/includes/functions.php:93
2151
  msgid "Channel"
2152
  msgstr ""
2153
 
2154
- #: premium/includes/functions.php:95
2155
  msgid "Videos"
2156
  msgstr ""
2157
 
2158
- #: premium/includes/functions.php:216
2159
  msgid "Scheduled"
2160
  msgstr ""
2161
 
2162
- #: premium/includes/functions.php:218
2163
  msgid "Rescheduled"
2164
  msgstr ""
2165
 
2166
- #: premium/includes/functions.php:220
2167
  msgid "Completed"
2168
  msgstr ""
2169
 
2170
- #: premium/includes/functions.php:294
2171
  msgid "Forgot your password?"
2172
  msgstr ""
2173
 
2174
- #: premium/includes/functions.php:299
2175
  msgid "Create an account"
2176
  msgstr ""
2177
 
2178
- #: premium/includes/functions.php:333 premium/includes/functions.php:363
2179
  msgid "Active"
2180
  msgstr ""
2181
 
2182
- #: premium/includes/functions.php:333 premium/includes/functions.php:363
2183
  msgid "Pending review"
2184
  msgstr ""
2185
 
2186
- #: premium/includes/functions.php:338
2187
  msgid "[{site_name}] New video received"
2188
  msgstr ""
2189
 
2190
- #: premium/includes/functions.php:341
2191
  msgid ""
2192
  "Dear Administrator,<br /><br />You have received a new video on the website "
2193
  "{site_name}.<br />This e-mail contains the video details:<br /><br />Video "
@@ -2196,11 +2342,11 @@ msgid ""
2196
  "generated and is for information purposes only."
2197
  msgstr ""
2198
 
2199
- #: premium/includes/functions.php:368
2200
  msgid "[{site_name}] Video \"{video_title}\" edited"
2201
  msgstr ""
2202
 
2203
- #: premium/includes/functions.php:371
2204
  msgid ""
2205
  "Dear Administrator,<br /><br />This notification was for the video on the "
2206
  "website {site_name} \"{video_title}\" and is edited.<br />This e-mail "
@@ -2210,11 +2356,11 @@ msgid ""
2210
  "information purposes only."
2211
  msgstr ""
2212
 
2213
- #: premium/includes/functions.php:397
2214
  msgid "[{site_name}] {videos_count} videos auto imported"
2215
  msgstr ""
2216
 
2217
- #: premium/includes/functions.php:400
2218
  msgid ""
2219
  "Dear Administrator,<br /><br />You have {videos_count} videos auto imported "
2220
  "on the website {site_name} and waiting for your approval. You can find those "
@@ -2223,221 +2369,238 @@ msgid ""
2223
  "automatically generated and is for information purposes only."
2224
  msgstr ""
2225
 
2226
- #: premium/includes/youtube.php:56
2227
  msgid "YouTube API Key Missing."
2228
  msgstr ""
2229
 
2230
- #: premium/includes/youtube.php:60
2231
  msgid "Import source not found."
2232
  msgstr ""
2233
 
2234
- #: premium/includes/youtube.php:375 premium/includes/youtube.php:425
2235
- #: premium/includes/youtube.php:462
2236
  msgid "No videos found matching your query."
2237
  msgstr ""
2238
 
2239
- #: premium/public/adaptive-streaming.php:46
2240
  msgid "Adaptive / Live Streaming"
2241
  msgstr ""
2242
 
2243
- #: premium/public/public.php:83
2244
  msgid "This is a required field."
2245
  msgstr ""
2246
 
2247
- #: premium/public/public.php:84 premium/public/user.php:316
2248
- #: premium/public/user.php:321
2249
  msgid "Invalid file format."
2250
  msgstr ""
2251
 
2252
- #: premium/public/public.php:85
2253
  msgid "Loaded"
2254
  msgstr ""
2255
 
2256
- #: premium/public/public.php:86
2257
  msgid "Processing..."
2258
  msgstr ""
2259
 
2260
- #: premium/public/public.php:87
2261
  msgid "Please wait until the upload is complete"
2262
  msgstr ""
2263
 
2264
- #: premium/public/public.php:88
2265
  msgid "Unknown error."
2266
  msgstr ""
2267
 
2268
- #: premium/public/slider.php:100
2269
  msgid "Arrow Top Offset (in percentage)"
2270
  msgstr ""
2271
 
2272
- #: premium/public/slider.php:110
2273
  msgid "Arrow Left Offset (in pixels)"
2274
  msgstr ""
2275
 
2276
- #: premium/public/slider.php:120
2277
  msgid "Arrow Right Offset (in pixels)"
2278
  msgstr ""
2279
 
2280
- #: premium/public/slider.php:137
2281
  msgid "Dot Size"
2282
  msgstr ""
2283
 
2284
- #: premium/public/templates/user-dashboard.php:18
2285
  #, php-format
2286
  msgid ""
2287
  "You do not have sufficient permissions to do this action. <a href=\"%s\">Go "
2288
  "back</a>"
2289
  msgstr ""
2290
 
2291
- #: premium/public/templates/user-dashboard.php:28
2292
  msgid "Deleted"
2293
  msgstr ""
2294
 
2295
- #: premium/public/templates/user-dashboard.php:41
2296
- #: public/templates/search-form-template-horizontal.php:20
2297
- #: public/templates/search-form-template-vertical.php:20
2298
  msgid "Search videos by title"
2299
  msgstr ""
2300
 
2301
- #: premium/public/templates/user-dashboard.php:66
2302
  msgid "Actions"
2303
  msgstr ""
2304
 
2305
- #: premium/public/templates/user-dashboard.php:98
2306
  #: public/templates/video-thumbnail-image-left.php:49
2307
  #: public/templates/video-thumbnail.php:45
2308
  msgid "Posted"
2309
  msgstr ""
2310
 
2311
- #: premium/public/templates/user-dashboard.php:98
2312
  #: public/templates/video-thumbnail-image-left.php:40
2313
  #: public/templates/video-thumbnail.php:36
2314
  #, php-format
2315
  msgid "%s ago"
2316
  msgstr ""
2317
 
2318
- #: premium/public/templates/user-dashboard.php:99
2319
  #: public/templates/single-video.php:60
2320
- #: public/templates/video-thumbnail-image-left.php:74
2321
- #: public/templates/video-thumbnail.php:70
2322
  #, php-format
2323
  msgid "%d views"
2324
  msgstr ""
2325
 
2326
- #: premium/public/templates/user-dashboard.php:117
2327
  msgid "Status"
2328
  msgstr ""
2329
 
2330
- #: premium/public/templates/user-dashboard.php:121
2331
  msgid "Edit"
2332
  msgstr ""
2333
 
2334
- #: premium/public/templates/user-dashboard.php:123
2335
  msgid "Are you SURE you want to delete this video?"
2336
  msgstr ""
2337
 
2338
- #: premium/public/templates/video-form.php:16
2339
  msgid ""
2340
  "Your video has been received and it's pending review. This review process "
2341
  "could take up to 48 hours. Please be patient."
2342
  msgstr ""
2343
 
2344
- #: premium/public/templates/video-form.php:22
2345
  msgid "Saved"
2346
  msgstr ""
2347
 
2348
- #: premium/public/templates/video-form.php:28
2349
  #, php-format
2350
  msgid "Fields marked with an %s are required"
2351
  msgstr ""
2352
 
2353
- #: premium/public/templates/video-form.php:30
2354
  #, php-format
2355
  msgid "Maximum upload file size: %s"
2356
  msgstr ""
2357
 
2358
- #: premium/public/templates/video-form.php:38
2359
  msgid "Video Title"
2360
  msgstr ""
2361
 
2362
- #: premium/public/templates/video-form.php:43
2363
  msgid "Enter your video title here"
2364
  msgstr ""
2365
 
2366
- #: premium/public/templates/video-form.php:108
2367
- #: premium/public/templates/video-form.php:152
2368
- #: premium/public/templates/video-form.php:179
2369
- #: premium/public/templates/video-form.php:287
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2370
  msgid "cancel"
2371
  msgstr ""
2372
 
2373
- #: premium/public/templates/video-form.php:113
2374
- #: premium/public/templates/video-form.php:157
2375
- #: premium/public/templates/video-form.php:292
2376
- msgid "Enter your Direct File URL here"
 
2377
  msgstr ""
2378
 
2379
- #: premium/public/templates/video-form.php:305
2380
  msgid "Enter your video description here"
2381
  msgstr ""
2382
 
2383
- #: premium/public/templates/video-form.php:316
2384
  #, php-format
2385
  msgid ""
2386
  "I agree to the <a href=\"%s\" target=\"_blank\">terms and conditions</a>"
2387
  msgstr ""
2388
 
2389
- #: premium/public/templates/video-form.php:333 premium/public/user.php:405
2390
  msgid "Save Draft"
2391
  msgstr ""
2392
 
2393
- #: premium/public/templates/video-form.php:335
2394
  msgid "Save Changes"
2395
  msgstr ""
2396
 
2397
- #: premium/public/templates/videos-template-popup.php:18
2398
- #: premium/public/templates/videos-template-slider.php:79
 
 
 
 
2399
  #: public/templates/videos-template-classic.php:18
2400
  #, php-format
2401
  msgid "%d video(s) found"
2402
  msgstr ""
2403
 
2404
- #: premium/public/user.php:155 premium/public/user.php:169
2405
  msgid "You do not have sufficient permissions to access this page."
2406
  msgstr ""
2407
 
2408
- #: premium/public/user.php:298 premium/public/user.php:311
2409
  msgid "You do not have permission to upload files."
2410
  msgstr ""
2411
 
2412
- #: premium/public/user.php:327
2413
  msgid "Sorry, this file type is not permitted for security reasons."
2414
  msgstr ""
2415
 
2416
- #: premium/public/user.php:337
2417
  msgid "Sorry, this file size is not allowed."
2418
  msgstr ""
2419
 
2420
- #: premium/public/user.php:361
2421
  msgid "File is empty. Please upload something more substantial."
2422
  msgstr ""
2423
 
2424
- #: premium/widgets/companion.php:43
2425
  msgid "AIOVG - Companion Ads"
2426
  msgstr ""
2427
 
2428
- #: premium/widgets/companion.php:46
2429
  msgid "Display a companion ad."
2430
  msgstr ""
2431
 
2432
- #: premium/widgets/forms/companion.php:20
2433
  msgid "Height"
2434
  msgstr ""
2435
 
2436
- #: premium/widgets/forms/companion.php:25
2437
  msgid "Ad Unit Path"
2438
  msgstr ""
2439
 
2440
- #: premium/widgets/forms/companion.php:29
2441
  #, php-format
2442
  msgid ""
2443
  "Optional. Full path of the ad unit with the network code and unit code. "
@@ -2445,7 +2608,7 @@ msgid ""
2445
  "Publisher Tag (GPT)</a> in the <a href=\"%s\">plugin settings</a>."
2446
  msgstr ""
2447
 
2448
- #: public/public.php:590
2449
  #, php-format
2450
  msgid "Showing results for \"%s\""
2451
  msgstr ""
@@ -2455,6 +2618,11 @@ msgstr ""
2455
  msgid "%d videos"
2456
  msgstr ""
2457
 
 
 
 
 
 
2458
  #: public/templates/search-form-template-horizontal.php:27
2459
  #: public/templates/search-form-template-vertical.php:27
2460
  msgid "Select a Category"
@@ -2475,10 +2643,14 @@ msgstr ""
2475
  msgid "You may also like"
2476
  msgstr ""
2477
 
2478
- #: public/videos.php:94
2479
  msgid "Sub Categories"
2480
  msgstr ""
2481
 
 
 
 
 
2482
  #: widgets/videos.php:66
2483
  msgid "Display a video gallery."
2484
  msgstr ""
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: All-in-One Video Gallery\n"
4
+ "POT-Creation-Date: 2019-09-27 20:03+0530\n"
5
+ "PO-Revision-Date: 2019-09-27 20:03+0530\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
16
  "X-Poedit-KeywordsList: __;_e;esc_html__;esc_html_e;esc_attr__;esc_attr_e\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
+ #: admin/admin.php:158
20
+ msgid "Please select at least one issue."
21
+ msgstr ""
22
+
23
+ #: admin/admin.php:176 admin/partials/issues.php:78
24
+ msgid "Apply Fix"
25
  msgstr ""
26
 
27
+ #: admin/admin.php:189 admin/partials/issues.php:75
28
+ msgid "Ignore"
29
+ msgstr ""
30
+
31
+ #: admin/admin.php:215 admin/partials/dashboard.php:14 blocks/blocks.php:37
32
  msgid "All-in-One Video Gallery"
33
  msgstr ""
34
 
35
+ #: admin/admin.php:216 admin/videos.php:69 includes/functions.php:922
36
+ #: widgets/videos.php:275
37
+ msgid "Video Gallery"
38
+ msgstr ""
39
+
40
+ #: admin/admin.php:226
41
+ msgid "All-in-One Video Gallery - Dashboard"
42
+ msgstr ""
43
+
44
+ #: admin/admin.php:227
45
+ msgid "Dashboard"
46
+ msgstr ""
47
+
48
+ #: admin/admin.php:241
49
+ msgid "Shortcode Builder"
50
+ msgstr ""
51
+
52
+ #: admin/admin.php:242
53
+ msgid "FAQ"
54
  msgstr ""
55
 
56
+ #: admin/admin.php:251
57
+ msgid "Issues Found"
58
  msgstr ""
59
 
60
+ #: admin/admin.php:469
61
+ msgid "Pages Misconfigured"
62
  msgstr ""
63
 
64
+ #: admin/admin.php:471
65
+ #, php-format
66
+ msgid ""
67
+ "During activation, our plugin adds few <a href=\"%s\" target=\"_blank"
68
+ "\">pages</a> dynamically on your website that are required for the internal "
69
+ "logic of the plugin. We found some of those pages are missing, misconfigured "
70
+ "or having a wrong shortcode."
71
+ msgstr ""
72
+
73
+ #: admin/admin.php:493 admin/settings.php:60
74
+ msgid "Settings"
75
+ msgstr ""
76
+
77
+ #: admin/categories.php:32
78
+ msgid "All-in-One Video Gallery - Categories"
79
+ msgstr ""
80
+
81
+ #: admin/categories.php:33 admin/categories.php:66 includes/functions.php:1133
82
+ #: premium/admin/automations.php:276
83
  msgid "Categories"
84
  msgstr ""
85
 
86
+ #: admin/categories.php:67 admin/videos.php:366
87
+ #: premium/admin/automations.php:194
88
  msgid "All Categories"
89
  msgstr ""
90
 
91
+ #: admin/categories.php:68
92
  msgid "Parent Category"
93
  msgstr ""
94
 
95
+ #: admin/categories.php:69
96
  msgid "Parent Category:"
97
  msgstr ""
98
 
99
+ #: admin/categories.php:70
100
  msgid "New Category Name"
101
  msgstr ""
102
 
103
+ #: admin/categories.php:71
104
  msgid "Add New Category"
105
  msgstr ""
106
 
107
+ #: admin/categories.php:72
108
  msgid "Edit Category"
109
  msgstr ""
110
 
111
+ #: admin/categories.php:73
112
  msgid "Update Category"
113
  msgstr ""
114
 
115
+ #: admin/categories.php:74
116
  msgid "View Category"
117
  msgstr ""
118
 
119
+ #: admin/categories.php:75
120
  msgid "Separate categories with commas"
121
  msgstr ""
122
 
123
+ #: admin/categories.php:76
124
  msgid "Add or remove categories"
125
  msgstr ""
126
 
127
+ #: admin/categories.php:77
128
  msgid "Choose from the most used"
129
  msgstr ""
130
 
131
+ #: admin/categories.php:78
132
  msgid "Popular Categories"
133
  msgstr ""
134
 
135
+ #: admin/categories.php:79
136
  msgid "Search Categories"
137
  msgstr ""
138
 
139
+ #: admin/categories.php:80
140
  msgid "Not Found"
141
  msgstr ""
142
 
143
+ #: admin/categories.php:81
144
  msgid "No categories"
145
  msgstr ""
146
 
147
+ #: admin/categories.php:82
148
  msgid "Categories list"
149
  msgstr ""
150
 
151
+ #: admin/categories.php:83
152
  msgid "Categories list navigation"
153
  msgstr ""
154
 
155
+ #: admin/categories.php:157 admin/settings.php:413 admin/videos.php:429
156
+ #: blocks/blocks.php:79 includes/functions.php:1194
157
  #: widgets/forms/categories.php:64
158
  msgid "ID"
159
  msgstr ""
160
 
161
  #: admin/partials/category-image.php:15 admin/partials/category-image.php:26
162
+ #: admin/partials/video-sources.php:179 admin/partials/video-sources.php:183
163
+ #: includes/functions.php:823 premium/public/templates/video-form.php:276
164
  msgid "Image"
165
  msgstr ""
166
 
172
  msgid "Remove Image"
173
  msgstr ""
174
 
175
+ #: admin/partials/dashboard.php:17
176
  msgid ""
177
+ "Add responsive video galleries anywhere on your website no coding "
178
+ "required. Includes HTML5 Player, Thumbnail Grid, Slider, Popup & more."
179
  msgstr ""
180
 
181
+ #: admin/partials/dashboard.php:22
182
+ msgid "Activate Premium Features"
183
  msgstr ""
184
 
185
+ #: admin/partials/dashboard.php:26
186
+ #, php-format
187
+ msgid "Version %s"
188
  msgstr ""
189
 
190
+ #: admin/partials/faq.php:15
191
+ msgid ""
192
+ "Does the plugin support third-party page builders like \"Elementor\", "
193
+ "\"WPBakery\", \"Divi\", etc.?"
194
  msgstr ""
195
 
196
+ #: admin/partials/faq.php:18
197
+ #, php-format
198
+ msgid ""
199
+ "Sure, this is the main reason we developed the shortcode builder. Simply "
200
+ "generate your shortcode using the <a href=\"%s\">Shortcode Builder</a> and "
201
+ "use it in your page builder."
202
  msgstr ""
203
 
204
+ #: admin/partials/faq.php:25
205
+ msgid "The plugin is not working for me. What should I do now?"
 
206
  msgstr ""
207
 
208
+ #: admin/partials/faq.php:28
209
+ #, php-format
210
+ msgid ""
211
+ "No Worries. We are just an email away from you. Please contact us <a href="
212
+ "\"%s\">here</a>."
213
  msgstr ""
214
 
215
+ #: admin/partials/issues.php:13
216
+ msgid "Issues"
 
217
  msgstr ""
218
 
219
+ #: admin/partials/issues.php:14
220
+ msgid "Ignored"
 
 
 
 
 
 
 
221
  msgstr ""
222
 
223
+ #: admin/partials/issues.php:26
224
+ msgid "Congrats! Issues solved."
 
 
 
 
 
225
  msgstr ""
226
 
227
+ #: admin/partials/issues.php:26
228
+ msgid "Issues ignored."
 
 
 
229
  msgstr ""
230
 
231
+ #: admin/partials/issues.php:55
232
+ msgid "Issue"
 
 
 
233
  msgstr ""
234
 
235
+ #: admin/partials/issues.php:56
236
+ msgid "Description"
 
 
 
237
  msgstr ""
238
 
239
+ #: admin/partials/issues.php:87
240
+ msgid "You have no ignored issues."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
241
  msgstr ""
242
 
243
+ #: admin/partials/issues.php:89
244
+ msgid "You have no issues."
 
 
245
  msgstr ""
246
 
247
+ #: admin/partials/settings.php:28
248
+ msgid "Plugin Settings"
 
 
249
  msgstr ""
250
 
251
+ #: admin/partials/shortcode-builder.php:51
252
+ msgid "Select a shortcode type"
 
 
253
  msgstr ""
254
 
255
+ #: admin/partials/shortcode-builder.php:83
256
+ #, php-format
257
+ msgid "No videos found. <a href=\"%s\">Add</a> your first video."
258
  msgstr ""
259
 
260
+ #: admin/partials/shortcode-builder.php:92
261
+ #, php-format
262
+ msgid "No categories found. <a href=\"%s\">Add</a> your first category."
263
  msgstr ""
264
 
265
+ #: admin/partials/shortcode-builder.php:152 admin/partials/video-sources.php:47
266
+ #: admin/partials/video-sources.php:83 admin/partials/video-sources.php:102
267
+ #: admin/partials/video-sources.php:190 admin/partials/video-tracks.php:44
268
+ #: admin/partials/video-tracks.php:80
269
+ msgid "Upload File"
270
  msgstr ""
271
 
272
+ #: admin/partials/shortcode-builder.php:160 blocks/blocks.php:73
273
+ #: includes/functions.php:1158 widgets/forms/categories.php:36
274
+ #: widgets/forms/categories.php:39
275
+ msgid "Select Parent"
276
  msgstr ""
277
 
278
+ #: admin/partials/shortcode-builder.php:203
279
+ msgid "Generate Shortcode"
280
  msgstr ""
281
 
282
+ #: admin/partials/shortcode-builder.php:214
283
+ msgid "How to add a single video in my POST/PAGE?"
284
  msgstr ""
285
 
286
+ #: admin/partials/shortcode-builder.php:218
287
+ msgid "You can use one of the following methods,"
288
  msgstr ""
289
 
290
+ #: admin/partials/shortcode-builder.php:223
291
+ #: admin/partials/shortcode-builder.php:289
292
+ #: admin/partials/shortcode-builder.php:335
293
+ #: admin/partials/shortcode-builder.php:370
294
+ msgid ""
295
+ "Use the shortcode builder in this page to build your shortcode, then add it "
296
+ "in your POST/PAGE."
297
  msgstr ""
298
 
299
+ #: admin/partials/shortcode-builder.php:230
300
+ #, php-format
301
+ msgid ""
302
+ "<a href=\"%s\">Add</a> your video using our \"Custom Post Type\" form, copy "
303
+ "the shortcode, then add it in your POST/PAGE."
304
  msgstr ""
305
 
306
+ #: admin/partials/shortcode-builder.php:240
307
+ #, php-format
308
+ msgid ""
309
+ "Use the <a href=\"%s\">AIOVG - Video Player</a> Gutenberg block and add the "
310
+ "video directly in your POST/PAGE."
311
  msgstr ""
312
 
313
+ #: admin/partials/shortcode-builder.php:250
314
+ #, php-format
315
+ msgid ""
316
+ "Use the <a href=\"%s\">AIOVG - Video Player</a> widget in your website "
317
+ "sidebars."
318
  msgstr ""
319
 
320
+ #: admin/partials/shortcode-builder.php:259
321
+ msgid "How to create/add a video gallery?"
322
  msgstr ""
323
 
324
+ #: admin/partials/shortcode-builder.php:266
325
+ #, php-format
326
+ msgid "Optional. <a href=\"%s\">Add Categories</a>"
327
  msgstr ""
328
 
329
+ #: admin/partials/shortcode-builder.php:276
330
+ #, php-format
331
+ msgid "<a href=\"%s\">Add Videos</a>"
332
  msgstr ""
333
 
334
+ #: admin/partials/shortcode-builder.php:284
335
+ msgid ""
336
+ "Then, use one of the following methods to build and show the gallery in your "
337
+ "site front-end,"
338
  msgstr ""
339
 
340
+ #: admin/partials/shortcode-builder.php:296
341
  #, php-format
342
+ msgid ""
343
+ "Use the <a href=\"%s\">AIOVG - Video Gallery</a> Gutenberg block in your "
344
+ "POST/PAGE."
345
  msgstr ""
346
 
347
+ #: admin/partials/shortcode-builder.php:306
348
+ #, php-format
349
+ msgid ""
350
+ "Use the <a href=\"%s\">AIOVG - Video Gallery</a> widget in your website "
351
+ "sidebars."
352
  msgstr ""
353
 
354
+ #: admin/partials/shortcode-builder.php:315
355
+ msgid "How to add/show video categories?"
356
  msgstr ""
357
 
358
+ #: admin/partials/shortcode-builder.php:322
359
  #, php-format
360
+ msgid "<a href=\"%s\">Add Categories</a>"
361
  msgstr ""
362
 
363
+ #: admin/partials/shortcode-builder.php:330
364
+ msgid ""
365
+ "Then, use one of the following methods to show the video categories in your "
366
+ "site front-end,"
 
367
  msgstr ""
368
 
369
+ #: admin/partials/shortcode-builder.php:342
370
+ #, php-format
371
+ msgid ""
372
+ "Use the <a href=\"%s\">AIOVG - Video Categories</a> Gutenberg block in your "
373
+ "POST/PAGE."
374
  msgstr ""
375
 
376
+ #: admin/partials/shortcode-builder.php:352
377
+ #, php-format
378
+ msgid ""
379
+ "Use the <a href=\"%s\">AIOVG - Video Categories</a> widget in your website "
380
+ "sidebars."
381
  msgstr ""
382
 
383
+ #: admin/partials/shortcode-builder.php:361
384
+ msgid "How to create video search functionality?"
385
  msgstr ""
386
 
387
+ #: admin/partials/shortcode-builder.php:365
388
+ msgid ""
389
+ "You can use one of the following methods to add the videos search form in "
390
+ "your website,"
391
  msgstr ""
392
 
393
+ #: admin/partials/shortcode-builder.php:377
394
  #, php-format
395
  msgid ""
396
+ "Use the <a href=\"%s\">AIOVG - Search Form</a> Gutenberg block in your POST/"
397
+ "PAGE."
398
  msgstr ""
399
 
400
+ #: admin/partials/shortcode-builder.php:387
401
  #, php-format
402
  msgid ""
403
+ "Use the <a href=\"%s\">AIOVG - Search Form</a> widget in your website "
404
+ "sidebars."
405
  msgstr ""
406
 
407
+ #: admin/partials/shortcode-builder.php:397
408
  #, php-format
409
  msgid ""
410
+ "No matter where you add the search form, but the search results will always "
411
+ "be displayed in the <a href=\"%s\">Search Videos</a> page that is added by "
412
+ "our plugin dynamically during the activation."
413
  msgstr ""
414
 
415
+ #: admin/partials/shortcode-builder.php:410
416
+ msgid ""
417
+ "Congrats! copy the shortcode below and paste it in your POST/PAGE where you "
418
+ "need the gallery,"
419
  msgstr ""
420
 
421
+ #: admin/partials/video-sources.php:17 admin/partials/video-sources.php:21
422
+ #: premium/public/templates/video-form.php:76
423
+ msgid "Type"
 
 
 
424
  msgstr ""
425
 
426
+ #: admin/partials/video-sources.php:36 admin/partials/video-sources.php:40
427
+ #: includes/functions.php:788 premium/public/templates/video-form.php:95
428
+ msgid "MP4"
429
  msgstr ""
430
 
431
+ #: admin/partials/video-sources.php:44 admin/partials/video-sources.php:80
432
+ #: admin/partials/video-sources.php:99 admin/partials/video-sources.php:187
433
+ msgid "Enter your direct file URL (OR) upload your file using the link here"
434
  msgstr ""
435
 
436
+ #: admin/partials/video-sources.php:58 admin/partials/video-sources.php:72
437
+ #: admin/partials/video-sources.php:76
438
+ #: premium/public/templates/video-form.php:125
439
+ #: premium/public/templates/video-form.php:141
440
+ msgid "WebM"
441
  msgstr ""
442
 
443
+ #: admin/partials/video-sources.php:64 admin/partials/video-sources.php:91
444
+ #: admin/partials/video-sources.php:95
445
+ #: premium/public/templates/video-form.php:131
446
+ #: premium/public/templates/video-form.php:168
447
+ msgid "OGV"
 
448
  msgstr ""
449
 
450
+ #: admin/partials/video-sources.php:110 admin/partials/video-sources.php:114
451
+ #: admin/settings.php:292 includes/functions.php:795
452
+ #: includes/functions.php:1329 premium/includes/functions.php:110
453
+ #: premium/public/templates/video-form.php:198
454
+ msgid "YouTube"
455
  msgstr ""
456
 
457
+ #: admin/partials/video-sources.php:118 admin/partials/video-sources.php:132
458
+ #: admin/partials/video-sources.php:146 admin/partials/video-sources.php:160
459
+ #: includes/functions.php:796 includes/functions.php:803
460
+ #: includes/functions.php:810 includes/functions.php:817
461
+ #: premium/admin/adaptive-streaming.php:42
462
+ #: premium/admin/adaptive-streaming.php:50
463
+ #: premium/admin/partials/adaptive-streaming.php:24
464
+ #: premium/admin/partials/adaptive-streaming.php:38
465
+ #: premium/admin/partials/automations-sources.php:76
466
+ #: premium/admin/partials/automations-sources.php:95
467
+ #: premium/admin/partials/automations-sources.php:113
468
+ #: premium/admin/partials/automations-sources.php:131
469
+ #: premium/admin/partials/automations-sources.php:149
470
+ #: premium/admin/partials/automations-sources.php:163
471
+ #: premium/public/templates/video-form.php:203
472
+ #: premium/public/templates/video-form.php:219
473
+ #: premium/public/templates/video-form.php:235
474
+ #: premium/public/templates/video-form.php:251
475
+ #: premium/public/templates/video-form.php:267
476
+ msgid "Example"
477
  msgstr ""
478
 
479
+ #: admin/partials/video-sources.php:124 admin/partials/video-sources.php:128
480
+ #: admin/settings.php:293 includes/functions.php:802
481
+ #: includes/functions.php:1330 premium/public/templates/video-form.php:214
482
+ msgid "Vimeo"
483
+ msgstr ""
484
+
485
+ #: admin/partials/video-sources.php:138 admin/partials/video-sources.php:142
486
+ #: admin/settings.php:294 includes/functions.php:809
487
+ #: includes/functions.php:1331 premium/public/templates/video-form.php:230
488
+ msgid "Dailymotion"
489
+ msgstr ""
490
+
491
+ #: admin/partials/video-sources.php:152 admin/partials/video-sources.php:156
492
+ #: admin/settings.php:295 admin/settings.php:545 includes/functions.php:816
493
+ #: includes/functions.php:1332 includes/functions.php:1730
494
+ #: premium/public/templates/video-form.php:246
495
+ msgid "Facebook"
496
+ msgstr ""
497
+
498
+ #: admin/partials/video-sources.php:166 admin/partials/video-sources.php:170
499
+ msgid "Embed Code"
500
+ msgstr ""
501
+
502
+ #: admin/partials/video-sources.php:173
503
+ msgid "Enter your Iframe Embed Code"
504
+ msgstr ""
505
+
506
+ #: admin/partials/video-sources.php:198 admin/partials/video-sources.php:202
507
+ #: admin/settings.php:279 blocks/blocks.php:119 includes/functions.php:891
508
+ #: widgets/forms/video.php:97
509
+ msgid "Duration"
510
+ msgstr ""
511
+
512
+ #: admin/partials/video-sources.php:212 admin/partials/video-sources.php:216
513
+ #: admin/videos.php:427
514
+ msgid "Views"
515
+ msgstr ""
516
+
517
+ #: admin/partials/video-submitbox.php:16
518
+ msgid "Mark as"
519
+ msgstr ""
520
+
521
+ #: admin/partials/video-submitbox.php:17 admin/videos.php:428
522
+ msgid "Featured"
523
+ msgstr ""
524
+
525
+ #: admin/partials/video-submitbox.php:25
526
+ msgid "Video Shortcode"
527
+ msgstr ""
528
+
529
+ #: admin/partials/video-tracks.php:16 admin/partials/video-tracks.php:25
530
+ #: admin/partials/video-tracks.php:61
531
+ msgid "File URL"
532
+ msgstr ""
533
+
534
+ #: admin/partials/video-tracks.php:17 admin/partials/video-tracks.php:31
535
+ #: admin/partials/video-tracks.php:67
536
+ msgid "Label"
537
+ msgstr ""
538
+
539
+ #: admin/partials/video-tracks.php:18 admin/partials/video-tracks.php:37
540
+ #: admin/partials/video-tracks.php:73
541
+ msgid "Srclang"
542
+ msgstr ""
543
+
544
+ #: admin/partials/video-tracks.php:33 admin/partials/video-tracks.php:69
545
+ msgid "English"
546
+ msgstr ""
547
+
548
+ #: admin/partials/video-tracks.php:39 admin/partials/video-tracks.php:75
549
+ msgid "en"
550
+ msgstr ""
551
+
552
+ #: admin/partials/video-tracks.php:46 admin/partials/video-tracks.php:82
553
+ #: premium/public/templates/user-dashboard.php:125
554
+ msgid "Delete"
555
+ msgstr ""
556
+
557
+ #: admin/partials/video-tracks.php:54
558
+ msgid "Add New File"
559
+ msgstr ""
560
+
561
+ #: admin/settings.php:59
562
+ msgid "All-in-One Video Gallery - Settings"
563
+ msgstr ""
564
+
565
+ #: admin/settings.php:98 blocks/blocks.php:103 includes/functions.php:769
566
+ #: includes/functions.php:925 includes/functions.php:1136
567
+ #: includes/functions.php:1248
568
  msgid "General"
569
  msgstr ""
570
 
571
+ #: admin/settings.php:99
572
  msgid "Display"
573
  msgstr ""
574
 
575
+ #: admin/settings.php:100
576
  msgid "Advanced"
577
  msgstr ""
578
 
579
+ #: admin/settings.php:116
 
 
580
  msgid "General Settings"
581
  msgstr ""
582
 
583
+ #: admin/settings.php:121
584
  msgid "Player Settings"
585
  msgstr ""
586
 
587
+ #: admin/settings.php:126
588
+ msgid "Videos Layout"
589
  msgstr ""
590
 
591
+ #: admin/settings.php:131
592
+ msgid "Categories Layout"
593
  msgstr ""
594
 
595
+ #: admin/settings.php:136
596
+ msgid "Single Video Page"
597
  msgstr ""
598
 
599
+ #: admin/settings.php:141
600
+ msgid "Image Settings"
601
+ msgstr ""
602
+
603
+ #: admin/settings.php:146
604
+ msgid "Page Settings"
605
  msgstr ""
606
 
607
+ #: admin/settings.php:151
608
  msgid "Permalink Slugs"
609
  msgstr ""
610
 
611
+ #: admin/settings.php:152
612
  msgid ""
613
  "NOTE: Just make sure that, after updating the fields in this section, you "
614
  "flush the rewrite rules by visiting \"Settings > Permalinks\". Otherwise "
615
  "you'll still see the old links."
616
  msgstr ""
617
 
618
+ #: admin/settings.php:157
619
  msgid "Socialshare Buttons"
620
  msgstr ""
621
 
622
+ #: admin/settings.php:158
623
  msgid "Select social share buttons displayed in the single video pages."
624
  msgstr ""
625
 
626
+ #: admin/settings.php:163
 
 
 
 
627
  msgid "Privacy Settings"
628
  msgstr ""
629
 
630
+ #: admin/settings.php:164
631
  msgid ""
632
  "These options will help with privacy restrictions such as GDPR and the EU "
633
  "Cookie Law."
634
  msgstr ""
635
 
636
+ #: admin/settings.php:172
637
  msgid "Logo & Branding"
638
  msgstr ""
639
 
640
+ #: admin/settings.php:193
641
  msgid "Remove data on uninstall?"
642
  msgstr ""
643
 
644
+ #: admin/settings.php:194
645
  msgid ""
646
  "Check this box to delete all of the plugin data (database stored content) "
647
  "when uninstalled"
648
  msgstr ""
649
 
650
+ #: admin/settings.php:200
651
  msgid "Delete media files?"
652
  msgstr ""
653
 
654
+ #: admin/settings.php:201
655
  msgid ""
656
  "Check this box to also delete the associated media files when a video post "
657
  "or a video category is deleted"
658
  msgstr ""
659
 
660
+ #: admin/settings.php:209 admin/settings.php:486 blocks/blocks.php:104
661
+ #: includes/functions.php:830 premium/widgets/forms/companion.php:16
662
  #: widgets/forms/video.php:54
663
  msgid "Width"
664
  msgstr ""
665
 
666
+ #: admin/settings.php:210 blocks/blocks.php:105 includes/functions.php:831
667
  #, php-format
668
  msgid ""
669
  "In pixels. Maximum width of the player. Leave this field empty to scale "
670
  "100% of its enclosing container/html element."
671
  msgstr ""
672
 
673
+ #: admin/settings.php:216 admin/settings.php:493 blocks/blocks.php:106
674
+ #: includes/functions.php:837 includes/functions.php:1018
675
+ #: includes/functions.php:1173 widgets/forms/video.php:59
676
  msgid "Ratio"
677
  msgstr ""
678
 
679
+ #: admin/settings.php:219 blocks/blocks.php:107 includes/functions.php:838
680
  msgid ""
681
  "In percentage. 1 to 100. Calculate player's height using the ratio value "
682
  "entered."
683
  msgstr ""
684
 
685
+ #: admin/settings.php:220
686
  msgid "Examples"
687
  msgstr ""
688
 
689
+ #: admin/settings.php:221
690
  msgid "Wide Screen TV"
691
  msgstr ""
692
 
693
+ #: admin/settings.php:222
694
  msgid "Monitor Screens"
695
  msgstr ""
696
 
697
+ #: admin/settings.php:223
698
  msgid "Classic TV"
699
  msgstr ""
700
 
701
+ #: admin/settings.php:224
702
  msgid "Photo Camera"
703
  msgstr ""
704
 
705
+ #: admin/settings.php:225
706
  msgid "Square"
707
  msgstr ""
708
 
709
+ #: admin/settings.php:226
710
  msgid "Cinemascope"
711
  msgstr ""
712
 
713
+ #: admin/settings.php:233 blocks/blocks.php:108 includes/functions.php:844
714
  #: widgets/forms/video.php:65
715
  msgid "Autoplay"
716
  msgstr ""
717
 
718
+ #: admin/settings.php:234
719
  msgid "Check this to start playing the video as soon as it is ready"
720
  msgstr ""
721
 
722
+ #: admin/settings.php:240 blocks/blocks.php:109 includes/functions.php:851
723
  #: widgets/forms/video.php:70
724
  msgid "Loop"
725
  msgstr ""
726
 
727
+ #: admin/settings.php:241
728
  msgid ""
729
  "Check this, so that the video will start over again, every time it is "
730
  "finished"
731
  msgstr ""
732
 
733
+ #: admin/settings.php:247 blocks/blocks.php:110 includes/functions.php:858
734
+ #: widgets/forms/video.php:75
735
+ msgid "Muted"
736
+ msgstr ""
737
+
738
  #: admin/settings.php:248
739
+ msgid "Check this to turn OFF the audio output of the video by default"
740
+ msgstr ""
741
+
742
+ #: admin/settings.php:254
743
  msgid "Preload"
744
  msgstr ""
745
 
746
+ #: admin/settings.php:257
747
  msgid "Specifies if and how the video should be loaded when the page loads."
748
  msgstr ""
749
 
750
+ #: admin/settings.php:258
751
  msgid "\"Auto\" - the video should be loaded entirely when the page loads"
752
  msgstr ""
753
 
754
+ #: admin/settings.php:259
755
  msgid "\"Metadata\" - only metadata should be loaded when the page loads"
756
  msgstr ""
757
 
758
+ #: admin/settings.php:260
759
  msgid "\"None\" - the video should not be loaded when the page loads"
760
  msgstr ""
761
 
762
+ #: admin/settings.php:264
763
  msgid "Auto"
764
  msgstr ""
765
 
766
+ #: admin/settings.php:265
767
  msgid "Metadata"
768
  msgstr ""
769
 
770
+ #: admin/settings.php:266
771
  msgid "None"
772
  msgstr ""
773
 
774
+ #: admin/settings.php:272 blocks/blocks.php:115 includes/functions.php:866
775
+ #: widgets/forms/video.php:78
776
  msgid "Player Controls"
777
  msgstr ""
778
 
779
+ #: admin/settings.php:276 blocks/blocks.php:116 includes/functions.php:870
780
+ #: widgets/forms/video.php:82
781
  msgid "Play / Pause"
782
  msgstr ""
783
 
784
+ #: admin/settings.php:277 blocks/blocks.php:117 includes/functions.php:877
785
+ #: widgets/forms/video.php:87
786
  msgid "Current Time"
787
  msgstr ""
788
 
789
+ #: admin/settings.php:278 blocks/blocks.php:118 includes/functions.php:884
790
+ #: widgets/forms/video.php:92
791
  msgid "Progressbar"
792
  msgstr ""
793
 
794
+ #: admin/settings.php:280 admin/videos.php:174 includes/functions.php:898
795
+ #: widgets/forms/video.php:102
796
  msgid "Subtitles"
797
  msgstr ""
798
 
799
+ #: admin/settings.php:281 blocks/blocks.php:120 includes/functions.php:905
800
+ #: widgets/forms/video.php:107
801
  msgid "Volume"
802
  msgstr ""
803
 
804
+ #: admin/settings.php:282 blocks/blocks.php:121 includes/functions.php:912
805
+ #: widgets/forms/video.php:112
806
  msgid "Fullscreen"
807
  msgstr ""
808
 
809
+ #: admin/settings.php:288
810
  msgid "Use Native Controls"
811
  msgstr ""
812
 
813
+ #: admin/settings.php:289
814
  msgid ""
815
  "Enables native player controls on the selected source types. For example, "
816
  "uses YouTube Player for playing YouTube videos & Vimeo Player for playing "
818
  "selected sources."
819
  msgstr ""
820
 
821
+ #: admin/settings.php:303 admin/settings.php:388 blocks/blocks.php:74
822
+ #: includes/functions.php:936 includes/functions.php:1147
823
+ #: includes/functions.php:1252 widgets/forms/categories.php:20
824
+ #: widgets/forms/search.php:20
825
+ msgid "Select Template"
826
  msgstr ""
827
 
828
+ #: admin/settings.php:304 includes/functions.php:937
829
+ #, php-format
830
  msgid ""
831
+ "<a href=\"%s\" target=\"_blank\">Upgrade Pro</a> for more templates (Popup, "
832
+ "Slider, etc.)"
833
  msgstr ""
834
 
835
+ #: admin/settings.php:311 admin/settings.php:399 blocks/blocks.php:77
836
+ #: includes/functions.php:1025 includes/functions.php:1180
837
+ #: widgets/forms/categories.php:55
838
+ msgid "Columns"
 
839
  msgstr ""
840
 
841
+ #: admin/settings.php:312
842
+ msgid "Enter the number of columns you like to have in the gallery view."
 
843
  msgstr ""
844
 
845
+ #: admin/settings.php:321 includes/functions.php:965
846
+ msgid "Limit (per page)"
 
847
  msgstr ""
848
 
849
+ #: admin/settings.php:322
850
+ msgid ""
851
+ "Number of videos to show per page. Use a value of \"0\" to show all videos."
 
852
  msgstr ""
853
 
854
+ #: admin/settings.php:328 blocks/blocks.php:78 includes/functions.php:975
855
+ #: includes/functions.php:1190
856
+ #: premium/admin/partials/automations-sources.php:171
857
+ #: premium/admin/partials/automations-sources.php:174
858
+ #: widgets/forms/categories.php:60
859
+ msgid "Order By"
860
  msgstr ""
861
 
862
+ #: admin/settings.php:332 includes/functions.php:929 includes/functions.php:979
863
+ #: includes/functions.php:1140
864
+ #: premium/admin/partials/automations-sources.php:181
865
+ #: premium/public/templates/user-dashboard.php:66
866
+ #: widgets/forms/categories.php:15 widgets/forms/search.php:15
867
+ #: widgets/forms/video.php:15
868
+ msgid "Title"
869
  msgstr ""
870
 
871
+ #: admin/settings.php:333 includes/functions.php:980
872
+ msgid "Date Posted"
 
873
  msgstr ""
874
 
875
+ #: admin/settings.php:334 admin/settings.php:371 admin/settings.php:470
876
+ #: includes/functions.php:981
877
+ #: premium/admin/partials/automations-sources.php:182
878
+ msgid "Views Count"
879
  msgstr ""
880
 
881
+ #: admin/settings.php:335 includes/functions.php:982
882
+ msgid "Random"
 
883
  msgstr ""
884
 
885
+ #: admin/settings.php:341 admin/settings.php:422 blocks/blocks.php:83
886
+ #: includes/functions.php:988 includes/functions.php:1203
887
  #: widgets/forms/categories.php:78
888
  msgid "Order"
889
  msgstr ""
890
 
891
+ #: admin/settings.php:345 admin/settings.php:426
892
  msgid "Ascending"
893
  msgstr ""
894
 
895
+ #: admin/settings.php:346 admin/settings.php:427
896
  msgid "Descending"
897
  msgstr ""
898
 
899
+ #: admin/settings.php:352 includes/functions.php:1035
900
+ msgid "Thumbnail Style"
 
 
 
 
 
 
 
 
 
 
901
  msgstr ""
902
 
903
+ #: admin/settings.php:356 includes/functions.php:1039
904
+ msgid "Image Top Aligned"
905
  msgstr ""
906
 
907
+ #: admin/settings.php:357 includes/functions.php:1040
908
+ msgid "Image Left Aligned"
 
909
  msgstr ""
910
 
911
+ #: admin/settings.php:363 admin/settings.php:463
912
+ msgid "Show / Hide"
913
  msgstr ""
914
 
915
+ #: admin/settings.php:367
916
+ msgid "Videos Count"
 
917
  msgstr ""
918
 
919
+ #: admin/settings.php:368 admin/settings.php:467
920
+ msgid "Category Name"
921
  msgstr ""
922
 
923
+ #: admin/settings.php:369 admin/settings.php:468
924
+ msgid "Date Added"
 
 
 
925
  msgstr ""
926
 
927
+ #: admin/settings.php:370 admin/settings.php:469
928
+ msgid "Author Name"
929
  msgstr ""
930
 
931
+ #: admin/settings.php:372
932
+ msgid "Video Duration"
933
  msgstr ""
934
 
935
+ #: admin/settings.php:373
936
+ msgid "Video Excerpt"
 
937
  msgstr ""
938
 
939
+ #: admin/settings.php:379 includes/functions.php:1095
940
+ msgid "Excerpt Length"
 
 
 
 
941
  msgstr ""
942
 
943
+ #: admin/settings.php:380
944
+ msgid "Number of characters."
 
 
 
 
 
945
  msgstr ""
946
 
947
+ #: admin/settings.php:392 blocks/blocks.php:75 includes/functions.php:1151
948
+ #: widgets/forms/categories.php:24
949
+ msgid "Grid"
950
  msgstr ""
951
 
952
+ #: admin/settings.php:393 blocks/blocks.php:76 includes/functions.php:1152
953
+ #: widgets/forms/categories.php:25
954
+ msgid "List"
 
955
  msgstr ""
956
 
957
+ #: admin/settings.php:400
958
+ msgid "Enter the number of columns you like to have in your categories page."
959
  msgstr ""
960
 
961
+ #: admin/settings.php:409
962
+ msgid "Order by"
963
  msgstr ""
964
 
965
+ #: admin/settings.php:414 blocks/blocks.php:80 includes/functions.php:1195
966
+ #: widgets/forms/categories.php:65
967
+ msgid "Count"
968
  msgstr ""
969
 
970
+ #: admin/settings.php:415 blocks/blocks.php:81 includes/functions.php:1196
971
+ #: widgets/forms/categories.php:66
972
+ msgid "Name"
973
  msgstr ""
974
 
975
+ #: admin/settings.php:416 blocks/blocks.php:82 includes/functions.php:1197
976
+ #: widgets/forms/categories.php:67
977
+ msgid "Slug"
978
  msgstr ""
979
 
980
+ #: admin/settings.php:433 blocks/blocks.php:86 includes/functions.php:1214
981
+ #: widgets/forms/categories.php:95
982
+ msgid "Show Hierarchy"
983
  msgstr ""
984
 
985
+ #: admin/settings.php:434
986
+ msgid "Check this to show the child categories"
987
  msgstr ""
988
 
989
+ #: admin/settings.php:440 blocks/blocks.php:87 includes/functions.php:1221
990
+ #: widgets/forms/categories.php:100
991
+ msgid "Show Description"
992
  msgstr ""
993
 
994
+ #: admin/settings.php:441
995
+ msgid "Check this to show the categories description"
996
  msgstr ""
997
 
998
+ #: admin/settings.php:447 blocks/blocks.php:88 includes/functions.php:1046
999
+ #: includes/functions.php:1228 widgets/forms/categories.php:105
1000
+ msgid "Show Videos Count"
1001
  msgstr ""
1002
 
1003
+ #: admin/settings.php:448
1004
+ msgid "Check this to show the videos count next to the category name"
1005
  msgstr ""
1006
 
1007
+ #: admin/settings.php:454 blocks/blocks.php:89 includes/functions.php:1235
1008
+ #: widgets/forms/categories.php:110
1009
+ msgid "Hide Empty Categories"
1010
  msgstr ""
1011
 
1012
+ #: admin/settings.php:455
1013
+ msgid "Check this to hide categories with no videos"
1014
  msgstr ""
1015
 
1016
+ #: admin/settings.php:471 includes/functions.php:1006
1017
  msgid "Related Videos"
1018
  msgstr ""
1019
 
1020
+ #: admin/settings.php:477
1021
  msgid "Enable Comments"
1022
  msgstr ""
1023
 
1024
+ #: admin/settings.php:478
1025
  msgid ""
1026
  "Allow visitors to comment videos using the standard WordPress comment form. "
1027
  "Comments are public"
1028
  msgstr ""
1029
 
1030
+ #: admin/settings.php:487
1031
+ #, php-format
1032
+ msgid "Always 100% of its enclosing container/html element."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1033
  msgstr ""
1034
 
1035
+ #: admin/settings.php:494
1036
+ msgid ""
1037
+ "In percentage. 1 to 100. Calculate images's height using the ratio value "
1038
+ "entered."
1039
  msgstr ""
1040
 
1041
+ #: admin/settings.php:502
1042
  msgid "Single Category Page"
1043
  msgstr ""
1044
 
1045
+ #: admin/settings.php:503
1046
  msgid ""
1047
  "This is the page where the videos from a particular category is displayed. "
1048
  "The [aiovg_category] short code must be on this page."
1049
  msgstr ""
1050
 
1051
+ #: admin/settings.php:509
1052
  msgid "Search Page"
1053
  msgstr ""
1054
 
1055
+ #: admin/settings.php:510
1056
  msgid ""
1057
  "This is the page where the search results are displayed. The [aiovg_search] "
1058
  "short code must be on this page."
1059
  msgstr ""
1060
 
1061
+ #: admin/settings.php:516
1062
  msgid "User Videos Page"
1063
  msgstr ""
1064
 
1065
+ #: admin/settings.php:517
1066
  msgid ""
1067
  "This is the page where the videos from an user is displayed. The "
1068
  "[aiovg_user_videos] short code must be on this page."
1069
  msgstr ""
1070
 
1071
+ #: admin/settings.php:523
1072
  msgid "Player Page"
1073
  msgstr ""
1074
 
1075
+ #: admin/settings.php:524
1076
  msgid "This is the page used to show the video player."
1077
  msgstr ""
1078
 
1079
+ #: admin/settings.php:532
1080
+ msgid "Video Detail Page"
1081
+ msgstr ""
1082
+
1083
+ #: admin/settings.php:533
1084
+ msgid "Replaces the SLUG value used by custom post type \"aiovg_videos\"."
1085
+ msgstr ""
1086
+
1087
+ #: admin/settings.php:541
1088
+ msgid "Enable Services"
1089
+ msgstr ""
1090
+
1091
+ #: admin/settings.php:546 includes/functions.php:1738
1092
+ msgid "Twitter"
1093
+ msgstr ""
1094
+
1095
+ #: admin/settings.php:547 includes/functions.php:1746
1096
+ msgid "Linkedin"
1097
+ msgstr ""
1098
+
1099
+ #: admin/settings.php:548
1100
+ msgid "Pinterest"
1101
+ msgstr ""
1102
+
1103
+ #: admin/settings.php:549 includes/functions.php:1768
1104
+ msgid "WhatsApp"
1105
+ msgstr ""
1106
+
1107
+ #: admin/settings.php:557
1108
  msgid "GDPR - Show Consent"
1109
  msgstr ""
1110
 
1111
+ #: admin/settings.php:558
1112
  msgid "Ask for consent before loading YouTube / Vimeo content."
1113
  msgstr ""
1114
 
1115
+ #: admin/settings.php:564
1116
  msgid "GDPR - Consent Message"
1117
  msgstr ""
1118
 
1119
+ #: admin/settings.php:571
1120
  msgid "GDPR - Consent Button Label"
1121
  msgstr ""
1122
 
1123
+ #: admin/settings.php:583
1124
  msgid "Show Logo"
1125
  msgstr ""
1126
 
1127
+ #: admin/settings.php:584
1128
  msgid "Check this option to show the watermark on the video."
1129
  msgstr ""
1130
 
1131
+ #: admin/settings.php:590
1132
  msgid "Logo Image"
1133
  msgstr ""
1134
 
1135
+ #: admin/settings.php:591
1136
  msgid ""
1137
  "Upload the image file of your logo. We recommend using the transparent PNG "
1138
  "format with width below 100 pixels. If you do not enter any image, no logo "
1139
  "will displayed."
1140
  msgstr ""
1141
 
1142
+ #: admin/settings.php:597
1143
  msgid "Logo Link"
1144
  msgstr ""
1145
 
1146
+ #: admin/settings.php:598
1147
  msgid ""
1148
  "The URL to visit when the watermark image is clicked. Clicking a logo will "
1149
  "have no affect unless this is configured."
1150
  msgstr ""
1151
 
1152
+ #: admin/settings.php:604
1153
  msgid "Logo Position"
1154
  msgstr ""
1155
 
1156
+ #: admin/settings.php:605
1157
  msgid "This sets the corner in which to display the watermark."
1158
  msgstr ""
1159
 
1160
+ #: admin/settings.php:608
1161
  msgid "Top Left"
1162
  msgstr ""
1163
 
1164
+ #: admin/settings.php:609
1165
  msgid "Top Right"
1166
  msgstr ""
1167
 
1168
+ #: admin/settings.php:610
1169
  msgid "Bottom Left"
1170
  msgstr ""
1171
 
1172
+ #: admin/settings.php:611
1173
  msgid "Bottom Right"
1174
  msgstr ""
1175
 
1176
+ #: admin/settings.php:617
1177
  msgid "Logo Margin"
1178
  msgstr ""
1179
 
1180
+ #: admin/settings.php:618
1181
  msgid "The distance, in pixels, of the logo from the edges of the display."
1182
  msgstr ""
1183
 
1184
+ #: admin/settings.php:624
1185
  msgid "Copyright Text"
1186
  msgstr ""
1187
 
1188
+ #: admin/settings.php:625
1189
  msgid "Text that is shown when a user right-clicks the player with the mouse."
1190
  msgstr ""
1191
 
1192
+ #: admin/settings.php:901
1193
  msgid "Choose File"
1194
  msgstr ""
1195
 
1196
+ #: admin/settings.php:950
1197
  msgid "Select a page"
1198
  msgstr ""
1199
 
1200
+ #: admin/videos.php:32
1201
+ msgid "All-in-One Video Gallery - Videos"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1202
  msgstr ""
1203
 
1204
+ #: admin/videos.php:33 admin/videos.php:74 admin/videos.php:381
1205
+ msgid "All Videos"
1206
  msgstr ""
1207
 
1208
+ #: admin/videos.php:70 admin/videos.php:102
1209
  msgid "Video"
1210
  msgstr ""
1211
 
1212
+ #: admin/videos.php:71
1213
  msgid "Video Archives"
1214
  msgstr ""
1215
 
1216
+ #: admin/videos.php:72
1217
  msgid "Video Attributes"
1218
  msgstr ""
1219
 
1220
+ #: admin/videos.php:73
1221
+ msgid "Parent Video:"
 
 
 
 
1222
  msgstr ""
1223
 
1224
+ #: admin/videos.php:75 premium/public/templates/user-dashboard.php:53
1225
  msgid "Add New Video"
1226
  msgstr ""
1227
 
1228
+ #: admin/videos.php:76 premium/admin/automations.php:118
1229
  msgid "Add New"
1230
  msgstr ""
1231
 
1232
+ #: admin/videos.php:77
1233
  msgid "New Video"
1234
  msgstr ""
1235
 
1236
+ #: admin/videos.php:78
1237
  msgid "Edit Video"
1238
  msgstr ""
1239
 
1240
+ #: admin/videos.php:79
1241
  msgid "Update Video"
1242
  msgstr ""
1243
 
1244
+ #: admin/videos.php:80
1245
  msgid "View Video"
1246
  msgstr ""
1247
 
1248
+ #: admin/videos.php:81
1249
  msgid "View Videos"
1250
  msgstr ""
1251
 
1252
+ #: admin/videos.php:82
1253
  msgid "Search Video"
1254
  msgstr ""
1255
 
1256
+ #: admin/videos.php:83
1257
  msgid "Not found"
1258
  msgstr ""
1259
 
1260
+ #: admin/videos.php:84
1261
  msgid "Not found in Trash"
1262
  msgstr ""
1263
 
1264
+ #: admin/videos.php:85
1265
  msgid "Featured Image"
1266
  msgstr ""
1267
 
1268
+ #: admin/videos.php:86
1269
  msgid "Set featured image"
1270
  msgstr ""
1271
 
1272
+ #: admin/videos.php:87
1273
  msgid "Remove featured image"
1274
  msgstr ""
1275
 
1276
+ #: admin/videos.php:88
1277
  msgid "Use as featured image"
1278
  msgstr ""
1279
 
1280
+ #: admin/videos.php:89
1281
  msgid "Insert into video"
1282
  msgstr ""
1283
 
1284
+ #: admin/videos.php:90
1285
  msgid "Uploaded to this video"
1286
  msgstr ""
1287
 
1288
+ #: admin/videos.php:91
1289
  msgid "Videos list"
1290
  msgstr ""
1291
 
1292
+ #: admin/videos.php:92
1293
  msgid "Videos list navigation"
1294
  msgstr ""
1295
 
1296
+ #: admin/videos.php:93
1297
  msgid "Filter videos list"
1298
  msgstr ""
1299
 
1300
+ #: admin/videos.php:103 premium/public/templates/video-form.php:303
1301
  msgid "Video Description"
1302
  msgstr ""
1303
 
1304
+ #: admin/videos.php:165
1305
  msgid "Video Sources"
1306
  msgstr ""
1307
 
1308
+ #: admin/videos.php:382
1309
  msgid "Featured only"
1310
  msgstr ""
1311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1312
  #: blocks/blocks.php:71 widgets/categories.php:68
1313
  msgid "AIOVG - Video Categories"
1314
  msgstr ""
1317
  msgid "Display a list of video categories."
1318
  msgstr ""
1319
 
1320
+ #: blocks/blocks.php:84 includes/functions.php:992 includes/functions.php:1207
 
 
 
 
 
 
 
 
 
1321
  #: widgets/forms/categories.php:82
1322
  msgid "ASC"
1323
  msgstr ""
1324
 
1325
+ #: blocks/blocks.php:85 includes/functions.php:993 includes/functions.php:1208
1326
  #: widgets/forms/categories.php:83
1327
  msgid "DESC"
1328
  msgstr ""
1329
 
1330
+ #: blocks/blocks.php:90 widgets/videos.php:63
1331
  msgid "AIOVG - Video Gallery"
1332
  msgstr ""
1333
 
1334
+ #: blocks/blocks.php:91
1335
  msgid "Display a Video gallery."
1336
  msgstr ""
1337
 
1338
+ #: blocks/blocks.php:92
1339
  msgid "Selected Color"
1340
  msgstr ""
1341
 
1342
+ #: blocks/blocks.php:93 widgets/search.php:46
1343
  msgid "AIOVG - Search Form"
1344
  msgstr ""
1345
 
1346
+ #: blocks/blocks.php:94 widgets/search.php:43
1347
  msgid "A videos search form for your site."
1348
  msgstr ""
1349
 
1350
+ #: blocks/blocks.php:95 includes/functions.php:1256 widgets/forms/search.php:24
 
 
 
 
1351
  msgid "Vertical"
1352
  msgstr ""
1353
 
1354
+ #: blocks/blocks.php:96 includes/functions.php:1257 widgets/forms/search.php:25
1355
  msgid "Horizontal"
1356
  msgstr ""
1357
 
1358
+ #: blocks/blocks.php:97 includes/functions.php:1263 widgets/forms/search.php:37
1359
  msgid "Search By Categories"
1360
  msgstr ""
1361
 
1362
+ #: blocks/blocks.php:98 widgets/video.php:46
1363
  msgid "AIOVG - Video Player"
1364
  msgstr ""
1365
 
1366
+ #: blocks/blocks.php:99 widgets/video.php:43
1367
  msgid "Display a video player."
1368
  msgstr ""
1369
 
1370
+ #: blocks/blocks.php:100
1371
  msgid "Add MP4, WebM, OGV, YouTube, Vimeo, Dailymotion, Facebook, etc."
1372
  msgstr ""
1373
 
1374
+ #: blocks/blocks.php:101
1375
  msgid "a video"
1376
  msgstr ""
1377
 
1378
+ #: blocks/blocks.php:102
1379
  msgid "Edit video"
1380
  msgstr ""
1381
 
1382
+ #: blocks/blocks.php:111
1383
  msgid "Poster Image"
1384
  msgstr ""
1385
 
1386
+ #: blocks/blocks.php:112
1387
  msgid "Select Poster Image"
1388
  msgstr ""
1389
 
1390
+ #: blocks/blocks.php:113
1391
  msgid "Replace Image"
1392
  msgstr ""
1393
 
1394
+ #: blocks/blocks.php:114
1395
  msgid "Remove Poster Image"
1396
  msgstr ""
1397
 
1398
+ #: includes/functions.php:260
1399
+ msgid "Video Category"
1400
+ msgstr ""
1401
+
1402
+ #: includes/functions.php:264 widgets/search.php:109
1403
+ msgid "Search Videos"
1404
+ msgstr ""
1405
+
1406
+ #: includes/functions.php:268
1407
+ msgid "User Videos"
1408
+ msgstr ""
1409
+
1410
+ #: includes/functions.php:272
1411
+ msgid "Player Embed"
1412
+ msgstr ""
1413
+
1414
+ #: includes/functions.php:413
1415
+ msgid ""
1416
+ "<strong>Please accept cookies to play this video</strong>. By accepting you "
1417
+ "will be accessing content from a service provided by an external third party."
1418
+ msgstr ""
1419
+
1420
+ #: includes/functions.php:414
1421
+ msgid "Accept"
1422
+ msgstr ""
1423
+
1424
+ #: includes/functions.php:540
1425
+ msgid "No Videos found."
1426
+ msgstr ""
1427
+
1428
+ #: includes/functions.php:543
1429
+ msgid "No Categories found."
1430
+ msgstr ""
1431
+
1432
+ #: includes/functions.php:766
1433
+ msgid "Single Video"
1434
+ msgstr ""
1435
+
1436
+ #: includes/functions.php:773 widgets/forms/video.php:20
1437
+ msgid "Select Video"
1438
+ msgstr ""
1439
+
1440
+ #: includes/functions.php:780 premium/admin/partials/automations-sources.php:42
1441
+ #: premium/admin/partials/automations-sources.php:45
1442
+ msgid "Source Type"
1443
+ msgstr ""
1444
+
1445
+ #: includes/functions.php:789 includes/functions.php:824
1446
+ msgid ""
1447
+ "Enter your direct file URL in the textbox above (OR) upload your file using "
1448
+ "the \"Upload File\" link."
1449
+ msgstr ""
1450
+
1451
+ #: includes/functions.php:944 premium/public/templates/video-form.php:53
1452
  msgid "Select Categories"
1453
  msgstr ""
1454
 
1455
+ #: includes/functions.php:951
1456
+ msgid "Include Video ID(s)"
1457
+ msgstr ""
1458
+
1459
+ #: includes/functions.php:958
1460
  msgid "Exclude Video ID(s)"
1461
  msgstr ""
1462
 
1463
+ #: includes/functions.php:999
1464
  msgid "Featured Only"
1465
  msgstr ""
1466
 
1467
+ #: includes/functions.php:1006
1468
  msgid "Follow URL"
1469
  msgstr ""
1470
 
1471
+ #: includes/functions.php:1014
1472
+ msgid "Gallery"
1473
  msgstr ""
1474
 
1475
+ #: includes/functions.php:1053
1476
  msgid "Show Category Name"
1477
  msgstr ""
1478
 
1479
+ #: includes/functions.php:1060
1480
  msgid "Show Date Added"
1481
  msgstr ""
1482
 
1483
+ #: includes/functions.php:1067
1484
  msgid "Show Author Name"
1485
  msgstr ""
1486
 
1487
+ #: includes/functions.php:1074
1488
  msgid "Show Views Count"
1489
  msgstr ""
1490
 
1491
+ #: includes/functions.php:1081
1492
  msgid "Show Video Duration"
1493
  msgstr ""
1494
 
1495
+ #: includes/functions.php:1088
1496
  msgid "Show Video Excerpt"
1497
  msgstr ""
1498
 
1499
+ #: includes/functions.php:1102
1500
  msgid "Show Pagination"
1501
  msgstr ""
1502
 
1503
+ #: includes/functions.php:1109
1504
  msgid "Show More Button"
1505
  msgstr ""
1506
 
1507
+ #: includes/functions.php:1116
1508
  msgid "More Button Label"
1509
  msgstr ""
1510
 
1511
+ #: includes/functions.php:1119
1512
  msgid "Show More"
1513
  msgstr ""
1514
 
1515
+ #: includes/functions.php:1123
1516
  msgid "More Button Link"
1517
  msgstr ""
1518
 
1519
+ #: includes/functions.php:1166
1520
+ msgid "Include Category ID(s)"
 
 
 
 
 
 
 
 
 
 
1521
  msgstr ""
1522
 
1523
+ #: includes/functions.php:1245
1524
+ msgid "Search Form"
1525
  msgstr ""
1526
 
1527
+ #: includes/functions.php:1328
1528
  msgid "Self Hosted"
1529
  msgstr ""
1530
 
1531
+ #: includes/functions.php:1328
1532
  msgid "External URL"
1533
  msgstr ""
1534
 
1535
+ #: includes/functions.php:1336
1536
  msgid "Iframe Embed Code"
1537
  msgstr ""
1538
 
1539
+ #: includes/functions.php:1350
1540
  msgid "Classic"
1541
  msgstr ""
1542
 
1543
+ #: includes/functions.php:1666
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1544
  msgid "&laquo;"
1545
  msgstr ""
1546
 
1547
+ #: includes/functions.php:1667
1548
  msgid "&raquo;"
1549
  msgstr ""
1550
 
1551
+ #: includes/functions.php:1682
1552
  #, php-format
1553
  msgid "Page %d of %d"
1554
  msgstr ""
1555
 
1556
+ #: includes/functions.php:1754
1557
+ msgid "Pin It"
1558
  msgstr ""
1559
 
1560
+ #: premium/admin/adaptive-streaming.php:41
1561
+ #: premium/admin/partials/adaptive-streaming.php:16
1562
+ #: premium/admin/partials/adaptive-streaming.php:20
1563
+ #: premium/public/templates/video-form.php:262
1564
+ msgid "HLS"
1565
+ msgstr ""
1566
+
1567
+ #: premium/admin/adaptive-streaming.php:49
1568
+ #: premium/admin/partials/adaptive-streaming.php:30
1569
+ #: premium/admin/partials/adaptive-streaming.php:34
1570
+ #: premium/public/templates/video-form.php:262
1571
+ msgid "M(PEG)-DASH"
1572
  msgstr ""
1573
 
1574
+ #: premium/admin/admin.php:49
1575
  #, php-format
1576
  msgid "Proudly by \"%s\""
1577
  msgstr ""
1578
 
1579
+ #: premium/admin/admin.php:115
1580
  msgid "[{site_name}] Video \"{video_title}\" received"
1581
  msgstr ""
1582
 
1583
+ #: premium/admin/admin.php:116
1584
  msgid ""
1585
  "Dear {name},\n"
1586
  "\n"
1591
  "The Administrator of {site_name}"
1592
  msgstr ""
1593
 
1594
+ #: premium/admin/admin.php:125
1595
  msgid "[{site_name}] Video \"{video_title}\" published"
1596
  msgstr ""
1597
 
1598
+ #: premium/admin/admin.php:126
1599
  msgid ""
1600
  "Dear {name},\n"
1601
  "\n"
1606
  "The Administrator of {site_name}"
1607
  msgstr ""
1608
 
1609
+ #: premium/admin/admin.php:182
1610
  msgid "Please wait while we are loading data from the API server..."
1611
  msgstr ""
1612
 
1613
+ #: premium/admin/admin.php:197 premium/admin/user.php:234
1614
+ msgid "User Dashboard"
1615
+ msgstr ""
1616
+
1617
+ #: premium/admin/admin.php:202 premium/admin/user.php:242
1618
+ msgid "Video Form"
1619
+ msgstr ""
1620
+
1621
+ #: premium/admin/ads.php:34
1622
  msgid "Ads"
1623
  msgstr ""
1624
 
1625
+ #: premium/admin/ads.php:50
1626
  msgid "Ads Settings"
1627
  msgstr ""
1628
 
1629
+ #: premium/admin/ads.php:51
1630
  msgid ""
1631
  "Monetize your videos using DoubleClick for Publishers (DFP), the Google "
1632
  "AdSense network, or any VAST-compliant ad server."
1633
  msgstr ""
1634
 
1635
+ #: premium/admin/ads.php:69
1636
  msgid "Enable Ads"
1637
  msgstr ""
1638
 
1639
+ #: premium/admin/ads.php:70
1640
  msgid "Check this option to enable advertisements on your videos"
1641
  msgstr ""
1642
 
1643
+ #: premium/admin/ads.php:76
1644
  msgid "VAST URL"
1645
  msgstr ""
1646
 
1647
+ #: premium/admin/ads.php:77
1648
  #, php-format
1649
  msgid ""
1650
  "Click here for a list of <a href=\"%s\" target=\"_blank\">Ad Tag Variables</"
1651
  "a> (Macros) supported by the plugin."
1652
  msgstr ""
1653
 
1654
+ #: premium/admin/ads.php:83
1655
  msgid "VPAID Mode"
1656
  msgstr ""
1657
 
1658
+ #: premium/admin/ads.php:87
1659
  msgid "Enabled"
1660
  msgstr ""
1661
 
1662
+ #: premium/admin/ads.php:88
1663
  msgid "Insecure"
1664
  msgstr ""
1665
 
1666
+ #: premium/admin/ads.php:89
1667
  msgid "Disabled"
1668
  msgstr ""
1669
 
1670
+ #: premium/admin/ads.php:95
1671
  msgid "Livestream Ad Interval"
1672
  msgstr ""
1673
 
1674
+ #: premium/admin/ads.php:96
1675
  msgid ""
1676
  "Optional. Seconds after the next advertisement should play in your live "
1677
  "streaming video player."
1678
  msgstr ""
1679
 
1680
+ #: premium/admin/ads.php:103
1681
  msgid "Google Publisher Tag (GPT)"
1682
  msgstr ""
1683
 
1684
+ #: premium/admin/ads.php:104
1685
  #, php-format
1686
  msgid ""
1687
  "Optional. Check this option to display companion ads using <a href=\"%s\" "
1688
  "target=\"_blank\">Google Publisher Tag</a>"
1689
  msgstr ""
1690
 
1691
+ #: premium/admin/ads.php:121
1692
  msgid "Video Ads"
1693
  msgstr ""
1694
 
1695
+ #: premium/admin/automations.php:33
1696
+ msgid "All-in-One Video Gallery - Automations"
1697
+ msgstr ""
1698
+
1699
+ #: premium/admin/automations.php:34 premium/admin/automations.php:114
1700
+ #: premium/admin/automations.php:116 premium/admin/automations.php:129
1701
+ msgid "Automations"
1702
+ msgstr ""
1703
+
1704
+ #: premium/admin/automations.php:68
1705
  msgid "Automations Settings"
1706
  msgstr ""
1707
 
1708
+ #: premium/admin/automations.php:87
1709
  msgid "YouTube API key"
1710
  msgstr ""
1711
 
1712
+ #: premium/admin/automations.php:88 premium/includes/youtube.php:57
1713
  #, php-format
1714
  msgid ""
1715
  "Follow <a href=\"%s\" target=\"_blank\">this guide</a> to get your own API "
1716
  "key."
1717
  msgstr ""
1718
 
1719
+ #: premium/admin/automations.php:94
1720
  msgid "Enable Fast Mode"
1721
  msgstr ""
1722
 
1723
+ #: premium/admin/automations.php:95
1724
  msgid ""
1725
  "Increase speed by disabling do_action calls in wp_insert_post during import"
1726
  msgstr ""
1727
 
1728
+ #: premium/admin/automations.php:96
1729
  msgid ""
1730
  "NOTE: This option is for advanced users with knowledge of WordPress "
1731
  "development. Your theme or plugins may require these calls when posts are "
1735
  "work properly if you check this box."
1736
  msgstr ""
1737
 
1738
+ #: premium/admin/automations.php:115
 
 
 
 
 
1739
  msgid "Automation"
1740
  msgstr ""
1741
 
1742
+ #: premium/admin/automations.php:117
1743
  msgid "Add New Source"
1744
  msgstr ""
1745
 
1746
+ #: premium/admin/automations.php:119
1747
  msgid "New Source"
1748
  msgstr ""
1749
 
1750
+ #: premium/admin/automations.php:120
1751
  msgid "Edit Source"
1752
  msgstr ""
1753
 
1754
+ #: premium/admin/automations.php:121
1755
  msgid "Update Source"
1756
  msgstr ""
1757
 
1758
+ #: premium/admin/automations.php:122
1759
  msgid "View Source"
1760
  msgstr ""
1761
 
1762
+ #: premium/admin/automations.php:123
1763
  msgid "Search Sources"
1764
  msgstr ""
1765
 
1766
+ #: premium/admin/automations.php:124
1767
  msgid "No sources found"
1768
  msgstr ""
1769
 
1770
+ #: premium/admin/automations.php:125
1771
  msgid "No sources found in Trash"
1772
  msgstr ""
1773
 
1774
+ #: premium/admin/automations.php:130
1775
  msgid "Automations Description"
1776
  msgstr ""
1777
 
1778
+ #: premium/admin/automations.php:164
1779
  msgid "Enter your source title"
1780
  msgstr ""
1781
 
1782
+ #: premium/admin/automations.php:178
1783
  msgid "Imported only"
1784
  msgstr ""
1785
 
1786
+ #: premium/admin/automations.php:275
1787
  msgid "Source"
1788
  msgstr ""
1789
 
1790
+ #: premium/admin/automations.php:277
1791
  msgid "Stats"
1792
  msgstr ""
1793
 
1794
+ #: premium/admin/automations.php:293
1795
  msgid "Imported"
1796
  msgstr ""
1797
 
1798
+ #: premium/admin/automations.php:354 premium/admin/automations.php:544
1799
  msgid "Paused"
1800
  msgstr ""
1801
 
1802
+ #: premium/admin/automations.php:372
1803
+ #: premium/admin/partials/automations-statistics.php:24
1804
  msgid "Import status"
1805
  msgstr ""
1806
 
1807
+ #: premium/admin/automations.php:376
1808
+ #: premium/admin/partials/automations-statistics.php:36
1809
  msgid "videos imported"
1810
  msgstr ""
1811
 
1812
+ #: premium/admin/automations.php:377
1813
+ #: premium/admin/partials/automations-statistics.php:61
1814
  msgid "Next scheduled update"
1815
  msgstr ""
1816
 
1817
+ #: premium/admin/automations.php:445
1818
  msgid "Configure Import Sources"
1819
  msgstr ""
1820
 
1821
+ #: premium/admin/automations.php:454
1822
  msgid "Video Post Settings"
1823
  msgstr ""
1824
 
1825
+ #: premium/admin/automations.php:463
1826
  msgid "Import Stats"
1827
  msgstr ""
1828
 
1829
+ #: premium/admin/automations.php:680
1830
  msgid "Test Run"
1831
  msgstr ""
1832
 
1833
+ #: premium/admin/automations.php:681
1834
  msgid "Publish & Import"
1835
  msgstr ""
1836
 
1837
+ #: premium/admin/automations.php:681
1838
  msgid "Import Next Batch"
1839
  msgstr ""
1840
 
1841
+ #: premium/admin/partials/ads.php:17
 
 
 
 
 
 
 
 
 
 
 
 
1842
  msgid "Disable Ads"
1843
  msgstr ""
1844
 
1845
+ #: premium/admin/partials/automations-sources.php:18
1846
+ #: premium/admin/partials/automations-sources.php:21
1847
  msgid "Video Service"
1848
  msgstr ""
1849
 
1850
+ #: premium/admin/partials/automations-sources.php:66
1851
+ #: premium/admin/partials/automations-sources.php:69
 
 
 
 
 
1852
  msgid "Search Keyword"
1853
  msgstr ""
1854
 
1855
+ #: premium/admin/partials/automations-sources.php:77
1856
  msgid "Enter search terms (space:AND, -:NOT, |:OR)"
1857
  msgstr ""
1858
 
1859
+ #: premium/admin/partials/automations-sources.php:85
1860
+ #: premium/admin/partials/automations-sources.php:88
1861
  msgid "Playlist URL"
1862
  msgstr ""
1863
 
1864
+ #: premium/admin/partials/automations-sources.php:103
1865
+ #: premium/admin/partials/automations-sources.php:106
1866
  msgid "Channel URL"
1867
  msgstr ""
1868
 
1869
+ #: premium/admin/partials/automations-sources.php:121
1870
+ #: premium/admin/partials/automations-sources.php:124
1871
+ #: premium/includes/functions.php:95
1872
  msgid "Username"
1873
  msgstr ""
1874
 
1875
+ #: premium/admin/partials/automations-sources.php:139
1876
+ #: premium/admin/partials/automations-sources.php:142
1877
  msgid "Video URLs"
1878
  msgstr ""
1879
 
1880
+ #: premium/admin/partials/automations-sources.php:150
1881
  msgid "Enter one video per line."
1882
  msgstr ""
1883
 
1884
+ #: premium/admin/partials/automations-sources.php:158
1885
+ #: premium/admin/partials/automations-sources.php:161
1886
  msgid "Exclude URLs"
1887
  msgstr ""
1888
 
1889
+ #: premium/admin/partials/automations-sources.php:164
1890
  msgid ""
1891
  "Enter the list of video URLs those should be excluded during the import. "
1892
  "Enter one video per line."
1893
  msgstr ""
1894
 
1895
+ #: premium/admin/partials/automations-sources.php:178
1896
  msgid "Date"
1897
  msgstr ""
1898
 
1899
+ #: premium/admin/partials/automations-sources.php:179
1900
  msgid "Rating"
1901
  msgstr ""
1902
 
1903
+ #: premium/admin/partials/automations-sources.php:180
1904
  msgid "Relevance"
1905
  msgstr ""
1906
 
1907
+ #: premium/admin/partials/automations-sources.php:195
1908
+ #: premium/admin/partials/automations-sources.php:198
1909
  msgid "Batch Limit"
1910
  msgstr ""
1911
 
1912
+ #: premium/admin/partials/automations-sources.php:201
1913
  msgid ""
1914
  "Enter the maximum amount of videos to be imported per batch. We recommend "
1915
  "keeping this value less than 500."
1916
  msgstr ""
1917
 
1918
+ #: premium/admin/partials/automations-sources.php:208
1919
+ #: premium/admin/partials/automations-sources.php:211
1920
  msgid "Schedule"
1921
  msgstr ""
1922
 
1923
+ #: premium/admin/partials/automations-sources.php:215
1924
  msgid "Only Once"
1925
  msgstr ""
1926
 
1927
+ #: premium/admin/partials/automations-sources.php:216
1928
  msgid "Every 1 Hour"
1929
  msgstr ""
1930
 
1931
+ #: premium/admin/partials/automations-sources.php:217
1932
  msgid "Every 1 Day"
1933
  msgstr ""
1934
 
1935
+ #: premium/admin/partials/automations-sources.php:218
1936
  msgid "Every 1 Week"
1937
  msgstr ""
1938
 
1939
+ #: premium/admin/partials/automations-sources.php:219
1940
  msgid "Every 1 Month"
1941
  msgstr ""
1942
 
1943
+ #: premium/admin/partials/automations-sources.php:227
1944
  msgid "Configure how frequent the plugin the plugin should import videos."
1945
  msgstr ""
1946
 
1947
+ #: premium/admin/partials/automations-sources.php:233
1948
+ #: premium/admin/partials/automations-sources.php:236
1949
  msgid "Reschedule"
1950
  msgstr ""
1951
 
1952
+ #: premium/admin/partials/automations-sources.php:239
1953
  msgid ""
1954
  "Check this option if the plugin should check for new videos after the import "
1955
  "has been completed."
1956
  msgstr ""
1957
 
1958
+ #: premium/admin/partials/automations-statistics.php:45
1959
  msgid "videos excluded"
1960
  msgstr ""
1961
 
1962
+ #: premium/admin/partials/automations-statistics.php:54
1963
  msgid "duplicate videos ignored"
1964
  msgstr ""
1965
 
1966
+ #: premium/admin/partials/automations-statistics.php:65
1967
  msgid "History"
1968
  msgstr ""
1969
 
1970
+ #: premium/admin/partials/automations-statistics.php:73
1971
  #, php-format
1972
  msgid "Imported %d videos on %s"
1973
  msgstr ""
1974
 
1975
+ #: premium/admin/partials/automations-statistics.php:83
1976
  msgid "You have not started importing videos."
1977
  msgstr ""
1978
 
1979
+ #: premium/admin/partials/automations-submitbox.php:16
1980
  msgid ""
1981
  "We are importing your videos. Please do not refresh or leave this page. This "
1982
  "can take a few minutes."
1983
  msgstr ""
1984
 
1985
+ #: premium/admin/partials/automations-test-screen.php:22
1986
  msgid ""
1987
  "Congrats! Your configuration is working. You can publish the form and start "
1988
  "importing videos."
1989
  msgstr ""
1990
 
1991
+ #: premium/admin/partials/automations-test-screen.php:41
1992
  #, php-format
1993
  msgid "Published on %s"
1994
  msgstr ""
1995
 
1996
+ #: premium/admin/partials/automations-video-settings.php:18
1997
+ #: premium/admin/partials/automations-video-settings.php:21
1998
+ #: widgets/categories.php:54
1999
+ msgid "Video Categories"
2000
+ msgstr ""
2001
+
2002
+ #: premium/admin/partials/automations-video-settings.php:34
2003
  msgid "Select the categories to which the imported videos should be posted."
2004
  msgstr ""
2005
 
2006
+ #: premium/admin/partials/automations-video-settings.php:40
2007
+ #: premium/admin/partials/automations-video-settings.php:43
2008
  msgid "Video Date"
2009
  msgstr ""
2010
 
2011
+ #: premium/admin/partials/automations-video-settings.php:47
2012
  msgid "Original date on the video service"
2013
  msgstr ""
2014
 
2015
+ #: premium/admin/partials/automations-video-settings.php:48
2016
  msgid "Date when the video is imported"
2017
  msgstr ""
2018
 
2019
+ #: premium/admin/partials/automations-video-settings.php:56
2020
  msgid ""
2021
  "Select whether to use the original posting date on the video service, or the "
2022
  "date when the video is imported."
2023
  msgstr ""
2024
 
2025
+ #: premium/admin/partials/automations-video-settings.php:62
2026
+ #: premium/admin/partials/automations-video-settings.php:65
2027
  msgid "Video Author"
2028
  msgstr ""
2029
 
2030
+ #: premium/admin/partials/automations-video-settings.php:74
2031
  msgid "Select the author to whom the video should be assigned."
2032
  msgstr ""
2033
 
2034
+ #: premium/admin/partials/automations-video-settings.php:80
2035
+ #: premium/admin/partials/automations-video-settings.php:83
2036
  msgid "Video Status"
2037
  msgstr ""
2038
 
2039
+ #: premium/admin/partials/automations-video-settings.php:87
2040
  msgid "Draft"
2041
  msgstr ""
2042
 
2043
+ #: premium/admin/partials/automations-video-settings.php:88
2044
+ #: premium/admin/user.php:148 premium/admin/user.php:159
2045
  msgid "Pending"
2046
  msgstr ""
2047
 
2048
+ #: premium/admin/partials/automations-video-settings.php:89
2049
+ #: premium/admin/user.php:147 premium/admin/user.php:158
2050
+ #: premium/public/templates/video-form.php:333
2051
  msgid "Publish"
2052
  msgstr ""
2053
 
2054
+ #: premium/admin/partials/automations-video-settings.php:97
2055
  msgid ""
2056
  "Select the default status of the imported videos. Site admin will be "
2057
  "notified through email when an import occurs with the \"Pending\" status."
2058
  msgstr ""
2059
 
2060
+ #: premium/admin/popup.php:33
2061
  msgid "Popup"
2062
  msgstr ""
2063
 
2064
+ #: premium/admin/slider.php:33
2065
  msgid "Slider"
2066
  msgstr ""
2067
 
2068
+ #: premium/admin/slider.php:53 premium/public/slider.php:42
2069
  msgid "Slider Layout"
2070
  msgstr ""
2071
 
2072
+ #: premium/admin/slider.php:57 premium/public/slider.php:46
2073
  msgid "Player Only"
2074
  msgstr ""
2075
 
2076
+ #: premium/admin/slider.php:58 premium/public/slider.php:47
2077
  msgid "Thumbnails Only"
2078
  msgstr ""
2079
 
2080
+ #: premium/admin/slider.php:59 premium/public/slider.php:48
2081
  msgid "Player + Thumbnails"
2082
  msgstr ""
2083
 
2084
+ #: premium/admin/slider.php:71 premium/public/slider.php:57
2085
  msgid "Arrows"
2086
  msgstr ""
2087
 
2088
+ #: premium/admin/slider.php:78 premium/public/slider.php:64
2089
  msgid "Arrow Size (in pixels)"
2090
  msgstr ""
2091
 
2092
+ #: premium/admin/slider.php:88 premium/public/slider.php:74
2093
  msgid "Arrow BG Color"
2094
  msgstr ""
2095
 
2096
+ #: premium/admin/slider.php:95 premium/public/slider.php:81
2097
  msgid "Arrow Icon Color"
2098
  msgstr ""
2099
 
2100
+ #: premium/admin/slider.php:102 premium/public/slider.php:88
2101
  msgid "Arrow Radius (in pixels)"
2102
  msgstr ""
2103
 
2104
+ #: premium/admin/slider.php:112
2105
  msgid "Arrow Top Offset"
2106
  msgstr ""
2107
 
2108
+ #: premium/admin/slider.php:122
2109
  msgid "Arrow Left Offset"
2110
  msgstr ""
2111
 
2112
+ #: premium/admin/slider.php:132
2113
  msgid "Arrow Right Offset"
2114
  msgstr ""
2115
 
2116
+ #: premium/admin/slider.php:142 premium/public/slider.php:128
2117
  msgid "Dots"
2118
  msgstr ""
2119
 
2120
+ #: premium/admin/slider.php:149
2121
  msgid "Dot Size (in pixels)"
2122
  msgstr ""
2123
 
2124
+ #: premium/admin/slider.php:159 premium/public/slider.php:145
2125
  msgid "Dot Color"
2126
  msgstr ""
2127
 
2128
+ #: premium/admin/user.php:34
2129
  msgid "User"
2130
  msgstr ""
2131
 
2132
+ #: premium/admin/user.php:51
2133
+ msgid "User Account Settings"
2134
  msgstr ""
2135
 
2136
+ #: premium/admin/user.php:57
2137
+ msgid "Front-end Video Submission Settings"
2138
  msgstr ""
2139
 
2140
+ #: premium/admin/user.php:63
2141
  msgid "[Email Template] Video Pending Review"
2142
  msgstr ""
2143
 
2144
+ #: premium/admin/user.php:69
2145
  msgid "[Email Template] Video Published"
2146
  msgstr ""
2147
 
2148
+ #: premium/admin/user.php:89
2149
+ msgid "Custom Login URL"
2150
  msgstr ""
2151
 
2152
+ #: premium/admin/user.php:90
2153
+ msgid ""
2154
+ "Optional. Enter your custom Login Page URL. Leave this field empty to use "
2155
+ "the default WordPress Login form."
2156
  msgstr ""
2157
 
2158
+ #: premium/admin/user.php:96
2159
+ msgid "Custom Registration URL"
2160
  msgstr ""
2161
 
2162
+ #: premium/admin/user.php:97
2163
+ msgid ""
2164
+ "Optional. Enter your custom Registration Page URL. Leave this field empty to "
2165
+ "use the default WordPress Registration URL."
2166
  msgstr ""
2167
 
2168
+ #: premium/admin/user.php:103
2169
+ msgid "Custom Forgot Password URL"
2170
  msgstr ""
2171
 
2172
+ #: premium/admin/user.php:104
2173
  msgid ""
2174
+ "Optional. Enter your custom Forgot Password Page URL. Leave this field empty "
2175
+ "to use the default WordPress Forgot Password URL."
2176
  msgstr ""
2177
 
2178
+ #: premium/admin/user.php:113
2179
+ msgid "Assign Categories"
2180
  msgstr ""
2181
 
2182
+ #: premium/admin/user.php:114
2183
+ msgid "Check this box to allow users to select categories for their videos"
2184
  msgstr ""
2185
 
2186
+ #: premium/admin/user.php:120
2187
+ msgid "Allowed Source Types"
2188
  msgstr ""
2189
 
2190
+ #: premium/admin/user.php:128
2191
+ msgid "Allow File Uploads"
2192
  msgstr ""
2193
 
2194
+ #: premium/admin/user.php:135
2195
+ msgid "Maximum Upload Size"
2196
  msgstr ""
2197
 
2198
+ #: premium/admin/user.php:136
2199
  msgid ""
2200
+ "In bytes. Enter the maximum file size the users can upload in your website. "
2201
+ "Leave this field empty to allow the maximium possible file size."
2202
  msgstr ""
2203
 
2204
+ #: premium/admin/user.php:143
2205
+ msgid "Default New Video Status"
2206
  msgstr ""
2207
 
2208
+ #: premium/admin/user.php:154
2209
+ msgid "Edit Video Status"
 
 
2210
  msgstr ""
2211
 
2212
+ #: premium/admin/user.php:165
2213
+ msgid "Terms and Conditions URL"
2214
  msgstr ""
2215
 
2216
+ #: premium/admin/user.php:166
2217
+ msgid "Optional. Enter your Terms and Conditions Page URL."
 
 
2218
  msgstr ""
2219
 
2220
+ #: premium/admin/user.php:175 premium/admin/user.php:205
2221
  msgid "Email Subject"
2222
  msgstr ""
2223
 
2224
+ #: premium/admin/user.php:182 premium/admin/user.php:212
2225
  msgid "Email Body"
2226
  msgstr ""
2227
 
2228
+ #: premium/admin/user.php:185 premium/admin/user.php:215
2229
+ msgid "Supported Placeholders:"
2230
  msgstr ""
2231
 
2232
+ #: premium/admin/user.php:186 premium/admin/user.php:216
2233
  msgid "The video owner's display name on the site"
2234
  msgstr ""
2235
 
2236
+ #: premium/admin/user.php:187 premium/admin/user.php:217
2237
  msgid "The video owner's user name on the site"
2238
  msgstr ""
2239
 
2240
+ #: premium/admin/user.php:188 premium/admin/user.php:218
2241
  msgid "Your site name"
2242
  msgstr ""
2243
 
2244
+ #: premium/admin/user.php:189 premium/admin/user.php:219
2245
  msgid "Your site name with link"
2246
  msgstr ""
2247
 
2248
+ #: premium/admin/user.php:190 premium/admin/user.php:220
2249
  msgid "Your site url with link"
2250
  msgstr ""
2251
 
2252
+ #: premium/admin/user.php:191 premium/admin/user.php:221
2253
  msgid "Video's title"
2254
  msgstr ""
2255
 
2256
+ #: premium/admin/user.php:192 premium/admin/user.php:222
2257
  msgid "Video's title with link"
2258
  msgstr ""
2259
 
2260
+ #: premium/admin/user.php:193 premium/admin/user.php:223
2261
  msgid "Video's url with link"
2262
  msgstr ""
2263
 
2264
+ #: premium/admin/user.php:194 premium/admin/user.php:224
2265
  msgid "Current date"
2266
  msgstr ""
2267
 
2268
+ #: premium/admin/user.php:195 premium/admin/user.php:225
2269
  msgid "Current time"
2270
  msgstr ""
2271
 
2272
+ #: premium/admin/user.php:235
 
 
 
 
2273
  msgid ""
2274
  "This is the page where the users can manage (add, edit or delete) their "
2275
  "videos in front-end. The [aiovg_user_dashboard] short code must be on this "
2276
  "page."
2277
  msgstr ""
2278
 
2279
+ #: premium/admin/user.php:243
 
 
 
 
2280
  msgid ""
2281
  "This is the form page where the users can add their videos in front-end. The "
2282
  "[aiovg_video_form] short code must be on this page."
2283
  msgstr ""
2284
 
2285
+ #: premium/includes/functions.php:92
2286
+ #: premium/public/templates/user-dashboard.php:46
2287
  #: public/templates/search-form-template-horizontal.php:44
2288
  #: public/templates/search-form-template-vertical.php:44
2289
  msgid "Search"
2290
  msgstr ""
2291
 
2292
+ #: premium/includes/functions.php:93
2293
  msgid "Playlist"
2294
  msgstr ""
2295
 
2296
+ #: premium/includes/functions.php:94
2297
  msgid "Channel"
2298
  msgstr ""
2299
 
2300
+ #: premium/includes/functions.php:96
2301
  msgid "Videos"
2302
  msgstr ""
2303
 
2304
+ #: premium/includes/functions.php:217
2305
  msgid "Scheduled"
2306
  msgstr ""
2307
 
2308
+ #: premium/includes/functions.php:219
2309
  msgid "Rescheduled"
2310
  msgstr ""
2311
 
2312
+ #: premium/includes/functions.php:221
2313
  msgid "Completed"
2314
  msgstr ""
2315
 
2316
+ #: premium/includes/functions.php:286
2317
  msgid "Forgot your password?"
2318
  msgstr ""
2319
 
2320
+ #: premium/includes/functions.php:291
2321
  msgid "Create an account"
2322
  msgstr ""
2323
 
2324
+ #: premium/includes/functions.php:325 premium/includes/functions.php:355
2325
  msgid "Active"
2326
  msgstr ""
2327
 
2328
+ #: premium/includes/functions.php:325 premium/includes/functions.php:355
2329
  msgid "Pending review"
2330
  msgstr ""
2331
 
2332
+ #: premium/includes/functions.php:330
2333
  msgid "[{site_name}] New video received"
2334
  msgstr ""
2335
 
2336
+ #: premium/includes/functions.php:333
2337
  msgid ""
2338
  "Dear Administrator,<br /><br />You have received a new video on the website "
2339
  "{site_name}.<br />This e-mail contains the video details:<br /><br />Video "
2342
  "generated and is for information purposes only."
2343
  msgstr ""
2344
 
2345
+ #: premium/includes/functions.php:360
2346
  msgid "[{site_name}] Video \"{video_title}\" edited"
2347
  msgstr ""
2348
 
2349
+ #: premium/includes/functions.php:363
2350
  msgid ""
2351
  "Dear Administrator,<br /><br />This notification was for the video on the "
2352
  "website {site_name} \"{video_title}\" and is edited.<br />This e-mail "
2356
  "information purposes only."
2357
  msgstr ""
2358
 
2359
+ #: premium/includes/functions.php:389
2360
  msgid "[{site_name}] {videos_count} videos auto imported"
2361
  msgstr ""
2362
 
2363
+ #: premium/includes/functions.php:392
2364
  msgid ""
2365
  "Dear Administrator,<br /><br />You have {videos_count} videos auto imported "
2366
  "on the website {site_name} and waiting for your approval. You can find those "
2369
  "automatically generated and is for information purposes only."
2370
  msgstr ""
2371
 
2372
+ #: premium/includes/youtube.php:57
2373
  msgid "YouTube API Key Missing."
2374
  msgstr ""
2375
 
2376
+ #: premium/includes/youtube.php:61
2377
  msgid "Import source not found."
2378
  msgstr ""
2379
 
2380
+ #: premium/includes/youtube.php:376 premium/includes/youtube.php:426
2381
+ #: premium/includes/youtube.php:463
2382
  msgid "No videos found matching your query."
2383
  msgstr ""
2384
 
2385
+ #: premium/public/adaptive-streaming.php:47
2386
  msgid "Adaptive / Live Streaming"
2387
  msgstr ""
2388
 
2389
+ #: premium/public/public.php:84
2390
  msgid "This is a required field."
2391
  msgstr ""
2392
 
2393
+ #: premium/public/public.php:85 premium/public/user.php:317
2394
+ #: premium/public/user.php:322
2395
  msgid "Invalid file format."
2396
  msgstr ""
2397
 
2398
+ #: premium/public/public.php:86
2399
  msgid "Loaded"
2400
  msgstr ""
2401
 
2402
+ #: premium/public/public.php:87
2403
  msgid "Processing..."
2404
  msgstr ""
2405
 
2406
+ #: premium/public/public.php:88
2407
  msgid "Please wait until the upload is complete"
2408
  msgstr ""
2409
 
2410
+ #: premium/public/public.php:89
2411
  msgid "Unknown error."
2412
  msgstr ""
2413
 
2414
+ #: premium/public/slider.php:98
2415
  msgid "Arrow Top Offset (in percentage)"
2416
  msgstr ""
2417
 
2418
+ #: premium/public/slider.php:108
2419
  msgid "Arrow Left Offset (in pixels)"
2420
  msgstr ""
2421
 
2422
+ #: premium/public/slider.php:118
2423
  msgid "Arrow Right Offset (in pixels)"
2424
  msgstr ""
2425
 
2426
+ #: premium/public/slider.php:135
2427
  msgid "Dot Size"
2428
  msgstr ""
2429
 
2430
+ #: premium/public/templates/user-dashboard.php:19
2431
  #, php-format
2432
  msgid ""
2433
  "You do not have sufficient permissions to do this action. <a href=\"%s\">Go "
2434
  "back</a>"
2435
  msgstr ""
2436
 
2437
+ #: premium/public/templates/user-dashboard.php:29
2438
  msgid "Deleted"
2439
  msgstr ""
2440
 
2441
+ #: premium/public/templates/user-dashboard.php:42
 
 
2442
  msgid "Search videos by title"
2443
  msgstr ""
2444
 
2445
+ #: premium/public/templates/user-dashboard.php:67
2446
  msgid "Actions"
2447
  msgstr ""
2448
 
2449
+ #: premium/public/templates/user-dashboard.php:99
2450
  #: public/templates/video-thumbnail-image-left.php:49
2451
  #: public/templates/video-thumbnail.php:45
2452
  msgid "Posted"
2453
  msgstr ""
2454
 
2455
+ #: premium/public/templates/user-dashboard.php:99
2456
  #: public/templates/video-thumbnail-image-left.php:40
2457
  #: public/templates/video-thumbnail.php:36
2458
  #, php-format
2459
  msgid "%s ago"
2460
  msgstr ""
2461
 
2462
+ #: premium/public/templates/user-dashboard.php:100
2463
  #: public/templates/single-video.php:60
2464
+ #: public/templates/video-thumbnail-image-left.php:82
2465
+ #: public/templates/video-thumbnail.php:78
2466
  #, php-format
2467
  msgid "%d views"
2468
  msgstr ""
2469
 
2470
+ #: premium/public/templates/user-dashboard.php:118
2471
  msgid "Status"
2472
  msgstr ""
2473
 
2474
+ #: premium/public/templates/user-dashboard.php:122
2475
  msgid "Edit"
2476
  msgstr ""
2477
 
2478
+ #: premium/public/templates/user-dashboard.php:124
2479
  msgid "Are you SURE you want to delete this video?"
2480
  msgstr ""
2481
 
2482
+ #: premium/public/templates/video-form.php:17
2483
  msgid ""
2484
  "Your video has been received and it's pending review. This review process "
2485
  "could take up to 48 hours. Please be patient."
2486
  msgstr ""
2487
 
2488
+ #: premium/public/templates/video-form.php:23
2489
  msgid "Saved"
2490
  msgstr ""
2491
 
2492
+ #: premium/public/templates/video-form.php:29
2493
  #, php-format
2494
  msgid "Fields marked with an %s are required"
2495
  msgstr ""
2496
 
2497
+ #: premium/public/templates/video-form.php:31
2498
  #, php-format
2499
  msgid "Maximum upload file size: %s"
2500
  msgstr ""
2501
 
2502
+ #: premium/public/templates/video-form.php:39
2503
  msgid "Video Title"
2504
  msgstr ""
2505
 
2506
+ #: premium/public/templates/video-form.php:44
2507
  msgid "Enter your video title here"
2508
  msgstr ""
2509
 
2510
+ #: premium/public/templates/video-form.php:103
2511
+ #: premium/public/templates/video-form.php:147
2512
+ #: premium/public/templates/video-form.php:174
2513
+ #: premium/public/templates/video-form.php:282
2514
+ msgid "Enter your direct file URL (OR) upload your file using the button here"
2515
+ msgstr ""
2516
+
2517
+ #: premium/public/templates/video-form.php:106
2518
+ #: premium/public/templates/video-form.php:150
2519
+ #: premium/public/templates/video-form.php:177
2520
+ #: premium/public/templates/video-form.php:285
2521
+ msgid "Upload Media"
2522
+ msgstr ""
2523
+
2524
+ #: premium/public/templates/video-form.php:109
2525
+ #: premium/public/templates/video-form.php:153
2526
+ #: premium/public/templates/video-form.php:180
2527
+ #: premium/public/templates/video-form.php:288
2528
  msgid "cancel"
2529
  msgstr ""
2530
 
2531
+ #: premium/public/templates/video-form.php:114
2532
+ #: premium/public/templates/video-form.php:158
2533
+ #: premium/public/templates/video-form.php:185
2534
+ #: premium/public/templates/video-form.php:293
2535
+ msgid "Enter your direct file URL here"
2536
  msgstr ""
2537
 
2538
+ #: premium/public/templates/video-form.php:306
2539
  msgid "Enter your video description here"
2540
  msgstr ""
2541
 
2542
+ #: premium/public/templates/video-form.php:317
2543
  #, php-format
2544
  msgid ""
2545
  "I agree to the <a href=\"%s\" target=\"_blank\">terms and conditions</a>"
2546
  msgstr ""
2547
 
2548
+ #: premium/public/templates/video-form.php:334 premium/public/user.php:406
2549
  msgid "Save Draft"
2550
  msgstr ""
2551
 
2552
+ #: premium/public/templates/video-form.php:336
2553
  msgid "Save Changes"
2554
  msgstr ""
2555
 
2556
+ #: premium/public/templates/video-form.php:340
2557
+ msgid "Cancel"
2558
+ msgstr ""
2559
+
2560
+ #: premium/public/templates/videos-template-popup.php:19
2561
+ #: premium/public/templates/videos-template-slider.php:80
2562
  #: public/templates/videos-template-classic.php:18
2563
  #, php-format
2564
  msgid "%d video(s) found"
2565
  msgstr ""
2566
 
2567
+ #: premium/public/user.php:156 premium/public/user.php:170
2568
  msgid "You do not have sufficient permissions to access this page."
2569
  msgstr ""
2570
 
2571
+ #: premium/public/user.php:299 premium/public/user.php:312
2572
  msgid "You do not have permission to upload files."
2573
  msgstr ""
2574
 
2575
+ #: premium/public/user.php:328
2576
  msgid "Sorry, this file type is not permitted for security reasons."
2577
  msgstr ""
2578
 
2579
+ #: premium/public/user.php:338
2580
  msgid "Sorry, this file size is not allowed."
2581
  msgstr ""
2582
 
2583
+ #: premium/public/user.php:362
2584
  msgid "File is empty. Please upload something more substantial."
2585
  msgstr ""
2586
 
2587
+ #: premium/widgets/companion.php:44
2588
  msgid "AIOVG - Companion Ads"
2589
  msgstr ""
2590
 
2591
+ #: premium/widgets/companion.php:47
2592
  msgid "Display a companion ad."
2593
  msgstr ""
2594
 
2595
+ #: premium/widgets/forms/companion.php:21
2596
  msgid "Height"
2597
  msgstr ""
2598
 
2599
+ #: premium/widgets/forms/companion.php:26
2600
  msgid "Ad Unit Path"
2601
  msgstr ""
2602
 
2603
+ #: premium/widgets/forms/companion.php:30
2604
  #, php-format
2605
  msgid ""
2606
  "Optional. Full path of the ad unit with the network code and unit code. "
2608
  "Publisher Tag (GPT)</a> in the <a href=\"%s\">plugin settings</a>."
2609
  msgstr ""
2610
 
2611
+ #: public/public.php:724
2612
  #, php-format
2613
  msgid "Showing results for \"%s\""
2614
  msgstr ""
2618
  msgid "%d videos"
2619
  msgstr ""
2620
 
2621
+ #: public/templates/search-form-template-horizontal.php:20
2622
+ #: public/templates/search-form-template-vertical.php:20
2623
+ msgid "Search by keyword"
2624
+ msgstr ""
2625
+
2626
  #: public/templates/search-form-template-horizontal.php:27
2627
  #: public/templates/search-form-template-vertical.php:27
2628
  msgid "Select a Category"
2643
  msgid "You may also like"
2644
  msgstr ""
2645
 
2646
+ #: public/videos.php:93
2647
  msgid "Sub Categories"
2648
  msgstr ""
2649
 
2650
+ #: widgets/forms/video.php:22
2651
+ msgid "Latest Video"
2652
+ msgstr ""
2653
+
2654
  #: widgets/videos.php:66
2655
  msgid "Display a video gallery."
2656
  msgstr ""
public/assets/css/public.css CHANGED
@@ -394,8 +394,9 @@
394
  }
395
 
396
  .aiovg .aiovg-link-social {
397
- margin-right: 2px;
398
- padding: 4px 8px 6px 8px;
 
399
  border-radius: 2px;
400
  color: white;
401
  text-decoration: none;
@@ -427,15 +428,6 @@
427
  background: #0084b4;
428
  }
429
 
430
- .aiovg .aiovg-social-googleplus {
431
- background: #D64937;
432
- }
433
-
434
- .aiovg .aiovg-social-googleplus:hover,
435
- .aiovg .aiovg-social-googleplus:active {
436
- background: #b53525;
437
- }
438
-
439
  .aiovg .aiovg-social-linkedin {
440
  background: #0077B5;
441
  }
@@ -454,6 +446,15 @@
454
  background: #9e0718;
455
  }
456
 
 
 
 
 
 
 
 
 
 
457
  /*----------------------------------------------------------------------------------------------
458
  *
459
  * Third-party theme conflicts
394
  }
395
 
396
  .aiovg .aiovg-link-social {
397
+ display: inline-block;
398
+ margin: 2px 2px 2px 0;
399
+ padding: 4px 8px;
400
  border-radius: 2px;
401
  color: white;
402
  text-decoration: none;
428
  background: #0084b4;
429
  }
430
 
 
 
 
 
 
 
 
 
 
431
  .aiovg .aiovg-social-linkedin {
432
  background: #0077B5;
433
  }
446
  background: #9e0718;
447
  }
448
 
449
+ .aiovg .aiovg-social-whatsapp {
450
+ background: #25d366;
451
+ }
452
+
453
+ .aiovg .aiovg-social-whatsapp:hover,
454
+ .aiovg .aiovg-social-whatsapp:active {
455
+ background: #12af0a;
456
+ }
457
+
458
  /*----------------------------------------------------------------------------------------------
459
  *
460
  * Third-party theme conflicts
public/categories.php CHANGED
@@ -59,13 +59,18 @@ class AIOVG_Public_Categories {
59
 
60
  if ( 'grid' == $template ) {
61
  $args = array(
62
- 'parent' => (int) $attributes['id'],
63
  'orderby' => sanitize_text_field( $attributes['orderby'] ),
64
  'order' => sanitize_text_field( $attributes['order'] ),
65
  'hide_empty' => (int) $attributes['hide_empty'],
66
  'hierarchical' => false
67
  );
68
 
 
 
 
 
 
 
69
  $terms = get_terms( 'aiovg_categories', $args );
70
 
71
  if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
@@ -73,12 +78,36 @@ class AIOVG_Public_Categories {
73
  include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . "public/templates/categories-template-grid.php" );
74
  return ob_get_clean();
75
  } else {
76
- return aiovg_get_message( 'empty' );
77
  }
78
  } else {
79
- ob_start();
80
- include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . "public/templates/categories-template-list.php" );
81
- return ob_get_clean();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  }
83
  }
84
 
@@ -90,9 +119,9 @@ class AIOVG_Public_Categories {
90
  */
91
  public function get_defaults() {
92
  if ( empty( $this->defaults ) ) {
93
- $fields = aiovg_get_block_fields();
94
 
95
- foreach ( $fields['categories'] as $section ) {
96
  foreach ( $section['fields'] as $field ) {
97
  $this->defaults[ $field['name'] ] = $field['value'];
98
  }
59
 
60
  if ( 'grid' == $template ) {
61
  $args = array(
 
62
  'orderby' => sanitize_text_field( $attributes['orderby'] ),
63
  'order' => sanitize_text_field( $attributes['order'] ),
64
  'hide_empty' => (int) $attributes['hide_empty'],
65
  'hierarchical' => false
66
  );
67
 
68
+ if ( ! empty( $attributes['include'] ) ) { // Include category IDs
69
+ $args['include'] = array_map( 'intval', explode( ',', $attributes['include'] ) );
70
+ } else {
71
+ $args['parent'] = (int) $attributes['id'];
72
+ }
73
+
74
  $terms = get_terms( 'aiovg_categories', $args );
75
 
76
  if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
78
  include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . "public/templates/categories-template-grid.php" );
79
  return ob_get_clean();
80
  } else {
81
+ return aiovg_get_message( 'categories_empty' );
82
  }
83
  } else {
84
+ $args = array(
85
+ 'taxonomy' => 'aiovg_categories',
86
+ 'orderby' => sanitize_text_field( $attributes['orderby'] ),
87
+ 'order' => sanitize_text_field( $attributes['order'] ),
88
+ 'hide_empty' => (int) $attributes['hide_empty'],
89
+ 'hierarchical' => (int) $attributes['hierarchical'],
90
+ 'show_count' => (int) $attributes['show_count'],
91
+ 'show_option_none' => '',
92
+ 'title_li' => '',
93
+ 'echo' => 0
94
+ );
95
+
96
+ if ( ! empty( $attributes['include'] ) ) { // Include category IDs
97
+ $args['include'] = array_map( 'intval', explode( ',', $attributes['include'] ) );
98
+ } else {
99
+ $args['child_of'] = (int) $attributes['id'];
100
+ }
101
+
102
+ $categories_li = wp_list_categories( $args );
103
+
104
+ if ( ! empty( $categories_li ) ) {
105
+ ob_start();
106
+ include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . "public/templates/categories-template-list.php" );
107
+ return ob_get_clean();
108
+ } else {
109
+ return aiovg_get_message( 'categories_empty' );
110
+ }
111
  }
112
  }
113
 
119
  */
120
  public function get_defaults() {
121
  if ( empty( $this->defaults ) ) {
122
+ $fields = aiovg_get_shortcode_fields();
123
 
124
+ foreach ( $fields['categories']['sections'] as $section ) {
125
  foreach ( $section['fields'] as $field ) {
126
  $this->defaults[ $field['name'] ] = $field['value'];
127
  }
public/public.php CHANGED
@@ -44,11 +44,13 @@ class AIOVG_Public {
44
  }
45
 
46
  /**
47
- * Add rewrite rules.
48
  *
49
  * @since 1.0.0
50
  */
51
- public function add_rewrites() {
 
 
52
  $page_settings = get_option( 'aiovg_page_settings' );
53
  $url = home_url();
54
 
@@ -85,7 +87,23 @@ class AIOVG_Public {
85
  add_rewrite_tag( '%aiovg_category%', '([^/]+)' );
86
  add_rewrite_tag( '%aiovg_user%', '([^/]+)' );
87
  add_rewrite_tag( '%aiovg_type%', '([^/]+)' );
88
- add_rewrite_tag( '%aiovg_video%', '([^/]+)' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  }
90
 
91
  /**
@@ -265,7 +283,7 @@ class AIOVG_Public {
265
  *
266
  * @since 1.5.6
267
  * @param array $title The Yoast title.
268
- * @return Modified title.
269
  */
270
  public function wpseo_title( $title ) {
271
  global $post;
@@ -356,7 +374,7 @@ class AIOVG_Public {
356
  *
357
  * @since 1.5.6
358
  * @param array $desc The Yoast description.
359
- * @return Modified description.
360
  */
361
  public function wpseo_metadesc( $desc ) {
362
  global $post;
@@ -447,7 +465,7 @@ class AIOVG_Public {
447
  *
448
  * @since 1.5.6
449
  * @param array $url The Yoast canonical URL.
450
- * @return Modified canonical URL.
451
  */
452
  public function wpseo_canonical( $url ) {
453
  global $post;
@@ -478,6 +496,122 @@ class AIOVG_Public {
478
  return $url;
479
  }
480
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
481
  /**
482
  * Filter Yoast SEO breadcrumbs.
483
  *
@@ -554,7 +688,7 @@ class AIOVG_Public {
554
  *
555
  * @since 1.0.0
556
  * @param string $title Current page title.
557
- * @return string $title Modified page title.
558
  */
559
  public function the_title( $title ) {
560
  if ( ! in_the_loop() || ! is_main_query() ) {
@@ -624,7 +758,7 @@ class AIOVG_Public {
624
  *
625
  * @since 1.0.0
626
  */
627
- public function set_cookie() {
628
  setcookie( 'aiovg_gdpr_consent', 1, time() + ( 30 * 24 * 60 * 60 ), COOKIEPATH, COOKIE_DOMAIN );
629
  echo 'success';
630
  }
44
  }
45
 
46
  /**
47
+ * Add rewrite rules, set necessary plugin cookies.
48
  *
49
  * @since 1.0.0
50
  */
51
+ public function init() {
52
+ global $aiovg;
53
+
54
  $page_settings = get_option( 'aiovg_page_settings' );
55
  $url = home_url();
56
 
87
  add_rewrite_tag( '%aiovg_category%', '([^/]+)' );
88
  add_rewrite_tag( '%aiovg_user%', '([^/]+)' );
89
  add_rewrite_tag( '%aiovg_type%', '([^/]+)' );
90
+ add_rewrite_tag( '%aiovg_video%', '([^/]+)' );
91
+
92
+ // Set MySQL's RAND function seed value in a cookie
93
+ if ( isset( $_COOKIE['aiovg_rand_seed'] ) ) {
94
+ $aiovg['rand_seed'] = sanitize_text_field( $_COOKIE['aiovg_rand_seed'] );
95
+ $transient_seed = get_transient( 'aiovg_rand_seed_' . $aiovg['rand_seed'] );
96
+
97
+ if ( ! empty( $transient_seed ) ) {
98
+ delete_transient( 'aiovg_rand_seed_' . $aiovg['rand_seed'] );
99
+
100
+ $aiovg['rand_seed'] = sanitize_text_field( $transient_seed );
101
+ setcookie( 'aiovg_rand_seed', $aiovg['rand_seed'], time() + ( 24 * 60 * 60 ), COOKIEPATH, COOKIE_DOMAIN );
102
+ }
103
+ } else {
104
+ $aiovg['rand_seed'] = wp_rand();
105
+ setcookie( 'aiovg_rand_seed', $aiovg['rand_seed'], time() + ( 24 * 60 * 60 ), COOKIEPATH, COOKIE_DOMAIN );
106
+ }
107
  }
108
 
109
  /**
283
  *
284
  * @since 1.5.6
285
  * @param array $title The Yoast title.
286
+ * @return Filtered title.
287
  */
288
  public function wpseo_title( $title ) {
289
  global $post;
374
  *
375
  * @since 1.5.6
376
  * @param array $desc The Yoast description.
377
+ * @return Filtered description.
378
  */
379
  public function wpseo_metadesc( $desc ) {
380
  global $post;
465
  *
466
  * @since 1.5.6
467
  * @param array $url The Yoast canonical URL.
468
+ * @return Filtered canonical URL.
469
  */
470
  public function wpseo_canonical( $url ) {
471
  global $post;
496
  return $url;
497
  }
498
 
499
+ /**
500
+ * Override the Yoast SEO Open Graph image URLs on our plugin pages.
501
+ *
502
+ * @since 1.6.5
503
+ * @param array $url The Yoast image URL.
504
+ * @return Filtered image URL.
505
+ */
506
+ public function wpseo_opengraph_image( $url ) {
507
+ global $post;
508
+
509
+ if ( ! isset( $post ) ) {
510
+ return $url;
511
+ }
512
+
513
+ if ( is_singular( 'aiovg_videos' ) ) {
514
+ $image = get_post_meta( $post->ID, '_yoast_wpseo_opengraph-image', true );
515
+
516
+ if ( empty( $image ) ) {
517
+ $image_url = get_post_meta( $post->ID, 'image', true );
518
+ $image_id = get_post_meta( $post->ID, 'image_id', true );
519
+
520
+ $image = aiovg_get_image_url( $image_id, 'large', $image_url );
521
+ }
522
+
523
+ if ( ! empty( $image ) && 'placeholder-image.png' != basename( $image ) ) {
524
+ $url = $image;
525
+ }
526
+ } else {
527
+ $page_settings = get_option( 'aiovg_page_settings' );
528
+
529
+ if ( $post->ID == $page_settings['category'] ) {
530
+ if ( $slug = get_query_var( 'aiovg_category' ) ) {
531
+ $term = get_term_by( 'slug', $slug, 'aiovg_categories' );
532
+ $meta = get_option( 'wpseo_taxonomy_meta' );
533
+ $image = '';
534
+
535
+ if ( array_key_exists( 'aiovg_categories', $meta ) ) { // Get custom share image from Yoast
536
+ if ( array_key_exists( $term->term_id, $meta['aiovg_categories'] ) ) {
537
+ if ( array_key_exists( 'wpseo_opengraph-image', $meta['aiovg_categories'][ $term->term_id ] ) ) {
538
+ $image = $meta['aiovg_categories'][ $term->term_id ]['wpseo_opengraph-image'];
539
+ }
540
+ }
541
+ }
542
+
543
+ if ( empty( $image ) ) {
544
+ $image_id = get_term_meta( $term->term_id, 'image_id', true );
545
+ $image = aiovg_get_image_url( $image_id, 'large', $url );
546
+ }
547
+
548
+ $url = $image;
549
+ }
550
+ }
551
+ }
552
+
553
+ // Return
554
+ return $url;
555
+ }
556
+
557
+ /**
558
+ * Add custom Twitter Social Share images for Yoast SEO.
559
+ *
560
+ * @since 1.6.5
561
+ * @param array $url The Yoast image URL.
562
+ * @return Filtered image URL.
563
+ */
564
+ public function wpseo_twitter_image( $url ) {
565
+ global $post;
566
+
567
+ if ( ! isset( $post ) ) {
568
+ return $url;
569
+ }
570
+
571
+ if ( is_singular( 'aiovg_videos' ) ) {
572
+ $image = get_post_meta( $post->ID, '_yoast_wpseo_twitter-image', true );
573
+
574
+ if ( empty( $image ) ) {
575
+ $image_url = get_post_meta( $post->ID, 'image', true );
576
+ $image_id = get_post_meta( $post->ID, 'image_id', true );
577
+
578
+ $image = aiovg_get_image_url( $image_id, 'large', $image_url );
579
+ }
580
+
581
+ if ( ! empty( $image ) && 'placeholder-image.png' != basename( $image ) ) {
582
+ $url = $image;
583
+ }
584
+ } else {
585
+ $page_settings = get_option( 'aiovg_page_settings' );
586
+
587
+ if ( $post->ID == $page_settings['category'] ) {
588
+ if ( $slug = get_query_var( 'aiovg_category' ) ) {
589
+ $term = get_term_by( 'slug', $slug, 'aiovg_categories' );
590
+ $meta = get_option( 'wpseo_taxonomy_meta' );
591
+ $image = '';
592
+
593
+ if ( array_key_exists( 'aiovg_categories', $meta ) ) { // Get custom share image from Yoast
594
+ if ( array_key_exists( $term->term_id, $meta['aiovg_categories'] ) ) {
595
+ if ( array_key_exists( 'wpseo_twitter-image', $meta['aiovg_categories'][ $term->term_id ] ) ) {
596
+ $image = $meta['aiovg_categories'][ $term->term_id ]['wpseo_twitter-image'];
597
+ }
598
+ }
599
+ }
600
+
601
+ if ( empty( $image ) ) {
602
+ $image_id = get_term_meta( $term->term_id, 'image_id', true );
603
+ $image = aiovg_get_image_url( $image_id, 'large', $url );
604
+ }
605
+
606
+ $url = $image;
607
+ }
608
+ }
609
+ }
610
+
611
+ // Return
612
+ return $url;
613
+ }
614
+
615
  /**
616
  * Filter Yoast SEO breadcrumbs.
617
  *
688
  *
689
  * @since 1.0.0
690
  * @param string $title Current page title.
691
+ * @return string $title Filtered page title.
692
  */
693
  public function the_title( $title ) {
694
  if ( ! in_the_loop() || ! is_main_query() ) {
758
  *
759
  * @since 1.0.0
760
  */
761
+ public function set_gdpr_cookie() {
762
  setcookie( 'aiovg_gdpr_consent', 1, time() + ( 30 * 24 * 60 * 60 ), COOKIEPATH, COOKIE_DOMAIN );
763
  echo 'success';
764
  }
public/templates/categories-template-list.php CHANGED
@@ -8,29 +8,10 @@
8
  *
9
  * @package All_In_One_Video_Gallery
10
  */
11
-
12
- $list_categories = wp_list_categories( array(
13
- 'child_of' => (int) $attributes['id'],
14
- 'echo' => 0,
15
- 'hierarchical' => (int) $attributes['hierarchical'],
16
- 'hide_empty' => (int) $attributes['hide_empty'],
17
- 'orderby' => sanitize_text_field( $attributes['orderby'] ),
18
- 'order' => sanitize_text_field( $attributes['order'] ),
19
- 'show_count' => (int) $attributes['show_count'],
20
- 'show_option_none' => '',
21
- 'taxonomy' => 'aiovg_categories',
22
- 'title_li' => ''
23
- ) );
24
-
25
- if ( empty( $list_categories ) ) {
26
- $empty_message = aiovg_get_message( 'empty' );
27
- echo esc_html( $empty_message );
28
- return;
29
- }
30
  ?>
31
 
32
  <div class="aiovg aiovg-categories aiovg-categories-list">
33
  <ul>
34
- <?php echo $list_categories; ?>
35
  </ul>
36
  </div>
8
  *
9
  * @package All_In_One_Video_Gallery
10
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  ?>
12
 
13
  <div class="aiovg aiovg-categories aiovg-categories-list">
14
  <ul>
15
+ <?php echo $categories_li; ?>
16
  </ul>
17
  </div>
public/templates/category-thumbnail.php CHANGED
@@ -16,7 +16,7 @@ $image = aiovg_get_image_url( $image_id, 'large' );
16
 
17
  <div class="aiovg-thumbnail">
18
  <a href="<?php echo esc_url( $permalink ); ?>" class="aiovg-responsive-container" style="padding-bottom: <?php echo esc_attr( $attributes['ratio'] ); ?>;">
19
- <img src="<?php echo esc_url( $image ); ?>" class="aiovg-responsive-element" />
20
  </a>
21
 
22
  <div class="aiovg-caption">
16
 
17
  <div class="aiovg-thumbnail">
18
  <a href="<?php echo esc_url( $permalink ); ?>" class="aiovg-responsive-container" style="padding-bottom: <?php echo esc_attr( $attributes['ratio'] ); ?>;">
19
+ <img src="<?php echo esc_url( $image ); ?>" alt="<?php echo esc_attr( $term->name ); ?>" class="aiovg-responsive-element" />
20
  </a>
21
 
22
  <div class="aiovg-caption">
public/templates/player-html5.php CHANGED
@@ -69,6 +69,12 @@ if ( ! empty( $loop ) ) {
69
  $attributes['loop'] = true;
70
  }
71
 
 
 
 
 
 
 
72
  $attributes['preload'] = esc_attr( $player_settings['preload'] );
73
 
74
  if ( isset( $_GET['poster'] ) ) {
@@ -174,6 +180,19 @@ $tracks = apply_filters( 'aiovg_video_tracks', $tracks );
174
  .mejs__captions-layer {
175
  pointer-events: none;
176
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
177
 
178
  .mejs__logo {
179
  position: absolute;
@@ -375,6 +394,22 @@ $tracks = apply_filters( 'aiovg_video_tracks', $tracks );
375
  var body = document.getElementById( 'body' );
376
  var initialized = 0;
377
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
378
  function showSpinner() {
379
  if ( ! initialized ) {
380
  mejs.Utils.addClass( body, 'show-spinner' );
@@ -486,21 +521,13 @@ $tracks = apply_filters( 'aiovg_video_tracks', $tracks );
486
  // Autoplay
487
  if ( settings.autoplayRequested ) {
488
  if ( window.aiovgAutoplayChecksResolved ) {
489
- if ( window.aiovgAutoplayAllowed && ! window.aiovgAutoplayRequiresMuted ) {
490
- media.play();
491
- } else {
492
- hideSpinner();
493
- }
494
  } else {
495
  var intervalHandler = setInterval(
496
  function() {
497
  if ( window.aiovgAutoplayChecksResolved ) {
498
  clearInterval( intervalHandler );
499
- if ( window.aiovgAutoplayAllowed && ! window.aiovgAutoplayRequiresMuted ) {
500
- media.play();
501
- } else {
502
- hideSpinner();
503
- }
504
  }
505
  },
506
  100 ); // every 100ms
@@ -508,16 +535,20 @@ $tracks = apply_filters( 'aiovg_video_tracks', $tracks );
508
  }
509
 
510
  // Fired when the media is ready to start playing
 
 
511
  media.addEventListener( 'play', function( e ) {
512
  if ( ! initialized ) {
513
  initialized = 1;
514
 
515
  hideSpinner();
516
 
517
- var url = '<?php echo admin_url( 'admin-ajax.php' ); ?>?action=aiovg_update_views_count&post_id=<?php echo $post_id; ?>&security=<?php echo wp_create_nonce( 'aiovg_video_{$post_id}_views_nonce' ); ?>';
518
- mejs.Utils.ajax( url, 'json', function() {
519
- // Do nothing
520
- });
 
 
521
  };
522
  });
523
  }
69
  $attributes['loop'] = true;
70
  }
71
 
72
+ $muted = isset( $_GET['muted'] ) ? (int) $_GET['muted'] : (int) $player_settings['muted'];
73
+
74
+ if ( ! empty( $muted ) ) {
75
+ $attributes['muted'] = true;
76
+ }
77
+
78
  $attributes['preload'] = esc_attr( $player_settings['preload'] );
79
 
80
  if ( isset( $_GET['poster'] ) ) {
180
  .mejs__captions-layer {
181
  pointer-events: none;
182
  }
183
+
184
+ .mejs__captions-selector-list .mejs__captions-selector-list-item,
185
+ .mejs__captions-selector-list .mejs__chapters-selector-list-item {
186
+ margin: 0;
187
+ padding: 0;
188
+ }
189
+
190
+ .mejs__captions-selector-list .mejs__captions-selector-label,
191
+ .mejs__captions-selector-list .mejs__chapters-selector-label {
192
+ float: none;
193
+ display: block;
194
+ padding: 4px 10px;
195
+ }
196
 
197
  .mejs__logo {
198
  position: absolute;
394
  var body = document.getElementById( 'body' );
395
  var initialized = 0;
396
 
397
+ function onAutoplayChecksResolved( media ) {
398
+ if ( window.aiovgAutoplayAllowed ) {
399
+ if ( window.aiovgAutoplayRequiresMuted ) {
400
+ if ( media.muted ) {
401
+ media.play();
402
+ } else {
403
+ hideSpinner();
404
+ }
405
+ } else {
406
+ media.play();
407
+ }
408
+ } else {
409
+ hideSpinner();
410
+ }
411
+ }
412
+
413
  function showSpinner() {
414
  if ( ! initialized ) {
415
  mejs.Utils.addClass( body, 'show-spinner' );
521
  // Autoplay
522
  if ( settings.autoplayRequested ) {
523
  if ( window.aiovgAutoplayChecksResolved ) {
524
+ onAutoplayChecksResolved( media );
 
 
 
 
525
  } else {
526
  var intervalHandler = setInterval(
527
  function() {
528
  if ( window.aiovgAutoplayChecksResolved ) {
529
  clearInterval( intervalHandler );
530
+ onAutoplayChecksResolved( media );
 
 
 
 
531
  }
532
  },
533
  100 ); // every 100ms
535
  }
536
 
537
  // Fired when the media is ready to start playing
538
+ var post_type = '<?php echo $post_type; ?>';
539
+
540
  media.addEventListener( 'play', function( e ) {
541
  if ( ! initialized ) {
542
  initialized = 1;
543
 
544
  hideSpinner();
545
 
546
+ if ( 'aiovg_videos' == post_type ) {
547
+ var url = '<?php echo admin_url( 'admin-ajax.php' ); ?>?action=aiovg_update_views_count&post_id=<?php echo $post_id; ?>&security=<?php echo wp_create_nonce( 'aiovg_video_{$post_id}_views_nonce' ); ?>';
548
+ mejs.Utils.ajax( url, 'json', function() {
549
+ // Do nothing
550
+ });
551
+ }
552
  };
553
  });
554
  }
public/templates/player-iframe.php CHANGED
@@ -21,9 +21,7 @@ if ( ! empty( $post_meta ) ) {
21
 
22
  $iframes = $document->getElementsByTagName( 'iframe' );
23
  $src = $iframes->item(0)->getAttribute( 'src' );
24
- }
25
-
26
- aiovg_update_views_count( $post_id );
27
  }
28
 
29
  if ( 'embedcode' != $type ) {
@@ -84,6 +82,9 @@ if ( 'embedcode' != $type ) {
84
 
85
  $loop = isset( $_GET[ 'loop' ] ) ? $_GET['loop'] : $player_settings['loop'];
86
  $src = add_query_arg( 'loop', (int) $loop, $src );
 
 
 
87
  }
88
  }
89
  }
@@ -113,5 +114,37 @@ if ( 'embedcode' != $type ) {
113
  </head>
114
  <body>
115
  <iframe width="560" height="315" src="<?php echo esc_url_raw( $src ); ?>" frameborder="0" scrolling="no" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  </body>
117
  </html>
21
 
22
  $iframes = $document->getElementsByTagName( 'iframe' );
23
  $src = $iframes->item(0)->getAttribute( 'src' );
24
+ }
 
 
25
  }
26
 
27
  if ( 'embedcode' != $type ) {
82
 
83
  $loop = isset( $_GET[ 'loop' ] ) ? $_GET['loop'] : $player_settings['loop'];
84
  $src = add_query_arg( 'loop', (int) $loop, $src );
85
+
86
+ $muted = isset( $_GET[ 'muted' ] ) ? $_GET['muted'] : $player_settings['muted'];
87
+ $src = add_query_arg( 'muted', (int) $muted, $src );
88
  }
89
  }
90
  }
114
  </head>
115
  <body>
116
  <iframe width="560" height="315" src="<?php echo esc_url_raw( $src ); ?>" frameborder="0" scrolling="no" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
117
+
118
+ <?php if ( 'aiovg_videos' == $post_type ) : ?>
119
+ <script type="text/javascript">
120
+ /**
121
+ * Update video views count.
122
+ *
123
+ * @since 1.6.5
124
+ */
125
+ function ajaxSubmit() {
126
+ var xmlhttp;
127
+
128
+ if ( window.XMLHttpRequest ) {
129
+ xmlhttp = new XMLHttpRequest();
130
+ } else {
131
+ xmlhttp = new ActiveXObject( 'Microsoft.XMLHTTP' );
132
+ };
133
+
134
+ xmlhttp.onreadystatechange = function() {
135
+ if ( 4 == xmlhttp.readyState && 200 == xmlhttp.status ) {
136
+ if ( xmlhttp.responseText ) {
137
+ // Do nothing
138
+ }
139
+ }
140
+ };
141
+
142
+ xmlhttp.open( 'GET', '<?php echo admin_url( 'admin-ajax.php' ); ?>?action=aiovg_update_views_count&post_id=<?php echo $post_id; ?>&security=<?php echo wp_create_nonce( 'aiovg_video_{$post_id}_views_nonce' ); ?>', true );
143
+ xmlhttp.send();
144
+ }
145
+
146
+ ajaxSubmit();
147
+ </script>
148
+ <?php endif; ?>
149
  </body>
150
  </html>
public/templates/player.php CHANGED
@@ -14,6 +14,7 @@ $privacy_settings = get_option( 'aiovg_privacy_settings' );
14
  $brand_settings = get_option( 'aiovg_brand_settings', array() );
15
 
16
  $post_id = (int) get_query_var( 'aiovg_video', 0 );
 
17
  $post_meta = array();
18
 
19
  $embedded_sources = array( 'youtube', 'vimeo', 'dailymotion', 'facebook' );
14
  $brand_settings = get_option( 'aiovg_brand_settings', array() );
15
 
16
  $post_id = (int) get_query_var( 'aiovg_video', 0 );
17
+ $post_type = 'page';
18
  $post_meta = array();
19
 
20
  $embedded_sources = array( 'youtube', 'vimeo', 'dailymotion', 'facebook' );
public/templates/search-form-template-horizontal.php CHANGED
@@ -17,7 +17,7 @@
17
  <?php endif; ?>
18
 
19
  <div class="aiovg-form-group aiovg-field-keyword">
20
- <input type="text" name="vi" class="aiovg-form-control" placeholder="<?php esc_attr_e( 'Search videos by title', 'all-in-one-video-gallery' ); ?>" value="<?php echo isset( $_GET['vi'] ) ? esc_attr( $_GET['vi'] ) : ''; ?>" />
21
  </div>
22
 
23
  <?php if ( $attributes['has_category'] ) : ?>
17
  <?php endif; ?>
18
 
19
  <div class="aiovg-form-group aiovg-field-keyword">
20
+ <input type="text" name="vi" class="aiovg-form-control" placeholder="<?php esc_attr_e( 'Search by keyword', 'all-in-one-video-gallery' ); ?>" value="<?php echo isset( $_GET['vi'] ) ? esc_attr( $_GET['vi'] ) : ''; ?>" />
21
  </div>
22
 
23
  <?php if ( $attributes['has_category'] ) : ?>
public/templates/search-form-template-vertical.php CHANGED
@@ -17,7 +17,7 @@
17
  <?php endif; ?>
18
 
19
  <div class="aiovg-form-group aiovg-field-keyword">
20
- <input type="text" name="vi" class="aiovg-form-control" placeholder="<?php esc_attr_e( 'Search videos by title', 'all-in-one-video-gallery' ); ?>" value="<?php echo isset( $_GET['vi'] ) ? esc_attr( $_GET['vi'] ) : ''; ?>" />
21
  </div>
22
 
23
  <?php if ( $attributes['has_category'] ) : ?>
17
  <?php endif; ?>
18
 
19
  <div class="aiovg-form-group aiovg-field-keyword">
20
+ <input type="text" name="vi" class="aiovg-form-control" placeholder="<?php esc_attr_e( 'Search by keyword', 'all-in-one-video-gallery' ); ?>" value="<?php echo isset( $_GET['vi'] ) ? esc_attr( $_GET['vi'] ) : ''; ?>" />
21
  </div>
22
 
23
  <?php if ( $attributes['has_category'] ) : ?>
public/templates/single-video.php CHANGED
@@ -92,7 +92,7 @@ if ( $attributes['related'] ) {
92
 
93
  $related_videos = do_shortcode( '[aiovg_videos ' . implode( ' ', $atts ) . ']' );
94
 
95
- if ( $related_videos != aiovg_get_message( 'empty' ) ) {
96
  echo $related_videos;
97
  }
98
  }
92
 
93
  $related_videos = do_shortcode( '[aiovg_videos ' . implode( ' ', $atts ) . ']' );
94
 
95
+ if ( $related_videos != aiovg_get_message( 'videos_empty' ) ) {
96
  echo $related_videos;
97
  }
98
  }
public/templates/video-thumbnail-image-left.php CHANGED
@@ -17,13 +17,13 @@ $image = aiovg_get_image_url( $post_meta['image_id'][0], 'large', $post_meta
17
  <div class="aiovg-row">
18
  <div class="aiovg-col aiovg-col-p-40">
19
  <a href="<?php the_permalink(); ?>" class="aiovg-responsive-container" style="padding-bottom: <?php echo esc_attr( $attributes['ratio'] ); ?>;">
20
- <img src="<?php echo esc_url( $image ); ?>" class="aiovg-responsive-element" />
21
 
22
  <?php if ( $attributes['show_duration'] && ! empty( $post_meta['duration'][0] ) ) : ?>
23
  <div class="aiovg-duration"><small><?php echo esc_html( $post_meta['duration'][0] ); ?></small></div>
24
  <?php endif; ?>
25
 
26
- <img src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/images/play.png" class="aiovg-play" />
27
  </a>
28
  </div>
29
 
@@ -56,7 +56,15 @@ $image = aiovg_get_image_url( $post_meta['image_id'][0], 'large', $post_meta
56
 
57
  <?php
58
  if ( $attributes['show_category'] ) {
59
- $categories = get_the_terms( get_the_ID(), 'aiovg_categories' );
 
 
 
 
 
 
 
 
60
  if ( ! empty( $categories ) ) {
61
  $meta = array();
62
  foreach ( $categories as $category ) {
17
  <div class="aiovg-row">
18
  <div class="aiovg-col aiovg-col-p-40">
19
  <a href="<?php the_permalink(); ?>" class="aiovg-responsive-container" style="padding-bottom: <?php echo esc_attr( $attributes['ratio'] ); ?>;">
20
+ <img src="<?php echo esc_url( $image ); ?>" alt="<?php the_title_attribute(); ?>" class="aiovg-responsive-element" />
21
 
22
  <?php if ( $attributes['show_duration'] && ! empty( $post_meta['duration'][0] ) ) : ?>
23
  <div class="aiovg-duration"><small><?php echo esc_html( $post_meta['duration'][0] ); ?></small></div>
24
  <?php endif; ?>
25
 
26
+ <img src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/images/play.png" alt="" class="aiovg-play" />
27
  </a>
28
  </div>
29
 
56
 
57
  <?php
58
  if ( $attributes['show_category'] ) {
59
+ $categories = wp_get_object_terms(
60
+ get_the_ID(),
61
+ 'aiovg_categories',
62
+ array(
63
+ 'orderby' => sanitize_text_field( $attributes['categories_orderby'] ),
64
+ 'order' => sanitize_text_field( $attributes['categories_order'] )
65
+ )
66
+ );
67
+
68
  if ( ! empty( $categories ) ) {
69
  $meta = array();
70
  foreach ( $categories as $category ) {
public/templates/video-thumbnail.php CHANGED
@@ -15,13 +15,13 @@ $image = aiovg_get_image_url( $post_meta['image_id'][0], 'large', $post_meta
15
 
16
  <div class="aiovg-thumbnail aiovg-thumbnail-style-image-top" data-id="<?php echo esc_attr( $post->ID ); ?>">
17
  <a href="<?php the_permalink(); ?>" class="aiovg-responsive-container" style="padding-bottom: <?php echo esc_attr( $attributes['ratio'] ); ?>;">
18
- <img src="<?php echo esc_url( $image ); ?>" class="aiovg-responsive-element" />
19
 
20
  <?php if ( $attributes['show_duration'] && ! empty( $post_meta['duration'][0] ) ) : ?>
21
  <div class="aiovg-duration"><small><?php echo esc_html( $post_meta['duration'][0] ); ?></small></div>
22
  <?php endif; ?>
23
 
24
- <img src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/images/play.png" class="aiovg-play" />
25
  </a>
26
 
27
  <div class="aiovg-caption">
@@ -52,7 +52,15 @@ $image = aiovg_get_image_url( $post_meta['image_id'][0], 'large', $post_meta
52
 
53
  <?php
54
  if ( $attributes['show_category'] ) {
55
- $categories = get_the_terms( get_the_ID(), 'aiovg_categories' );
 
 
 
 
 
 
 
 
56
  if ( ! empty( $categories ) ) {
57
  $meta = array();
58
  foreach ( $categories as $category ) {
15
 
16
  <div class="aiovg-thumbnail aiovg-thumbnail-style-image-top" data-id="<?php echo esc_attr( $post->ID ); ?>">
17
  <a href="<?php the_permalink(); ?>" class="aiovg-responsive-container" style="padding-bottom: <?php echo esc_attr( $attributes['ratio'] ); ?>;">
18
+ <img src="<?php echo esc_url( $image ); ?>" alt="<?php the_title_attribute(); ?>" class="aiovg-responsive-element" />
19
 
20
  <?php if ( $attributes['show_duration'] && ! empty( $post_meta['duration'][0] ) ) : ?>
21
  <div class="aiovg-duration"><small><?php echo esc_html( $post_meta['duration'][0] ); ?></small></div>
22
  <?php endif; ?>
23
 
24
+ <img src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/images/play.png" alt="" class="aiovg-play" />
25
  </a>
26
 
27
  <div class="aiovg-caption">
52
 
53
  <?php
54
  if ( $attributes['show_category'] ) {
55
+ $categories = wp_get_object_terms(
56
+ get_the_ID(),
57
+ 'aiovg_categories',
58
+ array(
59
+ 'orderby' => sanitize_text_field( $attributes['categories_orderby'] ),
60
+ 'order' => sanitize_text_field( $attributes['categories_order'] )
61
+ )
62
+ );
63
+
64
  if ( ! empty( $categories ) ) {
65
  $meta = array();
66
  foreach ( $categories as $category ) {
public/video.php CHANGED
@@ -114,6 +114,7 @@ class AIOVG_Public_Video {
114
 
115
  // Vars
116
  $video_settings = get_option( 'aiovg_video_settings' );
 
117
 
118
  $attributes = array(
119
  'id' => $post->ID,
@@ -124,7 +125,14 @@ class AIOVG_Public_Video {
124
  'related' => isset( $video_settings['display']['related'] )
125
  );
126
 
127
- $attributes['categories'] = get_the_terms( get_the_ID(), 'aiovg_categories' );
 
 
 
 
 
 
 
128
 
129
  // Enqueue dependencies
130
  wp_enqueue_style( AIOVG_PLUGIN_SLUG . '-public' );
114
 
115
  // Vars
116
  $video_settings = get_option( 'aiovg_video_settings' );
117
+ $categories_settings = get_option( 'aiovg_categories_settings' );
118
 
119
  $attributes = array(
120
  'id' => $post->ID,
125
  'related' => isset( $video_settings['display']['related'] )
126
  );
127
 
128
+ $attributes['categories'] = wp_get_object_terms(
129
+ get_the_ID(),
130
+ 'aiovg_categories',
131
+ array(
132
+ 'orderby' => sanitize_text_field( $categories_settings['orderby'] ),
133
+ 'order' => sanitize_text_field( $categories_settings['order'] )
134
+ )
135
+ );
136
 
137
  // Enqueue dependencies
138
  wp_enqueue_style( AIOVG_PLUGIN_SLUG . '-public' );
public/videos.php CHANGED
@@ -55,7 +55,7 @@ class AIOVG_Public_Videos {
55
  $content = $this->get_content( $attributes );
56
 
57
  if ( empty( $content ) ) {
58
- $content = aiovg_get_message( 'empty' );
59
  }
60
 
61
  return $content;
@@ -68,9 +68,8 @@ class AIOVG_Public_Videos {
68
  * @param array $atts An associative array of attributes.
69
  */
70
  public function run_shortcode_category( $atts ) {
71
- $term_slug = get_query_var( 'aiovg_category' );
72
- $content = '';
73
- $empty_message = aiovg_get_message( 'empty' );
74
 
75
  if ( ! empty( $term_slug ) ) {
76
  $term = get_term_by( 'slug', sanitize_title( $term_slug ), 'aiovg_categories' );
@@ -95,7 +94,7 @@ class AIOVG_Public_Videos {
95
  }
96
 
97
  $sub_categories = do_shortcode( '[aiovg_categories ' . implode( ' ', $_attributes ) . ']' );
98
- if ( $sub_categories != $empty_message ) {
99
  $content .= $sub_categories;
100
  }
101
  } else {
@@ -103,7 +102,7 @@ class AIOVG_Public_Videos {
103
  }
104
 
105
  if ( empty( $content ) ) {
106
- $content = $empty_message;
107
  }
108
 
109
  return $content;
@@ -129,7 +128,7 @@ class AIOVG_Public_Videos {
129
  $content = $this->get_content( $attributes );
130
 
131
  if ( empty( $content ) ) {
132
- $content = aiovg_get_message( 'empty' );
133
  }
134
 
135
  return $content;
@@ -161,7 +160,7 @@ class AIOVG_Public_Videos {
161
  }
162
 
163
  if ( empty( $content ) ) {
164
- $content = aiovg_get_message( 'empty' );
165
  }
166
 
167
  return $content;
@@ -190,8 +189,8 @@ class AIOVG_Public_Videos {
190
 
191
  if ( ! empty( $attributes['search_query'] ) ) { // Search
192
  $args['s'] = sanitize_text_field( $attributes['search_query'] );
193
- }
194
-
195
  if ( ! empty( $attributes['category'] ) ) { // Category
196
  $args['tax_query'] = array(
197
  array(
@@ -217,6 +216,10 @@ class AIOVG_Public_Videos {
217
  $args['author_name'] = sanitize_text_field( $attributes['user_slug'] );
218
  }
219
 
 
 
 
 
220
  if ( ! empty( $attributes['exclude'] ) ) { // Exclude video IDs
221
  $args['post__not_in'] = array_map( 'intval', explode( ',', $attributes['exclude'] ) );
222
  }
@@ -232,7 +235,8 @@ class AIOVG_Public_Videos {
232
  $args['order'] = $order;
233
  break;
234
  case 'rand':
235
- $args['orderby'] = $orderby;
 
236
  break;
237
  default:
238
  $args['orderby'] = $orderby;
@@ -270,13 +274,19 @@ class AIOVG_Public_Videos {
270
  */
271
  public function get_defaults() {
272
  if ( empty( $this->defaults ) ) {
273
- $fields = aiovg_get_block_fields();
274
 
275
- foreach ( $fields['videos'] as $section ) {
276
  foreach ( $section['fields'] as $field ) {
277
  $this->defaults[ $field['name'] ] = $field['value'];
278
  }
279
  }
 
 
 
 
 
 
280
 
281
  $this->defaults['count'] = 0;
282
  $this->defaults['paged'] = aiovg_get_page_number();
55
  $content = $this->get_content( $attributes );
56
 
57
  if ( empty( $content ) ) {
58
+ $content = aiovg_get_message( 'videos_empty' );
59
  }
60
 
61
  return $content;
68
  * @param array $atts An associative array of attributes.
69
  */
70
  public function run_shortcode_category( $atts ) {
71
+ $term_slug = get_query_var( 'aiovg_category' );
72
+ $content = '';
 
73
 
74
  if ( ! empty( $term_slug ) ) {
75
  $term = get_term_by( 'slug', sanitize_title( $term_slug ), 'aiovg_categories' );
94
  }
95
 
96
  $sub_categories = do_shortcode( '[aiovg_categories ' . implode( ' ', $_attributes ) . ']' );
97
+ if ( $sub_categories != aiovg_get_message( 'categories_empty' ) ) {
98
  $content .= $sub_categories;
99
  }
100
  } else {
102
  }
103
 
104
  if ( empty( $content ) ) {
105
+ $content = aiovg_get_message( 'videos_empty' );
106
  }
107
 
108
  return $content;
128
  $content = $this->get_content( $attributes );
129
 
130
  if ( empty( $content ) ) {
131
+ $content = aiovg_get_message( 'videos_empty' );
132
  }
133
 
134
  return $content;
160
  }
161
 
162
  if ( empty( $content ) ) {
163
+ $content = aiovg_get_message( 'videos_empty' );
164
  }
165
 
166
  return $content;
189
 
190
  if ( ! empty( $attributes['search_query'] ) ) { // Search
191
  $args['s'] = sanitize_text_field( $attributes['search_query'] );
192
+ }
193
+
194
  if ( ! empty( $attributes['category'] ) ) { // Category
195
  $args['tax_query'] = array(
196
  array(
216
  $args['author_name'] = sanitize_text_field( $attributes['user_slug'] );
217
  }
218
 
219
+ if ( ! empty( $attributes['include'] ) ) { // Include video IDs
220
+ $args['post__in'] = array_map( 'intval', explode( ',', $attributes['include'] ) );
221
+ }
222
+
223
  if ( ! empty( $attributes['exclude'] ) ) { // Exclude video IDs
224
  $args['post__not_in'] = array_map( 'intval', explode( ',', $attributes['exclude'] ) );
225
  }
235
  $args['order'] = $order;
236
  break;
237
  case 'rand':
238
+ $seed = aiovg_get_orderby_rand_seed();
239
+ $args['orderby'] = 'RAND(' . $seed . ')';
240
  break;
241
  default:
242
  $args['orderby'] = $orderby;
274
  */
275
  public function get_defaults() {
276
  if ( empty( $this->defaults ) ) {
277
+ $fields = aiovg_get_shortcode_fields();
278
 
279
+ foreach ( $fields['videos']['sections'] as $section ) {
280
  foreach ( $section['fields'] as $field ) {
281
  $this->defaults[ $field['name'] ] = $field['value'];
282
  }
283
  }
284
+
285
+ foreach ( $fields['categories']['sections']['general']['fields'] as $field ) {
286
+ if ( 'orderby' == $field['name'] || 'order' == $field['name'] ) {
287
+ $this->defaults[ 'categories_' . $field['name'] ] = $field['value'];
288
+ }
289
+ }
290
 
291
  $this->defaults['count'] = 0;
292
  $this->defaults['paged'] = aiovg_get_page_number();
widgets/categories.php CHANGED
@@ -51,9 +51,9 @@ class AIOVG_Widget_Categories extends WP_Widget {
51
  $categories_settings = get_option( 'aiovg_categories_settings' );
52
 
53
  $this->defaults = array(
54
- 'title' => __( 'Video Categories', 'all-in-one-video-gallery' ),
55
- 'child_of' => 0,
56
- 'template' => 'list',
57
  'columns' => 1,
58
  'ratio' => ! empty( $image_settings['ratio'] ) ? (float) $image_settings['ratio'] . '%' : '56.25%',
59
  'orderby' => $categories_settings['orderby'],
@@ -116,10 +116,29 @@ class AIOVG_Widget_Categories extends WP_Widget {
116
  unset( $attributes['title'] );
117
  include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . "public/templates/categories-template-grid.php" );
118
  } else {
119
- echo aiovg_get_message( 'empty' );
120
  }
121
  } else {
122
- include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . "public/templates/categories-template-list.php" );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  }
124
 
125
  echo $args['after_widget'];
@@ -135,9 +154,9 @@ class AIOVG_Widget_Categories extends WP_Widget {
135
  public function update( $new_instance, $old_instance ) {
136
  $instance = $old_instance;
137
 
138
- $instance['title'] = isset( $new_instance['title'] ) ? strip_tags( $new_instance['title'] ) : '';
139
- $instance['child_of'] = isset( $new_instance['child_of'] ) ? (int) $new_instance['child_of'] : 0;
140
- $instance['template'] = isset( $new_instance['template'] ) ? sanitize_text_field( $new_instance['template'] ) : 'grid';
141
  $instance['columns'] = isset( $new_instance['columns'] ) ? (int) $new_instance['columns'] : 1;
142
  $instance['orderby'] = isset( $new_instance['orderby'] ) ? sanitize_text_field( $new_instance['orderby'] ) : 'name';
143
  $instance['order'] = isset( $new_instance['order'] ) ? sanitize_text_field( $new_instance['order'] ) : 'asc';
@@ -172,9 +191,7 @@ class AIOVG_Widget_Categories extends WP_Widget {
172
  * @since 1.0.0
173
  */
174
  public function enqueue_styles_scripts() {
175
- if ( is_active_widget( false, $this->id, $this->id_base, true ) ) {
176
- wp_enqueue_style( AIOVG_PLUGIN_SLUG . '-public' );
177
- }
178
  }
179
 
180
- }
51
  $categories_settings = get_option( 'aiovg_categories_settings' );
52
 
53
  $this->defaults = array(
54
+ 'title' => __( 'Video Categories', 'all-in-one-video-gallery' ),
55
+ 'template' => 'list',
56
+ 'child_of' => 0,
57
  'columns' => 1,
58
  'ratio' => ! empty( $image_settings['ratio'] ) ? (float) $image_settings['ratio'] . '%' : '56.25%',
59
  'orderby' => $categories_settings['orderby'],
116
  unset( $attributes['title'] );
117
  include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . "public/templates/categories-template-grid.php" );
118
  } else {
119
+ echo aiovg_get_message( 'categories_empty' );
120
  }
121
  } else {
122
+ $query = array(
123
+ 'taxonomy' => 'aiovg_categories',
124
+ 'child_of' => (int) $attributes['id'],
125
+ 'orderby' => sanitize_text_field( $attributes['orderby'] ),
126
+ 'order' => sanitize_text_field( $attributes['order'] ),
127
+ 'hide_empty' => (int) $attributes['hide_empty'],
128
+ 'hierarchical' => (int) $attributes['hierarchical'],
129
+ 'show_count' => (int) $attributes['show_count'],
130
+ 'show_option_none' => '',
131
+ 'title_li' => '',
132
+ 'echo' => 0
133
+ );
134
+
135
+ $categories_li = wp_list_categories( $query );
136
+
137
+ if ( ! empty( $categories_li ) ) {
138
+ include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . "public/templates/categories-template-list.php" );
139
+ } else {
140
+ echo aiovg_get_message( 'categories_empty' );
141
+ }
142
  }
143
 
144
  echo $args['after_widget'];
154
  public function update( $new_instance, $old_instance ) {
155
  $instance = $old_instance;
156
 
157
+ $instance['title'] = isset( $new_instance['title'] ) ? strip_tags( $new_instance['title'] ) : '';
158
+ $instance['template'] = isset( $new_instance['template'] ) ? sanitize_text_field( $new_instance['template'] ) : 'grid';
159
+ $instance['child_of'] = isset( $new_instance['child_of'] ) ? (int) $new_instance['child_of'] : 0;
160
  $instance['columns'] = isset( $new_instance['columns'] ) ? (int) $new_instance['columns'] : 1;
161
  $instance['orderby'] = isset( $new_instance['orderby'] ) ? sanitize_text_field( $new_instance['orderby'] ) : 'name';
162
  $instance['order'] = isset( $new_instance['order'] ) ? sanitize_text_field( $new_instance['order'] ) : 'asc';
191
  * @since 1.0.0
192
  */
193
  public function enqueue_styles_scripts() {
194
+ wp_enqueue_style( AIOVG_PLUGIN_SLUG . '-public' );
 
 
195
  }
196
 
197
+ }
widgets/forms/categories.php CHANGED
@@ -16,6 +16,22 @@
16
  <input type="text" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" class="widefat aiovg-widget-input-title" value="<?php echo esc_attr( $instance['title'] ); ?>">
17
  </div>
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  <div class="aiovg-widget-field aiovg-widget-field-child_of">
20
  <label class="aiovg-widget-label" for="<?php echo esc_attr( $this->get_field_id( 'child_of' ) ); ?>"><?php esc_html_e( 'Select Parent', 'all-in-one-video-gallery' ); ?></label>
21
  <?php
@@ -33,23 +49,7 @@
33
  'hide_empty' => false,
34
  ) );
35
  ?>
36
- </div>
37
-
38
- <div class="aiovg-widget-field aiovg-widget-field-template">
39
- <label class="aiovg-widget-label" for="<?php echo esc_attr( $this->get_field_id( 'template' ) ); ?>"><?php esc_html_e( 'Select Template', 'all-in-one-video-gallery' ); ?></label>
40
- <select name="<?php echo esc_attr( $this->get_field_name( 'template' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'template' ) ); ?>" class="widefat aiovg-widget-input-template">
41
- <?php
42
- $options = array(
43
- 'grid' => esc_html__( 'Grid', 'all-in-one-video-gallery' ),
44
- 'list' => esc_html__( 'List', 'all-in-one-video-gallery' )
45
- );
46
-
47
- foreach( $options as $key => $value ) {
48
- printf( '<option value="%s"%s>%s</option>', $key, selected( $key, $instance['template'], false ), $value );
49
- }
50
- ?>
51
- </select>
52
- </div>
53
 
54
  <div class="aiovg-widget-field aiovg-widget-field-columns">
55
  <label class="aiovg-widget-label" for="<?php echo esc_attr( $this->get_field_id( 'columns' ) ); ?>"><?php esc_html_e( 'Columns', 'all-in-one-video-gallery' ); ?></label>
@@ -109,4 +109,4 @@
109
  <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'hide_empty' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'hide_empty' ) ); ?>" class="aiovg-widget-input-hide_empty" value="1" <?php checked( 1, $instance['hide_empty'] ); ?> />
110
  <label for="<?php echo esc_attr( $this->get_field_id( 'hide_empty' ) ); ?>"><?php esc_html_e( 'Hide Empty Categories', 'all-in-one-video-gallery' ); ?></label>
111
  </div>
112
- </div>
16
  <input type="text" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" class="widefat aiovg-widget-input-title" value="<?php echo esc_attr( $instance['title'] ); ?>">
17
  </div>
18
 
19
+ <div class="aiovg-widget-field aiovg-widget-field-template">
20
+ <label class="aiovg-widget-label" for="<?php echo esc_attr( $this->get_field_id( 'template' ) ); ?>"><?php esc_html_e( 'Select Template', 'all-in-one-video-gallery' ); ?></label>
21
+ <select name="<?php echo esc_attr( $this->get_field_name( 'template' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'template' ) ); ?>" class="widefat aiovg-widget-input-template">
22
+ <?php
23
+ $options = array(
24
+ 'grid' => esc_html__( 'Grid', 'all-in-one-video-gallery' ),
25
+ 'list' => esc_html__( 'List', 'all-in-one-video-gallery' )
26
+ );
27
+
28
+ foreach( $options as $key => $value ) {
29
+ printf( '<option value="%s"%s>%s</option>', $key, selected( $key, $instance['template'], false ), $value );
30
+ }
31
+ ?>
32
+ </select>
33
+ </div>
34
+
35
  <div class="aiovg-widget-field aiovg-widget-field-child_of">
36
  <label class="aiovg-widget-label" for="<?php echo esc_attr( $this->get_field_id( 'child_of' ) ); ?>"><?php esc_html_e( 'Select Parent', 'all-in-one-video-gallery' ); ?></label>
37
  <?php
49
  'hide_empty' => false,
50
  ) );
51
  ?>
52
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
  <div class="aiovg-widget-field aiovg-widget-field-columns">
55
  <label class="aiovg-widget-label" for="<?php echo esc_attr( $this->get_field_id( 'columns' ) ); ?>"><?php esc_html_e( 'Columns', 'all-in-one-video-gallery' ); ?></label>
109
  <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'hide_empty' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'hide_empty' ) ); ?>" class="aiovg-widget-input-hide_empty" value="1" <?php checked( 1, $instance['hide_empty'] ); ?> />
110
  <label for="<?php echo esc_attr( $this->get_field_id( 'hide_empty' ) ); ?>"><?php esc_html_e( 'Hide Empty Categories', 'all-in-one-video-gallery' ); ?></label>
111
  </div>
112
+ </div>
widgets/forms/video.php CHANGED
@@ -70,6 +70,11 @@
70
  <label for="<?php echo esc_attr( $this->get_field_id( 'loop' ) ); ?>"><?php esc_html_e( 'Loop', 'all-in-one-video-gallery' ); ?></label>
71
  </div>
72
 
 
 
 
 
 
73
  <label class="aiovg-widget-label aiovg-widget-label-header"><?php esc_html_e( 'Player Controls', 'all-in-one-video-gallery' ); ?></label>
74
 
75
  <div class="aiovg-widget-field aiovg-widget-field-playpause">
70
  <label for="<?php echo esc_attr( $this->get_field_id( 'loop' ) ); ?>"><?php esc_html_e( 'Loop', 'all-in-one-video-gallery' ); ?></label>
71
  </div>
72
 
73
+ <div class="aiovg-widget-field aiovg-widget-field-muted">
74
+ <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'muted' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'muted' ) ); ?>" class="aiovg-widget-input-muted" value="1" <?php checked( 1, $instance['muted'] ); ?> />
75
+ <label for="<?php echo esc_attr( $this->get_field_id( 'muted' ) ); ?>"><?php esc_html_e( 'Muted', 'all-in-one-video-gallery' ); ?></label>
76
+ </div>
77
+
78
  <label class="aiovg-widget-label aiovg-widget-label-header"><?php esc_html_e( 'Player Controls', 'all-in-one-video-gallery' ); ?></label>
79
 
80
  <div class="aiovg-widget-field aiovg-widget-field-playpause">
widgets/forms/videos.php CHANGED
@@ -11,7 +11,7 @@
11
  ?>
12
 
13
  <div class="aiovg aiovg-widget-form aiovg-widget-form-videos aiovg-template-<?php echo esc_attr( $instance['template'] ); ?>">
14
- <?php foreach ( $this->fields['videos'] as $key => $section ) : ?>
15
  <div class="aiovg-widget-section aiovg-widget-section-<?php echo esc_attr( $key ); ?>">
16
  <div class="aiovg-widget-section-header"><?php echo wp_kses_post( $section['title'] ); ?></div>
17
 
11
  ?>
12
 
13
  <div class="aiovg aiovg-widget-form aiovg-widget-form-videos aiovg-template-<?php echo esc_attr( $instance['template'] ); ?>">
14
+ <?php foreach ( $this->fields['videos']['sections'] as $key => $section ) : ?>
15
  <div class="aiovg-widget-section aiovg-widget-section-<?php echo esc_attr( $key ); ?>">
16
  <div class="aiovg-widget-section-header"><?php echo wp_kses_post( $section['title'] ); ?></div>
17
 
widgets/search.php CHANGED
@@ -126,9 +126,7 @@ class AIOVG_Widget_Search extends WP_Widget {
126
  * @since 1.0.0
127
  */
128
  public function enqueue_styles_scripts() {
129
- if ( is_active_widget( false, false, $this->id_base, true ) ) {
130
- wp_enqueue_style( AIOVG_PLUGIN_SLUG . '-public' );
131
- }
132
  }
133
 
134
  }
126
  * @since 1.0.0
127
  */
128
  public function enqueue_styles_scripts() {
129
+ wp_enqueue_style( AIOVG_PLUGIN_SLUG . '-public' );
 
 
130
  }
131
 
132
  }
widgets/video.php CHANGED
@@ -107,7 +107,8 @@ class AIOVG_Widget_Video extends WP_Widget {
107
  $instance['width'] = isset( $new_instance['width'] ) ? sanitize_text_field( $new_instance['width'] ) : '';
108
  $instance['ratio'] = isset( $new_instance['ratio'] ) ? (float) $new_instance['ratio'] : 0;
109
  $instance['autoplay'] = isset( $new_instance['autoplay'] ) ? 1 : 0;
110
- $instance['loop'] = isset( $new_instance['loop'] ) ? 1 : 0;
 
111
  $instance['playpause'] = isset( $new_instance['playpause'] ) ? 1 : 0;
112
  $instance['current'] = isset( $new_instance['current'] ) ? 1 : 0;
113
  $instance['progress'] = isset( $new_instance['progress'] ) ? 1 : 0;
@@ -136,6 +137,7 @@ class AIOVG_Widget_Video extends WP_Widget {
136
  'ratio' => $player_settings['ratio'],
137
  'autoplay' => $player_settings['autoplay'],
138
  'loop' => $player_settings['loop'],
 
139
  'playpause' => isset( $player_settings['controls']['playpause'] ) ? 1 : 0,
140
  'current' => isset( $player_settings['controls']['current'] ) ? 1 : 0,
141
  'progress' => isset( $player_settings['controls']['progress'] ) ? 1 : 0,
@@ -161,9 +163,7 @@ class AIOVG_Widget_Video extends WP_Widget {
161
  * @since 1.0.0
162
  */
163
  public function enqueue_styles_scripts() {
164
- if ( is_active_widget( false, $this->id, $this->id_base, true ) ) {
165
- wp_enqueue_style( AIOVG_PLUGIN_SLUG . '-public' );
166
- }
167
  }
168
 
169
  }
107
  $instance['width'] = isset( $new_instance['width'] ) ? sanitize_text_field( $new_instance['width'] ) : '';
108
  $instance['ratio'] = isset( $new_instance['ratio'] ) ? (float) $new_instance['ratio'] : 0;
109
  $instance['autoplay'] = isset( $new_instance['autoplay'] ) ? 1 : 0;
110
+ $instance['loop'] = isset( $new_instance['loop'] ) ? 1 : 0;
111
+ $instance['muted'] = isset( $new_instance['muted'] ) ? 1 : 0;
112
  $instance['playpause'] = isset( $new_instance['playpause'] ) ? 1 : 0;
113
  $instance['current'] = isset( $new_instance['current'] ) ? 1 : 0;
114
  $instance['progress'] = isset( $new_instance['progress'] ) ? 1 : 0;
137
  'ratio' => $player_settings['ratio'],
138
  'autoplay' => $player_settings['autoplay'],
139
  'loop' => $player_settings['loop'],
140
+ 'muted' => $player_settings['muted'],
141
  'playpause' => isset( $player_settings['controls']['playpause'] ) ? 1 : 0,
142
  'current' => isset( $player_settings['controls']['current'] ) ? 1 : 0,
143
  'progress' => isset( $player_settings['controls']['progress'] ) ? 1 : 0,
163
  * @since 1.0.0
164
  */
165
  public function enqueue_styles_scripts() {
166
+ wp_enqueue_style( AIOVG_PLUGIN_SLUG . '-public' );
 
 
167
  }
168
 
169
  }
widgets/videos.php CHANGED
@@ -55,7 +55,7 @@ class AIOVG_Widget_Videos extends WP_Widget {
55
  */
56
  public function __construct() {
57
  $this->widget_slug = 'aiovg-widget-videos';
58
- $this->fields = aiovg_get_block_fields();
59
  $this->defaults = $this->get_defaults();
60
 
61
  parent::__construct(
@@ -185,7 +185,7 @@ class AIOVG_Widget_Videos extends WP_Widget {
185
  unset( $attributes['title'] );
186
  include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . 'public/templates/videos-template-classic.php', $attributes );
187
  } else {
188
- echo aiovg_get_message( 'empty' );
189
  }
190
 
191
  echo $args['after_widget'];
@@ -201,7 +201,7 @@ class AIOVG_Widget_Videos extends WP_Widget {
201
  public function update( $new_instance, $old_instance ) {
202
  $instance = $old_instance;
203
 
204
- foreach ( $this->fields['videos'] as $section ) {
205
  foreach ( $section['fields'] as $field ) {
206
  $field_name = $field['name'];
207
 
@@ -257,20 +257,26 @@ class AIOVG_Widget_Videos extends WP_Widget {
257
  public function get_defaults() {
258
  $defaults = array();
259
 
260
- foreach ( $this->fields['videos'] as $section ) {
261
  foreach ( $section['fields'] as $field ) {
262
  $defaults[ $field['name'] ] = $field['value'];
263
  }
264
  }
265
 
 
 
 
 
 
 
266
  $defaults = array_merge(
267
  $defaults,
268
  array(
269
- 'title' => __( 'Video Gallery', 'all-in-one-video-gallery' ),
270
- 'columns' => 1,
271
- 'thumbnail_style' => 'image-left',
272
- 'ratio' => ! empty( $defaults['ratio'] ) ? (float) $defaults['ratio'] . '%' : '56.25%',
273
- 'show_pagination' => 0
274
  )
275
  );
276
 
@@ -283,9 +289,7 @@ class AIOVG_Widget_Videos extends WP_Widget {
283
  * @since 1.0.0
284
  */
285
  public function enqueue_styles_scripts() {
286
- if ( is_active_widget( false, $this->id, $this->id_base, true ) ) {
287
- wp_enqueue_style( AIOVG_PLUGIN_SLUG . '-public' );
288
- }
289
  }
290
 
291
  }
55
  */
56
  public function __construct() {
57
  $this->widget_slug = 'aiovg-widget-videos';
58
+ $this->fields = aiovg_get_shortcode_fields();
59
  $this->defaults = $this->get_defaults();
60
 
61
  parent::__construct(
185
  unset( $attributes['title'] );
186
  include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . 'public/templates/videos-template-classic.php', $attributes );
187
  } else {
188
+ echo aiovg_get_message( 'videos_empty' );
189
  }
190
 
191
  echo $args['after_widget'];
201
  public function update( $new_instance, $old_instance ) {
202
  $instance = $old_instance;
203
 
204
+ foreach ( $this->fields['videos']['sections'] as $section ) {
205
  foreach ( $section['fields'] as $field ) {
206
  $field_name = $field['name'];
207
 
257
  public function get_defaults() {
258
  $defaults = array();
259
 
260
+ foreach ( $this->fields['videos']['sections'] as $section ) {
261
  foreach ( $section['fields'] as $field ) {
262
  $defaults[ $field['name'] ] = $field['value'];
263
  }
264
  }
265
 
266
+ foreach ( $this->fields['categories']['sections']['general']['fields'] as $field ) {
267
+ if ( 'orderby' == $field['name'] || 'order' == $field['name'] ) {
268
+ $defaults[ 'categories_' . $field['name'] ] = $field['value'];
269
+ }
270
+ }
271
+
272
  $defaults = array_merge(
273
  $defaults,
274
  array(
275
+ 'title' => __( 'Video Gallery', 'all-in-one-video-gallery' ),
276
+ 'columns' => 1,
277
+ 'thumbnail_style' => 'image-left',
278
+ 'ratio' => ! empty( $defaults['ratio'] ) ? (float) $defaults['ratio'] . '%' : '56.25%',
279
+ 'show_pagination' => 0
280
  )
281
  );
282
 
289
  * @since 1.0.0
290
  */
291
  public function enqueue_styles_scripts() {
292
+ wp_enqueue_style( AIOVG_PLUGIN_SLUG . '-public' );
 
 
293
  }
294
 
295
  }