All-in-One Video Gallery - Version 2.5.8

Version Description

  • New: Introduced "Share", "Embed" & "Download" buttons.
  • New: A filter hook "aiovg_image_url" for developers to override the image URL in the site front end.
  • New: Option to restrict the title length in the gallery layout.
  • Tweak: Improvised the plugin settings page UI.
  • Fix: Issues with Ajax Pagination.
  • Fix: [+] few minor bug fixes.
Download this release

Release Info

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

Code changes from version 2.5.7 to 2.5.8

README.txt CHANGED
@@ -2,11 +2,11 @@
2
  Plugin URI: https://plugins360.com/all-in-one-video-gallery/
3
  Contributors: plugins360, wpvideogallery, freemius
4
  Donate link: https://plugins360.com
5
- Tags: video player, video gallery, youtube gallery, vimeo gallery, livestream
6
  Requires at least: 4.7.0
7
- Tested up to: 5.9
8
  Requires PHP: 5.6.20
9
- Stable tag: 2.5.7
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -16,16 +16,18 @@ Add responsive video galleries anywhere on your website – no coding required.
16
 
17
  >[View Demo](https://demo.plugins360.com/all-in-one-video-gallery/) | [Getting Started](https://plugins360.com/all-in-one-video-gallery/documentation/) | [Contact & Support](https://plugins360.com/support/) | [Home Page](https://plugins360.com)
18
 
19
- "Video is the future of content marketing". Start converting your blogs as video blogs and win the COMPETITION.
20
 
21
- **All-in-One Video Gallery** is a VIDEO POSTS plugin that helps you adding videos as posts and build scalable, searchable, SEO optimized video galleries in minutes.
22
 
23
- No coding required. Suitable for all kinds of websites that require a single video player to a large video sharing website like YouTube/Vimeo.
 
 
24
 
25
  ### PLAYER FEATURES
26
 
27
  * A Custom HTML5 Video Player that supports **MP4**, **WebM**, **OGV** and embeddable players like **YouTube**, **Vimeo**, **Dailymotion**, **Facebook** and more.
28
- * Player controls: play/pause buttons, timer, progress bar, duration, quality switcher, speed control, volume button, fullscreen button, subtitles on/off
29
  * Playback options: autoplay, loop, muted, preload
30
  * Subtitles (WebVTT).
31
  * GDPR consent.
@@ -36,7 +38,7 @@ No coding required. Suitable for all kinds of websites that require a single vid
36
  Back-End
37
 
38
  * Create unlimited categories/subcategories and tags.
39
- * Videos are added as POSTS using its own custom post UI. So, the plugin doesn't interfere with your general WordPress POSTs.
40
  * Ability to group videos by categories and tags.
41
  * Mark videos as featured.
42
  * 100+ settings (STILL COUNTING) that help you customize the plugin to the maximum you will need.
@@ -46,7 +48,7 @@ Front-End
46
  * Modern, Responsive design.
47
  * Categories display options: Grid, List
48
  * Sort categories by "ID", "videos count", "category name" & "slug".
49
- * Videos display options: Grid. More template options available with our premium version.
50
  * Filter videos by "categories", "tags" and "featured" meta key.
51
  * Sort videos by "video posted date", "title", "views count", "random".
52
  * Ability to control the display of each HTML element in the gallery.
@@ -56,11 +58,11 @@ Front-End
56
  * Dedicated search form & layout.
57
  * Shortcode Builder to build the gallery shortcodes.
58
  * Gutenberg Blocks to build the gallery if your website uses the modern WordPress editor.
59
- * Widgets to list categories, list videos, display a single video player and search videos.
60
 
61
  ### DEVELOPER OPTIONS
62
 
63
- The videos (aiovg_videos) belong to a WordPress Custom Post Type. Similarly, the categories (aiovg_categories) and tags (aiovg_tags) belong to the WordPress Custom Taxonomy. The plugin doesn't use any custom tables and the settings are stored in the WP_Options table using the WordPress' SETTINGS API. In short, the plugin has been developed completely using the WordPress CORE features. So, if you're a WordPress developer, you can customize/extend the plugin as you like using the WordPress' hooks system easily.
64
 
65
  Similarly, the front-end gallery layouts added by our plugin can be customized by developing or overriding our existing templates. Please [check for a detailed documentation](https://plugins360.com/all-in-one-video-gallery/child-themes-and-templates/) on this.
66
 
@@ -78,7 +80,7 @@ Similarly, the front-end gallery layouts added by our plugin can be customized b
78
 
79
  ### TRANSLATION READY
80
 
81
- Do you speak another language? Want to contribute in a meaningful way to All-in-One Video Gallery? There's no better way than to help us translate the plugin. This plugin is translation ready and you can [translate](https://plugins360.com/all-in-one-video-gallery/translate-to-your-language/) to your language easy. Once finished, please reach out to us [here](https://plugins360.com/support/) to get your language file included in the core.
82
 
83
  Spanish translation partner - [Blarlo](https://www.blarlo.com/)
84
 
@@ -110,20 +112,25 @@ For more detailed instructions visit our plugin [documentation](https://plugins3
110
  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).
111
 
112
  = 2. Can I upload large video files using this plugin? =
113
- 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.
114
 
115
  = 3. Can I show my videos in a Popup/Slider? =
116
- Yes, you can. Kindly refer the instructions below,
117
 
118
  1. [Popup](https://plugins360.com/all-in-one-video-gallery/popup/)
119
  2. [Slider](https://plugins360.com/all-in-one-video-gallery/slider/)
120
 
121
  = 4. Does the plugin support third-party page builders like "Elementor", "WPBakery", "Divi", etc.? =
122
- Yes. Simply, generate your shortcode using the plugin's "Shortcode Builder" and add it in your favourite page builder.
123
 
124
  = 5. Is the plugin compatible with WordPress Multisite? =
125
  Yes, it is. However, do not "network-activate" the plugin. Activate it only on the subsites on which you need the gallery. This can be done under "Plugins => Add New" as the Administrator user.
126
 
 
 
 
 
 
127
  == Screenshots ==
128
 
129
  1. Categories Layout.
@@ -136,6 +143,15 @@ Yes, it is. However, do not "network-activate" the plugin. Activate it only on t
136
 
137
  == Changelog ==
138
 
 
 
 
 
 
 
 
 
 
139
  = 2.5.7 =
140
 
141
  * Fix: The search form was disabled on some WordPress environments after the last update.
@@ -190,7 +206,7 @@ Fix: Updates to the latest Vimeo Image URLs.
190
 
191
  = 2.4.7 =
192
 
193
- * Fix: Error when you click the "Add More Quality Levels" in the video form but submitting the form without selecting any quality level.
194
 
195
  = 2.4.6 =
196
 
@@ -202,7 +218,7 @@ Fix: Updates to the latest Vimeo Image URLs.
202
  * New: Support for "start" and "end" times on the YouTube URLs.
203
  * New: A new "exclude" attribute for the shortcode [aiovg_categories].
204
  * New: Introduced several developer hooks that make the plugin highly extensible.
205
- * Tweak: Replaced the "Big Play Button" in the player with a more clear, beautiful button.
206
  * Tweak: Added support for a custom video player for YouTube and Vimeo videos on mobiles.
207
  * Tweak: Updated Freemius SDK (2.4.2).
208
  * Fix: [+] few minor bug fixes.
@@ -250,7 +266,7 @@ Fix: Updates to the latest Vimeo Image URLs.
250
  * Tweak: "Self Hosted / External URL" source type supports the relative file paths and the encoded (%20) file names.
251
  * Tweak: "Iframe Embed Code" source type supports non-iframe player embeds. Example: TikTok Videos.
252
  * Tweak: The "videos count" info on the categories page, includes the subcategory videos too.
253
- * Fix: Security Fix. Prevent XSS (Cross-Site Scripting) attempt on the title fields.
254
  * Fix: Conflict with the Autoptimize plugin.
255
  * Fix: [+] few minor bug fixes.
256
 
@@ -275,4 +291,10 @@ Fix: Updates to the latest Vimeo Image URLs.
275
 
276
  = EARLIER VERSIONS =
277
 
278
- For the changelog of earlier versions, please refer to the [changelog on plugins360.com](https://plugins360.com/all-in-one-video-gallery/changelog/).
 
 
 
 
 
 
2
  Plugin URI: https://plugins360.com/all-in-one-video-gallery/
3
  Contributors: plugins360, wpvideogallery, freemius
4
  Donate link: https://plugins360.com
5
+ Tags: video player, video gallery, youtube gallery, vimeo gallery, live stream
6
  Requires at least: 4.7.0
7
+ Tested up to: 6.0
8
  Requires PHP: 5.6.20
9
+ Stable tag: 2.5.8
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
16
 
17
  >[View Demo](https://demo.plugins360.com/all-in-one-video-gallery/) | [Getting Started](https://plugins360.com/all-in-one-video-gallery/documentation/) | [Contact & Support](https://plugins360.com/support/) | [Home Page](https://plugins360.com)
18
 
19
+ "Video is the future of content marketing". Start converting your blogs to video blogs and win the COMPETITION.
20
 
21
+ **All-in-One Video Gallery** is a VIDEO POSTS plugin that helps you add videos as posts and build scalable, searchable, SEO-optimized video galleries in minutes.
22
 
23
+ No coding is required. Suitable for all kinds of websites that require a single video player to a large video-sharing website like YouTube/Vimeo.
24
+
25
+ **Try it out on your free dummy site: Click here => [https://tastewp.com/new/?pre-installed-plugin-slug=all-in-one-video-gallery&pre-installed-theme-slug=twentytwelve&redirect=admin.php%3Fpage%3Dall-in-one-video-gallery&ni=true](https://tastewp.com/new/?pre-installed-plugin-slug=all-in-one-video-gallery)**
26
 
27
  ### PLAYER FEATURES
28
 
29
  * A Custom HTML5 Video Player that supports **MP4**, **WebM**, **OGV** and embeddable players like **YouTube**, **Vimeo**, **Dailymotion**, **Facebook** and more.
30
+ * Player controls: play/pause buttons, timer, progress bar, duration, quality switcher, speed control, volume button, fullscreen button, share buttons, embed button, download button, subtitles on/off
31
  * Playback options: autoplay, loop, muted, preload
32
  * Subtitles (WebVTT).
33
  * GDPR consent.
38
  Back-End
39
 
40
  * Create unlimited categories/subcategories and tags.
41
+ * Videos are added as POSTS using their own custom post UI. So, the plugin doesn't interfere with your general WordPress POSTs.
42
  * Ability to group videos by categories and tags.
43
  * Mark videos as featured.
44
  * 100+ settings (STILL COUNTING) that help you customize the plugin to the maximum you will need.
48
  * Modern, Responsive design.
49
  * Categories display options: Grid, List
50
  * Sort categories by "ID", "videos count", "category name" & "slug".
51
+ * Videos display options: Grid. More template options are available with our premium version.
52
  * Filter videos by "categories", "tags" and "featured" meta key.
53
  * Sort videos by "video posted date", "title", "views count", "random".
54
  * Ability to control the display of each HTML element in the gallery.
58
  * Dedicated search form & layout.
59
  * Shortcode Builder to build the gallery shortcodes.
60
  * Gutenberg Blocks to build the gallery if your website uses the modern WordPress editor.
61
+ * Widgets to list categories, list videos, display a single video player, and search videos.
62
 
63
  ### DEVELOPER OPTIONS
64
 
65
+ The videos (aiovg_videos) belong to a WordPress Custom Post Type. Similarly, the categories (aiovg_categories) and tags (aiovg_tags) belong to the WordPress Custom Taxonomy. The plugin doesn't use any custom tables and the settings are stored in the WP_Options table using the WordPress SETTINGS API. In short, the plugin has been developed completely using the WordPress CORE features. So, if you're a WordPress developer, you can customize/extend the plugin as you like using the WordPress hooks system easily.
66
 
67
  Similarly, the front-end gallery layouts added by our plugin can be customized by developing or overriding our existing templates. Please [check for a detailed documentation](https://plugins360.com/all-in-one-video-gallery/child-themes-and-templates/) on this.
68
 
80
 
81
  ### TRANSLATION READY
82
 
83
+ Do you speak another language? Want to contribute in a meaningful way to All-in-One Video Gallery? There's no better way than to help us translate the plugin. This plugin is translation ready and you can [translate](https://plugins360.com/all-in-one-video-gallery/translate-to-your-language/) to your language easily. Once finished, please reach out to us [here](https://plugins360.com/support/) to get your language file included in the core.
84
 
85
  Spanish translation partner - [Blarlo](https://www.blarlo.com/)
86
 
112
  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).
113
 
114
  = 2. Can I upload large video files using this plugin? =
115
+ 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 that is not suitable for large file uploads. Simply write to your HOST and ask them to increase the upload file size limit.
116
 
117
  = 3. Can I show my videos in a Popup/Slider? =
118
+ Yes, you can. Kindly refer to the instructions below,
119
 
120
  1. [Popup](https://plugins360.com/all-in-one-video-gallery/popup/)
121
  2. [Slider](https://plugins360.com/all-in-one-video-gallery/slider/)
122
 
123
  = 4. Does the plugin support third-party page builders like "Elementor", "WPBakery", "Divi", etc.? =
124
+ Yes. Simply, generate your shortcode using the plugin's "Shortcode Builder" and add it to your favorite page builder.
125
 
126
  = 5. Is the plugin compatible with WordPress Multisite? =
127
  Yes, it is. However, do not "network-activate" the plugin. Activate it only on the subsites on which you need the gallery. This can be done under "Plugins => Add New" as the Administrator user.
128
 
129
+ = 6. The download button in the plugin is not working. =
130
+ The download option works only on the "Self Hosted / External URL" source type. Even if the video is self-hosted, the video file must be publicly accessible to download. So, make sure that your file is publicly accessible.
131
+
132
+ Also, the videos from third-party services like "YouTube", "Vimeo", or "Dailymotion" cannot be downloaded.
133
+
134
  == Screenshots ==
135
 
136
  1. Categories Layout.
143
 
144
  == Changelog ==
145
 
146
+ = 2.5.8 =
147
+
148
+ * New: Introduced "Share", "Embed" & "Download" buttons.
149
+ * New: A filter hook "aiovg_image_url" for developers to override the image URL in the site front end.
150
+ * New: Option to restrict the title length in the gallery layout.
151
+ * Tweak: Improvised the plugin settings page UI.
152
+ * Fix: Issues with Ajax Pagination.
153
+ * Fix: [+] few minor bug fixes.
154
+
155
  = 2.5.7 =
156
 
157
  * Fix: The search form was disabled on some WordPress environments after the last update.
206
 
207
  = 2.4.7 =
208
 
209
+ * Fix: Error when you click the "Add More Quality Levels" in the video form but submit the form without selecting any quality level.
210
 
211
  = 2.4.6 =
212
 
218
  * New: Support for "start" and "end" times on the YouTube URLs.
219
  * New: A new "exclude" attribute for the shortcode [aiovg_categories].
220
  * New: Introduced several developer hooks that make the plugin highly extensible.
221
+ * Tweak: Replaced the "Big Play Button" in the player with a more clear, more beautiful button.
222
  * Tweak: Added support for a custom video player for YouTube and Vimeo videos on mobiles.
223
  * Tweak: Updated Freemius SDK (2.4.2).
224
  * Fix: [+] few minor bug fixes.
266
  * Tweak: "Self Hosted / External URL" source type supports the relative file paths and the encoded (%20) file names.
267
  * Tweak: "Iframe Embed Code" source type supports non-iframe player embeds. Example: TikTok Videos.
268
  * Tweak: The "videos count" info on the categories page, includes the subcategory videos too.
269
+ * Fix: Security Fix. Prevent XSS (Cross-Site Scripting) attempts on the title fields.
270
  * Fix: Conflict with the Autoptimize plugin.
271
  * Fix: [+] few minor bug fixes.
272
 
291
 
292
  = EARLIER VERSIONS =
293
 
294
+ For the changelog of earlier versions, please refer to the [changelog on plugins360.com](https://plugins360.com/all-in-one-video-gallery/changelog/).
295
+
296
+ == Upgrade Notice ==
297
+
298
+ = 2.5.8 =
299
+
300
+ Introduces several bug fixes, new features & enhancements. [See changelog](https://wordpress.org/plugins/all-in-one-video-gallery/#developers)
admin/admin.php CHANGED
@@ -56,10 +56,28 @@ class AIOVG_Admin {
56
 
57
  if ( count( $new_player_settings ) ) {
58
  update_option( 'aiovg_player_settings', array_merge( $player_settings, $new_player_settings ) );
59
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
  // Insert the missing videos settings
62
  $videos_settings = get_option( 'aiovg_videos_settings' );
 
63
 
64
  $new_videos_settings = array();
65
 
@@ -67,43 +85,21 @@ class AIOVG_Admin {
67
  $new_videos_settings['template'] = $defaults['aiovg_videos_settings']['template'];
68
  }
69
 
70
- if ( ! array_key_exists( 'thumbnail_style', $videos_settings ) ) {
71
- $new_videos_settings['thumbnail_style'] = $defaults['aiovg_videos_settings']['thumbnail_style'];
 
 
 
72
  }
73
 
74
- $new_videos_settings['display'] = $videos_settings['display'];
75
- $new_videos_settings['display']['title'] = 'title';
 
76
 
77
  if ( count( $new_videos_settings ) ) {
78
  update_option( 'aiovg_videos_settings', array_merge( $videos_settings, $new_videos_settings ) );
79
  }
80
 
81
- // Insert the missing video settings
82
- $video_settings = get_option( 'aiovg_video_settings' );
83
-
84
- $new_video_settings = array();
85
-
86
- if ( empty( $video_settings['has_comments'] ) ) {
87
- $new_video_settings['has_comments'] = -1;
88
- }
89
-
90
- if ( count( $new_video_settings ) ) {
91
- update_option( 'aiovg_video_settings', array_merge( $video_settings, $new_video_settings ) );
92
- }
93
-
94
- // Insert the related videos settings
95
- if ( false == get_option( 'aiovg_related_videos_settings' ) ) {
96
- add_option( 'aiovg_related_videos_settings', array(
97
- 'columns' => $videos_settings['columns'],
98
- 'limit' => $videos_settings['limit'],
99
- 'orderby' => $videos_settings['orderby'],
100
- 'order' => $videos_settings['order'],
101
- 'display' => array(
102
- 'pagination' => 'pagination'
103
- )
104
- ));
105
- }
106
-
107
  // Insert the missing categories settings
108
  $categories_settings = get_option( 'aiovg_categories_settings' );
109
 
@@ -121,26 +117,44 @@ class AIOVG_Admin {
121
  $new_categories_settings['hierarchical'] = $defaults['aiovg_categories_settings']['hierarchical'];
122
  }
123
 
 
 
 
 
124
  if ( count( $new_categories_settings ) ) {
125
  update_option( 'aiovg_categories_settings', array_merge( $categories_settings, $new_categories_settings ) );
126
- }
127
 
128
- // Insert the missing socialshare settings
129
- $socialshare_settings = get_option( 'aiovg_socialshare_settings' );
130
 
131
- $new_socialshare_settings = array();
132
 
133
- if ( ! array_key_exists( 'open_graph_tags', $socialshare_settings ) ) {
134
- $new_socialshare_settings['open_graph_tags'] = $defaults['aiovg_socialshare_settings']['open_graph_tags'];
 
135
  }
136
 
137
- if ( ! array_key_exists( 'twitter_username', $socialshare_settings ) ) {
138
- $new_socialshare_settings['twitter_username'] = $defaults['aiovg_socialshare_settings']['twitter_username'];
139
  }
140
 
141
- if ( count( $new_socialshare_settings ) ) {
142
- update_option( 'aiovg_socialshare_settings', array_merge( $socialshare_settings, $new_socialshare_settings ) );
143
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
144
 
145
  // Insert the missing general settings
146
  $general_settings = get_option( 'aiovg_general_settings' );
@@ -160,7 +174,10 @@ class AIOVG_Admin {
160
  // Insert the privacy settings
161
  if ( false == get_option( 'aiovg_privacy_settings' ) ) {
162
  add_option( 'aiovg_privacy_settings', $defaults['aiovg_privacy_settings'] );
163
- }
 
 
 
164
  }
165
  }
166
 
@@ -554,6 +571,47 @@ class AIOVG_Admin {
554
  );
555
  }
556
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
557
  /**
558
  * Add a settings link on the plugin listing page.
559
  *
56
 
57
  if ( count( $new_player_settings ) ) {
58
  update_option( 'aiovg_player_settings', array_merge( $player_settings, $new_player_settings ) );
59
+ }
60
+
61
+ // Insert the missing socialshare settings
62
+ $socialshare_settings = get_option( 'aiovg_socialshare_settings' );
63
+
64
+ $new_socialshare_settings = array();
65
+
66
+ if ( ! array_key_exists( 'open_graph_tags', $socialshare_settings ) ) {
67
+ $new_socialshare_settings['open_graph_tags'] = $defaults['aiovg_socialshare_settings']['open_graph_tags'];
68
+ }
69
+
70
+ if ( ! array_key_exists( 'twitter_username', $socialshare_settings ) ) {
71
+ $new_socialshare_settings['twitter_username'] = $defaults['aiovg_socialshare_settings']['twitter_username'];
72
+ }
73
+
74
+ if ( count( $new_socialshare_settings ) ) {
75
+ update_option( 'aiovg_socialshare_settings', array_merge( $socialshare_settings, $new_socialshare_settings ) );
76
+ }
77
 
78
  // Insert the missing videos settings
79
  $videos_settings = get_option( 'aiovg_videos_settings' );
80
+ $image_settings = get_option( 'aiovg_image_settings', array() );
81
 
82
  $new_videos_settings = array();
83
 
85
  $new_videos_settings['template'] = $defaults['aiovg_videos_settings']['template'];
86
  }
87
 
88
+ if ( ! array_key_exists( 'ratio', $videos_settings ) && ! empty( $image_settings ) ) {
89
+ $new_videos_settings['ratio'] = $image_settings['ratio'];
90
+
91
+ $new_videos_settings['display'] = $videos_settings['display'];
92
+ $new_videos_settings['display']['title'] = 'title';
93
  }
94
 
95
+ if ( ! array_key_exists( 'thumbnail_style', $videos_settings ) ) {
96
+ $new_videos_settings['thumbnail_style'] = $defaults['aiovg_videos_settings']['thumbnail_style'];
97
+ }
98
 
99
  if ( count( $new_videos_settings ) ) {
100
  update_option( 'aiovg_videos_settings', array_merge( $videos_settings, $new_videos_settings ) );
101
  }
102
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  // Insert the missing categories settings
104
  $categories_settings = get_option( 'aiovg_categories_settings' );
105
 
117
  $new_categories_settings['hierarchical'] = $defaults['aiovg_categories_settings']['hierarchical'];
118
  }
119
 
120
+ if ( ! array_key_exists( 'back_button', $categories_settings ) ) {
121
+ $new_categories_settings['back_button'] = 1;
122
+ }
123
+
124
  if ( count( $new_categories_settings ) ) {
125
  update_option( 'aiovg_categories_settings', array_merge( $categories_settings, $new_categories_settings ) );
126
+ }
127
 
128
+ // Insert the missing video settings
129
+ $video_settings = get_option( 'aiovg_video_settings' );
130
 
131
+ $new_video_settings = array();
132
 
133
+ if ( ! empty( $image_settings ) ) {
134
+ $new_video_settings['display'] = $video_settings['display'];
135
+ $new_video_settings['display']['share'] = 'share';
136
  }
137
 
138
+ if ( empty( $video_settings['has_comments'] ) ) {
139
+ $new_video_settings['has_comments'] = -1;
140
  }
141
 
142
+ if ( count( $new_video_settings ) ) {
143
+ update_option( 'aiovg_video_settings', array_merge( $video_settings, $new_video_settings ) );
144
  }
145
+
146
+ // Insert the related videos settings
147
+ if ( false == get_option( 'aiovg_related_videos_settings' ) ) {
148
+ add_option( 'aiovg_related_videos_settings', array(
149
+ 'columns' => $videos_settings['columns'],
150
+ 'limit' => $videos_settings['limit'],
151
+ 'orderby' => $videos_settings['orderby'],
152
+ 'order' => $videos_settings['order'],
153
+ 'display' => array(
154
+ 'pagination' => 'pagination'
155
+ )
156
+ ));
157
+ }
158
 
159
  // Insert the missing general settings
160
  $general_settings = get_option( 'aiovg_general_settings' );
174
  // Insert the privacy settings
175
  if ( false == get_option( 'aiovg_privacy_settings' ) ) {
176
  add_option( 'aiovg_privacy_settings', $defaults['aiovg_privacy_settings'] );
177
+ }
178
+
179
+ // Delete the unwanted plugin options
180
+ delete_option( 'aiovg_image_settings' );
181
  }
182
  }
183
 
571
  );
572
  }
573
 
574
+ /**
575
+ * Add a post display state for special AIOVG pages in the page list table.
576
+ *
577
+ * @since 2.5.8
578
+ * @param array $post_states An array of post display states.
579
+ * @param WP_Post $post The current post object.
580
+ */
581
+ public function add_display_post_states( $post_states, $post ) {
582
+ $page_settings = get_option( 'aiovg_page_settings', array() );
583
+
584
+ if ( isset( $page_settings['category'] ) && $page_settings['category'] === $post->ID ) {
585
+ $post_states['aiovg_page_for_category'] = __( 'Video Category Page', 'all-in-one-video-gallery' );
586
+ }
587
+
588
+ if ( isset( $page_settings['tag'] ) && $page_settings['tag'] === $post->ID ) {
589
+ $post_states['aiovg_page_for_tag'] = __( 'Video Tag Page', 'all-in-one-video-gallery' );
590
+ }
591
+
592
+ if ( isset( $page_settings['search'] ) && $page_settings['search'] === $post->ID ) {
593
+ $post_states['aiovg_page_for_search'] = __( 'Search Results Page', 'all-in-one-video-gallery' );
594
+ }
595
+
596
+ if ( isset( $page_settings['user_videos'] ) && $page_settings['user_videos'] === $post->ID ) {
597
+ $post_states['aiovg_page_for_user_videos'] = __( 'User Videos Page', 'all-in-one-video-gallery' );
598
+ }
599
+
600
+ if ( isset( $page_settings['player'] ) && $page_settings['player'] === $post->ID ) {
601
+ $post_states['aiovg_page_for_player'] = __( 'Player Page', 'all-in-one-video-gallery' );
602
+ }
603
+
604
+ if ( isset( $page_settings['user_dashboard'] ) && $page_settings['user_dashboard'] === $post->ID ) {
605
+ $post_states['aiovg_page_for_user_dashboard'] = __( 'User Dashboard Page', 'all-in-one-video-gallery' );
606
+ }
607
+
608
+ if ( isset( $page_settings['video_form'] ) && $page_settings['video_form'] === $post->ID ) {
609
+ $post_states['aiovg_page_for_video_form'] = __( 'Video Form Page', 'all-in-one-video-gallery' );
610
+ }
611
+
612
+ return $post_states;
613
+ }
614
+
615
  /**
616
  * Add a settings link on the plugin listing page.
617
  *
admin/assets/css/admin.css CHANGED
@@ -359,6 +359,7 @@
359
  .aiovg-shortcode-control-ratio,
360
  .aiovg-shortcode-control-include,
361
  .aiovg-shortcode-control-exclude,
 
362
  .aiovg-shortcode-control-excerpt_length,
363
  .aiovg-shortcode-control-show_more,
364
  .aiovg-shortcode-control-more_label,
@@ -541,6 +542,10 @@ table.aiovg-table .aiovg-handle {
541
  margin-top: 2em;
542
  }
543
 
 
 
 
 
544
  .aiovg-settings .form-table .button {
545
  margin: 2px;
546
  }
@@ -583,27 +588,32 @@ table.aiovg-table .aiovg-handle {
583
  }
584
 
585
  .branch-5-8 .aiovg-widget-form .aiovg-widget-field,
586
- .branch-5-9 .aiovg-widget-form .aiovg-widget-field {
 
587
  margin: 7px 0;
588
  }
589
 
590
  .branch-5-8 .aiovg-widget-form .aiovg-checklist,
591
- .branch-5-9 .aiovg-widget-form .aiovg-checklist {
 
592
  padding: 7px;
593
  box-sizing: border-box;
594
  }
595
 
596
- .branch-5-9 .aiovg-widget-form .aiovg-checklist li {
 
597
  margin: 0;
598
  }
599
 
600
  .branch-5-8 .aiovg-widget-form .aiovg-checklist li::marker,
601
- .branch-5-9 .aiovg-widget-form .aiovg-checklist li::marker {
 
602
  content: "";
603
  }
604
 
605
  .branch-5-8 .aiovg-widget-form .aiovg-checklist label,
606
- .branch-5-9 .aiovg-widget-form .aiovg-checklist label {
 
607
  margin: 0;
608
  }
609
 
@@ -634,6 +644,7 @@ table.aiovg-table .aiovg-handle {
634
  .aiovg-widget-form-videos .aiovg-widget-field-exclude,
635
  .aiovg-widget-form-videos .aiovg-widget-field-ratio,
636
  .aiovg-widget-form-videos .aiovg-widget-field-show_count,
 
637
  .aiovg-widget-form-videos .aiovg-widget-field-excerpt_length,
638
  .aiovg-widget-form-videos .aiovg-widget-field-show_pagination {
639
  display: none;
359
  .aiovg-shortcode-control-ratio,
360
  .aiovg-shortcode-control-include,
361
  .aiovg-shortcode-control-exclude,
362
+ .aiovg-shortcode-control-title_length,
363
  .aiovg-shortcode-control-excerpt_length,
364
  .aiovg-shortcode-control-show_more,
365
  .aiovg-shortcode-control-more_label,
542
  margin-top: 2em;
543
  }
544
 
545
+ .aiovg-settings .form-table {
546
+ margin-bottom: 50px;
547
+ }
548
+
549
  .aiovg-settings .form-table .button {
550
  margin: 2px;
551
  }
588
  }
589
 
590
  .branch-5-8 .aiovg-widget-form .aiovg-widget-field,
591
+ .branch-5-9 .aiovg-widget-form .aiovg-widget-field,
592
+ .branch-6 .aiovg-widget-form .aiovg-widget-field {
593
  margin: 7px 0;
594
  }
595
 
596
  .branch-5-8 .aiovg-widget-form .aiovg-checklist,
597
+ .branch-5-9 .aiovg-widget-form .aiovg-checklist,
598
+ .branch-6 .aiovg-widget-form .aiovg-checklist {
599
  padding: 7px;
600
  box-sizing: border-box;
601
  }
602
 
603
+ .branch-5-9 .aiovg-widget-form .aiovg-checklist li,
604
+ .branch-6 .aiovg-widget-form .aiovg-checklist li {
605
  margin: 0;
606
  }
607
 
608
  .branch-5-8 .aiovg-widget-form .aiovg-checklist li::marker,
609
+ .branch-5-9 .aiovg-widget-form .aiovg-checklist li::marker,
610
+ .branch-6 .aiovg-widget-form .aiovg-checklist li::marker {
611
  content: "";
612
  }
613
 
614
  .branch-5-8 .aiovg-widget-form .aiovg-checklist label,
615
+ .branch-5-9 .aiovg-widget-form .aiovg-checklist label,
616
+ .branch-6 .aiovg-widget-form .aiovg-checklist label {
617
  margin: 0;
618
  }
619
 
644
  .aiovg-widget-form-videos .aiovg-widget-field-exclude,
645
  .aiovg-widget-form-videos .aiovg-widget-field-ratio,
646
  .aiovg-widget-form-videos .aiovg-widget-field-show_count,
647
+ .aiovg-widget-form-videos .aiovg-widget-field-title_length,
648
  .aiovg-widget-form-videos .aiovg-widget-field-excerpt_length,
649
  .aiovg-widget-form-videos .aiovg-widget-field-show_pagination {
650
  display: none;
admin/assets/js/admin.js CHANGED
@@ -332,7 +332,7 @@
332
 
333
  // Videos: Copy Shortcode
334
  $( '.aiovg-copy-shortcode' ).on( 'click', function() {
335
- var text = '[aiovg_videos id="' + parseInt( $( this ).data( 'id' ) ) + '"]';
336
 
337
  aiovg_copy_to_clipboard( text );
338
  alert( aiovg_admin.i18n.copied + "\n" + text );
332
 
333
  // Videos: Copy Shortcode
334
  $( '.aiovg-copy-shortcode' ).on( 'click', function() {
335
+ var text = '[aiovg_video id="' + parseInt( $( this ).data( 'id' ) ) + '"]';
336
 
337
  aiovg_copy_to_clipboard( text );
338
  alert( aiovg_admin.i18n.copied + "\n" + text );
admin/partials/settings.php CHANGED
@@ -73,7 +73,7 @@ foreach ( $this->sections as $section ) {
73
  '<a href="%s" class="%s">%s</a>',
74
  esc_url( $url ),
75
  ( $section['id'] == $active_section ? 'current' : '' ),
76
- esc_html( $section['title'] )
77
  );
78
  }
79
  }
73
  '<a href="%s" class="%s">%s</a>',
74
  esc_url( $url ),
75
  ( $section['id'] == $active_section ? 'current' : '' ),
76
+ ( isset( $section['menu_title'] ) ? esc_html( $section['menu_title'] ) : esc_html( $section['title'] ) )
77
  );
78
  }
79
  }
admin/partials/video-sources.php CHANGED
@@ -304,6 +304,21 @@
304
  <input type="text" name="views" id="aiovg-views" class="text" value="<?php echo esc_attr( $views ); ?>" />
305
  </div>
306
  </td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
307
  </tr>
308
  </tbody>
309
  </table>
304
  <input type="text" name="views" id="aiovg-views" class="text" value="<?php echo esc_attr( $views ); ?>" />
305
  </div>
306
  </td>
307
+ </tr>
308
+ <tr id="aiovg-field-download" class="aiovg-toggle-fields aiovg-type-default">
309
+ <td class="label aiovg-hidden-xs">
310
+ <label><?php esc_html_e( 'Download', 'all-in-one-video-gallery' ); ?></label>
311
+ </td>
312
+ <td>
313
+ <p class="aiovg-hidden-sm aiovg-hidden-md aiovg-hidden-lg">
314
+ <strong><?php esc_html_e( 'Download', 'all-in-one-video-gallery' ); ?></strong>
315
+ </p>
316
+
317
+ <label>
318
+ <input type="checkbox" name="download" value="1" <?php checked( $download, 1 ); ?> />
319
+ <?php esc_html_e( 'Check this option to allow users to download this video.', 'all-in-one-video-gallery' ); ?>
320
+ </label>
321
+ </td>
322
  </tr>
323
  </tbody>
324
  </table>
admin/settings.php CHANGED
@@ -96,8 +96,8 @@ class AIOVG_Admin_Settings {
96
  public function get_tabs() {
97
  $tabs = array(
98
  'general' => __( 'General', 'all-in-one-video-gallery' ),
99
- 'display' => __( 'Display', 'all-in-one-video-gallery' ),
100
  'seo' => __( 'SEO', 'all-in-one-video-gallery' ),
 
101
  'advanced' => __( 'Advanced', 'all-in-one-video-gallery' )
102
  );
103
 
@@ -118,62 +118,63 @@ class AIOVG_Admin_Settings {
118
  'description' => '',
119
  'tab' => 'general',
120
  'page' => 'aiovg_player_settings'
121
- ),
 
 
 
 
 
 
 
122
  array(
123
  'id' => 'aiovg_videos_settings',
 
124
  'title' => __( 'Videos Layout', 'all-in-one-video-gallery' ),
125
  'description' => '',
126
- 'tab' => 'display',
127
  'page' => 'aiovg_videos_settings'
128
  ),
129
  array(
130
  'id' => 'aiovg_categories_settings',
131
  'title' => __( 'Categories Layout', 'all-in-one-video-gallery' ),
132
  'description' => '',
133
- 'tab' => 'display',
134
- 'page' => 'aiovg_categories_settings'
 
 
 
 
 
 
 
135
  ),
136
  array(
137
  'id' => 'aiovg_video_settings',
138
  'title' => __( 'Single Video Page', 'all-in-one-video-gallery' ),
139
  'description' => '',
140
- 'tab' => 'display',
141
  'page' => 'aiovg_video_settings'
142
  ),
143
  array(
144
  'id' => 'aiovg_related_videos_settings',
145
  'title' => __( 'Related Videos', 'all-in-one-video-gallery' ),
146
  'description' => '',
147
- 'tab' => 'display',
148
  'page' => 'aiovg_video_settings'
149
- ),
150
- array(
151
- 'id' => 'aiovg_image_settings',
152
- 'title' => __( 'Image Settings', 'all-in-one-video-gallery' ),
153
- 'description' => '',
154
- 'tab' => 'display',
155
- 'page' => 'aiovg_image_settings'
156
- ),
157
- array(
158
- 'id' => 'aiovg_pagination_settings',
159
- 'title' => __( 'Pagination Settings', 'all-in-one-video-gallery' ),
160
- 'description' => '',
161
- 'tab' => 'display',
162
- 'page' => 'aiovg_pagination_settings'
163
- ),
164
- array(
165
- 'id' => 'aiovg_socialshare_settings',
166
- 'title' => __( 'Social Sharing', 'all-in-one-video-gallery' ),
167
- 'description' => '',
168
- 'tab' => 'seo',
169
- 'page' => 'aiovg_socialshare_settings'
170
- ),
171
  array(
172
  'id' => 'aiovg_permalink_settings',
173
  'title' => __( 'Permalink Slugs', 'all-in-one-video-gallery' ),
174
  'description' => __( 'NOTE: Just make sure that, after updating the fields in this section, you flush the rewrite rules by visiting "Settings > Permalinks". Otherwise you\'ll still see the old links.', 'all-in-one-video-gallery' ),
175
  'tab' => 'seo',
176
  'page' => 'aiovg_permalink_settings'
 
 
 
 
 
 
 
177
  ),
178
  array(
179
  'id' => 'aiovg_general_settings',
@@ -188,14 +189,7 @@ class AIOVG_Admin_Settings {
188
  'description' => '',
189
  'tab' => 'advanced',
190
  'page' => 'aiovg_page_settings'
191
- ),
192
- array(
193
- 'id' => 'aiovg_privacy_settings',
194
- 'title' => __( 'Privacy Settings', 'all-in-one-video-gallery' ),
195
- 'description' => __( 'These options will help with privacy restrictions such as GDPR and the EU Cookie Law.', 'all-in-one-video-gallery' ),
196
- 'tab' => 'advanced',
197
- 'page' => 'aiovg_privacy_settings'
198
- )
199
  );
200
 
201
  if ( false !== get_option( 'aiovg_brand_settings' ) ) {
@@ -242,7 +236,7 @@ class AIOVG_Admin_Settings {
242
  ),
243
  array(
244
  'name' => 'ratio',
245
- 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
246
  'description' => sprintf(
247
  '%s<br /><br /><strong>%s:</strong><br />"56.25" - %s<br />"62.5" - %s<br />"75" - %s<br />"67" - %s<br />"100" - %s<br />"41.7" - %s',
248
  __( "In percentage. 1 to 100. Calculate player's height using the ratio value entered.", 'all-in-one-video-gallery' ),
@@ -309,8 +303,11 @@ class AIOVG_Admin_Settings {
309
  'tracks' => __( 'Subtitles', 'all-in-one-video-gallery' ),
310
  'quality' => __( 'Quality Selector', 'all-in-one-video-gallery' ),
311
  'speed' => __( 'Speed Control', 'all-in-one-video-gallery' ),
312
- 'volume' => __( 'Volume', 'all-in-one-video-gallery' ),
313
- 'fullscreen' => __( 'Fullscreen', 'all-in-one-video-gallery' )
 
 
 
314
  ),
315
  'sanitize_callback' => 'aiovg_sanitize_array'
316
  ),
@@ -334,7 +331,39 @@ class AIOVG_Admin_Settings {
334
  ),
335
  'sanitize_callback' => 'aiovg_sanitize_array'
336
  )
337
- ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
338
  'aiovg_videos_settings' => array(
339
  array(
340
  'name' => 'template',
@@ -343,7 +372,21 @@ class AIOVG_Admin_Settings {
343
  'type' => 'select',
344
  'options' => $video_templates,
345
  'sanitize_callback' => 'sanitize_key'
346
- ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  array(
348
  'name' => 'columns',
349
  'label' => __( 'Columns', 'all-in-one-video-gallery' ),
@@ -413,6 +456,13 @@ class AIOVG_Admin_Settings {
413
  'excerpt' => __( 'Video Excerpt (Short Description)', 'all-in-one-video-gallery' )
414
  ),
415
  'sanitize_callback' => 'aiovg_sanitize_array'
 
 
 
 
 
 
 
416
  ),
417
  array(
418
  'name' => 'excerpt_length',
@@ -420,7 +470,7 @@ class AIOVG_Admin_Settings {
420
  'description' => __( 'Number of characters.', 'all-in-one-video-gallery' ),
421
  'type' => 'number',
422
  'sanitize_callback' => 'intval'
423
- ),
424
  ),
425
  'aiovg_categories_settings' => array(
426
  array(
@@ -502,8 +552,24 @@ class AIOVG_Admin_Settings {
502
  'description' => __( 'Check this to hide categories with no videos', 'all-in-one-video-gallery' ),
503
  'type' => 'checkbox',
504
  'sanitize_callback' => 'intval'
 
 
 
 
 
 
 
505
  )
506
- ),
 
 
 
 
 
 
 
 
 
507
  'aiovg_video_settings' => array(
508
  array(
509
  'name' => 'display',
@@ -516,13 +582,14 @@ class AIOVG_Admin_Settings {
516
  'date' => __( 'Date Added', 'all-in-one-video-gallery' ),
517
  'user' => __( 'Author Name', 'all-in-one-video-gallery' ),
518
  'views' => __( 'Views Count', 'all-in-one-video-gallery' ),
519
- 'related' => __( 'Related Videos', 'all-in-one-video-gallery' )
 
520
  ),
521
  'sanitize_callback' => 'aiovg_sanitize_array'
522
  ),
523
  array(
524
  'name' => 'has_comments',
525
- 'label' => __( 'Enable / Disable Comments', 'all-in-one-video-gallery' ),
526
  'description' => '',
527
  'type' => 'radio',
528
  'options' => array(
@@ -586,72 +653,49 @@ class AIOVG_Admin_Settings {
586
  ),
587
  'sanitize_callback' => 'aiovg_sanitize_array'
588
  ),
589
- ),
590
- 'aiovg_image_settings' => array(
591
- array(
592
- 'name' => 'width',
593
- 'label' => __( 'Width', 'all-in-one-video-gallery' ),
594
- 'description' => __( 'Always 100% of its enclosing container/html element.', 'all-in-one-video-gallery' ),
595
- 'type' => 'html',
596
- 'sanitize_callback' => 'aiovg_sanitize_int'
597
- ),
598
  array(
599
- 'name' => 'ratio',
600
- 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
601
- 'description' => __( "In percentage. 1 to 100. Calculate images's height using the ratio value entered.", 'all-in-one-video-gallery' ),
602
  'type' => 'text',
603
- 'sanitize_callback' => 'floatval'
604
- ),
605
- ),
606
- 'aiovg_pagination_settings' => array(
607
  array(
608
- 'name' => 'ajax',
609
- 'label' => __( 'Ajax', 'all-in-one-video-gallery' ),
610
- 'description' => __( 'Check this to enable Pagination with Ajax', 'all-in-one-video-gallery' ),
611
  'type' => 'checkbox',
612
- 'sanitize_callback' => 'intval'
613
- ),
614
- ),
615
- 'aiovg_socialshare_settings' => array(
616
  array(
617
- 'name' => 'services',
618
- 'label' => __( 'Share Buttons', 'all-in-one-video-gallery' ),
619
- 'description' => __( 'Select social share buttons displayed on the single video pages.', 'all-in-one-video-gallery' ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
620
  'type' => 'multicheck',
621
  'options' => array(
622
- 'facebook' => __( 'Facebook', 'all-in-one-video-gallery' ),
623
- 'twitter' => __( 'Twitter', 'all-in-one-video-gallery' ),
624
- 'linkedin' => __( 'Linkedin', 'all-in-one-video-gallery' ),
625
- 'pinterest' => __( 'Pinterest', 'all-in-one-video-gallery' ),
626
- 'tumblr' => __( 'Tumblr', 'all-in-one-video-gallery' ),
627
- 'whatsapp' => __( 'WhatsApp', 'all-in-one-video-gallery' )
628
  ),
629
  'sanitize_callback' => 'aiovg_sanitize_array'
630
  ),
631
- array(
632
- 'name' => 'open_graph_tags',
633
- 'label' => __( 'Open Graph Tags', 'all-in-one-video-gallery' ),
634
- 'description' => __( 'Check this option to enable Facebook Open Graph meta tags and Twitter cards on the single video pages', 'all-in-one-video-gallery' ),
635
- 'type' => 'checkbox',
636
- 'sanitize_callback' => 'intval'
637
- ),
638
- array(
639
- 'name' => 'twitter_username',
640
- 'label' => __( 'Twitter Username', 'all-in-one-video-gallery' ),
641
- 'description' => __( 'The Twitter @username the player card should be attributed to. Required for sharing videos in Twitter.', 'all-in-one-video-gallery' ),
642
- 'placeholder' => '@username',
643
- 'type' => 'text',
644
- 'sanitize_callback' => 'sanitize_text_field'
645
- )
646
- ),
647
- 'aiovg_permalink_settings' => array(
648
- array(
649
- 'name' => 'video',
650
- 'label' => __( 'Video Detail Page', 'all-in-one-video-gallery' ),
651
- 'description' => __( 'Replaces the SLUG value used by custom post type "aiovg_videos".', 'all-in-one-video-gallery' ),
652
- 'type' => 'text',
653
- 'sanitize_callback' => 'sanitize_text_field'
654
- )
655
  ),
656
  'aiovg_general_settings' => array(
657
  array(
@@ -712,41 +756,7 @@ class AIOVG_Admin_Settings {
712
  'type' => 'pages',
713
  'sanitize_callback' => 'sanitize_key'
714
  )
715
- ),
716
- 'aiovg_privacy_settings' => array(
717
- array(
718
- 'name' => 'show_consent',
719
- 'label' => __( 'GDPR - Show Consent', 'all-in-one-video-gallery' ),
720
- 'description' => __( 'Ask for consent before loading YouTube / Vimeo content.', 'all-in-one-video-gallery' ),
721
- 'type' => 'checkbox',
722
- 'sanitize_callback' => 'intval'
723
- ),
724
- array(
725
- 'name' => 'consent_message',
726
- 'label' => __( 'GDPR - Consent Message', 'all-in-one-video-gallery' ),
727
- 'description' => '',
728
- 'type' => 'wysiwyg',
729
- 'sanitize_callback' => 'wp_kses_post'
730
- ),
731
- array(
732
- 'name' => 'consent_button_label',
733
- 'label' => __( 'GDPR - Consent Button Label', 'all-in-one-video-gallery' ),
734
- 'description' => '',
735
- 'type' => 'text',
736
- 'sanitize_callback' => 'sanitize_text_field'
737
- ),
738
- array(
739
- 'name' => 'disable_cookies',
740
- 'label' => __( 'Disable Cookies', 'all-in-one-video-gallery' ),
741
- 'description' => '',
742
- 'type' => 'multicheck',
743
- 'options' => array(
744
- 'aiovg_videos_views' => __( '<strong>aiovg_videos_views</strong> - check this option for Total Views, but uncheck for the Unique Views. eg. 1 Person can watch a video 10 times and that will go under Total Views, but they will be stored once under Unique Views.', 'all-in-one-video-gallery' ),
745
- 'aiovg_rand_seed' => __( '<strong>aiovg_rand_seed</strong> - uncheck this option if you show videos in a Random order with the Pagination on any of your pages.', 'all-in-one-video-gallery' )
746
- ),
747
- 'sanitize_callback' => 'aiovg_sanitize_array'
748
- ),
749
- )
750
  );
751
 
752
  if ( false !== get_option( 'aiovg_brand_settings' ) ) {
96
  public function get_tabs() {
97
  $tabs = array(
98
  'general' => __( 'General', 'all-in-one-video-gallery' ),
 
99
  'seo' => __( 'SEO', 'all-in-one-video-gallery' ),
100
+ 'privacy' => __( 'Privacy', 'all-in-one-video-gallery' ),
101
  'advanced' => __( 'Advanced', 'all-in-one-video-gallery' )
102
  );
103
 
118
  'description' => '',
119
  'tab' => 'general',
120
  'page' => 'aiovg_player_settings'
121
+ ),
122
+ array(
123
+ 'id' => 'aiovg_socialshare_settings',
124
+ 'title' => __( 'Share Buttons', 'all-in-one-video-gallery' ),
125
+ 'description' => '',
126
+ 'tab' => 'general',
127
+ 'page' => 'aiovg_player_settings'
128
+ ),
129
  array(
130
  'id' => 'aiovg_videos_settings',
131
+ 'menu_title' => __( 'Gallery Settings', 'all-in-one-video-gallery' ),
132
  'title' => __( 'Videos Layout', 'all-in-one-video-gallery' ),
133
  'description' => '',
134
+ 'tab' => 'general',
135
  'page' => 'aiovg_videos_settings'
136
  ),
137
  array(
138
  'id' => 'aiovg_categories_settings',
139
  'title' => __( 'Categories Layout', 'all-in-one-video-gallery' ),
140
  'description' => '',
141
+ 'tab' => 'general',
142
+ 'page' => 'aiovg_videos_settings'
143
+ ),
144
+ array(
145
+ 'id' => 'aiovg_pagination_settings',
146
+ 'title' => __( 'Pagination Settings', 'all-in-one-video-gallery' ),
147
+ 'description' => '',
148
+ 'tab' => 'general',
149
+ 'page' => 'aiovg_videos_settings'
150
  ),
151
  array(
152
  'id' => 'aiovg_video_settings',
153
  'title' => __( 'Single Video Page', 'all-in-one-video-gallery' ),
154
  'description' => '',
155
+ 'tab' => 'general',
156
  'page' => 'aiovg_video_settings'
157
  ),
158
  array(
159
  'id' => 'aiovg_related_videos_settings',
160
  'title' => __( 'Related Videos', 'all-in-one-video-gallery' ),
161
  'description' => '',
162
+ 'tab' => 'general',
163
  'page' => 'aiovg_video_settings'
164
+ ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  array(
166
  'id' => 'aiovg_permalink_settings',
167
  'title' => __( 'Permalink Slugs', 'all-in-one-video-gallery' ),
168
  'description' => __( 'NOTE: Just make sure that, after updating the fields in this section, you flush the rewrite rules by visiting "Settings > Permalinks". Otherwise you\'ll still see the old links.', 'all-in-one-video-gallery' ),
169
  'tab' => 'seo',
170
  'page' => 'aiovg_permalink_settings'
171
+ ),
172
+ array(
173
+ 'id' => 'aiovg_privacy_settings',
174
+ 'title' => __( 'Privacy Settings', 'all-in-one-video-gallery' ),
175
+ 'description' => __( 'These options will help with privacy restrictions such as GDPR and the EU Cookie Law.', 'all-in-one-video-gallery' ),
176
+ 'tab' => 'privacy',
177
+ 'page' => 'aiovg_privacy_settings'
178
  ),
179
  array(
180
  'id' => 'aiovg_general_settings',
189
  'description' => '',
190
  'tab' => 'advanced',
191
  'page' => 'aiovg_page_settings'
192
+ )
 
 
 
 
 
 
 
193
  );
194
 
195
  if ( false !== get_option( 'aiovg_brand_settings' ) ) {
236
  ),
237
  array(
238
  'name' => 'ratio',
239
+ 'label' => __( 'Height (Ratio)', 'all-in-one-video-gallery' ),
240
  'description' => sprintf(
241
  '%s<br /><br /><strong>%s:</strong><br />"56.25" - %s<br />"62.5" - %s<br />"75" - %s<br />"67" - %s<br />"100" - %s<br />"41.7" - %s',
242
  __( "In percentage. 1 to 100. Calculate player's height using the ratio value entered.", 'all-in-one-video-gallery' ),
303
  'tracks' => __( 'Subtitles', 'all-in-one-video-gallery' ),
304
  'quality' => __( 'Quality Selector', 'all-in-one-video-gallery' ),
305
  'speed' => __( 'Speed Control', 'all-in-one-video-gallery' ),
306
+ 'volume' => __( 'Volume Button', 'all-in-one-video-gallery' ),
307
+ 'fullscreen' => __( 'Fullscreen Button', 'all-in-one-video-gallery' ),
308
+ 'share' => __( 'Share Buttons', 'all-in-one-video-gallery' ),
309
+ 'embed' => __( 'Embed Button', 'all-in-one-video-gallery' ),
310
+ 'download' => __( 'Download Button', 'all-in-one-video-gallery' )
311
  ),
312
  'sanitize_callback' => 'aiovg_sanitize_array'
313
  ),
331
  ),
332
  'sanitize_callback' => 'aiovg_sanitize_array'
333
  )
334
+ ),
335
+ 'aiovg_socialshare_settings' => array(
336
+ array(
337
+ 'name' => 'services',
338
+ 'label' => __( 'Enable / Disable', 'all-in-one-video-gallery' ),
339
+ 'description' => '',
340
+ 'type' => 'multicheck',
341
+ 'options' => array(
342
+ 'facebook' => __( 'Facebook', 'all-in-one-video-gallery' ),
343
+ 'twitter' => __( 'Twitter', 'all-in-one-video-gallery' ),
344
+ 'linkedin' => __( 'Linkedin', 'all-in-one-video-gallery' ),
345
+ 'pinterest' => __( 'Pinterest', 'all-in-one-video-gallery' ),
346
+ 'tumblr' => __( 'Tumblr', 'all-in-one-video-gallery' ),
347
+ 'whatsapp' => __( 'WhatsApp', 'all-in-one-video-gallery' )
348
+ ),
349
+ 'sanitize_callback' => 'aiovg_sanitize_array'
350
+ ),
351
+ array(
352
+ 'name' => 'open_graph_tags',
353
+ 'label' => __( 'Open Graph Tags', 'all-in-one-video-gallery' ),
354
+ 'description' => __( 'Check this option to enable Facebook Open Graph meta tags and Twitter cards on the single video pages', 'all-in-one-video-gallery' ),
355
+ 'type' => 'checkbox',
356
+ 'sanitize_callback' => 'intval'
357
+ ),
358
+ array(
359
+ 'name' => 'twitter_username',
360
+ 'label' => __( 'Twitter Username', 'all-in-one-video-gallery' ),
361
+ 'description' => __( 'The Twitter @username the player card should be attributed to. Required for sharing videos in Twitter.', 'all-in-one-video-gallery' ),
362
+ 'placeholder' => '@username',
363
+ 'type' => 'text',
364
+ 'sanitize_callback' => 'sanitize_text_field'
365
+ )
366
+ ),
367
  'aiovg_videos_settings' => array(
368
  array(
369
  'name' => 'template',
372
  'type' => 'select',
373
  'options' => $video_templates,
374
  'sanitize_callback' => 'sanitize_key'
375
+ ),
376
+ array(
377
+ 'name' => 'width',
378
+ 'label' => __( 'Image Width', 'all-in-one-video-gallery' ),
379
+ 'description' => __( 'Always 100% of its enclosing container/html element.', 'all-in-one-video-gallery' ),
380
+ 'type' => 'html',
381
+ 'sanitize_callback' => 'aiovg_sanitize_int'
382
+ ),
383
+ array(
384
+ 'name' => 'ratio',
385
+ 'label' => __( 'Image Height (Ratio)', 'all-in-one-video-gallery' ),
386
+ 'description' => __( "In percentage. 1 to 100. Calculate images's height using the ratio value entered.", 'all-in-one-video-gallery' ),
387
+ 'type' => 'text',
388
+ 'sanitize_callback' => 'floatval'
389
+ ),
390
  array(
391
  'name' => 'columns',
392
  'label' => __( 'Columns', 'all-in-one-video-gallery' ),
456
  'excerpt' => __( 'Video Excerpt (Short Description)', 'all-in-one-video-gallery' )
457
  ),
458
  'sanitize_callback' => 'aiovg_sanitize_array'
459
+ ),
460
+ array(
461
+ 'name' => 'title_length',
462
+ 'label' => __( 'Title Length', 'all-in-one-video-gallery' ),
463
+ 'description' => __( 'Number of characters.', 'all-in-one-video-gallery' ),
464
+ 'type' => 'number',
465
+ 'sanitize_callback' => 'intval'
466
  ),
467
  array(
468
  'name' => 'excerpt_length',
470
  'description' => __( 'Number of characters.', 'all-in-one-video-gallery' ),
471
  'type' => 'number',
472
  'sanitize_callback' => 'intval'
473
+ )
474
  ),
475
  'aiovg_categories_settings' => array(
476
  array(
552
  'description' => __( 'Check this to hide categories with no videos', 'all-in-one-video-gallery' ),
553
  'type' => 'checkbox',
554
  'sanitize_callback' => 'intval'
555
+ ),
556
+ array(
557
+ 'name' => 'back_button',
558
+ 'label' => __( 'Link to Parent Category', 'all-in-one-video-gallery' ),
559
+ 'description' => __( 'Add a link to the parent category page on the single category pages. When there is no parent, links to the "All Categories" page.', 'all-in-one-video-gallery' ),
560
+ 'type' => 'checkbox',
561
+ 'sanitize_callback' => 'intval'
562
  )
563
+ ),
564
+ 'aiovg_pagination_settings' => array(
565
+ array(
566
+ 'name' => 'ajax',
567
+ 'label' => __( 'Ajax', 'all-in-one-video-gallery' ),
568
+ 'description' => __( 'Check this to enable Pagination with Ajax', 'all-in-one-video-gallery' ),
569
+ 'type' => 'checkbox',
570
+ 'sanitize_callback' => 'intval'
571
+ ),
572
+ ),
573
  'aiovg_video_settings' => array(
574
  array(
575
  'name' => 'display',
582
  'date' => __( 'Date Added', 'all-in-one-video-gallery' ),
583
  'user' => __( 'Author Name', 'all-in-one-video-gallery' ),
584
  'views' => __( 'Views Count', 'all-in-one-video-gallery' ),
585
+ 'related' => __( 'Related Videos', 'all-in-one-video-gallery' ),
586
+ 'share' => __( 'Share Buttons', 'all-in-one-video-gallery' )
587
  ),
588
  'sanitize_callback' => 'aiovg_sanitize_array'
589
  ),
590
  array(
591
  'name' => 'has_comments',
592
+ 'label' => __( 'Comments', 'all-in-one-video-gallery' ),
593
  'description' => '',
594
  'type' => 'radio',
595
  'options' => array(
653
  ),
654
  'sanitize_callback' => 'aiovg_sanitize_array'
655
  ),
656
+ ),
657
+ 'aiovg_permalink_settings' => array(
 
 
 
 
 
 
 
658
  array(
659
+ 'name' => 'video',
660
+ 'label' => __( 'Video Detail Page', 'all-in-one-video-gallery' ),
661
+ 'description' => __( 'Replaces the SLUG value used by custom post type "aiovg_videos".', 'all-in-one-video-gallery' ),
662
  'type' => 'text',
663
+ 'sanitize_callback' => 'sanitize_text_field'
664
+ )
665
+ ),
666
+ 'aiovg_privacy_settings' => array(
667
  array(
668
+ 'name' => 'show_consent',
669
+ 'label' => __( 'GDPR - Show Consent', 'all-in-one-video-gallery' ),
670
+ 'description' => __( 'Ask for consent before loading YouTube / Vimeo content.', 'all-in-one-video-gallery' ),
671
  'type' => 'checkbox',
672
+ 'sanitize_callback' => 'intval'
673
+ ),
 
 
674
  array(
675
+ 'name' => 'consent_message',
676
+ 'label' => __( 'GDPR - Consent Message', 'all-in-one-video-gallery' ),
677
+ 'description' => '',
678
+ 'type' => 'wysiwyg',
679
+ 'sanitize_callback' => 'wp_kses_post'
680
+ ),
681
+ array(
682
+ 'name' => 'consent_button_label',
683
+ 'label' => __( 'GDPR - Consent Button Label', 'all-in-one-video-gallery' ),
684
+ 'description' => '',
685
+ 'type' => 'text',
686
+ 'sanitize_callback' => 'sanitize_text_field'
687
+ ),
688
+ array(
689
+ 'name' => 'disable_cookies',
690
+ 'label' => __( 'Disable Cookies', 'all-in-one-video-gallery' ),
691
+ 'description' => '',
692
  'type' => 'multicheck',
693
  'options' => array(
694
+ 'aiovg_videos_views' => __( '<strong>aiovg_videos_views</strong> - check this option for Total Views, but uncheck for the Unique Views. eg. 1 Person can watch a video 10 times and that will go under Total Views, but they will be stored once under Unique Views.', 'all-in-one-video-gallery' ),
695
+ 'aiovg_rand_seed' => __( '<strong>aiovg_rand_seed</strong> - uncheck this option if you show videos in a Random order with the Pagination on any of your pages.', 'all-in-one-video-gallery' )
 
 
 
 
696
  ),
697
  'sanitize_callback' => 'aiovg_sanitize_array'
698
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
699
  ),
700
  'aiovg_general_settings' => array(
701
  array(
756
  'type' => 'pages',
757
  'sanitize_callback' => 'sanitize_key'
758
  )
759
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
760
  );
761
 
762
  if ( false !== get_option( 'aiovg_brand_settings' ) ) {
admin/videos.php CHANGED
@@ -207,6 +207,7 @@ class AIOVG_Admin_Videos {
207
  $image = isset( $post_meta['image'] ) ? $post_meta['image'][0] : '';
208
  $duration = isset( $post_meta['duration'] ) ? $post_meta['duration'][0] : '';
209
  $views = isset( $post_meta['views'] ) ? $post_meta['views'][0] : '';
 
210
 
211
  require_once AIOVG_PLUGIN_DIR . 'admin/partials/video-sources.php';
212
  }
@@ -351,7 +352,10 @@ class AIOVG_Admin_Videos {
351
  update_post_meta( $post_id, 'duration', $duration );
352
 
353
  $views = isset( $_POST['views'] ) ? (int) $_POST['views'] : 0;
354
- update_post_meta( $post_id, 'views', $views );
 
 
 
355
  }
356
  }
357
 
207
  $image = isset( $post_meta['image'] ) ? $post_meta['image'][0] : '';
208
  $duration = isset( $post_meta['duration'] ) ? $post_meta['duration'][0] : '';
209
  $views = isset( $post_meta['views'] ) ? $post_meta['views'][0] : '';
210
+ $download = isset( $post_meta['download'] ) ? $post_meta['download'][0] : 1;
211
 
212
  require_once AIOVG_PLUGIN_DIR . 'admin/partials/video-sources.php';
213
  }
352
  update_post_meta( $post_id, 'duration', $duration );
353
 
354
  $views = isset( $_POST['views'] ) ? (int) $_POST['views'] : 0;
355
+ update_post_meta( $post_id, 'views', $views );
356
+
357
+ $download = isset( $_POST['download'] ) ? (int) $_POST['download'] : 0;
358
+ update_post_meta( $post_id, 'download', $download );
359
  }
360
  }
361
 
all-in-one-video-gallery.php CHANGED
@@ -11,7 +11,7 @@
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: 2.5.7
15
  * Author: Team Plugins360
16
  * Author URI: https://plugins360.com
17
  * License: GPL-2.0+
@@ -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', '2.5.7' );
80
  }
81
  // The unique identifier of the plugin
82
  if ( !defined( 'AIOVG_PLUGIN_SLUG' ) ) {
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: 2.5.8
15
  * Author: Team Plugins360
16
  * Author URI: https://plugins360.com
17
  * License: GPL-2.0+
76
 
77
  // The current version of the plugin
78
  if ( !defined( 'AIOVG_PLUGIN_VERSION' ) ) {
79
+ define( 'AIOVG_PLUGIN_VERSION', '2.5.8' );
80
  }
81
  // The unique identifier of the plugin
82
  if ( !defined( 'AIOVG_PLUGIN_SLUG' ) ) {
blocks/blocks.php CHANGED
@@ -55,7 +55,7 @@ class AIOVG_Blocks {
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
  }
@@ -107,7 +107,7 @@ class AIOVG_Blocks {
107
  'general_settings' => __( 'General', 'all-in-one-video-gallery' ),
108
  'width' => __( 'Width', 'all-in-one-video-gallery' ),
109
  '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' ),
110
- 'ratio' => __( 'Ratio', 'all-in-one-video-gallery' ),
111
  'ratio_help' => __( "In percentage. 1 to 100. Calculate player's height using the ratio value entered.", 'all-in-one-video-gallery' ),
112
  'autoplay' => __( 'Autoplay', 'all-in-one-video-gallery' ),
113
  'loop' => __( 'Loop', 'all-in-one-video-gallery' ),
@@ -123,8 +123,11 @@ class AIOVG_Blocks {
123
  'duration' => __( 'Duration', 'all-in-one-video-gallery' ),
124
  'quality' => __( 'Quality Selector', 'all-in-one-video-gallery' ),
125
  'speed' => __( 'Speed Control', 'all-in-one-video-gallery' ),
126
- 'volume' => __( 'Volume', 'all-in-one-video-gallery' ),
127
- 'fullscreen' => __( 'Fullscreen', 'all-in-one-video-gallery' )
 
 
 
128
  ),
129
  'categories' => array(
130
  'template' => $categories_settings['template'],
@@ -161,7 +164,10 @@ class AIOVG_Blocks {
161
  'quality' => isset( $player_settings['controls']['quality'] ),
162
  'speed' => isset( $player_settings['controls']['speed'] ),
163
  'volume' => isset( $player_settings['controls']['volume'] ),
164
- 'fullscreen' => isset( $player_settings['controls']['fullscreen'] )
 
 
 
165
  )
166
  );
167
 
@@ -246,7 +252,7 @@ class AIOVG_Blocks {
246
 
247
  foreach ( $fields['videos']['sections'] as $key => $section ) {
248
  foreach ( $section['fields'] as $field ) {
249
- if ( in_array( $field['name'], array( 'title', 'exclude', 'ratio', 'excerpt_length', 'show_more', 'more_label', 'more_link' ) ) ) {
250
  continue;
251
  }
252
 
@@ -345,6 +351,15 @@ class AIOVG_Blocks {
345
  ),
346
  'fullscreen' => array(
347
  'type' => 'boolean'
 
 
 
 
 
 
 
 
 
348
  )
349
  );
350
 
@@ -459,7 +474,7 @@ class AIOVG_Blocks {
459
  } elseif ( 'mpd' == $filetype['ext'] ) {
460
  $atts['dash'] = $atts['src'];
461
  } else {
462
- return;
463
  }
464
  }
465
 
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', 'title_length', 'excerpt_length', 'show_more', 'more_label', 'more_link' ) ) ) {
59
  unset( $videos[ $key ]['fields'][ $_key ] );
60
  continue;
61
  }
107
  'general_settings' => __( 'General', 'all-in-one-video-gallery' ),
108
  'width' => __( 'Width', 'all-in-one-video-gallery' ),
109
  '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' ),
110
+ 'ratio' => __( 'Height (Ratio)', 'all-in-one-video-gallery' ),
111
  'ratio_help' => __( "In percentage. 1 to 100. Calculate player's height using the ratio value entered.", 'all-in-one-video-gallery' ),
112
  'autoplay' => __( 'Autoplay', 'all-in-one-video-gallery' ),
113
  'loop' => __( 'Loop', 'all-in-one-video-gallery' ),
123
  'duration' => __( 'Duration', 'all-in-one-video-gallery' ),
124
  'quality' => __( 'Quality Selector', 'all-in-one-video-gallery' ),
125
  'speed' => __( 'Speed Control', 'all-in-one-video-gallery' ),
126
+ 'volume' => __( 'Volume Button', 'all-in-one-video-gallery' ),
127
+ 'fullscreen' => __( 'Fullscreen Button', 'all-in-one-video-gallery' ),
128
+ 'share' => __( 'Share Buttons', 'all-in-one-video-gallery' ),
129
+ 'embed' => __( 'Embed Button', 'all-in-one-video-gallery' ),
130
+ 'download' => __( 'Download Button', 'all-in-one-video-gallery' )
131
  ),
132
  'categories' => array(
133
  'template' => $categories_settings['template'],
164
  'quality' => isset( $player_settings['controls']['quality'] ),
165
  'speed' => isset( $player_settings['controls']['speed'] ),
166
  'volume' => isset( $player_settings['controls']['volume'] ),
167
+ 'fullscreen' => isset( $player_settings['controls']['fullscreen'] ),
168
+ 'share' => isset( $player_settings['controls']['share'] ),
169
+ 'embed' => isset( $player_settings['controls']['embed'] ),
170
+ 'download' => isset( $player_settings['controls']['download'] )
171
  )
172
  );
173
 
252
 
253
  foreach ( $fields['videos']['sections'] as $key => $section ) {
254
  foreach ( $section['fields'] as $field ) {
255
+ if ( in_array( $field['name'], array( 'title', 'exclude', 'ratio', 'title_length', 'excerpt_length', 'show_more', 'more_label', 'more_link' ) ) ) {
256
  continue;
257
  }
258
 
351
  ),
352
  'fullscreen' => array(
353
  'type' => 'boolean'
354
+ ),
355
+ 'share' => array(
356
+ 'type' => 'boolean'
357
+ ),
358
+ 'embed' => array(
359
+ 'type' => 'boolean'
360
+ ),
361
+ 'download' => array(
362
+ 'type' => 'boolean'
363
  )
364
  );
365
 
474
  } elseif ( 'mpd' == $filetype['ext'] ) {
475
  $atts['dash'] = $atts['src'];
476
  } else {
477
+ return '<p>&nbsp;</p>';
478
  }
479
  }
480
 
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:s&&s in Object(e)?i(e):a(e)}var r=n(11),i=n(49),a=n(50),l="[object Null]",c="[object Undefined]",s=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==s}var r=n(2),i=n(6),a="[object AsyncFunction]",l="[object Function]",c="[object GeneratorFunction]",s="[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,s,u){var p=n&l,f=e.length,b=t.length;if(f!=b&&!(p&&b>f))return!1;var v=u.get(e),g=u.get(t);if(v&&g)return v==t&&g==e;var h=-1,d=!0,y=n&c?new r:void 0;for(u.set(e,t),u.set(t,e);++h<f;){var m=e[h],_=t[h];if(o)var w=p?o(_,m,h,t,e,u):o(m,_,h,e,t,u);if(void 0!==w){if(w)continue;d=!1;break}if(y){if(!i(t,function(e,t){if(!a(y,t)&&(m===e||s(m,e,n,o,u)))return y.push(t)})){d=!1;break}}else if(m!==_&&!s(m,_,n,o,u)){d=!1;break}}return u.delete(e),u.delete(t),d}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,s=c?c.isBuffer:void 0,u=s||r;e.exports=u}).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),__=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:[__("categories"),__("gallery"),__("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},limit:{type:"limit",default:aiovg_blocks.categories.limit},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},show_pagination:{type:"boolean",default:aiovg_blocks.categories.show_pagination}},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),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}}(),u=wp.components,p=u.Disabled,f=u.PanelBody,b=u.RangeControl,v=u.SelectControl,g=u.ServerSideRender,h=u.ToggleControl,d=wp.element,y=d.Component,m=d.Fragment,_=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),s(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.limit,l=t.orderby,c=t.order,s=t.hierarchical,u=t.show_description,d=t.show_count,y=t.hide_empty,w=t.show_pagination,k=this.getCategoriesTree();return wp.element.createElement(m,null,wp.element.createElement(_,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:k,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})}}),"grid"==r&&wp.element.createElement(b,{label:aiovg_blocks.i18n.limit,value:a,min:0,max:500,onChange:function(e){return n({limit:e})}}),wp.element.createElement(v,{label:aiovg_blocks.i18n.order_by,value:l,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:c,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(h,{label:aiovg_blocks.i18n.show_hierarchy,checked:s,onChange:this.toggleAttribute("hierarchical")}),"grid"==r&&wp.element.createElement(h,{label:aiovg_blocks.i18n.show_description,checked:u,onChange:this.toggleAttribute("show_description")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.show_videos_count,checked:d,onChange:this.toggleAttribute("show_count")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.hide_empty_categories,checked:y,onChange:this.toggleAttribute("hide_empty")}),"grid"==r&&wp.element.createElement(h,{label:aiovg_blocks.i18n.show_pagination,checked:w,onChange:this.toggleAttribute("show_pagination")}))),wp.element.createElement(p,null,wp.element.createElement(g,{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),__=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:[__("search"),__("videos"),__("all-in-one-video-gallery")],attributes:{template:{type:"string",default:aiovg_blocks.search.template},keyword:{type:"boolean",default:aiovg_blocks.search.keyword},category:{type:"boolean",default:aiovg_blocks.search.category},tag:{type:"boolean",default:aiovg_blocks.search.tag}},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,s=c.Disabled,u=c.PanelBody,p=c.SelectControl,f=c.ServerSideRender,b=c.ToggleControl,v=wp.element,g=v.Component,h=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.keyword,i=t.category,a=t.tag;return wp.element.createElement(h,null,wp.element.createElement(d,null,wp.element.createElement(u,{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_keywords,checked:r,onChange:this.toggleAttribute("keyword")}),wp.element.createElement(b,{label:aiovg_blocks.i18n.search_by_categories,checked:i,onChange:this.toggleAttribute("category")}),wp.element.createElement(b,{label:aiovg_blocks.i18n.search_by_tags,checked:a,onChange:this.toggleAttribute("tag")}))),wp.element.createElement(s,null,wp.element.createElement(f,{block:"aiovg/search",attributes:t})))}}]),t}(g);t.a=y},function(e,t,n){"use strict";var o=n(29),__=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:[__("video"),__("player"),__("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},quality:{type:"boolean",default:aiovg_blocks.video.quality},speed:{type:"boolean",default:aiovg_blocks.video.speed},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,s=c.BaseControl,u=c.Button,p=c.Disabled,f=c.IconButton,b=c.PanelBody,v=c.ServerSideRender,g=c.TextControl,h=c.ToggleControl,d=c.Toolbar,y=c.withNotices,m=wp.element,_=m.Component,w=m.Fragment,k=m.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,m=n.autoplay,_=n.loop,k=n.muted,j=n.playpause,A=n.current,S=n.progress,P=n.duration,T=n.quality,z=n.speed,R=n.volume,M=n.fullscreen,N=this.state.editing,B=function(){e.setState({editing:!0})},F=function(t){if(!t||!t.url)return o({src:void 0}),void B();o({src:t.url}),e.setState({src:t.url,editing:!1})};return N?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:F,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:B,icon:"edit"}))),wp.element.createElement(O,null,wp.element.createElement(b,{title:aiovg_blocks.i18n.general_settings},wp.element.createElement(g,{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(g,{label:aiovg_blocks.i18n.ratio,help:aiovg_blocks.i18n.ratio_help,value:y,onChange:function(e){return o({ratio:Number(e)})}}),wp.element.createElement(h,{label:aiovg_blocks.i18n.autoplay,checked:m,onChange:this.toggleAttribute("autoplay")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.loop,checked:_,onChange:this.toggleAttribute("loop")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.muted,checked:k,onChange:this.toggleAttribute("muted")}),wp.element.createElement(s,{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(u,{isDefault:!0,onClick:t},l?aiovg_blocks.i18n.replace_image:aiovg_blocks.i18n.select_poster_image)}}),!!l&&wp.element.createElement(u,{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(h,{label:aiovg_blocks.i18n.play_pause,checked:j,onChange:this.toggleAttribute("playpause")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.current_time,checked:A,onChange:this.toggleAttribute("current")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.progressbar,checked:S,onChange:this.toggleAttribute("progress")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.duration,checked:P,onChange:this.toggleAttribute("duration")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.quality,checked:T,onChange:this.toggleAttribute("quality")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.speed,checked:z,onChange:this.toggleAttribute("speed")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.volume,checked:R,onChange:this.toggleAttribute("volume")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.fullscreen,checked:M,onChange:this.toggleAttribute("fullscreen")}))),wp.element.createElement(p,null,wp.element.createElement(v,{block:"aiovg/video",attributes:n})))}}]),t}(_);t.a=y(A)},function(e,t,n){"use strict";var o=n(9),r=n(31),__=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:[__("videos"),__("gallery"),__("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),s=n(32),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}}(),p=wp.components,f=p.Disabled,b=p.PanelBody,v=p.RangeControl,g=p.SelectControl,h=p.TextControl,d=p.TextareaControl,y=p.ToggleControl,m=wp.element,_=m.Component,w=m.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),u(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"header":return this.canShowControl(e.name)&&wp.element.createElement("p",{key:t},e.label);case"categories":var i=this.getCategoriesTree();return this.canShowControl(e.name)&&wp.element.createElement("div",{className:"aiovg-block-multiselect",key:t},wp.element.createElement(g,{multiple:!0,label:e.label,help:r,options:i,value:n[e.name],onChange:this.onChange(e.name)}));case"tags":var a=this.getTagsTree();return this.canShowControl(e.name)&&wp.element.createElement("div",{className:"aiovg-block-multiselect",key:t},wp.element.createElement(g,{multiple:!0,label:e.label,help:r,options:a,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 l=[];for(var c in e.options)l.push({label:e.options[c],value:c});return this.canShowControl(e.name)&&wp.element.createElement(g,{key:t,label:e.label,help:r,options:l,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(h,{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:"getTagsTree",value:function(){var e=this.props.tagsList,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(s.a,{block:"aiovg/videos",attributes:t,onChange:this.initializeGallery})))}}]),t}(_);t.a=E(function(e){var t=e("core"),n=t.getEntityRecords,o={per_page:100},r={per_page:100};return{categoriesList:n("taxonomy","aiovg_categories",o),tagsList:n("taxonomy","aiovg_tags",r)}})(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 _("/wp/v2/block-renderer/"+e,Object.assign({context:"edit"},null!==t?{attributes:t}:{},n))}var l=n(33),c=n.n(l),s=n(102),u=n.n(s),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,__=f.__,b=f.sprintf,v=wp.components,g=v.Placeholder,h=v.Spinner,d=wp.element,y=d.Component,m=d.RawHTML,_=wp.url.addQueryArgs,w=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=u()(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),s=this.currentFetchRequest=wp.apiFetch({path:c}).then(function(e){t.isStillMounted&&s===t.currentFetchRequest&&e&&e.rendered&&t.setState({response:e.rendered})}).catch(function(e){t.isStillMounted&&s===t.currentFetchRequest&&t.setState({response:{error:!0,errorMsg:e.message}})});return s}}},{key:"render",value:function(){var e=this.state.response;if(!e)return wp.element.createElement(g,null,wp.element.createElement(h,null));if(e.error){var t=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,__("No results found."))}}]),t}(y);t.a=w},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,h,y){var m=s(e),_=s(t),w=m?v:c(e),k=_?v:c(t);w=w==b?g:w,k=k==b?g:k;var j=w==g,x=k==g,O=w==k;if(O&&u(e)){if(!u(t))return!1;m=!0,j=!1}if(O&&!j)return y||(y=new r),m||p(e)?i(e,t,n,o,h,y):a(e,t,w,n,o,h,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),h(A,S,n,o,y)}}return!!O&&(y||(y=new r),l(e,t,n,o,h,y))}var r=n(36),i=n(18),a=n(71),l=n(75),c=n(97),s=n(12),u=n(19),p=n(21),f=1,b="[object Arguments]",v="[object Array]",g="[object Object]",h=Object.prototype,d=h.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),s=n(46);o.prototype.clear=i,o.prototype.delete=a,o.prototype.get=l,o.prototype.has=c,o.prototype.set=s,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:s).test(l(e))}var r=n(14),i=n(51),a=n(6),l=n(16),c=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,u=Function.prototype,p=Object.prototype,f=u.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 h:return a(+e,+t);case v:return e.name==t.name&&e.message==t.message;case d:case m:return e==t+"";case g:var E=c;case y:var C=o&u;if(E||(E=s),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 _: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),s=n(74),u=1,p=2,f="[object Boolean]",b="[object Date]",v="[object Error]",g="[object Map]",h="[object Number]",d="[object RegExp]",y="[object Set]",m="[object String]",_="[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 s=n&i,u=r(e),p=u.length;if(p!=r(t).length&&!s)return!1;for(var f=p;f--;){var b=u[f];if(!(s?b in t:l.call(t,b)))return!1}var v=c.get(e),g=c.get(t);if(v&&g)return v==t&&g==e;var h=!0;c.set(e,t),c.set(t,e);for(var d=s;++f<p;){b=u[f];var y=e[b],m=t[b];if(o)var _=s?o(m,y,b,t,e,c):o(y,m,b,e,t,c);if(!(void 0===_?y===m||a(y,m,n,o,c):_)){h=!1;break}d||(d="constructor"==b)}if(h&&!d){var w=e.constructor,k=t.constructor;w!=k&&"constructor"in e&&"constructor"in t&&!("function"==typeof w&&w instanceof w&&"function"==typeof k&&k instanceof k)&&(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),u=!n&&!o&&l(e),f=!n&&!o&&!u&&s(e),b=n||o||u||f,v=b?r(e.length,String):[],g=v.length;for(var h in e)!t&&!p.call(e,h)||b&&("length"==h||u&&("offset"==h||"parent"==h)||f&&("buffer"==h||"byteLength"==h||"byteOffset"==h)||c(h,g))||v.push(h);return v}var r=n(84),i=n(85),a=n(12),l=n(19),c=n(88),s=n(21),u=Object.prototype,p=u.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),s=n(16),u=s(o),p=s(r),f=s(i),b=s(a),v=s(l),g=c;(o&&"[object DataView]"!=g(new o(new ArrayBuffer(1)))||r&&"[object Map]"!=g(new r)||i&&"[object Promise]"!=g(i.resolve())||a&&"[object Set]"!=g(new a)||l&&"[object WeakMap]"!=g(new l))&&(g=function(e){var t=c(e),n="[object Object]"==t?e.constructor:void 0,o=n?s(n):"";if(o)switch(o){case u: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=g},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=m;return y=m=void 0,x=t,w=e.apply(o,n)}function u(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?s(r,_-o):r}function f(e){var n=e-j,o=e-x;return void 0===j||n>=t||n<0||E&&o>=_}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=m=void 0,w)}function g(){void 0!==k&&clearTimeout(k),x=0,y=j=m=k=void 0}function h(){return void 0===k?w:v(i())}function d(){var e=i(),n=f(e);if(y=arguments,m=this,j=e,n){if(void 0===k)return u(j);if(E)return clearTimeout(k),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,_=E?c(a(n.maxWait)||0,t):_,C="trailing"in n?!!n.trailing:C),d.cancel=g,d.flush=h,d}var r=n(6),i=n(103),a=n(104),l="Expected a function",c=Math.max,s=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=s.test(e);return n||u.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,s=/^0b[01]+$/i,u=/^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:s&&s in Object(e)?i(e):a(e)}var r=n(11),i=n(49),a=n(50),l="[object Null]",c="[object Undefined]",s=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==s}var r=n(2),i=n(6),a="[object AsyncFunction]",l="[object Function]",c="[object GeneratorFunction]",s="[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,s,u){var p=n&l,f=e.length,b=t.length;if(f!=b&&!(p&&b>f))return!1;var v=u.get(e),g=u.get(t);if(v&&g)return v==t&&g==e;var h=-1,d=!0,y=n&c?new r:void 0;for(u.set(e,t),u.set(t,e);++h<f;){var m=e[h],_=t[h];if(o)var w=p?o(_,m,h,t,e,u):o(m,_,h,e,t,u);if(void 0!==w){if(w)continue;d=!1;break}if(y){if(!i(t,function(e,t){if(!a(y,t)&&(m===e||s(m,e,n,o,u)))return y.push(t)})){d=!1;break}}else if(m!==_&&!s(m,_,n,o,u)){d=!1;break}}return u.delete(e),u.delete(t),d}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,s=c?c.isBuffer:void 0,u=s||r;e.exports=u}).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),__=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:[__("categories"),__("gallery"),__("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},limit:{type:"limit",default:aiovg_blocks.categories.limit},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},show_pagination:{type:"boolean",default:aiovg_blocks.categories.show_pagination}},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),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}}(),u=wp.components,p=u.Disabled,f=u.PanelBody,b=u.RangeControl,v=u.SelectControl,g=u.ServerSideRender,h=u.ToggleControl,d=wp.element,y=d.Component,m=d.Fragment,_=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),s(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.limit,l=t.orderby,c=t.order,s=t.hierarchical,u=t.show_description,d=t.show_count,y=t.hide_empty,w=t.show_pagination,k=this.getCategoriesTree();return wp.element.createElement(m,null,wp.element.createElement(_,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:k,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})}}),"grid"==r&&wp.element.createElement(b,{label:aiovg_blocks.i18n.limit,value:a,min:0,max:500,onChange:function(e){return n({limit:e})}}),wp.element.createElement(v,{label:aiovg_blocks.i18n.order_by,value:l,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:c,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(h,{label:aiovg_blocks.i18n.show_hierarchy,checked:s,onChange:this.toggleAttribute("hierarchical")}),"grid"==r&&wp.element.createElement(h,{label:aiovg_blocks.i18n.show_description,checked:u,onChange:this.toggleAttribute("show_description")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.show_videos_count,checked:d,onChange:this.toggleAttribute("show_count")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.hide_empty_categories,checked:y,onChange:this.toggleAttribute("hide_empty")}),"grid"==r&&wp.element.createElement(h,{label:aiovg_blocks.i18n.show_pagination,checked:w,onChange:this.toggleAttribute("show_pagination")}))),wp.element.createElement(p,null,wp.element.createElement(g,{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),__=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:[__("search"),__("videos"),__("all-in-one-video-gallery")],attributes:{template:{type:"string",default:aiovg_blocks.search.template},keyword:{type:"boolean",default:aiovg_blocks.search.keyword},category:{type:"boolean",default:aiovg_blocks.search.category},tag:{type:"boolean",default:aiovg_blocks.search.tag}},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,s=c.Disabled,u=c.PanelBody,p=c.SelectControl,f=c.ServerSideRender,b=c.ToggleControl,v=wp.element,g=v.Component,h=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.keyword,i=t.category,a=t.tag;return wp.element.createElement(h,null,wp.element.createElement(d,null,wp.element.createElement(u,{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_keywords,checked:r,onChange:this.toggleAttribute("keyword")}),wp.element.createElement(b,{label:aiovg_blocks.i18n.search_by_categories,checked:i,onChange:this.toggleAttribute("category")}),wp.element.createElement(b,{label:aiovg_blocks.i18n.search_by_tags,checked:a,onChange:this.toggleAttribute("tag")}))),wp.element.createElement(s,null,wp.element.createElement(f,{block:"aiovg/search",attributes:t})))}}]),t}(g);t.a=y},function(e,t,n){"use strict";var o=n(29),__=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:[__("video"),__("player"),__("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},quality:{type:"boolean",default:aiovg_blocks.video.quality},speed:{type:"boolean",default:aiovg_blocks.video.speed},volume:{type:"boolean",default:aiovg_blocks.video.volume},fullscreen:{type:"boolean",default:aiovg_blocks.video.fullscreen},share:{type:"boolean",default:aiovg_blocks.video.share},embed:{type:"boolean",default:aiovg_blocks.video.embed},download:{type:"boolean",default:aiovg_blocks.video.download}},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,s=c.BaseControl,u=c.Button,p=c.Disabled,f=c.IconButton,b=c.PanelBody,v=c.ServerSideRender,g=c.TextControl,h=c.ToggleControl,d=c.Toolbar,y=c.withNotices,m=wp.element,_=m.Component,w=m.Fragment,k=m.createRef,j=wp.editor,x=j.BlockControls,E=j.InspectorControls,O=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,m=n.autoplay,_=n.loop,k=n.muted,j=n.playpause,A=n.current,S=n.progress,P=n.duration,T=n.quality,z=n.speed,R=n.volume,M=n.fullscreen,N=n.share,B=n.embed,F=n.download,L=this.state.editing,D=function(){e.setState({editing:!0})},U=function(t){if(!t||!t.url)return o({src:void 0}),void D();o({src:t.url}),e.setState({src:t.url,editing:!1})};return L?wp.element.createElement(O,{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:U,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:D,icon:"edit"}))),wp.element.createElement(E,null,wp.element.createElement(b,{title:aiovg_blocks.i18n.general_settings},wp.element.createElement(g,{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(g,{label:aiovg_blocks.i18n.ratio,help:aiovg_blocks.i18n.ratio_help,value:y,onChange:function(e){return o({ratio:Number(e)})}}),wp.element.createElement(h,{label:aiovg_blocks.i18n.autoplay,checked:m,onChange:this.toggleAttribute("autoplay")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.loop,checked:_,onChange:this.toggleAttribute("loop")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.muted,checked:k,onChange:this.toggleAttribute("muted")}),wp.element.createElement(s,{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(u,{isDefault:!0,onClick:t},l?aiovg_blocks.i18n.replace_image:aiovg_blocks.i18n.select_poster_image)}}),!!l&&wp.element.createElement(u,{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(h,{label:aiovg_blocks.i18n.play_pause,checked:j,onChange:this.toggleAttribute("playpause")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.current_time,checked:A,onChange:this.toggleAttribute("current")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.progressbar,checked:S,onChange:this.toggleAttribute("progress")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.duration,checked:P,onChange:this.toggleAttribute("duration")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.quality,checked:T,onChange:this.toggleAttribute("quality")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.speed,checked:z,onChange:this.toggleAttribute("speed")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.volume,checked:R,onChange:this.toggleAttribute("volume")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.fullscreen,checked:M,onChange:this.toggleAttribute("fullscreen")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.share,checked:N,onChange:this.toggleAttribute("share")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.embed,checked:B,onChange:this.toggleAttribute("embed")}),wp.element.createElement(h,{label:aiovg_blocks.i18n.download,checked:F,onChange:this.toggleAttribute("download")}))),wp.element.createElement(p,null,wp.element.createElement(v,{block:"aiovg/video",attributes:n})))}}]),t}(_);t.a=y(A)},function(e,t,n){"use strict";var o=n(9),r=n(31),__=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:[__("videos"),__("gallery"),__("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),s=n(32),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}}(),p=wp.components,f=p.Disabled,b=p.PanelBody,v=p.RangeControl,g=p.SelectControl,h=p.TextControl,d=p.TextareaControl,y=p.ToggleControl,m=wp.element,_=m.Component,w=m.Fragment,k=wp.editor,j=k.InspectorControls,x=k.PanelColorSettings,E=wp.hooks.applyFilters,O=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),u(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"header":return this.canShowControl(e.name)&&wp.element.createElement("p",{key:t},e.label);case"categories":var i=this.getCategoriesTree();return this.canShowControl(e.name)&&wp.element.createElement("div",{className:"aiovg-block-multiselect",key:t},wp.element.createElement(g,{multiple:!0,label:e.label,help:r,options:i,value:n[e.name],onChange:this.onChange(e.name)}));case"tags":var a=this.getTagsTree();return this.canShowControl(e.name)&&wp.element.createElement("div",{className:"aiovg-block-multiselect",key:t},wp.element.createElement(g,{multiple:!0,label:e.label,help:r,options:a,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 l=[];for(var c in e.options)l.push({label:e.options[c],value:c});return this.canShowControl(e.name)&&wp.element.createElement(g,{key:t,label:e.label,help:r,options:l,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(h,{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 E("aiovg_block_toggle_panels",!0,e,t)}},{key:"canShowControl",value:function(e){var t=this.props.attributes;return E("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:"getTagsTree",value:function(){var e=this.props.tagsList,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(){E("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(s.a,{block:"aiovg/videos",attributes:t,onChange:this.initializeGallery})))}}]),t}(_);t.a=O(function(e){var t=e("core"),n=t.getEntityRecords,o={per_page:100},r={per_page:100};return{categoriesList:n("taxonomy","aiovg_categories",o),tagsList:n("taxonomy","aiovg_tags",r)}})(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 _("/wp/v2/block-renderer/"+e,Object.assign({context:"edit"},null!==t?{attributes:t}:{},n))}var l=n(33),c=n.n(l),s=n(102),u=n.n(s),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,__=f.__,b=f.sprintf,v=wp.components,g=v.Placeholder,h=v.Spinner,d=wp.element,y=d.Component,m=d.RawHTML,_=wp.url.addQueryArgs,w=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=u()(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),s=this.currentFetchRequest=wp.apiFetch({path:c}).then(function(e){t.isStillMounted&&s===t.currentFetchRequest&&e&&e.rendered&&t.setState({response:e.rendered})}).catch(function(e){t.isStillMounted&&s===t.currentFetchRequest&&t.setState({response:{error:!0,errorMsg:e.message}})});return s}}},{key:"render",value:function(){var e=this.state.response;if(!e)return wp.element.createElement(g,null,wp.element.createElement(h,null));if(e.error){var t=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,__("No results found."))}}]),t}(y);t.a=w},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,h,y){var m=s(e),_=s(t),w=m?v:c(e),k=_?v:c(t);w=w==b?g:w,k=k==b?g:k;var j=w==g,x=k==g,E=w==k;if(E&&u(e)){if(!u(t))return!1;m=!0,j=!1}if(E&&!j)return y||(y=new r),m||p(e)?i(e,t,n,o,h,y):a(e,t,w,n,o,h,y);if(!(n&f)){var O=j&&d.call(e,"__wrapped__"),C=x&&d.call(t,"__wrapped__");if(O||C){var A=O?e.value():e,S=C?t.value():t;return y||(y=new r),h(A,S,n,o,y)}}return!!E&&(y||(y=new r),l(e,t,n,o,h,y))}var r=n(36),i=n(18),a=n(71),l=n(75),c=n(97),s=n(12),u=n(19),p=n(21),f=1,b="[object Arguments]",v="[object Array]",g="[object Object]",h=Object.prototype,d=h.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),s=n(46);o.prototype.clear=i,o.prototype.delete=a,o.prototype.get=l,o.prototype.has=c,o.prototype.set=s,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:s).test(l(e))}var r=n(14),i=n(51),a=n(6),l=n(16),c=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,u=Function.prototype,p=Object.prototype,f=u.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,E){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 h:return a(+e,+t);case v:return e.name==t.name&&e.message==t.message;case d:case m:return e==t+"";case g:var O=c;case y:var C=o&u;if(O||(O=s),e.size!=t.size&&!C)return!1;var A=E.get(e);if(A)return A==t;o|=p,E.set(e,t);var S=l(O(e),O(t),o,r,j,E);return E.delete(e),S;case _: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),s=n(74),u=1,p=2,f="[object Boolean]",b="[object Date]",v="[object Error]",g="[object Map]",h="[object Number]",d="[object RegExp]",y="[object Set]",m="[object String]",_="[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 s=n&i,u=r(e),p=u.length;if(p!=r(t).length&&!s)return!1;for(var f=p;f--;){var b=u[f];if(!(s?b in t:l.call(t,b)))return!1}var v=c.get(e),g=c.get(t);if(v&&g)return v==t&&g==e;var h=!0;c.set(e,t),c.set(t,e);for(var d=s;++f<p;){b=u[f];var y=e[b],m=t[b];if(o)var _=s?o(m,y,b,t,e,c):o(y,m,b,e,t,c);if(!(void 0===_?y===m||a(y,m,n,o,c):_)){h=!1;break}d||(d="constructor"==b)}if(h&&!d){var w=e.constructor,k=t.constructor;w!=k&&"constructor"in e&&"constructor"in t&&!("function"==typeof w&&w instanceof w&&"function"==typeof k&&k instanceof k)&&(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),u=!n&&!o&&l(e),f=!n&&!o&&!u&&s(e),b=n||o||u||f,v=b?r(e.length,String):[],g=v.length;for(var h in e)!t&&!p.call(e,h)||b&&("length"==h||u&&("offset"==h||"parent"==h)||f&&("buffer"==h||"byteLength"==h||"byteOffset"==h)||c(h,g))||v.push(h);return v}var r=n(84),i=n(85),a=n(12),l=n(19),c=n(88),s=n(21),u=Object.prototype,p=u.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),s=n(16),u=s(o),p=s(r),f=s(i),b=s(a),v=s(l),g=c;(o&&"[object DataView]"!=g(new o(new ArrayBuffer(1)))||r&&"[object Map]"!=g(new r)||i&&"[object Promise]"!=g(i.resolve())||a&&"[object Set]"!=g(new a)||l&&"[object WeakMap]"!=g(new l))&&(g=function(e){var t=c(e),n="[object Object]"==t?e.constructor:void 0,o=n?s(n):"";if(o)switch(o){case u: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=g},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=m;return y=m=void 0,x=t,w=e.apply(o,n)}function u(e){return x=e,k=setTimeout(b,t),E?o(e):w}function p(e){var n=e-j,o=e-x,r=t-n;return O?s(r,_-o):r}function f(e){var n=e-j,o=e-x;return void 0===j||n>=t||n<0||O&&o>=_}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=m=void 0,w)}function g(){void 0!==k&&clearTimeout(k),x=0,y=j=m=k=void 0}function h(){return void 0===k?w:v(i())}function d(){var e=i(),n=f(e);if(y=arguments,m=this,j=e,n){if(void 0===k)return u(j);if(O)return clearTimeout(k),k=setTimeout(b,t),o(j)}return void 0===k&&(k=setTimeout(b,t)),w}var y,m,_,w,k,j,x=0,E=!1,O=!1,C=!0;if("function"!=typeof e)throw new TypeError(l);return t=a(t)||0,r(n)&&(E=!!n.leading,O="maxWait"in n,_=O?c(a(n.maxWait)||0,t):_,C="trailing"in n?!!n.trailing:C),d.cancel=g,d.flush=h,d}var r=n(6),i=n(103),a=n(104),l="Expected a function",c=Math.max,s=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=s.test(e);return n||u.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,s=/^0b[01]+$/i,u=/^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/video/edit.js CHANGED
@@ -102,7 +102,10 @@ class AIOVGVideoEdit extends Component {
102
  quality,
103
  speed,
104
  volume,
105
- fullscreen
 
 
 
106
  } = attributes;
107
 
108
  const { editing } = this.state;
@@ -261,7 +264,25 @@ class AIOVGVideoEdit extends Component {
261
  label={ aiovg_blocks.i18n.fullscreen }
262
  checked={ fullscreen }
263
  onChange={ this.toggleAttribute( 'fullscreen' ) }
264
- />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
  </PanelBody>
266
  </InspectorControls>
267
 
102
  quality,
103
  speed,
104
  volume,
105
+ fullscreen,
106
+ share,
107
+ embed,
108
+ download
109
  } = attributes;
110
 
111
  const { editing } = this.state;
264
  label={ aiovg_blocks.i18n.fullscreen }
265
  checked={ fullscreen }
266
  onChange={ this.toggleAttribute( 'fullscreen' ) }
267
+ />
268
+
269
+ <ToggleControl
270
+ label={ aiovg_blocks.i18n.share }
271
+ checked={ share }
272
+ onChange={ this.toggleAttribute( 'share' ) }
273
+ />
274
+
275
+ <ToggleControl
276
+ label={ aiovg_blocks.i18n.embed }
277
+ checked={ embed }
278
+ onChange={ this.toggleAttribute( 'embed' ) }
279
+ />
280
+
281
+ <ToggleControl
282
+ label={ aiovg_blocks.i18n.download }
283
+ checked={ download }
284
+ onChange={ this.toggleAttribute( 'download' ) }
285
+ />
286
  </PanelBody>
287
  </InspectorControls>
288
 
blocks/src/blocks/video/index.js CHANGED
@@ -86,6 +86,18 @@ registerBlockType( 'aiovg/video', {
86
  fullscreen: {
87
  type: 'boolean',
88
  default: aiovg_blocks.video.fullscreen
 
 
 
 
 
 
 
 
 
 
 
 
89
  }
90
  },
91
  supports: {
86
  fullscreen: {
87
  type: 'boolean',
88
  default: aiovg_blocks.video.fullscreen
89
+ },
90
+ share: {
91
+ type: 'boolean',
92
+ default: aiovg_blocks.video.share
93
+ },
94
+ embed: {
95
+ type: 'boolean',
96
+ default: aiovg_blocks.video.embed
97
+ },
98
+ download: {
99
+ type: 'boolean',
100
+ default: aiovg_blocks.video.download
101
  }
102
  },
103
  supports: {
includes/functions.php CHANGED
@@ -378,6 +378,18 @@ function aiovg_get_dailymotion_image_url( $url ) {
378
  * @return array $defaults Array of plugin settings.
379
  */
380
  function aiovg_get_default_settings() {
 
 
 
 
 
 
 
 
 
 
 
 
381
  $defaults = array(
382
  'aiovg_player_settings' => array(
383
  'player' => 'iframe',
@@ -403,8 +415,22 @@ function aiovg_get_default_settings() {
403
  'facebook' => 'facebook'
404
  )
405
  ),
 
 
 
 
 
 
 
 
 
 
 
 
406
  'aiovg_videos_settings' => array(
407
- 'template' => 'classic',
 
 
408
  'columns' => 3,
409
  'limit' => 10,
410
  'orderby' => 'date',
@@ -418,6 +444,7 @@ function aiovg_get_default_settings() {
418
  'views' => 'views',
419
  'duration' => 'duration'
420
  ),
 
421
  'excerpt_length' => 75
422
  ),
423
  'aiovg_categories_settings' => array(
@@ -429,14 +456,19 @@ function aiovg_get_default_settings() {
429
  'hierarchical' => 1,
430
  'show_description' => 0,
431
  'show_count' => 1,
432
- 'hide_empty' => 0
 
 
 
 
433
  ),
434
  'aiovg_video_settings' => array(
435
  'display' => array(
436
  'category' => 'category',
437
  'tag' => 'tag',
438
  'views' => 'views',
439
- 'related' => 'related'
 
440
  ),
441
  'has_comments' => 1
442
  ),
@@ -448,40 +480,22 @@ function aiovg_get_default_settings() {
448
  'display' => array(
449
  'pagination' => 'pagination'
450
  )
451
- ),
452
- 'aiovg_image_settings' => array(
453
- 'ratio' => 56.25
454
- ),
455
- 'aiovg_pagination_settings' => array(
456
- 'ajax' => 0
457
- ),
458
- 'aiovg_socialshare_settings' => array(
459
- 'services' => array(
460
- 'facebook' => 'facebook',
461
- 'twitter' => 'twitter',
462
- 'linkedin' => 'linkedin',
463
- 'pinterest' => 'pinterest',
464
- 'tumblr' => 'tumblr',
465
- 'whatsapp' => 'whatsapp'
466
- ),
467
- 'open_graph_tags' => 1,
468
- 'twitter_username' => ''
469
- ),
470
  'aiovg_permalink_settings' => array(
471
- 'video' => 'aiovg_videos'
472
  ),
473
- 'aiovg_general_settings' => array(
474
- 'delete_plugin_data' => 1,
475
- 'delete_media_files' => 1,
476
- 'vimeo_access_token' => '',
477
- ),
478
- 'aiovg_page_settings' => aiovg_insert_custom_pages(),
479
  'aiovg_privacy_settings' => array(
480
  'show_consent' => 0,
481
  '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' ),
482
  'consent_button_label' => __( 'Accept', 'all-in-one-video-gallery' ),
483
  'disable_cookies' => array()
484
- )
 
 
 
 
 
 
485
  );
486
 
487
  return $defaults;
@@ -534,9 +548,10 @@ function aiovg_get_embedcode_image_url( $embedcode ) {
534
  * @param int $post_id Post ID.
535
  * @param int $char_length Excerpt length.
536
  * @param string $append String to append to the end of the excerpt.
 
537
  * @return string $content Excerpt content.
538
  */
539
- function aiovg_get_excerpt( $post_id = 0 , $char_length = 55, $append = '[...]' ) {
540
  $content = '';
541
 
542
  if ( $post_id > 0 ) {
@@ -546,10 +561,10 @@ function aiovg_get_excerpt( $post_id = 0 , $char_length = 55, $append = '[...]'
546
  }
547
 
548
  if ( ! empty( $post->post_excerpt ) ) {
549
- $content = $post->post_excerpt;
550
  } elseif ( ! empty( $post->post_content ) ) {
551
  if ( 0 == $char_length ) {
552
- $content = $post->post_content;
553
  } else {
554
  $excerpt = wp_strip_all_tags( $post->post_content, true );
555
  $char_length++;
@@ -570,7 +585,7 @@ function aiovg_get_excerpt( $post_id = 0 , $char_length = 55, $append = '[...]'
570
  }
571
  }
572
 
573
- return apply_filters( 'aiovg_get_excerpt', trim( $content ), $post_id, $char_length, $append );
574
  }
575
 
576
  /**
@@ -624,7 +639,7 @@ function aiovg_get_image_url( $id, $size = "large", $default = '', $type = 'gall
624
  }
625
 
626
  // Return image url
627
- return $url;
628
  }
629
 
630
  /**
@@ -791,6 +806,9 @@ function aiovg_get_player_page_url( $post_id = 0, $atts = array() ) {
791
  case 'poster':
792
  $query_args[ $key ] = urlencode( $atts[ $key ] );
793
  break;
 
 
 
794
  case 'autoplay':
795
  case 'loop':
796
  case 'muted':
@@ -803,6 +821,9 @@ function aiovg_get_player_page_url( $post_id = 0, $atts = array() ) {
803
  case 'speed':
804
  case 'volume':
805
  case 'fullscreen':
 
 
 
806
  $query_args[ $key ] = (int) $atts[ $key ];
807
  break;
808
  }
@@ -842,7 +863,6 @@ function aiovg_get_search_page_url() {
842
  */
843
  function aiovg_get_shortcode_fields() {
844
  $defaults = aiovg_get_default_settings();
845
- $image_settings = array_merge( $defaults['aiovg_image_settings'], get_option( 'aiovg_image_settings', array() ) );
846
  $categories_settings = array_merge( $defaults['aiovg_categories_settings'], get_option( 'aiovg_categories_settings', array() ) );
847
  $videos_settings = array_merge( $defaults['aiovg_videos_settings'], get_option( 'aiovg_videos_settings', array() ) );
848
  $player_settings = array_merge( $defaults['aiovg_player_settings'], get_option( 'aiovg_player_settings', array() ) );
@@ -922,7 +942,7 @@ function aiovg_get_shortcode_fields() {
922
  ),
923
  array(
924
  'name' => 'ratio',
925
- 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
926
  'description' => __( "In percentage. 1 to 100. Calculate player's height using the ratio value entered.", 'all-in-one-video-gallery' ),
927
  'type' => 'text',
928
  'value' => $player_settings['ratio']
@@ -1004,17 +1024,38 @@ function aiovg_get_shortcode_fields() {
1004
  ),
1005
  array(
1006
  'name' => 'volume',
1007
- 'label' => __( 'Volume', 'all-in-one-video-gallery' ),
1008
  'description' => '',
1009
  'type' => 'checkbox',
1010
  'value' => isset( $player_settings['controls']['volume'] )
1011
  ),
1012
  array(
1013
  'name' => 'fullscreen',
1014
- 'label' => __( 'Fullscreen', 'all-in-one-video-gallery' ),
1015
  'description' => '',
1016
  'type' => 'checkbox',
1017
  'value' => isset( $player_settings['controls']['fullscreen'] )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1018
  )
1019
  )
1020
  )
@@ -1124,10 +1165,10 @@ function aiovg_get_shortcode_fields() {
1124
  'fields' => array(
1125
  array(
1126
  'name' => 'ratio',
1127
- 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
1128
  'description' => '',
1129
  'type' => 'text',
1130
- 'value' => $image_settings['ratio']
1131
  ),
1132
  array(
1133
  'name' => 'columns',
@@ -1220,6 +1261,13 @@ function aiovg_get_shortcode_fields() {
1220
  'type' => 'checkbox',
1221
  'value' => isset( $videos_settings['display']['excerpt'] )
1222
  ),
 
 
 
 
 
 
 
1223
  array(
1224
  'name' => 'excerpt_length',
1225
  'label' => __( 'Excerpt Length', 'all-in-one-video-gallery' ),
@@ -1307,10 +1355,10 @@ function aiovg_get_shortcode_fields() {
1307
  ),
1308
  array(
1309
  'name' => 'ratio',
1310
- 'label' => __( 'Ratio', 'all-in-one-video-gallery' ),
1311
  'description' => '',
1312
  'type' => 'text',
1313
- 'value' => $image_settings['ratio']
1314
  ),
1315
  array(
1316
  'name' => 'columns',
@@ -1914,6 +1962,36 @@ function aiovg_sanitize_url( $value ) {
1914
  return $value;
1915
  }
1916
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1917
  /**
1918
  * Update video views count.
1919
  *
@@ -2191,7 +2269,7 @@ function the_aiovg_socialshare_buttons() {
2191
  if ( isset( $socialshare_settings['services']['tumblr'] ) ) {
2192
  $tumblr_url = "https://www.tumblr.com/share/link?url={$url}&amp;name={$title}";
2193
 
2194
- $description = sanitize_text_field( aiovg_get_excerpt( $post->ID, 160, '' ) );
2195
  if ( ! empty( $description ) ) {
2196
  $description = str_replace( ' ', '%20', $description );
2197
  $description = str_replace( '|', '%7C', $description );
378
  * @return array $defaults Array of plugin settings.
379
  */
380
  function aiovg_get_default_settings() {
381
+ $video_page_slug = 'aiovg_videos';
382
+ $slugs = array( 'video', 'watch' );
383
+
384
+ foreach ( $slugs as $slug ) {
385
+ $page = get_page_by_path( $slug );
386
+
387
+ if ( ! $page ) {
388
+ $video_page_slug = $slug;
389
+ break;
390
+ }
391
+ }
392
+
393
  $defaults = array(
394
  'aiovg_player_settings' => array(
395
  'player' => 'iframe',
415
  'facebook' => 'facebook'
416
  )
417
  ),
418
+ 'aiovg_socialshare_settings' => array(
419
+ 'services' => array(
420
+ 'facebook' => 'facebook',
421
+ 'twitter' => 'twitter',
422
+ 'linkedin' => 'linkedin',
423
+ 'pinterest' => 'pinterest',
424
+ 'tumblr' => 'tumblr',
425
+ 'whatsapp' => 'whatsapp'
426
+ ),
427
+ 'open_graph_tags' => 1,
428
+ 'twitter_username' => ''
429
+ ),
430
  'aiovg_videos_settings' => array(
431
+ 'template' => 'classic',
432
+ 'width' => '',
433
+ 'ratio' => 56.25,
434
  'columns' => 3,
435
  'limit' => 10,
436
  'orderby' => 'date',
444
  'views' => 'views',
445
  'duration' => 'duration'
446
  ),
447
+ 'title_length' => 0,
448
  'excerpt_length' => 75
449
  ),
450
  'aiovg_categories_settings' => array(
456
  'hierarchical' => 1,
457
  'show_description' => 0,
458
  'show_count' => 1,
459
+ 'hide_empty' => 0,
460
+ 'back_button' => 0
461
+ ),
462
+ 'aiovg_pagination_settings' => array(
463
+ 'ajax' => 0
464
  ),
465
  'aiovg_video_settings' => array(
466
  'display' => array(
467
  'category' => 'category',
468
  'tag' => 'tag',
469
  'views' => 'views',
470
+ 'related' => 'related',
471
+ 'share' => 'share'
472
  ),
473
  'has_comments' => 1
474
  ),
480
  'display' => array(
481
  'pagination' => 'pagination'
482
  )
483
+ ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
484
  'aiovg_permalink_settings' => array(
485
+ 'video' => $video_page_slug
486
  ),
 
 
 
 
 
 
487
  'aiovg_privacy_settings' => array(
488
  'show_consent' => 0,
489
  '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' ),
490
  'consent_button_label' => __( 'Accept', 'all-in-one-video-gallery' ),
491
  'disable_cookies' => array()
492
+ ),
493
+ 'aiovg_general_settings' => array(
494
+ 'delete_plugin_data' => 1,
495
+ 'delete_media_files' => 1,
496
+ 'vimeo_access_token' => '',
497
+ ),
498
+ 'aiovg_page_settings' => aiovg_insert_custom_pages()
499
  );
500
 
501
  return $defaults;
548
  * @param int $post_id Post ID.
549
  * @param int $char_length Excerpt length.
550
  * @param string $append String to append to the end of the excerpt.
551
+ * @param bool $allow_html Allow HTML in the excerpt.
552
  * @return string $content Excerpt content.
553
  */
554
+ function aiovg_get_excerpt( $post_id = 0 , $char_length = 55, $append = '...', $allow_html = true ) {
555
  $content = '';
556
 
557
  if ( $post_id > 0 ) {
561
  }
562
 
563
  if ( ! empty( $post->post_excerpt ) ) {
564
+ $content = ( $allow_html == false ) ? wp_strip_all_tags( $post->post_excerpt, true ) : $post->post_excerpt;
565
  } elseif ( ! empty( $post->post_content ) ) {
566
  if ( 0 == $char_length ) {
567
+ $content = ( $allow_html == false ) ? wp_strip_all_tags( $post->post_content, true ) : $post->post_content;
568
  } else {
569
  $excerpt = wp_strip_all_tags( $post->post_content, true );
570
  $char_length++;
585
  }
586
  }
587
 
588
+ return apply_filters( 'aiovg_excerpt', trim( $content ), $post_id, $char_length, $append, $allow_html );
589
  }
590
 
591
  /**
639
  }
640
 
641
  // Return image url
642
+ return apply_filters( 'aiovg_image_url', $url, $id, $size, $default, $type );
643
  }
644
 
645
  /**
806
  case 'poster':
807
  $query_args[ $key ] = urlencode( $atts[ $key ] );
808
  break;
809
+ case 'ratio':
810
+ $query_args[ $key ] = (float) $atts[ $key ];
811
+ break;
812
  case 'autoplay':
813
  case 'loop':
814
  case 'muted':
821
  case 'speed':
822
  case 'volume':
823
  case 'fullscreen':
824
+ case 'share':
825
+ case 'embed':
826
+ case 'download':
827
  $query_args[ $key ] = (int) $atts[ $key ];
828
  break;
829
  }
863
  */
864
  function aiovg_get_shortcode_fields() {
865
  $defaults = aiovg_get_default_settings();
 
866
  $categories_settings = array_merge( $defaults['aiovg_categories_settings'], get_option( 'aiovg_categories_settings', array() ) );
867
  $videos_settings = array_merge( $defaults['aiovg_videos_settings'], get_option( 'aiovg_videos_settings', array() ) );
868
  $player_settings = array_merge( $defaults['aiovg_player_settings'], get_option( 'aiovg_player_settings', array() ) );
942
  ),
943
  array(
944
  'name' => 'ratio',
945
+ 'label' => __( 'Height (Ratio)', 'all-in-one-video-gallery' ),
946
  'description' => __( "In percentage. 1 to 100. Calculate player's height using the ratio value entered.", 'all-in-one-video-gallery' ),
947
  'type' => 'text',
948
  'value' => $player_settings['ratio']
1024
  ),
1025
  array(
1026
  'name' => 'volume',
1027
+ 'label' => __( 'Volume Button', 'all-in-one-video-gallery' ),
1028
  'description' => '',
1029
  'type' => 'checkbox',
1030
  'value' => isset( $player_settings['controls']['volume'] )
1031
  ),
1032
  array(
1033
  'name' => 'fullscreen',
1034
+ 'label' => __( 'Fullscreen Button', 'all-in-one-video-gallery' ),
1035
  'description' => '',
1036
  'type' => 'checkbox',
1037
  'value' => isset( $player_settings['controls']['fullscreen'] )
1038
+ ),
1039
+ array(
1040
+ 'name' => 'share',
1041
+ 'label' => __( 'Share Buttons', 'all-in-one-video-gallery' ),
1042
+ 'description' => '',
1043
+ 'type' => 'checkbox',
1044
+ 'value' => isset( $player_settings['controls']['share'] )
1045
+ ),
1046
+ array(
1047
+ 'name' => 'embed',
1048
+ 'label' => __( 'Embed Button', 'all-in-one-video-gallery' ),
1049
+ 'description' => '',
1050
+ 'type' => 'checkbox',
1051
+ 'value' => isset( $player_settings['controls']['embed'] )
1052
+ ),
1053
+ array(
1054
+ 'name' => 'download',
1055
+ 'label' => __( 'Download Button', 'all-in-one-video-gallery' ),
1056
+ 'description' => '',
1057
+ 'type' => 'checkbox',
1058
+ 'value' => isset( $player_settings['controls']['download'] )
1059
  )
1060
  )
1061
  )
1165
  'fields' => array(
1166
  array(
1167
  'name' => 'ratio',
1168
+ 'label' => __( 'Height (Ratio)', 'all-in-one-video-gallery' ),
1169
  'description' => '',
1170
  'type' => 'text',
1171
+ 'value' => $videos_settings['ratio']
1172
  ),
1173
  array(
1174
  'name' => 'columns',
1261
  'type' => 'checkbox',
1262
  'value' => isset( $videos_settings['display']['excerpt'] )
1263
  ),
1264
+ array(
1265
+ 'name' => 'title_length',
1266
+ 'label' => __( 'Title Length', 'all-in-one-video-gallery' ),
1267
+ 'description' => '',
1268
+ 'type' => 'number',
1269
+ 'value' => isset( $videos_settings['title_length'] ) ? $videos_settings['title_length'] : 0
1270
+ ),
1271
  array(
1272
  'name' => 'excerpt_length',
1273
  'label' => __( 'Excerpt Length', 'all-in-one-video-gallery' ),
1355
  ),
1356
  array(
1357
  'name' => 'ratio',
1358
+ 'label' => __( 'Height (Ratio)', 'all-in-one-video-gallery' ),
1359
  'description' => '',
1360
  'type' => 'text',
1361
+ 'value' => $videos_settings['ratio']
1362
  ),
1363
  array(
1364
  'name' => 'columns',
1962
  return $value;
1963
  }
1964
 
1965
+ /**
1966
+ * Trims text to a certain number of characters.
1967
+ *
1968
+ * @since 2.5.8
1969
+ * @param string $text Text to be trimmed.
1970
+ * @param int $char_length Character length.
1971
+ * @param string $append String to append to the end of the trimmed content.
1972
+ * @return string $text Trimmed text.
1973
+ */
1974
+ function aiovg_truncate( $text, $char_length = 55, $append = '...' ) {
1975
+ if ( empty( $char_length ) ) {
1976
+ return $text;
1977
+ }
1978
+
1979
+ $text = strip_tags( $text );
1980
+
1981
+ if ( $char_length > 0 && strlen( $text ) > $char_length ) {
1982
+ $tmp = substr( $text, 0, $char_length );
1983
+ $tmp = substr( $tmp, 0, strrpos( $tmp, ' ' ) );
1984
+
1985
+ if ( strlen( $tmp ) >= $char_length - 3 ) {
1986
+ $tmp = substr( $tmp, 0, strrpos( $tmp, ' ' ) );
1987
+ }
1988
+
1989
+ $text = $tmp . '...';
1990
+ }
1991
+
1992
+ return $text;
1993
+ }
1994
+
1995
  /**
1996
  * Update video views count.
1997
  *
2269
  if ( isset( $socialshare_settings['services']['tumblr'] ) ) {
2270
  $tumblr_url = "https://www.tumblr.com/share/link?url={$url}&amp;name={$title}";
2271
 
2272
+ $description = sanitize_text_field( aiovg_get_excerpt( $post->ID, 160, '', false ) );
2273
  if ( ! empty( $description ) ) {
2274
  $description = str_replace( ' ', '%20', $description );
2275
  $description = str_replace( '|', '%7C', $description );
includes/init.php CHANGED
@@ -152,6 +152,7 @@ class AIOVG_Init {
152
  $this->loader->add_action( 'admin_enqueue_scripts', $admin, 'enqueue_styles' );
153
  $this->loader->add_action( 'admin_enqueue_scripts', $admin, 'enqueue_scripts' );
154
 
 
155
  $this->loader->add_filter( 'plugin_action_links_' . AIOVG_PLUGIN_FILE_NAME, $admin, 'plugin_action_links' );
156
  $this->loader->add_filter( 'wp_check_filetype_and_ext', $admin, 'add_filetype_and_ext', 10, 4 );
157
 
@@ -242,6 +243,9 @@ class AIOVG_Init {
242
  $this->loader->add_filter( 'wpseo_opengraph_image', $public, 'wpseo_opengraph_image' );
243
  $this->loader->add_filter( 'wpseo_twitter_image', $public, 'wpseo_twitter_image' );
244
  $this->loader->add_filter( 'wpseo_breadcrumb_links', $public, 'wpseo_breadcrumb_links' );
 
 
 
245
  } else {
246
  $this->loader->add_filter( 'wp_title', $public, 'wp_title', 99, 3 );
247
  $this->loader->add_filter( 'document_title_parts', $public, 'document_title_parts' );
@@ -267,7 +271,8 @@ class AIOVG_Init {
267
  // Hooks specific to the single video page
268
  $video = new AIOVG_Public_Video();
269
 
270
- $this->loader->add_action( 'template_include', $video, 'template_include', 999 );
 
271
  $this->loader->add_action( 'wp_ajax_aiovg_update_views_count', $video, 'ajax_callback_update_views_count' );
272
  $this->loader->add_action( 'wp_ajax_nopriv_aiovg_update_views_count', $video, 'ajax_callback_update_views_count' );
273
 
152
  $this->loader->add_action( 'admin_enqueue_scripts', $admin, 'enqueue_styles' );
153
  $this->loader->add_action( 'admin_enqueue_scripts', $admin, 'enqueue_scripts' );
154
 
155
+ $this->loader->add_filter( 'display_post_states', $admin, 'add_display_post_states', 10, 2 );
156
  $this->loader->add_filter( 'plugin_action_links_' . AIOVG_PLUGIN_FILE_NAME, $admin, 'plugin_action_links' );
157
  $this->loader->add_filter( 'wp_check_filetype_and_ext', $admin, 'add_filetype_and_ext', 10, 4 );
158
 
243
  $this->loader->add_filter( 'wpseo_opengraph_image', $public, 'wpseo_opengraph_image' );
244
  $this->loader->add_filter( 'wpseo_twitter_image', $public, 'wpseo_twitter_image' );
245
  $this->loader->add_filter( 'wpseo_breadcrumb_links', $public, 'wpseo_breadcrumb_links' );
246
+ $this->loader->add_filter( 'wpseo_video_custom_field_details', $public, 'wpseo_video_sitemap_entry' );
247
+ $this->loader->add_filter( 'wpseo_video_youtube_details', $public, 'wpseo_video_sitemap_entry' );
248
+ $this->loader->add_filter( 'wpseo_video_vimeo_details', $public, 'wpseo_video_sitemap_entry' );
249
  } else {
250
  $this->loader->add_filter( 'wp_title', $public, 'wp_title', 99, 3 );
251
  $this->loader->add_filter( 'document_title_parts', $public, 'document_title_parts' );
271
  // Hooks specific to the single video page
272
  $video = new AIOVG_Public_Video();
273
 
274
+ $this->loader->add_action( 'template_include', $video, 'template_include', 999 );
275
+ $this->loader->add_action( 'init', $video, 'download_video', 1 );
276
  $this->loader->add_action( 'wp_ajax_aiovg_update_views_count', $video, 'ajax_callback_update_views_count' );
277
  $this->loader->add_action( 'wp_ajax_nopriv_aiovg_update_views_count', $video, 'ajax_callback_update_views_count' );
278
 
includes/player.php CHANGED
@@ -270,7 +270,7 @@ class AIOVG_Player {
270
  $settings = array(
271
  'type' => 'html5',
272
  'post_id' => (int) $params['post_id'],
273
- 'post_type' => sanitize_text_field( $params['post_type'] ),
274
  'show_consent' => (int) $params['show_consent'],
275
  'player' => array(
276
  'controlBar' => array(),
@@ -280,6 +280,19 @@ class AIOVG_Player {
280
  )
281
  );
282
 
 
 
 
 
 
 
 
 
 
 
 
 
 
283
  if ( ! empty( $params['show_logo'] ) ) {
284
  $settings['show_logo'] = (int) $params['show_logo'];
285
  $settings['logo_image'] = aiovg_sanitize_url( $params['logo_image'] );
@@ -290,7 +303,7 @@ class AIOVG_Player {
290
 
291
  if ( ! empty( $params['copyright_text'] ) ) {
292
  $settings['copyright_text'] = apply_filters( 'aiovg_translate_strings', sanitize_text_field( $params['copyright_text'] ), 'copyright_text' );
293
- }
294
 
295
  if ( 'aiovg_videos' == $settings['post_type'] ) {
296
  $settings['views_nonce'] = wp_create_nonce( 'aiovg_video_' . $settings['post_id'] . '_views_nonce' );
@@ -392,7 +405,7 @@ class AIOVG_Player {
392
  );
393
  }
394
 
395
- if ( ! empty( $params['settings']['show_logo'] ) ) {
396
  wp_enqueue_style(
397
  AIOVG_PLUGIN_SLUG . '-overlay',
398
  AIOVG_PLUGIN_URL . 'vendor/videojs-plugins/overlay/videojs-overlay.css',
@@ -472,7 +485,7 @@ class AIOVG_Player {
472
  );
473
  }
474
 
475
- if ( ! empty( $params['settings']['show_logo'] ) ) {
476
  wp_enqueue_script(
477
  AIOVG_PLUGIN_SLUG . '-overlay',
478
  AIOVG_PLUGIN_URL . 'vendor/videojs-plugins/overlay/videojs-overlay.min.js',
@@ -526,6 +539,37 @@ class AIOVG_Player {
526
  $html .= '</video-js>';
527
  }
528
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
529
  // GDPR
530
  if ( ! empty( $params['show_consent'] ) ) {
531
  $consent_message = apply_filters( 'aiovg_translate_strings', $params['consent_message'], 'consent_message' );
@@ -740,9 +784,10 @@ class AIOVG_Player {
740
  * @return array $params Player params.
741
  */
742
  private function get_params( $post_id, $atts ) {
743
- $player_settings = get_option( 'aiovg_player_settings' );
744
- $brand_settings = get_option( 'aiovg_brand_settings', array() );
745
- $privacy_settings = get_option( 'aiovg_privacy_settings' );
 
746
 
747
  if ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) {
748
  $player_settings['player'] = 'amp';
@@ -771,7 +816,10 @@ class AIOVG_Player {
771
  'quality' => isset( $player_settings['controls']['quality'] ),
772
  'speed' => isset( $player_settings['controls']['speed'] ),
773
  'volume' => isset( $player_settings['controls']['volume'] ),
774
- 'fullscreen' => isset( $player_settings['controls']['fullscreen'] ),
 
 
 
775
  'show_logo' => ! empty( $brand_settings['logo_image'] ) ? $brand_settings['show_logo'] : 0,
776
  'copyright_text' => ! empty( $brand_settings['copyright_text'] ) ? $brand_settings['copyright_text'] : '',
777
  'show_consent' => 0,
@@ -785,14 +833,7 @@ class AIOVG_Player {
785
  'dailymotion' => '',
786
  'facebook' => '',
787
  'poster' => ''
788
- ), $atts );
789
-
790
- if ( ! empty( $params['show_logo'] ) ) {
791
- $params['logo_image'] = $brand_settings['logo_image'];
792
- $params['logo_link'] = $brand_settings['logo_link'];
793
- $params['logo_position'] = $brand_settings['logo_position'];
794
- $params['logo_margin'] = $brand_settings['logo_margin'];
795
- }
796
 
797
  // Sizes
798
  $params['width'] = ! empty( $params['width'] ) ? $params['width'] : '';
@@ -957,7 +998,131 @@ class AIOVG_Player {
957
 
958
  if ( ! empty( $embed_url ) ) {
959
  $params['embed_url'] = $embed_url;
960
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
961
  }
962
 
963
  // GDPR
270
  $settings = array(
271
  'type' => 'html5',
272
  'post_id' => (int) $params['post_id'],
273
+ 'post_type' => sanitize_text_field( $params['post_type'] ),
274
  'show_consent' => (int) $params['show_consent'],
275
  'player' => array(
276
  'controlBar' => array(),
280
  )
281
  );
282
 
283
+ if ( ! empty( $params['share'] ) ) {
284
+ $settings['share'] = 1;
285
+ }
286
+
287
+ if ( ! empty( $params['embed'] ) ) {
288
+ $settings['embed'] = 1;
289
+ }
290
+
291
+ if ( ! empty( $params['download'] ) ) {
292
+ $settings['download'] = 1;
293
+ $settings['download_url'] = esc_url( $params['download_url'] );
294
+ }
295
+
296
  if ( ! empty( $params['show_logo'] ) ) {
297
  $settings['show_logo'] = (int) $params['show_logo'];
298
  $settings['logo_image'] = aiovg_sanitize_url( $params['logo_image'] );
303
 
304
  if ( ! empty( $params['copyright_text'] ) ) {
305
  $settings['copyright_text'] = apply_filters( 'aiovg_translate_strings', sanitize_text_field( $params['copyright_text'] ), 'copyright_text' );
306
+ }
307
 
308
  if ( 'aiovg_videos' == $settings['post_type'] ) {
309
  $settings['views_nonce'] = wp_create_nonce( 'aiovg_video_' . $settings['post_id'] . '_views_nonce' );
405
  );
406
  }
407
 
408
+ if ( ! empty( $params['settings']['share'] ) || ! empty( $params['settings']['embed'] ) || ! empty( $params['settings']['download'] ) || ! empty( $params['settings']['show_logo'] ) ) {
409
  wp_enqueue_style(
410
  AIOVG_PLUGIN_SLUG . '-overlay',
411
  AIOVG_PLUGIN_URL . 'vendor/videojs-plugins/overlay/videojs-overlay.css',
485
  );
486
  }
487
 
488
+ if ( ! empty( $params['settings']['share'] ) || ! empty( $params['settings']['embed'] ) || ! empty( $params['settings']['download'] ) || ! empty( $params['settings']['show_logo'] ) ) {
489
  wp_enqueue_script(
490
  AIOVG_PLUGIN_SLUG . '-overlay',
491
  AIOVG_PLUGIN_URL . 'vendor/videojs-plugins/overlay/videojs-overlay.min.js',
539
  $html .= '</video-js>';
540
  }
541
 
542
+ // Share / Embed
543
+ if ( ! empty( $params['share'] ) || ! empty( $params['embed'] ) ) {
544
+ $html .= '<div class="vjs-share-embed" style="display: none;">';
545
+ $html .= '<div class="vjs-share-embed-content">';
546
+
547
+ // Share Buttons
548
+ if ( isset( $params['share_buttons'] ) ) {
549
+ $html .= '<div class="vjs-share-buttons">';
550
+ foreach ( $params['share_buttons'] as $button ) {
551
+ $html .= sprintf(
552
+ '<a href="%s" class="vjs-share-button vjs-share-button-%s" target="_blank"><span class="%s"></span></a>',
553
+ esc_attr( $button['url'] ),
554
+ esc_attr( $button['service'] ),
555
+ esc_attr( $button['iconClass'] )
556
+ );
557
+ }
558
+ $html .= '</div>';
559
+ }
560
+
561
+ // Embed Code
562
+ if ( isset( $params['embed_code'] ) ) {
563
+ $html .= '<div class="vjs-embed-code">';
564
+ $html .= '<p>' . esc_html__( 'Paste this code in your HTML page', 'all-in-one-video-gallery' ) . '</p>';
565
+ $html .= '<input type="text" class="vjs-copy-embed-code" value="' . htmlspecialchars( $params['embed_code'] ) . '" readonly />';
566
+ $html .= '</div>';
567
+ }
568
+
569
+ $html .= '</div>';
570
+ $html .= '</div>';
571
+ }
572
+
573
  // GDPR
574
  if ( ! empty( $params['show_consent'] ) ) {
575
  $consent_message = apply_filters( 'aiovg_translate_strings', $params['consent_message'], 'consent_message' );
784
  * @return array $params Player params.
785
  */
786
  private function get_params( $post_id, $atts ) {
787
+ $player_settings = get_option( 'aiovg_player_settings' );
788
+ $brand_settings = get_option( 'aiovg_brand_settings', array() );
789
+ $socialshare_settings = get_option( 'aiovg_socialshare_settings' );
790
+ $privacy_settings = get_option( 'aiovg_privacy_settings' );
791
 
792
  if ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) {
793
  $player_settings['player'] = 'amp';
816
  'quality' => isset( $player_settings['controls']['quality'] ),
817
  'speed' => isset( $player_settings['controls']['speed'] ),
818
  'volume' => isset( $player_settings['controls']['volume'] ),
819
+ 'fullscreen' => isset( $player_settings['controls']['fullscreen'] ),
820
+ 'share' => isset( $player_settings['controls']['share'] ),
821
+ 'embed' => isset( $player_settings['controls']['embed'] ),
822
+ 'download' => 0,
823
  'show_logo' => ! empty( $brand_settings['logo_image'] ) ? $brand_settings['show_logo'] : 0,
824
  'copyright_text' => ! empty( $brand_settings['copyright_text'] ) ? $brand_settings['copyright_text'] : '',
825
  'show_consent' => 0,
833
  'dailymotion' => '',
834
  'facebook' => '',
835
  'poster' => ''
836
+ ), $atts );
 
 
 
 
 
 
 
837
 
838
  // Sizes
839
  $params['width'] = ! empty( $params['width'] ) ? $params['width'] : '';
998
 
999
  if ( ! empty( $embed_url ) ) {
1000
  $params['embed_url'] = $embed_url;
1001
+ }
1002
+
1003
+ // Share
1004
+ if ( ! empty( $params['share'] ) ) {
1005
+ $share_url = get_permalink( $post_id );
1006
+
1007
+ $share_title = get_the_title( $post_id );
1008
+ $share_title = str_replace( ' ', '%20', $share_title );
1009
+ $share_title = str_replace( '|', '%7C', $share_title );
1010
+
1011
+ $share_image = $params['poster'];
1012
+
1013
+ $share_buttons = array();
1014
+
1015
+ if ( isset( $socialshare_settings['services']['facebook'] ) ) {
1016
+ $share_buttons[] = array(
1017
+ 'service' => 'facebook',
1018
+ 'url' => "https://www.facebook.com/sharer/sharer.php?u={$share_url}",
1019
+ 'iconClass' => 'vjs-icon-facebook'
1020
+ );
1021
+ }
1022
+
1023
+ if ( isset( $socialshare_settings['services']['twitter'] ) ) {
1024
+ $share_buttons[] = array(
1025
+ 'service' => 'twitter',
1026
+ 'url' => "https://twitter.com/intent/tweet?text={$share_title}&amp;url={$share_url}",
1027
+ 'iconClass' => 'vjs-icon-twitter'
1028
+ );
1029
+ }
1030
+
1031
+ if ( isset( $socialshare_settings['services']['linkedin'] ) ) {
1032
+ $share_buttons[] = array(
1033
+ 'service' => 'linkedin',
1034
+ 'url' => "https://www.linkedin.com/shareArticle?url={$share_url}&amp;title={$share_title}",
1035
+ 'iconClass' => 'vjs-icon-linkedin'
1036
+ );
1037
+ }
1038
+
1039
+ if ( isset( $socialshare_settings['services']['pinterest'] ) ) {
1040
+ $pinterest_url = "https://pinterest.com/pin/create/button/?url={$share_url}&amp;description={$share_title}";
1041
+
1042
+ if ( ! empty( $share_image ) ) {
1043
+ $pinterest_url .= "&amp;media={$share_image}";
1044
+ }
1045
+
1046
+ $share_buttons[] = array(
1047
+ 'service' => 'pinterest',
1048
+ 'url' => $pinterest_url,
1049
+ 'iconClass' => 'vjs-icon-pinterest'
1050
+ );
1051
+ }
1052
+
1053
+ if ( isset( $socialshare_settings['services']['tumblr'] ) ) {
1054
+ $tumblr_url = "https://www.tumblr.com/share/link?url={$share_url}&amp;name={$share_title}";
1055
+
1056
+ $share_description = aiovg_get_excerpt( $post_id, 160, '', false );
1057
+ if ( ! empty( $share_description ) ) {
1058
+ $share_description = str_replace( ' ', '%20', $share_description );
1059
+ $share_description = str_replace( '|', '%7C', $share_description );
1060
+
1061
+ $tumblr_url .= "&amp;description={$share_description}";
1062
+ }
1063
+
1064
+ $share_buttons[] = array(
1065
+ 'service' => 'tumblr',
1066
+ 'url' => $tumblr_url,
1067
+ 'iconClass' => 'vjs-icon-tumblr'
1068
+ );
1069
+ }
1070
+
1071
+ if ( isset( $socialshare_settings['services']['whatsapp'] ) ) {
1072
+ if ( wp_is_mobile() ) {
1073
+ $whatsapp_url = "whatsapp://send?text={$share_title} " . rawurlencode( $share_url );
1074
+ } else {
1075
+ $whatsapp_url = "https://api.whatsapp.com/send?text={$share_title}&nbsp;{$share_url}";
1076
+ }
1077
+
1078
+ $share_buttons[] = array(
1079
+ 'service' => 'whatsapp',
1080
+ 'url' => $whatsapp_url,
1081
+ 'iconClass' => 'aiovg-icon-whatsapp'
1082
+ );
1083
+ }
1084
+
1085
+ $params['share_buttons'] = apply_filters( 'aiovg_player_socialshare_buttons', $share_buttons );
1086
+ }
1087
+
1088
+ // Embed
1089
+ if ( ! empty( $params['embed'] ) ) {
1090
+ $params['embed_code'] = sprintf(
1091
+ '<div style="position:relative;padding-bottom:%s;height:0;overflow:hidden;"><iframe src="%s" style="width:100%%;height:100%%;position:absolute;left:0px;top:0px;overflow:hidden" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>',
1092
+ (float) $params['ratio'] . '%',
1093
+ esc_url( aiovg_get_player_page_url( $post_id, $atts ) )
1094
+ );
1095
+ }
1096
+
1097
+ // Download
1098
+ if ( ! empty( $params['mp4'] ) ) {
1099
+ $params['download'] = isset( $player_settings['controls']['download'] );
1100
+ $download_url = home_url( '?dl=' . base64_encode( $params['mp4'] ) );
1101
+
1102
+ if ( ! empty( $post_meta ) ) {
1103
+ if ( isset( $post_meta['download'] ) && empty( $post_meta['download'][0] ) ) {
1104
+ $params['download'] = 0;
1105
+ }
1106
+
1107
+ $download_url = home_url( '?dl=' . $post_id );
1108
+ }
1109
+
1110
+ if ( isset( $atts['download'] ) ) {
1111
+ $params['download'] = (int) $atts['download'];
1112
+ }
1113
+
1114
+ if ( ! empty( $params['download'] ) ) {
1115
+ $params['download_url'] = $download_url;
1116
+ }
1117
+ }
1118
+ }
1119
+
1120
+ // Logo
1121
+ if ( ! empty( $params['show_logo'] ) ) {
1122
+ $params['logo_image'] = $brand_settings['logo_image'];
1123
+ $params['logo_link'] = $brand_settings['logo_link'];
1124
+ $params['logo_position'] = $brand_settings['logo_position'];
1125
+ $params['logo_margin'] = $brand_settings['logo_margin'];
1126
  }
1127
 
1128
  // GDPR
includes/uninstall.php CHANGED
@@ -80,17 +80,17 @@ class AIOVG_Uninstall
80
  // Delete all the plugin options
81
  $aiovg_settings = array(
82
  'aiovg_player_settings',
83
- 'aiovg_brand_settings',
84
  'aiovg_videos_settings',
85
  'aiovg_categories_settings',
86
- 'aiovg_video_settings',
87
- 'aiovg_image_settings',
88
  'aiovg_pagination_settings',
89
- 'aiovg_socialshare_settings',
 
 
90
  'aiovg_permalink_settings',
 
91
  'aiovg_general_settings',
92
  'aiovg_page_settings',
93
- 'aiovg_privacy_settings',
94
  'aiovg_version'
95
  );
96
  foreach ( $aiovg_settings as $settings ) {
80
  // Delete all the plugin options
81
  $aiovg_settings = array(
82
  'aiovg_player_settings',
83
+ 'aiovg_socialshare_settings',
84
  'aiovg_videos_settings',
85
  'aiovg_categories_settings',
 
 
86
  'aiovg_pagination_settings',
87
+ 'aiovg_video_settings',
88
+ 'aiovg_related_videos_settings',
89
+ 'aiovg_brand_settings',
90
  'aiovg_permalink_settings',
91
+ 'aiovg_privacy_settings',
92
  'aiovg_general_settings',
93
  'aiovg_page_settings',
 
94
  'aiovg_version'
95
  );
96
  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: 2022-05-02 14:04+0530\n"
5
- "PO-Revision-Date: 2022-05-02 14:04+0530\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
@@ -10,54 +10,54 @@ msgstr ""
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
13
- "X-Generator: Poedit 3.0.1\n"
14
  "X-Poedit-Basepath: ..\n"
15
  "X-Poedit-SourceCharset: UTF-8\n"
16
  "X-Poedit-KeywordsList: __;_e;esc_attr__;esc_attr_e;esc_html__;esc_html_e;_n\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
- #: admin/admin.php:179 admin/partials/issues.php:78
20
  msgid "Apply Fix"
21
  msgstr ""
22
 
23
- #: admin/admin.php:192 admin/partials/issues.php:75
24
  msgid "Ignore"
25
  msgstr ""
26
 
27
- #: admin/admin.php:218 admin/partials/dashboard.php:14 blocks/blocks.php:37
28
  msgid "All-in-One Video Gallery"
29
  msgstr ""
30
 
31
- #: admin/admin.php:219 admin/videos.php:69 includes/functions.php:1024
32
- #: widgets/videos.php:307
33
  msgid "Video Gallery"
34
  msgstr ""
35
 
36
- #: admin/admin.php:229
37
  msgid "All-in-One Video Gallery - Dashboard"
38
  msgstr ""
39
 
40
- #: admin/admin.php:230
41
  msgid "Dashboard"
42
  msgstr ""
43
 
44
- #: admin/admin.php:244
45
  msgid "Shortcode Builder"
46
  msgstr ""
47
 
48
- #: admin/admin.php:245
49
  msgid "FAQ"
50
  msgstr ""
51
 
52
- #: admin/admin.php:254
53
  msgid "Issues Found"
54
  msgstr ""
55
 
56
- #: admin/admin.php:477
57
  msgid "Pages Misconfigured"
58
  msgstr ""
59
 
60
- #: admin/admin.php:479
61
  #, php-format
62
  msgid ""
63
  "During activation, our plugin adds few <a href=\"%s\" target=\"_blank"
@@ -66,27 +66,55 @@ msgid ""
66
  "or having a wrong shortcode."
67
  msgstr ""
68
 
69
- #: admin/admin.php:547
70
  msgid "Copied"
71
  msgstr ""
72
 
73
- #: admin/admin.php:548
74
  msgid "Please select at least one issue."
75
  msgstr ""
76
 
77
- #: admin/admin.php:549 widgets/forms/video.php:33
78
  msgid "No video selected. The last added video will be displayed."
79
  msgstr ""
80
 
81
- #: admin/admin.php:550
82
  msgid "Sorry, there is already a video with this quality level."
83
  msgstr ""
84
 
85
- #: admin/admin.php:551 widgets/forms/video.php:30
86
  msgid "Remove"
87
  msgstr ""
88
 
89
- #: admin/admin.php:568 admin/settings.php:60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  msgid "Settings"
91
  msgstr ""
92
 
@@ -102,8 +130,8 @@ msgstr ""
102
  msgid "Video Categories"
103
  msgstr ""
104
 
105
- #: admin/categories.php:67 admin/videos.php:398
106
- #: premium/admin/automations.php:195 public/videos.php:100
107
  msgid "All Categories"
108
  msgstr ""
109
 
@@ -155,7 +183,7 @@ msgstr ""
155
  msgid "Search Categories"
156
  msgstr ""
157
 
158
- #: admin/categories.php:80 includes/functions.php:670
159
  msgid "No categories found"
160
  msgstr ""
161
 
@@ -171,15 +199,15 @@ msgstr ""
171
  msgid "Categories list navigation"
172
  msgstr ""
173
 
174
- #: admin/categories.php:162 admin/settings.php:460 admin/tags.php:114
175
- #: admin/videos.php:523 blocks/blocks.php:80 includes/functions.php:1341
176
  #: widgets/forms/categories.php:69
177
  msgid "ID"
178
  msgstr ""
179
 
180
  #: admin/partials/category-fields.php:15 admin/partials/category-fields.php:34
181
  #: admin/partials/video-sources.php:261 admin/partials/video-sources.php:265
182
- #: includes/functions.php:911 premium/public/templates/video-form.php:308
183
  msgid "Image"
184
  msgstr ""
185
 
@@ -292,7 +320,7 @@ msgstr ""
292
  #: admin/partials/shortcode-builder.php:155 admin/partials/video-sources.php:82
293
  #: admin/partials/video-sources.php:123 admin/partials/video-sources.php:150
294
  #: admin/partials/video-sources.php:173 admin/partials/video-sources.php:272
295
- #: admin/partials/video-sources.php:338 admin/partials/video-tracks.php:44
296
  #: admin/partials/video-tracks.php:80
297
  #: premium/public/templates/video-form.php:149
298
  #: premium/public/templates/video-form.php:178
@@ -302,7 +330,7 @@ msgid "Upload File"
302
  msgstr ""
303
 
304
  #: admin/partials/shortcode-builder.php:163 blocks/blocks.php:73
305
- #: includes/functions.php:1288 widgets/forms/categories.php:36
306
  #: widgets/forms/categories.php:39
307
  msgid "Select Parent"
308
  msgstr ""
@@ -451,20 +479,20 @@ msgid ""
451
  msgstr ""
452
 
453
  #: admin/partials/video-sources.php:17 admin/partials/video-sources.php:21
454
- #: includes/functions.php:868 premium/admin/partials/automations-sources.php:42
455
  #: premium/admin/partials/automations-sources.php:45
456
  #: premium/public/templates/video-form.php:118
457
  msgid "Source Type"
458
  msgstr ""
459
 
460
  #: admin/partials/video-sources.php:36 admin/partials/video-sources.php:41
461
- #: admin/videos.php:70 admin/videos.php:104 includes/functions.php:876
462
  #: premium/public/templates/video-form.php:137
463
  msgid "Video"
464
  msgstr ""
465
 
466
  #: admin/partials/video-sources.php:54 admin/partials/video-sources.php:95
467
- #: admin/partials/video-sources.php:318
468
  msgid "Select a Quality Level"
469
  msgstr ""
470
 
@@ -473,13 +501,13 @@ msgid "This will be the default quality level for this video"
473
  msgstr ""
474
 
475
  #: admin/partials/video-sources.php:63 admin/partials/video-sources.php:104
476
- #: admin/partials/video-sources.php:323 admin/settings.php:295
477
  msgid "None"
478
  msgstr ""
479
 
480
  #: admin/partials/video-sources.php:79 admin/partials/video-sources.php:120
481
  #: admin/partials/video-sources.php:147 admin/partials/video-sources.php:170
482
- #: admin/partials/video-sources.php:269 admin/partials/video-sources.php:335
483
  #: premium/public/templates/video-form.php:146
484
  #: premium/public/templates/video-form.php:175
485
  #: premium/public/templates/video-form.php:205
@@ -509,16 +537,16 @@ msgid "OGV"
509
  msgstr ""
510
 
511
  #: admin/partials/video-sources.php:182 admin/partials/video-sources.php:186
512
- #: admin/settings.php:330 includes/functions.php:883
513
- #: includes/functions.php:1522 premium/includes/functions.php:110
514
  #: premium/public/templates/video-form.php:230
515
  msgid "YouTube"
516
  msgstr ""
517
 
518
  #: admin/partials/video-sources.php:190 admin/partials/video-sources.php:204
519
  #: admin/partials/video-sources.php:218 admin/partials/video-sources.php:232
520
- #: includes/functions.php:884 includes/functions.php:891
521
- #: includes/functions.php:898 includes/functions.php:905
522
  #: premium/admin/adaptive-streaming.php:42
523
  #: premium/admin/adaptive-streaming.php:50
524
  #: premium/admin/partials/adaptive-streaming.php:24
@@ -538,20 +566,20 @@ msgid "Example"
538
  msgstr ""
539
 
540
  #: admin/partials/video-sources.php:196 admin/partials/video-sources.php:200
541
- #: admin/settings.php:331 includes/functions.php:890
542
- #: includes/functions.php:1523 premium/public/templates/video-form.php:246
543
  msgid "Vimeo"
544
  msgstr ""
545
 
546
  #: admin/partials/video-sources.php:210 admin/partials/video-sources.php:214
547
- #: admin/settings.php:332 includes/functions.php:897
548
- #: includes/functions.php:1524 premium/public/templates/video-form.php:262
549
  msgid "Dailymotion"
550
  msgstr ""
551
 
552
  #: admin/partials/video-sources.php:224 admin/partials/video-sources.php:228
553
- #: admin/settings.php:333 admin/settings.php:622 includes/functions.php:904
554
- #: includes/functions.php:1525 includes/functions.php:2165
555
  #: premium/public/templates/video-form.php:278
556
  msgid "Facebook"
557
  msgstr ""
@@ -575,21 +603,29 @@ msgid ""
575
  msgstr ""
576
 
577
  #: admin/partials/video-sources.php:282 admin/partials/video-sources.php:286
578
- #: admin/settings.php:308 blocks/blocks.php:123 includes/functions.php:979
579
  #: widgets/forms/video.php:130
580
  msgid "Duration"
581
  msgstr ""
582
 
583
  #: admin/partials/video-sources.php:296 admin/partials/video-sources.php:300
584
- #: admin/videos.php:522
585
  msgid "Views"
586
  msgstr ""
587
 
 
 
 
 
 
 
 
 
588
  #: admin/partials/video-submitbox.php:19
589
  msgid "Mark as"
590
  msgstr ""
591
 
592
- #: admin/partials/video-submitbox.php:20 admin/videos.php:579
593
  msgid "Featured"
594
  msgstr ""
595
 
@@ -633,18 +669,18 @@ msgstr ""
633
  msgid "All-in-One Video Gallery - Settings"
634
  msgstr ""
635
 
636
- #: admin/settings.php:98 blocks/blocks.php:107 includes/functions.php:857
637
- #: includes/functions.php:1027 includes/functions.php:1266
638
- #: includes/functions.php:1402
639
  msgid "General"
640
  msgstr ""
641
 
642
  #: admin/settings.php:99
643
- msgid "Display"
644
  msgstr ""
645
 
646
  #: admin/settings.php:100
647
- msgid "SEO"
648
  msgstr ""
649
 
650
  #: admin/settings.php:101
@@ -655,247 +691,258 @@ msgstr ""
655
  msgid "Player Settings"
656
  msgstr ""
657
 
658
- #: admin/settings.php:124
659
- msgid "Videos Layout"
 
 
660
  msgstr ""
661
 
662
  #: admin/settings.php:131
663
- msgid "Categories Layout"
664
  msgstr ""
665
 
666
- #: admin/settings.php:138
667
- msgid "Single Video Page"
668
  msgstr ""
669
 
670
- #: admin/settings.php:145 admin/settings.php:519 includes/functions.php:1115
671
- msgid "Related Videos"
672
  msgstr ""
673
 
674
- #: admin/settings.php:152
675
- msgid "Image Settings"
676
  msgstr ""
677
 
678
- #: admin/settings.php:159
679
- msgid "Pagination Settings"
680
  msgstr ""
681
 
682
- #: admin/settings.php:166
683
- msgid "Social Sharing"
684
  msgstr ""
685
 
686
- #: admin/settings.php:173
687
  msgid "Permalink Slugs"
688
  msgstr ""
689
 
690
- #: admin/settings.php:174
691
  msgid ""
692
  "NOTE: Just make sure that, after updating the fields in this section, you "
693
  "flush the rewrite rules by visiting \"Settings > Permalinks\". Otherwise "
694
  "you'll still see the old links."
695
  msgstr ""
696
 
697
- #: admin/settings.php:180
698
- msgid "Misc Settings"
699
- msgstr ""
700
-
701
- #: admin/settings.php:187
702
- msgid "Page Settings"
703
- msgstr ""
704
-
705
- #: admin/settings.php:194
706
  msgid "Privacy Settings"
707
  msgstr ""
708
 
709
- #: admin/settings.php:195
710
  msgid ""
711
  "These options will help with privacy restrictions such as GDPR and the EU "
712
  "Cookie Law."
713
  msgstr ""
714
 
715
- #: admin/settings.php:204
 
 
 
 
 
 
 
 
716
  msgid "Logo & Branding"
717
  msgstr ""
718
 
719
- #: admin/settings.php:227
720
  msgid "Player Type"
721
  msgstr ""
722
 
723
- #: admin/settings.php:231
724
  msgid "JavaScript"
725
  msgstr ""
726
 
727
- #: admin/settings.php:232
728
  msgid "Iframe"
729
  msgstr ""
730
 
731
- #: admin/settings.php:238 admin/settings.php:593 blocks/blocks.php:108
732
- #: includes/functions.php:918 premium/widgets/forms/companion.php:16
733
- #: widgets/forms/video.php:74
734
  msgid "Width"
735
  msgstr ""
736
 
737
- #: admin/settings.php:239 blocks/blocks.php:109 includes/functions.php:919
738
  #, php-format
739
  msgid ""
740
  "In pixels. Maximum width of the player. Leave this field empty to scale "
741
  "100% of its enclosing container/html element."
742
  msgstr ""
743
 
744
- #: admin/settings.php:245 admin/settings.php:600 blocks/blocks.php:110
745
- #: includes/functions.php:925 includes/functions.php:1127
746
- #: includes/functions.php:1310 widgets/forms/video.php:79
747
- msgid "Ratio"
748
  msgstr ""
749
 
750
- #: admin/settings.php:248 blocks/blocks.php:111 includes/functions.php:926
751
  msgid ""
752
  "In percentage. 1 to 100. Calculate player's height using the ratio value "
753
  "entered."
754
  msgstr ""
755
 
756
- #: admin/settings.php:249
757
  msgid "Examples"
758
  msgstr ""
759
 
760
- #: admin/settings.php:250
761
  msgid "Wide Screen TV"
762
  msgstr ""
763
 
764
- #: admin/settings.php:251
765
  msgid "Monitor Screens"
766
  msgstr ""
767
 
768
- #: admin/settings.php:252
769
  msgid "Classic TV"
770
  msgstr ""
771
 
772
- #: admin/settings.php:253
773
  msgid "Photo Camera"
774
  msgstr ""
775
 
776
- #: admin/settings.php:254
777
  msgid "Square"
778
  msgstr ""
779
 
780
- #: admin/settings.php:255
781
  msgid "Cinemascope"
782
  msgstr ""
783
 
784
- #: admin/settings.php:262 blocks/blocks.php:112 includes/functions.php:932
785
  #: widgets/forms/video.php:86
786
  msgid "Autoplay"
787
  msgstr ""
788
 
789
- #: admin/settings.php:263
790
  msgid "Check this to start playing the video as soon as it is ready"
791
  msgstr ""
792
 
793
- #: admin/settings.php:269 blocks/blocks.php:113 includes/functions.php:939
794
  #: widgets/forms/video.php:93
795
  msgid "Loop"
796
  msgstr ""
797
 
798
- #: admin/settings.php:270
799
  msgid ""
800
  "Check this, so that the video will start over again, every time it is "
801
  "finished"
802
  msgstr ""
803
 
804
- #: admin/settings.php:276 blocks/blocks.php:114 includes/functions.php:946
805
  #: widgets/forms/video.php:100
806
  msgid "Muted"
807
  msgstr ""
808
 
809
- #: admin/settings.php:277
810
  msgid "Check this to turn OFF the audio output of the video by default"
811
  msgstr ""
812
 
813
- #: admin/settings.php:283
814
  msgid "Preload"
815
  msgstr ""
816
 
817
- #: admin/settings.php:286
818
  msgid "Specifies if and how the video should be loaded when the page loads."
819
  msgstr ""
820
 
821
- #: admin/settings.php:287
822
  msgid "\"Auto\" - the video should be loaded entirely when the page loads"
823
  msgstr ""
824
 
825
- #: admin/settings.php:288
826
  msgid "\"Metadata\" - only metadata should be loaded when the page loads"
827
  msgstr ""
828
 
829
- #: admin/settings.php:289
830
  msgid "\"None\" - the video should not be loaded when the page loads"
831
  msgstr ""
832
 
833
- #: admin/settings.php:293
834
  msgid "Auto"
835
  msgstr ""
836
 
837
- #: admin/settings.php:294
838
  msgid "Metadata"
839
  msgstr ""
840
 
841
- #: admin/settings.php:301 blocks/blocks.php:119 includes/functions.php:954
842
  #: widgets/forms/video.php:104
843
  msgid "Player Controls"
844
  msgstr ""
845
 
846
- #: admin/settings.php:305 blocks/blocks.php:120 includes/functions.php:958
847
  #: widgets/forms/video.php:109
848
  msgid "Play / Pause"
849
  msgstr ""
850
 
851
- #: admin/settings.php:306 blocks/blocks.php:121 includes/functions.php:965
852
  #: widgets/forms/video.php:116
853
  msgid "Current Time"
854
  msgstr ""
855
 
856
- #: admin/settings.php:307 blocks/blocks.php:122 includes/functions.php:972
857
  #: widgets/forms/video.php:123
858
  msgid "Progressbar"
859
  msgstr ""
860
 
861
- #: admin/settings.php:309 admin/videos.php:172 includes/functions.php:986
862
  #: widgets/forms/video.php:137
863
  msgid "Subtitles"
864
  msgstr ""
865
 
866
- #: admin/settings.php:310 blocks/blocks.php:124 includes/functions.php:993
867
  #: widgets/forms/video.php:144
868
  msgid "Quality Selector"
869
  msgstr ""
870
 
871
- #: admin/settings.php:311 blocks/blocks.php:125 includes/functions.php:1000
872
  #: widgets/forms/video.php:151
873
  msgid "Speed Control"
874
  msgstr ""
875
 
876
- #: admin/settings.php:312 blocks/blocks.php:126 includes/functions.php:1007
877
  #: widgets/forms/video.php:158
878
- msgid "Volume"
879
  msgstr ""
880
 
881
- #: admin/settings.php:313 blocks/blocks.php:127 includes/functions.php:1014
882
  #: widgets/forms/video.php:165
883
- msgid "Fullscreen"
 
 
 
 
 
 
 
 
 
 
884
  msgstr ""
885
 
886
- #: admin/settings.php:319
887
  msgid "Quality Levels"
888
  msgstr ""
889
 
890
- #: admin/settings.php:320
891
  msgid "Enter the video quality levels, one per line."
892
  msgstr ""
893
 
894
- #: admin/settings.php:326
895
  msgid "Use Native Controls"
896
  msgstr ""
897
 
898
- #: admin/settings.php:327
899
  msgid ""
900
  "Enables native player controls on the selected source types. For example, "
901
  "uses YouTube Player for playing YouTube videos & Vimeo Player for playing "
@@ -903,51 +950,114 @@ msgid ""
903
  "selected sources."
904
  msgstr ""
905
 
906
- #: admin/settings.php:341 admin/settings.php:428 blocks/blocks.php:74
907
- #: includes/functions.php:1038 includes/functions.php:1277
908
- #: includes/functions.php:1406 widgets/forms/categories.php:20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
909
  #: widgets/forms/search.php:20
910
  msgid "Select Template"
911
  msgstr ""
912
 
913
- #: admin/settings.php:342 includes/functions.php:1039
914
  #, php-format
915
  msgid ""
916
  "<a href=\"%s\" target=\"_blank\">Upgrade Pro</a> for more templates (Popup, "
917
  "Slider, etc.)"
918
  msgstr ""
919
 
920
- #: admin/settings.php:349 admin/settings.php:439 admin/settings.php:540
921
- #: blocks/blocks.php:77 includes/functions.php:1134 includes/functions.php:1317
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
922
  #: widgets/forms/categories.php:55
923
  msgid "Columns"
924
  msgstr ""
925
 
926
- #: admin/settings.php:350
927
  msgid "Enter the number of columns you like to have in the gallery view."
928
  msgstr ""
929
 
930
- #: admin/settings.php:359 admin/settings.php:449 admin/settings.php:550
931
- #: blocks/blocks.php:78 includes/functions.php:1074 includes/functions.php:1327
932
  #: widgets/forms/categories.php:60
933
  msgid "Limit (per page)"
934
  msgstr ""
935
 
936
- #: admin/settings.php:360 admin/settings.php:551
937
  msgid ""
938
  "Number of videos to show per page. Use a value of \"0\" to show all videos."
939
  msgstr ""
940
 
941
- #: admin/settings.php:366 admin/settings.php:557 blocks/blocks.php:79
942
- #: includes/functions.php:1084 includes/functions.php:1337
943
  #: premium/admin/partials/automations-sources.php:171
944
  #: premium/admin/partials/automations-sources.php:174
945
  #: widgets/forms/categories.php:65
946
  msgid "Order By"
947
  msgstr ""
948
 
949
- #: admin/settings.php:370 admin/settings.php:561 includes/functions.php:1031
950
- #: includes/functions.php:1088 includes/functions.php:1270
951
  #: premium/admin/partials/automations-sources.php:181
952
  #: premium/public/templates/user-dashboard.php:78
953
  #: widgets/forms/categories.php:15 widgets/forms/search.php:15
@@ -955,463 +1065,410 @@ msgstr ""
955
  msgid "Title"
956
  msgstr ""
957
 
958
- #: admin/settings.php:371 admin/settings.php:562 includes/functions.php:1089
959
  msgid "Date Posted"
960
  msgstr ""
961
 
962
- #: admin/settings.php:372 admin/settings.php:411 admin/settings.php:518
963
- #: admin/settings.php:563 includes/functions.php:1090
964
- #: includes/functions.php:1204
965
  #: premium/admin/partials/automations-sources.php:182
966
  msgid "Views Count"
967
  msgstr ""
968
 
969
- #: admin/settings.php:373 admin/settings.php:564 includes/functions.php:1091
970
  msgid "Random"
971
  msgstr ""
972
 
973
- #: admin/settings.php:379 admin/settings.php:469 admin/settings.php:570
974
- #: blocks/blocks.php:84 includes/functions.php:1097 includes/functions.php:1350
975
  #: widgets/forms/categories.php:83
976
  msgid "Order"
977
  msgstr ""
978
 
979
- #: admin/settings.php:383 admin/settings.php:473 admin/settings.php:574
980
  msgid "Ascending"
981
  msgstr ""
982
 
983
- #: admin/settings.php:384 admin/settings.php:474 admin/settings.php:575
984
  msgid "Descending"
985
  msgstr ""
986
 
987
- #: admin/settings.php:390 includes/functions.php:1144
988
  msgid "Image Position (Thumbnails)"
989
  msgstr ""
990
 
991
- #: admin/settings.php:394 includes/functions.php:1148
992
  msgid "Top"
993
  msgstr ""
994
 
995
- #: admin/settings.php:395 includes/functions.php:1149
996
  msgid "Left"
997
  msgstr ""
998
 
999
- #: admin/settings.php:401 includes/functions.php:1155
1000
  msgid "Show / Hide (Thumbnails)"
1001
  msgstr ""
1002
 
1003
- #: admin/settings.php:405 includes/functions.php:1162
1004
  msgid "Videos Count"
1005
  msgstr ""
1006
 
1007
- #: admin/settings.php:406 includes/functions.php:1169
1008
  #: premium/admin/slider.php:69 premium/public/slider.php:91
1009
  #: premium/public/templates/video-form.php:45
1010
  msgid "Video Title"
1011
  msgstr ""
1012
 
1013
- #: admin/settings.php:407 admin/settings.php:514 includes/functions.php:1176
1014
  msgid "Category Name(s)"
1015
  msgstr ""
1016
 
1017
- #: admin/settings.php:408 admin/settings.php:515 includes/functions.php:1183
1018
  msgid "Tag Name(s)"
1019
  msgstr ""
1020
 
1021
- #: admin/settings.php:409 admin/settings.php:516 includes/functions.php:1190
1022
  msgid "Date Added"
1023
  msgstr ""
1024
 
1025
- #: admin/settings.php:410 admin/settings.php:517 includes/functions.php:1197
1026
  msgid "Author Name"
1027
  msgstr ""
1028
 
1029
- #: admin/settings.php:412 includes/functions.php:1211
1030
  msgid "Video Duration"
1031
  msgstr ""
1032
 
1033
- #: admin/settings.php:413 includes/functions.php:1218
1034
  msgid "Video Excerpt (Short Description)"
1035
  msgstr ""
1036
 
1037
- #: admin/settings.php:419 includes/functions.php:1225
1038
- msgid "Excerpt Length"
1039
  msgstr ""
1040
 
1041
- #: admin/settings.php:420
1042
  msgid "Number of characters."
1043
  msgstr ""
1044
 
1045
- #: admin/settings.php:432 blocks/blocks.php:75 includes/functions.php:1281
 
 
 
 
1046
  #: widgets/forms/categories.php:24
1047
  msgid "Grid"
1048
  msgstr ""
1049
 
1050
- #: admin/settings.php:433 blocks/blocks.php:76 includes/functions.php:1282
1051
  #: widgets/forms/categories.php:25
1052
  msgid "List"
1053
  msgstr ""
1054
 
1055
- #: admin/settings.php:440
1056
  msgid "Enter the number of columns you like to have in your categories page."
1057
  msgstr ""
1058
 
1059
- #: admin/settings.php:450
1060
  msgid ""
1061
  "Number of categories to show per page. Use a value of \"0\" to show all "
1062
  "categories."
1063
  msgstr ""
1064
 
1065
- #: admin/settings.php:456
1066
  msgid "Order by"
1067
  msgstr ""
1068
 
1069
- #: admin/settings.php:461 blocks/blocks.php:81 includes/functions.php:1342
1070
  #: widgets/forms/categories.php:70
1071
  msgid "Count"
1072
  msgstr ""
1073
 
1074
- #: admin/settings.php:462 blocks/blocks.php:82 includes/functions.php:1343
1075
  #: widgets/forms/categories.php:71
1076
  msgid "Name"
1077
  msgstr ""
1078
 
1079
- #: admin/settings.php:463 blocks/blocks.php:83 includes/functions.php:1344
1080
  #: widgets/forms/categories.php:72
1081
  msgid "Slug"
1082
  msgstr ""
1083
 
1084
- #: admin/settings.php:480 blocks/blocks.php:87 includes/functions.php:1361
1085
  #: widgets/forms/categories.php:101
1086
  msgid "Show Hierarchy"
1087
  msgstr ""
1088
 
1089
- #: admin/settings.php:481
1090
  msgid "Check this to show the child categories"
1091
  msgstr ""
1092
 
1093
- #: admin/settings.php:487 blocks/blocks.php:88 includes/functions.php:1368
1094
  #: widgets/forms/categories.php:108
1095
  msgid "Show Description"
1096
  msgstr ""
1097
 
1098
- #: admin/settings.php:488
1099
  msgid "Check this to show the categories description"
1100
  msgstr ""
1101
 
1102
- #: admin/settings.php:494 blocks/blocks.php:89 includes/functions.php:1375
1103
  #: widgets/forms/categories.php:115
1104
  msgid "Show Videos Count"
1105
  msgstr ""
1106
 
1107
- #: admin/settings.php:495
1108
  msgid "Check this to show the videos count next to the category name"
1109
  msgstr ""
1110
 
1111
- #: admin/settings.php:501 blocks/blocks.php:90 includes/functions.php:1382
1112
  #: widgets/forms/categories.php:122
1113
  msgid "Hide Empty Categories"
1114
  msgstr ""
1115
 
1116
- #: admin/settings.php:502
1117
  msgid "Check this to hide categories with no videos"
1118
  msgstr ""
1119
 
1120
- #: admin/settings.php:510 admin/settings.php:581
1121
- msgid "Show / Hide"
1122
  msgstr ""
1123
 
1124
- #: admin/settings.php:525
1125
- msgid "Enable / Disable Comments"
1126
- msgstr ""
1127
-
1128
- #: admin/settings.php:529
1129
- msgid "Enable comments (can be overridden per video)"
1130
  msgstr ""
1131
 
1132
- #: admin/settings.php:530
1133
- msgid "Forcefully enable comments on all the video pages"
1134
  msgstr ""
1135
 
1136
- #: admin/settings.php:531
1137
- msgid "Disable comments (can be overridden per video)"
1138
  msgstr ""
1139
 
1140
- #: admin/settings.php:532
1141
- msgid "Forcefully disable comments on all the video pages"
1142
  msgstr ""
1143
 
1144
- #: admin/settings.php:541
1145
- msgid ""
1146
- "Enter the number of columns you like to have in the related videos section."
1147
  msgstr ""
1148
 
1149
- #: admin/settings.php:585 includes/functions.php:1232
1150
- msgid "Pagination"
1151
  msgstr ""
1152
 
1153
- #: admin/settings.php:594
1154
- #, php-format
1155
- msgid "Always 100% of its enclosing container/html element."
1156
  msgstr ""
1157
 
1158
- #: admin/settings.php:601
1159
- msgid ""
1160
- "In percentage. 1 to 100. Calculate images's height using the ratio value "
1161
- "entered."
1162
  msgstr ""
1163
 
1164
- #: admin/settings.php:609
1165
- msgid "Ajax"
1166
  msgstr ""
1167
 
1168
- #: admin/settings.php:610
1169
- msgid "Check this to enable Pagination with Ajax"
 
1170
  msgstr ""
1171
 
1172
- #: admin/settings.php:618
1173
- msgid "Share Buttons"
1174
  msgstr ""
1175
 
1176
- #: admin/settings.php:619
1177
- msgid "Select social share buttons displayed on the single video pages."
1178
  msgstr ""
1179
 
1180
- #: admin/settings.php:623 includes/functions.php:2172
1181
- msgid "Twitter"
1182
  msgstr ""
1183
 
1184
- #: admin/settings.php:624 includes/functions.php:2179
1185
- msgid "Linkedin"
1186
  msgstr ""
1187
 
1188
- #: admin/settings.php:625
1189
- msgid "Pinterest"
1190
  msgstr ""
1191
 
1192
- #: admin/settings.php:626 includes/functions.php:2203
1193
- msgid "Tumblr"
1194
  msgstr ""
1195
 
1196
- #: admin/settings.php:627 includes/functions.php:2216
1197
- msgid "WhatsApp"
1198
  msgstr ""
1199
 
1200
- #: admin/settings.php:633
1201
- msgid "Open Graph Tags"
1202
  msgstr ""
1203
 
1204
- #: admin/settings.php:634
1205
  msgid ""
1206
- "Check this option to enable Facebook Open Graph meta tags and Twitter cards "
1207
- "on the single video pages"
1208
- msgstr ""
1209
-
1210
- #: admin/settings.php:640
1211
- msgid "Twitter Username"
1212
  msgstr ""
1213
 
1214
- #: admin/settings.php:641
1215
  msgid ""
1216
- "The Twitter @username the player card should be attributed to. Required for "
1217
- "sharing videos in Twitter."
1218
- msgstr ""
1219
-
1220
- #: admin/settings.php:650
1221
- msgid "Video Detail Page"
1222
- msgstr ""
1223
-
1224
- #: admin/settings.php:651
1225
- msgid "Replaces the SLUG value used by custom post type \"aiovg_videos\"."
1226
  msgstr ""
1227
 
1228
- #: admin/settings.php:659
1229
  msgid "Remove data on uninstall?"
1230
  msgstr ""
1231
 
1232
- #: admin/settings.php:660
1233
  msgid ""
1234
  "Check this box to delete all of the plugin data (database stored content) "
1235
  "when uninstalled"
1236
  msgstr ""
1237
 
1238
- #: admin/settings.php:666
1239
  msgid "Delete media files?"
1240
  msgstr ""
1241
 
1242
- #: admin/settings.php:667
1243
  msgid ""
1244
  "Check this box to also delete the associated media files when a video post "
1245
  "or a video category is deleted"
1246
  msgstr ""
1247
 
1248
- #: admin/settings.php:673
1249
  msgid "Vimeo Access Token"
1250
  msgstr ""
1251
 
1252
- #: admin/settings.php:674
1253
  #, php-format
1254
  msgid ""
1255
  "Follow <a href=\"%s\" target=\"_blank\">this guide</a> to get your own "
1256
  "access token."
1257
  msgstr ""
1258
 
1259
- #: admin/settings.php:682
1260
  msgid "Single Category Page"
1261
  msgstr ""
1262
 
1263
- #: admin/settings.php:683
1264
  msgid ""
1265
  "This is the page where the videos from a particular category is displayed. "
1266
  "The [aiovg_category] short code must be on this page."
1267
  msgstr ""
1268
 
1269
- #: admin/settings.php:689
1270
  msgid "Single Tag Page"
1271
  msgstr ""
1272
 
1273
- #: admin/settings.php:690
1274
  msgid ""
1275
  "This is the page where the videos from a particular tag is displayed. The "
1276
  "[aiovg_tag] short code must be on this page."
1277
  msgstr ""
1278
 
1279
- #: admin/settings.php:696
1280
  msgid "Search Page"
1281
  msgstr ""
1282
 
1283
- #: admin/settings.php:697
1284
  msgid ""
1285
  "This is the page where the search results are displayed. The [aiovg_search] "
1286
  "short code must be on this page."
1287
  msgstr ""
1288
 
1289
- #: admin/settings.php:703
1290
- msgid "User Videos Page"
1291
- msgstr ""
1292
-
1293
- #: admin/settings.php:704
1294
  msgid ""
1295
  "This is the page where the videos from an user is displayed. The "
1296
  "[aiovg_user_videos] short code must be on this page."
1297
  msgstr ""
1298
 
1299
- #: admin/settings.php:710
1300
- msgid "Player Page"
1301
- msgstr ""
1302
-
1303
- #: admin/settings.php:711
1304
  msgid "This is the page used to show the video player."
1305
  msgstr ""
1306
 
1307
- #: admin/settings.php:719
1308
- msgid "GDPR - Show Consent"
1309
- msgstr ""
1310
-
1311
- #: admin/settings.php:720
1312
- msgid "Ask for consent before loading YouTube / Vimeo content."
1313
- msgstr ""
1314
-
1315
- #: admin/settings.php:726
1316
- msgid "GDPR - Consent Message"
1317
- msgstr ""
1318
-
1319
- #: admin/settings.php:733
1320
- msgid "GDPR - Consent Button Label"
1321
- msgstr ""
1322
-
1323
- #: admin/settings.php:740
1324
- msgid "Disable Cookies"
1325
- msgstr ""
1326
-
1327
- #: admin/settings.php:744
1328
- msgid ""
1329
- "<strong>aiovg_videos_views</strong> - check this option for Total Views, but "
1330
- "uncheck for the Unique Views. eg. 1 Person can watch a video 10 times and "
1331
- "that will go under Total Views, but they will be stored once under Unique "
1332
- "Views."
1333
- msgstr ""
1334
-
1335
- #: admin/settings.php:745
1336
- msgid ""
1337
- "<strong>aiovg_rand_seed</strong> - uncheck this option if you show videos in "
1338
- "a Random order with the Pagination on any of your pages."
1339
- msgstr ""
1340
-
1341
- #: admin/settings.php:756
1342
  msgid "Show Logo"
1343
  msgstr ""
1344
 
1345
- #: admin/settings.php:757
1346
  msgid "Check this option to show the watermark on the video."
1347
  msgstr ""
1348
 
1349
- #: admin/settings.php:763
1350
  msgid "Logo Image"
1351
  msgstr ""
1352
 
1353
- #: admin/settings.php:764
1354
  msgid ""
1355
  "Upload the image file of your logo. We recommend using the transparent PNG "
1356
  "format with width below 100 pixels. If you do not enter any image, no logo "
1357
  "will displayed."
1358
  msgstr ""
1359
 
1360
- #: admin/settings.php:770
1361
  msgid "Logo Link"
1362
  msgstr ""
1363
 
1364
- #: admin/settings.php:771
1365
  msgid ""
1366
  "The URL to visit when the watermark image is clicked. Clicking a logo will "
1367
  "have no affect unless this is configured."
1368
  msgstr ""
1369
 
1370
- #: admin/settings.php:777
1371
  msgid "Logo Position"
1372
  msgstr ""
1373
 
1374
- #: admin/settings.php:778
1375
  msgid "This sets the corner in which to display the watermark."
1376
  msgstr ""
1377
 
1378
- #: admin/settings.php:781
1379
  msgid "Top Left"
1380
  msgstr ""
1381
 
1382
- #: admin/settings.php:782
1383
  msgid "Top Right"
1384
  msgstr ""
1385
 
1386
- #: admin/settings.php:783
1387
  msgid "Bottom Left"
1388
  msgstr ""
1389
 
1390
- #: admin/settings.php:784
1391
  msgid "Bottom Right"
1392
  msgstr ""
1393
 
1394
- #: admin/settings.php:790
1395
  msgid "Logo Margin"
1396
  msgstr ""
1397
 
1398
- #: admin/settings.php:791
1399
  msgid "The distance, in pixels, of the logo from the edges of the display."
1400
  msgstr ""
1401
 
1402
- #: admin/settings.php:797
1403
  msgid "Copyright Text"
1404
  msgstr ""
1405
 
1406
- #: admin/settings.php:798
1407
  msgid "Text that is shown when a user right-clicks the player with the mouse."
1408
  msgstr ""
1409
 
1410
- #: admin/settings.php:1074
1411
  msgid "Choose File"
1412
  msgstr ""
1413
 
1414
- #: admin/settings.php:1123
1415
  msgid "Select a page"
1416
  msgstr ""
1417
 
@@ -1465,7 +1522,7 @@ msgstr ""
1465
  msgid "Search Tags"
1466
  msgstr ""
1467
 
1468
- #: admin/tags.php:80 includes/functions.php:673
1469
  msgid "No tags found"
1470
  msgstr ""
1471
 
@@ -1485,7 +1542,7 @@ msgstr ""
1485
  msgid "All-in-One Video Gallery - Videos"
1486
  msgstr ""
1487
 
1488
- #: admin/videos.php:33 admin/videos.php:74 admin/videos.php:415
1489
  msgid "All Videos"
1490
  msgstr ""
1491
 
@@ -1533,7 +1590,7 @@ msgstr ""
1533
  msgid "Search Video"
1534
  msgstr ""
1535
 
1536
- #: admin/videos.php:83 includes/functions.php:667
1537
  msgid "No videos found"
1538
  msgstr ""
1539
 
@@ -1589,23 +1646,23 @@ msgstr ""
1589
  msgid "Video Sources"
1590
  msgstr ""
1591
 
1592
- #: admin/videos.php:416
1593
  msgid "Featured only"
1594
  msgstr ""
1595
 
1596
- #: admin/videos.php:490
1597
  msgid "Copy URL"
1598
  msgstr ""
1599
 
1600
- #: admin/videos.php:499
1601
  msgid "Copy Shortcode"
1602
  msgstr ""
1603
 
1604
- #: admin/videos.php:521
1605
  msgid "Misc"
1606
  msgstr ""
1607
 
1608
- #: admin/videos.php:568
1609
  msgid "Author"
1610
  msgstr ""
1611
 
@@ -1617,17 +1674,17 @@ msgstr ""
1617
  msgid "Display a list of video categories."
1618
  msgstr ""
1619
 
1620
- #: blocks/blocks.php:85 includes/functions.php:1101 includes/functions.php:1354
1621
  #: widgets/forms/categories.php:87
1622
  msgid "ASC"
1623
  msgstr ""
1624
 
1625
- #: blocks/blocks.php:86 includes/functions.php:1102 includes/functions.php:1355
1626
  #: widgets/forms/categories.php:88
1627
  msgid "DESC"
1628
  msgstr ""
1629
 
1630
- #: blocks/blocks.php:91 includes/functions.php:1389
1631
  msgid "Show Pagination"
1632
  msgstr ""
1633
 
@@ -1651,24 +1708,24 @@ msgstr ""
1651
  msgid "A videos search form for your site."
1652
  msgstr ""
1653
 
1654
- #: blocks/blocks.php:97 includes/functions.php:1410 widgets/forms/search.php:24
1655
  msgid "Vertical"
1656
  msgstr ""
1657
 
1658
- #: blocks/blocks.php:98 includes/functions.php:1411 widgets/forms/search.php:25
1659
  msgid "Horizontal"
1660
  msgstr ""
1661
 
1662
- #: blocks/blocks.php:99 includes/functions.php:1424 widgets/forms/search.php:45
1663
  msgid "Search By Categories"
1664
  msgstr ""
1665
 
1666
- #: blocks/blocks.php:100 includes/functions.php:1417
1667
  #: widgets/forms/search.php:38
1668
  msgid "Search By Video Title, Description"
1669
  msgstr ""
1670
 
1671
- #: blocks/blocks.php:101 includes/functions.php:1431
1672
  #: widgets/forms/search.php:52
1673
  msgid "Search By Tags"
1674
  msgstr ""
@@ -1770,130 +1827,134 @@ msgstr ""
1770
  msgid "Player Embed"
1771
  msgstr ""
1772
 
1773
- #: includes/functions.php:481
1774
  msgid ""
1775
  "<strong>Please accept cookies to play this video</strong>. By accepting you "
1776
  "will be accessing content from a service provided by an external third party."
1777
  msgstr ""
1778
 
1779
- #: includes/functions.php:482
1780
  msgid "Accept"
1781
  msgstr ""
1782
 
1783
- #: includes/functions.php:854
1784
  msgid "Single Video"
1785
  msgstr ""
1786
 
1787
- #: includes/functions.php:861 widgets/forms/video.php:23
1788
  #: widgets/forms/video.php:39
1789
  msgid "Select Video"
1790
  msgstr ""
1791
 
1792
- #: includes/functions.php:877 includes/functions.php:912
1793
  msgid ""
1794
  "Enter your direct file URL in the textbox above (OR) upload your file using "
1795
  "the \"Upload File\" link."
1796
  msgstr ""
1797
 
1798
- #: includes/functions.php:1046 premium/public/templates/video-form.php:59
1799
  msgid "Select Categories"
1800
  msgstr ""
1801
 
1802
- #: includes/functions.php:1053 premium/public/templates/video-form.php:349
1803
  #: public/templates/search-form-template-horizontal.php:66
1804
  #: public/templates/search-form-template-vertical.php:66
1805
  msgid "Select Tags"
1806
  msgstr ""
1807
 
1808
- #: includes/functions.php:1060
1809
  msgid "Include Video ID(s)"
1810
  msgstr ""
1811
 
1812
- #: includes/functions.php:1067
1813
  msgid "Exclude Video ID(s)"
1814
  msgstr ""
1815
 
1816
- #: includes/functions.php:1108
1817
  msgid "Featured Only"
1818
  msgstr ""
1819
 
1820
- #: includes/functions.php:1115
1821
  msgid "Follow URL"
1822
  msgstr ""
1823
 
1824
- #: includes/functions.php:1123
1825
  msgid "Gallery"
1826
  msgstr ""
1827
 
1828
- #: includes/functions.php:1239
1829
  msgid "More Button"
1830
  msgstr ""
1831
 
1832
- #: includes/functions.php:1246 widgets/forms/categories.php:134
1833
  msgid "More Button Label"
1834
  msgstr ""
1835
 
1836
- #: includes/functions.php:1249 widgets/categories.php:67 widgets/videos.php:93
1837
  msgid "Show More"
1838
  msgstr ""
1839
 
1840
- #: includes/functions.php:1253 widgets/forms/categories.php:139
1841
  msgid "More Button Link"
1842
  msgstr ""
1843
 
1844
- #: includes/functions.php:1254 widgets/forms/categories.php:141
1845
  msgid "Leave this field blank to use Ajax"
1846
  msgstr ""
1847
 
1848
- #: includes/functions.php:1263
1849
  msgid "Categories"
1850
  msgstr ""
1851
 
1852
- #: includes/functions.php:1296
1853
  msgid "Include Category ID(s)"
1854
  msgstr ""
1855
 
1856
- #: includes/functions.php:1303
1857
  msgid "Exclude Category ID(s)"
1858
  msgstr ""
1859
 
1860
- #: includes/functions.php:1399
1861
  msgid "Search Form"
1862
  msgstr ""
1863
 
1864
- #: includes/functions.php:1521
1865
  msgid "Self Hosted"
1866
  msgstr ""
1867
 
1868
- #: includes/functions.php:1521
1869
  msgid "External URL"
1870
  msgstr ""
1871
 
1872
- #: includes/functions.php:1529
1873
  msgid "Iframe Embed Code"
1874
  msgstr ""
1875
 
1876
- #: includes/functions.php:1543
1877
  msgid "Classic"
1878
  msgstr ""
1879
 
1880
- #: includes/functions.php:2094
1881
  msgid "&laquo;"
1882
  msgstr ""
1883
 
1884
- #: includes/functions.php:2095
1885
  msgid "&raquo;"
1886
  msgstr ""
1887
 
1888
- #: includes/functions.php:2118
1889
  #, php-format
1890
  msgid "Page %d of %d"
1891
  msgstr ""
1892
 
1893
- #: includes/functions.php:2186
1894
  msgid "Pin It"
1895
  msgstr ""
1896
 
 
 
 
 
1897
  #: premium/admin/adaptive-streaming.php:41
1898
  #: premium/admin/partials/adaptive-streaming.php:16
1899
  #: premium/admin/partials/adaptive-streaming.php:20
@@ -2614,11 +2675,7 @@ msgid ""
2614
  "exec() is disabled in PHP settings. Please contact your hosting provider."
2615
  msgstr ""
2616
 
2617
- #: premium/admin/user.php:34
2618
- msgid "User"
2619
- msgstr ""
2620
-
2621
- #: premium/admin/user.php:51
2622
  msgid "Front-end Video Submission"
2623
  msgstr ""
2624
 
@@ -3210,16 +3267,16 @@ msgid ""
3210
  "Publisher Tag (GPT)</a> in the <a href=\"%s\">plugin settings</a>."
3211
  msgstr ""
3212
 
3213
- #: public/public.php:241
3214
  msgid "No tags found."
3215
  msgstr ""
3216
 
3217
- #: public/public.php:968
3218
  #, php-format
3219
  msgid "Showing results for \"%s\""
3220
  msgstr ""
3221
 
3222
- #: public/search.php:68 widgets/search.php:84
3223
  msgid "Search form disabled."
3224
  msgstr ""
3225
 
@@ -3266,7 +3323,15 @@ msgstr ""
3266
  msgid "You may also like"
3267
  msgstr ""
3268
 
3269
- #: public/videos.php:136
 
 
 
 
 
 
 
 
3270
  msgid "Sub Categories"
3271
  msgstr ""
3272
 
@@ -3282,7 +3347,7 @@ msgstr ""
3282
  msgid "Latest Video"
3283
  msgstr ""
3284
 
3285
- #: widgets/video.php:210
3286
  msgid "No videos found. Click this to display the last added video."
3287
  msgstr ""
3288
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: All-in-One Video Gallery\n"
4
+ "POT-Creation-Date: 2022-06-14 18:05+0530\n"
5
+ "PO-Revision-Date: 2022-06-14 18:05+0530\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
13
+ "X-Generator: Poedit 3.1\n"
14
  "X-Poedit-Basepath: ..\n"
15
  "X-Poedit-SourceCharset: UTF-8\n"
16
  "X-Poedit-KeywordsList: __;_e;esc_attr__;esc_attr_e;esc_html__;esc_html_e;_n\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
+ #: admin/admin.php:196 admin/partials/issues.php:78
20
  msgid "Apply Fix"
21
  msgstr ""
22
 
23
+ #: admin/admin.php:209 admin/partials/issues.php:75
24
  msgid "Ignore"
25
  msgstr ""
26
 
27
+ #: admin/admin.php:235 admin/partials/dashboard.php:14 blocks/blocks.php:37
28
  msgid "All-in-One Video Gallery"
29
  msgstr ""
30
 
31
+ #: admin/admin.php:236 admin/videos.php:69 includes/functions.php:1065
32
+ #: widgets/videos.php:311
33
  msgid "Video Gallery"
34
  msgstr ""
35
 
36
+ #: admin/admin.php:246
37
  msgid "All-in-One Video Gallery - Dashboard"
38
  msgstr ""
39
 
40
+ #: admin/admin.php:247
41
  msgid "Dashboard"
42
  msgstr ""
43
 
44
+ #: admin/admin.php:261
45
  msgid "Shortcode Builder"
46
  msgstr ""
47
 
48
+ #: admin/admin.php:262
49
  msgid "FAQ"
50
  msgstr ""
51
 
52
+ #: admin/admin.php:271
53
  msgid "Issues Found"
54
  msgstr ""
55
 
56
+ #: admin/admin.php:494
57
  msgid "Pages Misconfigured"
58
  msgstr ""
59
 
60
+ #: admin/admin.php:496
61
  #, php-format
62
  msgid ""
63
  "During activation, our plugin adds few <a href=\"%s\" target=\"_blank"
66
  "or having a wrong shortcode."
67
  msgstr ""
68
 
69
+ #: admin/admin.php:564
70
  msgid "Copied"
71
  msgstr ""
72
 
73
+ #: admin/admin.php:565
74
  msgid "Please select at least one issue."
75
  msgstr ""
76
 
77
+ #: admin/admin.php:566 widgets/forms/video.php:33
78
  msgid "No video selected. The last added video will be displayed."
79
  msgstr ""
80
 
81
+ #: admin/admin.php:567
82
  msgid "Sorry, there is already a video with this quality level."
83
  msgstr ""
84
 
85
+ #: admin/admin.php:568 widgets/forms/video.php:30
86
  msgid "Remove"
87
  msgstr ""
88
 
89
+ #: admin/admin.php:585
90
+ msgid "Video Category Page"
91
+ msgstr ""
92
+
93
+ #: admin/admin.php:589
94
+ msgid "Video Tag Page"
95
+ msgstr ""
96
+
97
+ #: admin/admin.php:593
98
+ msgid "Search Results Page"
99
+ msgstr ""
100
+
101
+ #: admin/admin.php:597 admin/settings.php:747
102
+ msgid "User Videos Page"
103
+ msgstr ""
104
+
105
+ #: admin/admin.php:601 admin/settings.php:754
106
+ msgid "Player Page"
107
+ msgstr ""
108
+
109
+ #: admin/admin.php:605
110
+ msgid "User Dashboard Page"
111
+ msgstr ""
112
+
113
+ #: admin/admin.php:609
114
+ msgid "Video Form Page"
115
+ msgstr ""
116
+
117
+ #: admin/admin.php:626 admin/settings.php:60
118
  msgid "Settings"
119
  msgstr ""
120
 
130
  msgid "Video Categories"
131
  msgstr ""
132
 
133
+ #: admin/categories.php:67 admin/videos.php:402
134
+ #: premium/admin/automations.php:195 public/videos.php:104
135
  msgid "All Categories"
136
  msgstr ""
137
 
183
  msgid "Search Categories"
184
  msgstr ""
185
 
186
+ #: admin/categories.php:80 includes/functions.php:685
187
  msgid "No categories found"
188
  msgstr ""
189
 
199
  msgid "Categories list navigation"
200
  msgstr ""
201
 
202
+ #: admin/categories.php:162 admin/settings.php:510 admin/tags.php:114
203
+ #: admin/videos.php:527 blocks/blocks.php:80 includes/functions.php:1389
204
  #: widgets/forms/categories.php:69
205
  msgid "ID"
206
  msgstr ""
207
 
208
  #: admin/partials/category-fields.php:15 admin/partials/category-fields.php:34
209
  #: admin/partials/video-sources.php:261 admin/partials/video-sources.php:265
210
+ #: includes/functions.php:931 premium/public/templates/video-form.php:308
211
  msgid "Image"
212
  msgstr ""
213
 
320
  #: admin/partials/shortcode-builder.php:155 admin/partials/video-sources.php:82
321
  #: admin/partials/video-sources.php:123 admin/partials/video-sources.php:150
322
  #: admin/partials/video-sources.php:173 admin/partials/video-sources.php:272
323
+ #: admin/partials/video-sources.php:353 admin/partials/video-tracks.php:44
324
  #: admin/partials/video-tracks.php:80
325
  #: premium/public/templates/video-form.php:149
326
  #: premium/public/templates/video-form.php:178
330
  msgstr ""
331
 
332
  #: admin/partials/shortcode-builder.php:163 blocks/blocks.php:73
333
+ #: includes/functions.php:1336 widgets/forms/categories.php:36
334
  #: widgets/forms/categories.php:39
335
  msgid "Select Parent"
336
  msgstr ""
479
  msgstr ""
480
 
481
  #: admin/partials/video-sources.php:17 admin/partials/video-sources.php:21
482
+ #: includes/functions.php:888 premium/admin/partials/automations-sources.php:42
483
  #: premium/admin/partials/automations-sources.php:45
484
  #: premium/public/templates/video-form.php:118
485
  msgid "Source Type"
486
  msgstr ""
487
 
488
  #: admin/partials/video-sources.php:36 admin/partials/video-sources.php:41
489
+ #: admin/videos.php:70 admin/videos.php:104 includes/functions.php:896
490
  #: premium/public/templates/video-form.php:137
491
  msgid "Video"
492
  msgstr ""
493
 
494
  #: admin/partials/video-sources.php:54 admin/partials/video-sources.php:95
495
+ #: admin/partials/video-sources.php:333
496
  msgid "Select a Quality Level"
497
  msgstr ""
498
 
501
  msgstr ""
502
 
503
  #: admin/partials/video-sources.php:63 admin/partials/video-sources.php:104
504
+ #: admin/partials/video-sources.php:338 admin/settings.php:289
505
  msgid "None"
506
  msgstr ""
507
 
508
  #: admin/partials/video-sources.php:79 admin/partials/video-sources.php:120
509
  #: admin/partials/video-sources.php:147 admin/partials/video-sources.php:170
510
+ #: admin/partials/video-sources.php:269 admin/partials/video-sources.php:350
511
  #: premium/public/templates/video-form.php:146
512
  #: premium/public/templates/video-form.php:175
513
  #: premium/public/templates/video-form.php:205
537
  msgstr ""
538
 
539
  #: admin/partials/video-sources.php:182 admin/partials/video-sources.php:186
540
+ #: admin/settings.php:327 includes/functions.php:903
541
+ #: includes/functions.php:1570 premium/includes/functions.php:110
542
  #: premium/public/templates/video-form.php:230
543
  msgid "YouTube"
544
  msgstr ""
545
 
546
  #: admin/partials/video-sources.php:190 admin/partials/video-sources.php:204
547
  #: admin/partials/video-sources.php:218 admin/partials/video-sources.php:232
548
+ #: includes/functions.php:904 includes/functions.php:911
549
+ #: includes/functions.php:918 includes/functions.php:925
550
  #: premium/admin/adaptive-streaming.php:42
551
  #: premium/admin/adaptive-streaming.php:50
552
  #: premium/admin/partials/adaptive-streaming.php:24
566
  msgstr ""
567
 
568
  #: admin/partials/video-sources.php:196 admin/partials/video-sources.php:200
569
+ #: admin/settings.php:328 includes/functions.php:910
570
+ #: includes/functions.php:1571 premium/public/templates/video-form.php:246
571
  msgid "Vimeo"
572
  msgstr ""
573
 
574
  #: admin/partials/video-sources.php:210 admin/partials/video-sources.php:214
575
+ #: admin/settings.php:329 includes/functions.php:917
576
+ #: includes/functions.php:1572 premium/public/templates/video-form.php:262
577
  msgid "Dailymotion"
578
  msgstr ""
579
 
580
  #: admin/partials/video-sources.php:224 admin/partials/video-sources.php:228
581
+ #: admin/settings.php:330 admin/settings.php:342 includes/functions.php:924
582
+ #: includes/functions.php:1573 includes/functions.php:2243
583
  #: premium/public/templates/video-form.php:278
584
  msgid "Facebook"
585
  msgstr ""
603
  msgstr ""
604
 
605
  #: admin/partials/video-sources.php:282 admin/partials/video-sources.php:286
606
+ #: admin/settings.php:302 blocks/blocks.php:123 includes/functions.php:999
607
  #: widgets/forms/video.php:130
608
  msgid "Duration"
609
  msgstr ""
610
 
611
  #: admin/partials/video-sources.php:296 admin/partials/video-sources.php:300
612
+ #: admin/videos.php:526
613
  msgid "Views"
614
  msgstr ""
615
 
616
+ #: admin/partials/video-sources.php:310 admin/partials/video-sources.php:314
617
+ msgid "Download"
618
+ msgstr ""
619
+
620
+ #: admin/partials/video-sources.php:319
621
+ msgid "Check this option to allow users to download this video."
622
+ msgstr ""
623
+
624
  #: admin/partials/video-submitbox.php:19
625
  msgid "Mark as"
626
  msgstr ""
627
 
628
+ #: admin/partials/video-submitbox.php:20 admin/videos.php:583
629
  msgid "Featured"
630
  msgstr ""
631
 
669
  msgid "All-in-One Video Gallery - Settings"
670
  msgstr ""
671
 
672
+ #: admin/settings.php:98 blocks/blocks.php:107 includes/functions.php:877
673
+ #: includes/functions.php:1068 includes/functions.php:1314
674
+ #: includes/functions.php:1450
675
  msgid "General"
676
  msgstr ""
677
 
678
  #: admin/settings.php:99
679
+ msgid "SEO"
680
  msgstr ""
681
 
682
  #: admin/settings.php:100
683
+ msgid "Privacy"
684
  msgstr ""
685
 
686
  #: admin/settings.php:101
691
  msgid "Player Settings"
692
  msgstr ""
693
 
694
+ #: admin/settings.php:124 admin/settings.php:308 admin/settings.php:586
695
+ #: blocks/blocks.php:128 includes/functions.php:1041
696
+ #: widgets/forms/video.php:172
697
+ msgid "Share Buttons"
698
  msgstr ""
699
 
700
  #: admin/settings.php:131
701
+ msgid "Gallery Settings"
702
  msgstr ""
703
 
704
+ #: admin/settings.php:132
705
+ msgid "Videos Layout"
706
  msgstr ""
707
 
708
+ #: admin/settings.php:139
709
+ msgid "Categories Layout"
710
  msgstr ""
711
 
712
+ #: admin/settings.php:146
713
+ msgid "Pagination Settings"
714
  msgstr ""
715
 
716
+ #: admin/settings.php:153
717
+ msgid "Single Video Page"
718
  msgstr ""
719
 
720
+ #: admin/settings.php:160 admin/settings.php:585 includes/functions.php:1156
721
+ msgid "Related Videos"
722
  msgstr ""
723
 
724
+ #: admin/settings.php:167
725
  msgid "Permalink Slugs"
726
  msgstr ""
727
 
728
+ #: admin/settings.php:168
729
  msgid ""
730
  "NOTE: Just make sure that, after updating the fields in this section, you "
731
  "flush the rewrite rules by visiting \"Settings > Permalinks\". Otherwise "
732
  "you'll still see the old links."
733
  msgstr ""
734
 
735
+ #: admin/settings.php:174
 
 
 
 
 
 
 
 
736
  msgid "Privacy Settings"
737
  msgstr ""
738
 
739
+ #: admin/settings.php:175
740
  msgid ""
741
  "These options will help with privacy restrictions such as GDPR and the EU "
742
  "Cookie Law."
743
  msgstr ""
744
 
745
+ #: admin/settings.php:181
746
+ msgid "Misc Settings"
747
+ msgstr ""
748
+
749
+ #: admin/settings.php:188
750
+ msgid "Page Settings"
751
+ msgstr ""
752
+
753
+ #: admin/settings.php:198
754
  msgid "Logo & Branding"
755
  msgstr ""
756
 
757
+ #: admin/settings.php:221
758
  msgid "Player Type"
759
  msgstr ""
760
 
761
+ #: admin/settings.php:225
762
  msgid "JavaScript"
763
  msgstr ""
764
 
765
+ #: admin/settings.php:226
766
  msgid "Iframe"
767
  msgstr ""
768
 
769
+ #: admin/settings.php:232 blocks/blocks.php:108 includes/functions.php:938
770
+ #: premium/widgets/forms/companion.php:16 widgets/forms/video.php:74
 
771
  msgid "Width"
772
  msgstr ""
773
 
774
+ #: admin/settings.php:233 blocks/blocks.php:109 includes/functions.php:939
775
  #, php-format
776
  msgid ""
777
  "In pixels. Maximum width of the player. Leave this field empty to scale "
778
  "100% of its enclosing container/html element."
779
  msgstr ""
780
 
781
+ #: admin/settings.php:239 blocks/blocks.php:110 includes/functions.php:945
782
+ #: includes/functions.php:1168 includes/functions.php:1358
783
+ #: widgets/forms/video.php:79
784
+ msgid "Height (Ratio)"
785
  msgstr ""
786
 
787
+ #: admin/settings.php:242 blocks/blocks.php:111 includes/functions.php:946
788
  msgid ""
789
  "In percentage. 1 to 100. Calculate player's height using the ratio value "
790
  "entered."
791
  msgstr ""
792
 
793
+ #: admin/settings.php:243
794
  msgid "Examples"
795
  msgstr ""
796
 
797
+ #: admin/settings.php:244
798
  msgid "Wide Screen TV"
799
  msgstr ""
800
 
801
+ #: admin/settings.php:245
802
  msgid "Monitor Screens"
803
  msgstr ""
804
 
805
+ #: admin/settings.php:246
806
  msgid "Classic TV"
807
  msgstr ""
808
 
809
+ #: admin/settings.php:247
810
  msgid "Photo Camera"
811
  msgstr ""
812
 
813
+ #: admin/settings.php:248
814
  msgid "Square"
815
  msgstr ""
816
 
817
+ #: admin/settings.php:249
818
  msgid "Cinemascope"
819
  msgstr ""
820
 
821
+ #: admin/settings.php:256 blocks/blocks.php:112 includes/functions.php:952
822
  #: widgets/forms/video.php:86
823
  msgid "Autoplay"
824
  msgstr ""
825
 
826
+ #: admin/settings.php:257
827
  msgid "Check this to start playing the video as soon as it is ready"
828
  msgstr ""
829
 
830
+ #: admin/settings.php:263 blocks/blocks.php:113 includes/functions.php:959
831
  #: widgets/forms/video.php:93
832
  msgid "Loop"
833
  msgstr ""
834
 
835
+ #: admin/settings.php:264
836
  msgid ""
837
  "Check this, so that the video will start over again, every time it is "
838
  "finished"
839
  msgstr ""
840
 
841
+ #: admin/settings.php:270 blocks/blocks.php:114 includes/functions.php:966
842
  #: widgets/forms/video.php:100
843
  msgid "Muted"
844
  msgstr ""
845
 
846
+ #: admin/settings.php:271
847
  msgid "Check this to turn OFF the audio output of the video by default"
848
  msgstr ""
849
 
850
+ #: admin/settings.php:277
851
  msgid "Preload"
852
  msgstr ""
853
 
854
+ #: admin/settings.php:280
855
  msgid "Specifies if and how the video should be loaded when the page loads."
856
  msgstr ""
857
 
858
+ #: admin/settings.php:281
859
  msgid "\"Auto\" - the video should be loaded entirely when the page loads"
860
  msgstr ""
861
 
862
+ #: admin/settings.php:282
863
  msgid "\"Metadata\" - only metadata should be loaded when the page loads"
864
  msgstr ""
865
 
866
+ #: admin/settings.php:283
867
  msgid "\"None\" - the video should not be loaded when the page loads"
868
  msgstr ""
869
 
870
+ #: admin/settings.php:287
871
  msgid "Auto"
872
  msgstr ""
873
 
874
+ #: admin/settings.php:288
875
  msgid "Metadata"
876
  msgstr ""
877
 
878
+ #: admin/settings.php:295 blocks/blocks.php:119 includes/functions.php:974
879
  #: widgets/forms/video.php:104
880
  msgid "Player Controls"
881
  msgstr ""
882
 
883
+ #: admin/settings.php:299 blocks/blocks.php:120 includes/functions.php:978
884
  #: widgets/forms/video.php:109
885
  msgid "Play / Pause"
886
  msgstr ""
887
 
888
+ #: admin/settings.php:300 blocks/blocks.php:121 includes/functions.php:985
889
  #: widgets/forms/video.php:116
890
  msgid "Current Time"
891
  msgstr ""
892
 
893
+ #: admin/settings.php:301 blocks/blocks.php:122 includes/functions.php:992
894
  #: widgets/forms/video.php:123
895
  msgid "Progressbar"
896
  msgstr ""
897
 
898
+ #: admin/settings.php:303 admin/videos.php:172 includes/functions.php:1006
899
  #: widgets/forms/video.php:137
900
  msgid "Subtitles"
901
  msgstr ""
902
 
903
+ #: admin/settings.php:304 blocks/blocks.php:124 includes/functions.php:1013
904
  #: widgets/forms/video.php:144
905
  msgid "Quality Selector"
906
  msgstr ""
907
 
908
+ #: admin/settings.php:305 blocks/blocks.php:125 includes/functions.php:1020
909
  #: widgets/forms/video.php:151
910
  msgid "Speed Control"
911
  msgstr ""
912
 
913
+ #: admin/settings.php:306 blocks/blocks.php:126 includes/functions.php:1027
914
  #: widgets/forms/video.php:158
915
+ msgid "Volume Button"
916
  msgstr ""
917
 
918
+ #: admin/settings.php:307 blocks/blocks.php:127 includes/functions.php:1034
919
  #: widgets/forms/video.php:165
920
+ msgid "Fullscreen Button"
921
+ msgstr ""
922
+
923
+ #: admin/settings.php:309 blocks/blocks.php:129 includes/functions.php:1048
924
+ #: widgets/forms/video.php:179
925
+ msgid "Embed Button"
926
+ msgstr ""
927
+
928
+ #: admin/settings.php:310 blocks/blocks.php:130 includes/functions.php:1055
929
+ #: widgets/forms/video.php:186
930
+ msgid "Download Button"
931
  msgstr ""
932
 
933
+ #: admin/settings.php:316
934
  msgid "Quality Levels"
935
  msgstr ""
936
 
937
+ #: admin/settings.php:317
938
  msgid "Enter the video quality levels, one per line."
939
  msgstr ""
940
 
941
+ #: admin/settings.php:323
942
  msgid "Use Native Controls"
943
  msgstr ""
944
 
945
+ #: admin/settings.php:324
946
  msgid ""
947
  "Enables native player controls on the selected source types. For example, "
948
  "uses YouTube Player for playing YouTube videos & Vimeo Player for playing "
950
  "selected sources."
951
  msgstr ""
952
 
953
+ #: admin/settings.php:338
954
+ msgid "Enable / Disable"
955
+ msgstr ""
956
+
957
+ #: admin/settings.php:343 includes/functions.php:2250
958
+ msgid "Twitter"
959
+ msgstr ""
960
+
961
+ #: admin/settings.php:344 includes/functions.php:2257
962
+ msgid "Linkedin"
963
+ msgstr ""
964
+
965
+ #: admin/settings.php:345
966
+ msgid "Pinterest"
967
+ msgstr ""
968
+
969
+ #: admin/settings.php:346 includes/functions.php:2281
970
+ msgid "Tumblr"
971
+ msgstr ""
972
+
973
+ #: admin/settings.php:347 includes/functions.php:2294
974
+ msgid "WhatsApp"
975
+ msgstr ""
976
+
977
+ #: admin/settings.php:353
978
+ msgid "Open Graph Tags"
979
+ msgstr ""
980
+
981
+ #: admin/settings.php:354
982
+ msgid ""
983
+ "Check this option to enable Facebook Open Graph meta tags and Twitter cards "
984
+ "on the single video pages"
985
+ msgstr ""
986
+
987
+ #: admin/settings.php:360
988
+ msgid "Twitter Username"
989
+ msgstr ""
990
+
991
+ #: admin/settings.php:361
992
+ msgid ""
993
+ "The Twitter @username the player card should be attributed to. Required for "
994
+ "sharing videos in Twitter."
995
+ msgstr ""
996
+
997
+ #: admin/settings.php:370 admin/settings.php:478 blocks/blocks.php:74
998
+ #: includes/functions.php:1079 includes/functions.php:1325
999
+ #: includes/functions.php:1454 widgets/forms/categories.php:20
1000
  #: widgets/forms/search.php:20
1001
  msgid "Select Template"
1002
  msgstr ""
1003
 
1004
+ #: admin/settings.php:371 includes/functions.php:1080
1005
  #, php-format
1006
  msgid ""
1007
  "<a href=\"%s\" target=\"_blank\">Upgrade Pro</a> for more templates (Popup, "
1008
  "Slider, etc.)"
1009
  msgstr ""
1010
 
1011
+ #: admin/settings.php:378
1012
+ msgid "Image Width"
1013
+ msgstr ""
1014
+
1015
+ #: admin/settings.php:379
1016
+ #, php-format
1017
+ msgid "Always 100% of its enclosing container/html element."
1018
+ msgstr ""
1019
+
1020
+ #: admin/settings.php:385
1021
+ msgid "Image Height (Ratio)"
1022
+ msgstr ""
1023
+
1024
+ #: admin/settings.php:386
1025
+ msgid ""
1026
+ "In percentage. 1 to 100. Calculate images's height using the ratio value "
1027
+ "entered."
1028
+ msgstr ""
1029
+
1030
+ #: admin/settings.php:392 admin/settings.php:489 admin/settings.php:607
1031
+ #: blocks/blocks.php:77 includes/functions.php:1175 includes/functions.php:1365
1032
  #: widgets/forms/categories.php:55
1033
  msgid "Columns"
1034
  msgstr ""
1035
 
1036
+ #: admin/settings.php:393
1037
  msgid "Enter the number of columns you like to have in the gallery view."
1038
  msgstr ""
1039
 
1040
+ #: admin/settings.php:402 admin/settings.php:499 admin/settings.php:617
1041
+ #: blocks/blocks.php:78 includes/functions.php:1115 includes/functions.php:1375
1042
  #: widgets/forms/categories.php:60
1043
  msgid "Limit (per page)"
1044
  msgstr ""
1045
 
1046
+ #: admin/settings.php:403 admin/settings.php:618
1047
  msgid ""
1048
  "Number of videos to show per page. Use a value of \"0\" to show all videos."
1049
  msgstr ""
1050
 
1051
+ #: admin/settings.php:409 admin/settings.php:624 blocks/blocks.php:79
1052
+ #: includes/functions.php:1125 includes/functions.php:1385
1053
  #: premium/admin/partials/automations-sources.php:171
1054
  #: premium/admin/partials/automations-sources.php:174
1055
  #: widgets/forms/categories.php:65
1056
  msgid "Order By"
1057
  msgstr ""
1058
 
1059
+ #: admin/settings.php:413 admin/settings.php:628 includes/functions.php:1072
1060
+ #: includes/functions.php:1129 includes/functions.php:1318
1061
  #: premium/admin/partials/automations-sources.php:181
1062
  #: premium/public/templates/user-dashboard.php:78
1063
  #: widgets/forms/categories.php:15 widgets/forms/search.php:15
1065
  msgid "Title"
1066
  msgstr ""
1067
 
1068
+ #: admin/settings.php:414 admin/settings.php:629 includes/functions.php:1130
1069
  msgid "Date Posted"
1070
  msgstr ""
1071
 
1072
+ #: admin/settings.php:415 admin/settings.php:454 admin/settings.php:584
1073
+ #: admin/settings.php:630 includes/functions.php:1131
1074
+ #: includes/functions.php:1245
1075
  #: premium/admin/partials/automations-sources.php:182
1076
  msgid "Views Count"
1077
  msgstr ""
1078
 
1079
+ #: admin/settings.php:416 admin/settings.php:631 includes/functions.php:1132
1080
  msgid "Random"
1081
  msgstr ""
1082
 
1083
+ #: admin/settings.php:422 admin/settings.php:519 admin/settings.php:637
1084
+ #: blocks/blocks.php:84 includes/functions.php:1138 includes/functions.php:1398
1085
  #: widgets/forms/categories.php:83
1086
  msgid "Order"
1087
  msgstr ""
1088
 
1089
+ #: admin/settings.php:426 admin/settings.php:523 admin/settings.php:641
1090
  msgid "Ascending"
1091
  msgstr ""
1092
 
1093
+ #: admin/settings.php:427 admin/settings.php:524 admin/settings.php:642
1094
  msgid "Descending"
1095
  msgstr ""
1096
 
1097
+ #: admin/settings.php:433 includes/functions.php:1185
1098
  msgid "Image Position (Thumbnails)"
1099
  msgstr ""
1100
 
1101
+ #: admin/settings.php:437 includes/functions.php:1189
1102
  msgid "Top"
1103
  msgstr ""
1104
 
1105
+ #: admin/settings.php:438 includes/functions.php:1190
1106
  msgid "Left"
1107
  msgstr ""
1108
 
1109
+ #: admin/settings.php:444 includes/functions.php:1196
1110
  msgid "Show / Hide (Thumbnails)"
1111
  msgstr ""
1112
 
1113
+ #: admin/settings.php:448 includes/functions.php:1203
1114
  msgid "Videos Count"
1115
  msgstr ""
1116
 
1117
+ #: admin/settings.php:449 includes/functions.php:1210
1118
  #: premium/admin/slider.php:69 premium/public/slider.php:91
1119
  #: premium/public/templates/video-form.php:45
1120
  msgid "Video Title"
1121
  msgstr ""
1122
 
1123
+ #: admin/settings.php:450 admin/settings.php:580 includes/functions.php:1217
1124
  msgid "Category Name(s)"
1125
  msgstr ""
1126
 
1127
+ #: admin/settings.php:451 admin/settings.php:581 includes/functions.php:1224
1128
  msgid "Tag Name(s)"
1129
  msgstr ""
1130
 
1131
+ #: admin/settings.php:452 admin/settings.php:582 includes/functions.php:1231
1132
  msgid "Date Added"
1133
  msgstr ""
1134
 
1135
+ #: admin/settings.php:453 admin/settings.php:583 includes/functions.php:1238
1136
  msgid "Author Name"
1137
  msgstr ""
1138
 
1139
+ #: admin/settings.php:455 includes/functions.php:1252
1140
  msgid "Video Duration"
1141
  msgstr ""
1142
 
1143
+ #: admin/settings.php:456 includes/functions.php:1259
1144
  msgid "Video Excerpt (Short Description)"
1145
  msgstr ""
1146
 
1147
+ #: admin/settings.php:462 includes/functions.php:1266
1148
+ msgid "Title Length"
1149
  msgstr ""
1150
 
1151
+ #: admin/settings.php:463 admin/settings.php:470
1152
  msgid "Number of characters."
1153
  msgstr ""
1154
 
1155
+ #: admin/settings.php:469 includes/functions.php:1273
1156
+ msgid "Excerpt Length"
1157
+ msgstr ""
1158
+
1159
+ #: admin/settings.php:482 blocks/blocks.php:75 includes/functions.php:1329
1160
  #: widgets/forms/categories.php:24
1161
  msgid "Grid"
1162
  msgstr ""
1163
 
1164
+ #: admin/settings.php:483 blocks/blocks.php:76 includes/functions.php:1330
1165
  #: widgets/forms/categories.php:25
1166
  msgid "List"
1167
  msgstr ""
1168
 
1169
+ #: admin/settings.php:490
1170
  msgid "Enter the number of columns you like to have in your categories page."
1171
  msgstr ""
1172
 
1173
+ #: admin/settings.php:500
1174
  msgid ""
1175
  "Number of categories to show per page. Use a value of \"0\" to show all "
1176
  "categories."
1177
  msgstr ""
1178
 
1179
+ #: admin/settings.php:506
1180
  msgid "Order by"
1181
  msgstr ""
1182
 
1183
+ #: admin/settings.php:511 blocks/blocks.php:81 includes/functions.php:1390
1184
  #: widgets/forms/categories.php:70
1185
  msgid "Count"
1186
  msgstr ""
1187
 
1188
+ #: admin/settings.php:512 blocks/blocks.php:82 includes/functions.php:1391
1189
  #: widgets/forms/categories.php:71
1190
  msgid "Name"
1191
  msgstr ""
1192
 
1193
+ #: admin/settings.php:513 blocks/blocks.php:83 includes/functions.php:1392
1194
  #: widgets/forms/categories.php:72
1195
  msgid "Slug"
1196
  msgstr ""
1197
 
1198
+ #: admin/settings.php:530 blocks/blocks.php:87 includes/functions.php:1409
1199
  #: widgets/forms/categories.php:101
1200
  msgid "Show Hierarchy"
1201
  msgstr ""
1202
 
1203
+ #: admin/settings.php:531
1204
  msgid "Check this to show the child categories"
1205
  msgstr ""
1206
 
1207
+ #: admin/settings.php:537 blocks/blocks.php:88 includes/functions.php:1416
1208
  #: widgets/forms/categories.php:108
1209
  msgid "Show Description"
1210
  msgstr ""
1211
 
1212
+ #: admin/settings.php:538
1213
  msgid "Check this to show the categories description"
1214
  msgstr ""
1215
 
1216
+ #: admin/settings.php:544 blocks/blocks.php:89 includes/functions.php:1423
1217
  #: widgets/forms/categories.php:115
1218
  msgid "Show Videos Count"
1219
  msgstr ""
1220
 
1221
+ #: admin/settings.php:545
1222
  msgid "Check this to show the videos count next to the category name"
1223
  msgstr ""
1224
 
1225
+ #: admin/settings.php:551 blocks/blocks.php:90 includes/functions.php:1430
1226
  #: widgets/forms/categories.php:122
1227
  msgid "Hide Empty Categories"
1228
  msgstr ""
1229
 
1230
+ #: admin/settings.php:552
1231
  msgid "Check this to hide categories with no videos"
1232
  msgstr ""
1233
 
1234
+ #: admin/settings.php:558
1235
+ msgid "Link to Parent Category"
1236
  msgstr ""
1237
 
1238
+ #: admin/settings.php:559
1239
+ msgid ""
1240
+ "Add a link to the parent category page on the single category pages. When "
1241
+ "there is no parent, links to the \"All Categories\" page."
 
 
1242
  msgstr ""
1243
 
1244
+ #: admin/settings.php:567
1245
+ msgid "Ajax"
1246
  msgstr ""
1247
 
1248
+ #: admin/settings.php:568
1249
+ msgid "Check this to enable Pagination with Ajax"
1250
  msgstr ""
1251
 
1252
+ #: admin/settings.php:576 admin/settings.php:648
1253
+ msgid "Show / Hide"
1254
  msgstr ""
1255
 
1256
+ #: admin/settings.php:592
1257
+ msgid "Comments"
 
1258
  msgstr ""
1259
 
1260
+ #: admin/settings.php:596
1261
+ msgid "Enable comments (can be overridden per video)"
1262
  msgstr ""
1263
 
1264
+ #: admin/settings.php:597
1265
+ msgid "Forcefully enable comments on all the video pages"
 
1266
  msgstr ""
1267
 
1268
+ #: admin/settings.php:598
1269
+ msgid "Disable comments (can be overridden per video)"
 
 
1270
  msgstr ""
1271
 
1272
+ #: admin/settings.php:599
1273
+ msgid "Forcefully disable comments on all the video pages"
1274
  msgstr ""
1275
 
1276
+ #: admin/settings.php:608
1277
+ msgid ""
1278
+ "Enter the number of columns you like to have in the related videos section."
1279
  msgstr ""
1280
 
1281
+ #: admin/settings.php:652 includes/functions.php:1280
1282
+ msgid "Pagination"
1283
  msgstr ""
1284
 
1285
+ #: admin/settings.php:660
1286
+ msgid "Video Detail Page"
1287
  msgstr ""
1288
 
1289
+ #: admin/settings.php:661
1290
+ msgid "Replaces the SLUG value used by custom post type \"aiovg_videos\"."
1291
  msgstr ""
1292
 
1293
+ #: admin/settings.php:669
1294
+ msgid "GDPR - Show Consent"
1295
  msgstr ""
1296
 
1297
+ #: admin/settings.php:670
1298
+ msgid "Ask for consent before loading YouTube / Vimeo content."
1299
  msgstr ""
1300
 
1301
+ #: admin/settings.php:676
1302
+ msgid "GDPR - Consent Message"
1303
  msgstr ""
1304
 
1305
+ #: admin/settings.php:683
1306
+ msgid "GDPR - Consent Button Label"
1307
  msgstr ""
1308
 
1309
+ #: admin/settings.php:690
1310
+ msgid "Disable Cookies"
1311
  msgstr ""
1312
 
1313
+ #: admin/settings.php:694
1314
  msgid ""
1315
+ "<strong>aiovg_videos_views</strong> - check this option for Total Views, but "
1316
+ "uncheck for the Unique Views. eg. 1 Person can watch a video 10 times and "
1317
+ "that will go under Total Views, but they will be stored once under Unique "
1318
+ "Views."
 
 
1319
  msgstr ""
1320
 
1321
+ #: admin/settings.php:695
1322
  msgid ""
1323
+ "<strong>aiovg_rand_seed</strong> - uncheck this option if you show videos in "
1324
+ "a Random order with the Pagination on any of your pages."
 
 
 
 
 
 
 
 
1325
  msgstr ""
1326
 
1327
+ #: admin/settings.php:703
1328
  msgid "Remove data on uninstall?"
1329
  msgstr ""
1330
 
1331
+ #: admin/settings.php:704
1332
  msgid ""
1333
  "Check this box to delete all of the plugin data (database stored content) "
1334
  "when uninstalled"
1335
  msgstr ""
1336
 
1337
+ #: admin/settings.php:710
1338
  msgid "Delete media files?"
1339
  msgstr ""
1340
 
1341
+ #: admin/settings.php:711
1342
  msgid ""
1343
  "Check this box to also delete the associated media files when a video post "
1344
  "or a video category is deleted"
1345
  msgstr ""
1346
 
1347
+ #: admin/settings.php:717
1348
  msgid "Vimeo Access Token"
1349
  msgstr ""
1350
 
1351
+ #: admin/settings.php:718
1352
  #, php-format
1353
  msgid ""
1354
  "Follow <a href=\"%s\" target=\"_blank\">this guide</a> to get your own "
1355
  "access token."
1356
  msgstr ""
1357
 
1358
+ #: admin/settings.php:726
1359
  msgid "Single Category Page"
1360
  msgstr ""
1361
 
1362
+ #: admin/settings.php:727
1363
  msgid ""
1364
  "This is the page where the videos from a particular category is displayed. "
1365
  "The [aiovg_category] short code must be on this page."
1366
  msgstr ""
1367
 
1368
+ #: admin/settings.php:733
1369
  msgid "Single Tag Page"
1370
  msgstr ""
1371
 
1372
+ #: admin/settings.php:734
1373
  msgid ""
1374
  "This is the page where the videos from a particular tag is displayed. The "
1375
  "[aiovg_tag] short code must be on this page."
1376
  msgstr ""
1377
 
1378
+ #: admin/settings.php:740
1379
  msgid "Search Page"
1380
  msgstr ""
1381
 
1382
+ #: admin/settings.php:741
1383
  msgid ""
1384
  "This is the page where the search results are displayed. The [aiovg_search] "
1385
  "short code must be on this page."
1386
  msgstr ""
1387
 
1388
+ #: admin/settings.php:748
 
 
 
 
1389
  msgid ""
1390
  "This is the page where the videos from an user is displayed. The "
1391
  "[aiovg_user_videos] short code must be on this page."
1392
  msgstr ""
1393
 
1394
+ #: admin/settings.php:755
 
 
 
 
1395
  msgid "This is the page used to show the video player."
1396
  msgstr ""
1397
 
1398
+ #: admin/settings.php:766
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1399
  msgid "Show Logo"
1400
  msgstr ""
1401
 
1402
+ #: admin/settings.php:767
1403
  msgid "Check this option to show the watermark on the video."
1404
  msgstr ""
1405
 
1406
+ #: admin/settings.php:773
1407
  msgid "Logo Image"
1408
  msgstr ""
1409
 
1410
+ #: admin/settings.php:774
1411
  msgid ""
1412
  "Upload the image file of your logo. We recommend using the transparent PNG "
1413
  "format with width below 100 pixels. If you do not enter any image, no logo "
1414
  "will displayed."
1415
  msgstr ""
1416
 
1417
+ #: admin/settings.php:780
1418
  msgid "Logo Link"
1419
  msgstr ""
1420
 
1421
+ #: admin/settings.php:781
1422
  msgid ""
1423
  "The URL to visit when the watermark image is clicked. Clicking a logo will "
1424
  "have no affect unless this is configured."
1425
  msgstr ""
1426
 
1427
+ #: admin/settings.php:787
1428
  msgid "Logo Position"
1429
  msgstr ""
1430
 
1431
+ #: admin/settings.php:788
1432
  msgid "This sets the corner in which to display the watermark."
1433
  msgstr ""
1434
 
1435
+ #: admin/settings.php:791
1436
  msgid "Top Left"
1437
  msgstr ""
1438
 
1439
+ #: admin/settings.php:792
1440
  msgid "Top Right"
1441
  msgstr ""
1442
 
1443
+ #: admin/settings.php:793
1444
  msgid "Bottom Left"
1445
  msgstr ""
1446
 
1447
+ #: admin/settings.php:794
1448
  msgid "Bottom Right"
1449
  msgstr ""
1450
 
1451
+ #: admin/settings.php:800
1452
  msgid "Logo Margin"
1453
  msgstr ""
1454
 
1455
+ #: admin/settings.php:801
1456
  msgid "The distance, in pixels, of the logo from the edges of the display."
1457
  msgstr ""
1458
 
1459
+ #: admin/settings.php:807
1460
  msgid "Copyright Text"
1461
  msgstr ""
1462
 
1463
+ #: admin/settings.php:808
1464
  msgid "Text that is shown when a user right-clicks the player with the mouse."
1465
  msgstr ""
1466
 
1467
+ #: admin/settings.php:1084
1468
  msgid "Choose File"
1469
  msgstr ""
1470
 
1471
+ #: admin/settings.php:1133
1472
  msgid "Select a page"
1473
  msgstr ""
1474
 
1522
  msgid "Search Tags"
1523
  msgstr ""
1524
 
1525
+ #: admin/tags.php:80 includes/functions.php:688
1526
  msgid "No tags found"
1527
  msgstr ""
1528
 
1542
  msgid "All-in-One Video Gallery - Videos"
1543
  msgstr ""
1544
 
1545
+ #: admin/videos.php:33 admin/videos.php:74 admin/videos.php:419
1546
  msgid "All Videos"
1547
  msgstr ""
1548
 
1590
  msgid "Search Video"
1591
  msgstr ""
1592
 
1593
+ #: admin/videos.php:83 includes/functions.php:682
1594
  msgid "No videos found"
1595
  msgstr ""
1596
 
1646
  msgid "Video Sources"
1647
  msgstr ""
1648
 
1649
+ #: admin/videos.php:420
1650
  msgid "Featured only"
1651
  msgstr ""
1652
 
1653
+ #: admin/videos.php:494
1654
  msgid "Copy URL"
1655
  msgstr ""
1656
 
1657
+ #: admin/videos.php:503
1658
  msgid "Copy Shortcode"
1659
  msgstr ""
1660
 
1661
+ #: admin/videos.php:525
1662
  msgid "Misc"
1663
  msgstr ""
1664
 
1665
+ #: admin/videos.php:572
1666
  msgid "Author"
1667
  msgstr ""
1668
 
1674
  msgid "Display a list of video categories."
1675
  msgstr ""
1676
 
1677
+ #: blocks/blocks.php:85 includes/functions.php:1142 includes/functions.php:1402
1678
  #: widgets/forms/categories.php:87
1679
  msgid "ASC"
1680
  msgstr ""
1681
 
1682
+ #: blocks/blocks.php:86 includes/functions.php:1143 includes/functions.php:1403
1683
  #: widgets/forms/categories.php:88
1684
  msgid "DESC"
1685
  msgstr ""
1686
 
1687
+ #: blocks/blocks.php:91 includes/functions.php:1437
1688
  msgid "Show Pagination"
1689
  msgstr ""
1690
 
1708
  msgid "A videos search form for your site."
1709
  msgstr ""
1710
 
1711
+ #: blocks/blocks.php:97 includes/functions.php:1458 widgets/forms/search.php:24
1712
  msgid "Vertical"
1713
  msgstr ""
1714
 
1715
+ #: blocks/blocks.php:98 includes/functions.php:1459 widgets/forms/search.php:25
1716
  msgid "Horizontal"
1717
  msgstr ""
1718
 
1719
+ #: blocks/blocks.php:99 includes/functions.php:1472 widgets/forms/search.php:45
1720
  msgid "Search By Categories"
1721
  msgstr ""
1722
 
1723
+ #: blocks/blocks.php:100 includes/functions.php:1465
1724
  #: widgets/forms/search.php:38
1725
  msgid "Search By Video Title, Description"
1726
  msgstr ""
1727
 
1728
+ #: blocks/blocks.php:101 includes/functions.php:1479
1729
  #: widgets/forms/search.php:52
1730
  msgid "Search By Tags"
1731
  msgstr ""
1827
  msgid "Player Embed"
1828
  msgstr ""
1829
 
1830
+ #: includes/functions.php:489
1831
  msgid ""
1832
  "<strong>Please accept cookies to play this video</strong>. By accepting you "
1833
  "will be accessing content from a service provided by an external third party."
1834
  msgstr ""
1835
 
1836
+ #: includes/functions.php:490
1837
  msgid "Accept"
1838
  msgstr ""
1839
 
1840
+ #: includes/functions.php:874
1841
  msgid "Single Video"
1842
  msgstr ""
1843
 
1844
+ #: includes/functions.php:881 widgets/forms/video.php:23
1845
  #: widgets/forms/video.php:39
1846
  msgid "Select Video"
1847
  msgstr ""
1848
 
1849
+ #: includes/functions.php:897 includes/functions.php:932
1850
  msgid ""
1851
  "Enter your direct file URL in the textbox above (OR) upload your file using "
1852
  "the \"Upload File\" link."
1853
  msgstr ""
1854
 
1855
+ #: includes/functions.php:1087 premium/public/templates/video-form.php:59
1856
  msgid "Select Categories"
1857
  msgstr ""
1858
 
1859
+ #: includes/functions.php:1094 premium/public/templates/video-form.php:349
1860
  #: public/templates/search-form-template-horizontal.php:66
1861
  #: public/templates/search-form-template-vertical.php:66
1862
  msgid "Select Tags"
1863
  msgstr ""
1864
 
1865
+ #: includes/functions.php:1101
1866
  msgid "Include Video ID(s)"
1867
  msgstr ""
1868
 
1869
+ #: includes/functions.php:1108
1870
  msgid "Exclude Video ID(s)"
1871
  msgstr ""
1872
 
1873
+ #: includes/functions.php:1149
1874
  msgid "Featured Only"
1875
  msgstr ""
1876
 
1877
+ #: includes/functions.php:1156
1878
  msgid "Follow URL"
1879
  msgstr ""
1880
 
1881
+ #: includes/functions.php:1164
1882
  msgid "Gallery"
1883
  msgstr ""
1884
 
1885
+ #: includes/functions.php:1287
1886
  msgid "More Button"
1887
  msgstr ""
1888
 
1889
+ #: includes/functions.php:1294 widgets/forms/categories.php:134
1890
  msgid "More Button Label"
1891
  msgstr ""
1892
 
1893
+ #: includes/functions.php:1297 widgets/categories.php:67 widgets/videos.php:93
1894
  msgid "Show More"
1895
  msgstr ""
1896
 
1897
+ #: includes/functions.php:1301 widgets/forms/categories.php:139
1898
  msgid "More Button Link"
1899
  msgstr ""
1900
 
1901
+ #: includes/functions.php:1302 widgets/forms/categories.php:141
1902
  msgid "Leave this field blank to use Ajax"
1903
  msgstr ""
1904
 
1905
+ #: includes/functions.php:1311
1906
  msgid "Categories"
1907
  msgstr ""
1908
 
1909
+ #: includes/functions.php:1344
1910
  msgid "Include Category ID(s)"
1911
  msgstr ""
1912
 
1913
+ #: includes/functions.php:1351
1914
  msgid "Exclude Category ID(s)"
1915
  msgstr ""
1916
 
1917
+ #: includes/functions.php:1447
1918
  msgid "Search Form"
1919
  msgstr ""
1920
 
1921
+ #: includes/functions.php:1569
1922
  msgid "Self Hosted"
1923
  msgstr ""
1924
 
1925
+ #: includes/functions.php:1569
1926
  msgid "External URL"
1927
  msgstr ""
1928
 
1929
+ #: includes/functions.php:1577
1930
  msgid "Iframe Embed Code"
1931
  msgstr ""
1932
 
1933
+ #: includes/functions.php:1591
1934
  msgid "Classic"
1935
  msgstr ""
1936
 
1937
+ #: includes/functions.php:2172
1938
  msgid "&laquo;"
1939
  msgstr ""
1940
 
1941
+ #: includes/functions.php:2173
1942
  msgid "&raquo;"
1943
  msgstr ""
1944
 
1945
+ #: includes/functions.php:2196
1946
  #, php-format
1947
  msgid "Page %d of %d"
1948
  msgstr ""
1949
 
1950
+ #: includes/functions.php:2264
1951
  msgid "Pin It"
1952
  msgstr ""
1953
 
1954
+ #: includes/player.php:564 public/templates/player-html5.php:723
1955
+ msgid "Paste this code in your HTML page"
1956
+ msgstr ""
1957
+
1958
  #: premium/admin/adaptive-streaming.php:41
1959
  #: premium/admin/partials/adaptive-streaming.php:16
1960
  #: premium/admin/partials/adaptive-streaming.php:20
2675
  "exec() is disabled in PHP settings. Please contact your hosting provider."
2676
  msgstr ""
2677
 
2678
+ #: premium/admin/user.php:34 premium/admin/user.php:51
 
 
 
 
2679
  msgid "Front-end Video Submission"
2680
  msgstr ""
2681
 
3267
  "Publisher Tag (GPT)</a> in the <a href=\"%s\">plugin settings</a>."
3268
  msgstr ""
3269
 
3270
+ #: public/public.php:233
3271
  msgid "No tags found."
3272
  msgstr ""
3273
 
3274
+ #: public/public.php:985
3275
  #, php-format
3276
  msgid "Showing results for \"%s\""
3277
  msgstr ""
3278
 
3279
+ #: public/search.php:70 widgets/search.php:84
3280
  msgid "Search form disabled."
3281
  msgstr ""
3282
 
3323
  msgid "You may also like"
3324
  msgstr ""
3325
 
3326
+ #: public/video.php:239
3327
+ msgid "Download file URL is empty."
3328
+ msgstr ""
3329
+
3330
+ #: public/video.php:280 public/video.php:285
3331
+ msgid "File is not readable or not found."
3332
+ msgstr ""
3333
+
3334
+ #: public/videos.php:141
3335
  msgid "Sub Categories"
3336
  msgstr ""
3337
 
3347
  msgid "Latest Video"
3348
  msgstr ""
3349
 
3350
+ #: widgets/video.php:216
3351
  msgid "No videos found. Click this to display the last added video."
3352
  msgstr ""
3353
 
public/assets/css/backward-compatibility.css DELETED
@@ -1,210 +0,0 @@
1
- /*----------------------------------------------------------------------------------------------
2
- *
3
- * Version <= 2.4.4
4
- *
5
- *--------------------------------------------------------------------------------------------*/
6
- @font-face {
7
- font-family: 'aiovg-icons';
8
- src: url('../fonts/aiovg-icons.eot?j6tmf3');
9
- src: url('../fonts/aiovg-icons.eot?j6tmf3#iefix') format('embedded-opentype'),
10
- url('../fonts/aiovg-icons.ttf?j6tmf3') format('truetype'),
11
- url('../fonts/aiovg-icons.woff?j6tmf3') format('woff'),
12
- url('../fonts/aiovg-icons.svg?j6tmf3#aiovg-icons') format('svg');
13
- font-weight: normal;
14
- font-style: normal;
15
- font-display: swap;
16
- }
17
-
18
- [class^="aiovg-icon-"],
19
- [class*=" aiovg-icon-"] {
20
- /* use !important to prevent issues with browser extensions that change fonts */
21
- font-family: 'aiovg-icons' !important;
22
- speak: none;
23
- color: #666;
24
- font-style: normal;
25
- font-weight: normal;
26
- font-variant: normal;
27
- text-transform: none;
28
- line-height: 1;
29
-
30
- /* Better Font Rendering =========== */
31
- -webkit-font-smoothing: antialiased;
32
- -moz-osx-font-smoothing: grayscale;
33
- }
34
-
35
- .aiovg-icon-videos:before,
36
- .aiovg-icon-film:before {
37
- content: "\e913";
38
- }
39
-
40
- .aiovg-icon-categories:before,
41
- .aiovg-icon-folder-open:before {
42
- content: "\e930";
43
- }
44
-
45
- .aiovg-icon-views:before,
46
- .aiovg-icon-eye:before {
47
- content: "\e9ce";
48
- }
49
-
50
- .aiovg-icon-tags:before {
51
- content: "\e936";
52
- }
53
-
54
- .aiovg .aiovg-play-icon {
55
- position: absolute;
56
- background-image: url( '../../../public/assets/images/play.png' );
57
- background-position: center center;
58
- background-repeat: no-repeat;
59
- width: 100%;
60
- height: 100%;
61
- top: 0;
62
- left: 0;
63
- pointer-events: none;
64
- z-index: 3;
65
- }
66
-
67
- /*----------------------------------------------------------------------------------------------
68
- *
69
- * Version <= 2.4.3
70
- *
71
- *--------------------------------------------------------------------------------------------*/
72
- .aiovg .aiovg-play {
73
- position: absolute;
74
- width: 32px;
75
- height: 32px;
76
- margin: -15px 0px 0px -15px !important;
77
- padding: 0px;
78
- top: 50%;
79
- left: 50%;
80
- pointer-events: none;
81
- z-index: 3;
82
- }
83
-
84
- /*----------------------------------------------------------------------------------------------
85
- *
86
- * Version <= 1.5.6
87
- *
88
- *--------------------------------------------------------------------------------------------*/
89
- .aiovg .fa {
90
- /* use !important to prevent issues with browser extensions that change fonts */
91
- font-family: 'aiovg-icons' !important;
92
- speak: none;
93
- color: #666;
94
- font-style: normal;
95
- font-weight: normal;
96
- font-variant: normal;
97
- text-transform: none;
98
- line-height: 1;
99
-
100
- /* Better Font Rendering =========== */
101
- -webkit-font-smoothing: antialiased;
102
- -moz-osx-font-smoothing: grayscale;
103
- }
104
-
105
- .aiovg .fa-file-video-o:before {
106
- content: "\e913";
107
- }
108
-
109
- .aiovg .fa-folder-open-o:before {
110
- content: "\e930";
111
- }
112
-
113
- .aiovg .fa-eye:before {
114
- content: "\e9ce";
115
- }
116
-
117
- .aiovg .row {
118
- display: -webkit-flex; /* Safari */
119
- -webkit-flex-wrap: wrap; /* Safari 6.1+ */
120
- display: flex;
121
- flex-wrap: wrap;
122
- margin: 0 -15px;
123
- }
124
-
125
- .aiovg .row .row,
126
- .aiovg .aiovg-slick-videos .row {
127
- margin: 0;
128
- }
129
-
130
- .aiovg .col-md-1,
131
- .aiovg .col-md-2,
132
- .aiovg .col-md-3,
133
- .aiovg .col-md-4,
134
- .aiovg .col-md-6,
135
- .aiovg .col-md-12 {
136
- width: 100%;
137
- }
138
-
139
- .aiovg .thumbnail {
140
- margin: 15px;
141
- }
142
-
143
- .aiovg.aiovg-slider .thumbnail {
144
- margin: 0;
145
- }
146
-
147
- .aiovg .thumbnail img {
148
- box-shadow: none;
149
- }
150
-
151
- .aiovg .caption {
152
- margin: 0;
153
- padding: 7px 0;
154
- }
155
-
156
- .aiovg .caption .aiovg-title {
157
- margin: 0 !important;
158
- }
159
-
160
- .aiovg .caption .aiovg-title a {
161
- text-decoration: none;
162
- }
163
-
164
- .aiovg .caption .aiovg-title small {
165
- font-weight: normal;
166
- }
167
-
168
- .aiovg .caption .aiovg-category small,
169
- .aiovg .caption .aiovg-views small {
170
- font-size: inherit;
171
- }
172
-
173
- .aiovg-slick .fa {
174
- color: inherit;
175
- font-style: normal;
176
- }
177
-
178
- .aiovg-slick-prev .fa:before {
179
- content: "❮";
180
- }
181
-
182
- .aiovg-slick-next .fa:before {
183
- content: "❯";
184
- }
185
-
186
- @media only screen and (min-width: 481px) {
187
- .aiovg .col-md-1 {
188
- width: 8.33%;
189
- }
190
-
191
- .aiovg .col-md-2 {
192
- width: 16.66%;
193
- }
194
-
195
- .aiovg .col-md-3 {
196
- width: 25%;
197
- }
198
-
199
- .aiovg .col-md-4 {
200
- width: 33.33%;
201
- }
202
-
203
- .aiovg .col-md-6 {
204
- width: 50%;
205
- }
206
-
207
- .aiovg .col-md-8 {
208
- width: 66.66%;
209
- }
210
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
public/assets/css/public.css CHANGED
@@ -3,6 +3,35 @@
3
  * Global
4
  *
5
  *--------------------------------------------------------------------------------------------*/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  .aiovg,
7
  .aiovg-header {
8
  margin-bottom: 10px;
@@ -88,6 +117,188 @@
88
  }
89
  }
90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  /*----------------------------------------------------------------------------------------------
92
  *
93
  * Icons
@@ -118,6 +329,14 @@
118
  z-index: 3;
119
  }
120
 
 
 
 
 
 
 
 
 
121
  /*----------------------------------------------------------------------------------------------
122
  *
123
  * Video Player
@@ -193,17 +412,144 @@
193
  .aiovg-player .vjs-waiting .vjs-big-play-button,
194
  .vjs-waiting .vjs-big-play-button {
195
  display: none !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  }
197
 
198
- .aiovg-player .vjs-ended .vjs-control-bar,
199
- .aiovg-player .vjs-ended .vjs-text-track-display,
200
- .aiovg-player .vjs-ended .vjs-logo {
201
- display: none;
202
  }
203
 
204
- .aiovg-player .vjs-ended .vjs-poster,
205
- .aiovg-player .vjs-ended .vjs-big-play-button {
 
 
 
 
206
  display: block;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  }
208
 
209
  .aiovg-player .vjs-logo {
@@ -229,6 +575,17 @@
229
  max-width: 100%;
230
  }
231
 
 
 
 
 
 
 
 
 
 
 
 
232
  .aiovg-privacy-wrapper {
233
  position: absolute;
234
  width: 100%;
3
  * Global
4
  *
5
  *--------------------------------------------------------------------------------------------*/
6
+ @font-face {
7
+ font-family: 'aiovg-icons';
8
+ src: url('../fonts/aiovg-icons.eot?j6tmf3');
9
+ src: url('../fonts/aiovg-icons.eot?j6tmf3#iefix') format('embedded-opentype'),
10
+ url('../fonts/aiovg-icons.ttf?j6tmf3') format('truetype'),
11
+ url('../fonts/aiovg-icons.woff?j6tmf3') format('woff'),
12
+ url('../fonts/aiovg-icons.svg?j6tmf3#aiovg-icons') format('svg');
13
+ font-weight: normal;
14
+ font-style: normal;
15
+ font-display: swap;
16
+ }
17
+
18
+ [class^="aiovg-icon-"],
19
+ [class*=" aiovg-icon-"] {
20
+ /* use !important to prevent issues with browser extensions that change fonts */
21
+ font-family: 'aiovg-icons' !important;
22
+ speak: none;
23
+ color: #666;
24
+ font-style: normal;
25
+ font-weight: normal;
26
+ font-variant: normal;
27
+ text-transform: none;
28
+ line-height: 1;
29
+
30
+ /* Better Font Rendering =========== */
31
+ -webkit-font-smoothing: antialiased;
32
+ -moz-osx-font-smoothing: grayscale;
33
+ }
34
+
35
  .aiovg,
36
  .aiovg-header {
37
  margin-bottom: 10px;
117
  }
118
  }
119
 
120
+ /*----------------------------------------------------------------------------------------------
121
+ *
122
+ * Version <= 1.5.6
123
+ *
124
+ *--------------------------------------------------------------------------------------------*/
125
+ .aiovg .fa {
126
+ /* use !important to prevent issues with browser extensions that change fonts */
127
+ font-family: 'aiovg-icons' !important;
128
+ speak: none;
129
+ color: #666;
130
+ font-style: normal;
131
+ font-weight: normal;
132
+ font-variant: normal;
133
+ text-transform: none;
134
+ line-height: 1;
135
+
136
+ /* Better Font Rendering =========== */
137
+ -webkit-font-smoothing: antialiased;
138
+ -moz-osx-font-smoothing: grayscale;
139
+ }
140
+
141
+ .aiovg .fa-file-video-o:before {
142
+ content: "\e913";
143
+ }
144
+
145
+ .aiovg .fa-folder-open-o:before {
146
+ content: "\e930";
147
+ }
148
+
149
+ .aiovg .fa-eye:before {
150
+ content: "\e9ce";
151
+ }
152
+
153
+ .aiovg .row {
154
+ display: -webkit-flex; /* Safari */
155
+ -webkit-flex-wrap: wrap; /* Safari 6.1+ */
156
+ display: flex;
157
+ flex-wrap: wrap;
158
+ margin: 0 -15px;
159
+ }
160
+
161
+ .aiovg .row .row,
162
+ .aiovg .aiovg-slick-videos .row {
163
+ margin: 0;
164
+ }
165
+
166
+ .aiovg .col-md-1,
167
+ .aiovg .col-md-2,
168
+ .aiovg .col-md-3,
169
+ .aiovg .col-md-4,
170
+ .aiovg .col-md-6,
171
+ .aiovg .col-md-12 {
172
+ width: 100%;
173
+ }
174
+
175
+ .aiovg .thumbnail {
176
+ margin: 15px;
177
+ }
178
+
179
+ .aiovg.aiovg-slider .thumbnail {
180
+ margin: 0;
181
+ }
182
+
183
+ .aiovg .thumbnail img {
184
+ box-shadow: none;
185
+ }
186
+
187
+ .aiovg .caption {
188
+ margin: 0;
189
+ padding: 7px 0;
190
+ }
191
+
192
+ .aiovg .caption .aiovg-title {
193
+ margin: 0 !important;
194
+ }
195
+
196
+ .aiovg .caption .aiovg-title a {
197
+ text-decoration: none;
198
+ }
199
+
200
+ .aiovg .caption .aiovg-title small {
201
+ font-weight: normal;
202
+ }
203
+
204
+ .aiovg .caption .aiovg-category small,
205
+ .aiovg .caption .aiovg-views small {
206
+ font-size: inherit;
207
+ }
208
+
209
+ .aiovg-slick .fa {
210
+ color: inherit;
211
+ font-style: normal;
212
+ }
213
+
214
+ .aiovg-slick-prev .fa:before {
215
+ content: "❮";
216
+ }
217
+
218
+ .aiovg-slick-next .fa:before {
219
+ content: "❯";
220
+ }
221
+
222
+ @media only screen and (min-width: 481px) {
223
+ .aiovg .col-md-1 {
224
+ width: 8.33%;
225
+ }
226
+
227
+ .aiovg .col-md-2 {
228
+ width: 16.66%;
229
+ }
230
+
231
+ .aiovg .col-md-3 {
232
+ width: 25%;
233
+ }
234
+
235
+ .aiovg .col-md-4 {
236
+ width: 33.33%;
237
+ }
238
+
239
+ .aiovg .col-md-6 {
240
+ width: 50%;
241
+ }
242
+
243
+ .aiovg .col-md-8 {
244
+ width: 66.66%;
245
+ }
246
+ }
247
+
248
+ /*----------------------------------------------------------------------------------------------
249
+ *
250
+ * Version <= 2.4.3
251
+ *
252
+ *--------------------------------------------------------------------------------------------*/
253
+ .aiovg .aiovg-play {
254
+ position: absolute;
255
+ width: 32px;
256
+ height: 32px;
257
+ margin: -15px 0px 0px -15px !important;
258
+ padding: 0px;
259
+ top: 50%;
260
+ left: 50%;
261
+ pointer-events: none;
262
+ z-index: 3;
263
+ }
264
+
265
+ /*----------------------------------------------------------------------------------------------
266
+ *
267
+ * Version <= 2.4.4
268
+ *
269
+ *--------------------------------------------------------------------------------------------*/
270
+ .aiovg-icon-videos:before,
271
+ .aiovg-icon-film:before {
272
+ content: "\e913";
273
+ }
274
+
275
+ .aiovg-icon-categories:before,
276
+ .aiovg-icon-folder-open:before {
277
+ content: "\e930";
278
+ }
279
+
280
+ .aiovg-icon-views:before,
281
+ .aiovg-icon-eye:before {
282
+ content: "\e9ce";
283
+ }
284
+
285
+ .aiovg-icon-tags:before {
286
+ content: "\e936";
287
+ }
288
+
289
+ .aiovg .aiovg-play-icon {
290
+ position: absolute;
291
+ background-image: url( '../../../public/assets/images/play.png' );
292
+ background-position: center center;
293
+ background-repeat: no-repeat;
294
+ width: 100%;
295
+ height: 100%;
296
+ top: 0;
297
+ left: 0;
298
+ pointer-events: none;
299
+ z-index: 3;
300
+ }
301
+
302
  /*----------------------------------------------------------------------------------------------
303
  *
304
  * Icons
329
  z-index: 3;
330
  }
331
 
332
+ .aiovg-icon-download:before {
333
+ content: "\e9c7";
334
+ }
335
+
336
+ .aiovg-icon-whatsapp:before {
337
+ content: "\ea93";
338
+ }
339
+
340
  /*----------------------------------------------------------------------------------------------
341
  *
342
  * Video Player
412
  .aiovg-player .vjs-waiting .vjs-big-play-button,
413
  .vjs-waiting .vjs-big-play-button {
414
  display: none !important;
415
+ }
416
+
417
+ .aiovg-player .vjs-share,
418
+ .aiovg-player .vjs-download {
419
+ margin: 5px;
420
+ cursor: pointer;
421
+ }
422
+
423
+ .aiovg-player .vjs-share a,
424
+ .aiovg-player .vjs-download a {
425
+ display: flex;
426
+ margin: 0;
427
+ padding: 10px;
428
+ background-color: rgba( 0, 0, 0, 0.5 );
429
+ border-radius: 1px;
430
+ font-size: 16px;
431
+ color: #fff;
432
  }
433
 
434
+ .aiovg-player .vjs-share:hover a,
435
+ .aiovg-player .vjs-download:hover a {
436
+ background-color: rgba( 0, 0, 0, 0.7 );
 
437
  }
438
 
439
+ .aiovg-player .vjs-download.vjs-has-share {
440
+ margin-top: 50px;
441
+ }
442
+
443
+ .aiovg-player .vjs-has-started .vjs-share,
444
+ .aiovg-player .vjs-has-started .vjs-download {
445
  display: block;
446
+ visibility: visible;
447
+ opacity: 1;
448
+ transition: visibility .1s,opacity .1s;
449
+ }
450
+
451
+ .aiovg-player .vjs-has-started.vjs-user-inactive.vjs-playing .vjs-share,
452
+ .aiovg-player .vjs-has-started.vjs-user-inactive.vjs-playing .vjs-download {
453
+ visibility: visible;
454
+ opacity: 0;
455
+ transition: visibility 1s,opacity 1s;
456
+ }
457
+
458
+ .aiovg-player .vjs-modal-dialog-share-embed {
459
+ background: #111 !important;
460
+ }
461
+
462
+ .aiovg-player .vjs-modal-dialog-share-embed .vjs-close-button {
463
+ margin: 7px;
464
+ }
465
+
466
+ .aiovg-player .video-js .vjs-share-embed {
467
+ display: flex !important;
468
+ flex-direction: column;
469
+ justify-content: center;
470
+ align-items: center;
471
+ width: 100%;
472
+ height: 100%;
473
+ }
474
+
475
+ .aiovg-player .vjs-share-embed-content {
476
+ width: 100%;
477
+ }
478
+
479
+ .aiovg-player .vjs-share-buttons {
480
+ text-align: center;
481
+ }
482
+
483
+ .aiovg-player .vjs-share-button {
484
+ display: inline-block;
485
+ margin: 2px;
486
+ width: 40px;
487
+ height: 40px;
488
+ line-height: 1;
489
+ vertical-align: middle;
490
+ }
491
+
492
+ .aiovg-player .vjs-share-button,
493
+ .aiovg-player .vjs-share-button:hover,
494
+ .aiovg-player .vjs-share-button:focus {
495
+ text-decoration: none;
496
+ }
497
+
498
+ .aiovg-player .vjs-share-button:hover {
499
+ opacity: 0.9;
500
+ }
501
+
502
+ .aiovg-player .vjs-share-button-facebook {
503
+ background-color: #3B5996;
504
+ }
505
+
506
+ .aiovg-player .vjs-share-button-twitter {
507
+ background-color: #55ACEE;
508
+ }
509
+
510
+ .aiovg-player .vjs-share-button-linkedin {
511
+ background-color: #006699;
512
+ }
513
+
514
+ .aiovg-player .vjs-share-button-pinterest {
515
+ background-color: #C00117;
516
+ }
517
+
518
+ .aiovg-player .vjs-share-button-tumblr {
519
+ background-color: #28364B;
520
+ }
521
+
522
+ .aiovg-player .vjs-share-button-whatsapp {
523
+ background-color: #25d366;
524
+ }
525
+
526
+ .aiovg-player .vjs-share-button span {
527
+ color: #fff;
528
+ font-size: 24px;
529
+ line-height: 40px;
530
+ }
531
+
532
+ .aiovg-player .vjs-embed-code {
533
+ margin: 20px;
534
+ }
535
+
536
+ .aiovg-player .vjs-embed-code p {
537
+ margin: 0 0 10px 0;
538
+ text-align: center;
539
+ text-transform: uppercase;
540
+ }
541
+
542
+ .aiovg-player .vjs-embed-code input {
543
+ width: 100%;
544
+ padding: 7px;
545
+ background: #fff;
546
+ border: 1px solid #fff;
547
+ color: #000;
548
+ }
549
+
550
+ .aiovg-player .vjs-embed-code input:focus {
551
+ border: 1px solid #fff;
552
+ outline-style: none;
553
  }
554
 
555
  .aiovg-player .vjs-logo {
575
  max-width: 100%;
576
  }
577
 
578
+ .aiovg-player .vjs-ended .vjs-control-bar,
579
+ .aiovg-player .vjs-ended .vjs-text-track-display,
580
+ .aiovg-player .vjs-ended .vjs-logo {
581
+ display: none;
582
+ }
583
+
584
+ .aiovg-player .vjs-ended .vjs-poster,
585
+ .aiovg-player .vjs-ended .vjs-big-play-button {
586
+ display: block;
587
+ }
588
+
589
  .aiovg-privacy-wrapper {
590
  position: absolute;
591
  width: 100%;
public/assets/fonts/aiovg-icons.eot CHANGED
Binary file
public/assets/fonts/aiovg-icons.svg CHANGED
@@ -10,5 +10,7 @@
10
  <glyph unicode="&#xe913;" glyph-name="film" d="M0 832v-768h1024v768h-1024zM192 128h-128v128h128v-128zM192 384h-128v128h128v-128zM192 640h-128v128h128v-128zM768 128h-512v640h512v-640zM960 128h-128v128h128v-128zM960 384h-128v128h128v-128zM960 640h-128v128h128v-128zM384 640v-384l256 192z" />
11
  <glyph unicode="&#xe930;" glyph-name="folder-open" d="M832 0l192 512h-832l-192-512zM128 576l-128-576v832h288l128-128h416v-128z" />
12
  <glyph unicode="&#xe936;" glyph-name="price-tags" horiz-adv-x="1280" d="M1232 960h-384c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l476.118 476.118c18.666 18.666 33.94 55.54 33.94 81.94v384c0 26.4-21.6 48-48 48zM992 576c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM128 416l544 544h-80c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l30.058 30.058-416 416z" />
 
13
  <glyph unicode="&#xe9ce;" glyph-name="eye" d="M512 768c-223.318 0-416.882-130.042-512-320 95.118-189.958 288.682-320 512-320 223.312 0 416.876 130.042 512 320-95.116 189.958-288.688 320-512 320zM764.45 598.296c60.162-38.374 111.142-89.774 149.434-150.296-38.292-60.522-89.274-111.922-149.436-150.296-75.594-48.218-162.89-73.704-252.448-73.704-89.56 0-176.858 25.486-252.452 73.704-60.158 38.372-111.138 89.772-149.432 150.296 38.292 60.524 89.274 111.924 149.434 150.296 3.918 2.5 7.876 4.922 11.86 7.3-9.96-27.328-15.41-56.822-15.41-87.596 0-141.382 114.616-256 256-256 141.382 0 256 114.618 256 256 0 30.774-5.452 60.268-15.408 87.598 3.978-2.378 7.938-4.802 11.858-7.302v0zM512 544c0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.982 96-96z" />
 
14
  </font></defs></svg>
10
  <glyph unicode="&#xe913;" glyph-name="film" d="M0 832v-768h1024v768h-1024zM192 128h-128v128h128v-128zM192 384h-128v128h128v-128zM192 640h-128v128h128v-128zM768 128h-512v640h512v-640zM960 128h-128v128h128v-128zM960 384h-128v128h128v-128zM960 640h-128v128h128v-128zM384 640v-384l256 192z" />
11
  <glyph unicode="&#xe930;" glyph-name="folder-open" d="M832 0l192 512h-832l-192-512zM128 576l-128-576v832h288l128-128h416v-128z" />
12
  <glyph unicode="&#xe936;" glyph-name="price-tags" horiz-adv-x="1280" d="M1232 960h-384c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l476.118 476.118c18.666 18.666 33.94 55.54 33.94 81.94v384c0 26.4-21.6 48-48 48zM992 576c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM128 416l544 544h-80c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l30.058 30.058-416 416z" />
13
+ <glyph unicode="&#xe9c7;" glyph-name="download3" d="M736 512l-256-256-256 256h160v384h192v-384zM480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64z" />
14
  <glyph unicode="&#xe9ce;" glyph-name="eye" d="M512 768c-223.318 0-416.882-130.042-512-320 95.118-189.958 288.682-320 512-320 223.312 0 416.876 130.042 512 320-95.116 189.958-288.688 320-512 320zM764.45 598.296c60.162-38.374 111.142-89.774 149.434-150.296-38.292-60.522-89.274-111.922-149.436-150.296-75.594-48.218-162.89-73.704-252.448-73.704-89.56 0-176.858 25.486-252.452 73.704-60.158 38.372-111.138 89.772-149.432 150.296 38.292 60.524 89.274 111.924 149.434 150.296 3.918 2.5 7.876 4.922 11.86 7.3-9.96-27.328-15.41-56.822-15.41-87.596 0-141.382 114.616-256 256-256 141.382 0 256 114.618 256 256 0 30.774-5.452 60.268-15.408 87.598 3.978-2.378 7.938-4.802 11.858-7.302v0zM512 544c0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.982 96-96z" />
15
+ <glyph unicode="&#xea93;" glyph-name="whatsapp" d="M873 811.2c-95.8 96-223.2 148.8-359 148.8-279.6 0-507.2-227.6-507.2-507.4 0-89.4 23.4-176.8 67.8-253.6l-72-263 269 70.6c74.2-40.4 157.6-61.8 242.4-61.8h0.2c0 0 0 0 0 0 279.6 0 507.4 227.6 507.4 507.4 0 135.6-52.8 263-148.6 359zM514.2 30.4v0c-75.8 0-150 20.4-214.8 58.8l-15.4 9.2-159.6-41.8 42.6 155.6-10 16c-42.4 67-64.6 144.6-64.6 224.4 0 232.6 189.2 421.8 422 421.8 112.6 0 218.6-44 298.2-123.6 79.6-79.8 123.4-185.6 123.4-298.4-0.2-232.8-189.4-422-421.8-422zM745.4 346.4c-12.6 6.4-75 37-86.6 41.2s-20 6.4-28.6-6.4c-8.4-12.6-32.8-41.2-40.2-49.8-7.4-8.4-14.8-9.6-27.4-3.2s-53.6 19.8-102 63c-37.6 33.6-63.2 75.2-70.6 87.8s-0.8 19.6 5.6 25.8c5.8 5.6 12.6 14.8 19 22.2s8.4 12.6 12.6 21.2c4.2 8.4 2.2 15.8-1 22.2s-28.6 68.8-39 94.2c-10.2 24.8-20.8 21.4-28.6 21.8-7.4 0.4-15.8 0.4-24.2 0.4s-22.2-3.2-33.8-15.8c-11.6-12.6-44.4-43.4-44.4-105.8s45.4-122.6 51.8-131.2c6.4-8.4 89.4-136.6 216.6-191.4 30.2-13 53.8-20.8 72.2-26.8 30.4-9.6 58-8.2 79.8-5 24.4 3.6 75 30.6 85.6 60.2s10.6 55 7.4 60.2c-3 5.6-11.4 8.8-24.2 15.2z" />
16
  </font></defs></svg>
public/assets/fonts/aiovg-icons.ttf CHANGED
Binary file
public/assets/fonts/aiovg-icons.woff CHANGED
Binary file
public/assets/js/player.js CHANGED
@@ -114,9 +114,11 @@
114
 
115
  settings.html5 = {
116
  vhs: {
117
- overrideNative: !videojs.browser.IS_ANY_SAFARI,
118
  }
119
  };
 
 
120
 
121
  // Trigger ready event
122
  var config = {
@@ -155,6 +157,14 @@
155
  }
156
  });
157
 
 
 
 
 
 
 
 
 
158
  // Offset
159
  var offset = {};
160
 
@@ -169,11 +179,80 @@
169
  if ( Object.keys( offset ).length > 1 ) {
170
  offset.restart_beginning = false;
171
  player.offset( offset );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  }
173
 
174
- // Logo overlay
175
  if ( settings.show_logo ) {
176
- init_logo();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  }
178
 
179
  // Custom contextmenu
@@ -195,7 +274,7 @@
195
  }
196
 
197
  // Logo overlay
198
- var init_logo = function() {
199
  var attributes = [];
200
  attributes['src'] = settings.logo_image;
201
 
@@ -227,10 +306,12 @@
227
  attributes['onclick'] = "window.location.href='" + settings.logo_link + "';";
228
  }
229
 
230
- player.overlay({
231
- content: '<img ' + merge_attributes( attributes ) + '/>',
232
  class: 'vjs-logo',
233
  align: align,
 
 
234
  showBackground: false
235
  });
236
  }
114
 
115
  settings.html5 = {
116
  vhs: {
117
+ overrideNative: ! videojs.browser.IS_ANY_SAFARI,
118
  }
119
  };
120
+
121
+ var overlays = [];
122
 
123
  // Trigger ready event
124
  var config = {
157
  }
158
  });
159
 
160
+ player.on( 'playing', function() {
161
+ player.trigger( 'controlsshown' );
162
+ });
163
+
164
+ player.on( 'ended', function() {
165
+ player.trigger( 'controlshidden' );
166
+ });
167
+
168
  // Offset
169
  var offset = {};
170
 
179
  if ( Object.keys( offset ).length > 1 ) {
180
  offset.restart_beginning = false;
181
  player.offset( offset );
182
+ }
183
+
184
+ // Share / Embed
185
+ if ( settings.share || settings.embed ) {
186
+ overlays.push({
187
+ content: '<a href="javascript:void(0)" class="vjs-share-embed-button" style="text-decoration:none;"><span class="vjs-icon-share"></span></a>',
188
+ class: 'vjs-share',
189
+ align: 'top-right',
190
+ start: 'controlsshown',
191
+ end: 'controlshidden',
192
+ showBackground: false
193
+ });
194
+ }
195
+
196
+ // Download
197
+ if ( settings.download ) {
198
+ var __class = 'vjs-download';
199
+
200
+ if ( settings.share || settings.embed ) {
201
+ __class += ' vjs-has-share';
202
+ }
203
+
204
+ overlays.push({
205
+ content: '<a href="' + settings.download_url + '" class="vjs-download-button" style="text-decoration:none;" target="_blank"><span class="aiovg-icon-download"></span></a>',
206
+ class: __class,
207
+ align: 'top-right',
208
+ start: 'controlsshown',
209
+ end: 'controlshidden',
210
+ showBackground: false
211
+ });
212
  }
213
 
214
+ // Logo
215
  if ( settings.show_logo ) {
216
+ init_logo( overlays );
217
+ }
218
+
219
+ // Overlay
220
+ if ( overlays.length > 0 ) {
221
+ player.overlay({
222
+ content: '',
223
+ overlays: overlays
224
+ });
225
+
226
+ if ( settings.share || settings.embed ) {
227
+ var options = {};
228
+ options.content = $elem.find( '.vjs-share-embed' ).get(0);
229
+ options.temporary = false;
230
+
231
+ var ModalDialog = videojs.getComponent( 'ModalDialog' );
232
+ var modal = new ModalDialog( player, options );
233
+ modal.addClass( 'vjs-modal-dialog-share-embed' );
234
+
235
+ player.addChild( modal );
236
+
237
+ var wasPlaying = true;
238
+ $elem.find( '.vjs-share-embed-button' ).on( 'click', function() {
239
+ wasPlaying = ! player.paused;
240
+ modal.open();
241
+ });
242
+
243
+ modal.on( 'modalclose', function() {
244
+ if ( wasPlaying ) {
245
+ player.play();
246
+ }
247
+ });
248
+ }
249
+
250
+ if ( settings.embed ) {
251
+ $elem.find( '.vjs-copy-embed-code' ).on( 'focus', function() {
252
+ $( this ).select();
253
+ document.execCommand( 'copy' );
254
+ });
255
+ }
256
  }
257
 
258
  // Custom contextmenu
274
  }
275
 
276
  // Logo overlay
277
+ var init_logo = function( overlays ) {
278
  var attributes = [];
279
  attributes['src'] = settings.logo_image;
280
 
306
  attributes['onclick'] = "window.location.href='" + settings.logo_link + "';";
307
  }
308
 
309
+ overlays.push({
310
+ content: '<img ' + merge_attributes( attributes ) + ' alt="" />',
311
  class: 'vjs-logo',
312
  align: align,
313
+ start: 'controlsshown',
314
+ end: 'controlshidden',
315
  showBackground: false
316
  });
317
  }
public/assets/js/public.js CHANGED
@@ -258,7 +258,6 @@
258
  $pagination.addClass( 'aiovg-spinner' );
259
 
260
  $.post( aiovg_public.ajax_url, params, function( response ) {
261
- console.log( response );
262
  if ( response.success ) {
263
  $gallery.html( $( response.data.html ).html() ).trigger( 'AIOVG.onGalleryUpdated' );
264
 
258
  $pagination.addClass( 'aiovg-spinner' );
259
 
260
  $.post( aiovg_public.ajax_url, params, function( response ) {
 
261
  if ( response.success ) {
262
  $gallery.html( $( response.data.html ).html() ).trigger( 'AIOVG.onGalleryUpdated' );
263
 
public/public.php CHANGED
@@ -172,18 +172,10 @@ class AIOVG_Public {
172
  'all'
173
  );
174
 
175
- wp_register_style(
176
- AIOVG_PLUGIN_SLUG . '-backward-compatibility',
177
- AIOVG_PLUGIN_URL . 'public/assets/css/backward-compatibility.css',
178
- array(),
179
- AIOVG_PLUGIN_VERSION,
180
- 'all'
181
- );
182
-
183
  wp_register_style(
184
  AIOVG_PLUGIN_SLUG . '-public',
185
  AIOVG_PLUGIN_URL . 'public/assets/css/public.css',
186
- array( AIOVG_PLUGIN_SLUG . '-backward-compatibility' ),
187
  AIOVG_PLUGIN_VERSION,
188
  'all'
189
  );
@@ -825,6 +817,30 @@ class AIOVG_Public {
825
 
826
  return $crumbs;
827
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
828
 
829
  /**
830
  * Adds the Facebook OG tags and Twitter Cards.
@@ -835,13 +851,14 @@ class AIOVG_Public {
835
  global $post;
836
 
837
  if ( isset( $post ) && is_singular( 'aiovg_videos' ) ) {
 
838
  $socialshare_settings = get_option( 'aiovg_socialshare_settings' );
839
 
840
- if ( ! empty( $socialshare_settings['open_graph_tags'] ) ) {
841
  $site_name = get_bloginfo( 'name' );
842
  $page_url = get_permalink();
843
  $video_title = get_the_title();
844
- $video_description = aiovg_get_excerpt( $post->ID, 160, '' );
845
  $image = get_post_meta( $post->ID, 'image', true );
846
  $image_id = get_post_meta( $post->ID, 'image_id', true );
847
  $image_url = aiovg_get_image_url( $image_id, 'large', $image, 'player' );
172
  'all'
173
  );
174
 
 
 
 
 
 
 
 
 
175
  wp_register_style(
176
  AIOVG_PLUGIN_SLUG . '-public',
177
  AIOVG_PLUGIN_URL . 'public/assets/css/public.css',
178
+ array(),
179
  AIOVG_PLUGIN_VERSION,
180
  'all'
181
  );
817
 
818
  return $crumbs;
819
  }
820
+
821
+ /**
822
+ * Filter Yoast video sitemap entry details.
823
+ *
824
+ * @since 2.5.8
825
+ * @param array $details Array of sitemap entry details.
826
+ * @return array $details Filtered array of sitemap entry details.
827
+ */
828
+ public function wpseo_video_sitemap_entry( $details ) {
829
+ if ( isset( $details['post_id'] ) && ! empty( $details['post_id'] ) ) {
830
+ $post_id = (int) $details['post_id'];
831
+ $post_type = get_post_type( $post_id );
832
+
833
+ if ( 'aiovg_videos' == $post_type ) {
834
+ $thumbnail_loc = get_post_meta( $post_id, 'image', true );
835
+
836
+ if ( ! empty( $thumbnail_loc ) ) {
837
+ $details['thumbnail_loc'] = $thumbnail_loc;
838
+ }
839
+ }
840
+ }
841
+
842
+ return $details;
843
+ }
844
 
845
  /**
846
  * Adds the Facebook OG tags and Twitter Cards.
851
  global $post;
852
 
853
  if ( isset( $post ) && is_singular( 'aiovg_videos' ) ) {
854
+ $video_settings = get_option( 'aiovg_video_settings' );
855
  $socialshare_settings = get_option( 'aiovg_socialshare_settings' );
856
 
857
+ if ( isset( $video_settings['display']['share'] ) && ! empty( $socialshare_settings['open_graph_tags'] ) ) {
858
  $site_name = get_bloginfo( 'name' );
859
  $page_url = get_permalink();
860
  $video_title = get_the_title();
861
+ $video_description = aiovg_get_excerpt( $post->ID, 160, '', false );
862
  $image = get_post_meta( $post->ID, 'image', true );
863
  $image_id = get_post_meta( $post->ID, 'image_id', true );
864
  $image_url = aiovg_get_image_url( $image_id, 'large', $image, 'player' );
public/templates/player-html5.php CHANGED
@@ -137,7 +137,10 @@ $settings = array(
137
  'playbackRates' => array( 0.5, 0.75, 1, 1.5, 2 ),
138
  'aiovg' => array(
139
  'postID' => $post_id,
140
- 'postType' => $post_type,
 
 
 
141
  'showLogo' => 0,
142
  'contextmenuLabel' => ''
143
  )
@@ -221,6 +224,128 @@ if ( isset( $sources['facebook'] ) ) {
221
  $sources['facebook']['src'] = add_query_arg( 'nocache', rand(), $sources['facebook']['src'] );
222
  }
223
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  if ( ! empty( $brand_settings ) ) {
225
  $settings['aiovg']['showLogo'] = ! empty( $brand_settings['logo_image'] ) ? (int) $brand_settings['show_logo'] : 0;
226
  $settings['aiovg']['logoImage'] = aiovg_sanitize_url( aiovg_resolve_url( $brand_settings['logo_image'] ) );
@@ -250,7 +375,7 @@ $settings = apply_filters( 'aiovg_video_settings', $settings );
250
  <link rel="stylesheet" href="<?php echo AIOVG_PLUGIN_URL; ?>vendor/videojs-plugins/quality-selector/quality-selector.css?v=1.2.5" />
251
  <?php endif; ?>
252
 
253
- <?php if ( ! empty( $settings['aiovg']['showLogo'] ) ) : ?>
254
  <link rel="stylesheet" href="<?php echo AIOVG_PLUGIN_URL; ?>vendor/videojs-plugins/overlay/videojs-overlay.css?v=2.1.5" />
255
  <?php endif; ?>
256
 
@@ -265,6 +390,43 @@ $settings = apply_filters( 'aiovg_video_settings', $settings );
265
  overflow: hidden;
266
  }
267
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  .vjs-no-control-bar .vjs-control-bar {
269
  display: none;
270
  }
@@ -312,19 +474,146 @@ $settings = apply_filters( 'aiovg_video_settings', $settings );
312
 
313
  .vjs-waiting .vjs-big-play-button {
314
  display: none !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
315
  }
 
 
 
 
 
316
 
317
- .vjs-ended .vjs-control-bar,
318
- .vjs-ended .vjs-text-track-display,
319
- .vjs-ended .vjs-logo {
320
- display: none;
321
  }
322
 
323
- .vjs-ended .vjs-poster,
324
- .vjs-ended .vjs-big-play-button {
325
  display: block;
 
 
 
 
 
 
 
 
 
 
326
  }
327
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
328
  .vjs-logo {
329
  opacity: 0;
330
  cursor: pointer;
@@ -348,6 +637,17 @@ $settings = apply_filters( 'aiovg_video_settings', $settings );
348
  max-width: 100%;
349
  }
350
 
 
 
 
 
 
 
 
 
 
 
 
351
  .contextmenu {
352
  position: absolute;
353
  top: 0;
@@ -398,6 +698,36 @@ $settings = apply_filters( 'aiovg_video_settings', $settings );
398
  ?>
399
  </video-js>
400
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
401
  <?php if ( ! empty( $settings['aiovg']['contextmenuLabel'] ) ) : ?>
402
  <div id="contextmenu" class="contextmenu" style="display: none;">
403
  <div class="contextmenu-item"><?php echo esc_html( $settings['aiovg']['contextmenuLabel'] ); ?></div>
@@ -430,7 +760,7 @@ $settings = apply_filters( 'aiovg_video_settings', $settings );
430
  <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/videojs-plugins/facebook/videojs-facebook.min.js?v=1.4.0" type="text/javascript"></script>
431
  <?php endif; ?>
432
 
433
- <?php if ( ! empty( $settings['aiovg']['showLogo'] ) ) : ?>
434
  <script src="<?php echo AIOVG_PLUGIN_URL; ?>vendor/videojs-plugins/overlay/videojs-overlay.min.js?v=2.1.5" type="text/javascript"></script>
435
  <?php endif; ?>
436
 
@@ -448,10 +778,12 @@ $settings = apply_filters( 'aiovg_video_settings', $settings );
448
 
449
  settings.html5 = {
450
  vhs: {
451
- overrideNative: !videojs.browser.IS_ANY_SAFARI,
452
  }
453
  };
454
 
 
 
455
  /**
456
  * Merge attributes.
457
  *
@@ -566,6 +898,14 @@ $settings = apply_filters( 'aiovg_video_settings', $settings );
566
  }
567
  });
568
 
 
 
 
 
 
 
 
 
569
  // Offset
570
  var offset = {};
571
 
@@ -580,9 +920,39 @@ $settings = apply_filters( 'aiovg_video_settings', $settings );
580
  if ( Object.keys( offset ).length > 1 ) {
581
  offset.restart_beginning = false;
582
  player.offset( offset );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
583
  }
584
 
585
- // Logo overlay
586
  if ( settings.aiovg.showLogo ) {
587
  var attributes = [];
588
  attributes['src'] = settings.aiovg.logoImage;
@@ -615,13 +985,54 @@ $settings = apply_filters( 'aiovg_video_settings', $settings );
615
  attributes['onclick'] = "top.window.location.href='" + settings.aiovg.logoLink + "';";
616
  }
617
 
618
- player.overlay({
619
- content: '<img ' + combineAttributes( attributes ) + '/>',
620
  class: 'vjs-logo',
621
  align: align,
 
 
622
  showBackground: false
623
  });
624
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
625
  }
626
 
627
  if ( settings.autoplay ) {
137
  'playbackRates' => array( 0.5, 0.75, 1, 1.5, 2 ),
138
  'aiovg' => array(
139
  'postID' => $post_id,
140
+ 'postType' => $post_type,
141
+ 'share' => isset( $_GET['share'] ) ? (int) $_GET['share'] : isset( $player_settings['controls']['share'] ),
142
+ 'embed' => isset( $_GET['embed'] ) ? (int) $_GET['embed'] : isset( $player_settings['controls']['embed'] ),
143
+ 'download' => 0,
144
  'showLogo' => 0,
145
  'contextmenuLabel' => ''
146
  )
224
  $sources['facebook']['src'] = add_query_arg( 'nocache', rand(), $sources['facebook']['src'] );
225
  }
226
 
227
+ // Share
228
+ if ( ! empty( $settings['aiovg']['share'] ) ) {
229
+ $socialshare_settings = get_option( 'aiovg_socialshare_settings' );
230
+
231
+ $share_url = get_permalink( $post_id );
232
+
233
+ $share_title = get_the_title( $post_id );
234
+ $share_title = str_replace( ' ', '%20', $share_title );
235
+ $share_title = str_replace( '|', '%7C', $share_title );
236
+
237
+ $share_image = isset( $attributes['poster'] ) ? $attributes['poster'] : '';
238
+
239
+ $share_buttons = array();
240
+
241
+ if ( isset( $socialshare_settings['services']['facebook'] ) ) {
242
+ $share_buttons[] = array(
243
+ 'service' => 'facebook',
244
+ 'url' => "https://www.facebook.com/sharer/sharer.php?u={$share_url}",
245
+ 'iconClass' => 'vjs-icon-facebook'
246
+ );
247
+ }
248
+
249
+ if ( isset( $socialshare_settings['services']['twitter'] ) ) {
250
+ $share_buttons[] = array(
251
+ 'service' => 'twitter',
252
+ 'url' => "https://twitter.com/intent/tweet?text={$share_title}&amp;url={$share_url}",
253
+ 'iconClass' => 'vjs-icon-twitter'
254
+ );
255
+ }
256
+
257
+ if ( isset( $socialshare_settings['services']['linkedin'] ) ) {
258
+ $share_buttons[] = array(
259
+ 'service' => 'linkedin',
260
+ 'url' => "https://www.linkedin.com/shareArticle?url={$share_url}&amp;title={$share_title}",
261
+ 'iconClass' => 'vjs-icon-linkedin'
262
+ );
263
+ }
264
+
265
+ if ( isset( $socialshare_settings['services']['pinterest'] ) ) {
266
+ $pinterest_url = "https://pinterest.com/pin/create/button/?url={$share_url}&amp;description={$share_title}";
267
+
268
+ if ( ! empty( $share_image ) ) {
269
+ $pinterest_url .= "&amp;media={$share_image}";
270
+ }
271
+
272
+ $share_buttons[] = array(
273
+ 'service' => 'pinterest',
274
+ 'url' => $pinterest_url,
275
+ 'iconClass' => 'vjs-icon-pinterest'
276
+ );
277
+ }
278
+
279
+ if ( isset( $socialshare_settings['services']['tumblr'] ) ) {
280
+ $tumblr_url = "https://www.tumblr.com/share/link?url={$share_url}&amp;name={$share_title}";
281
+
282
+ $share_description = aiovg_get_excerpt( $post_id, 160, '', false );
283
+ if ( ! empty( $share_description ) ) {
284
+ $share_description = str_replace( ' ', '%20', $share_description );
285
+ $share_description = str_replace( '|', '%7C', $share_description );
286
+
287
+ $tumblr_url .= "&amp;description={$share_description}";
288
+ }
289
+
290
+ $share_buttons[] = array(
291
+ 'service' => 'tumblr',
292
+ 'url' => $tumblr_url,
293
+ 'iconClass' => 'vjs-icon-tumblr'
294
+ );
295
+ }
296
+
297
+ if ( isset( $socialshare_settings['services']['whatsapp'] ) ) {
298
+ if ( wp_is_mobile() ) {
299
+ $whatsapp_url = "whatsapp://send?text={$share_title} " . rawurlencode( $share_url );
300
+ } else {
301
+ $whatsapp_url = "https://api.whatsapp.com/send?text={$share_title}&nbsp;{$share_url}";
302
+ }
303
+
304
+ $share_buttons[] = array(
305
+ 'service' => 'whatsapp',
306
+ 'url' => $whatsapp_url,
307
+ 'iconClass' => 'aiovg-icon-whatsapp'
308
+ );
309
+ }
310
+
311
+ $settings['aiovg']['shareButtons'] = apply_filters( 'aiovg_player_socialshare_buttons', $share_buttons );
312
+ }
313
+
314
+ // Embed
315
+ if ( ! empty( $settings['aiovg']['embed'] ) ) {
316
+ $protocol = ( ( ! empty( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] != 'off' ) || $_SERVER['SERVER_PORT'] == 443 ) ? 'https://' : 'http://';
317
+ $current_url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
318
+
319
+ $settings['aiovg']['embedCode'] = sprintf(
320
+ '<div style="position:relative;padding-bottom:%s;height:0;overflow:hidden;"><iframe src="%s" style="width:100%%;height:100%%;position:absolute;left:0px;top:0px;overflow:hidden" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>',
321
+ ( isset( $_GET['ratio'] ) ? (float) $_GET['ratio'] : (float) $player_settings['ratio'] ) . '%',
322
+ esc_url( $current_url )
323
+ );
324
+ }
325
+
326
+ // Download
327
+ if ( isset( $sources['mp4'] ) ) {
328
+ $settings['aiovg']['download'] = isset( $player_settings['controls']['download'] );
329
+ $download_url = home_url( '?dl=' . base64_encode( $sources['mp4']['src'] ) );
330
+
331
+ if ( ! empty( $post_meta ) ) {
332
+ if ( isset( $post_meta['download'] ) && empty( $post_meta['download'][0] ) ) {
333
+ $settings['aiovg']['download'] = 0;
334
+ }
335
+
336
+ $download_url = home_url( '?dl=' . $post_id );
337
+ }
338
+
339
+ if ( isset( $_GET['download'] ) ) {
340
+ $settings['aiovg']['download'] = (int) $_GET['download'];
341
+ }
342
+
343
+ if ( ! empty( $settings['aiovg']['download'] ) ) {
344
+ $settings['aiovg']['downloadUrl'] = esc_url( $download_url );
345
+ }
346
+ }
347
+
348
+ // Logo
349
  if ( ! empty( $brand_settings ) ) {
350
  $settings['aiovg']['showLogo'] = ! empty( $brand_settings['logo_image'] ) ? (int) $brand_settings['show_logo'] : 0;
351
  $settings['aiovg']['logoImage'] = aiovg_sanitize_url( aiovg_resolve_url( $brand_settings['logo_image'] ) );
375
  <link rel="stylesheet" href="<?php echo AIOVG_PLUGIN_URL; ?>vendor/videojs-plugins/quality-selector/quality-selector.css?v=1.2.5" />
376
  <?php endif; ?>
377
 
378
+ <?php if ( ! empty( $settings['aiovg']['share'] ) || ! empty( $settings['aiovg']['embed'] ) || ! empty( $settings['aiovg']['download'] ) || ! empty( $settings['aiovg']['showLogo'] ) ) : ?>
379
  <link rel="stylesheet" href="<?php echo AIOVG_PLUGIN_URL; ?>vendor/videojs-plugins/overlay/videojs-overlay.css?v=2.1.5" />
380
  <?php endif; ?>
381
 
390
  overflow: hidden;
391
  }
392
 
393
+ @font-face {
394
+ font-family: 'aiovg-icons';
395
+ src: url('<?php echo AIOVG_PLUGIN_URL; ?>public/assets/fonts/aiovg-icons.eot?j6tmf3');
396
+ src: url('<?php echo AIOVG_PLUGIN_URL; ?>public/assets/fonts/aiovg-icons.eot?j6tmf3#iefix') format('embedded-opentype'),
397
+ url('<?php echo AIOVG_PLUGIN_URL; ?>public/assets/fonts/aiovg-icons.ttf?j6tmf3') format('truetype'),
398
+ url('<?php echo AIOVG_PLUGIN_URL; ?>public/assets/fonts/aiovg-icons.woff?j6tmf3') format('woff'),
399
+ url('<?php echo AIOVG_PLUGIN_URL; ?>public/assets/fonts/aiovg-icons.svg?j6tmf3#aiovg-icons') format('svg');
400
+ font-weight: normal;
401
+ font-style: normal;
402
+ font-display: swap;
403
+ }
404
+
405
+ [class^="aiovg-icon-"],
406
+ [class*=" aiovg-icon-"] {
407
+ /* use !important to prevent issues with browser extensions that change fonts */
408
+ font-family: 'aiovg-icons' !important;
409
+ speak: none;
410
+ color: #666;
411
+ font-style: normal;
412
+ font-weight: normal;
413
+ font-variant: normal;
414
+ text-transform: none;
415
+ line-height: 1;
416
+
417
+ /* Better Font Rendering =========== */
418
+ -webkit-font-smoothing: antialiased;
419
+ -moz-osx-font-smoothing: grayscale;
420
+ }
421
+
422
+ .aiovg-icon-download:before {
423
+ content: "\e9c7";
424
+ }
425
+
426
+ .aiovg-icon-whatsapp:before {
427
+ content: "\ea93";
428
+ }
429
+
430
  .vjs-no-control-bar .vjs-control-bar {
431
  display: none;
432
  }
474
 
475
  .vjs-waiting .vjs-big-play-button {
476
  display: none !important;
477
+ }
478
+
479
+ .vjs-share,
480
+ .vjs-download {
481
+ margin: 5px;
482
+ cursor: pointer;
483
+ }
484
+
485
+ .vjs-share a,
486
+ .vjs-download a {
487
+ display: flex;
488
+ margin: 0;
489
+ padding: 10px;
490
+ background-color: rgba( 0, 0, 0, 0.5 );
491
+ border-radius: 1px;
492
+ font-size: 16px;
493
+ color: #fff;
494
  }
495
+
496
+ .vjs-share:hover a,
497
+ .vjs-download:hover a {
498
+ background-color: rgba( 0, 0, 0, 0.7 );
499
+ }
500
 
501
+ .vjs-download.vjs-has-share {
502
+ margin-top: 50px;
 
 
503
  }
504
 
505
+ .vjs-has-started .vjs-share,
506
+ .vjs-has-started .vjs-download {
507
  display: block;
508
+ visibility: visible;
509
+ opacity: 1;
510
+ transition: visibility .1s,opacity .1s;
511
+ }
512
+
513
+ .vjs-has-started.vjs-user-inactive.vjs-playing .vjs-share,
514
+ .vjs-has-started.vjs-user-inactive.vjs-playing .vjs-download {
515
+ visibility: visible;
516
+ opacity: 0;
517
+ transition: visibility 1s,opacity 1s;
518
  }
519
 
520
+ .video-js .vjs-modal-dialog-share-embed {
521
+ background: #111 !important;
522
+ }
523
+
524
+ .video-js .vjs-modal-dialog-share-embed .vjs-close-button {
525
+ margin: 7px;
526
+ }
527
+
528
+ .video-js .vjs-share-embed {
529
+ display: flex !important;
530
+ flex-direction: column;
531
+ justify-content: center;
532
+ align-items: center;
533
+ width: 100%;
534
+ height: 100%;
535
+ }
536
+
537
+ .video-js .vjs-share-embed-content {
538
+ width: 100%;
539
+ }
540
+
541
+ .video-js .vjs-share-buttons {
542
+ text-align: center;
543
+ }
544
+
545
+ .video-js .vjs-share-button {
546
+ display: inline-block;
547
+ margin: 2px;
548
+ width: 40px;
549
+ height: 40px;
550
+ line-height: 1;
551
+ vertical-align: middle;
552
+ }
553
+
554
+ .video-js .vjs-share-button,
555
+ .video-js .vjs-share-button:hover,
556
+ .video-js .vjs-share-button:focus {
557
+ text-decoration: none;
558
+ }
559
+
560
+ .video-js .vjs-share-button:hover {
561
+ opacity: 0.9;
562
+ }
563
+
564
+ .video-js .vjs-share-button-facebook {
565
+ background-color: #3B5996;
566
+ }
567
+
568
+ .video-js .vjs-share-button-twitter {
569
+ background-color: #55ACEE;
570
+ }
571
+
572
+ .video-js .vjs-share-button-linkedin {
573
+ background-color: #006699;
574
+ }
575
+
576
+ .video-js .vjs-share-button-pinterest {
577
+ background-color: #C00117;
578
+ }
579
+
580
+ .video-js .vjs-share-button-tumblr {
581
+ background-color: #28364B;
582
+ }
583
+
584
+ .video-js .vjs-share-button-whatsapp {
585
+ background-color: #25d366;
586
+ }
587
+
588
+ .video-js .vjs-share-button span {
589
+ color: #fff;
590
+ font-size: 24px;
591
+ line-height: 40px;
592
+ }
593
+
594
+ .video-js .vjs-embed-code {
595
+ margin: 20px;
596
+ }
597
+
598
+ .video-js .vjs-embed-code p {
599
+ margin: 0 0 10px 0;
600
+ text-align: center;
601
+ text-transform: uppercase;
602
+ }
603
+
604
+ .video-js .vjs-embed-code input {
605
+ width: 100%;
606
+ padding: 7px;
607
+ background: #fff;
608
+ border: 1px solid #fff;
609
+ color: #000;
610
+ }
611
+
612
+ .video-js .vjs-embed-code input:focus {
613
+ border: 1px solid #fff;
614
+ outline-style: none;
615
+ }
616
+
617
  .vjs-logo {
618
  opacity: 0;
619
  cursor: pointer;
637
  max-width: 100%;
638
  }
639
 
640
+ .vjs-ended .vjs-control-bar,
641
+ .vjs-ended .vjs-text-track-display,
642
+ .vjs-ended .vjs-logo {
643
+ display: none;
644
+ }
645
+
646
+ .vjs-ended .vjs-poster,
647
+ .vjs-ended .vjs-big-play-button {
648
+ display: block;
649
+ }
650
+
651
  .contextmenu {
652
  position: absolute;
653
  top: 0;
698
  ?>
699
  </video-js>
700
 
701
+ <?php if ( ! empty( $settings['aiovg']['share'] ) || ! empty( $settings['aiovg']['embed'] ) ) : ?>
702
+ <div id="vjs-share-embed" class="vjs-share-embed" style="display: none;">
703
+ <div class="vjs-share-embed-content">
704
+ <?php if ( isset( $settings['aiovg']['shareButtons'] ) ) : ?>
705
+ <!-- Share Buttons -->
706
+ <div class="vjs-share-buttons">
707
+ <?php
708
+ foreach ( $settings['aiovg']['shareButtons'] as $button ) {
709
+ printf(
710
+ '<a href="%s" class="vjs-share-button vjs-share-button-%s" target="_blank"><span class="%s"></span></a>',
711
+ esc_attr( $button['url'] ),
712
+ esc_attr( $button['service'] ),
713
+ esc_attr( $button['iconClass'] )
714
+ );
715
+ }
716
+ ?>
717
+ </div>
718
+ <?php endif; ?>
719
+
720
+ <?php if ( isset( $settings['aiovg']['embedCode'] ) ) : ?>
721
+ <!-- Embed Code -->
722
+ <div class="vjs-embed-code">
723
+ <p><?php esc_html_e( 'Paste this code in your HTML page', 'all-in-one-video-gallery' ); ?></p>
724
+ <input type="text" id="vjs-copy-embed-code" value="<?php echo htmlspecialchars( $settings['aiovg']['embedCode'] ); ?>" readonly />
725
+ </div>
726
+ <?php endif; ?>
727
+ </div>
728
+ </div>
729
+ <?php endif; ?>
730
+
731
  <?php if ( ! empty( $settings['aiovg']['contextmenuLabel'] ) ) : ?>
732
  <div id="contextmenu" class="contextmenu" style="display: none;">
733
  <div class="contextmenu-item"><?php echo esc_html( $settings['aiovg']['contextmenuLabel'] ); ?></div>
760
  <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/videojs-plugins/facebook/videojs-facebook.min.js?v=1.4.0" type="text/javascript"></script>
761
  <?php endif; ?>
762
 
763
+ <?php if ( ! empty( $settings['aiovg']['share'] ) || ! empty( $settings['aiovg']['embed'] ) || ! empty( $settings['aiovg']['download'] ) || ! empty( $settings['aiovg']['showLogo'] ) ) : ?>
764
  <script src="<?php echo AIOVG_PLUGIN_URL; ?>vendor/videojs-plugins/overlay/videojs-overlay.min.js?v=2.1.5" type="text/javascript"></script>
765
  <?php endif; ?>
766
 
778
 
779
  settings.html5 = {
780
  vhs: {
781
+ overrideNative: ! videojs.browser.IS_ANY_SAFARI,
782
  }
783
  };
784
 
785
+ var overlays = [];
786
+
787
  /**
788
  * Merge attributes.
789
  *
898
  }
899
  });
900
 
901
+ player.on( 'playing', function() {
902
+ player.trigger( 'controlsshown' );
903
+ });
904
+
905
+ player.on( 'ended', function() {
906
+ player.trigger( 'controlshidden' );
907
+ });
908
+
909
  // Offset
910
  var offset = {};
911
 
920
  if ( Object.keys( offset ).length > 1 ) {
921
  offset.restart_beginning = false;
922
  player.offset( offset );
923
+ }
924
+
925
+ // Share / Embed
926
+ if ( settings.aiovg.share || settings.aiovg.embed ) {
927
+ overlays.push({
928
+ content: '<a href="javascript:void(0)" id="vjs-share-embed-button" class="vjs-share-embed-button" style="text-decoration:none;"><span class="vjs-icon-share"></span></a>',
929
+ class: 'vjs-share',
930
+ align: 'top-right',
931
+ start: 'controlsshown',
932
+ end: 'controlshidden',
933
+ showBackground: false
934
+ });
935
+ }
936
+
937
+ // Download
938
+ if ( settings.aiovg.download ) {
939
+ var __class = 'vjs-download';
940
+
941
+ if ( settings.aiovg.share || settings.aiovg.embed ) {
942
+ __class += ' vjs-has-share';
943
+ }
944
+
945
+ overlays.push({
946
+ content: '<a href="' + settings.aiovg.downloadUrl + '" id="vjs-download-button" class="vjs-download-button" style="text-decoration:none;" target="_blank"><span class="aiovg-icon-download"></span></a>',
947
+ class: __class,
948
+ align: 'top-right',
949
+ start: 'controlsshown',
950
+ end: 'controlshidden',
951
+ showBackground: false
952
+ });
953
  }
954
 
955
+ // Logo
956
  if ( settings.aiovg.showLogo ) {
957
  var attributes = [];
958
  attributes['src'] = settings.aiovg.logoImage;
985
  attributes['onclick'] = "top.window.location.href='" + settings.aiovg.logoLink + "';";
986
  }
987
 
988
+ overlays.push({
989
+ content: '<img ' + combineAttributes( attributes ) + ' alt="" />',
990
  class: 'vjs-logo',
991
  align: align,
992
+ start: 'controlsshown',
993
+ end: 'controlshidden',
994
  showBackground: false
995
  });
996
  }
997
+
998
+ // Overlay
999
+ if ( overlays.length > 0 ) {
1000
+ player.overlay({
1001
+ content: '',
1002
+ overlays: overlays
1003
+ });
1004
+
1005
+ if ( settings.aiovg.share || settings.aiovg.embed ) {
1006
+ var options = {};
1007
+ options.content = document.getElementById( 'vjs-share-embed' );
1008
+ options.temporary = false;
1009
+
1010
+ var ModalDialog = videojs.getComponent( 'ModalDialog' );
1011
+ var modal = new ModalDialog( player, options );
1012
+ modal.addClass( 'vjs-modal-dialog-share-embed' );
1013
+
1014
+ player.addChild( modal );
1015
+
1016
+ var wasPlaying = true;
1017
+ document.getElementById( 'vjs-share-embed-button' ).addEventListener( 'click', function() {
1018
+ wasPlaying = ! player.paused;
1019
+ modal.open();
1020
+ });
1021
+
1022
+ modal.on( 'modalclose', function() {
1023
+ if ( wasPlaying ) {
1024
+ player.play();
1025
+ }
1026
+ });
1027
+ }
1028
+
1029
+ if ( settings.aiovg.embed ) {
1030
+ document.getElementById( 'vjs-copy-embed-code' ).addEventListener( 'focus', function() {
1031
+ document.getElementById( 'vjs-copy-embed-code' ).select();
1032
+ document.execCommand( 'copy' );
1033
+ });
1034
+ }
1035
+ }
1036
  }
1037
 
1038
  if ( settings.autoplay ) {
public/templates/video-thumbnail-image-left.php CHANGED
@@ -37,7 +37,7 @@ if ( empty( $image_alt ) ) {
37
  <div class="aiovg-caption">
38
  <?php if ( $attributes['show_title'] ) : ?>
39
  <div class="aiovg-title">
40
- <a href="<?php the_permalink(); ?>" class="aiovg-link-title"><?php echo esc_html( get_the_title() ); ?></a>
41
  </div>
42
  <?php endif; ?>
43
 
37
  <div class="aiovg-caption">
38
  <?php if ( $attributes['show_title'] ) : ?>
39
  <div class="aiovg-title">
40
+ <a href="<?php the_permalink(); ?>" class="aiovg-link-title"><?php echo esc_html( aiovg_truncate( get_the_title(), $attributes['title_length'] ) ); ?></a>
41
  </div>
42
  <?php endif; ?>
43
 
public/templates/video-thumbnail.php CHANGED
@@ -33,7 +33,7 @@ if ( empty( $image_alt ) ) {
33
  <div class="aiovg-caption">
34
  <?php if ( $attributes['show_title'] ) : ?>
35
  <div class="aiovg-title">
36
- <a href="<?php the_permalink(); ?>" class="aiovg-link-title"><?php echo esc_html( get_the_title() ); ?></a>
37
  </div>
38
  <?php endif; ?>
39
 
33
  <div class="aiovg-caption">
34
  <?php if ( $attributes['show_title'] ) : ?>
35
  <div class="aiovg-title">
36
+ <a href="<?php the_permalink(); ?>" class="aiovg-link-title"><?php echo esc_html( aiovg_truncate( get_the_title(), $attributes['title_length'] ) ); ?></a>
37
  </div>
38
  <?php endif; ?>
39
 
public/video.php CHANGED
@@ -218,5 +218,238 @@ class AIOVG_Public_Video {
218
 
219
  wp_send_json_success();
220
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
221
 
222
- }
218
 
219
  wp_send_json_success();
220
  }
221
+
222
+ /**
223
+ * Force download the video file.
224
+ *
225
+ * @since 2.5.8
226
+ */
227
+ public function download_video() {
228
+ if ( ! isset( $_GET['dl'] ) ) {
229
+ return;
230
+ }
231
+
232
+ if ( is_numeric( $_GET['dl'] ) ) {
233
+ $file = get_post_meta( (int) $_GET['dl'], 'mp4', true );
234
+ } else {
235
+ $file = base64_decode( $_GET['dl'] );
236
+ }
237
+
238
+ if ( empty( $file ) ) {
239
+ die( esc_html__( 'Download file URL is empty.', 'all-in-one-video-gallery' ) );
240
+ exit;
241
+ }
242
+
243
+ // Vars
244
+ $is_remote_file = true;
245
+ $formatted_path = '';
246
+ $mime_type = 'video/mp4';
247
+ $file_size = '';
248
+
249
+ // Removing spaces and replacing with %20 ascii code
250
+ $file = preg_replace( '/\s+/', '%20', trim( $file ) );
251
+ $file = str_replace( ' ', '%20', $file );
252
+ $file = str_replace( ' ', '%20', $file );
253
+ $file = str_replace( ' ', '%20', $file );
254
+ $file = str_replace( ' ', '%20', $file );
255
+ $file = str_replace( ' ', '%20', $file );
256
+ $file = str_replace( ' ', '%20', $file );
257
+ $file = str_replace( ' ', '%20', $file );
258
+ $file = str_replace( ' ', '%20', $file );
259
+ $file = str_replace( ' ', '%20', $file );
260
+
261
+ // Detect the file type
262
+ if ( strpos( $file, home_url() ) !== false ) {
263
+ $is_remote_file = false;
264
+ }
265
+
266
+ if ( preg_match( '#http://#', $file ) || preg_match( '#https://#', $file ) ) {
267
+ $formatted_path = 'url';
268
+ } else {
269
+ $formatted_path = 'filepath';
270
+ }
271
+
272
+ if ( $is_remote_file ) {
273
+ $formatted_path = 'url';
274
+ }
275
+
276
+ if ( $formatted_path == 'url' ) {
277
+ $file_headers = @get_headers( $file );
278
+
279
+ if ( $file_headers[0] == 'HTTP/1.1 404 Not Found' ) {
280
+ die( esc_html__( 'File is not readable or not found.', 'all-in-one-video-gallery' ) );
281
+ exit;
282
+ }
283
+ } elseif ( $formatted_path == 'filepath' ) {
284
+ if ( ! @is_readable( $file ) ) {
285
+ die( esc_html__( 'File is not readable or not found.', 'all-in-one-video-gallery' ) );
286
+ exit;
287
+ }
288
+ }
289
+
290
+ // Fetching File Size Located in Remote Server
291
+ if ( $is_remote_file && $formatted_path == 'url' ) {
292
+ $data = @get_headers( $file, true );
293
+
294
+ if ( ! empty( $data['Content-Length'] ) ) {
295
+ $file_size = (int) $data[ 'Content-Length' ];
296
+ } else {
297
+ // If get_headers fails then try to fetch fileSize with curl
298
+ $ch = @curl_init();
299
+
300
+ if ( ! @curl_setopt( $ch, CURLOPT_URL, $file ) ) {
301
+ @curl_close( $ch );
302
+ @exit;
303
+ }
304
+
305
+ @curl_setopt( $ch, CURLOPT_NOBODY, true );
306
+ @curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
307
+ @curl_setopt( $ch, CURLOPT_HEADER, true );
308
+ @curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
309
+ @curl_setopt( $ch, CURLOPT_MAXREDIRS, 3 );
310
+ @curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
311
+ @curl_exec( $ch );
312
+
313
+ if ( ! @curl_errno( $ch ) ) {
314
+ $http_status = (int) @curl_getinfo( $ch, CURLINFO_HTTP_CODE );
315
+ if ( $http_status >= 200 && $http_status <= 300 )
316
+ $file_size = (int) @curl_getinfo( $ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD );
317
+ }
318
+
319
+ @curl_close( $ch );
320
+ }
321
+ } else {
322
+ if ( $formatted_path == 'url' ) {
323
+ $data = @get_headers( $file, true );
324
+ $file_size = (int) $data['Content-Length'];
325
+ } elseif ( $formatted_path == 'filepath' ) {
326
+ $file_size = (int) @filesize( $file );
327
+ }
328
+ }
329
+
330
+ // Get the extension of the file
331
+ $path_parts = @pathinfo( $file );
332
+
333
+ switch ( $path_parts['extension'] ) {
334
+ case 'mp3':
335
+ $mime_type = "audio/mpeg";
336
+ break;
337
+ case 'wav':
338
+ $mime_type = "audio/x-wav";
339
+ break;
340
+ case 'au':
341
+ $mime_type = "audio/basic";
342
+ break;
343
+ case 'snd':
344
+ $mime_type = "audio/basic";
345
+ break;
346
+ case 'm3u':
347
+ $mime_type = "audio/x-mpegurl";
348
+ break;
349
+ case 'ra':
350
+ $mime_type = "audio/x-pn-realaudio";
351
+ break;
352
+ case 'mp2':
353
+ $mime_type = "video/mpeg";
354
+ break;
355
+ case 'mov':
356
+ $mime_type = "video/quicktime";
357
+ break;
358
+ case 'qt':
359
+ $mime_type = "video/quicktime";
360
+ break;
361
+ case 'mp4':
362
+ $mime_type = "video/mp4";
363
+ break;
364
+ case 'm4a':
365
+ $mime_type = "audio/mp4";
366
+ break;
367
+ case 'mp4a':
368
+ $mime_type = "audio/mp4";
369
+ break;
370
+ case 'm4p':
371
+ $mime_type = "audio/mp4";
372
+ break;
373
+ case 'm3a':
374
+ $mime_type = "audio/mpeg";
375
+ break;
376
+ case 'm2a':
377
+ $mime_type = "audio/mpeg";
378
+ break;
379
+ case 'mp2a':
380
+ $mime_type = "audio/mpeg";
381
+ break;
382
+ case 'mp2':
383
+ $mime_type = "audio/mpeg";
384
+ break;
385
+ case 'mpga':
386
+ $mime_type = "audio/mpeg";
387
+ break;
388
+ case '3gp':
389
+ $mime_type = "video/3gpp";
390
+ break;
391
+ case '3g2':
392
+ $mime_type = "video/3gpp2";
393
+ break;
394
+ case 'mp4v':
395
+ $mime_type = "video/mp4";
396
+ break;
397
+ case 'mpg4':
398
+ $mime_type = "video/mp4";
399
+ break;
400
+ case 'm2v':
401
+ $mime_type = "video/mpeg";
402
+ break;
403
+ case 'm1v':
404
+ $mime_type = "video/mpeg";
405
+ break;
406
+ case 'mpe':
407
+ $mime_type = "video/mpeg";
408
+ break;
409
+ case 'avi':
410
+ $mime_type = "video/x-msvideo";
411
+ break;
412
+ case 'midi':
413
+ $mime_type = "audio/midi";
414
+ break;
415
+ case 'mid':
416
+ $mime_type = "audio/mid";
417
+ break;
418
+ case 'amr':
419
+ $mime_type = "audio/amr";
420
+ break;
421
+
422
+ default:
423
+ $mime_type = "application/octet-stream";
424
+ }
425
+
426
+ // Off output buffering to decrease Server usage
427
+ @ob_end_clean();
428
+
429
+ if ( ini_get( 'zlib.output_compression' ) ) {
430
+ ini_set( 'zlib.output_compression', 'Off' );
431
+ }
432
+
433
+ header( 'Content-Description: File Transfer' );
434
+ header( 'Content-Type: '. $mime_type );
435
+ header( 'Content-Disposition: attachment; filename=' . (string) @basename( $file ) );
436
+ header( 'Content-Transfer-Encoding: binary' );
437
+ header( 'Expires: Wed, 07 May 2013 09:09:09 GMT' );
438
+ header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
439
+ header( 'Cache-Control: post-check=0, pre-check=0', false );
440
+ header( 'Cache-Control: no-store, no-cache, must-revalidate' );
441
+ header( 'Pragma: no-cache' );
442
+ header( 'Content-Length: '. $file_size);
443
+
444
+ // Will Download 1 MB in chunkwise
445
+ $chunk = 1 * ( 1024 * 1024 );
446
+ $nfile = @fopen( $file, 'rb' );
447
+ while ( ! feof( $nfile ) ) {
448
+ print( @fread( $nfile, $chunk ) );
449
+ @ob_flush();
450
+ @flush();
451
+ }
452
+ @fclose( $filen );
453
+ }
454
 
455
+ }
public/videos.php CHANGED
@@ -93,27 +93,32 @@ class AIOVG_Public_Videos {
93
  }
94
 
95
  if ( isset( $term ) && ! empty( $term ) ) {
96
- $page_settings = get_option( 'aiovg_page_settings' );
 
97
  $content = '';
98
 
99
- $back_button_url = get_permalink( $page_settings['category'] );
100
- $back_button_text = __( 'All Categories', 'all-in-one-video-gallery' );
101
 
102
- if ( $term->parent > 0 ) {
103
- $parent_term = get_term_by( 'id', $term->parent, 'aiovg_categories' );
104
 
105
- $back_button_url = aiovg_get_category_page_url( $parent_term );
106
- $back_button_text = $parent_term->name;
107
- }
108
 
109
- $back_button_url = apply_filters( 'aiovg_back_to_categories_link', $back_button_url );
 
 
110
 
111
- if ( ! empty( $back_button_url ) ) {
112
- $content .= sprintf(
113
- '<p class="aiovg aiovg-categories-nav"><a href="%s">&larr; %s</a></p>',
114
- esc_url( $back_button_url ),
115
- $back_button_text
116
- );
 
 
 
117
  }
118
 
119
  if ( ! empty( $term->description ) ) {
@@ -276,6 +281,8 @@ class AIOVG_Public_Videos {
276
  $attributes['user_slug'] = $user_slug;
277
 
278
  $content = $this->get_content( $attributes );
 
 
279
  }
280
 
281
  if ( empty( $content ) ) {
@@ -303,7 +310,7 @@ class AIOVG_Public_Videos {
303
  } elseif ( $value == 'true' ) {
304
  $attributes[ $key ] = 1;
305
  } else {
306
- $attributes[ $key ] = sanitize_text_field( $value );
307
  }
308
  }
309
 
@@ -339,6 +346,7 @@ class AIOVG_Public_Videos {
339
 
340
  if ( ! empty( $attributes['search_query'] ) ) { // Search
341
  $args['s'] = sanitize_text_field( $attributes['search_query'] );
 
342
  }
343
 
344
  $tax_queries = array();
93
  }
94
 
95
  if ( isset( $term ) && ! empty( $term ) ) {
96
+ $categories_settings = get_option( 'aiovg_categories_settings' );
97
+
98
  $content = '';
99
 
100
+ if ( ! empty( $categories_settings['back_button'] ) ) {
101
+ $page_settings = get_option( 'aiovg_page_settings' );
102
 
103
+ $back_button_url = get_permalink( $page_settings['category'] );
104
+ $back_button_text = __( 'All Categories', 'all-in-one-video-gallery' );
105
 
106
+ if ( $term->parent > 0 ) {
107
+ $parent_term = get_term_by( 'id', $term->parent, 'aiovg_categories' );
 
108
 
109
+ $back_button_url = aiovg_get_category_page_url( $parent_term );
110
+ $back_button_text = $parent_term->name;
111
+ }
112
 
113
+ $back_button_url = apply_filters( 'aiovg_back_to_categories_link', $back_button_url );
114
+
115
+ if ( ! empty( $back_button_url ) ) {
116
+ $content .= sprintf(
117
+ '<p class="aiovg aiovg-categories-nav"><a href="%s">&larr; %s</a></p>',
118
+ esc_url( $back_button_url ),
119
+ $back_button_text
120
+ );
121
+ }
122
  }
123
 
124
  if ( ! empty( $term->description ) ) {
281
  $attributes['user_slug'] = $user_slug;
282
 
283
  $content = $this->get_content( $attributes );
284
+ } else {
285
+ $content = do_shortcode( '[aiovg_videos]' );
286
  }
287
 
288
  if ( empty( $content ) ) {
310
  } elseif ( $value == 'true' ) {
311
  $attributes[ $key ] = 1;
312
  } else {
313
+ $attributes[ $key ] = is_array( $value ) ? array_map( 'intval', $value ) : sanitize_text_field( $value );
314
  }
315
  }
316
 
346
 
347
  if ( ! empty( $attributes['search_query'] ) ) { // Search
348
  $args['s'] = sanitize_text_field( $attributes['search_query'] );
349
+ $args['suppress_filters'] = true;
350
  }
351
 
352
  $tax_queries = array();
widgets/categories.php CHANGED
@@ -47,7 +47,7 @@ class AIOVG_Widget_Categories extends WP_Widget {
47
  public function __construct() {
48
  $this->widget_slug = 'aiovg-widget-categories';
49
 
50
- $image_settings = get_option( 'aiovg_image_settings' );
51
  $categories_settings = get_option( 'aiovg_categories_settings' );
52
 
53
  $this->defaults = array(
@@ -56,7 +56,7 @@ class AIOVG_Widget_Categories extends WP_Widget {
56
  'child_of' => 0,
57
  'columns' => 1,
58
  'limit' => 0,
59
- 'ratio' => ! empty( $image_settings['ratio'] ) ? (float) $image_settings['ratio'] . '%' : '56.25%',
60
  'orderby' => $categories_settings['orderby'],
61
  'order' => $categories_settings['order'],
62
  'hierarchical' => 1,
47
  public function __construct() {
48
  $this->widget_slug = 'aiovg-widget-categories';
49
 
50
+ $videos_settings = get_option( 'aiovg_videos_settings' );
51
  $categories_settings = get_option( 'aiovg_categories_settings' );
52
 
53
  $this->defaults = array(
56
  'child_of' => 0,
57
  'columns' => 1,
58
  'limit' => 0,
59
+ 'ratio' => ! empty( $videos_settings['ratio'] ) ? (float) $videos_settings['ratio'] . '%' : '56.25%',
60
  'orderby' => $categories_settings['orderby'],
61
  'order' => $categories_settings['order'],
62
  'hierarchical' => 1,
widgets/forms/video.php CHANGED
@@ -76,7 +76,7 @@ global $pagenow;
76
  </div>
77
 
78
  <div class="aiovg-widget-field aiovg-widget-field-ratio">
79
- <label class="aiovg-widget-label" for="<?php echo esc_attr( $this->get_field_id( 'ratio' ) ); ?>"><?php esc_html_e( 'Ratio', 'all-in-one-video-gallery' ); ?></label>
80
  <input type="text" name="<?php echo esc_attr( $this->get_field_name( 'ratio' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'ratio' ) ); ?>" class="widefat aiovg-widget-input-ratio" value="<?php echo esc_attr( $instance['ratio'] ); ?>" />
81
  </div>
82
 
@@ -155,14 +155,35 @@ global $pagenow;
155
  <div class="aiovg-widget-field aiovg-widget-field-volume">
156
  <label for="<?php echo esc_attr( $this->get_field_id( 'volume' ) ); ?>">
157
  <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'volume' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'volume' ) ); ?>" class="aiovg-widget-input-volume" value="1" <?php checked( 1, $instance['volume'] ); ?> />
158
- <?php esc_html_e( 'Volume', 'all-in-one-video-gallery' ); ?>
159
  </label>
160
  </div>
161
 
162
  <div class="aiovg-widget-field aiovg-widget-field-fullscreen">
163
  <label for="<?php echo esc_attr( $this->get_field_id( 'fullscreen' ) ); ?>">
164
  <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'fullscreen' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'fullscreen' ) ); ?>" class="aiovg-widget-input-fullscreen" value="1" <?php checked( 1, $instance['fullscreen'] ); ?> />
165
- <?php esc_html_e( 'Fullscreen', 'all-in-one-video-gallery' ); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  </label>
167
  </div>
168
  </div>
76
  </div>
77
 
78
  <div class="aiovg-widget-field aiovg-widget-field-ratio">
79
+ <label class="aiovg-widget-label" for="<?php echo esc_attr( $this->get_field_id( 'ratio' ) ); ?>"><?php esc_html_e( 'Height (Ratio)', 'all-in-one-video-gallery' ); ?></label>
80
  <input type="text" name="<?php echo esc_attr( $this->get_field_name( 'ratio' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'ratio' ) ); ?>" class="widefat aiovg-widget-input-ratio" value="<?php echo esc_attr( $instance['ratio'] ); ?>" />
81
  </div>
82
 
155
  <div class="aiovg-widget-field aiovg-widget-field-volume">
156
  <label for="<?php echo esc_attr( $this->get_field_id( 'volume' ) ); ?>">
157
  <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'volume' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'volume' ) ); ?>" class="aiovg-widget-input-volume" value="1" <?php checked( 1, $instance['volume'] ); ?> />
158
+ <?php esc_html_e( 'Volume Button', 'all-in-one-video-gallery' ); ?>
159
  </label>
160
  </div>
161
 
162
  <div class="aiovg-widget-field aiovg-widget-field-fullscreen">
163
  <label for="<?php echo esc_attr( $this->get_field_id( 'fullscreen' ) ); ?>">
164
  <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'fullscreen' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'fullscreen' ) ); ?>" class="aiovg-widget-input-fullscreen" value="1" <?php checked( 1, $instance['fullscreen'] ); ?> />
165
+ <?php esc_html_e( 'Fullscreen Button', 'all-in-one-video-gallery' ); ?>
166
+ </label>
167
+ </div>
168
+
169
+ <div class="aiovg-widget-field aiovg-widget-field-share">
170
+ <label for="<?php echo esc_attr( $this->get_field_id( 'share' ) ); ?>">
171
+ <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'share' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'share' ) ); ?>" class="aiovg-widget-input-share" value="1" <?php checked( 1, $instance['share'] ); ?> />
172
+ <?php esc_html_e( 'Share Buttons', 'all-in-one-video-gallery' ); ?>
173
+ </label>
174
+ </div>
175
+
176
+ <div class="aiovg-widget-field aiovg-widget-field-embed">
177
+ <label for="<?php echo esc_attr( $this->get_field_id( 'embed' ) ); ?>">
178
+ <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'embed' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'embed' ) ); ?>" class="aiovg-widget-input-embed" value="1" <?php checked( 1, $instance['embed'] ); ?> />
179
+ <?php esc_html_e( 'Embed Button', 'all-in-one-video-gallery' ); ?>
180
+ </label>
181
+ </div>
182
+
183
+ <div class="aiovg-widget-field aiovg-widget-field-download">
184
+ <label for="<?php echo esc_attr( $this->get_field_id( 'download' ) ); ?>">
185
+ <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'download' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'download' ) ); ?>" class="aiovg-widget-input-download" value="1" <?php checked( 1, $instance['download'] ); ?> />
186
+ <?php esc_html_e( 'Download Button', 'all-in-one-video-gallery' ); ?>
187
  </label>
188
  </div>
189
  </div>
widgets/forms/videos.php CHANGED
@@ -18,6 +18,10 @@
18
  <?php
19
  foreach ( $section['fields'] as $field ) :
20
  $field_name = sanitize_text_field( $field['name'] );
 
 
 
 
21
  ?>
22
  <div class="aiovg-widget-field aiovg-widget-field-<?php echo esc_attr( $field_name ); ?>">
23
  <?php if ( 'header' == $field['type'] ) : ?>
18
  <?php
19
  foreach ( $section['fields'] as $field ) :
20
  $field_name = sanitize_text_field( $field['name'] );
21
+
22
+ if ( in_array( $field_name, $this->excluded_fields ) ) {
23
+ continue;
24
+ }
25
  ?>
26
  <div class="aiovg-widget-field aiovg-widget-field-<?php echo esc_attr( $field_name ); ?>">
27
  <?php if ( 'header' == $field['type'] ) : ?>
widgets/video.php CHANGED
@@ -119,6 +119,9 @@ class AIOVG_Widget_Video extends WP_Widget {
119
  $instance['speed'] = isset( $new_instance['speed'] ) ? (int) $new_instance['speed'] : 0;
120
  $instance['volume'] = isset( $new_instance['volume'] ) ? (int) $new_instance['volume'] : 0;
121
  $instance['fullscreen'] = isset( $new_instance['fullscreen'] ) ? (int) $new_instance['fullscreen'] : 0;
 
 
 
122
 
123
  return $instance;
124
  }
@@ -149,7 +152,10 @@ class AIOVG_Widget_Video extends WP_Widget {
149
  'quality' => isset( $player_settings['controls']['quality'] ) ? 1 : 0,
150
  'speed' => isset( $player_settings['controls']['speed'] ) ? 1 : 0,
151
  'volume' => isset( $player_settings['controls']['volume'] ) ? 1 : 0,
152
- 'fullscreen' => isset( $player_settings['controls']['fullscreen'] ) ? 1 : 0
 
 
 
153
  );
154
 
155
  // Parse incoming $instance into an array and merge it with $defaults
119
  $instance['speed'] = isset( $new_instance['speed'] ) ? (int) $new_instance['speed'] : 0;
120
  $instance['volume'] = isset( $new_instance['volume'] ) ? (int) $new_instance['volume'] : 0;
121
  $instance['fullscreen'] = isset( $new_instance['fullscreen'] ) ? (int) $new_instance['fullscreen'] : 0;
122
+ $instance['share'] = isset( $new_instance['share'] ) ? (int) $new_instance['share'] : 0;
123
+ $instance['embed'] = isset( $new_instance['embed'] ) ? (int) $new_instance['embed'] : 0;
124
+ $instance['download'] = isset( $new_instance['download'] ) ? (int) $new_instance['download'] : 0;
125
 
126
  return $instance;
127
  }
152
  'quality' => isset( $player_settings['controls']['quality'] ) ? 1 : 0,
153
  'speed' => isset( $player_settings['controls']['speed'] ) ? 1 : 0,
154
  'volume' => isset( $player_settings['controls']['volume'] ) ? 1 : 0,
155
+ 'fullscreen' => isset( $player_settings['controls']['fullscreen'] ) ? 1 : 0,
156
+ 'share' => isset( $player_settings['controls']['share'] ) ? 1 : 0,
157
+ 'embed' => isset( $player_settings['controls']['embed'] ) ? 1 : 0,
158
+ 'download' => isset( $player_settings['controls']['download'] ) ? 1 : 0
159
  );
160
 
161
  // Parse incoming $instance into an array and merge it with $defaults
widgets/videos.php CHANGED
@@ -31,13 +31,22 @@ class AIOVG_Widget_Videos extends WP_Widget {
31
  protected $widget_slug;
32
 
33
  /**
34
- * Block fields.
35
  *
36
  * @since 1.0.0
37
  * @access private
38
  * @var array
39
  */
40
  private $fields;
 
 
 
 
 
 
 
 
 
41
 
42
  /**
43
  * Default settings.
@@ -56,6 +65,7 @@ class AIOVG_Widget_Videos extends WP_Widget {
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(
@@ -80,8 +90,10 @@ class AIOVG_Widget_Videos extends WP_Widget {
80
  public function widget( $args, $instance ) {
81
  // Merge incoming $instance array with $defaults
82
  if ( count( $instance ) ) {
83
- if ( isset( $instance['ratio'] ) ) {
84
- unset( $instance['ratio'] ); // Always get ratio from the global settings
 
 
85
  }
86
 
87
  $attributes = array_merge( $this->defaults, $instance );
@@ -208,11 +220,8 @@ class AIOVG_Widget_Videos extends WP_Widget {
208
  }
209
 
210
  if ( $aiovg_query->have_posts() ) {
211
- unset( $attributes['title'] );
212
-
213
- $attributes['uid'] = aiovg_get_uniqid();
214
- $attributes['source'] = 'videos';
215
-
216
  include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . 'public/templates/videos-template-classic.php', $attributes );
217
  } else {
218
  echo aiovg_get_message( 'videos_empty' );
@@ -235,6 +244,10 @@ class AIOVG_Widget_Videos extends WP_Widget {
235
  foreach ( $section['fields'] as $field ) {
236
  $field_name = $field['name'];
237
 
 
 
 
 
238
  if ( 'categories' == $field['type'] ) {
239
  $instance['category'] = isset( $new_instance['category'] ) ? array_map( 'intval', $new_instance['category'] ) : array();
240
  } elseif ( 'tags' == $field['type'] ) {
@@ -286,7 +299,9 @@ class AIOVG_Widget_Videos extends WP_Widget {
286
  * @since 1.0.0
287
  * @return array $atts An associative array of attributes.
288
  */
289
- public function get_defaults() {
 
 
290
  $defaults = array();
291
 
292
  foreach ( $this->fields['videos']['sections'] as $section ) {
@@ -301,6 +316,11 @@ class AIOVG_Widget_Videos extends WP_Widget {
301
  }
302
  }
303
 
 
 
 
 
 
304
  $defaults = array_merge(
305
  $defaults,
306
  array(
31
  protected $widget_slug;
32
 
33
  /**
34
+ * Widget fields.
35
  *
36
  * @since 1.0.0
37
  * @access private
38
  * @var array
39
  */
40
  private $fields;
41
+
42
+ /**
43
+ * Excluded widget fields.
44
+ *
45
+ * @since 2.5.8
46
+ * @access private
47
+ * @var array
48
+ */
49
+ private $excluded_fields = array();
50
 
51
  /**
52
  * Default settings.
65
  public function __construct() {
66
  $this->widget_slug = 'aiovg-widget-videos';
67
  $this->fields = aiovg_get_shortcode_fields();
68
+ $this->excluded_fields = array( 'ratio', 'title_length', 'excerpt_length' );
69
  $this->defaults = $this->get_defaults();
70
 
71
  parent::__construct(
90
  public function widget( $args, $instance ) {
91
  // Merge incoming $instance array with $defaults
92
  if ( count( $instance ) ) {
93
+ foreach ( $this->excluded_fields as $excluded_field ) {
94
+ if ( isset( $instance[ $excluded_field ] ) ) {
95
+ unset( $instance[ $excluded_field ] ); // Always get this value from the global settings
96
+ }
97
  }
98
 
99
  $attributes = array_merge( $this->defaults, $instance );
220
  }
221
 
222
  if ( $aiovg_query->have_posts() ) {
223
+ unset( $attributes['title'] );
224
+
 
 
 
225
  include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . 'public/templates/videos-template-classic.php', $attributes );
226
  } else {
227
  echo aiovg_get_message( 'videos_empty' );
244
  foreach ( $section['fields'] as $field ) {
245
  $field_name = $field['name'];
246
 
247
+ if ( in_array( $field_name, $this->excluded_fields ) ) {
248
+ continue;
249
+ }
250
+
251
  if ( 'categories' == $field['type'] ) {
252
  $instance['category'] = isset( $new_instance['category'] ) ? array_map( 'intval', $new_instance['category'] ) : array();
253
  } elseif ( 'tags' == $field['type'] ) {
299
  * @since 1.0.0
300
  * @return array $atts An associative array of attributes.
301
  */
302
+ public function get_defaults() {
303
+ $pagination_settings = get_option( 'aiovg_pagination_settings', array() );
304
+
305
  $defaults = array();
306
 
307
  foreach ( $this->fields['videos']['sections'] as $section ) {
316
  }
317
  }
318
 
319
+ $defaults['uid'] = aiovg_get_uniqid();
320
+ $defaults['source'] = 'videos';
321
+ $defaults['paged'] = 1;
322
+ $defaults['pagination_ajax'] = isset( $pagination_settings['ajax'] ) && ! empty( $pagination_settings['ajax'] ) ? 1 : 0;
323
+
324
  $defaults = array_merge(
325
  $defaults,
326
  array(