Feeds for YouTube (YouTube video, channel, and gallery plugin) - Version 1.2.1

Version Description

  • Tweak: Video thumbnails are cropped to a 9:16 aspect ratio to remove black bars at the top and bottom of the images.
  • Tweak: Improved workarounds for video player issues caused by having iframes from other sources on the same page.
Download this release

Release Info

Developer smashballoon
Plugin Icon 128x128 Feeds for YouTube (YouTube video, channel, and gallery plugin)
Version 1.2.1
Comparing to
See all releases

Code changes from version 1.2 to 1.2.1

README.txt CHANGED
@@ -5,55 +5,55 @@ Support Website: http://smashballoon/youtube-feed/
5
  Tags: YouTube, YouTube feed, YouTube widget, YouTube channel, YouTube gallery
6
  Requires at least: 3.4
7
  Tested up to: 5.4
8
- Stable tag: 1.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
12
  The Feeds for YouTube plugin allows you to display customizable YouTube feeds from any YouTube channel.
13
 
14
  == Description ==
15
- **Display customizable YouTube channel feeds on your website. Feed your YouTube channel content automatically to your website in powerful and customizable ways.**
16
 
17
  ### YouTube Feed Features
18
  * **Completely Customizable** YouTube feeds - by default inherits your theme's styles
19
- * **Completely responsive and mobile optimized** - your YouTube feeds look great on any screen size
20
  * **Light and low overhead** - minimal bloat and optimized requests to YouTube
21
  * **Multiple layouts** - display videos from any YouTube channel in a list, gallery, or grid layout
22
  * **Multiple feeds** from different YouTube channels on multiple pages or widgets
23
- * **Lightning fast** - post caching and minimized YouTube API requests means that your YouTube feed loads lightning fast
24
- * **Infinitely load more** of your YouTube videos with the 'Load More' button
25
- * Built-in easy to use "YouTube Feed" Widget
26
  * Fully internationalized and translatable into any language
27
- * Includes a header at the top of your YouTube channel feed
28
  * Enter your own custom CSS or JavaScript for even deeper customization
29
 
30
  For simple step-by-step directions on how to set up the Feeds for YouTube plugin please refer to our [setup guide](http://smashballoon.com/youtube-feed/free/?utm_source=wordpress&utm_campaign=sby 'Feeds for YouTube setup guide').
31
 
32
  ### Benefits
33
- * **Increase social engagement** between you and your YouTube subscribers
34
- * **Save time** by using the Feeds for YouTube plugin to generate dynamic, search engine crawlable content on your website
35
- * **Get more subscribers** by displaying your YouTube videos directly on your site
36
- * Display your YouTube channel content **your way** to perfectly match your website's style
37
- * The plugin is **updated regularly** with new features, bug-fixes and YouTube API changes
38
  * Support is quick, effective, and always happy to help
39
- * We're dedicated to providing the **most customizable**, **robust** and **well supported** YouTube feed plugin in the world!
40
 
41
  ### Feedback or Support
42
- Customer support is a huge deal to us. We pride ourselves on always providing quick, effective, and courteous support to all of our users. If you're having an issue with our YouTube pluginthen just let us know and we'll be there to help as soon as possible. You can either open a ticket on the support forum on [WordPress.org](https://wordpress.org/support/plugin/feeds-for-youtube/ "YouTube Feed Free support forum"), or directly on [our website](https://smashballoon.com/youtube-feed/support/ "YouTube Feed website support form").
43
 
44
  If you like the plugin then please consider leaving a review, as it really helps to support the plugin. If you have an issue then please allow us to help you fix it before leaving a review. Just [let us know](https://smashballoon.com/youtube-feed/support/?utm_source=wordpress&utm_campaign=sby 'Feeds for YouTube Support') what the problem is and we'll get back to you right away.
45
 
46
- ### Pro Version (Feeds for YouTube Pro)
47
- We plan on releasing a [Pro version](http://smashballoon.com/youtube-feed/?utm_source=wordpress&utm_campaign=sby 'Feeds for YouTube Pro') which includes some awesome additional features to help you display your YouTube content in even more powerful ways:
48
 
49
- * Display videos from your YouTube **favorites list**
50
- * Integrate the **YouTube Live API** to show live streaming YouTube videos on your site.
51
  * Display a YouTube gallery in a carousel slider
52
- * Allow **filtering** of YouTube videos using keywords in the description or title
53
- * Fully functional **search endpoint** for display YouTube videos from a search result
54
- * **Combine multiple YouTube feeds** into one
55
- * Customizable **actions when YouTube video completes** like displaying a link to a product page for example, or displaying thumbnails of your other videos.
56
- * Download video data into a **custom post type** to allow visitors to browse and view YouTube videos on your website.
57
 
58
  ### How to use the "Feeds for YouTube" plugin
59
 
@@ -61,142 +61,119 @@ One of our main priorities has always been to make our plugins as easy as possib
61
 
62
  * 1) Click the "Log in to YouTube and connect an account" button on the "Feeds for YouTube" plugin settings page. This will prompt you to log into your Google account to authorize the plugin.
63
  * 2) Once you've connected your account, save the plugin settings.
64
- * 3) Then simply copy and paste the `[youtube-feed]` shortcode onto any page, post, or widget where you want your YouTube feed to be displayed.
65
 
66
  That's it! You can then customize the feed as needed using the settings on the plugin "Customize" page.
67
 
68
  For full step-by-step setup directions with screenshots, see [here](https://smashballoon.com/youtube-feed/free/ "YouTube Feed Free Setup Doc").
69
 
70
- ### Who's behind this YouTube plugin?
71
 
72
- We're Smash Balloon; a fun-loving WordPress plugin development company birthed into existence in early 2013. We specialize in creating plugins that are not only intuitive and simple to use, but also designed to integrate seamlessly into your website and allow you to display your social media content in powerful and unique ways. Over 1 million awesome people have decided to actively use our free plugins, which is an incredible honor that we don't take lightly. This compels us to try to provide the quickest and most effective customer support that we can, blowing users away with the best customer service they've ever experienced.
73
 
74
  To find out more about the team, see [here](https://smashballoon.com/about/ "Team Smash Balloon").
75
 
76
- ### YouTube Feed Shortcode Settings
77
-
78
- You can edit the settings globally for all YouTube feeds on your site using the plugin settings page, but if you want to change settings for specific YouTube feeds then you can do so by using the shortcode settings listed below:
79
-
80
- **channel** - Display videos from a YouTube channel. Eg: [youtube-feed channel="smashballoon"]
81
- **width** - The width of your YouTube feed. Any number with a unit like "px" or "%". Eg: [youtube-feed width="300px"]
82
- **height** - The height of your YouTube feed. Any number with a unit like "px" or "em". Eg: [youtube-feed height="500px"]
83
- **background** - Background color for your YouTube feed. Any hex color code. Eg: [youtube-feed background="#f00"]
84
- **playvideo** - What the user needs to do to play a YouTube video: **onclick**, **automatically**. Eg: [youtube-feed playvideo="onclick"]
85
- **layout** - How your YouTube videos are displayed visually. Eg: [youtube-feed layout="list"]
86
- **num** - The number of YouTube videos in the feed. Eg: [youtube-feed num="5"]
87
- **itemspacing** - The spacing/padding around the YouTube videos in the feed. Any number with a unit like "px" or "em". Eg: [youtube-feed itemspacing="5px"]
88
- **showheader** - Include a header for this YouTube feed. Eg: [youtube-feed showheader="false"]
89
- **showdescription** Include the channel description in the YouTube feed header. Eg: [youtube-feed showdescription="false"]
90
- **showbutton** - Include a "Load More" button at the bottom of the feed to load more YouTube videos. Eg: [youtube-feed showbutton="false"]
91
- **buttoncolor** - Background color for the "Load More" button at the bottom of the YouTube feed. Any hex color code Eg: [youtube-feed buttoncolor="#0f0"]
92
- **buttontextcolor** - Text color for the "Load More" button. Any hex color code. Eg: [youtube-feed buttontextcolor="#00f"]
93
- **buttontext** - The text that appers on the "Load More" button. Eg: [youtube-feed buttontext=""More Videos""]
94
- **showsubscribe** - Include a "Subscribe" button at the bottom of the YouTube feed to load more YouTube videos. Eg: [youtube-feed showsubscribe="false"]
95
- **subscribecolor** - Background color for the YouTube "Subscribe" button. Any hex color code. Eg: [youtube-feed subscribecolor="#0f0"]
96
- **subscribetextcolor** - Text color for the YouTube "Subscribe" button. Any hex color code. Eg: [youtube-feed subscribetextcolor="#00f"]
97
- **subscribetext** - The text that appers on the YouTube "Subscribe" button. Eg: [youtube-feed subscribetext=""Subscribe to My Channel""]
98
-
99
  == Installation ==
100
- 1. Install the Feeds for YouTube plugin either via the WordPress plugin directory, or by uploading the files to your web server (in the /wp-content/plugins/ directory).
101
  2. Activate the plugin through the 'Plugins' menu in WordPress.
102
  3. Navigate to the 'Feeds for YouTube' settings page to configure your YouTube gallery.
103
  4. Use the shortcode [youtube-feed] in your page, post or widget to display your YouTube feed.
104
- 5. You can display multiple YouTube channels with different configurations by specifying the necessary parameters directly in the shortcode: [youtube-feed channel=smashballoon].
105
 
106
- For simple step-by-step directions on how to set up the Feeds for YouTube plugin please refer to our [setup guide](http://smashballoon.com/youtube-feed/free/?utm_source=wordpress&utm_campaign=sby 'Feeds for YouTube setup guide').
107
 
108
- = Setting up the Free Feeds for YouTube WordPress Plugin =
109
 
110
  The Feeds for YouTube plugin is brand new and so we're currently working on improving our documentation for it. If you have an issue or question please submit a support ticket and we'll get back to you as soon as we can.
111
 
112
  1) Once you've installed the "Feeds for YouTube" plugin click on the "Feeds for YouTube" item in your WordPress menu
113
 
114
- 2) Click on the large blue YouTube login button to get your YouTube Access Token and YouTube Refresh Token. Note; if you have your own YouTube Developer Project set up then you can enter your YouTube API key by enabling the checkbox below the YouTube login button.
115
 
116
- 3) Authorize the Feeds for YouTube plugin to read data about your YouTube videos and YouTube channel.
117
 
118
- 4) YouTube sends back your YouTube Access Token and YouTube Refresh Token which are then automatically saved by the Feeds for YouTube plugin. This information is required in order to connect to the YouTube API.
119
 
120
- 5) Enter a YouTube channel name to display videos from.
121
 
122
- 6) Navigate to the Customize and Style pages to customize your YouTube feed.
123
 
124
- 7) Once you've customized your YouTube feed, click on the "Display Your Feed" tab for directions on how to display your YouTube feed (or multiple YouTube feeds).
125
 
126
  8) Copy the [youtube-feed] shortcode and paste it into any page, post or widget where you want the YouTube feed to appear.
127
 
128
  9) You can paste the [youtube-feed] shortcode directly into your page editor.
129
 
130
- 10) You can use the default WordPress 'Text' widget to display your Feeds for YouTube in a sidebar or other widget area.
131
 
132
- 11) View your website to see your YouTube feed(s) in all their glory!
133
 
134
  == Frequently Asked Questions ==
135
 
136
  = Can I display multiple YouTube feeds on my site or on the same page? =
137
 
138
- Yep. You can display multiple YouTube feeds by using our built-in shortcode options, for example: `[youtube-feed channel="smashballoon" num=3]`.
139
 
140
  = How do I embed a YouTube gallery directly into a WordPress page template? =
141
 
142
- You can embed your YouTube gallery directly into a template file by using the WordPress [do_shortcode](http://codex.wordpress.org/Function_Reference/do_shortcode) function: `<?php echo do_shortcode('[youtube-feed]'); ?>`.
143
 
144
- = Will Feeds for YouTube work with W3 Total Cache or other caching plugins? =
145
 
146
- The Feeds for YouTube plugin should work in compatibility with most, if not all, caching plugins, but you may need to tweak the settings in order to allow the YouTube feed to update successfully and display your latest posts. If you are experiencing problems with your YouTube feed not updating then try disabling either 'Page Caching' or 'Object Caching' in W3 Total Cache (or any other similar caching plugin) to see whether that fixes the problem and the YouTube feed displays and updates successfully.
147
 
148
- = Can I change whether the YouTube video autoplays or plays on click =
149
 
150
- Yep, just use the following setting: Feeds for YouTube > Customize > Video Experience > When does video play? You can then set the YouTube video to play when clicked or to autoplay.
151
 
152
- = How can I change the layout of my YouTube video feed? =
153
 
154
- This free plugin has several layout options built into it. Use the settings in the following location to display your YouTube videos in a list, grid, or gallery layout: Feeds for YouTube > Customize > Layout. You can also change the spacing/padding between the YouTube videos by using the "Spacing between videos" setting in this same section.
155
 
156
  = Can I select how many YouTube videos should be displayed in the feed? =
157
 
158
- Yep, you can choose to display between 1-50 YouTube videos in your feed by using the following setting: Feeds for YouTube > Customize > Layout > Number of Videos. The plugin also contains a "Load More" button to allow you to infinitely load more YouTube videos into your feed.
159
 
160
  = Will my YouTube gallery be responsive to accommodate mobile visitors? =
161
 
162
- Yes. All YouTube feed layouts are completely mobile responsive. Using the plugin's gallery layout will automatically scroll visitors to the YouTube video player to view the video when the video thumbnail is clicked.
163
 
164
  = Will videos from my YouTube channel be cached? =
165
 
166
- Yes. The Feeds for YouTube plugin will cache all of the posts collected from the YouTube API. Your YouTube videos and information about your YouTube channel can then be retrieved and used for future page loads.
167
-
168
- = How do I find the nickname of channel ID for different YouTube channels? =
169
 
170
- You can display videos from any YouTube channel using the unique YouTube channel ID. This can be found by viewing the channel page on YouTube and looking at the end of the URL. ex: https://www.youtube.com/channel/UC1a2b3c4D5F6g7i8j9k. You can also use the channel nickname.
171
 
172
- = How does the plugin retrieve my YouTube videos? =
173
-
174
- The plugin connects to YouTube and requests data about videos from your YouTube channel in three ways: The RSS feed associated with each YouTube Channel, using the Smash Balloon app and the YouTube API, and using an API Key to connect to the YouTube API. The plugin uses each connection type in certain circumstances with the main concern of optimizing API calls overall.
175
 
176
  = Will displaying my YouTube channel affect the time it takes to load the page? =
177
 
178
- The Feeds for YouTube plugin has a few features to minimize the impact it has on page load time. For example, iframes for playing YouTube videos are not loaded until the feed is interacted with by a visitor. Thumbnails of your YouTube videos are the smallest resolution necessary relative to the size of the feed. Also, these video thumbnails are not loaded until the rest of the content on the page is loaded.
179
 
180
- = How often do new videos from my YouTube channel appear in the YouTube gallery? =
181
 
182
- By default, the plugin retrieves new YouTube videos for your YouTube gallery once every hour. You can reduce this to as little as 15 minutes if needed. You can even set your YouTube gallery to update using WordPress cron in the background so the caching process is not relying on the page with your YouTube gallery being visited.
183
 
184
  == Screenshots ==
185
 
186
- 1. By default the Feeds for YouTube plugin inherits styles from your theme
187
- 2. Display multiple YouTube feeds and customize each one
188
- 3. When using the "grid" layout, YouTube videos open and play in a lightbox
189
  4. Feeds for YouTube Settings pages
190
- 5. Built in customization settings make customizing your YouTube feed easy
191
- 6. Use handy shortcode options to customize individual YouTube feeds
192
  7. To display a YouTube feed just copy and paste the [youtube-feed] shortcode into a widget or page
193
 
194
  == Changelog ==
 
 
 
 
195
  = 1.2 =
196
- * New: Display video players in 9:16 ratio. To use 3:4 ratio, go to the "Customize" tab, "Video Experience" area.
197
- * New: Added a Feeds for YouTube Gutenberg block to use in the block editor, allowing you to easily add a feed to posts and pages.
198
- * Tweak: Non Feeds for YouTube admin notices are removed when viewing settings pages for Feeds for YouTube.
199
- * Fix: Video player would sometimes not work when the YouTube iframe JS API was available earlier than the feeds were created.
200
 
201
  = 1.1.1 =
202
  * Tested with upcoming WordPress 5.4 update.
@@ -204,12 +181,12 @@ By default, the plugin retrieves new YouTube videos for your YouTube gallery onc
204
  * Tweak: Added CSS to help feeds work better with certain themes.
205
  * Tweak: Used a higher resolution image file if optimum resolution was not available from the API.
206
  * Fix: "include=" shortcode setting would cause play icon to never show.
207
- * Fix: Fast response from YouTube player API would cause the players to load along with the page when not necessary.
208
- * Fix: Background caching was not updating feed caches.
209
 
210
  = 1.1 =
211
- * New: Several improvements to the lightbox for YouTube grid feeds were made including a video index indicator, navigation arrows moved to the outside of the YouTube video, and a close button.
212
- * New: Added play button icon that displays on top of YouTube video thumbnails. Disable this on the "Customize" tab.
213
  * New: Added workaround for occasional issue caused by multiple elements of the page using the YouTube Player API.
214
  * Tweak: Fixed typo in HTML element with the class "sby_thumbail_hover". Now "sby_thumbnail_hover".
215
  * Tweak: Updated admin PHP code.
@@ -217,16 +194,16 @@ By default, the plugin retrieves new YouTube videos for your YouTube gallery onc
217
  * Tweak: Updated language files and several strings to use text domain "feeds-for-youtube" instead of "youtube-feed".
218
 
219
  = 1.0.3 =
220
- * Tweak: Changed tooltip and notes regarding how to display a YouTube feed from a certain YouTube channel.
221
  * Fix: YouTube iframe JavaScript file was being loaded with HTTP. Changed to HTTPS.
222
- * Fix: Prevented error if allow_url_fopen set to false in php.ini by changing how RSS feeds are retrieved from YouTube.
223
- * Fix: Unable to view YouTube account details if more than one YouTube account connected.
224
 
225
  = 1.0.2 =
226
- * New: Changed the method used to update YouTube feeds to reduce YouTube API requests.
227
- * Tweak: More YouTube posts cached in the wp_posts table when a YouTube API request is made.
228
- * Tweak: YouTube channel data cached to reduce YouTube API requests.
229
- * Fix: Error when deactivating and reactivating the Feeds for YouTube plugin with background caching enabled.
230
 
231
  = 1.0.1 =
232
  * Fix: Optimized API calls to YouTube to reduce requests.
5
  Tags: YouTube, YouTube feed, YouTube widget, YouTube channel, YouTube gallery
6
  Requires at least: 3.4
7
  Tested up to: 5.4
8
+ Stable tag: 1.2.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
12
  The Feeds for YouTube plugin allows you to display customizable YouTube feeds from any YouTube channel.
13
 
14
  == Description ==
15
+ **Display customizable YouTube channel feeds on your website. Feed YouTube channel content automatically to your website in a powerful and customizable gallery.**
16
 
17
  ### YouTube Feed Features
18
  * **Completely Customizable** YouTube feeds - by default inherits your theme's styles
19
+ * **Completely responsive and mobile optimized** - your feeds look great on any screen size
20
  * **Light and low overhead** - minimal bloat and optimized requests to YouTube
21
  * **Multiple layouts** - display videos from any YouTube channel in a list, gallery, or grid layout
22
  * **Multiple feeds** from different YouTube channels on multiple pages or widgets
23
+ * **Lightning fast** - post caching and minimized YouTube API requests means that your feed loads lightning fast
24
+ * **Infinitely load more** of your videos with the 'Load More' button
25
+ * Built-in easy to use YouTube Feed Widget
26
  * Fully internationalized and translatable into any language
27
+ * Includes a header at the top of your feed
28
  * Enter your own custom CSS or JavaScript for even deeper customization
29
 
30
  For simple step-by-step directions on how to set up the Feeds for YouTube plugin please refer to our [setup guide](http://smashballoon.com/youtube-feed/free/?utm_source=wordpress&utm_campaign=sby 'Feeds for YouTube setup guide').
31
 
32
  ### Benefits
33
+ * **Increase social engagement** between you and your subscribers
34
+ * **Save time** by using the plugin to generate dynamic, search engine crawlable content on your website
35
+ * **Get more subscribers** by displaying your videos directly on your site
36
+ * Display your channel content **your way** to perfectly match your website's style
37
+ * The plugin is **updated regularly** with new features, bug-fixes and API changes
38
  * Support is quick, effective, and always happy to help
39
+ * We're dedicated to providing the **most customizable**, **robust** and **well supported** YouTube gallery plugin in the world!
40
 
41
  ### Feedback or Support
42
+ Customer support is a huge deal to us. We pride ourselves on always providing quick, effective, and courteous support to all of our users. If you're having an issue with our plugin then just let us know and we'll be there to help as soon as possible. You can either open a ticket on the support forum on [WordPress.org](https://wordpress.org/support/plugin/feeds-for-youtube/ "YouTube Feed Free support forum"), or directly on [our website](https://smashballoon.com/youtube-feed/support/ "YouTube Feed website support form").
43
 
44
  If you like the plugin then please consider leaving a review, as it really helps to support the plugin. If you have an issue then please allow us to help you fix it before leaving a review. Just [let us know](https://smashballoon.com/youtube-feed/support/?utm_source=wordpress&utm_campaign=sby 'Feeds for YouTube Support') what the problem is and we'll get back to you right away.
45
 
46
+ ### Pro Version
47
+ We plan on releasing a [Pro version](http://smashballoon.com/youtube-feed/?utm_source=wordpress&utm_campaign=sby 'Feeds for YouTube Pro') which includes some awesome additional features to help you display your content in even more powerful ways:
48
 
49
+ * Display YouTube videos from your **favorites list**
50
+ * Integrate the **YouTube Live API** to show live streaming videos on your site.
51
  * Display a YouTube gallery in a carousel slider
52
+ * Allow **filtering** of videos using keywords in the description or title
53
+ * Fully functional **search endpoint** for display videos from a search result
54
+ * **Combine multiple feeds** into one
55
+ * Customizable **actions when video completes** like displaying a link to a product page for example, or displaying thumbnails of your other videos.
56
+ * Download video data into a **custom post type** to allow visitors to browse and view videos on your website.
57
 
58
  ### How to use the "Feeds for YouTube" plugin
59
 
61
 
62
  * 1) Click the "Log in to YouTube and connect an account" button on the "Feeds for YouTube" plugin settings page. This will prompt you to log into your Google account to authorize the plugin.
63
  * 2) Once you've connected your account, save the plugin settings.
64
+ * 3) Then simply copy and paste the `[youtube-feed]` shortcode onto any page, post, or widget where you want your feed to be displayed.
65
 
66
  That's it! You can then customize the feed as needed using the settings on the plugin "Customize" page.
67
 
68
  For full step-by-step setup directions with screenshots, see [here](https://smashballoon.com/youtube-feed/free/ "YouTube Feed Free Setup Doc").
69
 
70
+ ### Who's behind this plugin?
71
 
72
+ We're Smash Balloon; a fun-loving WordPress plugin development company birthed into existence in early 2013. We specialize in creating social media plugins (for Facebook, Instagram, Twitter, and YouTube) that are not only intuitive and simple to use, but also designed to integrate seamlessly into your website and allow you to display your social media content in powerful and unique ways. Over 1 million awesome people have decided to actively use our free plugins, which is an incredible honor that we don't take lightly. This compels us to try to provide the quickest and most effective customer support that we can, blowing users away with the best customer service they've ever experienced.
73
 
74
  To find out more about the team, see [here](https://smashballoon.com/about/ "Team Smash Balloon").
75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  == Installation ==
77
+ 1. Install the plugin either via the WordPress plugin directory, or by uploading the files to your web server (in the /wp-content/plugins/ directory).
78
  2. Activate the plugin through the 'Plugins' menu in WordPress.
79
  3. Navigate to the 'Feeds for YouTube' settings page to configure your YouTube gallery.
80
  4. Use the shortcode [youtube-feed] in your page, post or widget to display your YouTube feed.
81
+ 5. You can display multiple channels with different configurations by specifying the necessary parameters directly in the shortcode: [youtube-feed channel=smashballoon].
82
 
83
+ For simple step-by-step directions on how to set up the plugin please refer to our [setup guide](http://smashballoon.com/youtube-feed/free/?utm_source=wordpress&utm_campaign=sby 'Feeds for YouTube setup guide').
84
 
85
+ = Setting up the plugin =
86
 
87
  The Feeds for YouTube plugin is brand new and so we're currently working on improving our documentation for it. If you have an issue or question please submit a support ticket and we'll get back to you as soon as we can.
88
 
89
  1) Once you've installed the "Feeds for YouTube" plugin click on the "Feeds for YouTube" item in your WordPress menu
90
 
91
+ 2) Click on the large blue YouTube login button to get your Access Token and Refresh Token. Note; if you have your own Developer Project set up then you can enter your API key by enabling the checkbox below the YouTube login button.
92
 
93
+ 3) Authorize the plugin to read data about your videos and channel.
94
 
95
+ 4) YouTube sends back your Access Token and Refresh Token which are then automatically saved by the plugin. This information is required in order to connect to the API.
96
 
97
+ 5) Enter a channel name to display videos from.
98
 
99
+ 6) Navigate to the Customize and Style pages to customize your feed.
100
 
101
+ 7) Once you've customized your feed, click on the "Display Your Feed" tab for directions on how to display your YouTube feed (or multiple feeds).
102
 
103
  8) Copy the [youtube-feed] shortcode and paste it into any page, post or widget where you want the YouTube feed to appear.
104
 
105
  9) You can paste the [youtube-feed] shortcode directly into your page editor.
106
 
107
+ 10) You can use the default WordPress 'Text' widget to display your feed in a sidebar or other widget area.
108
 
109
+ 11) View your website to see your feed(s) in all their glory!
110
 
111
  == Frequently Asked Questions ==
112
 
113
  = Can I display multiple YouTube feeds on my site or on the same page? =
114
 
115
+ Yep. You can display multiple feeds by using our built-in shortcode options, for example: `[youtube-feed channel="smashballoon" num=3]`.
116
 
117
  = How do I embed a YouTube gallery directly into a WordPress page template? =
118
 
119
+ You can embed a gallery directly into a template file by using the WordPress [do_shortcode](http://codex.wordpress.org/Function_Reference/do_shortcode) function: `<?php echo do_shortcode('[youtube-feed]'); ?>`.
120
 
121
+ = Will the plugin work with W3 Total Cache or other caching plugins? =
122
 
123
+ The Feeds for YouTube plugin should work in compatibility with most, if not all, caching plugins, but you may need to tweak the settings in order to allow the feed to update successfully and display your latest posts. If you are experiencing problems with your feed not updating then try disabling either 'Page Caching' or 'Object Caching' in W3 Total Cache (or any other similar caching plugin) to see whether that fixes the problem and the feed displays and updates successfully.
124
 
125
+ = Can I change whether the video autoplays or plays on click =
126
 
127
+ Yep, just use the following setting: Feeds for YouTube > Customize > Video Experience > When does video play? You can then set the video to play when clicked or to autoplay.
128
 
129
+ = How can I change the layout of my feed? =
130
 
131
+ This free plugin has several layout options built into it. Use the settings in the following location to display your videos in a list, grid, or gallery layout: Feeds for YouTube > Customize > Layout. You can also change the spacing/padding between the videos by using the "Spacing between videos" setting in this same section.
132
 
133
  = Can I select how many YouTube videos should be displayed in the feed? =
134
 
135
+ Yep, you can choose to display between 1-50 videos in your feed by using the following setting: Feeds for YouTube > Customize > Layout > Number of Videos. The plugin also contains a "Load More" button to allow you to infinitely load more videos into your feed.
136
 
137
  = Will my YouTube gallery be responsive to accommodate mobile visitors? =
138
 
139
+ Yes. All feed layouts are completely mobile responsive. Using the plugin's gallery layout will automatically scroll visitors to the video player to view the video when the video thumbnail is clicked.
140
 
141
  = Will videos from my YouTube channel be cached? =
142
 
143
+ Yes. The plugin will cache all of the posts collected from the API. Your YouTube videos and information about your channel can then be retrieved and used for future page loads.
 
 
144
 
145
+ = How do I find the nickname of channel ID for different channels? =
146
 
147
+ You can display videos from any channel using the unique YouTube channel ID. This can be found by viewing the channel page on YouTube and looking at the end of the URL. ex: https://www.youtube.com/channel/UC1a2b3c4D5F6g7i8j9k. You can also use the channel nickname.
 
 
148
 
149
  = Will displaying my YouTube channel affect the time it takes to load the page? =
150
 
151
+ The plugin has a few features to minimize the impact it has on page load time. For example, iframes for playing YouTube videos are not loaded until the feed is interacted with by a visitor. Thumbnails of your videos are the smallest resolution necessary relative to the size of the feed. Also, these video thumbnails are not loaded until the rest of the content on the page is loaded.
152
 
153
+ = How often do new videos from my channel appear in the feed? =
154
 
155
+ By default, the plugin retrieves new videos for your YouTube gallery once every hour. You can reduce this to as little as 15 minutes if needed. You can even set your feed to update using WordPress cron in the background so the caching process is not relying on the page with your feed being visited.
156
 
157
  == Screenshots ==
158
 
159
+ 1. By default the plugin inherits styles from your theme
160
+ 2. Display multiple feeds and customize each one
161
+ 3. When using the "grid" layout, videos open and play in a lightbox
162
  4. Feeds for YouTube Settings pages
163
+ 5. Built in customization settings make customizing your feed easy
164
+ 6. Use handy shortcode options to customize individual feeds
165
  7. To display a YouTube feed just copy and paste the [youtube-feed] shortcode into a widget or page
166
 
167
  == Changelog ==
168
+ = 1.2.1 =
169
+ * Tweak: Video thumbnails are cropped to a 9:16 aspect ratio to remove black bars at the top and bottom of the images.
170
+ * Tweak: Improved workarounds for video player issues caused by having iframes from other sources on the same page.
171
+
172
  = 1.2 =
173
+ * New: Display video players in 9:16 ratio. To use 3:4 ratio go to: Feeds for YouTube > Customize > Video Experience.
174
+ * New: Added a "Feeds for YouTube" Gutenberg block to use in the block editor, allowing you to easily add a feed to posts and pages.
175
+ * Tweak: Hide admin notices from other plugins when using the Feeds for YouTube settings pages.
176
+ * Fix: Video player would sometimes not work when the iframe JS API was available earlier than the feeds were created.
177
 
178
  = 1.1.1 =
179
  * Tested with upcoming WordPress 5.4 update.
181
  * Tweak: Added CSS to help feeds work better with certain themes.
182
  * Tweak: Used a higher resolution image file if optimum resolution was not available from the API.
183
  * Fix: "include=" shortcode setting would cause play icon to never show.
184
+ * Fix: Fast response from player API would cause the players to load along with the page when not necessary.
185
+ * Fix: Background caching was not updating YouTube feed caches.
186
 
187
  = 1.1 =
188
+ * New: Several improvements to the lightbox for grid feeds were made including a video index indicator, navigation arrows moved to the outside of the video, and a close button.
189
+ * New: Added YouTube play button icon that displays on top of video thumbnails. Disable this on the "Customize" tab.
190
  * New: Added workaround for occasional issue caused by multiple elements of the page using the YouTube Player API.
191
  * Tweak: Fixed typo in HTML element with the class "sby_thumbail_hover". Now "sby_thumbnail_hover".
192
  * Tweak: Updated admin PHP code.
194
  * Tweak: Updated language files and several strings to use text domain "feeds-for-youtube" instead of "youtube-feed".
195
 
196
  = 1.0.3 =
197
+ * Tweak: Changed tooltip and notes regarding how to display a feed from a certain channel.
198
  * Fix: YouTube iframe JavaScript file was being loaded with HTTP. Changed to HTTPS.
199
+ * Fix: Prevented error if allow_url_fopen set to false in php.ini by changing how YouTube RSS feeds are retrieved from YouTube.
200
+ * Fix: Unable to view YouTube account details if more than one account connected.
201
 
202
  = 1.0.2 =
203
+ * New: Changed the method used to update feeds to reduce API requests.
204
+ * Tweak: More posts cached in the wp_posts table when an API request is made.
205
+ * Tweak: YouTube channel data cached to reduce API requests.
206
+ * Fix: Error when deactivating and reactivating the plugin with background caching enabled.
207
 
208
  = 1.0.1 =
209
  * Fix: Optimized API calls to YouTube to reduce requests.
inc/admin/admin-functions.php CHANGED
@@ -751,7 +751,7 @@ function sby_notices_html() {
751
  $dismiss_url = add_query_arg( 'sby_ignore_rating_notice_nag', '1' );
752
  $later_url = add_query_arg( 'sby_ignore_rating_notice_nag', 'later' );
753
  if ( $should_show_bfcm_discount ) {
754
- $other_notice_html = '<p class="sby_other_notice">' . __( 'PS. We currently have a <a href="https://smashballoon.com/video-feed/?utm_source=plugin-free&utm_campaign=sby&discount='.$sby_bfcm_discount_code.'" target="_blank"><b style="font-weight: 700;">Black Friday deal</b></a> for 20% off the Pro version!', SBY_TEXT_DOMAIN ) . '</p>';
755
 
756
  $dismiss_url = add_query_arg( array(
757
  'sby_ignore_rating_notice_nag' => '1',
@@ -796,7 +796,7 @@ function sby_notices_html() {
796
  <div class='sby_notice sby_review_notice sby_new_user_sale_notice'>
797
  <img src='" . SBY_PLUGIN_URL . 'img/sby-icon-offer.png' . "' alt='".SBY_PLUGIN_NAME."'>
798
  <div class='sby-notice-text'>
799
- <p>" . __( '<b style="font-weight: 700;">Exclusive offer!</b> We don\'t run promotions very often, but for a limited time we\'re offering <b style="font-weight: 700;">20% off</b> our Pro version to all users of our free Feeds for YouTube plugin.', SBY_TEXT_DOMAIN ) . "</p>
800
  <p class='sby-links'>
801
  <a class='sby_notice_dismiss sby_offer_btn' href='https://smashballoon.com/youtube-feed/?utm_source=plugin-free&utm_campaign=sby&discount=youtubethankyou' target='_blank'><b>" . __( 'Get this offer', SBY_TEXT_DOMAIN ) . "</b></a>
802
  <a class='sby_notice_dismiss' style='margin-left: 5px;' href='" . esc_url( add_query_arg( 'sby_ignore_new_user_sale_notice', 'always' ) ) . "'>" . __( 'I\'m not interested', SBY_TEXT_DOMAIN ) . "</a>
@@ -814,7 +814,7 @@ function sby_notices_html() {
814
  <div class='sby_notice sby_review_notice sby_bfcm_sale_notice'>
815
  <img src='". SBY_PLUGIN_URL . 'img/sby-icon-offer.png' ."' alt='".SBY_PLUGIN_NAME."'>
816
  <div class='sby-notice-text'>
817
- <p>" . sprintf( __( '<b style="font-weight: 700;">Black Friday/Cyber Monday Deal!</b> Thank you for using our free %s plugin. For a limited time, we\'re offering <b style="font-weight: 700;">20% off</b> the Pro version for all of our users.', SBY_TEXT_DOMAIN ), SBY_PLUGIN_NAME ) . "</p>
818
  <p class='sby-links'>
819
  <a class='sby_notice_dismiss sby_offer_btn' href='https://smashballoon.com/youtube-feed/?utm_source=plugin-free&utm_campaign=sby&discount=".$sby_bfcm_discount_code."' target='_blank'><b>" . __( 'Get this offer', SBY_TEXT_DOMAIN ) . "</b></a>
820
  <a class='sby_notice_dismiss' style='margin-left: 5px;' href='" .esc_url( add_query_arg( 'sby_ignore_bfcm_sale_notice', date( 'Y', $current_time ) ) ). "'>" . __( 'I\'m not interested', SBY_TEXT_DOMAIN ) . "</a>
751
  $dismiss_url = add_query_arg( 'sby_ignore_rating_notice_nag', '1' );
752
  $later_url = add_query_arg( 'sby_ignore_rating_notice_nag', 'later' );
753
  if ( $should_show_bfcm_discount ) {
754
+ $other_notice_html = '<p class="sby_other_notice">' . __( 'PS. We currently have a <a href="https://smashballoon.com/video-feed/?utm_source=plugin-free&utm_campaign=sby&discount='.$sby_bfcm_discount_code.'" target="_blank"><b style="font-weight: 700;">Black Friday deal</b></a> for 60% off the Pro version!', SBY_TEXT_DOMAIN ) . '</p>';
755
 
756
  $dismiss_url = add_query_arg( array(
757
  'sby_ignore_rating_notice_nag' => '1',
796
  <div class='sby_notice sby_review_notice sby_new_user_sale_notice'>
797
  <img src='" . SBY_PLUGIN_URL . 'img/sby-icon-offer.png' . "' alt='".SBY_PLUGIN_NAME."'>
798
  <div class='sby-notice-text'>
799
+ <p>" . __( '<b style="font-weight: 700;">Exclusive offer!</b> We don\'t run promotions very often, but for a limited time we\'re offering <b style="font-weight: 700;">60% off</b> our Pro version to all users of our free Feeds for YouTube plugin.', SBY_TEXT_DOMAIN ) . "</p>
800
  <p class='sby-links'>
801
  <a class='sby_notice_dismiss sby_offer_btn' href='https://smashballoon.com/youtube-feed/?utm_source=plugin-free&utm_campaign=sby&discount=youtubethankyou' target='_blank'><b>" . __( 'Get this offer', SBY_TEXT_DOMAIN ) . "</b></a>
802
  <a class='sby_notice_dismiss' style='margin-left: 5px;' href='" . esc_url( add_query_arg( 'sby_ignore_new_user_sale_notice', 'always' ) ) . "'>" . __( 'I\'m not interested', SBY_TEXT_DOMAIN ) . "</a>
814
  <div class='sby_notice sby_review_notice sby_bfcm_sale_notice'>
815
  <img src='". SBY_PLUGIN_URL . 'img/sby-icon-offer.png' ."' alt='".SBY_PLUGIN_NAME."'>
816
  <div class='sby-notice-text'>
817
+ <p>" . sprintf( __( '<b style="font-weight: 700;">Black Friday/Cyber Monday Deal!</b> Thank you for using our free %s plugin. For a limited time, we\'re offering <b style="font-weight: 700;">60% off</b> the Pro version for all of our users.', SBY_TEXT_DOMAIN ), SBY_PLUGIN_NAME ) . "</p>
818
  <p class='sby-links'>
819
  <a class='sby_notice_dismiss sby_offer_btn' href='https://smashballoon.com/youtube-feed/?utm_source=plugin-free&utm_campaign=sby&discount=".$sby_bfcm_discount_code."' target='_blank'><b>" . __( 'Get this offer', SBY_TEXT_DOMAIN ) . "</b></a>
820
  <a class='sby_notice_dismiss' style='margin-left: 5px;' href='" .esc_url( add_query_arg( 'sby_ignore_bfcm_sale_notice', date( 'Y', $current_time ) ) ). "'>" . __( 'I\'m not interested', SBY_TEXT_DOMAIN ) . "</a>
inc/admin/class-sby-admin.php CHANGED
@@ -823,6 +823,16 @@ class SBY_Admin extends SB_YOUTUBE_Admin {
823
  );
824
  $this->add_settings_field( $args );
825
 
 
 
 
 
 
 
 
 
 
 
826
  }
827
 
828
  public function cache( $args ) {
823
  );
824
  $this->add_settings_field( $args );
825
 
826
+ $args = array(
827
+ 'name' => 'eagerload',
828
+ 'section' => 'sbspf_advanced',
829
+ 'callback' => 'checkbox',
830
+ 'title' => __( 'Load Iframes on Page Load', $text_domain ),
831
+ 'default' => false,
832
+ 'tooltip_info' => __( 'To optimize the performance of your site and feeds, the plugin loads iframes only after a visitor interacts with the feed. Enabling this setting will cause YouTube player iframes to load when the page loads. Some features may work differently when this is enabled.', $text_domain )
833
+ );
834
+ $this->add_settings_field( $args );
835
+
836
  }
837
 
838
  public function cache( $args ) {
inc/class-sby-display-elements.php CHANGED
@@ -355,4 +355,15 @@ class SBY_Display_Elements
355
  }
356
  }
357
 
 
 
 
 
 
 
 
 
 
 
 
358
  }
355
  }
356
  }
357
 
358
+ public static function escaped_data_att_string( $atts ) {
359
+ if ( empty( $atts ) ) {
360
+ return '';
361
+ }
362
+ $string = '';
363
+ foreach ( $atts as $key => $value ) {
364
+ $string .= ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
365
+ }
366
+
367
+ return $string;
368
+ }
369
  }
inc/class-sby-feed.php CHANGED
@@ -511,6 +511,15 @@ class SBY_Feed
511
  return true;
512
  }
513
 
 
 
 
 
 
 
 
 
 
514
  /**
515
  * Appends one filtered API request worth of posts for each feed term
516
  *
@@ -574,15 +583,22 @@ class SBY_Feed
574
 
575
  if ( ! $this->is_efficient_type( $type ) && $this->is_pageable() ) {
576
 
577
- if ( $play_list ) {
578
- $params = array( 'playlist_id' => $play_list );
579
- $api_connect_playlist_items = $this->make_api_connection( $connected_account_for_term, 'playlistItems', $params );
 
580
  } else {
581
- $api_connect_playlist_items = $this->make_api_connection( $connected_account_for_term, $type, $params );
 
 
 
 
 
 
 
 
582
  }
583
 
584
- $api_connect_playlist_items->connect();
585
- $this->add_report( 'API call made for ' . $term );
586
 
587
  if ( ! $api_connect_playlist_items->is_wp_error() && ! $api_connect_playlist_items->is_youtube_error() ) {
588
  $one_successful_connection = true;
@@ -724,7 +740,8 @@ class SBY_Feed
724
  }
725
 
726
  if ( ! $this->is_pageable()
727
- && empty( $next_pages[ $term . '_' . $type ] ) ) {
 
728
  $this->add_report( 'using RSS to get first 15' );
729
 
730
  $rss_connect_playlist_items = new SBY_RSS_Connect( 'playlistItems', $params );
@@ -1253,7 +1270,9 @@ class SBY_Feed
1253
  'placeholderNarrow' => trailingslashit( SBY_PLUGIN_URL ) . 'img/placeholder-narrow.png',
1254
  'lightboxPlaceholder' => trailingslashit( SBY_PLUGIN_URL ) . 'img/lightbox-placeholder.png',
1255
  'lightboxPlaceholderNarrow' => trailingslashit( SBY_PLUGIN_URL ) . 'img/lightbox-placeholder-narrow.png',
1256
- 'autoplay' => $sby_settings['playvideo'] === 'automatically'
 
 
1257
  );
1258
 
1259
  $encoded_options = wp_json_encode( $js_options );
@@ -1453,6 +1472,12 @@ class SBY_Feed
1453
  } else {
1454
  $merged_posts = isset( $post_sets[0] ) ? $post_sets[0] : array();
1455
  }
 
 
 
 
 
 
1456
  } else {
1457
  // don't bother merging posts if there is only one post set
1458
  if ( isset( $post_sets[1] ) ) {
@@ -1488,7 +1513,7 @@ class SBY_Feed
1488
  }
1489
 
1490
  // sorting done with "merge_posts" to be more efficient
1491
- if ( $settings['sortby'] === 'alternate' ) {
1492
  $return_post_set = $post_set;
1493
  } elseif ( $settings['sortby'] === 'random' ) {
1494
  /*
511
  return true;
512
  }
513
 
514
+ public function requires_workaround_connection( $type ) {
515
+ return false;
516
+ }
517
+
518
+ public function make_workaround_connection( $connected_account_for_term, $type, $params ) {
519
+ return $this->make_api_connection( $connected_account_for_term, $type, $params );
520
+ }
521
+
522
+
523
  /**
524
  * Appends one filtered API request worth of posts for each feed term
525
  *
583
 
584
  if ( ! $this->is_efficient_type( $type ) && $this->is_pageable() ) {
585
 
586
+ if ( $this->requires_workaround_connection( $type ) ) {
587
+ $api_connect_playlist_items = $this->make_workaround_connection( $connected_account_for_term, $type, $params );
588
+ $this->add_report( 'Workaround API call made for ' . $term );
589
+
590
  } else {
591
+ if ( $play_list ) {
592
+ $params = array( 'playlist_id' => $play_list );
593
+ $api_connect_playlist_items = $this->make_api_connection( $connected_account_for_term, 'playlistItems', $params );
594
+ } else {
595
+ $api_connect_playlist_items = $this->make_api_connection( $connected_account_for_term, $type, $params );
596
+ }
597
+
598
+ $api_connect_playlist_items->connect();
599
+ $this->add_report( 'API call made for ' . $term );
600
  }
601
 
 
 
602
 
603
  if ( ! $api_connect_playlist_items->is_wp_error() && ! $api_connect_playlist_items->is_youtube_error() ) {
604
  $one_successful_connection = true;
740
  }
741
 
742
  if ( ! $this->is_pageable()
743
+ && empty( $next_pages[ $term . '_' . $type ] )
744
+ && ! empty( $params['channel_id'] ) ) {
745
  $this->add_report( 'using RSS to get first 15' );
746
 
747
  $rss_connect_playlist_items = new SBY_RSS_Connect( 'playlistItems', $params );
1270
  'placeholderNarrow' => trailingslashit( SBY_PLUGIN_URL ) . 'img/placeholder-narrow.png',
1271
  'lightboxPlaceholder' => trailingslashit( SBY_PLUGIN_URL ) . 'img/lightbox-placeholder.png',
1272
  'lightboxPlaceholderNarrow' => trailingslashit( SBY_PLUGIN_URL ) . 'img/lightbox-placeholder-narrow.png',
1273
+ 'autoplay' => $sby_settings['playvideo'] === 'automatically',
1274
+ 'semiEagerload' => $sby_settings['eagerload'],
1275
+ 'eagerload' => false
1276
  );
1277
 
1278
  $encoded_options = wp_json_encode( $js_options );
1472
  } else {
1473
  $merged_posts = isset( $post_sets[0] ) ? $post_sets[0] : array();
1474
  }
1475
+ } elseif ( $settings['sortby'] === 'api' ) {
1476
+ if ( isset( $post_sets[0] ) ) {
1477
+ foreach ( $post_sets as $post_set ) {
1478
+ $merged_posts = array_merge( $merged_posts, $post_set );
1479
+ }
1480
+ }
1481
  } else {
1482
  // don't bother merging posts if there is only one post set
1483
  if ( isset( $post_sets[1] ) ) {
1513
  }
1514
 
1515
  // sorting done with "merge_posts" to be more efficient
1516
+ if ( $settings['sortby'] === 'alternate' || $settings['sortby'] === 'api' ) {
1517
  $return_post_set = $post_set;
1518
  } elseif ( $settings['sortby'] === 'random' ) {
1519
  /*
inc/class-sby-wp-post.php CHANGED
@@ -131,7 +131,7 @@ class SBY_WP_Post
131
  return false;
132
  }
133
 
134
- protected function get_wp_post_id() {
135
  if ( isset( $this->wp_post_id ) ) {
136
  return $this->wp_post_id;
137
  }
131
  return false;
132
  }
133
 
134
+ public function get_wp_post_id() {
135
  if ( isset( $this->wp_post_id ) ) {
136
  return $this->wp_post_id;
137
  }
inc/sby-functions.php CHANGED
@@ -821,7 +821,9 @@ function sby_scripts_enqueue( $enqueue = false ) {
821
  'placeholderNarrow' => trailingslashit( SBY_PLUGIN_URL ) . 'img/placeholder-narrow.png',
822
  'lightboxPlaceholder' => trailingslashit( SBY_PLUGIN_URL ) . 'img/lightbox-placeholder.png',
823
  'lightboxPlaceholderNarrow' => trailingslashit( SBY_PLUGIN_URL ) . 'img/lightbox-placeholder-narrow.png',
824
- 'autoplay' => $sby_settings['playvideo'] === 'automatically'
 
 
825
  );
826
  //Pass option to JS file
827
  wp_localize_script('sby_scripts', 'sbyOptions', $data );
821
  'placeholderNarrow' => trailingslashit( SBY_PLUGIN_URL ) . 'img/placeholder-narrow.png',
822
  'lightboxPlaceholder' => trailingslashit( SBY_PLUGIN_URL ) . 'img/lightbox-placeholder.png',
823
  'lightboxPlaceholderNarrow' => trailingslashit( SBY_PLUGIN_URL ) . 'img/lightbox-placeholder-narrow.png',
824
+ 'autoplay' => $sby_settings['playvideo'] === 'automatically',
825
+ 'semiEagerload' => false,
826
+ 'eagerload' => $sby_settings['eagerload']
827
  );
828
  //Pass option to JS file
829
  wp_localize_script('sby_scripts', 'sbyOptions', $data );
js/sb-youtube.js CHANGED
@@ -588,6 +588,8 @@ if(!sby_js_exists) {
588
  },
589
  initLayout: function() {
590
  this.initGalleryLayout();
 
 
591
  },
592
  initGalleryLayout: function() {
593
  var $self = $(this.el),
@@ -612,6 +614,40 @@ if(!sby_js_exists) {
612
  }
613
  });
614
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615
  }
616
  },
617
  createPlayer: function(playerID,videoID,autoplay,args) {
@@ -645,15 +681,13 @@ if(!sby_js_exists) {
645
  },
646
  'onStateChange': function(data) {
647
  $self.find('.sby_player_outer_wrap').removeClass('sby_player_loading').find('.sby_video_thumbnail').css('z-index', -1).find('.sby_loader').hide().addClass('sby_hidden');
648
- var videoID = data.target.getVideoData()['video_id'];
649
  feed.afterStateChange(playerID,videoID,data,$('#' + playerID).closest('.sby_video_thumbnail_wrap'));
650
  if (data.data !== 1) return;
651
  if (typeof feed.players !== 'undefined') {
652
  $self.find('.sby_item').each(function() {
653
  var itemVidID = feed.getVideoID($(this));
654
-
655
  if ($(this).find('iframe').length && (itemVidID !== videoID)) {
656
- if (typeof feed.players[itemVidID] !== 'undefined') {
657
  feed.players[itemVidID].pauseVideo();
658
  }
659
  }
@@ -690,6 +724,7 @@ if(!sby_js_exists) {
690
  this.afterNewImagesRevealed();
691
  this.afterFeedSet();
692
  this.sizePlayer();
 
693
  },
694
  afterResize: function() {
695
  this.setImageHeight();
@@ -709,6 +744,7 @@ if(!sby_js_exists) {
709
  this.revealNewImages();
710
  this.afterNewImagesRevealed();
711
  this.sizePlayer();
 
712
  setTimeout(function () {
713
  //Hide the loader in the load more button
714
  $self.find('.sby_loader').addClass('sby_hidden');
@@ -748,6 +784,20 @@ if(!sby_js_exists) {
748
  });
749
  }
750
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
751
  revealNewImages: function() {
752
  var $self = $(this.el),
753
  feed = this;
@@ -756,7 +806,9 @@ if(!sby_js_exists) {
756
  // Call Custom JS if it exists
757
  if (typeof sbyCustomJS == 'function') setTimeout(function(){ sbyCustomJS(); }, 100);
758
 
759
- $self.find('.sby_item').each(function (index) {
 
 
760
  var $self = jQuery(this);
761
 
762
  //Photo links
@@ -766,19 +818,45 @@ if(!sby_js_exists) {
766
  }, function () {
767
  jQuery(this).stop().fadeTo(500, 1);
768
  });
 
769
 
770
- //init click
771
- $self.find('.sby_video_thumbnail').off().click(function(event) {
772
- event.preventDefault();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
773
 
774
- feed.onThumbnailClick($(this), false);
775
- });
776
  $self.find('.sby_video_thumbnail').mouseenter(function() {
777
  feed.onThumbnailEnter($(this), false);
778
  });
779
  $self.find('.sby_player_wrap').mouseleave(function() {
780
  feed.onThumbnailLeave($(this), false);
781
  });
 
 
 
 
 
782
 
783
  // lightbox
784
  if (feed.settings.lightboxEnabled) {
@@ -1025,6 +1103,9 @@ if(!sby_js_exists) {
1025
  }
1026
  var newUrl = imgSrcSet[newRes];
1027
  $item.find('.sby_video_thumbnail > img').attr('src', newUrl);
 
 
 
1028
  }
1029
 
1030
  $item.find('img').on('error', function () {
@@ -1266,9 +1347,7 @@ if(!sby_js_exists) {
1266
  if ($self.find('.sby_player_item').length) {
1267
  $self.find(".sby_player_item .sby_player_video_thumbnail").sby_imgLiquid({fill: true});
1268
  }
1269
- if ($self.hasClass('sby_layout_list')) {
1270
- $self.find(".sby_item .sby_item_video_thumbnail").sby_imgLiquid({fill: true});
1271
- }
1272
  }
1273
  },
1274
  listenForVisibilityChange: function() {
@@ -1306,7 +1385,6 @@ if(!sby_js_exists) {
1306
  if (!this.canCreatePlayer()) {
1307
  return;
1308
  }
1309
-
1310
  var $self = $(this.el);
1311
  if ($self.hasClass('sby_layout_gallery')) {
1312
 
@@ -1380,14 +1458,18 @@ if(!sby_js_exists) {
1380
  if ($(this.el).find('#sby_blank').length) {
1381
  return false;
1382
  }
1383
- return this.playerEagerLoaded() || (this.playerAPIReady && this.consentGiven) || (typeof window.sbyAPIReady !== 'undefined' && this.consentGiven);
1384
  },
1385
  playVideoInPlayer: function(videoID,playerID) {
1386
  if (typeof this.player !== 'undefined' && typeof this.player.loadVideoById !== 'undefined') {
1387
  this.player.loadVideoById(videoID);
1388
- } else if (typeof window.sbyLightboxPlayer !== 'undefined' && typeof window.sbyLightboxPlayer.loadVideoById !== 'undefined') {
 
1389
  window.sbyLightboxPlayer.loadVideoById(videoID);
1390
- } else if (typeof playerID !== 'undefined' && typeof this.players !== 'undefined' && typeof this.players[playerID] !== 'undefined') {
 
 
 
1391
  this.players[playerID].loadVideoById(videoID);
1392
  }
1393
  },
@@ -1404,7 +1486,7 @@ if(!sby_js_exists) {
1404
 
1405
  }
1406
  },
1407
- maybeAddCTA: function() {
1408
  }
1409
  };
1410
 
@@ -1499,43 +1581,171 @@ if(!sby_js_exists) {
1499
 
1500
  })(jQuery);
1501
 
1502
- jQuery(document).ready(function($) {
1503
- sby_init();
1504
- });
1505
-
1506
  if (typeof window.sbyEagerLoading === 'undefined') {
1507
- window.sbyEagerLoading = false;
1508
  if (jQuery('div[data-vc-video-bg]').length) {
1509
  window.sbyEagerLoading = true;
1510
  }
1511
  }
 
 
 
 
 
 
 
 
 
 
 
 
1512
 
1513
  } // if sby_js_exists
1514
 
1515
- window.onYouTubeIframeAPIReady = function() {
1516
- window.sbyAPIReady = true;
 
1517
 
1518
- var numFeeds = document.getElementsByClassName('sb_youtube').length;
1519
- if (numFeeds > 0) {
1520
- if (window.sbyEagerLoading) {
1521
- window.sbyEagerLoading = true;
1522
 
1523
- var flagLightbox = false,
1524
- autoplay = false;
 
 
 
 
1525
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1526
  jQuery('.sb_youtube').each(function(index) {
1527
  var $self = jQuery(this);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1528
 
1529
- if ($self.hasClass('sby_layout_list')) {
1530
- jQuery(this).addClass('sby_player_loaded');
1531
 
1532
- $self.find('.sby_item').each(function() {
1533
- videoID = jQuery(this).attr('data-video-id');
1534
- //this.createPlayer(,videoID,0);
1535
- player = new YT.Player('sby_player_'+videoID, {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1536
  height: '100',
1537
  width: '100',
1538
- videoId: videoID,
1539
  playerVars: {
1540
  modestbranding: 1,
1541
  rel: 0,
@@ -1555,48 +1765,37 @@ window.onYouTubeIframeAPIReady = function() {
1555
  }
1556
  }
1557
  });
1558
- });
1559
-
1560
- } else if ($self.hasClass('sby_layout_gallery')) {
1561
- jQuery(this).addClass('sby_player_loaded');
1562
-
1563
- player = new YT.Player('sby_player'+index, {
1564
- height: '100',
1565
- width: '100',
1566
- videoId: jQuery(this).find('.sby_item').first().attr('data-video-id'),
1567
- playerVars: {
1568
- modestbranding: 1,
1569
- rel: 0,
1570
- autoplay: autoplay
1571
- }
1572
- });
1573
- } else {
1574
- flagLightbox = true;
1575
- }
1576
- });
1577
 
1578
- if (flagLightbox) {
1579
- if (!jQuery('#sby_lb-player').length) {
1580
- jQuery('.sb_youtube').first().append('<div class="sby_lb-player-loaded sby_lb-player" id="sby_lb-player" style="display: none;"></div>');
1581
  }
1582
- player = new YT.Player('sby_lb-player', {
1583
- height: '100',
1584
- width: '100',
1585
- videoId: jQuery(this).find('.sby_item').first().attr('data-video-id'),
1586
- playerVars: {
1587
- modestbranding: 1,
1588
- rel: 0,
1589
- autoplay: autoplay
1590
- },
1591
- });
1592
- window.sbyLightboxPlayer = player;
1593
  }
 
1594
 
1595
- } else if (typeof window.sby !== 'undefined' && typeof window.sby.feeds[i] !== 'undefined') {
1596
- for (var i = 0; i < numFeeds; i++) {
1597
- window.sby.feeds[i].playerAPIReady = true;
1598
  }
 
 
 
 
 
 
 
 
 
 
 
1599
  }
1600
 
1601
  }
 
1602
  };
588
  },
589
  initLayout: function() {
590
  this.initGalleryLayout();
591
+ this.initGrid();
592
+
593
  },
594
  initGalleryLayout: function() {
595
  var $self = $(this.el),
614
  }
615
  });
616
 
617
+ if (window.sbySemiEagerLoading) {
618
+ feed.createPlayer('sby_player'+feed.index);
619
+ }
620
+
621
+ }
622
+ },
623
+ initGrid: function() {
624
+ if (window.sbySemiEagerLoading && jQuery('#sby_lightbox').length) {
625
+ var feed = this;
626
+ playerID = 'sby_lb-player';
627
+ jQuery('#sby_lightbox').addClass('sby_video_lightbox');
628
+
629
+ var videoID = $(this.el).find('sby_item').first().attr('data-video-id'),
630
+ autoplay = sbyOptions.autoplay;
631
+ if (typeof window.sbyLightboxPlayer === 'undefined') {
632
+ var args = {
633
+ host: window.location.protocol + '//www.youtube-nocookie.com',
634
+ videoId: videoID,
635
+ playerVars: {
636
+ modestbranding: 1,
637
+ rel: 0,
638
+ autoplay: autoplay
639
+ },
640
+ events: {
641
+ 'onStateChange': function (data) {
642
+ var videoID = data.target.getVideoData()['video_id'];
643
+ feed.afterStateChange(playerID, videoID, data, $('#' + playerID).closest('.sby_video_thumbnail_wrap'));
644
+ }
645
+ }
646
+ };
647
+ feed.maybeAddCTA(playerID);
648
+
649
+ window.sbyLightboxPlayer = new window.YT.Player(playerID, args);
650
+ }
651
  }
652
  },
653
  createPlayer: function(playerID,videoID,autoplay,args) {
681
  },
682
  'onStateChange': function(data) {
683
  $self.find('.sby_player_outer_wrap').removeClass('sby_player_loading').find('.sby_video_thumbnail').css('z-index', -1).find('.sby_loader').hide().addClass('sby_hidden');
 
684
  feed.afterStateChange(playerID,videoID,data,$('#' + playerID).closest('.sby_video_thumbnail_wrap'));
685
  if (data.data !== 1) return;
686
  if (typeof feed.players !== 'undefined') {
687
  $self.find('.sby_item').each(function() {
688
  var itemVidID = feed.getVideoID($(this));
 
689
  if ($(this).find('iframe').length && (itemVidID !== videoID)) {
690
+ if (typeof feed.players[itemVidID] !== 'undefined' && typeof feed.players[itemVidID].pauseVideo === 'function') {
691
  feed.players[itemVidID].pauseVideo();
692
  }
693
  }
724
  this.afterNewImagesRevealed();
725
  this.afterFeedSet();
726
  this.sizePlayer();
727
+ this.sizeItems();
728
  },
729
  afterResize: function() {
730
  this.setImageHeight();
744
  this.revealNewImages();
745
  this.afterNewImagesRevealed();
746
  this.sizePlayer();
747
+ this.sizeItems();
748
  setTimeout(function () {
749
  //Hide the loader in the load more button
750
  $self.find('.sby_loader').addClass('sby_hidden');
784
  });
785
  }
786
  },
787
+ sizeItems: function() {
788
+ var $self = $(this.el),
789
+ feed = this;
790
+ if (!$self.hasClass('sby_layout_list')) {
791
+ $self.find('.sby_item').find('.sby_item_video_thumbnail').each(function() {
792
+ if ($(this).hasClass('sby_imgLiquid_ready')) {
793
+ var thumbWidth = $(this).innerWidth(),
794
+ newThumbHeight = Math.floor(thumbWidth * 9 / 16);
795
+ $(this).css('height',newThumbHeight+'px').css('overflow','hidden');
796
+ }
797
+
798
+ });
799
+ }
800
+ },
801
  revealNewImages: function() {
802
  var $self = $(this.el),
803
  feed = this;
806
  // Call Custom JS if it exists
807
  if (typeof sbyCustomJS == 'function') setTimeout(function(){ sbyCustomJS(); }, 100);
808
 
809
+ $self.find('.sby-screenreader').find('img').remove();
810
+
811
+ $self.find('.sby_item.sby_new').each(function (index) {
812
  var $self = jQuery(this);
813
 
814
  //Photo links
818
  }, function () {
819
  jQuery(this).stop().fadeTo(500, 1);
820
  });
821
+ videoID = $self.attr('data-video-id');
822
 
823
+ if (window.sbyEagerLoading && feed.canCreatePlayer() && $('#sby_player_'+videoID).length) {
824
+ player = new YT.Player('sby_player_'+videoID, {
825
+ height: '100',
826
+ width: '100',
827
+ videoId: videoID,
828
+ playerVars: {
829
+ modestbranding: 1,
830
+ rel: 0,
831
+ autoplay: 0
832
+ },
833
+ events: {
834
+ 'onStateChange': function(data) {
835
+ var videoID = data.target.getVideoData()['video_id'];
836
+ if (data.data !== 1) return;
837
+ $self.find('.sby_item').each(function() {
838
+ var itemVidID = jQuery(this).attr('data-video-id');
839
+
840
+ if (jQuery(this).find('iframe').length && jQuery(data.target.a).attr('id') !== jQuery(this).find('iframe').attr('id')) {
841
+ YT.get('sby_player_'+itemVidID).pauseVideo();
842
+ }
843
+ });
844
+ }
845
+ }
846
+ });
847
+ }
848
 
 
 
849
  $self.find('.sby_video_thumbnail').mouseenter(function() {
850
  feed.onThumbnailEnter($(this), false);
851
  });
852
  $self.find('.sby_player_wrap').mouseleave(function() {
853
  feed.onThumbnailLeave($(this), false);
854
  });
855
+ //init click
856
+ $self.find('.sby_video_thumbnail').click(function(event) {
857
+ event.preventDefault();
858
+ feed.onThumbnailClick($(this), false);
859
+ });
860
 
861
  // lightbox
862
  if (feed.settings.lightboxEnabled) {
1103
  }
1104
  var newUrl = imgSrcSet[newRes];
1105
  $item.find('.sby_video_thumbnail > img').attr('src', newUrl);
1106
+ if ($item.find('.sby_video_thumbnail').hasClass('sby_imgLiquid_ready')) {
1107
+ $item.find('.sby_video_thumbnail').css('background-image', 'url("' + newUrl + '")');
1108
+ }
1109
  }
1110
 
1111
  $item.find('img').on('error', function () {
1347
  if ($self.find('.sby_player_item').length) {
1348
  $self.find(".sby_player_item .sby_player_video_thumbnail").sby_imgLiquid({fill: true});
1349
  }
1350
+ $self.find(".sby_item .sby_item_video_thumbnail").sby_imgLiquid({fill: true});
 
 
1351
  }
1352
  },
1353
  listenForVisibilityChange: function() {
1385
  if (!this.canCreatePlayer()) {
1386
  return;
1387
  }
 
1388
  var $self = $(this.el);
1389
  if ($self.hasClass('sby_layout_gallery')) {
1390
 
1458
  if ($(this.el).find('#sby_blank').length) {
1459
  return false;
1460
  }
1461
+ return this.playerEagerLoaded() || (this.playerAPIReady && this.consentGiven) || (window.sbyAPIReady && this.consentGiven);
1462
  },
1463
  playVideoInPlayer: function(videoID,playerID) {
1464
  if (typeof this.player !== 'undefined' && typeof this.player.loadVideoById !== 'undefined') {
1465
  this.player.loadVideoById(videoID);
1466
+ } else if (typeof window.sbyLightboxPlayer !== 'undefined'
1467
+ && typeof window.sbyLightboxPlayer.loadVideoById !== 'undefined') {
1468
  window.sbyLightboxPlayer.loadVideoById(videoID);
1469
+ } else if (typeof playerID !== 'undefined'
1470
+ && typeof this.players !== 'undefined'
1471
+ && typeof this.players[playerID] !== 'undefined'
1472
+ && typeof this.players[playerID].loadVideoById !== 'undefined') {
1473
  this.players[playerID].loadVideoById(videoID);
1474
  }
1475
  },
1486
 
1487
  }
1488
  },
1489
+ maybeAddCTA: function(playerID,$el) {
1490
  }
1491
  };
1492
 
1581
 
1582
  })(jQuery);
1583
 
 
 
 
 
1584
  if (typeof window.sbyEagerLoading === 'undefined') {
1585
+ window.sbyEagerLoading = typeof window.sbyOptions !== 'undefined' ? window.sbyOptions.eagerload : false;
1586
  if (jQuery('div[data-vc-video-bg]').length) {
1587
  window.sbyEagerLoading = true;
1588
  }
1589
  }
1590
+ if (typeof window.sbySemiEagerLoading === 'undefined') {
1591
+ window.sbySemiEagerLoading = typeof window.sbyOptions !== 'undefined' ? window.sbyOptions.semiEagerload : false;
1592
+ if (jQuery('div[data-vc-video-bg]').length || window.sbyEagerLoading) {
1593
+ window.sbySemiEagerLoading = false;
1594
+ }
1595
+ }
1596
+
1597
+ jQuery(document).ready(function($) {
1598
+ if (!window.sbySemiEagerLoading) {
1599
+ sby_init();
1600
+ }
1601
+ });
1602
 
1603
  } // if sby_js_exists
1604
 
1605
+ if (window.sbySemiEagerLoading) {
1606
+ var sbyYScriptId = "sby-youtube-api";
1607
+ var sbyYScript = document.getElementById(sbyYScriptId);
1608
 
1609
+ if (sbyYScript === null) {
1610
+ var tag = document.createElement("script");
1611
+ var firstScript = document.getElementsByTagName("script")[0];
 
1612
 
1613
+ tag.src = "https://www.youtube.com/iframe_api";
1614
+ tag.id = sbyYScriptId;
1615
+ firstScript.parentNode.insertBefore(tag, firstScript);
1616
+
1617
+ }
1618
+ }
1619
 
1620
+ window.onYouTubeIframeAPIReady = function() {
1621
+ var numFeeds = document.getElementsByClassName('sb_youtube').length;
1622
+ if (numFeeds > 0) {
1623
+ if (window.sbySemiEagerLoading) {
1624
+ if (typeof window.sby !== 'undefined') {
1625
+ for (var i = 0; i < numFeeds; i++) {
1626
+ window.sby.feeds[i].playerAPIReady = true;
1627
+ }
1628
+ } else {
1629
+ window.sbyAPIReady = true;
1630
+ }
1631
+ sby_init();
1632
+ } else {
1633
  jQuery('.sb_youtube').each(function(index) {
1634
  var $self = jQuery(this);
1635
+ if ($self.find('.sby_live_player').length) {
1636
+ player = new YT.Player($self.find('.sby_live_player').attr('id'), {
1637
+ events: {
1638
+ 'onReady': function () {
1639
+ $self.find('.sby_live_player').hide();
1640
+ $self.find('.sby_item').remove();
1641
+ var videoID = YT.get($self.find('.sby_live_player').attr('id')).getVideoData().video_id;
1642
+ $self.find('.sby_player_video_thumbnail').attr('data-video-id',videoID).css('z-index',-1);
1643
+ var itemOffset = $self.find('.sby_item').length,
1644
+ submitData = {
1645
+ action: 'sby_live_retrieve',
1646
+ video_id: videoID,
1647
+ feed_id: $self.attr('data-feedid'),
1648
+ atts: $self.attr('data-shortcode-atts'),
1649
+ };
1650
+ var onSuccess = function (data) {
1651
+ if (data.trim().indexOf('{') === 0) {
1652
+ var feed = window.sby.feeds[index],
1653
+ response = JSON.parse(data),
1654
+ checkWPPosts = typeof response.feedStatus.checkWPPosts !== 'undefined' ? response.feedStatus.checkWPPosts : false;
1655
+ if (feed.settings.debugEnabled) {
1656
+ console.log(response);
1657
+ }
1658
+ if (checkWPPosts) {
1659
+ feed.settings.checkWPPosts = true;
1660
+ } else {
1661
+ feed.settings.checkWPPosts = false;
1662
+ }
1663
+ feed.appendNewPosts(response.html);
1664
+ feed.addResizedImages(response.resizedImages);
1665
 
1666
+ feed.afterInitialImagesLoaded();
 
1667
 
1668
+ if (!response.feedStatus.shouldPaginate) {
1669
+ feed.outOfPages = true;
1670
+ $self.find('.sby_load_btn').hide();
1671
+ } else {
1672
+ feed.outOfPages = false;
1673
+ }
1674
+
1675
+ jQuery('.sby_no_js').removeClass('sby_no_js');
1676
+ $self.find('.sby_live_player').remove();
1677
+ if ($self.hasClass('sby_layout_gallery')) {
1678
+ feed.createPlayer('sby_player'+feed.index);
1679
+ }
1680
+ $self.find('.sby_player_item').css('opacity',1);
1681
+ $self.find('.sby_item').css('opacity',1);
1682
+ $self.find('.sby_player_loading').removeClass('sby_player_loading');
1683
+ if ($self.hasClass('sby_layout_list')) {
1684
+ $self.find('.sby_item_video_thumbnail').mouseenter(function() {
1685
+ jQuery(this).css('z-index',-1);
1686
+ })
1687
+ }
1688
+
1689
+ }
1690
+
1691
+ };
1692
+ jQuery.ajax({
1693
+ url: sbyOptions.adminAjaxUrl,
1694
+ type: 'post',
1695
+ data: submitData,
1696
+ success: onSuccess
1697
+ });
1698
+ }
1699
+ }
1700
+ });
1701
+ }
1702
+ });
1703
+
1704
+ if (window.sbyEagerLoading) {
1705
+ var flagLightbox = false,
1706
+ autoplay = false;
1707
+
1708
+ jQuery('.sb_youtube').each(function(index) {
1709
+ var $self = jQuery(this);
1710
+
1711
+ if ($self.hasClass('sby_layout_list')) {
1712
+ jQuery(this).addClass('sby_player_loaded');
1713
+
1714
+ $self.find('.sby_item').each(function() {
1715
+ videoID = jQuery(this).attr('data-video-id');
1716
+ //this.createPlayer(,videoID,0);
1717
+ player = new YT.Player('sby_player_'+videoID, {
1718
+ height: '100',
1719
+ width: '100',
1720
+ videoId: videoID,
1721
+ playerVars: {
1722
+ modestbranding: 1,
1723
+ rel: 0,
1724
+ autoplay: autoplay
1725
+ },
1726
+ events: {
1727
+ 'onStateChange': function(data) {
1728
+ var videoID = data.target.getVideoData()['video_id'];
1729
+ if (data.data !== 1) return;
1730
+ $self.find('.sby_item').each(function() {
1731
+ var itemVidID = jQuery(this).attr('data-video-id');
1732
+
1733
+ if (jQuery(this).find('iframe').length && itemVidID !== jQuery(this).find('iframe').attr('id').replace('sby_player_','')) {
1734
+ YT.get('sby_player_'+itemVidID).pauseVideo();
1735
+ }
1736
+ });
1737
+ }
1738
+ }
1739
+ });
1740
+ });
1741
+
1742
+ } else if ($self.hasClass('sby_layout_gallery')) {
1743
+ jQuery(this).addClass('sby_player_loaded');
1744
+
1745
+ player = new YT.Player('sby_player'+index, {
1746
  height: '100',
1747
  width: '100',
1748
+ videoId: jQuery(this).find('.sby_item').first().attr('data-video-id'),
1749
  playerVars: {
1750
  modestbranding: 1,
1751
  rel: 0,
1765
  }
1766
  }
1767
  });
1768
+ } else {
1769
+ flagLightbox = true;
1770
+ }
1771
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1772
 
1773
+ } else if (typeof window.sby !== 'undefined') {
1774
+ for (var i = 0; i < numFeeds; i++) {
1775
+ window.sby.feeds[i].playerAPIReady = true;
1776
  }
1777
+ } else {
1778
+ window.sbyAPIReady = true;
 
 
 
 
 
 
 
 
 
1779
  }
1780
+ }
1781
 
1782
+ if (flagLightbox) {
1783
+ if (!jQuery('#sby_lb-player').length) {
1784
+ jQuery('.sb_youtube').first().append('<div class="sby_lb-player-loaded sby_lb-player" id="sby_lb-player" style="display: none;"></div>');
1785
  }
1786
+ player = new YT.Player('sby_lb-player', {
1787
+ height: '100',
1788
+ width: '100',
1789
+ videoId: jQuery(this).find('.sby_item').first().attr('data-video-id'),
1790
+ playerVars: {
1791
+ modestbranding: 1,
1792
+ rel: 0,
1793
+ autoplay: autoplay
1794
+ }
1795
+ });
1796
+ window.sbyLightboxPlayer = player;
1797
  }
1798
 
1799
  }
1800
+
1801
  };
js/sb-youtube.min.js CHANGED
@@ -1 +1 @@
1
- var sby_js_exists=void 0!==sby_js_exists;if(!sby_js_exists){function sby_supports_video(){return!!document.createElement("video").canPlayType}!function(e){function i(){var e,i,t,s=s||{VER:"0.9.944"};s.bgs_Available=!1,s.bgs_CheckRunned=!1,function(e){e.fn.extend({sby_imgLiquid:function(i){this.defaults={fill:!0,verticalAlign:"center",horizontalAlign:"center",useBackgroundSize:!0,useDataHtmlAttr:!0,responsive:!0,delay:0,fadeInTime:0,removeBoxBackground:!0,hardPixels:!0,responsiveCheckTime:500,timecheckvisibility:500,onStart:null,onFinish:null,onItemStart:null,onItemFinish:null,onItemError:null},function(){if(!s.bgs_CheckRunned){s.bgs_CheckRunned=!0;var i=e('<span style="background-size:cover" />');e("body").append(i),function(){var e=i[0];if(e&&window.getComputedStyle){var t=window.getComputedStyle(e,null);t&&t.backgroundSize&&(s.bgs_Available="cover"===t.backgroundSize)}}(),i.remove()}}();var t=this;return this.options=i,this.settings=e.extend({},this.defaults,this.options),this.settings.onStart&&this.settings.onStart(),this.each(function(i){function a(){(r.responsive||h.data("sby_imgLiquid_oldProcessed"))&&h.data("sby_imgLiquid_settings")&&(r=h.data("sby_imgLiquid_settings"),l.actualSize=l.get(0).offsetWidth+l.get(0).offsetHeight/1e4,l.sizeOld&&l.actualSize!==l.sizeOld&&o(),l.sizeOld=l.actualSize,setTimeout(a,r.responsiveCheckTime))}function n(){h.data("sby_imgLiquid_error",!0),l.addClass("sby_imgLiquid_error"),r.onItemError&&r.onItemError(i,l,h),d()}function o(){var e,t,s,a,n,o,b,y,u=0,g=0,f=l.width(),_=l.height();void 0===h.data("owidth")&&h.data("owidth",h[0].width),void 0===h.data("oheight")&&h.data("oheight",h[0].height),r.fill===f/_>=h.data("owidth")/h.data("oheight")?(e="100%",t="auto",s=Math.floor(f),a=Math.floor(f*(h.data("oheight")/h.data("owidth")))):(e="auto",t="100%",s=Math.floor(_*(h.data("owidth")/h.data("oheight"))),a=Math.floor(_)),b=f-s,"left"===(n=r.horizontalAlign.toLowerCase())&&(g=0),"center"===n&&(g=.5*b),"right"===n&&(g=b),-1!==n.indexOf("%")&&((n=parseInt(n.replace("%",""),10))>0&&(g=b*n*.01)),y=_-a,"left"===(o=r.verticalAlign.toLowerCase())&&(u=0),"center"===o&&(u=.5*y),"bottom"===o&&(u=y),-1!==o.indexOf("%")&&((o=parseInt(o.replace("%",""),10))>0&&(u=y*o*.01)),r.hardPixels&&(e=s,t=a),h.css({width:e,height:t,"margin-left":Math.floor(g),"margin-top":Math.floor(u)}),h.data("sby_imgLiquid_oldProcessed")||(h.fadeTo(r.fadeInTime,1),h.data("sby_imgLiquid_oldProcessed",!0),r.removeBoxBackground&&l.css("background-image","none"),l.addClass("sby_imgLiquid_nobgSize"),l.addClass("sby_imgLiquid_ready")),r.onItemFinish&&r.onItemFinish(i,l,h),d()}function d(){i===t.length-1&&t.settings.onFinish&&t.settings.onFinish()}var r=t.settings,l=e(this),h=e("img:first",l);return h.length?(h.data("sby_imgLiquid_settings")?(l.removeClass("sby_imgLiquid_error").removeClass("sby_imgLiquid_ready"),r=e.extend({},h.data("sby_imgLiquid_settings"),t.options)):r=e.extend({},t.settings,function(){var e={};if(t.settings.useDataHtmlAttr){var i=l.attr("data-sby_imgLiquid-fill"),a=l.attr("data-sby_imgLiquid-horizontalAlign"),n=l.attr("data-sby_imgLiquid-verticalAlign");("true"===i||"false"===i)&&(e.fill=Boolean("true"===i)),void 0===a||"left"!==a&&"center"!==a&&"right"!==a&&-1===a.indexOf("%")||(e.horizontalAlign=a),void 0===n||"top"!==n&&"bottom"!==n&&"center"!==n&&-1===n.indexOf("%")||(e.verticalAlign=n)}return s.isIE&&t.settings.ieFadeInDisabled&&(e.fadeInTime=0),e}()),h.data("sby_imgLiquid_settings",r),r.onItemStart&&r.onItemStart(i,l,h),void(s.bgs_Available&&r.useBackgroundSize?(-1===l.css("background-image").indexOf(encodeURI(h.attr("src")))&&l.css({"background-image":'url("'+encodeURI(h.attr("src"))+'")'}),l.css({"background-size":r.fill?"cover":"contain","background-position":(r.horizontalAlign+" "+r.verticalAlign).toLowerCase(),"background-repeat":"no-repeat"}),e("a:first",l).css({display:"block",width:"100%",height:"100%"}),e("img",l).css({display:"none"}),r.onItemFinish&&r.onItemFinish(i,l,h),l.addClass("sby_imgLiquid_bgSize"),l.addClass("sby_imgLiquid_ready"),d()):function t(){if(h.data("oldSrc")&&h.data("oldSrc")!==h.attr("src")){var s=h.clone().removeAttr("style");return s.data("sby_imgLiquid_settings",h.data("sby_imgLiquid_settings")),h.parent().prepend(s),h.remove(),(h=s)[0].width=0,void setTimeout(t,10)}return h.data("sby_imgLiquid_oldProcessed")?void o():(h.data("sby_imgLiquid_oldProcessed",!1),h.data("oldSrc",h.attr("src")),e("img:not(:first)",l).css("display","none"),l.css({overflow:"hidden"}),h.fadeTo(0,0).removeAttr("width").removeAttr("height").css({visibility:"visible","max-width":"none","max-height":"none",width:"auto",height:"auto",display:"block"}),h.on("error",n),h[0].onerror=n,function e(){h.data("sby_imgLiquid_error")||h.data("sby_imgLiquid_loaded")||h.data("sby_imgLiquid_oldProcessed")||(l.is(":visible")&&h[0].complete&&h[0].width>0&&h[0].height>0?(h.data("sby_imgLiquid_loaded",!0),setTimeout(o,i*r.delay)):setTimeout(e,r.timecheckvisibility))}(),void a())}())):void n()})}})}(jQuery),e=s.injectCss,i=document.getElementsByTagName("head")[0],(t=document.createElement("style")).type="text/css",t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),i.appendChild(t)}function t(){this.feeds={},this.options=sbyOptions,this.isTouch=function(){if("ontouchstart"in document.documentElement)return!0;return!1}()}function s(e,i,t){this.el=e,this.index=i,this.settings=t,this.placeholderURL=window.sby.options.placeholder,t.narrowPlayer&&(this.placeholderURL=window.sby.options.placeholderNarrow),this.playerAPIReady=!1,this.consentGiven=!0,this.players={},this.minImageWidth=0,this.imageResolution=150,this.resizedImages={},this.needsResizing=[],this.outOfPages=!1,this.isInitialized=!1,this.mostRecentlyLoadedPosts=[]}function a(){}function n(i,t){e.ajax({url:sbyOptions.adminAjaxUrl,type:"post",data:i,success:t})}t.prototype={createPage:function(i,t){void 0!==window.sbyajaxurl&&-1!==window.sbyajaxurl.indexOf(window.location.hostname)||(window.sbyajaxurl=window.location.hostname+"/wp-admin/admin-ajax.php"),e(".sby_no_js_error_message").remove(),e(".sby_no_js").removeClass("sby_no_js");if(null===document.getElementById("youtube-api")){var s=document.createElement("script"),a=document.getElementsByTagName("script")[0];s.src="https://www.youtube.com/iframe_api",s.id="youtube-api",a.parentNode.insertBefore(s,a)}i(t)},createLightbox:function(){var i,t=new a,s=(i=0,function(e,t){clearTimeout(i),i=setTimeout(e,t)});jQuery(window).resize(function(){s(function(){t.afterResize()},200)}),function(){var i=jQuery,s=function(){function e(){this.fadeDuration=500,this.fitImagesInViewport=!0,this.resizeDuration=700,this.positionFromTop=50,this.showImageNumberLabel=!0,this.alwaysShowNavOnTouchDevices=!1,this.wrapAround=!1}return e.prototype.albumLabel=function(e,i){return e+" / "+i},e}(),a=function(){function s(e){this.options=e,this.album=[],this.currentImageIndex=void 0,this.init()}return s.prototype.init=function(){this.enable(),this.build()},s.prototype.enable=function(){var e=this;i("body").on("click","a[data-sby-lightbox]",function(t){return e.start(i(t.currentTarget)),!1})},s.prototype.build=function(){var e=this;i(""+t.template()).appendTo(i("body")),this.$lightbox=i("#sby_lightbox"),this.$overlay=i("#sby_lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".sby_lb-outerContainer"),this.$container=this.$lightbox.find(".sby_lb-container"),this.containerTopPadding=parseInt(this.$container.css("padding-top"),10),this.containerRightPadding=parseInt(this.$container.css("padding-right"),10),this.containerBottomPadding=parseInt(this.$container.css("padding-bottom"),10),this.containerLeftPadding=parseInt(this.$container.css("padding-left"),10),this.$overlay.hide().on("click",function(){return e.end(),!1}),jQuery(document).on("click",function(e,i,t){jQuery(e.target).closest(".sby_lb-outerContainer").length||jQuery(e.target).closest(".sby_lb-dataContainer").length||(void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),jQuery("#sby_lightboxOverlay, #sby_lightbox").fadeOut())}),this.$lightbox.hide(),jQuery("#sby_lightboxOverlay").on("click",function(t){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),"sby_lightbox"===i(t.target).attr("id")&&e.end(),!1}),this.$lightbox.find(".sby_lb-prev").on("click",function(){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),e.changeImage(0===e.currentImageIndex?e.album.length-1:e.currentImageIndex-1),!1}),this.$lightbox.find(".sby_lb-container").on("swiperight",function(){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),e.changeImage(0===e.currentImageIndex?e.album.length-1:e.currentImageIndex-1),!1}),this.$lightbox.find(".sby_lb-next").on("click",function(){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),e.changeImage(e.currentImageIndex===e.album.length-1?0:e.currentImageIndex+1),!1}),this.$lightbox.find(".sby_lb-container").on("swipeleft",function(){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),e.changeImage(e.currentImageIndex===e.album.length-1?0:e.currentImageIndex+1),!1}),this.$lightbox.find(".sby_lb-loader, .sby_lb-close").on("click",function(){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),e.end(),!1})},s.prototype.start=function(e){function s(e){a.album.push(t.getData(e))}var a=this,n=i(window);n.on("resize",i.proxy(this.sizeOverlay,this)),i("select, object, embed").css({visibility:"hidden"}),this.sizeOverlay(),this.album=[];var o,d=0,r=e.attr("data-sby-lightbox");if(r){o=i(e.prop("tagName")+'[data-sby-lightbox="'+r+'"]');for(var l=0;l<o.length;l=++l)s(i(o[l])),o[l]===e[0]&&(d=l)}else if("lightbox"===e.attr("rel"))s(e);else{o=i(e.prop("tagName")+'[rel="'+e.attr("rel")+'"]');for(var h=0;h<o.length;h=++h)s(i(o[h])),o[h]===e[0]&&(d=h)}var b=n.scrollTop()+this.options.positionFromTop,y=n.scrollLeft();this.$lightbox.css({top:b+"px",left:y+"px"}).fadeIn(this.options.fadeDuration),this.changeImage(d)},s.prototype.changeImage=function(e){var t=this;this.disableKeyboardNav();var s=this.$lightbox.find(".sby_lb-image");this.$overlay.fadeIn(this.options.fadeDuration),i(".sby_lb-loader").fadeIn("slow"),this.$lightbox.find(".sby_lb-image, .sby_lb-nav, .sby_lb-prev, .sby_lb-next, .sby_lb-dataContainer, .sby_lb-numbers, .sby_lb-caption").hide(),this.$outerContainer.addClass("animating");var a=new Image;a.onload=function(){var n,o,d,r,l,h;s.attr("src",t.album[e].link),i(a),s.width(a.width),s.height(a.height),t.options.fitImagesInViewport&&(h=i(window).width(),l=i(window).height(),r=h-t.containerLeftPadding-t.containerRightPadding-20-100,d=l-t.containerTopPadding-t.containerBottomPadding-150,(a.width>r||a.height>d)&&(a.width/r>a.height/d?(o=r,n=parseInt(a.height/(a.width/o),10),s.width(o),s.height(n)):(n=d,o=parseInt(a.width/(a.height/n),10),s.width(o),s.height(n)))),t.sizeContainer(s.width(),s.height())},a.src=this.album[e].link,this.currentImageIndex=e},s.prototype.sizeOverlay=function(){this.$overlay.width(i(window).width()).height(i(document).height())},s.prototype.sizeContainer=function(e,i){function t(){s.$lightbox.find(".sby_lb-dataContainer").width(o),s.$lightbox.find(".sby_lb-prevLink").height(d),s.$lightbox.find(".sby_lb-nextLink").height(d),s.showImage()}var s=this,a=this.$outerContainer.outerWidth(),n=this.$outerContainer.outerHeight(),o=e+this.containerLeftPadding+this.containerRightPadding,d=i+this.containerTopPadding+this.containerBottomPadding;a!==o||n!==d?this.$outerContainer.animate({width:o,height:d},this.options.resizeDuration,"swing",function(){t()}):t()},s.prototype.showImage=function(){this.$lightbox.find(".sby_lb-loader").hide(),this.$lightbox.find(".sby_lb-image").fadeIn("slow"),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()},s.prototype.updateNav=function(){var e=!1;try{document.createEvent("TouchEvent"),e=!!this.options.alwaysShowNavOnTouchDevices}catch(e){}this.$lightbox.find(".sby_lb-nav").show(),this.album.length>1&&(this.options.wrapAround?(e&&this.$lightbox.find(".sby_lb-prev, .sby_lb-next").css("opacity","1"),this.$lightbox.find(".sby_lb-prev, .sby_lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".sby_lb-prev").show(),e&&this.$lightbox.find(".sby_lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".sby_lb-next").show(),e&&this.$lightbox.find(".sby_lb-next").css("opacity","1"))))},s.prototype.updateDetails=function(){var i=this;jQuery("iframe.sby_lb-player-loaded").length&&(jQuery(".sby_lb-player-placeholder").replaceWith(jQuery("iframe.sby_lb-player-loaded")),jQuery("iframe.sby_lb-player-loaded").removeClass("sby_lb-player-loaded").show());var s=window.sby.feeds[this.album[this.currentImageIndex].feedIndex];if(t.beforePlayerSetup(this.$lightbox,this.album[this.currentImageIndex],this.currentImageIndex,this.album,s),sby_supports_video()&&(jQuery("#sby_lightbox").removeClass("sby_video_lightbox"),this.album[this.currentImageIndex].video.length)){var a="sby_lb-player";jQuery("#sby_lightbox").addClass("sby_video_lightbox");var n=this.album[this.currentImageIndex].video,o=sbyOptions.autoplay;if(void 0===window.sbyLightboxPlayer){var d={host:window.location.protocol+"//www.youtube-nocookie.com",videoId:n,playerVars:{modestbranding:1,rel:0,autoplay:o},events:{onStateChange:function(i){var t=i.target.getVideoData().video_id;s.afterStateChange(a,t,i,e("#"+a).closest(".sby_video_thumbnail_wrap"))}}};s.maybeAddCTA(a),window.sbyLightboxPlayer=new window.YT.Player(a,d)}else window.sbyLightboxPlayer.loadVideoById(n);t.afterPlayerSetup(this.$lightbox,this.album[this.currentImageIndex],this.currentImageIndex,this.album),this.album.length>1&&this.options.showImageNumberLabel?this.$lightbox.find(".sby_lb-number").text(this.options.albumLabel(this.currentImageIndex+1,this.album.length)).fadeIn("fast"):this.$lightbox.find(".sby_lb-number").hide(),this.$outerContainer.removeClass("animating"),this.$lightbox.find(".sby_lb-dataContainer").fadeIn(this.options.resizeDuration,function(){return i.sizeOverlay()}),setTimeout(function(){e("#sby_lightbox .sby_lb-player").css({height:e("#sby_lightbox .sby_lb-outerContainer").height()+"px",width:e("#sby_lightbox .sby_lb-outerContainer").width()+"px",top:0})},400)}},s.prototype.preloadNeighboringImages=function(){this.album.length>this.currentImageIndex+1&&((new Image).src=this.album[this.currentImageIndex+1].link);this.currentImageIndex>0&&((new Image).src=this.album[this.currentImageIndex-1].link)},s.prototype.enableKeyboardNav=function(){i(document).on("keyup.keyboard",i.proxy(this.keyboardAction,this))},s.prototype.disableKeyboardNav=function(){i(document).off(".keyboard")},s.prototype.keyboardAction=function(i){var t=event.keyCode,s=String.fromCharCode(t).toLowerCase();27===t||s.match(/x|o|c/)?(sby_supports_video()&&e("#sby_lightbox video.sby_video")[0].pause(),e("#sby_lightbox iframe").attr("src",""),this.end()):"p"===s||37===t?(0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1),sby_supports_video()&&e("#sby_lightbox video.sby_video")[0].pause(),e("#sby_lightbox iframe").attr("src","")):"n"!==s&&39!==t||(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0),void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo())},s.prototype.end=function(){this.disableKeyboardNav(),i(window).off("resize",this.sizeOverlay),this.$lightbox.fadeOut(this.options.fadeDuration),this.$overlay.fadeOut(this.options.fadeDuration),i("select, object, embed").css({visibility:"visible"})},s}();i(function(){var i=new s;new a(i),e(".sby_lightbox_action a").unbind().bind("click",function(){e(this).parent().find(".sby_lightbox_tooltip").toggle()})})}.call(this)},createFeeds:function(i){window.sby.createLightbox(),i.whenFeedsCreated(e(".sb_youtube").each(function(i){e(this).attr("data-sby-index",i+1),e(this).find(".sby_player").replaceWith('<div id="sby_player'+i+'"></div>');var t=e(this),a=void 0!==t.attr("data-sby-flags")?t.attr("data-sby-flags").split(","):[],o=void 0!==t.attr("data-options")?JSON.parse(t.attr("data-options")):{};if(a.indexOf("testAjax")>-1){window.sby.triggeredTest=!0;n({action:"sby_on_ajax_test_trigger"},function(e){console.log("did test")})}var d={cols:t.attr("data-cols"),colsmobile:"same"!==t.attr("data-colsmobile")?t.attr("data-colsmobile"):t.attr("data-cols"),num:t.attr("data-num"),imgRes:t.attr("data-res"),feedID:t.attr("data-feedid"),shortCodeAtts:t.attr("data-shortcode-atts"),resizingEnabled:-1===a.indexOf("resizeDisable"),imageLoadEnabled:-1===a.indexOf("imageLoadDisable"),debugEnabled:a.indexOf("debug")>-1,favorLocal:a.indexOf("favorLocal")>-1,ajaxPostLoad:a.indexOf("ajaxPostLoad")>-1,checkWPPosts:a.indexOf("checkWPPosts")>-1,cacheAll:a.indexOf("cacheAll")>-1,lightboxEnabled:void 0!==t.attr("data-sby-supports-lightbox"),autoMinRes:1,general:o};window.sby.feeds[i]=function(e,i,t){return new s(e,i,t)}(this,i,d),void 0!==window.sbyAPIReady&&(window.sby.feeds[i].playerAPIReady=!0),window.sby.feeds[i].setResizedImages(),window.sby.feeds[i].init();var r=jQuery.Event("sbyafterfeedcreate");r.feed=window.sby.feeds[i],jQuery(window).trigger(r)}))},afterFeedsCreated:function(){e(".sb_instagram_header").each(function(){var i=e(this);i.find(".sby_header_link").hover(function(){i.find(".sby_header_img_hover").addClass("sby_fade_in")},function(){i.find(".sby_header_img_hover").removeClass("sby_fade_in")})})},encodeHTML:function(e){return void 0===e?"":e.replace(/(>)/g,"&gt;").replace(/(<)/g,"&lt;").replace(/(&lt;br\/&gt;)/g,"<br>").replace(/(&lt;br&gt;)/g,"<br>")},urlDetect:function(e){return e.match(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)/g)}},s.prototype={init:function(){var i=this;e(this.el).find("#sby_mod_error").length&&e(this.el).prepend(e(this.el).find("#sby_mod_error")),this.settings.ajaxPostLoad?this.getNewPostSet():this.afterInitialImagesLoaded();var t,s=(t=0,function(e,i){clearTimeout(t),t=setTimeout(e,i)});jQuery(window).resize(function(){s(function(){i.afterResize()},500)})},initLayout:function(){this.initGalleryLayout()},initGalleryLayout:function(){var i=e(this.el),t=this;i.hasClass("sby_layout_gallery")&&i.find(".sby_player_outer_wrap").length&&(this.maybeRaiseSingleImageResolution(i.find(".sby_player_outer_wrap"),0,!0),i.find(".sby_player_outer_wrap .sby_video_thumbnail").off().click(function(i){i.preventDefault(),t.onThumbnailClick(e(this),!0)}),i.mouseenter(function(){t.canCreatePlayer()&&(i.find(".sby_player_outer_wrap iframe").length?void 0===t.player&&t.playerEagerLoaded()&&t.createPlayer("sby_player"+t.index):(i.addClass("sby_player_added").find(".sby_player_outer_wrap").addClass("sby_player_loading"),i.find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").show().removeClass("sby_hidden"),t.createPlayer("sby_player"+t.index)))}))},createPlayer:function(i,t,s,a){var n=e(this.el),o=this;if(t=void 0!==t?t:this.getVideoID(n.find(".sby_item").first()),s=void 0!==s?s:0,void 0===a&&(a={host:window.location.protocol+"//www.youtube-nocookie.com",videoId:t,playerVars:{modestbranding:1,rel:0,autoplay:s}}),void 0===a.events&&(a.events={onReady:function(){n.find(".sby_player_outer_wrap").removeClass("sby_player_loading").find(".sby_video_thumbnail").css("z-index",-1).find(".sby_loader").hide().addClass("sby_hidden"),e("#"+i).length&&e("#"+i).closest(".sby_video_thumbnail_wrap").find(".sby_video_thumbnail").length&&e("#"+i).closest(".sby_video_thumbnail_wrap").find(".sby_video_thumbnail").fadeTo(0,"slow",function(){e(this).css("z-index",-1),e(this).find(".sby_loader").hide().addClass("sby_hidden"),e(this).closest(".sby_item").removeClass("sby_player_loading")})},onStateChange:function(t){n.find(".sby_player_outer_wrap").removeClass("sby_player_loading").find(".sby_video_thumbnail").css("z-index",-1).find(".sby_loader").hide().addClass("sby_hidden");var s=t.target.getVideoData().video_id;o.afterStateChange(i,s,t,e("#"+i).closest(".sby_video_thumbnail_wrap")),1===t.data&&void 0!==o.players&&n.find(".sby_item").each(function(){var i=o.getVideoID(e(this));e(this).find("iframe").length&&i!==s&&void 0!==o.players[i]&&o.players[i].pauseVideo()})}}),window.sbyEagerLoading)var d=YT.get(i);else d=new window.YT.Player(i,a);return this.maybeAddCTA(i),n.hasClass("sby_layout_list")&&void 0===this.players[t]?this.players[t]=d:void 0===this.player&&(this.player=d),d},afterStateChange:function(e,i,t,s){},afterInitialImagesLoaded:function(){this.initLayout(),this.loadMoreButtonInit(),this.hideExtraItemsForWidth(),this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed(),this.afterFeedSet(),this.sizePlayer()},afterResize:function(){this.setImageHeight(),this.setImageResolution(),this.maybeRaiseImageResolution(),this.setImageSizeClass()},afterLoadMoreClicked:function(e){e.find(".sby_loader").removeClass("sby_hidden"),e.find(".sby_btn_text").addClass("sby_hidden"),e.closest(".sb_youtube").find(".sby_num_diff_hide").addClass("sby_transition").removeClass("sby_num_diff_hide")},afterNewImagesLoaded:function(){var i=e(this.el),t=this;this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed(),this.sizePlayer(),setTimeout(function(){i.find(".sby_loader").addClass("sby_hidden"),i.find(".sby_btn_text").removeClass("sby_hidden"),t.maybeRaiseImageResolution()},500)},beforeNewImagesRevealed:function(){this.setImageHeight(),this.maybeRaiseImageResolution(!0),this.setImageSizeClass()},afterFeedSet:function(){},sizePlayer:function(){var i=e(this.el),t=this;if(i.hasClass("sby_layout_gallery")){$playerThumbnail=i.find(".sby_player_item").find(".sby_player_video_thumbnail");var s=$playerThumbnail.innerWidth(),a=Math.floor(9*s/16);t.settings.narrowPlayer&&(a=Math.floor(3*s/4)),$playerThumbnail.css("height",a+"px").css("overflow","hidden")}else i.hasClass("sby_layout_list")&&i.find(".sby_item").each(function(){$playerThumbnail=e(this).find(".sby_item_video_thumbnail");var i=$playerThumbnail.innerWidth(),s=Math.floor(9*i/16);t.settings.narrowPlayer&&(s=Math.floor(3*i/4)),$playerThumbnail.css("height",s+"px").css("overflow","hidden")})},revealNewImages:function(){var i=e(this.el),t=this;this.applyImageLiquid(),"function"==typeof sbyCustomJS&&setTimeout(function(){sbyCustomJS()},100),i.find(".sby_item").each(function(i){var s=jQuery(this);s.find(".sby_video_thumbnail").hover(function(){jQuery(this).fadeTo(200,.85)},function(){jQuery(this).stop().fadeTo(500,1)}),s.find(".sby_video_thumbnail").off().click(function(i){i.preventDefault(),t.onThumbnailClick(e(this),!1)}),s.find(".sby_video_thumbnail").mouseenter(function(){t.onThumbnailEnter(e(this),!1)}),s.find(".sby_player_wrap").mouseleave(function(){t.onThumbnailLeave(e(this),!1)}),t.settings.lightboxEnabled&&(s.find(".sby_video_thumbnail").attr("data-sby-lightbox",t.index),"undefined"!=typeof sbyOptions&&void 0!==sbyOptions.lightboxPlaceholder&&(t.settings.narrowPlayer?s.find(".sby_video_thumbnail").attr("href",sbyOptions.lightboxPlaceholderNarrow):s.find(".sby_video_thumbnail").attr("href",sbyOptions.lightboxPlaceholder))),t.afterItemRevealed(s),""===s.find(".sby_info_item").text().trim()&&s.find(".sby_info_item").addClass("sby_no_space")}),i.find(".sby_player_item").each(function(e){var i=jQuery(this);t.afterItemRevealed(i)}),setTimeout(function(){i.find(".sby_item.sby_new").removeClass("sby_new");var e=10;i.find(".sby_transition").length;i.find(".sby_transition").each(function(i){var t=jQuery(this);setTimeout(function(){t.removeClass("sby_transition")},e),e+=10})},500)},afterItemRevealed:function(){},afterNewImagesRevealed:function(){this.listenForVisibilityChange(),this.sendNeedsResizingToServer(),this.sendCheckWPPostsToServer(),this.settings.imageLoadEnabled||e(".sby_no_resraise").removeClass("sby_no_resraise");var i=e.Event("sbyafterimagesloaded");i.el=e(this.el),e(window).trigger(i)},setResizedImages:function(){e(this.el).find(".sby_resized_image_data").length&&void 0!==e(this.el).find(".sby_resized_image_data").attr("data-resized")&&0===e(this.el).find(".sby_resized_image_data").attr("data-resized").indexOf('{"')&&(this.resizedImages=JSON.parse(e(this.el).find(".sby_resized_image_data").attr("data-resized")),e(this.el).find(".sby_resized_image_data").remove())},sendNeedsResizingToServer:function(){var i=this;if(i.needsResizing.length>0&&i.settings.resizingEnabled){var t=e(this.el).find(".sby_item").length;n({action:"sby_resized_images_submit",needs_resizing:i.needsResizing,offset:t,feed_id:i.settings.feedID,atts:i.settings.shortCodeAtts},function(e){if(0===e.trim().indexOf("{")){var t=JSON.parse(e);i.settings.debugEnabled&&console.log(t)}})}},sendCheckWPPostsToServer:function(){var i=this;if(i.settings.checkWPPosts||i.settings.singleCheckPosts){var t=void 0!==i.settings.feedID?i.settings.feedID:"sby_single",s=i.mostRecentlyLoadedPosts;i.mostRecentlyLoadedPosts=[];n({action:"sby_check_wp_submit",feed_id:t,atts:i.settings.shortCodeAtts,offset:e(this.el).hasClass("sby_layout_carousel")?Math.floor(e(this.el).find(".sby_item").length/2-1):e(this.el).find(".sby_item").length,posts:s},function(e){if(0===e.trim().indexOf("{")){var t=JSON.parse(e);i.settings.debugEnabled&&console.log(t),i.afterSendCheckWPPostsToServer(t)}})}},afterSendCheckWPPostsToServer:function(e){},loadMoreButtonInit:function(){var i=e(this.el),t=this;i.find(".sby_footer .sby_load_btn").off().on("click",function(){t.afterLoadMoreClicked(jQuery(this)),t.getNewPostSet()})},getNewPostSet:function(){var i=e(this.el),t=this;n({action:"sby_load_more_clicked",offset:i.find(".sby_item").length,feed_id:t.settings.feedID,atts:t.settings.shortCodeAtts,current_resolution:t.imageResolution},function(s){if(0===s.trim().indexOf("{")){var a=JSON.parse(s),n=void 0!==a.feedStatus.checkWPPosts&&a.feedStatus.checkWPPosts;t.settings.debugEnabled&&console.log(a),t.settings.checkWPPosts=!!n,t.appendNewPosts(a.html),t.addResizedImages(a.resizedImages),t.settings.ajaxPostLoad?(t.settings.ajaxPostLoad=!1,t.afterInitialImagesLoaded()):t.afterNewImagesLoaded(),a.feedStatus.shouldPaginate?t.outOfPages=!1:(t.outOfPages=!0,i.find(".sby_load_btn").hide()),e(".sby_no_js").removeClass("sby_no_js")}})},appendNewPosts:function(i){var t=e(this.el);t.find(".sby_items_wrap .sby_item").length?t.find(".sby_items_wrap .sby_item").last().after(i):t.find(".sby_items_wrap").append(i)},addResizedImages:function(e){for(var i in e)this.resizedImages[i]=e[i]},setImageHeight:function(){},maybeRaiseSingleImageResolution:function(i,t,s){var a=this,n=a.getImageUrls(i),o=i.find(".sby_video_thumbnail > img").attr("src"),d=150;s=void 0!==s&&s;if(!i.hasClass("sby_no_resraise")){e.each(n,function(e,i){i===o&&(d=parseInt(e),s=!1)});var r=640;switch(a.settings.imgRes){case"thumb":r=120;break;case"medium":r=320;break;case"large":r=480;break;case"full":r=640;break;default:var l=Math.max(a.settings.autoMinRes,i.find(".sby_video_thumbnail").innerWidth());switch(a.getBestResolutionForAuto(l,1,e(this.el).find("sby_item").first())){case 480:r=480;break;case 320:r=320;break;case 120:r=120}}if(r>d||o===a.placeholderURL||s){if(a.settings.debugEnabled){var h=o===a.placeholderURL?"was placeholder":"too small";console.log("rais res for "+o,h)}var b=n[r];i.find(".sby_video_thumbnail > img").attr("src",b)}i.find("img").on("error",function(){if(e(this).hasClass("sby_img_error"))console.log("unfixed error "+e(this).attr("src"));else{if(e(this).addClass("sby_img_error"),e(this).attr("src").indexOf("i.ytimg.com")>-1)a.settings.favorLocal=!0,a.getImageUrls(e(this).closest(".sby_item"))[640];else void 0!==e(this).closest(".sby_video_thumbnail").attr("data-full-res")||e(this).closest(".sby_video_thumbnail").attr("href");setTimeout(function(){a.afterResize()},1500)}})}},maybeRaiseImageResolution:function(i){var t=this,s=void 0!==i&&!0===i?".sby_item.sby_new":".sby_item",a=!t.isInitialized;e(t.el).find(s).each(function(i){!e(this).hasClass("sby_num_diff_hide")&&e(this).find(".sby_video_thumbnail").length&&void 0!==e(this).find(".sby_video_thumbnail").attr("data-img-src-set")&&t.maybeRaiseSingleImageResolution(e(this),i,a)}),t.isInitialized=!0},getBestResolutionForAuto:function(i,t,s){(isNaN(t)||t<1)&&(t=1);var a=i*t,n=10*Math.ceil(a/10),o=[120,320,480,640];if(s.hasClass("sby_highlighted")&&(n*=2),-1===o.indexOf(parseInt(n))){var d=!1;e.each(o,function(e,i){i>parseInt(n)&&!d&&(n=i,d=!0)})}return n},hideExtraItemsForWidth:function(){if("carousel"!==this.layout){var i=e(this.el),t=void 0!==i.attr("data-num")&&""!==i.attr("data-num")?parseInt(i.attr("data-num")):1,s=void 0!==i.attr("data-nummobile")&&""!==i.attr("data-nummobile")?parseInt(i.attr("data-nummobile")):t;i.hasClass(".sby_layout_carousel")||(e(window).width()<480?s<i.find(".sby_item").length&&i.find(".sby_item").slice(s-i.find(".sby_item").length).addClass("sby_num_diff_hide"):t<i.find(".sby_item").length&&i.find(".sby_item").slice(t-i.find(".sby_item").length).addClass("sby_num_diff_hide"))}},setImageSizeClass:function(){var i=e(this.el);i.removeClass("sby_small sby_medium");var t=i.innerWidth(),s=parseInt(i.find(".sby_items_wrap").outerWidth()-i.find(".sby_items_wrap").width())/2,a=this.getColumnCount(),n=(t-s*(a+2))/a;n>120&&n<240?i.addClass("sby_medium"):n<=120&&i.addClass("sby_small")},setMinImageWidth:function(){e(this.el).find(".sby_item .sby_video_thumbnail").first().length?this.minImageWidth=e(this.el).find(".sby_item .sby_video_thumbnail").first().innerWidth():this.minImageWidth=150},setImageResolution:function(){if("auto"===this.settings.imgRes)this.imageResolution="auto";else switch(this.settings.imgRes){case"thumb":this.imageResolution=150;break;case"medium":this.imageResolution=320;break;default:this.imageResolution=640}},getImageUrls:function(e){var i=JSON.parse(e.find(".sby_video_thumbnail").attr("data-img-src-set").replace(/\\\//g,"/")),t=e.attr("id").replace("sby_","").replace("player_","");if(void 0!==this.resizedImages[t]&&"video"!==this.resizedImages[t]&&"pending"!==this.resizedImages[t]&&"error"!==this.resizedImages[t].id&&"video"!==this.resizedImages[t].id&&"pending"!==this.resizedImages[t].id){if(void 0!==this.resizedImages[t].sizes){var s=[];void 0!==this.resizedImages[t].sizes.full&&(s.push(640),i[640]=sbyOptions.resized_url+this.resizedImages[t].id+"full.jpg",e.find(".sby_link_area").attr("href",sbyOptions.resized_url+this.resizedImages[t].id+"full.jpg"),e.find(".sby_video_thumbnail").attr("data-full-res",sbyOptions.resized_url+this.resizedImages[t].id+"full.jpg")),void 0!==this.resizedImages[t].sizes.low&&(s.push(320),i[320]=sbyOptions.resized_url+this.resizedImages[t].id+"low.jpg",this.settings.favorLocal&&void 0===this.resizedImages[t].sizes.full&&(e.find(".sby_link_area").attr("href",sbyOptions.resized_url+this.resizedImages[t].id+"low.jpg"),e.find(".sby_video_thumbnail").attr("data-full-res",sbyOptions.resized_url+this.resizedImages[t].id+"low.jpg"))),void 0!==this.resizedImages[t].sizes.thumb&&(s.push(150),i[150]=sbyOptions.resized_url+this.resizedImages[t].id+"thumb.jpg"),this.settings.favorLocal&&(-1===s.indexOf(640)&&s.indexOf(320)>-1&&(i[640]=sbyOptions.resized_url+this.resizedImages[t].id+"low.jpg"),-1===s.indexOf(320)&&(s.indexOf(640)>-1?i[320]=sbyOptions.resized_url+this.resizedImages[t].id+"full.jpg":s.indexOf(150)>-1&&(i[320]=sbyOptions.resized_url+this.resizedImages[t].id+"thumb.jpg")),-1===s.indexOf(150)&&(s.indexOf(320)>-1?i[150]=sbyOptions.resized_url+this.resizedImages[t].id+"low.jpg":s.indexOf(640)>-1&&(i[150]=sbyOptions.resized_url+this.resizedImages[t].id+"full.jpg")))}}else(void 0===this.resizedImages[t]||void 0!==this.resizedImages[t].id&&"pending"!==this.resizedImages[t].id&&"error"!==this.resizedImages[t].id)&&this.addToNeedsResizing(t);return i},getVideoID:function(i){if(i.hasClass("sby_item")||i.hasClass("sby_player_item")){if(void 0!==i.find(".sby_video_thumbnail").attr("data-video-id"))return i.find(".sby_video_thumbnail").attr("data-video-id")}else if(i.closest("sby_item").length||i.closest("sby_player_item").length){var t=i.closest("sby_item").length?i.closest("sby_item"):i.closest("sby_player_item");if(void 0!==t.find(".sby_video_thumbnail").attr("data-video-id"))return t.find(".sby_video_thumbnail").attr("data-video-id")}else{if(i.hasClass("sb_youtube"))return i.find(".sby_item").first().find(".sby_video_thumbnail").attr("data-video-id");if(e(this.el).find(".sby_video_thumbnail").first().length&&void 0!==e(this.el).find(".sby_video_thumbnail").first().attr("data-video-id"))return e(this.el).find(".sby_video_thumbnail").first().attr("data-video-id")}return""},getAvatarUrl:function(e,i){if(""===e)return"";var t=this.settings.general.avatars;return"local"===(i=void 0!==i?i:"local")?void 0!==t["LCL"+e]&&1===parseInt(t["LCL"+e])?sbyOptions.resized_url+e+".jpg":void 0!==t[e]?t[e]:"":void 0!==t[e]?t[e]:void 0!==t["LCL"+e]&&1===parseInt(t["LCL"+e])?sbyOptions.resized_url+e+".jpg":""},addToNeedsResizing:function(e){-1===this.needsResizing.indexOf(e)&&this.needsResizing.push(e)},applyImageLiquid:function(){var t=e(this.el);i(),"function"==typeof t.find(".sby_player_item").sby_imgLiquid&&(t.find(".sby_player_item").length&&t.find(".sby_player_item .sby_player_video_thumbnail").sby_imgLiquid({fill:!0}),t.hasClass("sby_layout_list")&&t.find(".sby_item .sby_item_video_thumbnail").sby_imgLiquid({fill:!0}))},listenForVisibilityChange:function(){var i,t,s,a=this;i=jQuery,t={callback:function(){},runOnLoad:!0,frequency:100,sbyPreviousVisibility:null},s={sbyCheckVisibility:function(e,i){if(jQuery.contains(document,e[0])){var t=i.sbyPreviousVisibility,a=e.is(":visible");i.sbyPreviousVisibility=a,null==t?i.runOnLoad&&i.callback(e,a):t!==a&&i.callback(e,a),setTimeout(function(){s.sbyCheckVisibility(e,i)},i.frequency)}}},i.fn.sbyVisibilityChanged=function(e){var a=i.extend({},t,e);return this.each(function(){s.sbyCheckVisibility(i(this),a)})},"function"==typeof e(this.el).filter(":hidden").sbyVisibilityChanged&&e(this.el).filter(":hidden").sbyVisibilityChanged({callback:function(e,i){a.afterResize()},runOnLoad:!1})},getColumnCount:function(){var i=e(this.el),t=this.settings.cols,s=this.settings.colsmobile,a=t;return sbyWindowWidth=window.innerWidth,i.hasClass("sby_mob_col_auto")?(sbyWindowWidth<640&&parseInt(t)>2&&parseInt(t)<7&&(a=2),sbyWindowWidth<640&&parseInt(t)>6&&parseInt(t)<11&&(a=4),sbyWindowWidth<=480&&parseInt(t)>2&&(a=1)):sbyWindowWidth<=480&&(a=s),parseInt(a)},onThumbnailClick:function(i,t,s){if(this.canCreatePlayer()){var a=e(this.el);if(a.hasClass("sby_layout_gallery"))if(a.addClass("sby_player_added").find(".sby_player_outer_wrap").addClass("sby_player_loading"),a.find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").show().removeClass("sby_hidden"),a.find(".sby_player_outer_wrap iframe").length)if(t){s=void 0===s?this.getVideoID(a.find(".sby_item").first()):s;this.playVideoInPlayer(s)}else{s=void 0===s?this.getVideoID(i.closest(".sby_item")):s;this.changePlayerInfo(i.closest(".sby_item")),this.playVideoInPlayer(s),this.afterVideoChanged()}else if(t)this.createPlayer("sby_player"+this.index);else{var s=void 0===s?this.getVideoID(i.closest(".sby_item")):s;this.createPlayer("sby_player"+this.index,s)}else if(e(this.el).hasClass("sby_layout_grid")||e(this.el).hasClass("sby_layout_carousel")){var n=i.closest(".sby_item");s=void 0===s?this.getVideoID(n):s;this.playVideoInPlayer(s),this.afterVideoChanged()}else if(e(this.el).hasClass("sby_layout_list")){n=i.closest(".sby_item"),s=void 0===s?this.getVideoID(n):s;n.length&&!n.find("iframe").length?(n.find(".sby_loader").show().removeClass("sby_hidden"),n.addClass("sby_player_loading sby_player_loaded"),this.createPlayer("sby_player_"+s,s)):(this.playVideoInPlayer(s,n.attr("data-video-id")),this.afterVideoChanged())}}},onThumbnailEnter:function(i){if(this.canCreatePlayer()&&e(this.el).hasClass("sby_layout_list")){var t=i.closest(".sby_item"),s=this.getVideoID(t);t.find("iframe").length||(t.find(".sby_loader").show().removeClass("sby_hidden"),t.addClass("sby_player_loading sby_player_loaded"),this.createPlayer("sby_player_"+s,s,0))}},onThumbnailLeave:function(e){},changePlayerInfo:function(e){},playerEagerLoaded:function(){if(void 0!==this.player||e(this.el).hasClass("sby_player_loaded"))return!0},canCreatePlayer:function(){return!e(this.el).find("#sby_blank").length&&(this.playerEagerLoaded()||this.playerAPIReady&&this.consentGiven||void 0!==window.sbyAPIReady&&this.consentGiven)},playVideoInPlayer:function(e,i){void 0!==this.player&&void 0!==this.player.loadVideoById?this.player.loadVideoById(e):void 0!==window.sbyLightboxPlayer&&void 0!==window.sbyLightboxPlayer.loadVideoById?window.sbyLightboxPlayer.loadVideoById(e):void 0!==i&&void 0!==this.players&&void 0!==this.players[i]&&this.players[i].loadVideoById(e)},afterVideoChanged:function(){e(this.el).hasClass("sby_layout_gallery")&&(e(this.el).find(".sby_player_outer_wrap").removeClass("sby_player_loading"),e(this.el).find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").hide().addClass("sby_hidden"),e(window).width()<480&&e("html, body").animate({scrollTop:e(this.el).find(".sby_player_outer_wrap").offset().top},300))},maybeAddCTA:function(){}},a.prototype={getData:function(e){return{feedIndex:parseInt(e.closest(".sb_youtube").attr("data-sby-index")-1),link:e.attr("href"),video:e.attr("data-video-id")}},template:function(){return"<div id='sby_lightboxOverlay' class='sby_lightboxOverlay'></div><div id='sby_lightbox' class='sby_lightbox'><div class='sby_lb-outerContainer'><div class='sby_lb-container'><img class='sby_lb-image' alt='Lightbox image placeholder' src='' /><div class='sby_lb-player sby_lb-player-placeholder' id='sby_lb-player'></div><div class='sby_lb-nav'><a class='sby_lb-prev' href='#' ><p class='sby-screenreader'>Previous Slide</p><span></span></a><a class='sby_lb-next' href='#' ><p class='sby-screenreader'>Next Slide</p><span></span></a></div><div class='sby_lb-loader'><a class='sby_lb-cancel'></a></div></div></div><div class='sby_lb-dataContainer'><div class='sby_lb-data'><div class='sby_lb-details'><div class='sby_lb-caption'></div><div class='sby_lb-info'><div class='sby_lb-number'></div></div></div><div class='sby_lb-closeContainer'><a class='sby_lb-close'></a></div></div></div></div>"},beforePlayerSetup:function(e,i,t,s,a){},afterPlayerSetup:function(e,i,t,s){},afterResize:function(){var i=e("#sby_lightbox .sby_lb-player").height();if(i>100){var t=e("#sby_lightbox .sby_lb-outerContainer").height()-i;t>10&&e("#sby_lightbox .sby_lb-player").css("top",t/2)}},pausePlayer:function(){void 0!==YT.get("sby_lb-player")&&"function"==typeof YT.get("sby_lb-player").pauseVideo?YT.get("sby_lb-player").pauseVideo():void 0!==window.sbyLightboxPlayer&&"function"==typeof window.sbyLightboxPlayer.pauseVideo&&window.sbyLightboxPlayer.pauseVideo()}},window.sby_init=function(){window.sby=new t,window.sby.createPage(window.sby.createFeeds,{whenFeedsCreated:window.sby.afterFeedsCreated})}}(jQuery),jQuery(document).ready(function(e){sby_init()}),void 0===window.sbyEagerLoading&&(window.sbyEagerLoading=!1,jQuery("div[data-vc-video-bg]").length&&(window.sbyEagerLoading=!0))}window.onYouTubeIframeAPIReady=function(){window.sbyAPIReady=!0;var e=document.getElementsByClassName("sb_youtube").length;if(e>0)if(window.sbyEagerLoading){window.sbyEagerLoading=!0;var i=!1;jQuery(".sb_youtube").each(function(e){var t=jQuery(this);t.hasClass("sby_layout_list")?(jQuery(this).addClass("sby_player_loaded"),t.find(".sby_item").each(function(){videoID=jQuery(this).attr("data-video-id"),player=new YT.Player("sby_player_"+videoID,{height:"100",width:"100",videoId:videoID,playerVars:{modestbranding:1,rel:0,autoplay:!1},events:{onStateChange:function(e){e.target.getVideoData().video_id;1===e.data&&t.find(".sby_item").each(function(){var i=jQuery(this).attr("data-video-id");jQuery(this).find("iframe").length&&jQuery(e.target.a).attr("id")!==jQuery(this).find("iframe").attr("id")&&YT.get("sby_player_"+i).pauseVideo()})}}})})):t.hasClass("sby_layout_gallery")?(jQuery(this).addClass("sby_player_loaded"),player=new YT.Player("sby_player"+e,{height:"100",width:"100",videoId:jQuery(this).find(".sby_item").first().attr("data-video-id"),playerVars:{modestbranding:1,rel:0,autoplay:!1}})):i=!0}),i&&(jQuery("#sby_lb-player").length||jQuery(".sb_youtube").first().append('<div class="sby_lb-player-loaded sby_lb-player" id="sby_lb-player" style="display: none;"></div>'),player=new YT.Player("sby_lb-player",{height:"100",width:"100",videoId:jQuery(this).find(".sby_item").first().attr("data-video-id"),playerVars:{modestbranding:1,rel:0,autoplay:!1}}),window.sbyLightboxPlayer=player)}else if(void 0!==window.sby&&void 0!==window.sby.feeds[t])for(var t=0;t<e;t++)window.sby.feeds[t].playerAPIReady=!0};
1
+ var sby_js_exists=void 0!==sby_js_exists;if(!sby_js_exists){function sby_supports_video(){return!!document.createElement("video").canPlayType}!function(e){function i(){var e,i,t,s=s||{VER:"0.9.944"};s.bgs_Available=!1,s.bgs_CheckRunned=!1,function(e){e.fn.extend({sby_imgLiquid:function(i){this.defaults={fill:!0,verticalAlign:"center",horizontalAlign:"center",useBackgroundSize:!0,useDataHtmlAttr:!0,responsive:!0,delay:0,fadeInTime:0,removeBoxBackground:!0,hardPixels:!0,responsiveCheckTime:500,timecheckvisibility:500,onStart:null,onFinish:null,onItemStart:null,onItemFinish:null,onItemError:null},function(){if(!s.bgs_CheckRunned){s.bgs_CheckRunned=!0;var i=e('<span style="background-size:cover" />');e("body").append(i),function(){var e=i[0];if(e&&window.getComputedStyle){var t=window.getComputedStyle(e,null);t&&t.backgroundSize&&(s.bgs_Available="cover"===t.backgroundSize)}}(),i.remove()}}();var t=this;return this.options=i,this.settings=e.extend({},this.defaults,this.options),this.settings.onStart&&this.settings.onStart(),this.each(function(i){function a(){(r.responsive||h.data("sby_imgLiquid_oldProcessed"))&&h.data("sby_imgLiquid_settings")&&(r=h.data("sby_imgLiquid_settings"),l.actualSize=l.get(0).offsetWidth+l.get(0).offsetHeight/1e4,l.sizeOld&&l.actualSize!==l.sizeOld&&o(),l.sizeOld=l.actualSize,setTimeout(a,r.responsiveCheckTime))}function n(){h.data("sby_imgLiquid_error",!0),l.addClass("sby_imgLiquid_error"),r.onItemError&&r.onItemError(i,l,h),d()}function o(){var e,t,s,a,n,o,y,b,u=0,g=0,_=l.width(),f=l.height();void 0===h.data("owidth")&&h.data("owidth",h[0].width),void 0===h.data("oheight")&&h.data("oheight",h[0].height),r.fill===_/f>=h.data("owidth")/h.data("oheight")?(e="100%",t="auto",s=Math.floor(_),a=Math.floor(_*(h.data("oheight")/h.data("owidth")))):(e="auto",t="100%",s=Math.floor(f*(h.data("owidth")/h.data("oheight"))),a=Math.floor(f)),y=_-s,"left"===(n=r.horizontalAlign.toLowerCase())&&(g=0),"center"===n&&(g=.5*y),"right"===n&&(g=y),-1!==n.indexOf("%")&&((n=parseInt(n.replace("%",""),10))>0&&(g=y*n*.01)),b=f-a,"left"===(o=r.verticalAlign.toLowerCase())&&(u=0),"center"===o&&(u=.5*b),"bottom"===o&&(u=b),-1!==o.indexOf("%")&&((o=parseInt(o.replace("%",""),10))>0&&(u=b*o*.01)),r.hardPixels&&(e=s,t=a),h.css({width:e,height:t,"margin-left":Math.floor(g),"margin-top":Math.floor(u)}),h.data("sby_imgLiquid_oldProcessed")||(h.fadeTo(r.fadeInTime,1),h.data("sby_imgLiquid_oldProcessed",!0),r.removeBoxBackground&&l.css("background-image","none"),l.addClass("sby_imgLiquid_nobgSize"),l.addClass("sby_imgLiquid_ready")),r.onItemFinish&&r.onItemFinish(i,l,h),d()}function d(){i===t.length-1&&t.settings.onFinish&&t.settings.onFinish()}var r=t.settings,l=e(this),h=e("img:first",l);return h.length?(h.data("sby_imgLiquid_settings")?(l.removeClass("sby_imgLiquid_error").removeClass("sby_imgLiquid_ready"),r=e.extend({},h.data("sby_imgLiquid_settings"),t.options)):r=e.extend({},t.settings,function(){var e={};if(t.settings.useDataHtmlAttr){var i=l.attr("data-sby_imgLiquid-fill"),a=l.attr("data-sby_imgLiquid-horizontalAlign"),n=l.attr("data-sby_imgLiquid-verticalAlign");("true"===i||"false"===i)&&(e.fill=Boolean("true"===i)),void 0===a||"left"!==a&&"center"!==a&&"right"!==a&&-1===a.indexOf("%")||(e.horizontalAlign=a),void 0===n||"top"!==n&&"bottom"!==n&&"center"!==n&&-1===n.indexOf("%")||(e.verticalAlign=n)}return s.isIE&&t.settings.ieFadeInDisabled&&(e.fadeInTime=0),e}()),h.data("sby_imgLiquid_settings",r),r.onItemStart&&r.onItemStart(i,l,h),void(s.bgs_Available&&r.useBackgroundSize?(-1===l.css("background-image").indexOf(encodeURI(h.attr("src")))&&l.css({"background-image":'url("'+encodeURI(h.attr("src"))+'")'}),l.css({"background-size":r.fill?"cover":"contain","background-position":(r.horizontalAlign+" "+r.verticalAlign).toLowerCase(),"background-repeat":"no-repeat"}),e("a:first",l).css({display:"block",width:"100%",height:"100%"}),e("img",l).css({display:"none"}),r.onItemFinish&&r.onItemFinish(i,l,h),l.addClass("sby_imgLiquid_bgSize"),l.addClass("sby_imgLiquid_ready"),d()):function t(){if(h.data("oldSrc")&&h.data("oldSrc")!==h.attr("src")){var s=h.clone().removeAttr("style");return s.data("sby_imgLiquid_settings",h.data("sby_imgLiquid_settings")),h.parent().prepend(s),h.remove(),(h=s)[0].width=0,void setTimeout(t,10)}return h.data("sby_imgLiquid_oldProcessed")?void o():(h.data("sby_imgLiquid_oldProcessed",!1),h.data("oldSrc",h.attr("src")),e("img:not(:first)",l).css("display","none"),l.css({overflow:"hidden"}),h.fadeTo(0,0).removeAttr("width").removeAttr("height").css({visibility:"visible","max-width":"none","max-height":"none",width:"auto",height:"auto",display:"block"}),h.on("error",n),h[0].onerror=n,function e(){h.data("sby_imgLiquid_error")||h.data("sby_imgLiquid_loaded")||h.data("sby_imgLiquid_oldProcessed")||(l.is(":visible")&&h[0].complete&&h[0].width>0&&h[0].height>0?(h.data("sby_imgLiquid_loaded",!0),setTimeout(o,i*r.delay)):setTimeout(e,r.timecheckvisibility))}(),void a())}())):void n()})}})}(jQuery),e=s.injectCss,i=document.getElementsByTagName("head")[0],(t=document.createElement("style")).type="text/css",t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),i.appendChild(t)}function t(){this.feeds={},this.options=sbyOptions,this.isTouch=function(){if("ontouchstart"in document.documentElement)return!0;return!1}()}function s(e,i,t){this.el=e,this.index=i,this.settings=t,this.placeholderURL=window.sby.options.placeholder,t.narrowPlayer&&(this.placeholderURL=window.sby.options.placeholderNarrow),this.playerAPIReady=!1,this.consentGiven=!0,this.players={},this.minImageWidth=0,this.imageResolution=150,this.resizedImages={},this.needsResizing=[],this.outOfPages=!1,this.isInitialized=!1,this.mostRecentlyLoadedPosts=[]}function a(){}function n(i,t){e.ajax({url:sbyOptions.adminAjaxUrl,type:"post",data:i,success:t})}t.prototype={createPage:function(i,t){void 0!==window.sbyajaxurl&&-1!==window.sbyajaxurl.indexOf(window.location.hostname)||(window.sbyajaxurl=window.location.hostname+"/wp-admin/admin-ajax.php"),e(".sby_no_js_error_message").remove(),e(".sby_no_js").removeClass("sby_no_js");if(null===document.getElementById("youtube-api")){var s=document.createElement("script"),a=document.getElementsByTagName("script")[0];s.src="https://www.youtube.com/iframe_api",s.id="youtube-api",a.parentNode.insertBefore(s,a)}i(t)},createLightbox:function(){var i,t=new a,s=(i=0,function(e,t){clearTimeout(i),i=setTimeout(e,t)});jQuery(window).resize(function(){s(function(){t.afterResize()},200)}),function(){var i=jQuery,s=function(){function e(){this.fadeDuration=500,this.fitImagesInViewport=!0,this.resizeDuration=700,this.positionFromTop=50,this.showImageNumberLabel=!0,this.alwaysShowNavOnTouchDevices=!1,this.wrapAround=!1}return e.prototype.albumLabel=function(e,i){return e+" / "+i},e}(),a=function(){function s(e){this.options=e,this.album=[],this.currentImageIndex=void 0,this.init()}return s.prototype.init=function(){this.enable(),this.build()},s.prototype.enable=function(){var e=this;i("body").on("click","a[data-sby-lightbox]",function(t){return e.start(i(t.currentTarget)),!1})},s.prototype.build=function(){var e=this;i(""+t.template()).appendTo(i("body")),this.$lightbox=i("#sby_lightbox"),this.$overlay=i("#sby_lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".sby_lb-outerContainer"),this.$container=this.$lightbox.find(".sby_lb-container"),this.containerTopPadding=parseInt(this.$container.css("padding-top"),10),this.containerRightPadding=parseInt(this.$container.css("padding-right"),10),this.containerBottomPadding=parseInt(this.$container.css("padding-bottom"),10),this.containerLeftPadding=parseInt(this.$container.css("padding-left"),10),this.$overlay.hide().on("click",function(){return e.end(),!1}),jQuery(document).on("click",function(e,i,t){jQuery(e.target).closest(".sby_lb-outerContainer").length||jQuery(e.target).closest(".sby_lb-dataContainer").length||(void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),jQuery("#sby_lightboxOverlay, #sby_lightbox").fadeOut())}),this.$lightbox.hide(),jQuery("#sby_lightboxOverlay").on("click",function(t){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),"sby_lightbox"===i(t.target).attr("id")&&e.end(),!1}),this.$lightbox.find(".sby_lb-prev").on("click",function(){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),e.changeImage(0===e.currentImageIndex?e.album.length-1:e.currentImageIndex-1),!1}),this.$lightbox.find(".sby_lb-container").on("swiperight",function(){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),e.changeImage(0===e.currentImageIndex?e.album.length-1:e.currentImageIndex-1),!1}),this.$lightbox.find(".sby_lb-next").on("click",function(){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),e.changeImage(e.currentImageIndex===e.album.length-1?0:e.currentImageIndex+1),!1}),this.$lightbox.find(".sby_lb-container").on("swipeleft",function(){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),e.changeImage(e.currentImageIndex===e.album.length-1?0:e.currentImageIndex+1),!1}),this.$lightbox.find(".sby_lb-loader, .sby_lb-close").on("click",function(){return void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo(),e.end(),!1})},s.prototype.start=function(e){function s(e){a.album.push(t.getData(e))}var a=this,n=i(window);n.on("resize",i.proxy(this.sizeOverlay,this)),i("select, object, embed").css({visibility:"hidden"}),this.sizeOverlay(),this.album=[];var o,d=0,r=e.attr("data-sby-lightbox");if(r){o=i(e.prop("tagName")+'[data-sby-lightbox="'+r+'"]');for(var l=0;l<o.length;l=++l)s(i(o[l])),o[l]===e[0]&&(d=l)}else if("lightbox"===e.attr("rel"))s(e);else{o=i(e.prop("tagName")+'[rel="'+e.attr("rel")+'"]');for(var h=0;h<o.length;h=++h)s(i(o[h])),o[h]===e[0]&&(d=h)}var y=n.scrollTop()+this.options.positionFromTop,b=n.scrollLeft();this.$lightbox.css({top:y+"px",left:b+"px"}).fadeIn(this.options.fadeDuration),this.changeImage(d)},s.prototype.changeImage=function(e){var t=this;this.disableKeyboardNav();var s=this.$lightbox.find(".sby_lb-image");this.$overlay.fadeIn(this.options.fadeDuration),i(".sby_lb-loader").fadeIn("slow"),this.$lightbox.find(".sby_lb-image, .sby_lb-nav, .sby_lb-prev, .sby_lb-next, .sby_lb-dataContainer, .sby_lb-numbers, .sby_lb-caption").hide(),this.$outerContainer.addClass("animating");var a=new Image;a.onload=function(){var n,o,d,r,l,h;s.attr("src",t.album[e].link),i(a),s.width(a.width),s.height(a.height),t.options.fitImagesInViewport&&(h=i(window).width(),l=i(window).height(),r=h-t.containerLeftPadding-t.containerRightPadding-20-100,d=l-t.containerTopPadding-t.containerBottomPadding-150,(a.width>r||a.height>d)&&(a.width/r>a.height/d?(o=r,n=parseInt(a.height/(a.width/o),10),s.width(o),s.height(n)):(n=d,o=parseInt(a.width/(a.height/n),10),s.width(o),s.height(n)))),t.sizeContainer(s.width(),s.height())},a.src=this.album[e].link,this.currentImageIndex=e},s.prototype.sizeOverlay=function(){this.$overlay.width(i(window).width()).height(i(document).height())},s.prototype.sizeContainer=function(e,i){function t(){s.$lightbox.find(".sby_lb-dataContainer").width(o),s.$lightbox.find(".sby_lb-prevLink").height(d),s.$lightbox.find(".sby_lb-nextLink").height(d),s.showImage()}var s=this,a=this.$outerContainer.outerWidth(),n=this.$outerContainer.outerHeight(),o=e+this.containerLeftPadding+this.containerRightPadding,d=i+this.containerTopPadding+this.containerBottomPadding;a!==o||n!==d?this.$outerContainer.animate({width:o,height:d},this.options.resizeDuration,"swing",function(){t()}):t()},s.prototype.showImage=function(){this.$lightbox.find(".sby_lb-loader").hide(),this.$lightbox.find(".sby_lb-image").fadeIn("slow"),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()},s.prototype.updateNav=function(){var e=!1;try{document.createEvent("TouchEvent"),e=!!this.options.alwaysShowNavOnTouchDevices}catch(e){}this.$lightbox.find(".sby_lb-nav").show(),this.album.length>1&&(this.options.wrapAround?(e&&this.$lightbox.find(".sby_lb-prev, .sby_lb-next").css("opacity","1"),this.$lightbox.find(".sby_lb-prev, .sby_lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".sby_lb-prev").show(),e&&this.$lightbox.find(".sby_lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".sby_lb-next").show(),e&&this.$lightbox.find(".sby_lb-next").css("opacity","1"))))},s.prototype.updateDetails=function(){var i=this;jQuery("iframe.sby_lb-player-loaded").length&&(jQuery(".sby_lb-player-placeholder").replaceWith(jQuery("iframe.sby_lb-player-loaded")),jQuery("iframe.sby_lb-player-loaded").removeClass("sby_lb-player-loaded").show());var s=window.sby.feeds[this.album[this.currentImageIndex].feedIndex];if(t.beforePlayerSetup(this.$lightbox,this.album[this.currentImageIndex],this.currentImageIndex,this.album,s),sby_supports_video()&&(jQuery("#sby_lightbox").removeClass("sby_video_lightbox"),this.album[this.currentImageIndex].video.length)){var a="sby_lb-player";jQuery("#sby_lightbox").addClass("sby_video_lightbox");var n=this.album[this.currentImageIndex].video,o=sbyOptions.autoplay;if(void 0===window.sbyLightboxPlayer){var d={host:window.location.protocol+"//www.youtube-nocookie.com",videoId:n,playerVars:{modestbranding:1,rel:0,autoplay:o},events:{onStateChange:function(i){var t=i.target.getVideoData().video_id;s.afterStateChange(a,t,i,e("#"+a).closest(".sby_video_thumbnail_wrap"))}}};s.maybeAddCTA(a),window.sbyLightboxPlayer=new window.YT.Player(a,d)}else window.sbyLightboxPlayer.loadVideoById(n);t.afterPlayerSetup(this.$lightbox,this.album[this.currentImageIndex],this.currentImageIndex,this.album),this.album.length>1&&this.options.showImageNumberLabel?this.$lightbox.find(".sby_lb-number").text(this.options.albumLabel(this.currentImageIndex+1,this.album.length)).fadeIn("fast"):this.$lightbox.find(".sby_lb-number").hide(),this.$outerContainer.removeClass("animating"),this.$lightbox.find(".sby_lb-dataContainer").fadeIn(this.options.resizeDuration,function(){return i.sizeOverlay()}),setTimeout(function(){e("#sby_lightbox .sby_lb-player").css({height:e("#sby_lightbox .sby_lb-outerContainer").height()+"px",width:e("#sby_lightbox .sby_lb-outerContainer").width()+"px",top:0})},400)}},s.prototype.preloadNeighboringImages=function(){this.album.length>this.currentImageIndex+1&&((new Image).src=this.album[this.currentImageIndex+1].link);this.currentImageIndex>0&&((new Image).src=this.album[this.currentImageIndex-1].link)},s.prototype.enableKeyboardNav=function(){i(document).on("keyup.keyboard",i.proxy(this.keyboardAction,this))},s.prototype.disableKeyboardNav=function(){i(document).off(".keyboard")},s.prototype.keyboardAction=function(i){var t=event.keyCode,s=String.fromCharCode(t).toLowerCase();27===t||s.match(/x|o|c/)?(sby_supports_video()&&e("#sby_lightbox video.sby_video")[0].pause(),e("#sby_lightbox iframe").attr("src",""),this.end()):"p"===s||37===t?(0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1),sby_supports_video()&&e("#sby_lightbox video.sby_video")[0].pause(),e("#sby_lightbox iframe").attr("src","")):"n"!==s&&39!==t||(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0),void 0!==window.sbyLightboxPlayer&&YT.get("sby_lb-player").pauseVideo())},s.prototype.end=function(){this.disableKeyboardNav(),i(window).off("resize",this.sizeOverlay),this.$lightbox.fadeOut(this.options.fadeDuration),this.$overlay.fadeOut(this.options.fadeDuration),i("select, object, embed").css({visibility:"visible"})},s}();i(function(){var i=new s;new a(i),e(".sby_lightbox_action a").unbind().bind("click",function(){e(this).parent().find(".sby_lightbox_tooltip").toggle()})})}.call(this)},createFeeds:function(i){window.sby.createLightbox(),i.whenFeedsCreated(e(".sb_youtube").each(function(i){e(this).attr("data-sby-index",i+1),e(this).find(".sby_player").replaceWith('<div id="sby_player'+i+'"></div>');var t=e(this),a=void 0!==t.attr("data-sby-flags")?t.attr("data-sby-flags").split(","):[],o=void 0!==t.attr("data-options")?JSON.parse(t.attr("data-options")):{};if(a.indexOf("testAjax")>-1){window.sby.triggeredTest=!0;n({action:"sby_on_ajax_test_trigger"},function(e){console.log("did test")})}var d={cols:t.attr("data-cols"),colsmobile:"same"!==t.attr("data-colsmobile")?t.attr("data-colsmobile"):t.attr("data-cols"),num:t.attr("data-num"),imgRes:t.attr("data-res"),feedID:t.attr("data-feedid"),shortCodeAtts:t.attr("data-shortcode-atts"),resizingEnabled:-1===a.indexOf("resizeDisable"),imageLoadEnabled:-1===a.indexOf("imageLoadDisable"),debugEnabled:a.indexOf("debug")>-1,favorLocal:a.indexOf("favorLocal")>-1,ajaxPostLoad:a.indexOf("ajaxPostLoad")>-1,checkWPPosts:a.indexOf("checkWPPosts")>-1,cacheAll:a.indexOf("cacheAll")>-1,lightboxEnabled:void 0!==t.attr("data-sby-supports-lightbox"),autoMinRes:1,general:o};window.sby.feeds[i]=function(e,i,t){return new s(e,i,t)}(this,i,d),void 0!==window.sbyAPIReady&&(window.sby.feeds[i].playerAPIReady=!0),window.sby.feeds[i].setResizedImages(),window.sby.feeds[i].init();var r=jQuery.Event("sbyafterfeedcreate");r.feed=window.sby.feeds[i],jQuery(window).trigger(r)}))},afterFeedsCreated:function(){e(".sb_instagram_header").each(function(){var i=e(this);i.find(".sby_header_link").hover(function(){i.find(".sby_header_img_hover").addClass("sby_fade_in")},function(){i.find(".sby_header_img_hover").removeClass("sby_fade_in")})})},encodeHTML:function(e){return void 0===e?"":e.replace(/(>)/g,"&gt;").replace(/(<)/g,"&lt;").replace(/(&lt;br\/&gt;)/g,"<br>").replace(/(&lt;br&gt;)/g,"<br>")},urlDetect:function(e){return e.match(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)/g)}},s.prototype={init:function(){var i=this;e(this.el).find("#sby_mod_error").length&&e(this.el).prepend(e(this.el).find("#sby_mod_error")),this.settings.ajaxPostLoad?this.getNewPostSet():this.afterInitialImagesLoaded();var t,s=(t=0,function(e,i){clearTimeout(t),t=setTimeout(e,i)});jQuery(window).resize(function(){s(function(){i.afterResize()},500)})},initLayout:function(){this.initGalleryLayout(),this.initGrid()},initGalleryLayout:function(){var i=e(this.el),t=this;i.hasClass("sby_layout_gallery")&&i.find(".sby_player_outer_wrap").length&&(this.maybeRaiseSingleImageResolution(i.find(".sby_player_outer_wrap"),0,!0),i.find(".sby_player_outer_wrap .sby_video_thumbnail").off().click(function(i){i.preventDefault(),t.onThumbnailClick(e(this),!0)}),i.mouseenter(function(){t.canCreatePlayer()&&(i.find(".sby_player_outer_wrap iframe").length?void 0===t.player&&t.playerEagerLoaded()&&t.createPlayer("sby_player"+t.index):(i.addClass("sby_player_added").find(".sby_player_outer_wrap").addClass("sby_player_loading"),i.find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").show().removeClass("sby_hidden"),t.createPlayer("sby_player"+t.index)))}),window.sbySemiEagerLoading&&t.createPlayer("sby_player"+t.index))},initGrid:function(){if(window.sbySemiEagerLoading&&jQuery("#sby_lightbox").length){var i=this;playerID="sby_lb-player",jQuery("#sby_lightbox").addClass("sby_video_lightbox");var t=e(this.el).find("sby_item").first().attr("data-video-id"),s=sbyOptions.autoplay;if(void 0===window.sbyLightboxPlayer){var a={host:window.location.protocol+"//www.youtube-nocookie.com",videoId:t,playerVars:{modestbranding:1,rel:0,autoplay:s},events:{onStateChange:function(t){var s=t.target.getVideoData().video_id;i.afterStateChange(playerID,s,t,e("#"+playerID).closest(".sby_video_thumbnail_wrap"))}}};i.maybeAddCTA(playerID),window.sbyLightboxPlayer=new window.YT.Player(playerID,a)}}},createPlayer:function(i,t,s,a){var n=e(this.el),o=this;if(t=void 0!==t?t:this.getVideoID(n.find(".sby_item").first()),s=void 0!==s?s:0,void 0===a&&(a={host:window.location.protocol+"//www.youtube-nocookie.com",videoId:t,playerVars:{modestbranding:1,rel:0,autoplay:s}}),void 0===a.events&&(a.events={onReady:function(){n.find(".sby_player_outer_wrap").removeClass("sby_player_loading").find(".sby_video_thumbnail").css("z-index",-1).find(".sby_loader").hide().addClass("sby_hidden"),e("#"+i).length&&e("#"+i).closest(".sby_video_thumbnail_wrap").find(".sby_video_thumbnail").length&&e("#"+i).closest(".sby_video_thumbnail_wrap").find(".sby_video_thumbnail").fadeTo(0,"slow",function(){e(this).css("z-index",-1),e(this).find(".sby_loader").hide().addClass("sby_hidden"),e(this).closest(".sby_item").removeClass("sby_player_loading")})},onStateChange:function(s){n.find(".sby_player_outer_wrap").removeClass("sby_player_loading").find(".sby_video_thumbnail").css("z-index",-1).find(".sby_loader").hide().addClass("sby_hidden"),o.afterStateChange(i,t,s,e("#"+i).closest(".sby_video_thumbnail_wrap")),1===s.data&&void 0!==o.players&&n.find(".sby_item").each(function(){var i=o.getVideoID(e(this));e(this).find("iframe").length&&i!==t&&void 0!==o.players[i]&&"function"==typeof o.players[i].pauseVideo&&o.players[i].pauseVideo()})}}),window.sbyEagerLoading)var d=YT.get(i);else d=new window.YT.Player(i,a);return this.maybeAddCTA(i),n.hasClass("sby_layout_list")&&void 0===this.players[t]?this.players[t]=d:void 0===this.player&&(this.player=d),d},afterStateChange:function(e,i,t,s){},afterInitialImagesLoaded:function(){this.initLayout(),this.loadMoreButtonInit(),this.hideExtraItemsForWidth(),this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed(),this.afterFeedSet(),this.sizePlayer(),this.sizeItems()},afterResize:function(){this.setImageHeight(),this.setImageResolution(),this.maybeRaiseImageResolution(),this.setImageSizeClass()},afterLoadMoreClicked:function(e){e.find(".sby_loader").removeClass("sby_hidden"),e.find(".sby_btn_text").addClass("sby_hidden"),e.closest(".sb_youtube").find(".sby_num_diff_hide").addClass("sby_transition").removeClass("sby_num_diff_hide")},afterNewImagesLoaded:function(){var i=e(this.el),t=this;this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed(),this.sizePlayer(),this.sizeItems(),setTimeout(function(){i.find(".sby_loader").addClass("sby_hidden"),i.find(".sby_btn_text").removeClass("sby_hidden"),t.maybeRaiseImageResolution()},500)},beforeNewImagesRevealed:function(){this.setImageHeight(),this.maybeRaiseImageResolution(!0),this.setImageSizeClass()},afterFeedSet:function(){},sizePlayer:function(){var i=e(this.el),t=this;if(i.hasClass("sby_layout_gallery")){$playerThumbnail=i.find(".sby_player_item").find(".sby_player_video_thumbnail");var s=$playerThumbnail.innerWidth(),a=Math.floor(9*s/16);t.settings.narrowPlayer&&(a=Math.floor(3*s/4)),$playerThumbnail.css("height",a+"px").css("overflow","hidden")}else i.hasClass("sby_layout_list")&&i.find(".sby_item").each(function(){$playerThumbnail=e(this).find(".sby_item_video_thumbnail");var i=$playerThumbnail.innerWidth(),s=Math.floor(9*i/16);t.settings.narrowPlayer&&(s=Math.floor(3*i/4)),$playerThumbnail.css("height",s+"px").css("overflow","hidden")})},sizeItems:function(){var i=e(this.el);i.hasClass("sby_layout_list")||i.find(".sby_item").find(".sby_item_video_thumbnail").each(function(){if(e(this).hasClass("sby_imgLiquid_ready")){var i=e(this).innerWidth(),t=Math.floor(9*i/16);e(this).css("height",t+"px").css("overflow","hidden")}})},revealNewImages:function(){var i=e(this.el),t=this;this.applyImageLiquid(),"function"==typeof sbyCustomJS&&setTimeout(function(){sbyCustomJS()},100),i.find(".sby-screenreader").find("img").remove(),i.find(".sby_item.sby_new").each(function(i){var s=jQuery(this);s.find(".sby_video_thumbnail").hover(function(){jQuery(this).fadeTo(200,.85)},function(){jQuery(this).stop().fadeTo(500,1)}),videoID=s.attr("data-video-id"),window.sbyEagerLoading&&t.canCreatePlayer()&&e("#sby_player_"+videoID).length&&(player=new YT.Player("sby_player_"+videoID,{height:"100",width:"100",videoId:videoID,playerVars:{modestbranding:1,rel:0,autoplay:0},events:{onStateChange:function(e){e.target.getVideoData().video_id;1===e.data&&s.find(".sby_item").each(function(){var i=jQuery(this).attr("data-video-id");jQuery(this).find("iframe").length&&jQuery(e.target.a).attr("id")!==jQuery(this).find("iframe").attr("id")&&YT.get("sby_player_"+i).pauseVideo()})}}})),s.find(".sby_video_thumbnail").mouseenter(function(){t.onThumbnailEnter(e(this),!1)}),s.find(".sby_player_wrap").mouseleave(function(){t.onThumbnailLeave(e(this),!1)}),s.find(".sby_video_thumbnail").click(function(i){i.preventDefault(),t.onThumbnailClick(e(this),!1)}),t.settings.lightboxEnabled&&(s.find(".sby_video_thumbnail").attr("data-sby-lightbox",t.index),"undefined"!=typeof sbyOptions&&void 0!==sbyOptions.lightboxPlaceholder&&(t.settings.narrowPlayer?s.find(".sby_video_thumbnail").attr("href",sbyOptions.lightboxPlaceholderNarrow):s.find(".sby_video_thumbnail").attr("href",sbyOptions.lightboxPlaceholder))),t.afterItemRevealed(s),""===s.find(".sby_info_item").text().trim()&&s.find(".sby_info_item").addClass("sby_no_space")}),i.find(".sby_player_item").each(function(e){var i=jQuery(this);t.afterItemRevealed(i)}),setTimeout(function(){i.find(".sby_item.sby_new").removeClass("sby_new");var e=10;i.find(".sby_transition").length;i.find(".sby_transition").each(function(i){var t=jQuery(this);setTimeout(function(){t.removeClass("sby_transition")},e),e+=10})},500)},afterItemRevealed:function(){},afterNewImagesRevealed:function(){this.listenForVisibilityChange(),this.sendNeedsResizingToServer(),this.sendCheckWPPostsToServer(),this.settings.imageLoadEnabled||e(".sby_no_resraise").removeClass("sby_no_resraise");var i=e.Event("sbyafterimagesloaded");i.el=e(this.el),e(window).trigger(i)},setResizedImages:function(){e(this.el).find(".sby_resized_image_data").length&&void 0!==e(this.el).find(".sby_resized_image_data").attr("data-resized")&&0===e(this.el).find(".sby_resized_image_data").attr("data-resized").indexOf('{"')&&(this.resizedImages=JSON.parse(e(this.el).find(".sby_resized_image_data").attr("data-resized")),e(this.el).find(".sby_resized_image_data").remove())},sendNeedsResizingToServer:function(){var i=this;if(i.needsResizing.length>0&&i.settings.resizingEnabled){var t=e(this.el).find(".sby_item").length;n({action:"sby_resized_images_submit",needs_resizing:i.needsResizing,offset:t,feed_id:i.settings.feedID,atts:i.settings.shortCodeAtts},function(e){if(0===e.trim().indexOf("{")){var t=JSON.parse(e);i.settings.debugEnabled&&console.log(t)}})}},sendCheckWPPostsToServer:function(){var i=this;if(i.settings.checkWPPosts||i.settings.singleCheckPosts){var t=void 0!==i.settings.feedID?i.settings.feedID:"sby_single",s=i.mostRecentlyLoadedPosts;i.mostRecentlyLoadedPosts=[];n({action:"sby_check_wp_submit",feed_id:t,atts:i.settings.shortCodeAtts,offset:e(this.el).hasClass("sby_layout_carousel")?Math.floor(e(this.el).find(".sby_item").length/2-1):e(this.el).find(".sby_item").length,posts:s},function(e){if(0===e.trim().indexOf("{")){var t=JSON.parse(e);i.settings.debugEnabled&&console.log(t),i.afterSendCheckWPPostsToServer(t)}})}},afterSendCheckWPPostsToServer:function(e){},loadMoreButtonInit:function(){var i=e(this.el),t=this;i.find(".sby_footer .sby_load_btn").off().on("click",function(){t.afterLoadMoreClicked(jQuery(this)),t.getNewPostSet()})},getNewPostSet:function(){var i=e(this.el),t=this;n({action:"sby_load_more_clicked",offset:i.find(".sby_item").length,feed_id:t.settings.feedID,atts:t.settings.shortCodeAtts,current_resolution:t.imageResolution},function(s){if(0===s.trim().indexOf("{")){var a=JSON.parse(s),n=void 0!==a.feedStatus.checkWPPosts&&a.feedStatus.checkWPPosts;t.settings.debugEnabled&&console.log(a),t.settings.checkWPPosts=!!n,t.appendNewPosts(a.html),t.addResizedImages(a.resizedImages),t.settings.ajaxPostLoad?(t.settings.ajaxPostLoad=!1,t.afterInitialImagesLoaded()):t.afterNewImagesLoaded(),a.feedStatus.shouldPaginate?t.outOfPages=!1:(t.outOfPages=!0,i.find(".sby_load_btn").hide()),e(".sby_no_js").removeClass("sby_no_js")}})},appendNewPosts:function(i){var t=e(this.el);t.find(".sby_items_wrap .sby_item").length?t.find(".sby_items_wrap .sby_item").last().after(i):t.find(".sby_items_wrap").append(i)},addResizedImages:function(e){for(var i in e)this.resizedImages[i]=e[i]},setImageHeight:function(){},maybeRaiseSingleImageResolution:function(i,t,s){var a=this,n=a.getImageUrls(i),o=i.find(".sby_video_thumbnail > img").attr("src"),d=150;s=void 0!==s&&s;if(!i.hasClass("sby_no_resraise")){e.each(n,function(e,i){i===o&&(d=parseInt(e),s=!1)});var r=640;switch(a.settings.imgRes){case"thumb":r=120;break;case"medium":r=320;break;case"large":r=480;break;case"full":r=640;break;default:var l=Math.max(a.settings.autoMinRes,i.find(".sby_video_thumbnail").innerWidth());switch(a.getBestResolutionForAuto(l,1,e(this.el).find("sby_item").first())){case 480:r=480;break;case 320:r=320;break;case 120:r=120}}if(r>d||o===a.placeholderURL||s){if(a.settings.debugEnabled){var h=o===a.placeholderURL?"was placeholder":"too small";console.log("rais res for "+o,h)}var y=n[r];i.find(".sby_video_thumbnail > img").attr("src",y),i.find(".sby_video_thumbnail").hasClass("sby_imgLiquid_ready")&&i.find(".sby_video_thumbnail").css("background-image",'url("'+y+'")')}i.find("img").on("error",function(){if(e(this).hasClass("sby_img_error"))console.log("unfixed error "+e(this).attr("src"));else{if(e(this).addClass("sby_img_error"),e(this).attr("src").indexOf("i.ytimg.com")>-1)a.settings.favorLocal=!0,a.getImageUrls(e(this).closest(".sby_item"))[640];else void 0!==e(this).closest(".sby_video_thumbnail").attr("data-full-res")||e(this).closest(".sby_video_thumbnail").attr("href");setTimeout(function(){a.afterResize()},1500)}})}},maybeRaiseImageResolution:function(i){var t=this,s=void 0!==i&&!0===i?".sby_item.sby_new":".sby_item",a=!t.isInitialized;e(t.el).find(s).each(function(i){!e(this).hasClass("sby_num_diff_hide")&&e(this).find(".sby_video_thumbnail").length&&void 0!==e(this).find(".sby_video_thumbnail").attr("data-img-src-set")&&t.maybeRaiseSingleImageResolution(e(this),i,a)}),t.isInitialized=!0},getBestResolutionForAuto:function(i,t,s){(isNaN(t)||t<1)&&(t=1);var a=i*t,n=10*Math.ceil(a/10),o=[120,320,480,640];if(s.hasClass("sby_highlighted")&&(n*=2),-1===o.indexOf(parseInt(n))){var d=!1;e.each(o,function(e,i){i>parseInt(n)&&!d&&(n=i,d=!0)})}return n},hideExtraItemsForWidth:function(){if("carousel"!==this.layout){var i=e(this.el),t=void 0!==i.attr("data-num")&&""!==i.attr("data-num")?parseInt(i.attr("data-num")):1,s=void 0!==i.attr("data-nummobile")&&""!==i.attr("data-nummobile")?parseInt(i.attr("data-nummobile")):t;i.hasClass(".sby_layout_carousel")||(e(window).width()<480?s<i.find(".sby_item").length&&i.find(".sby_item").slice(s-i.find(".sby_item").length).addClass("sby_num_diff_hide"):t<i.find(".sby_item").length&&i.find(".sby_item").slice(t-i.find(".sby_item").length).addClass("sby_num_diff_hide"))}},setImageSizeClass:function(){var i=e(this.el);i.removeClass("sby_small sby_medium");var t=i.innerWidth(),s=parseInt(i.find(".sby_items_wrap").outerWidth()-i.find(".sby_items_wrap").width())/2,a=this.getColumnCount(),n=(t-s*(a+2))/a;n>120&&n<240?i.addClass("sby_medium"):n<=120&&i.addClass("sby_small")},setMinImageWidth:function(){e(this.el).find(".sby_item .sby_video_thumbnail").first().length?this.minImageWidth=e(this.el).find(".sby_item .sby_video_thumbnail").first().innerWidth():this.minImageWidth=150},setImageResolution:function(){if("auto"===this.settings.imgRes)this.imageResolution="auto";else switch(this.settings.imgRes){case"thumb":this.imageResolution=150;break;case"medium":this.imageResolution=320;break;default:this.imageResolution=640}},getImageUrls:function(e){var i=JSON.parse(e.find(".sby_video_thumbnail").attr("data-img-src-set").replace(/\\\//g,"/")),t=e.attr("id").replace("sby_","").replace("player_","");if(void 0!==this.resizedImages[t]&&"video"!==this.resizedImages[t]&&"pending"!==this.resizedImages[t]&&"error"!==this.resizedImages[t].id&&"video"!==this.resizedImages[t].id&&"pending"!==this.resizedImages[t].id){if(void 0!==this.resizedImages[t].sizes){var s=[];void 0!==this.resizedImages[t].sizes.full&&(s.push(640),i[640]=sbyOptions.resized_url+this.resizedImages[t].id+"full.jpg",e.find(".sby_link_area").attr("href",sbyOptions.resized_url+this.resizedImages[t].id+"full.jpg"),e.find(".sby_video_thumbnail").attr("data-full-res",sbyOptions.resized_url+this.resizedImages[t].id+"full.jpg")),void 0!==this.resizedImages[t].sizes.low&&(s.push(320),i[320]=sbyOptions.resized_url+this.resizedImages[t].id+"low.jpg",this.settings.favorLocal&&void 0===this.resizedImages[t].sizes.full&&(e.find(".sby_link_area").attr("href",sbyOptions.resized_url+this.resizedImages[t].id+"low.jpg"),e.find(".sby_video_thumbnail").attr("data-full-res",sbyOptions.resized_url+this.resizedImages[t].id+"low.jpg"))),void 0!==this.resizedImages[t].sizes.thumb&&(s.push(150),i[150]=sbyOptions.resized_url+this.resizedImages[t].id+"thumb.jpg"),this.settings.favorLocal&&(-1===s.indexOf(640)&&s.indexOf(320)>-1&&(i[640]=sbyOptions.resized_url+this.resizedImages[t].id+"low.jpg"),-1===s.indexOf(320)&&(s.indexOf(640)>-1?i[320]=sbyOptions.resized_url+this.resizedImages[t].id+"full.jpg":s.indexOf(150)>-1&&(i[320]=sbyOptions.resized_url+this.resizedImages[t].id+"thumb.jpg")),-1===s.indexOf(150)&&(s.indexOf(320)>-1?i[150]=sbyOptions.resized_url+this.resizedImages[t].id+"low.jpg":s.indexOf(640)>-1&&(i[150]=sbyOptions.resized_url+this.resizedImages[t].id+"full.jpg")))}}else(void 0===this.resizedImages[t]||void 0!==this.resizedImages[t].id&&"pending"!==this.resizedImages[t].id&&"error"!==this.resizedImages[t].id)&&this.addToNeedsResizing(t);return i},getVideoID:function(i){if(i.hasClass("sby_item")||i.hasClass("sby_player_item")){if(void 0!==i.find(".sby_video_thumbnail").attr("data-video-id"))return i.find(".sby_video_thumbnail").attr("data-video-id")}else if(i.closest("sby_item").length||i.closest("sby_player_item").length){var t=i.closest("sby_item").length?i.closest("sby_item"):i.closest("sby_player_item");if(void 0!==t.find(".sby_video_thumbnail").attr("data-video-id"))return t.find(".sby_video_thumbnail").attr("data-video-id")}else{if(i.hasClass("sb_youtube"))return i.find(".sby_item").first().find(".sby_video_thumbnail").attr("data-video-id");if(e(this.el).find(".sby_video_thumbnail").first().length&&void 0!==e(this.el).find(".sby_video_thumbnail").first().attr("data-video-id"))return e(this.el).find(".sby_video_thumbnail").first().attr("data-video-id")}return""},getAvatarUrl:function(e,i){if(""===e)return"";var t=this.settings.general.avatars;return"local"===(i=void 0!==i?i:"local")?void 0!==t["LCL"+e]&&1===parseInt(t["LCL"+e])?sbyOptions.resized_url+e+".jpg":void 0!==t[e]?t[e]:"":void 0!==t[e]?t[e]:void 0!==t["LCL"+e]&&1===parseInt(t["LCL"+e])?sbyOptions.resized_url+e+".jpg":""},addToNeedsResizing:function(e){-1===this.needsResizing.indexOf(e)&&this.needsResizing.push(e)},applyImageLiquid:function(){var t=e(this.el);i(),"function"==typeof t.find(".sby_player_item").sby_imgLiquid&&(t.find(".sby_player_item").length&&t.find(".sby_player_item .sby_player_video_thumbnail").sby_imgLiquid({fill:!0}),t.find(".sby_item .sby_item_video_thumbnail").sby_imgLiquid({fill:!0}))},listenForVisibilityChange:function(){var i,t,s,a=this;i=jQuery,t={callback:function(){},runOnLoad:!0,frequency:100,sbyPreviousVisibility:null},s={sbyCheckVisibility:function(e,i){if(jQuery.contains(document,e[0])){var t=i.sbyPreviousVisibility,a=e.is(":visible");i.sbyPreviousVisibility=a,null==t?i.runOnLoad&&i.callback(e,a):t!==a&&i.callback(e,a),setTimeout(function(){s.sbyCheckVisibility(e,i)},i.frequency)}}},i.fn.sbyVisibilityChanged=function(e){var a=i.extend({},t,e);return this.each(function(){s.sbyCheckVisibility(i(this),a)})},"function"==typeof e(this.el).filter(":hidden").sbyVisibilityChanged&&e(this.el).filter(":hidden").sbyVisibilityChanged({callback:function(e,i){a.afterResize()},runOnLoad:!1})},getColumnCount:function(){var i=e(this.el),t=this.settings.cols,s=this.settings.colsmobile,a=t;return sbyWindowWidth=window.innerWidth,i.hasClass("sby_mob_col_auto")?(sbyWindowWidth<640&&parseInt(t)>2&&parseInt(t)<7&&(a=2),sbyWindowWidth<640&&parseInt(t)>6&&parseInt(t)<11&&(a=4),sbyWindowWidth<=480&&parseInt(t)>2&&(a=1)):sbyWindowWidth<=480&&(a=s),parseInt(a)},onThumbnailClick:function(i,t,s){if(this.canCreatePlayer()){var a=e(this.el);if(a.hasClass("sby_layout_gallery"))if(a.addClass("sby_player_added").find(".sby_player_outer_wrap").addClass("sby_player_loading"),a.find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").show().removeClass("sby_hidden"),a.find(".sby_player_outer_wrap iframe").length)if(t){s=void 0===s?this.getVideoID(a.find(".sby_item").first()):s;this.playVideoInPlayer(s)}else{s=void 0===s?this.getVideoID(i.closest(".sby_item")):s;this.changePlayerInfo(i.closest(".sby_item")),this.playVideoInPlayer(s),this.afterVideoChanged()}else if(t)this.createPlayer("sby_player"+this.index);else{var s=void 0===s?this.getVideoID(i.closest(".sby_item")):s;this.createPlayer("sby_player"+this.index,s)}else if(e(this.el).hasClass("sby_layout_grid")||e(this.el).hasClass("sby_layout_carousel")){var n=i.closest(".sby_item");s=void 0===s?this.getVideoID(n):s;this.playVideoInPlayer(s),this.afterVideoChanged()}else if(e(this.el).hasClass("sby_layout_list")){n=i.closest(".sby_item"),s=void 0===s?this.getVideoID(n):s;n.length&&!n.find("iframe").length?(n.find(".sby_loader").show().removeClass("sby_hidden"),n.addClass("sby_player_loading sby_player_loaded"),this.createPlayer("sby_player_"+s,s)):(this.playVideoInPlayer(s,n.attr("data-video-id")),this.afterVideoChanged())}}},onThumbnailEnter:function(i){if(this.canCreatePlayer()&&e(this.el).hasClass("sby_layout_list")){var t=i.closest(".sby_item"),s=this.getVideoID(t);t.find("iframe").length||(t.find(".sby_loader").show().removeClass("sby_hidden"),t.addClass("sby_player_loading sby_player_loaded"),this.createPlayer("sby_player_"+s,s,0))}},onThumbnailLeave:function(e){},changePlayerInfo:function(e){},playerEagerLoaded:function(){if(void 0!==this.player||e(this.el).hasClass("sby_player_loaded"))return!0},canCreatePlayer:function(){return!e(this.el).find("#sby_blank").length&&(this.playerEagerLoaded()||this.playerAPIReady&&this.consentGiven||window.sbyAPIReady&&this.consentGiven)},playVideoInPlayer:function(e,i){void 0!==this.player&&void 0!==this.player.loadVideoById?this.player.loadVideoById(e):void 0!==window.sbyLightboxPlayer&&void 0!==window.sbyLightboxPlayer.loadVideoById?window.sbyLightboxPlayer.loadVideoById(e):void 0!==i&&void 0!==this.players&&void 0!==this.players[i]&&void 0!==this.players[i].loadVideoById&&this.players[i].loadVideoById(e)},afterVideoChanged:function(){e(this.el).hasClass("sby_layout_gallery")&&(e(this.el).find(".sby_player_outer_wrap").removeClass("sby_player_loading"),e(this.el).find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").hide().addClass("sby_hidden"),e(window).width()<480&&e("html, body").animate({scrollTop:e(this.el).find(".sby_player_outer_wrap").offset().top},300))},maybeAddCTA:function(e,i){}},a.prototype={getData:function(e){return{feedIndex:parseInt(e.closest(".sb_youtube").attr("data-sby-index")-1),link:e.attr("href"),video:e.attr("data-video-id")}},template:function(){return"<div id='sby_lightboxOverlay' class='sby_lightboxOverlay'></div><div id='sby_lightbox' class='sby_lightbox'><div class='sby_lb-outerContainer'><div class='sby_lb-container'><img class='sby_lb-image' alt='Lightbox image placeholder' src='' /><div class='sby_lb-player sby_lb-player-placeholder' id='sby_lb-player'></div><div class='sby_lb-nav'><a class='sby_lb-prev' href='#' ><p class='sby-screenreader'>Previous Slide</p><span></span></a><a class='sby_lb-next' href='#' ><p class='sby-screenreader'>Next Slide</p><span></span></a></div><div class='sby_lb-loader'><a class='sby_lb-cancel'></a></div></div></div><div class='sby_lb-dataContainer'><div class='sby_lb-data'><div class='sby_lb-details'><div class='sby_lb-caption'></div><div class='sby_lb-info'><div class='sby_lb-number'></div></div></div><div class='sby_lb-closeContainer'><a class='sby_lb-close'></a></div></div></div></div>"},beforePlayerSetup:function(e,i,t,s,a){},afterPlayerSetup:function(e,i,t,s){},afterResize:function(){var i=e("#sby_lightbox .sby_lb-player").height();if(i>100){var t=e("#sby_lightbox .sby_lb-outerContainer").height()-i;t>10&&e("#sby_lightbox .sby_lb-player").css("top",t/2)}},pausePlayer:function(){void 0!==YT.get("sby_lb-player")&&"function"==typeof YT.get("sby_lb-player").pauseVideo?YT.get("sby_lb-player").pauseVideo():void 0!==window.sbyLightboxPlayer&&"function"==typeof window.sbyLightboxPlayer.pauseVideo&&window.sbyLightboxPlayer.pauseVideo()}},window.sby_init=function(){window.sby=new t,window.sby.createPage(window.sby.createFeeds,{whenFeedsCreated:window.sby.afterFeedsCreated})}}(jQuery),void 0===window.sbyEagerLoading&&(window.sbyEagerLoading=void 0!==window.sbyOptions&&window.sbyOptions.eagerload,jQuery("div[data-vc-video-bg]").length&&(window.sbyEagerLoading=!0)),void 0===window.sbySemiEagerLoading&&(window.sbySemiEagerLoading=void 0!==window.sbyOptions&&window.sbyOptions.semiEagerload,(jQuery("div[data-vc-video-bg]").length||window.sbyEagerLoading)&&(window.sbySemiEagerLoading=!1)),jQuery(document).ready(function(e){window.sbySemiEagerLoading||sby_init()})}if(window.sbySemiEagerLoading){var sbyYScriptId="sby-youtube-api",sbyYScript=document.getElementById(sbyYScriptId);if(null===sbyYScript){var tag=document.createElement("script"),firstScript=document.getElementsByTagName("script")[0];tag.src="https://www.youtube.com/iframe_api",tag.id=sbyYScriptId,firstScript.parentNode.insertBefore(tag,firstScript)}}window.onYouTubeIframeAPIReady=function(){var e=document.getElementsByClassName("sb_youtube").length;if(e>0){if(window.sbySemiEagerLoading){if(void 0!==window.sby)for(var i=0;i<e;i++)window.sby.feeds[i].playerAPIReady=!0;else window.sbyAPIReady=!0;sby_init()}else if(jQuery(".sb_youtube").each(function(e){var i=jQuery(this);i.find(".sby_live_player").length&&(player=new YT.Player(i.find(".sby_live_player").attr("id"),{events:{onReady:function(){i.find(".sby_live_player").hide(),i.find(".sby_item").remove();var t=YT.get(i.find(".sby_live_player").attr("id")).getVideoData().video_id;i.find(".sby_player_video_thumbnail").attr("data-video-id",t).css("z-index",-1);i.find(".sby_item").length;var s={action:"sby_live_retrieve",video_id:t,feed_id:i.attr("data-feedid"),atts:i.attr("data-shortcode-atts")};jQuery.ajax({url:sbyOptions.adminAjaxUrl,type:"post",data:s,success:function(t){if(0===t.trim().indexOf("{")){var s=window.sby.feeds[e],a=JSON.parse(t),n=void 0!==a.feedStatus.checkWPPosts&&a.feedStatus.checkWPPosts;s.settings.debugEnabled&&console.log(a),s.settings.checkWPPosts=!!n,s.appendNewPosts(a.html),s.addResizedImages(a.resizedImages),s.afterInitialImagesLoaded(),a.feedStatus.shouldPaginate?s.outOfPages=!1:(s.outOfPages=!0,i.find(".sby_load_btn").hide()),jQuery(".sby_no_js").removeClass("sby_no_js"),i.find(".sby_live_player").remove(),i.hasClass("sby_layout_gallery")&&s.createPlayer("sby_player"+s.index),i.find(".sby_player_item").css("opacity",1),i.find(".sby_item").css("opacity",1),i.find(".sby_player_loading").removeClass("sby_player_loading"),i.hasClass("sby_layout_list")&&i.find(".sby_item_video_thumbnail").mouseenter(function(){jQuery(this).css("z-index",-1)})}}})}}}))}),window.sbyEagerLoading){var t=!1,s=!1;jQuery(".sb_youtube").each(function(e){var i=jQuery(this);i.hasClass("sby_layout_list")?(jQuery(this).addClass("sby_player_loaded"),i.find(".sby_item").each(function(){videoID=jQuery(this).attr("data-video-id"),player=new YT.Player("sby_player_"+videoID,{height:"100",width:"100",videoId:videoID,playerVars:{modestbranding:1,rel:0,autoplay:s},events:{onStateChange:function(e){e.target.getVideoData().video_id;1===e.data&&i.find(".sby_item").each(function(){var e=jQuery(this).attr("data-video-id");jQuery(this).find("iframe").length&&e!==jQuery(this).find("iframe").attr("id").replace("sby_player_","")&&YT.get("sby_player_"+e).pauseVideo()})}}})})):i.hasClass("sby_layout_gallery")?(jQuery(this).addClass("sby_player_loaded"),player=new YT.Player("sby_player"+e,{height:"100",width:"100",videoId:jQuery(this).find(".sby_item").first().attr("data-video-id"),playerVars:{modestbranding:1,rel:0,autoplay:s},events:{onStateChange:function(e){e.target.getVideoData().video_id;1===e.data&&i.find(".sby_item").each(function(){var i=jQuery(this).attr("data-video-id");jQuery(this).find("iframe").length&&jQuery(e.target.a).attr("id")!==jQuery(this).find("iframe").attr("id")&&YT.get("sby_player_"+i).pauseVideo()})}}})):t=!0})}else if(void 0!==window.sby)for(i=0;i<e;i++)window.sby.feeds[i].playerAPIReady=!0;else window.sbyAPIReady=!0;t&&(jQuery("#sby_lb-player").length||jQuery(".sb_youtube").first().append('<div class="sby_lb-player-loaded sby_lb-player" id="sby_lb-player" style="display: none;"></div>'),player=new YT.Player("sby_lb-player",{height:"100",width:"100",videoId:jQuery(this).find(".sby_item").first().attr("data-video-id"),playerVars:{modestbranding:1,rel:0,autoplay:s}}),window.sbyLightboxPlayer=player)}};
languages/youtube-feed-de_DE.mo DELETED
Binary file
languages/youtube-feed-de_DE.po DELETED
@@ -1,875 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: \n"
4
- "POT-Creation-Date: 2019-11-29 14:34-0600\n"
5
- "PO-Revision-Date: 2019-11-29 14:40-0600\n"
6
- "Language-Team: \n"
7
- "MIME-Version: 1.0\n"
8
- "Content-Type: text/plain; charset=UTF-8\n"
9
- "Content-Transfer-Encoding: 8bit\n"
10
- "X-Generator: Poedit 2.2.4\n"
11
- "X-Poedit-Basepath: ..\n"
12
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
13
- "X-Poedit-KeywordsList: __;_e;esc_html__;esc_html_e;esc_attr_e;esc_attr__\n"
14
- "Last-Translator: \n"
15
- "Language: de_DE\n"
16
- "X-Poedit-SearchPath-0: .\n"
17
-
18
- #: inc/admin/admin-functions.php:17 inc/admin/templates/configure.php:1
19
- msgid "Configure"
20
- msgstr "Konfigurieren"
21
-
22
- #: inc/admin/admin-functions.php:20
23
- msgid "Customize your feed"
24
- msgstr ""
25
-
26
- #: inc/admin/admin-functions.php:23
27
- msgid "Customize"
28
- msgstr "Anpassen"
29
-
30
- #: inc/admin/admin-functions.php:26 inc/admin/templates/main.php:57
31
- msgid "Display your feed"
32
- msgstr ""
33
-
34
- #: inc/admin/admin-functions.php:29
35
- msgid "Display"
36
- msgstr "Anzeige"
37
-
38
- #: inc/admin/admin-functions.php:34
39
- msgid "Support"
40
- msgstr ""
41
-
42
- #: inc/admin/admin-functions.php:58
43
- msgid "Channel"
44
- msgstr ""
45
-
46
- #: inc/admin/admin-functions.php:60
47
- msgid "Eg: UCNrD5PWitIbhVK8ID or smashballoon."
48
- msgstr ""
49
-
50
- #: inc/admin/admin-functions.php:61
51
- msgid "Show the latest videos from a YouTube channel."
52
- msgstr ""
53
-
54
- #: inc/admin/admin-functions.php:71
55
- msgid "List"
56
- msgstr ""
57
-
58
- #: inc/admin/admin-functions.php:73
59
- msgid "A single columns of videos that play when clicked."
60
- msgstr ""
61
-
62
- #: inc/admin/admin-functions.php:77
63
- msgid "Grid"
64
- msgstr ""
65
-
66
- #: inc/admin/admin-functions.php:79
67
- msgid ""
68
- "Video thumbnails are displayed in columns and play in a lightbox when "
69
- "clicked."
70
- msgstr ""
71
-
72
- #: inc/admin/admin-functions.php:84 inc/admin/admin-functions.php:110
73
- msgid "Columns"
74
- msgstr ""
75
-
76
- #: inc/admin/admin-functions.php:93 inc/admin/admin-functions.php:119
77
- msgid "Mobile Columns"
78
- msgstr ""
79
-
80
- #: inc/admin/admin-functions.php:103
81
- msgid "Gallery"
82
- msgstr ""
83
-
84
- #: inc/admin/admin-functions.php:105
85
- msgid ""
86
- "One large video that plays when clicked with thumbnails underneath to play "
87
- "more."
88
- msgstr ""
89
-
90
- #: inc/admin/admin-functions.php:134
91
- msgid "Configure Options"
92
- msgstr ""
93
-
94
- #: inc/admin/admin-functions.php:138
95
- msgid "Customize Options"
96
- msgstr ""
97
-
98
- #: inc/admin/admin-functions.php:142
99
- msgid "Layout Options"
100
- msgstr ""
101
-
102
- #: inc/admin/admin-functions.php:146
103
- msgid "Header Options"
104
- msgstr ""
105
-
106
- #: inc/admin/admin-functions.php:150
107
- msgid "\"Load More\" Button Options"
108
- msgstr ""
109
-
110
- #: inc/admin/admin-functions.php:154
111
- msgid "\"Subscribe\" Button Options"
112
- msgstr ""
113
-
114
- #: inc/admin/admin-functions.php:284
115
- msgid ""
116
- "Could not connect your account. Please check to make sure this is a valid "
117
- "access token for the Smash Balloon YouTube App."
118
- msgstr ""
119
-
120
- #: inc/admin/class-sbspf-admin.php:102
121
- msgid "Feed Type"
122
- msgstr ""
123
-
124
- #: inc/admin/class-sbspf-admin.php:106
125
- msgid "Display videos from a YouTube channel (channel)"
126
- msgstr ""
127
-
128
- #: inc/admin/class-sbspf-admin.php:117
129
- msgid "Preserve settings when plugin is removed"
130
- msgstr ""
131
-
132
- #: inc/admin/class-sbspf-admin.php:119
133
- msgid ""
134
- "When removing the plugin your settings are automatically erased. Checking "
135
- "this box will prevent any settings from being deleted. This means that you "
136
- "can uninstall and reinstall the plugin without losing your settings."
137
- msgstr ""
138
-
139
- #: inc/admin/class-sbspf-admin.php:128
140
- msgid "Check for new posts"
141
- msgstr ""
142
-
143
- #: inc/admin/class-sbspf-admin.php:136
144
- msgid "General"
145
- msgstr ""
146
-
147
- #: inc/admin/class-sbspf-admin.php:162
148
- msgid "Width of Feed"
149
- msgstr ""
150
-
151
- #: inc/admin/class-sbspf-admin.php:166
152
- msgid "The width of your feed. Any number with a unit like \"px\" or \"%\"."
153
- msgstr ""
154
-
155
- #: inc/admin/class-sbspf-admin.php:174
156
- msgid "Set to be 100% width on mobile?"
157
- msgstr ""
158
-
159
- #: inc/admin/class-sbspf-admin.php:177
160
- #, php-format
161
- msgid ""
162
- "If you set a width on the feed then this will be used on mobile as well as "
163
- "desktop. Check this setting to set the feed width to be 100% on mobile so "
164
- "that it is responsive."
165
- msgstr ""
166
-
167
- #: inc/admin/class-sbspf-admin.php:199
168
- msgid "Height of Feed"
169
- msgstr ""
170
-
171
- #: inc/admin/class-sbspf-admin.php:203
172
- msgid "The height of your feed. Any number with a unit like \"px\" or \"em\"."
173
- msgstr ""
174
-
175
- #: inc/admin/class-sbspf-admin.php:216
176
- msgid "Background Color"
177
- msgstr ""
178
-
179
- #: inc/admin/class-sbspf-admin.php:220
180
- msgid "Background color for the feed. Any hex color code."
181
- msgstr ""
182
-
183
- #: inc/admin/class-sbspf-admin.php:227
184
- msgid "Layout"
185
- msgstr ""
186
-
187
- #: inc/admin/class-sbspf-admin.php:238
188
- msgid "Layout Type"
189
- msgstr ""
190
-
191
- #: inc/admin/class-sbspf-admin.php:243
192
- msgid "How your posts are display visually."
193
- msgstr ""
194
-
195
- #: inc/admin/class-sbspf-admin.php:383
196
- msgid "Yes"
197
- msgstr ""
198
-
199
- #: inc/admin/class-sbspf-admin.php:534
200
- msgid "Connect an account above"
201
- msgstr ""
202
-
203
- #: inc/admin/class-sbspf-admin.php:565 inc/admin/class-sby-admin.php:354
204
- msgid "When the page loads"
205
- msgstr ""
206
-
207
- #: inc/admin/class-sbspf-admin.php:567 inc/admin/class-sby-admin.php:356
208
- #, php-format
209
- msgid ""
210
- "Your %s data is temporarily cached by the plugin in your WordPress database. "
211
- "There are two ways that you can set the plugin to check for new data:"
212
- "<br><br>\n"
213
- " <b>1. When the page loads</b><br>Selecting this option means "
214
- "that when the cache expires then the plugin will check %s for new posts the "
215
- "next time that the feed is loaded. You can choose how long this data should "
216
- "be cached for. If you set the time to 60 minutes then the plugin will clear "
217
- "the cached data after that length of time, and the next time the page is "
218
- "viewed it will check for new data. <b>Tip:</b> If you're experiencing an "
219
- "issue with the plugin not updating automatically then try enabling the "
220
- "setting labeled <b>'Force cache to clear on interval'</b> which is located "
221
- "on the 'Customize' tab.<br><br>\n"
222
- " <b>2. In the background</b><br>Selecting this option means "
223
- "that the plugin will check for new data in the background so that the feed "
224
- "is updated behind the scenes. You can select at what time and how often the "
225
- "plugin should check for new data using the settings below. <b>Please note</"
226
- "b> that the plugin will initially check for data from Instagram when the "
227
- "page first loads, but then after that will check in the background on the "
228
- "schedule selected - unless the cache is cleared."
229
- msgstr ""
230
-
231
- #: inc/admin/class-sbspf-admin.php:573 inc/admin/class-sby-admin.php:362
232
- msgid "Every"
233
- msgstr ""
234
-
235
- #: inc/admin/class-sbspf-admin.php:576 inc/admin/class-sby-admin.php:365
236
- msgid "Minutes"
237
- msgstr ""
238
-
239
- #: inc/admin/class-sbspf-admin.php:577 inc/admin/class-sby-admin.php:366
240
- msgid "Hours"
241
- msgstr ""
242
-
243
- #: inc/admin/class-sbspf-admin.php:578 inc/admin/class-sby-admin.php:367
244
- msgid "Days"
245
- msgstr ""
246
-
247
- #: inc/admin/class-sbspf-admin.php:580 inc/admin/class-sbspf-admin.php:847
248
- #: inc/admin/class-sby-admin.php:369
249
- msgid "What does this mean?"
250
- msgstr ""
251
-
252
- #: inc/admin/class-sbspf-admin.php:581 inc/admin/class-sby-admin.php:370
253
- #, php-format
254
- msgid ""
255
- "Your %s posts are temporarily cached by the plugin in your WordPress "
256
- "database. You can choose how long the posts should be cached for. If you set "
257
- "the time to 1 hour then the plugin will clear the cache after that length of "
258
- "time and check %s for posts again."
259
- msgstr ""
260
-
261
- #: inc/admin/class-sbspf-admin.php:586 inc/admin/class-sby-admin.php:375
262
- msgid "In the background"
263
- msgstr ""
264
-
265
- #: inc/admin/class-sbspf-admin.php:591 inc/admin/class-sby-admin.php:380
266
- #: youtube-feed.php:180
267
- msgid "Every 30 minutes"
268
- msgstr ""
269
-
270
- #: inc/admin/class-sbspf-admin.php:592 inc/admin/class-sby-admin.php:381
271
- msgid "Every hour"
272
- msgstr ""
273
-
274
- #: inc/admin/class-sbspf-admin.php:593 inc/admin/class-sby-admin.php:382
275
- msgid "Every 12 hours"
276
- msgstr ""
277
-
278
- #: inc/admin/class-sbspf-admin.php:594 inc/admin/class-sby-admin.php:383
279
- msgid "Every 24 hours"
280
- msgstr ""
281
-
282
- #: inc/admin/class-sbspf-admin.php:598 inc/admin/class-sby-admin.php:387
283
- msgid "at"
284
- msgstr ""
285
-
286
- #: inc/admin/class-sbspf-admin.php:615 inc/admin/class-sby-admin.php:404
287
- msgid "AM"
288
- msgstr ""
289
-
290
- #: inc/admin/class-sbspf-admin.php:616 inc/admin/class-sby-admin.php:405
291
- msgid "PM"
292
- msgstr ""
293
-
294
- #: inc/admin/class-sbspf-admin.php:628 inc/admin/class-sby-admin.php:417
295
- msgid "every 30 minutes"
296
- msgstr ""
297
-
298
- #: inc/admin/class-sbspf-admin.php:629 inc/admin/class-sby-admin.php:418
299
- msgid "every 12 hours"
300
- msgstr ""
301
-
302
- #: inc/admin/class-sbspf-admin.php:631 inc/admin/class-sby-admin.php:420
303
- msgid "Next check"
304
- msgstr ""
305
-
306
- #: inc/admin/class-sbspf-admin.php:631 inc/admin/class-sby-admin.php:420
307
- msgid ""
308
- "Note: Saving the settings on this page will clear the cache and reset this "
309
- "schedule"
310
- msgstr ""
311
-
312
- #: inc/admin/class-sbspf-admin.php:633 inc/admin/class-sby-admin.php:422
313
- msgid "Nothing currently scheduled"
314
- msgstr ""
315
-
316
- #: inc/admin/class-sbspf-admin.php:666
317
- msgid "Click for shortcode option"
318
- msgstr ""
319
-
320
- #: inc/admin/class-sby-admin.php:19
321
- msgid "Number of Videos"
322
- msgstr ""
323
-
324
- #: inc/admin/class-sby-admin.php:20
325
- msgid "Number of videos to show initially."
326
- msgstr ""
327
-
328
- #: inc/admin/class-sby-admin.php:24
329
- msgid "The number of videos in the feed"
330
- msgstr ""
331
-
332
- #: inc/admin/class-sby-admin.php:47
333
- msgid "Spacing between videos"
334
- msgstr ""
335
-
336
- #: inc/admin/class-sby-admin.php:51
337
- msgid ""
338
- "The spacing/padding around the videos in the feed. Any number with a unit "
339
- "like \"px\" or \"em\"."
340
- msgstr ""
341
-
342
- #: inc/admin/class-sby-admin.php:60
343
- msgid "Header"
344
- msgstr ""
345
-
346
- #: inc/admin/class-sby-admin.php:70
347
- msgid "Show Header"
348
- msgstr ""
349
-
350
- #: inc/admin/class-sby-admin.php:75
351
- msgid "Include a header for this feed."
352
- msgstr ""
353
-
354
- #: inc/admin/class-sby-admin.php:85
355
- msgid "Show Channel Description"
356
- msgstr ""
357
-
358
- #: inc/admin/class-sby-admin.php:90
359
- msgid "Include the channel description in the header."
360
- msgstr ""
361
-
362
- #: inc/admin/class-sby-admin.php:97
363
- msgid "\"Load More\" Button"
364
- msgstr ""
365
-
366
- #: inc/admin/class-sby-admin.php:107
367
- msgid "Show \"Load More\" Button"
368
- msgstr ""
369
-
370
- #: inc/admin/class-sby-admin.php:112
371
- msgid ""
372
- "Include a \"Load More\" button at the bottom of the feed to load more videos."
373
- msgstr ""
374
-
375
- #: inc/admin/class-sby-admin.php:123
376
- msgid "Button Background Color"
377
- msgstr ""
378
-
379
- #: inc/admin/class-sby-admin.php:127
380
- msgid "Background color for the \"Load More\" button. Any hex color code."
381
- msgstr ""
382
-
383
- #: inc/admin/class-sby-admin.php:138
384
- msgid "Button Text Color"
385
- msgstr ""
386
-
387
- #: inc/admin/class-sby-admin.php:142
388
- msgid "Text color for the \"Load More\" button. Any hex color code."
389
- msgstr ""
390
-
391
- #: inc/admin/class-sby-admin.php:150 youtube-feed.php:412
392
- msgid "Load More..."
393
- msgstr "Mehr laden…"
394
-
395
- #: inc/admin/class-sby-admin.php:153
396
- msgid "Button Text"
397
- msgstr ""
398
-
399
- #: inc/admin/class-sby-admin.php:157
400
- msgid "The text that appers on the \"Load More\" button."
401
- msgstr ""
402
-
403
- #: inc/admin/class-sby-admin.php:165
404
- msgid "\"Subscribe\" Button"
405
- msgstr ""
406
-
407
- #: inc/admin/class-sby-admin.php:176
408
- msgid "Show \"Subscribe\" Button"
409
- msgstr ""
410
-
411
- #: inc/admin/class-sby-admin.php:181
412
- msgid ""
413
- "Include a \"Subscribe\" button at the bottom of the feed to load more videos."
414
- msgstr ""
415
-
416
- #: inc/admin/class-sby-admin.php:192
417
- msgid "Subscribe Background Color"
418
- msgstr ""
419
-
420
- #: inc/admin/class-sby-admin.php:196
421
- msgid "Background color for the \"Subscribe\" button. Any hex color code."
422
- msgstr ""
423
-
424
- #: inc/admin/class-sby-admin.php:207
425
- msgid "Subscribe Text Color"
426
- msgstr ""
427
-
428
- #: inc/admin/class-sby-admin.php:211
429
- msgid "Text color for the \"Subscribe\" button. Any hex color code."
430
- msgstr ""
431
-
432
- #: inc/admin/class-sby-admin.php:219 youtube-feed.php:413
433
- msgid "Subscribe"
434
- msgstr "Abonnieren"
435
-
436
- #: inc/admin/class-sby-admin.php:222
437
- msgid "Subscribe Text"
438
- msgstr ""
439
-
440
- #: inc/admin/class-sby-admin.php:226
441
- msgid "The text that appers on the \"Subscribe\" button."
442
- msgstr ""
443
-
444
- #: inc/admin/class-sby-admin.php:233
445
- msgid "Video Experience"
446
- msgstr ""
447
-
448
- #: inc/admin/class-sby-admin.php:241
449
- msgid "Play when clicked"
450
- msgstr ""
451
-
452
- #: inc/admin/class-sby-admin.php:254
453
- msgid "When does video play?"
454
- msgstr ""
455
-
456
- #: inc/admin/class-sby-admin.php:258
457
- msgid "What the user needs to do to play a video. eg."
458
- msgstr ""
459
-
460
- #: inc/admin/class-sby-admin.php:262
461
- msgid ""
462
- "List layout will not play automatically. Choose whether to play the video "
463
- "automatically in the player or wait until the user clicks the play button "
464
- "after the video is loaded."
465
- msgstr ""
466
-
467
- #: inc/admin/class-sby-admin.php:267
468
- msgid "Custom Code Snippets"
469
- msgstr ""
470
-
471
- #: inc/admin/class-sby-admin.php:278
472
- msgid "Custom CSS"
473
- msgstr ""
474
-
475
- #: inc/admin/class-sby-admin.php:280
476
- msgid "Enter your own custom CSS in the box below"
477
- msgstr ""
478
-
479
- #: inc/admin/class-sby-admin.php:289
480
- msgid "Custom JavaScript"
481
- msgstr ""
482
-
483
- #: inc/admin/class-sby-admin.php:291
484
- msgid "Enter your own custom JavaScript/jQuery in the box below"
485
- msgstr ""
486
-
487
- #: inc/admin/class-sby-admin.php:292
488
- msgid ""
489
- "Note: Custom JavaScript reruns every time more videos are loaded into the "
490
- "feed"
491
- msgstr ""
492
-
493
- #: inc/admin/class-sby-admin.php:297
494
- msgid "Advanced"
495
- msgstr ""
496
-
497
- #: inc/admin/class-sby-admin.php:305
498
- msgid "Background"
499
- msgstr ""
500
-
501
- #: inc/admin/class-sby-admin.php:309
502
- msgid "Page"
503
- msgstr ""
504
-
505
- #: inc/admin/class-sby-admin.php:313
506
- msgid "None"
507
- msgstr ""
508
-
509
- #: inc/admin/class-sby-admin.php:323
510
- msgid "Local storage process"
511
- msgstr ""
512
-
513
- #: inc/admin/class-sby-admin.php:326
514
- msgid ""
515
- "To preserve your feeds and videos even if the YouTube API is unavailable, a "
516
- "record of each video is added to the wp_posts table in the WordPress "
517
- "database."
518
- msgstr ""
519
-
520
- #: inc/admin/class-sby-admin.php:334
521
- msgid "Are you using an AJAX theme?"
522
- msgstr ""
523
-
524
- #: inc/admin/class-sby-admin.php:336
525
- msgid ""
526
- "When navigating your site, if your theme uses Ajax to load content into your "
527
- "pages (meaning your page doesn't refresh) then check this setting. If you're "
528
- "not sure then it's best to leave this setting unchecked while checking with "
529
- "your theme author, otherwise checking it may cause a problem."
530
- msgstr ""
531
-
532
- #: inc/admin/templates/configure.php:3
533
- #, php-format
534
- msgid "Log in to %s and connect an account"
535
- msgstr "Melden Sie sich bei %s an und verbinden Sie ein Konto"
536
-
537
- #: inc/admin/templates/configure.php:4
538
- msgid "Button not working?"
539
- msgstr ""
540
-
541
- #: inc/admin/templates/configure.php:15
542
- #, php-format
543
- msgid "Or, manually enter my own %s API key"
544
- msgstr ""
545
-
546
- #: inc/admin/templates/configure.php:18
547
- msgid ""
548
- "Check this box if you would like to manually enter your own API key. To "
549
- "generate an api key use <a href=\"https://smashballoon.com/youtube-api-key/"
550
- "\" target=\"_blank\" rel=\"noopener\">these instructions.</a>"
551
- msgstr ""
552
-
553
- #: inc/admin/templates/configure.php:24
554
- msgid "API Key"
555
- msgstr ""
556
-
557
- #: inc/admin/templates/configure.php:40 inc/admin/templates/customize.php:8
558
- msgid "Save Changes"
559
- msgstr ""
560
-
561
- #: inc/admin/templates/connected-accounts.php:9
562
- #, php-format
563
- msgid "%s Accounts"
564
- msgstr ""
565
-
566
- #: inc/admin/templates/connected-accounts.php:10
567
- #, php-format
568
- msgid "Use the button above to connect %s account"
569
- msgstr ""
570
-
571
- #: inc/admin/templates/connected-accounts.php:14
572
- #, php-format
573
- msgid "No %s accounts connected. Click the button above to connect an account."
574
- msgstr ""
575
-
576
- #: inc/admin/templates/connected-accounts.php:33
577
- msgid "Manually Connect a Primary Account"
578
- msgstr ""
579
-
580
- #: inc/admin/templates/connected-accounts.php:35
581
- msgid "Enter a valid Access Token"
582
- msgstr ""
583
-
584
- #: inc/admin/templates/connected-accounts.php:36
585
- msgid "Enter a valid Refresh Token"
586
- msgstr ""
587
-
588
- #: inc/admin/templates/connected-accounts.php:37
589
- msgid "Connect This Account"
590
- msgstr ""
591
-
592
- #: inc/admin/templates/display.php:1
593
- msgid "Display your Feed"
594
- msgstr ""
595
-
596
- #: inc/admin/templates/display.php:2
597
- msgid ""
598
- "Copy and paste the following shortcode directly into the page, post or "
599
- "widget where you'd like the feed to show up:"
600
- msgstr ""
601
-
602
- #: inc/admin/templates/display.php:3 inc/admin/templates/main.php:59
603
- #: inc/admin/templates/single-connected-account.php:39
604
- #: inc/admin/templates/single-connected-account.php:40
605
- #: inc/admin/templates/single-connected-account.php:41
606
- msgid "To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac)."
607
- msgstr ""
608
-
609
- #: inc/admin/templates/display.php:5
610
- msgid "Multiple Feeds"
611
- msgstr ""
612
-
613
- #: inc/admin/templates/display.php:6
614
- msgid ""
615
- "If you'd like to display multiple feeds then you can set different settings "
616
- "directly in the shortcode like so:"
617
- msgstr ""
618
-
619
- #: inc/admin/templates/display.php:8
620
- msgid ""
621
- "You can display as many different feeds as you like, on either the same page "
622
- "or on different pages, by just using the shortcode options below. For "
623
- "example:"
624
- msgstr ""
625
-
626
- #: inc/admin/templates/display.php:13
627
- msgid "See the table below for a full list of available shortcode options:"
628
- msgstr ""
629
-
630
- #: inc/admin/templates/display.php:18
631
- msgid "Shortcode option"
632
- msgstr ""
633
-
634
- #: inc/admin/templates/display.php:19
635
- msgid "Description"
636
- msgstr ""
637
-
638
- #: inc/admin/templates/display.php:20
639
- msgid "Example"
640
- msgstr ""
641
-
642
- #: inc/admin/templates/display.php:37 inc/admin/templates/support.php:1
643
- msgid "Need help?"
644
- msgstr ""
645
-
646
- #: inc/admin/templates/display.php:37
647
- msgid "Get Support"
648
- msgstr ""
649
-
650
- #: inc/admin/templates/main.php:17
651
- msgid "Settings saved."
652
- msgstr ""
653
-
654
- #: inc/admin/templates/main.php:50
655
- msgid "Next Step"
656
- msgstr ""
657
-
658
- #: inc/admin/templates/main.php:54
659
- msgid "Need help setting up the plugin? Check out our <a href=\""
660
- msgstr ""
661
-
662
- #: inc/admin/templates/main.php:58
663
- msgid ""
664
- "Copy and paste this shortcode directly into the page, post or widget where "
665
- "you'd like to display the feed:"
666
- msgstr ""
667
-
668
- #: inc/admin/templates/main.php:60
669
- msgid "Find out how to display <a href='?page="
670
- msgstr ""
671
-
672
- #: inc/admin/templates/single-connected-account.php:4
673
- msgid ""
674
- "The Access Token for this account is expired or invalid. Click the button "
675
- "above to attempt to renew it."
676
- msgstr ""
677
-
678
- #: inc/admin/templates/single-connected-account.php:9
679
- msgid "Remove"
680
- msgstr ""
681
-
682
- #: inc/admin/templates/single-connected-account.php:14
683
- msgid "Channel ID:"
684
- msgstr ""
685
-
686
- #: inc/admin/templates/single-connected-account.php:18
687
- msgid "Add to another Feed"
688
- msgstr ""
689
-
690
- #: inc/admin/templates/single-connected-account.php:19
691
- msgid "Show access token and account info"
692
- msgstr ""
693
-
694
- #: inc/admin/templates/single-connected-account.php:24
695
- msgid "Copy and paste this shortcode into your page or widget area"
696
- msgstr ""
697
-
698
- #: inc/admin/templates/single-connected-account.php:32
699
- msgid ""
700
- "To add multiple channels in the same feed, simply separate them using commas"
701
- msgstr ""
702
-
703
- #: inc/admin/templates/single-connected-account.php:35
704
- #, php-format
705
- msgid "Click on the %s tab to learn more about shortcodes"
706
- msgstr ""
707
-
708
- #: inc/admin/templates/single-connected-account.php:35
709
- msgid "Display Your Feed"
710
- msgstr ""
711
-
712
- #: inc/admin/templates/single-connected-account.php:39
713
- msgid "Access Token"
714
- msgstr ""
715
-
716
- #: inc/admin/templates/single-connected-account.php:40
717
- msgid "Refresh Token"
718
- msgstr ""
719
-
720
- #: inc/admin/templates/single-connected-account.php:41
721
- msgid "Channel ID"
722
- msgstr ""
723
-
724
- #: inc/admin/templates/support.php:3
725
- msgid "Check out our "
726
- msgstr ""
727
-
728
- #: inc/admin/templates/support.php:3
729
- msgid "setup directions"
730
- msgstr ""
731
-
732
- #: inc/admin/templates/support.php:3
733
- msgid "for a step-by-step guide on how to setup and use the plugin"
734
- msgstr ""
735
-
736
- #: inc/admin/templates/support.php:5
737
- msgid "Have a problem? Submit a "
738
- msgstr ""
739
-
740
- #: inc/admin/templates/support.php:5
741
- msgid "support ticket"
742
- msgstr ""
743
-
744
- #: inc/admin/templates/support.php:5
745
- msgid "on our website"
746
- msgstr ""
747
-
748
- #: inc/admin/templates/support.php:5
749
- msgid "Please include your <b>System Info</b> below with all support requests."
750
- msgstr ""
751
-
752
- #: inc/admin/templates/support.php:8
753
- msgid "System Info"
754
- msgstr ""
755
-
756
- #: inc/admin/templates/support.php:8
757
- msgid "Click the text below to select all"
758
- msgstr ""
759
-
760
- #: inc/class-sby-api-connect.php:102
761
- #, php-format
762
- msgid "Error: %s."
763
- msgstr ""
764
-
765
- #: inc/class-sby-api-connect.php:104
766
- msgid ""
767
- "There's an issue with the YouTube API Key that you are using. Please check "
768
- "to make sure that this is a valid API Key."
769
- msgstr ""
770
-
771
- #: inc/class-sby-api-connect.php:118
772
- #, php-format
773
- msgid "Error connecting to %s."
774
- msgstr ""
775
-
776
- #: inc/class-sby-feed.php:737
777
- msgid "Error: No videos found."
778
- msgstr ""
779
-
780
- #: inc/class-sby-feed.php:738
781
- msgid ""
782
- "Make sure this is a valid channel ID and that the channel has videos "
783
- "available on youtube.com."
784
- msgstr ""
785
-
786
- #: inc/class-sby-feed.php:863
787
- msgid "No posts found."
788
- msgstr ""
789
-
790
- #: inc/class-sby-posts-manager.php:235
791
- msgid "There was an error creating the folder for storing resized images."
792
- msgstr ""
793
-
794
- #: inc/class-sby-posts-manager.php:323
795
- msgid "Notice: API requests are being delayed for 5 minutes."
796
- msgstr ""
797
-
798
- #: inc/class-sby-posts-manager.php:323
799
- msgid "Feed will not update."
800
- msgstr ""
801
-
802
- #: inc/class-sby-posts-manager.php:332
803
- msgid ""
804
- "There may be an issue with the YouTube access token that you are using. Your "
805
- "server might also be unable to connect to YouTube at this time."
806
- msgstr ""
807
-
808
- #: inc/sby-functions.php:21 inc/sby-functions.php:137
809
- msgid "This error message is only visible to WordPress admins"
810
- msgstr ""
811
-
812
- #: inc/sby-functions.php:22
813
- msgid "Error: No connected account."
814
- msgstr ""
815
-
816
- #: inc/sby-functions.php:23
817
- msgid "Please go to the YouTube Feed settings page to connect an account."
818
- msgstr ""
819
-
820
- #: inc/widget.php:13 youtube-feed.php:94
821
- msgid "YouTube Feed"
822
- msgstr ""
823
-
824
- #: inc/widget.php:14
825
- msgid "Display your YouTube feed"
826
- msgstr ""
827
-
828
- #: inc/widget.php:40
829
- msgid "Title:"
830
- msgstr ""
831
-
832
- #: templates/item.php:22 templates/player.php:10
833
- msgid "Image for post"
834
- msgstr ""
835
-
836
- #: templates/item.php:34 templates/player.php:17
837
- #, php-format
838
- msgid "YouTube Video %s"
839
- msgstr ""
840
-
841
- #: youtube-feed.php:97
842
- msgid "a"
843
- msgstr ""
844
-
845
- #: youtube-feed.php:100
846
- msgid "YouTube"
847
- msgstr ""
848
-
849
- #: youtube-feed.php:125
850
- msgid "Videos"
851
- msgstr ""
852
-
853
- #: youtube-feed.php:126
854
- msgid " "
855
- msgstr ""
856
-
857
- #: youtube-feed.php:127 youtube-feed.php:128
858
- msgid "Add New Video"
859
- msgstr ""
860
-
861
- #: youtube-feed.php:129
862
- msgid "Edit Video"
863
- msgstr ""
864
-
865
- #: youtube-feed.php:130
866
- msgid "View Video"
867
- msgstr ""
868
-
869
- #: youtube-feed.php:131
870
- msgid "All Videos"
871
- msgstr ""
872
-
873
- #: youtube-feed.php:441
874
- msgid "Settings"
875
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/youtube-feed-fr_FR.mo DELETED
Binary file
languages/youtube-feed-fr_FR.po DELETED
@@ -1,875 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: \n"
4
- "POT-Creation-Date: 2019-11-29 14:34-0600\n"
5
- "PO-Revision-Date: 2019-11-29 16:33-0600\n"
6
- "Language-Team: \n"
7
- "MIME-Version: 1.0\n"
8
- "Content-Type: text/plain; charset=UTF-8\n"
9
- "Content-Transfer-Encoding: 8bit\n"
10
- "X-Generator: Poedit 2.2.4\n"
11
- "X-Poedit-Basepath: ..\n"
12
- "Plural-Forms: nplurals=2; plural=(n > 1);\n"
13
- "X-Poedit-KeywordsList: __;_e;esc_html__;esc_html_e;esc_attr_e;esc_attr__\n"
14
- "Last-Translator: \n"
15
- "Language: fr_FR\n"
16
- "X-Poedit-SearchPath-0: .\n"
17
-
18
- #: inc/admin/admin-functions.php:17 inc/admin/templates/configure.php:1
19
- msgid "Configure"
20
- msgstr "Configurer"
21
-
22
- #: inc/admin/admin-functions.php:20
23
- msgid "Customize your feed"
24
- msgstr ""
25
-
26
- #: inc/admin/admin-functions.php:23
27
- msgid "Customize"
28
- msgstr "Personnaliser"
29
-
30
- #: inc/admin/admin-functions.php:26 inc/admin/templates/main.php:57
31
- msgid "Display your feed"
32
- msgstr ""
33
-
34
- #: inc/admin/admin-functions.php:29
35
- msgid "Display"
36
- msgstr "Afficher"
37
-
38
- #: inc/admin/admin-functions.php:34
39
- msgid "Support"
40
- msgstr ""
41
-
42
- #: inc/admin/admin-functions.php:58
43
- msgid "Channel"
44
- msgstr ""
45
-
46
- #: inc/admin/admin-functions.php:60
47
- msgid "Eg: UCNrD5PWitIbhVK8ID or smashballoon."
48
- msgstr ""
49
-
50
- #: inc/admin/admin-functions.php:61
51
- msgid "Show the latest videos from a YouTube channel."
52
- msgstr ""
53
-
54
- #: inc/admin/admin-functions.php:71
55
- msgid "List"
56
- msgstr ""
57
-
58
- #: inc/admin/admin-functions.php:73
59
- msgid "A single columns of videos that play when clicked."
60
- msgstr ""
61
-
62
- #: inc/admin/admin-functions.php:77
63
- msgid "Grid"
64
- msgstr ""
65
-
66
- #: inc/admin/admin-functions.php:79
67
- msgid ""
68
- "Video thumbnails are displayed in columns and play in a lightbox when "
69
- "clicked."
70
- msgstr ""
71
-
72
- #: inc/admin/admin-functions.php:84 inc/admin/admin-functions.php:110
73
- msgid "Columns"
74
- msgstr ""
75
-
76
- #: inc/admin/admin-functions.php:93 inc/admin/admin-functions.php:119
77
- msgid "Mobile Columns"
78
- msgstr ""
79
-
80
- #: inc/admin/admin-functions.php:103
81
- msgid "Gallery"
82
- msgstr ""
83
-
84
- #: inc/admin/admin-functions.php:105
85
- msgid ""
86
- "One large video that plays when clicked with thumbnails underneath to play "
87
- "more."
88
- msgstr ""
89
-
90
- #: inc/admin/admin-functions.php:134
91
- msgid "Configure Options"
92
- msgstr ""
93
-
94
- #: inc/admin/admin-functions.php:138
95
- msgid "Customize Options"
96
- msgstr ""
97
-
98
- #: inc/admin/admin-functions.php:142
99
- msgid "Layout Options"
100
- msgstr ""
101
-
102
- #: inc/admin/admin-functions.php:146
103
- msgid "Header Options"
104
- msgstr ""
105
-
106
- #: inc/admin/admin-functions.php:150
107
- msgid "\"Load More\" Button Options"
108
- msgstr ""
109
-
110
- #: inc/admin/admin-functions.php:154
111
- msgid "\"Subscribe\" Button Options"
112
- msgstr ""
113
-
114
- #: inc/admin/admin-functions.php:284
115
- msgid ""
116
- "Could not connect your account. Please check to make sure this is a valid "
117
- "access token for the Smash Balloon YouTube App."
118
- msgstr ""
119
-
120
- #: inc/admin/class-sbspf-admin.php:102
121
- msgid "Feed Type"
122
- msgstr ""
123
-
124
- #: inc/admin/class-sbspf-admin.php:106
125
- msgid "Display videos from a YouTube channel (channel)"
126
- msgstr ""
127
-
128
- #: inc/admin/class-sbspf-admin.php:117
129
- msgid "Preserve settings when plugin is removed"
130
- msgstr ""
131
-
132
- #: inc/admin/class-sbspf-admin.php:119
133
- msgid ""
134
- "When removing the plugin your settings are automatically erased. Checking "
135
- "this box will prevent any settings from being deleted. This means that you "
136
- "can uninstall and reinstall the plugin without losing your settings."
137
- msgstr ""
138
-
139
- #: inc/admin/class-sbspf-admin.php:128
140
- msgid "Check for new posts"
141
- msgstr ""
142
-
143
- #: inc/admin/class-sbspf-admin.php:136
144
- msgid "General"
145
- msgstr ""
146
-
147
- #: inc/admin/class-sbspf-admin.php:162
148
- msgid "Width of Feed"
149
- msgstr ""
150
-
151
- #: inc/admin/class-sbspf-admin.php:166
152
- msgid "The width of your feed. Any number with a unit like \"px\" or \"%\"."
153
- msgstr ""
154
-
155
- #: inc/admin/class-sbspf-admin.php:174
156
- msgid "Set to be 100% width on mobile?"
157
- msgstr ""
158
-
159
- #: inc/admin/class-sbspf-admin.php:177
160
- #, php-format
161
- msgid ""
162
- "If you set a width on the feed then this will be used on mobile as well as "
163
- "desktop. Check this setting to set the feed width to be 100% on mobile so "
164
- "that it is responsive."
165
- msgstr ""
166
-
167
- #: inc/admin/class-sbspf-admin.php:199
168
- msgid "Height of Feed"
169
- msgstr ""
170
-
171
- #: inc/admin/class-sbspf-admin.php:203
172
- msgid "The height of your feed. Any number with a unit like \"px\" or \"em\"."
173
- msgstr ""
174
-
175
- #: inc/admin/class-sbspf-admin.php:216
176
- msgid "Background Color"
177
- msgstr ""
178
-
179
- #: inc/admin/class-sbspf-admin.php:220
180
- msgid "Background color for the feed. Any hex color code."
181
- msgstr ""
182
-
183
- #: inc/admin/class-sbspf-admin.php:227
184
- msgid "Layout"
185
- msgstr ""
186
-
187
- #: inc/admin/class-sbspf-admin.php:238
188
- msgid "Layout Type"
189
- msgstr ""
190
-
191
- #: inc/admin/class-sbspf-admin.php:243
192
- msgid "How your posts are display visually."
193
- msgstr ""
194
-
195
- #: inc/admin/class-sbspf-admin.php:383
196
- msgid "Yes"
197
- msgstr ""
198
-
199
- #: inc/admin/class-sbspf-admin.php:534
200
- msgid "Connect an account above"
201
- msgstr ""
202
-
203
- #: inc/admin/class-sbspf-admin.php:565 inc/admin/class-sby-admin.php:354
204
- msgid "When the page loads"
205
- msgstr ""
206
-
207
- #: inc/admin/class-sbspf-admin.php:567 inc/admin/class-sby-admin.php:356
208
- #, php-format
209
- msgid ""
210
- "Your %s data is temporarily cached by the plugin in your WordPress database. "
211
- "There are two ways that you can set the plugin to check for new data:"
212
- "<br><br>\n"
213
- " <b>1. When the page loads</b><br>Selecting this option means "
214
- "that when the cache expires then the plugin will check %s for new posts the "
215
- "next time that the feed is loaded. You can choose how long this data should "
216
- "be cached for. If you set the time to 60 minutes then the plugin will clear "
217
- "the cached data after that length of time, and the next time the page is "
218
- "viewed it will check for new data. <b>Tip:</b> If you're experiencing an "
219
- "issue with the plugin not updating automatically then try enabling the "
220
- "setting labeled <b>'Force cache to clear on interval'</b> which is located "
221
- "on the 'Customize' tab.<br><br>\n"
222
- " <b>2. In the background</b><br>Selecting this option means "
223
- "that the plugin will check for new data in the background so that the feed "
224
- "is updated behind the scenes. You can select at what time and how often the "
225
- "plugin should check for new data using the settings below. <b>Please note</"
226
- "b> that the plugin will initially check for data from Instagram when the "
227
- "page first loads, but then after that will check in the background on the "
228
- "schedule selected - unless the cache is cleared."
229
- msgstr ""
230
-
231
- #: inc/admin/class-sbspf-admin.php:573 inc/admin/class-sby-admin.php:362
232
- msgid "Every"
233
- msgstr ""
234
-
235
- #: inc/admin/class-sbspf-admin.php:576 inc/admin/class-sby-admin.php:365
236
- msgid "Minutes"
237
- msgstr ""
238
-
239
- #: inc/admin/class-sbspf-admin.php:577 inc/admin/class-sby-admin.php:366
240
- msgid "Hours"
241
- msgstr ""
242
-
243
- #: inc/admin/class-sbspf-admin.php:578 inc/admin/class-sby-admin.php:367
244
- msgid "Days"
245
- msgstr ""
246
-
247
- #: inc/admin/class-sbspf-admin.php:580 inc/admin/class-sbspf-admin.php:847
248
- #: inc/admin/class-sby-admin.php:369
249
- msgid "What does this mean?"
250
- msgstr ""
251
-
252
- #: inc/admin/class-sbspf-admin.php:581 inc/admin/class-sby-admin.php:370
253
- #, php-format
254
- msgid ""
255
- "Your %s posts are temporarily cached by the plugin in your WordPress "
256
- "database. You can choose how long the posts should be cached for. If you set "
257
- "the time to 1 hour then the plugin will clear the cache after that length of "
258
- "time and check %s for posts again."
259
- msgstr ""
260
-
261
- #: inc/admin/class-sbspf-admin.php:586 inc/admin/class-sby-admin.php:375
262
- msgid "In the background"
263
- msgstr ""
264
-
265
- #: inc/admin/class-sbspf-admin.php:591 inc/admin/class-sby-admin.php:380
266
- #: youtube-feed.php:180
267
- msgid "Every 30 minutes"
268
- msgstr ""
269
-
270
- #: inc/admin/class-sbspf-admin.php:592 inc/admin/class-sby-admin.php:381
271
- msgid "Every hour"
272
- msgstr ""
273
-
274
- #: inc/admin/class-sbspf-admin.php:593 inc/admin/class-sby-admin.php:382
275
- msgid "Every 12 hours"
276
- msgstr ""
277
-
278
- #: inc/admin/class-sbspf-admin.php:594 inc/admin/class-sby-admin.php:383
279
- msgid "Every 24 hours"
280
- msgstr ""
281
-
282
- #: inc/admin/class-sbspf-admin.php:598 inc/admin/class-sby-admin.php:387
283
- msgid "at"
284
- msgstr ""
285
-
286
- #: inc/admin/class-sbspf-admin.php:615 inc/admin/class-sby-admin.php:404
287
- msgid "AM"
288
- msgstr ""
289
-
290
- #: inc/admin/class-sbspf-admin.php:616 inc/admin/class-sby-admin.php:405
291
- msgid "PM"
292
- msgstr ""
293
-
294
- #: inc/admin/class-sbspf-admin.php:628 inc/admin/class-sby-admin.php:417
295
- msgid "every 30 minutes"
296
- msgstr ""
297
-
298
- #: inc/admin/class-sbspf-admin.php:629 inc/admin/class-sby-admin.php:418
299
- msgid "every 12 hours"
300
- msgstr ""
301
-
302
- #: inc/admin/class-sbspf-admin.php:631 inc/admin/class-sby-admin.php:420
303
- msgid "Next check"
304
- msgstr ""
305
-
306
- #: inc/admin/class-sbspf-admin.php:631 inc/admin/class-sby-admin.php:420
307
- msgid ""
308
- "Note: Saving the settings on this page will clear the cache and reset this "
309
- "schedule"
310
- msgstr ""
311
-
312
- #: inc/admin/class-sbspf-admin.php:633 inc/admin/class-sby-admin.php:422
313
- msgid "Nothing currently scheduled"
314
- msgstr ""
315
-
316
- #: inc/admin/class-sbspf-admin.php:666
317
- msgid "Click for shortcode option"
318
- msgstr ""
319
-
320
- #: inc/admin/class-sby-admin.php:19
321
- msgid "Number of Videos"
322
- msgstr ""
323
-
324
- #: inc/admin/class-sby-admin.php:20
325
- msgid "Number of videos to show initially."
326
- msgstr ""
327
-
328
- #: inc/admin/class-sby-admin.php:24
329
- msgid "The number of videos in the feed"
330
- msgstr ""
331
-
332
- #: inc/admin/class-sby-admin.php:47
333
- msgid "Spacing between videos"
334
- msgstr ""
335
-
336
- #: inc/admin/class-sby-admin.php:51
337
- msgid ""
338
- "The spacing/padding around the videos in the feed. Any number with a unit "
339
- "like \"px\" or \"em\"."
340
- msgstr ""
341
-
342
- #: inc/admin/class-sby-admin.php:60
343
- msgid "Header"
344
- msgstr ""
345
-
346
- #: inc/admin/class-sby-admin.php:70
347
- msgid "Show Header"
348
- msgstr ""
349
-
350
- #: inc/admin/class-sby-admin.php:75
351
- msgid "Include a header for this feed."
352
- msgstr ""
353
-
354
- #: inc/admin/class-sby-admin.php:85
355
- msgid "Show Channel Description"
356
- msgstr ""
357
-
358
- #: inc/admin/class-sby-admin.php:90
359
- msgid "Include the channel description in the header."
360
- msgstr ""
361
-
362
- #: inc/admin/class-sby-admin.php:97
363
- msgid "\"Load More\" Button"
364
- msgstr ""
365
-
366
- #: inc/admin/class-sby-admin.php:107
367
- msgid "Show \"Load More\" Button"
368
- msgstr ""
369
-
370
- #: inc/admin/class-sby-admin.php:112
371
- msgid ""
372
- "Include a \"Load More\" button at the bottom of the feed to load more videos."
373
- msgstr ""
374
-
375
- #: inc/admin/class-sby-admin.php:123
376
- msgid "Button Background Color"
377
- msgstr ""
378
-
379
- #: inc/admin/class-sby-admin.php:127
380
- msgid "Background color for the \"Load More\" button. Any hex color code."
381
- msgstr ""
382
-
383
- #: inc/admin/class-sby-admin.php:138
384
- msgid "Button Text Color"
385
- msgstr ""
386
-
387
- #: inc/admin/class-sby-admin.php:142
388
- msgid "Text color for the \"Load More\" button. Any hex color code."
389
- msgstr ""
390
-
391
- #: inc/admin/class-sby-admin.php:150 youtube-feed.php:412
392
- msgid "Load More..."
393
- msgstr "Charger plus…"
394
-
395
- #: inc/admin/class-sby-admin.php:153
396
- msgid "Button Text"
397
- msgstr ""
398
-
399
- #: inc/admin/class-sby-admin.php:157
400
- msgid "The text that appers on the \"Load More\" button."
401
- msgstr ""
402
-
403
- #: inc/admin/class-sby-admin.php:165
404
- msgid "\"Subscribe\" Button"
405
- msgstr ""
406
-
407
- #: inc/admin/class-sby-admin.php:176
408
- msgid "Show \"Subscribe\" Button"
409
- msgstr ""
410
-
411
- #: inc/admin/class-sby-admin.php:181
412
- msgid ""
413
- "Include a \"Subscribe\" button at the bottom of the feed to load more videos."
414
- msgstr ""
415
-
416
- #: inc/admin/class-sby-admin.php:192
417
- msgid "Subscribe Background Color"
418
- msgstr ""
419
-
420
- #: inc/admin/class-sby-admin.php:196
421
- msgid "Background color for the \"Subscribe\" button. Any hex color code."
422
- msgstr ""
423
-
424
- #: inc/admin/class-sby-admin.php:207
425
- msgid "Subscribe Text Color"
426
- msgstr ""
427
-
428
- #: inc/admin/class-sby-admin.php:211
429
- msgid "Text color for the \"Subscribe\" button. Any hex color code."
430
- msgstr ""
431
-
432
- #: inc/admin/class-sby-admin.php:219 youtube-feed.php:413
433
- msgid "Subscribe"
434
- msgstr "S'abonner"
435
-
436
- #: inc/admin/class-sby-admin.php:222
437
- msgid "Subscribe Text"
438
- msgstr ""
439
-
440
- #: inc/admin/class-sby-admin.php:226
441
- msgid "The text that appers on the \"Subscribe\" button."
442
- msgstr ""
443
-
444
- #: inc/admin/class-sby-admin.php:233
445
- msgid "Video Experience"
446
- msgstr ""
447
-
448
- #: inc/admin/class-sby-admin.php:241
449
- msgid "Play when clicked"
450
- msgstr ""
451
-
452
- #: inc/admin/class-sby-admin.php:254
453
- msgid "When does video play?"
454
- msgstr ""
455
-
456
- #: inc/admin/class-sby-admin.php:258
457
- msgid "What the user needs to do to play a video. eg."
458
- msgstr ""
459
-
460
- #: inc/admin/class-sby-admin.php:262
461
- msgid ""
462
- "List layout will not play automatically. Choose whether to play the video "
463
- "automatically in the player or wait until the user clicks the play button "
464
- "after the video is loaded."
465
- msgstr ""
466
-
467
- #: inc/admin/class-sby-admin.php:267
468
- msgid "Custom Code Snippets"
469
- msgstr ""
470
-
471
- #: inc/admin/class-sby-admin.php:278
472
- msgid "Custom CSS"
473
- msgstr ""
474
-
475
- #: inc/admin/class-sby-admin.php:280
476
- msgid "Enter your own custom CSS in the box below"
477
- msgstr ""
478
-
479
- #: inc/admin/class-sby-admin.php:289
480
- msgid "Custom JavaScript"
481
- msgstr ""
482
-
483
- #: inc/admin/class-sby-admin.php:291
484
- msgid "Enter your own custom JavaScript/jQuery in the box below"
485
- msgstr ""
486
-
487
- #: inc/admin/class-sby-admin.php:292
488
- msgid ""
489
- "Note: Custom JavaScript reruns every time more videos are loaded into the "
490
- "feed"
491
- msgstr ""
492
-
493
- #: inc/admin/class-sby-admin.php:297
494
- msgid "Advanced"
495
- msgstr ""
496
-
497
- #: inc/admin/class-sby-admin.php:305
498
- msgid "Background"
499
- msgstr ""
500
-
501
- #: inc/admin/class-sby-admin.php:309
502
- msgid "Page"
503
- msgstr ""
504
-
505
- #: inc/admin/class-sby-admin.php:313
506
- msgid "None"
507
- msgstr ""
508
-
509
- #: inc/admin/class-sby-admin.php:323
510
- msgid "Local storage process"
511
- msgstr ""
512
-
513
- #: inc/admin/class-sby-admin.php:326
514
- msgid ""
515
- "To preserve your feeds and videos even if the YouTube API is unavailable, a "
516
- "record of each video is added to the wp_posts table in the WordPress "
517
- "database."
518
- msgstr ""
519
-
520
- #: inc/admin/class-sby-admin.php:334
521
- msgid "Are you using an AJAX theme?"
522
- msgstr ""
523
-
524
- #: inc/admin/class-sby-admin.php:336
525
- msgid ""
526
- "When navigating your site, if your theme uses Ajax to load content into your "
527
- "pages (meaning your page doesn't refresh) then check this setting. If you're "
528
- "not sure then it's best to leave this setting unchecked while checking with "
529
- "your theme author, otherwise checking it may cause a problem."
530
- msgstr ""
531
-
532
- #: inc/admin/templates/configure.php:3
533
- #, php-format
534
- msgid "Log in to %s and connect an account"
535
- msgstr ""
536
-
537
- #: inc/admin/templates/configure.php:4
538
- msgid "Button not working?"
539
- msgstr ""
540
-
541
- #: inc/admin/templates/configure.php:15
542
- #, php-format
543
- msgid "Or, manually enter my own %s API key"
544
- msgstr ""
545
-
546
- #: inc/admin/templates/configure.php:18
547
- msgid ""
548
- "Check this box if you would like to manually enter your own API key. To "
549
- "generate an api key use <a href=\"https://smashballoon.com/youtube-api-key/"
550
- "\" target=\"_blank\" rel=\"noopener\">these instructions.</a>"
551
- msgstr ""
552
-
553
- #: inc/admin/templates/configure.php:24
554
- msgid "API Key"
555
- msgstr ""
556
-
557
- #: inc/admin/templates/configure.php:40 inc/admin/templates/customize.php:8
558
- msgid "Save Changes"
559
- msgstr ""
560
-
561
- #: inc/admin/templates/connected-accounts.php:9
562
- #, php-format
563
- msgid "%s Accounts"
564
- msgstr ""
565
-
566
- #: inc/admin/templates/connected-accounts.php:10
567
- #, php-format
568
- msgid "Use the button above to connect %s account"
569
- msgstr ""
570
-
571
- #: inc/admin/templates/connected-accounts.php:14
572
- #, php-format
573
- msgid "No %s accounts connected. Click the button above to connect an account."
574
- msgstr ""
575
-
576
- #: inc/admin/templates/connected-accounts.php:33
577
- msgid "Manually Connect a Primary Account"
578
- msgstr ""
579
-
580
- #: inc/admin/templates/connected-accounts.php:35
581
- msgid "Enter a valid Access Token"
582
- msgstr ""
583
-
584
- #: inc/admin/templates/connected-accounts.php:36
585
- msgid "Enter a valid Refresh Token"
586
- msgstr ""
587
-
588
- #: inc/admin/templates/connected-accounts.php:37
589
- msgid "Connect This Account"
590
- msgstr ""
591
-
592
- #: inc/admin/templates/display.php:1
593
- msgid "Display your Feed"
594
- msgstr ""
595
-
596
- #: inc/admin/templates/display.php:2
597
- msgid ""
598
- "Copy and paste the following shortcode directly into the page, post or "
599
- "widget where you'd like the feed to show up:"
600
- msgstr ""
601
-
602
- #: inc/admin/templates/display.php:3 inc/admin/templates/main.php:59
603
- #: inc/admin/templates/single-connected-account.php:39
604
- #: inc/admin/templates/single-connected-account.php:40
605
- #: inc/admin/templates/single-connected-account.php:41
606
- msgid "To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac)."
607
- msgstr ""
608
-
609
- #: inc/admin/templates/display.php:5
610
- msgid "Multiple Feeds"
611
- msgstr ""
612
-
613
- #: inc/admin/templates/display.php:6
614
- msgid ""
615
- "If you'd like to display multiple feeds then you can set different settings "
616
- "directly in the shortcode like so:"
617
- msgstr ""
618
-
619
- #: inc/admin/templates/display.php:8
620
- msgid ""
621
- "You can display as many different feeds as you like, on either the same page "
622
- "or on different pages, by just using the shortcode options below. For "
623
- "example:"
624
- msgstr ""
625
-
626
- #: inc/admin/templates/display.php:13
627
- msgid "See the table below for a full list of available shortcode options:"
628
- msgstr ""
629
-
630
- #: inc/admin/templates/display.php:18
631
- msgid "Shortcode option"
632
- msgstr ""
633
-
634
- #: inc/admin/templates/display.php:19
635
- msgid "Description"
636
- msgstr ""
637
-
638
- #: inc/admin/templates/display.php:20
639
- msgid "Example"
640
- msgstr ""
641
-
642
- #: inc/admin/templates/display.php:37 inc/admin/templates/support.php:1
643
- msgid "Need help?"
644
- msgstr ""
645
-
646
- #: inc/admin/templates/display.php:37
647
- msgid "Get Support"
648
- msgstr ""
649
-
650
- #: inc/admin/templates/main.php:17
651
- msgid "Settings saved."
652
- msgstr ""
653
-
654
- #: inc/admin/templates/main.php:50
655
- msgid "Next Step"
656
- msgstr ""
657
-
658
- #: inc/admin/templates/main.php:54
659
- msgid "Need help setting up the plugin? Check out our <a href=\""
660
- msgstr ""
661
-
662
- #: inc/admin/templates/main.php:58
663
- msgid ""
664
- "Copy and paste this shortcode directly into the page, post or widget where "
665
- "you'd like to display the feed:"
666
- msgstr ""
667
-
668
- #: inc/admin/templates/main.php:60
669
- msgid "Find out how to display <a href='?page="
670
- msgstr ""
671
-
672
- #: inc/admin/templates/single-connected-account.php:4
673
- msgid ""
674
- "The Access Token for this account is expired or invalid. Click the button "
675
- "above to attempt to renew it."
676
- msgstr ""
677
-
678
- #: inc/admin/templates/single-connected-account.php:9
679
- msgid "Remove"
680
- msgstr ""
681
-
682
- #: inc/admin/templates/single-connected-account.php:14
683
- msgid "Channel ID:"
684
- msgstr ""
685
-
686
- #: inc/admin/templates/single-connected-account.php:18
687
- msgid "Add to another Feed"
688
- msgstr ""
689
-
690
- #: inc/admin/templates/single-connected-account.php:19
691
- msgid "Show access token and account info"
692
- msgstr ""
693
-
694
- #: inc/admin/templates/single-connected-account.php:24
695
- msgid "Copy and paste this shortcode into your page or widget area"
696
- msgstr ""
697
-
698
- #: inc/admin/templates/single-connected-account.php:32
699
- msgid ""
700
- "To add multiple channels in the same feed, simply separate them using commas"
701
- msgstr ""
702
-
703
- #: inc/admin/templates/single-connected-account.php:35
704
- #, php-format
705
- msgid "Click on the %s tab to learn more about shortcodes"
706
- msgstr ""
707
-
708
- #: inc/admin/templates/single-connected-account.php:35
709
- msgid "Display Your Feed"
710
- msgstr ""
711
-
712
- #: inc/admin/templates/single-connected-account.php:39
713
- msgid "Access Token"
714
- msgstr ""
715
-
716
- #: inc/admin/templates/single-connected-account.php:40
717
- msgid "Refresh Token"
718
- msgstr ""
719
-
720
- #: inc/admin/templates/single-connected-account.php:41
721
- msgid "Channel ID"
722
- msgstr ""
723
-
724
- #: inc/admin/templates/support.php:3
725
- msgid "Check out our "
726
- msgstr ""
727
-
728
- #: inc/admin/templates/support.php:3
729
- msgid "setup directions"
730
- msgstr ""
731
-
732
- #: inc/admin/templates/support.php:3
733
- msgid "for a step-by-step guide on how to setup and use the plugin"
734
- msgstr ""
735
-
736
- #: inc/admin/templates/support.php:5
737
- msgid "Have a problem? Submit a "
738
- msgstr ""
739
-
740
- #: inc/admin/templates/support.php:5
741
- msgid "support ticket"
742
- msgstr ""
743
-
744
- #: inc/admin/templates/support.php:5
745
- msgid "on our website"
746
- msgstr ""
747
-
748
- #: inc/admin/templates/support.php:5
749
- msgid "Please include your <b>System Info</b> below with all support requests."
750
- msgstr ""
751
-
752
- #: inc/admin/templates/support.php:8
753
- msgid "System Info"
754
- msgstr ""
755
-
756
- #: inc/admin/templates/support.php:8
757
- msgid "Click the text below to select all"
758
- msgstr ""
759
-
760
- #: inc/class-sby-api-connect.php:102
761
- #, php-format
762
- msgid "Error: %s."
763
- msgstr ""
764
-
765
- #: inc/class-sby-api-connect.php:104
766
- msgid ""
767
- "There's an issue with the YouTube API Key that you are using. Please check "
768
- "to make sure that this is a valid API Key."
769
- msgstr ""
770
-
771
- #: inc/class-sby-api-connect.php:118
772
- #, php-format
773
- msgid "Error connecting to %s."
774
- msgstr ""
775
-
776
- #: inc/class-sby-feed.php:737
777
- msgid "Error: No videos found."
778
- msgstr ""
779
-
780
- #: inc/class-sby-feed.php:738
781
- msgid ""
782
- "Make sure this is a valid channel ID and that the channel has videos "
783
- "available on youtube.com."
784
- msgstr ""
785
-
786
- #: inc/class-sby-feed.php:863
787
- msgid "No posts found."
788
- msgstr ""
789
-
790
- #: inc/class-sby-posts-manager.php:235
791
- msgid "There was an error creating the folder for storing resized images."
792
- msgstr ""
793
-
794
- #: inc/class-sby-posts-manager.php:323
795
- msgid "Notice: API requests are being delayed for 5 minutes."
796
- msgstr ""
797
-
798
- #: inc/class-sby-posts-manager.php:323
799
- msgid "Feed will not update."
800
- msgstr ""
801
-
802
- #: inc/class-sby-posts-manager.php:332
803
- msgid ""
804
- "There may be an issue with the YouTube access token that you are using. Your "
805
- "server might also be unable to connect to YouTube at this time."
806
- msgstr ""
807
-
808
- #: inc/sby-functions.php:21 inc/sby-functions.php:137
809
- msgid "This error message is only visible to WordPress admins"
810
- msgstr ""
811
-
812
- #: inc/sby-functions.php:22
813
- msgid "Error: No connected account."
814
- msgstr ""
815
-
816
- #: inc/sby-functions.php:23
817
- msgid "Please go to the YouTube Feed settings page to connect an account."
818
- msgstr ""
819
-
820
- #: inc/widget.php:13 youtube-feed.php:94
821
- msgid "YouTube Feed"
822
- msgstr ""
823
-
824
- #: inc/widget.php:14
825
- msgid "Display your YouTube feed"
826
- msgstr ""
827
-
828
- #: inc/widget.php:40
829
- msgid "Title:"
830
- msgstr ""
831
-
832
- #: templates/item.php:22 templates/player.php:10
833
- msgid "Image for post"
834
- msgstr ""
835
-
836
- #: templates/item.php:34 templates/player.php:17
837
- #, php-format
838
- msgid "YouTube Video %s"
839
- msgstr ""
840
-
841
- #: youtube-feed.php:97
842
- msgid "a"
843
- msgstr ""
844
-
845
- #: youtube-feed.php:100
846
- msgid "YouTube"
847
- msgstr ""
848
-
849
- #: youtube-feed.php:125
850
- msgid "Videos"
851
- msgstr ""
852
-
853
- #: youtube-feed.php:126
854
- msgid " "
855
- msgstr ""
856
-
857
- #: youtube-feed.php:127 youtube-feed.php:128
858
- msgid "Add New Video"
859
- msgstr ""
860
-
861
- #: youtube-feed.php:129
862
- msgid "Edit Video"
863
- msgstr ""
864
-
865
- #: youtube-feed.php:130
866
- msgid "View Video"
867
- msgstr ""
868
-
869
- #: youtube-feed.php:131
870
- msgid "All Videos"
871
- msgstr ""
872
-
873
- #: youtube-feed.php:441
874
- msgid "Settings"
875
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/youtube-feed.pot DELETED
@@ -1,875 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: \n"
4
- "POT-Creation-Date: 2019-11-29 14:34-0600\n"
5
- "PO-Revision-Date: 2019-11-29 14:35-0600\n"
6
- "Last-Translator: \n"
7
- "Language-Team: \n"
8
- "Language: en_US\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.2.4\n"
13
- "X-Poedit-Basepath: ..\n"
14
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
- "X-Poedit-KeywordsList: __;_e;esc_html__;esc_html_e;esc_attr_e;esc_attr__\n"
16
- "X-Poedit-SearchPath-0: .\n"
17
-
18
- #: inc/admin/admin-functions.php:17 inc/admin/templates/configure.php:1
19
- msgid "Configure"
20
- msgstr ""
21
-
22
- #: inc/admin/admin-functions.php:20
23
- msgid "Customize your feed"
24
- msgstr ""
25
-
26
- #: inc/admin/admin-functions.php:23
27
- msgid "Customize"
28
- msgstr ""
29
-
30
- #: inc/admin/admin-functions.php:26 inc/admin/templates/main.php:57
31
- msgid "Display your feed"
32
- msgstr ""
33
-
34
- #: inc/admin/admin-functions.php:29
35
- msgid "Display"
36
- msgstr ""
37
-
38
- #: inc/admin/admin-functions.php:34
39
- msgid "Support"
40
- msgstr ""
41
-
42
- #: inc/admin/admin-functions.php:58
43
- msgid "Channel"
44
- msgstr ""
45
-
46
- #: inc/admin/admin-functions.php:60
47
- msgid "Eg: UCNrD5PWitIbhVK8ID or smashballoon."
48
- msgstr ""
49
-
50
- #: inc/admin/admin-functions.php:61
51
- msgid "Show the latest videos from a YouTube channel."
52
- msgstr ""
53
-
54
- #: inc/admin/admin-functions.php:71
55
- msgid "List"
56
- msgstr ""
57
-
58
- #: inc/admin/admin-functions.php:73
59
- msgid "A single columns of videos that play when clicked."
60
- msgstr ""
61
-
62
- #: inc/admin/admin-functions.php:77
63
- msgid "Grid"
64
- msgstr ""
65
-
66
- #: inc/admin/admin-functions.php:79
67
- msgid ""
68
- "Video thumbnails are displayed in columns and play in a lightbox when "
69
- "clicked."
70
- msgstr ""
71
-
72
- #: inc/admin/admin-functions.php:84 inc/admin/admin-functions.php:110
73
- msgid "Columns"
74
- msgstr ""
75
-
76
- #: inc/admin/admin-functions.php:93 inc/admin/admin-functions.php:119
77
- msgid "Mobile Columns"
78
- msgstr ""
79
-
80
- #: inc/admin/admin-functions.php:103
81
- msgid "Gallery"
82
- msgstr ""
83
-
84
- #: inc/admin/admin-functions.php:105
85
- msgid ""
86
- "One large video that plays when clicked with thumbnails underneath to play "
87
- "more."
88
- msgstr ""
89
-
90
- #: inc/admin/admin-functions.php:134
91
- msgid "Configure Options"
92
- msgstr ""
93
-
94
- #: inc/admin/admin-functions.php:138
95
- msgid "Customize Options"
96
- msgstr ""
97
-
98
- #: inc/admin/admin-functions.php:142
99
- msgid "Layout Options"
100
- msgstr ""
101
-
102
- #: inc/admin/admin-functions.php:146
103
- msgid "Header Options"
104
- msgstr ""
105
-
106
- #: inc/admin/admin-functions.php:150
107
- msgid "\"Load More\" Button Options"
108
- msgstr ""
109
-
110
- #: inc/admin/admin-functions.php:154
111
- msgid "\"Subscribe\" Button Options"
112
- msgstr ""
113
-
114
- #: inc/admin/admin-functions.php:284
115
- msgid ""
116
- "Could not connect your account. Please check to make sure this is a valid "
117
- "access token for the Smash Balloon YouTube App."
118
- msgstr ""
119
-
120
- #: inc/admin/class-sbspf-admin.php:102
121
- msgid "Feed Type"
122
- msgstr ""
123
-
124
- #: inc/admin/class-sbspf-admin.php:106
125
- msgid "Display videos from a YouTube channel (channel)"
126
- msgstr ""
127
-
128
- #: inc/admin/class-sbspf-admin.php:117
129
- msgid "Preserve settings when plugin is removed"
130
- msgstr ""
131
-
132
- #: inc/admin/class-sbspf-admin.php:119
133
- msgid ""
134
- "When removing the plugin your settings are automatically erased. Checking "
135
- "this box will prevent any settings from being deleted. This means that you "
136
- "can uninstall and reinstall the plugin without losing your settings."
137
- msgstr ""
138
-
139
- #: inc/admin/class-sbspf-admin.php:128
140
- msgid "Check for new posts"
141
- msgstr ""
142
-
143
- #: inc/admin/class-sbspf-admin.php:136
144
- msgid "General"
145
- msgstr ""
146
-
147
- #: inc/admin/class-sbspf-admin.php:162
148
- msgid "Width of Feed"
149
- msgstr ""
150
-
151
- #: inc/admin/class-sbspf-admin.php:166
152
- msgid "The width of your feed. Any number with a unit like \"px\" or \"%\"."
153
- msgstr ""
154
-
155
- #: inc/admin/class-sbspf-admin.php:174
156
- msgid "Set to be 100% width on mobile?"
157
- msgstr ""
158
-
159
- #: inc/admin/class-sbspf-admin.php:177
160
- #, php-format
161
- msgid ""
162
- "If you set a width on the feed then this will be used on mobile as well as "
163
- "desktop. Check this setting to set the feed width to be 100% on mobile so "
164
- "that it is responsive."
165
- msgstr ""
166
-
167
- #: inc/admin/class-sbspf-admin.php:199
168
- msgid "Height of Feed"
169
- msgstr ""
170
-
171
- #: inc/admin/class-sbspf-admin.php:203
172
- msgid "The height of your feed. Any number with a unit like \"px\" or \"em\"."
173
- msgstr ""
174
-
175
- #: inc/admin/class-sbspf-admin.php:216
176
- msgid "Background Color"
177
- msgstr ""
178
-
179
- #: inc/admin/class-sbspf-admin.php:220
180
- msgid "Background color for the feed. Any hex color code."
181
- msgstr ""
182
-
183
- #: inc/admin/class-sbspf-admin.php:227
184
- msgid "Layout"
185
- msgstr ""
186
-
187
- #: inc/admin/class-sbspf-admin.php:238
188
- msgid "Layout Type"
189
- msgstr ""
190
-
191
- #: inc/admin/class-sbspf-admin.php:243
192
- msgid "How your posts are display visually."
193
- msgstr ""
194
-
195
- #: inc/admin/class-sbspf-admin.php:383
196
- msgid "Yes"
197
- msgstr ""
198
-
199
- #: inc/admin/class-sbspf-admin.php:534
200
- msgid "Connect an account above"
201
- msgstr ""
202
-
203
- #: inc/admin/class-sbspf-admin.php:565 inc/admin/class-sby-admin.php:354
204
- msgid "When the page loads"
205
- msgstr ""
206
-
207
- #: inc/admin/class-sbspf-admin.php:567 inc/admin/class-sby-admin.php:356
208
- #, php-format
209
- msgid ""
210
- "Your %s data is temporarily cached by the plugin in your WordPress database. "
211
- "There are two ways that you can set the plugin to check for new data:"
212
- "<br><br>\n"
213
- " <b>1. When the page loads</b><br>Selecting this option means "
214
- "that when the cache expires then the plugin will check %s for new posts the "
215
- "next time that the feed is loaded. You can choose how long this data should "
216
- "be cached for. If you set the time to 60 minutes then the plugin will clear "
217
- "the cached data after that length of time, and the next time the page is "
218
- "viewed it will check for new data. <b>Tip:</b> If you're experiencing an "
219
- "issue with the plugin not updating automatically then try enabling the "
220
- "setting labeled <b>'Force cache to clear on interval'</b> which is located "
221
- "on the 'Customize' tab.<br><br>\n"
222
- " <b>2. In the background</b><br>Selecting this option means "
223
- "that the plugin will check for new data in the background so that the feed "
224
- "is updated behind the scenes. You can select at what time and how often the "
225
- "plugin should check for new data using the settings below. <b>Please note</"
226
- "b> that the plugin will initially check for data from Instagram when the "
227
- "page first loads, but then after that will check in the background on the "
228
- "schedule selected - unless the cache is cleared."
229
- msgstr ""
230
-
231
- #: inc/admin/class-sbspf-admin.php:573 inc/admin/class-sby-admin.php:362
232
- msgid "Every"
233
- msgstr ""
234
-
235
- #: inc/admin/class-sbspf-admin.php:576 inc/admin/class-sby-admin.php:365
236
- msgid "Minutes"
237
- msgstr ""
238
-
239
- #: inc/admin/class-sbspf-admin.php:577 inc/admin/class-sby-admin.php:366
240
- msgid "Hours"
241
- msgstr ""
242
-
243
- #: inc/admin/class-sbspf-admin.php:578 inc/admin/class-sby-admin.php:367
244
- msgid "Days"
245
- msgstr ""
246
-
247
- #: inc/admin/class-sbspf-admin.php:580 inc/admin/class-sbspf-admin.php:847
248
- #: inc/admin/class-sby-admin.php:369
249
- msgid "What does this mean?"
250
- msgstr ""
251
-
252
- #: inc/admin/class-sbspf-admin.php:581 inc/admin/class-sby-admin.php:370
253
- #, php-format
254
- msgid ""
255
- "Your %s posts are temporarily cached by the plugin in your WordPress "
256
- "database. You can choose how long the posts should be cached for. If you set "
257
- "the time to 1 hour then the plugin will clear the cache after that length of "
258
- "time and check %s for posts again."
259
- msgstr ""
260
-
261
- #: inc/admin/class-sbspf-admin.php:586 inc/admin/class-sby-admin.php:375
262
- msgid "In the background"
263
- msgstr ""
264
-
265
- #: inc/admin/class-sbspf-admin.php:591 inc/admin/class-sby-admin.php:380
266
- #: youtube-feed.php:180
267
- msgid "Every 30 minutes"
268
- msgstr ""
269
-
270
- #: inc/admin/class-sbspf-admin.php:592 inc/admin/class-sby-admin.php:381
271
- msgid "Every hour"
272
- msgstr ""
273
-
274
- #: inc/admin/class-sbspf-admin.php:593 inc/admin/class-sby-admin.php:382
275
- msgid "Every 12 hours"
276
- msgstr ""
277
-
278
- #: inc/admin/class-sbspf-admin.php:594 inc/admin/class-sby-admin.php:383
279
- msgid "Every 24 hours"
280
- msgstr ""
281
-
282
- #: inc/admin/class-sbspf-admin.php:598 inc/admin/class-sby-admin.php:387
283
- msgid "at"
284
- msgstr ""
285
-
286
- #: inc/admin/class-sbspf-admin.php:615 inc/admin/class-sby-admin.php:404
287
- msgid "AM"
288
- msgstr ""
289
-
290
- #: inc/admin/class-sbspf-admin.php:616 inc/admin/class-sby-admin.php:405
291
- msgid "PM"
292
- msgstr ""
293
-
294
- #: inc/admin/class-sbspf-admin.php:628 inc/admin/class-sby-admin.php:417
295
- msgid "every 30 minutes"
296
- msgstr ""
297
-
298
- #: inc/admin/class-sbspf-admin.php:629 inc/admin/class-sby-admin.php:418
299
- msgid "every 12 hours"
300
- msgstr ""
301
-
302
- #: inc/admin/class-sbspf-admin.php:631 inc/admin/class-sby-admin.php:420
303
- msgid "Next check"
304
- msgstr ""
305
-
306
- #: inc/admin/class-sbspf-admin.php:631 inc/admin/class-sby-admin.php:420
307
- msgid ""
308
- "Note: Saving the settings on this page will clear the cache and reset this "
309
- "schedule"
310
- msgstr ""
311
-
312
- #: inc/admin/class-sbspf-admin.php:633 inc/admin/class-sby-admin.php:422
313
- msgid "Nothing currently scheduled"
314
- msgstr ""
315
-
316
- #: inc/admin/class-sbspf-admin.php:666
317
- msgid "Click for shortcode option"
318
- msgstr ""
319
-
320
- #: inc/admin/class-sby-admin.php:19
321
- msgid "Number of Videos"
322
- msgstr ""
323
-
324
- #: inc/admin/class-sby-admin.php:20
325
- msgid "Number of videos to show initially."
326
- msgstr ""
327
-
328
- #: inc/admin/class-sby-admin.php:24
329
- msgid "The number of videos in the feed"
330
- msgstr ""
331
-
332
- #: inc/admin/class-sby-admin.php:47
333
- msgid "Spacing between videos"
334
- msgstr ""
335
-
336
- #: inc/admin/class-sby-admin.php:51
337
- msgid ""
338
- "The spacing/padding around the videos in the feed. Any number with a unit "
339
- "like \"px\" or \"em\"."
340
- msgstr ""
341
-
342
- #: inc/admin/class-sby-admin.php:60
343
- msgid "Header"
344
- msgstr ""
345
-
346
- #: inc/admin/class-sby-admin.php:70
347
- msgid "Show Header"
348
- msgstr ""
349
-
350
- #: inc/admin/class-sby-admin.php:75
351
- msgid "Include a header for this feed."
352
- msgstr ""
353
-
354
- #: inc/admin/class-sby-admin.php:85
355
- msgid "Show Channel Description"
356
- msgstr ""
357
-
358
- #: inc/admin/class-sby-admin.php:90
359
- msgid "Include the channel description in the header."
360
- msgstr ""
361
-
362
- #: inc/admin/class-sby-admin.php:97
363
- msgid "\"Load More\" Button"
364
- msgstr ""
365
-
366
- #: inc/admin/class-sby-admin.php:107
367
- msgid "Show \"Load More\" Button"
368
- msgstr ""
369
-
370
- #: inc/admin/class-sby-admin.php:112
371
- msgid ""
372
- "Include a \"Load More\" button at the bottom of the feed to load more videos."
373
- msgstr ""
374
-
375
- #: inc/admin/class-sby-admin.php:123
376
- msgid "Button Background Color"
377
- msgstr ""
378
-
379
- #: inc/admin/class-sby-admin.php:127
380
- msgid "Background color for the \"Load More\" button. Any hex color code."
381
- msgstr ""
382
-
383
- #: inc/admin/class-sby-admin.php:138
384
- msgid "Button Text Color"
385
- msgstr ""
386
-
387
- #: inc/admin/class-sby-admin.php:142
388
- msgid "Text color for the \"Load More\" button. Any hex color code."
389
- msgstr ""
390
-
391
- #: inc/admin/class-sby-admin.php:150 youtube-feed.php:412
392
- msgid "Load More..."
393
- msgstr ""
394
-
395
- #: inc/admin/class-sby-admin.php:153
396
- msgid "Button Text"
397
- msgstr ""
398
-
399
- #: inc/admin/class-sby-admin.php:157
400
- msgid "The text that appers on the \"Load More\" button."
401
- msgstr ""
402
-
403
- #: inc/admin/class-sby-admin.php:165
404
- msgid "\"Subscribe\" Button"
405
- msgstr ""
406
-
407
- #: inc/admin/class-sby-admin.php:176
408
- msgid "Show \"Subscribe\" Button"
409
- msgstr ""
410
-
411
- #: inc/admin/class-sby-admin.php:181
412
- msgid ""
413
- "Include a \"Subscribe\" button at the bottom of the feed to load more videos."
414
- msgstr ""
415
-
416
- #: inc/admin/class-sby-admin.php:192
417
- msgid "Subscribe Background Color"
418
- msgstr ""
419
-
420
- #: inc/admin/class-sby-admin.php:196
421
- msgid "Background color for the \"Subscribe\" button. Any hex color code."
422
- msgstr ""
423
-
424
- #: inc/admin/class-sby-admin.php:207
425
- msgid "Subscribe Text Color"
426
- msgstr ""
427
-
428
- #: inc/admin/class-sby-admin.php:211
429
- msgid "Text color for the \"Subscribe\" button. Any hex color code."
430
- msgstr ""
431
-
432
- #: inc/admin/class-sby-admin.php:219 youtube-feed.php:413
433
- msgid "Subscribe"
434
- msgstr ""
435
-
436
- #: inc/admin/class-sby-admin.php:222
437
- msgid "Subscribe Text"
438
- msgstr ""
439
-
440
- #: inc/admin/class-sby-admin.php:226
441
- msgid "The text that appers on the \"Subscribe\" button."
442
- msgstr ""
443
-
444
- #: inc/admin/class-sby-admin.php:233
445
- msgid "Video Experience"
446
- msgstr ""
447
-
448
- #: inc/admin/class-sby-admin.php:241
449
- msgid "Play when clicked"
450
- msgstr ""
451
-
452
- #: inc/admin/class-sby-admin.php:254
453
- msgid "When does video play?"
454
- msgstr ""
455
-
456
- #: inc/admin/class-sby-admin.php:258
457
- msgid "What the user needs to do to play a video. eg."
458
- msgstr ""
459
-
460
- #: inc/admin/class-sby-admin.php:262
461
- msgid ""
462
- "List layout will not play automatically. Choose whether to play the video "
463
- "automatically in the player or wait until the user clicks the play button "
464
- "after the video is loaded."
465
- msgstr ""
466
-
467
- #: inc/admin/class-sby-admin.php:267
468
- msgid "Custom Code Snippets"
469
- msgstr ""
470
-
471
- #: inc/admin/class-sby-admin.php:278
472
- msgid "Custom CSS"
473
- msgstr ""
474
-
475
- #: inc/admin/class-sby-admin.php:280
476
- msgid "Enter your own custom CSS in the box below"
477
- msgstr ""
478
-
479
- #: inc/admin/class-sby-admin.php:289
480
- msgid "Custom JavaScript"
481
- msgstr ""
482
-
483
- #: inc/admin/class-sby-admin.php:291
484
- msgid "Enter your own custom JavaScript/jQuery in the box below"
485
- msgstr ""
486
-
487
- #: inc/admin/class-sby-admin.php:292
488
- msgid ""
489
- "Note: Custom JavaScript reruns every time more videos are loaded into the "
490
- "feed"
491
- msgstr ""
492
-
493
- #: inc/admin/class-sby-admin.php:297
494
- msgid "Advanced"
495
- msgstr ""
496
-
497
- #: inc/admin/class-sby-admin.php:305
498
- msgid "Background"
499
- msgstr ""
500
-
501
- #: inc/admin/class-sby-admin.php:309
502
- msgid "Page"
503
- msgstr ""
504
-
505
- #: inc/admin/class-sby-admin.php:313
506
- msgid "None"
507
- msgstr ""
508
-
509
- #: inc/admin/class-sby-admin.php:323
510
- msgid "Local storage process"
511
- msgstr ""
512
-
513
- #: inc/admin/class-sby-admin.php:326
514
- msgid ""
515
- "To preserve your feeds and videos even if the YouTube API is unavailable, a "
516
- "record of each video is added to the wp_posts table in the WordPress "
517
- "database."
518
- msgstr ""
519
-
520
- #: inc/admin/class-sby-admin.php:334
521
- msgid "Are you using an AJAX theme?"
522
- msgstr ""
523
-
524
- #: inc/admin/class-sby-admin.php:336
525
- msgid ""
526
- "When navigating your site, if your theme uses Ajax to load content into your "
527
- "pages (meaning your page doesn't refresh) then check this setting. If you're "
528
- "not sure then it's best to leave this setting unchecked while checking with "
529
- "your theme author, otherwise checking it may cause a problem."
530
- msgstr ""
531
-
532
- #: inc/admin/templates/configure.php:3
533
- #, php-format
534
- msgid "Log in to %s and connect an account"
535
- msgstr ""
536
-
537
- #: inc/admin/templates/configure.php:4
538
- msgid "Button not working?"
539
- msgstr ""
540
-
541
- #: inc/admin/templates/configure.php:15
542
- #, php-format
543
- msgid "Or, manually enter my own %s API key"
544
- msgstr ""
545
-
546
- #: inc/admin/templates/configure.php:18
547
- msgid ""
548
- "Check this box if you would like to manually enter your own API key. To "
549
- "generate an api key use <a href=\"https://smashballoon.com/youtube-api-key/"
550
- "\" target=\"_blank\" rel=\"noopener\">these instructions.</a>"
551
- msgstr ""
552
-
553
- #: inc/admin/templates/configure.php:24
554
- msgid "API Key"
555
- msgstr ""
556
-
557
- #: inc/admin/templates/configure.php:40 inc/admin/templates/customize.php:8
558
- msgid "Save Changes"
559
- msgstr ""
560
-
561
- #: inc/admin/templates/connected-accounts.php:9
562
- #, php-format
563
- msgid "%s Accounts"
564
- msgstr ""
565
-
566
- #: inc/admin/templates/connected-accounts.php:10
567
- #, php-format
568
- msgid "Use the button above to connect %s account"
569
- msgstr ""
570
-
571
- #: inc/admin/templates/connected-accounts.php:14
572
- #, php-format
573
- msgid "No %s accounts connected. Click the button above to connect an account."
574
- msgstr ""
575
-
576
- #: inc/admin/templates/connected-accounts.php:33
577
- msgid "Manually Connect a Primary Account"
578
- msgstr ""
579
-
580
- #: inc/admin/templates/connected-accounts.php:35
581
- msgid "Enter a valid Access Token"
582
- msgstr ""
583
-
584
- #: inc/admin/templates/connected-accounts.php:36
585
- msgid "Enter a valid Refresh Token"
586
- msgstr ""
587
-
588
- #: inc/admin/templates/connected-accounts.php:37
589
- msgid "Connect This Account"
590
- msgstr ""
591
-
592
- #: inc/admin/templates/display.php:1
593
- msgid "Display your Feed"
594
- msgstr ""
595
-
596
- #: inc/admin/templates/display.php:2
597
- msgid ""
598
- "Copy and paste the following shortcode directly into the page, post or "
599
- "widget where you'd like the feed to show up:"
600
- msgstr ""
601
-
602
- #: inc/admin/templates/display.php:3 inc/admin/templates/main.php:59
603
- #: inc/admin/templates/single-connected-account.php:39
604
- #: inc/admin/templates/single-connected-account.php:40
605
- #: inc/admin/templates/single-connected-account.php:41
606
- msgid "To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac)."
607
- msgstr ""
608
-
609
- #: inc/admin/templates/display.php:5
610
- msgid "Multiple Feeds"
611
- msgstr ""
612
-
613
- #: inc/admin/templates/display.php:6
614
- msgid ""
615
- "If you'd like to display multiple feeds then you can set different settings "
616
- "directly in the shortcode like so:"
617
- msgstr ""
618
-
619
- #: inc/admin/templates/display.php:8
620
- msgid ""
621
- "You can display as many different feeds as you like, on either the same page "
622
- "or on different pages, by just using the shortcode options below. For "
623
- "example:"
624
- msgstr ""
625
-
626
- #: inc/admin/templates/display.php:13
627
- msgid "See the table below for a full list of available shortcode options:"
628
- msgstr ""
629
-
630
- #: inc/admin/templates/display.php:18
631
- msgid "Shortcode option"
632
- msgstr ""
633
-
634
- #: inc/admin/templates/display.php:19
635
- msgid "Description"
636
- msgstr ""
637
-
638
- #: inc/admin/templates/display.php:20
639
- msgid "Example"
640
- msgstr ""
641
-
642
- #: inc/admin/templates/display.php:37 inc/admin/templates/support.php:1
643
- msgid "Need help?"
644
- msgstr ""
645
-
646
- #: inc/admin/templates/display.php:37
647
- msgid "Get Support"
648
- msgstr ""
649
-
650
- #: inc/admin/templates/main.php:17
651
- msgid "Settings saved."
652
- msgstr ""
653
-
654
- #: inc/admin/templates/main.php:50
655
- msgid "Next Step"
656
- msgstr ""
657
-
658
- #: inc/admin/templates/main.php:54
659
- msgid "Need help setting up the plugin? Check out our <a href=\""
660
- msgstr ""
661
-
662
- #: inc/admin/templates/main.php:58
663
- msgid ""
664
- "Copy and paste this shortcode directly into the page, post or widget where "
665
- "you'd like to display the feed:"
666
- msgstr ""
667
-
668
- #: inc/admin/templates/main.php:60
669
- msgid "Find out how to display <a href='?page="
670
- msgstr ""
671
-
672
- #: inc/admin/templates/single-connected-account.php:4
673
- msgid ""
674
- "The Access Token for this account is expired or invalid. Click the button "
675
- "above to attempt to renew it."
676
- msgstr ""
677
-
678
- #: inc/admin/templates/single-connected-account.php:9
679
- msgid "Remove"
680
- msgstr ""
681
-
682
- #: inc/admin/templates/single-connected-account.php:14
683
- msgid "Channel ID:"
684
- msgstr ""
685
-
686
- #: inc/admin/templates/single-connected-account.php:18
687
- msgid "Add to another Feed"
688
- msgstr ""
689
-
690
- #: inc/admin/templates/single-connected-account.php:19
691
- msgid "Show access token and account info"
692
- msgstr ""
693
-
694
- #: inc/admin/templates/single-connected-account.php:24
695
- msgid "Copy and paste this shortcode into your page or widget area"
696
- msgstr ""
697
-
698
- #: inc/admin/templates/single-connected-account.php:32
699
- msgid ""
700
- "To add multiple channels in the same feed, simply separate them using commas"
701
- msgstr ""
702
-
703
- #: inc/admin/templates/single-connected-account.php:35
704
- #, php-format
705
- msgid "Click on the %s tab to learn more about shortcodes"
706
- msgstr ""
707
-
708
- #: inc/admin/templates/single-connected-account.php:35
709
- msgid "Display Your Feed"
710
- msgstr ""
711
-
712
- #: inc/admin/templates/single-connected-account.php:39
713
- msgid "Access Token"
714
- msgstr ""
715
-
716
- #: inc/admin/templates/single-connected-account.php:40
717
- msgid "Refresh Token"
718
- msgstr ""
719
-
720
- #: inc/admin/templates/single-connected-account.php:41
721
- msgid "Channel ID"
722
- msgstr ""
723
-
724
- #: inc/admin/templates/support.php:3
725
- msgid "Check out our "
726
- msgstr ""
727
-
728
- #: inc/admin/templates/support.php:3
729
- msgid "setup directions"
730
- msgstr ""
731
-
732
- #: inc/admin/templates/support.php:3
733
- msgid "for a step-by-step guide on how to setup and use the plugin"
734
- msgstr ""
735
-
736
- #: inc/admin/templates/support.php:5
737
- msgid "Have a problem? Submit a "
738
- msgstr ""
739
-
740
- #: inc/admin/templates/support.php:5
741
- msgid "support ticket"
742
- msgstr ""
743
-
744
- #: inc/admin/templates/support.php:5
745
- msgid "on our website"
746
- msgstr ""
747
-
748
- #: inc/admin/templates/support.php:5
749
- msgid "Please include your <b>System Info</b> below with all support requests."
750
- msgstr ""
751
-
752
- #: inc/admin/templates/support.php:8
753
- msgid "System Info"
754
- msgstr ""
755
-
756
- #: inc/admin/templates/support.php:8
757
- msgid "Click the text below to select all"
758
- msgstr ""
759
-
760
- #: inc/class-sby-api-connect.php:102
761
- #, php-format
762
- msgid "Error: %s."
763
- msgstr ""
764
-
765
- #: inc/class-sby-api-connect.php:104
766
- msgid ""
767
- "There's an issue with the YouTube API Key that you are using. Please check "
768
- "to make sure that this is a valid API Key."
769
- msgstr ""
770
-
771
- #: inc/class-sby-api-connect.php:118
772
- #, php-format
773
- msgid "Error connecting to %s."
774
- msgstr ""
775
-
776
- #: inc/class-sby-feed.php:737
777
- msgid "Error: No videos found."
778
- msgstr ""
779
-
780
- #: inc/class-sby-feed.php:738
781
- msgid ""
782
- "Make sure this is a valid channel ID and that the channel has videos "
783
- "available on youtube.com."
784
- msgstr ""
785
-
786
- #: inc/class-sby-feed.php:863
787
- msgid "No posts found."
788
- msgstr ""
789
-
790
- #: inc/class-sby-posts-manager.php:235
791
- msgid "There was an error creating the folder for storing resized images."
792
- msgstr ""
793
-
794
- #: inc/class-sby-posts-manager.php:323
795
- msgid "Notice: API requests are being delayed for 5 minutes."
796
- msgstr ""
797
-
798
- #: inc/class-sby-posts-manager.php:323
799
- msgid "Feed will not update."
800
- msgstr ""
801
-
802
- #: inc/class-sby-posts-manager.php:332
803
- msgid ""
804
- "There may be an issue with the YouTube access token that you are using. Your "
805
- "server might also be unable to connect to YouTube at this time."
806
- msgstr ""
807
-
808
- #: inc/sby-functions.php:21 inc/sby-functions.php:137
809
- msgid "This error message is only visible to WordPress admins"
810
- msgstr ""
811
-
812
- #: inc/sby-functions.php:22
813
- msgid "Error: No connected account."
814
- msgstr ""
815
-
816
- #: inc/sby-functions.php:23
817
- msgid "Please go to the YouTube Feed settings page to connect an account."
818
- msgstr ""
819
-
820
- #: inc/widget.php:13 youtube-feed.php:94
821
- msgid "YouTube Feed"
822
- msgstr ""
823
-
824
- #: inc/widget.php:14
825
- msgid "Display your YouTube feed"
826
- msgstr ""
827
-
828
- #: inc/widget.php:40
829
- msgid "Title:"
830
- msgstr ""
831
-
832
- #: templates/item.php:22 templates/player.php:10
833
- msgid "Image for post"
834
- msgstr ""
835
-
836
- #: templates/item.php:34 templates/player.php:17
837
- #, php-format
838
- msgid "YouTube Video %s"
839
- msgstr ""
840
-
841
- #: youtube-feed.php:97
842
- msgid "a"
843
- msgstr ""
844
-
845
- #: youtube-feed.php:100
846
- msgid "YouTube"
847
- msgstr ""
848
-
849
- #: youtube-feed.php:125
850
- msgid "Videos"
851
- msgstr ""
852
-
853
- #: youtube-feed.php:126
854
- msgid " "
855
- msgstr ""
856
-
857
- #: youtube-feed.php:127 youtube-feed.php:128
858
- msgid "Add New Video"
859
- msgstr ""
860
-
861
- #: youtube-feed.php:129
862
- msgid "Edit Video"
863
- msgstr ""
864
-
865
- #: youtube-feed.php:130
866
- msgid "View Video"
867
- msgstr ""
868
-
869
- #: youtube-feed.php:131
870
- msgid "All Videos"
871
- msgstr ""
872
-
873
- #: youtube-feed.php:441
874
- msgid "Settings"
875
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/item.php CHANGED
@@ -23,10 +23,14 @@ $permalink = SBY_Parse::get_permalink( $post );
23
  $img_alt = SBY_Parse::get_caption( $post, __( 'Image for post' ) . ' ' . $post_id );
24
  $items_style_attr = SBY_Display_Elements::get_style_att( 'item', $settings );
25
  $title = SBY_Parse::get_video_title( $post );
 
 
 
26
  ?>
27
- <div class="sby_item <?php echo esc_attr( $classes ); ?>" id="sby_<?php echo esc_html( $post_id ); ?>" data-date="<?php echo esc_html( $timestamp ); ?>" data-video-id="<?php echo esc_attr( $video_id ); ?>"<?php echo $items_style_attr; ?>>
28
  <div class="sby_video_thumbnail_wrap">
29
  <a class="sby_video_thumbnail sby_item_video_thumbnail" href="<?php echo esc_url( $permalink ); ?>" target="_blank" rel="noopener" data-full-res="<?php echo esc_url( $media_full_res ); ?>" data-img-src-set="<?php echo esc_attr( wp_json_encode( $media_all_sizes_json ) ); ?>" data-video-id="<?php echo esc_attr( $video_id ); ?>">
 
30
 
31
  <div class="sby_thumbnail_hover">
32
  <span class="sby_video_title"><?php echo esc_html( $title ); ?></span>
@@ -36,7 +40,6 @@ $title = SBY_Parse::get_video_title( $post );
36
  <?php if ( SBY_Display_Elements::should_show_element( 'icon', $context, $settings ) ) : ?>
37
  <span class="sby_play_btn"><?php echo SBY_Display_Elements::get_icon( 'play', 'svg' ); ?></span>
38
  <?php endif; ?>
39
- <img src="<?php echo esc_url( $media_url ); ?>" alt="<?php echo esc_attr( $img_alt ); ?>">
40
  <span class="sby_loader sby_hidden" style="background-color: rgb(255, 255, 255);"></span>
41
  </a>
42
 
23
  $img_alt = SBY_Parse::get_caption( $post, __( 'Image for post' ) . ' ' . $post_id );
24
  $items_style_attr = SBY_Display_Elements::get_style_att( 'item', $settings );
25
  $title = SBY_Parse::get_video_title( $post );
26
+
27
+ $additional_atts = apply_filters( 'sby_item_additional_data_atts', array(), $post, array() );
28
+ $additional_atts_string = SBY_Display_Elements::escaped_data_att_string( $additional_atts );
29
  ?>
30
+ <div class="sby_item <?php echo esc_attr( $classes ); ?>" id="sby_<?php echo esc_html( $post_id ); ?>" data-date="<?php echo esc_html( $timestamp ); ?>" data-video-id="<?php echo esc_attr( $video_id ); ?>"<?php echo $items_style_attr; ?><?php echo $additional_atts_string; ?>>
31
  <div class="sby_video_thumbnail_wrap">
32
  <a class="sby_video_thumbnail sby_item_video_thumbnail" href="<?php echo esc_url( $permalink ); ?>" target="_blank" rel="noopener" data-full-res="<?php echo esc_url( $media_full_res ); ?>" data-img-src-set="<?php echo esc_attr( wp_json_encode( $media_all_sizes_json ) ); ?>" data-video-id="<?php echo esc_attr( $video_id ); ?>">
33
+ <img src="<?php echo esc_url( $media_url ); ?>" alt="<?php echo esc_attr( $img_alt ); ?>">
34
 
35
  <div class="sby_thumbnail_hover">
36
  <span class="sby_video_title"><?php echo esc_html( $title ); ?></span>
40
  <?php if ( SBY_Display_Elements::should_show_element( 'icon', $context, $settings ) ) : ?>
41
  <span class="sby_play_btn"><?php echo SBY_Display_Elements::get_icon( 'play', 'svg' ); ?></span>
42
  <?php endif; ?>
 
43
  <span class="sby_loader sby_hidden" style="background-color: rgb(255, 255, 255);"></span>
44
  </a>
45
 
youtube-feed.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Feeds for YouTube
4
  Plugin URI: http://smashballoon.com/youtube-feed
5
  Description: The Feeds for YouTube plugin allows you to display customizable YouTube feeds from any YouTube channel.
6
- Version: 1.2
7
  Author: Smash Balloon YouTube Team
8
  Author URI: http://smashballoon.com/
9
  Text Domain: feeds-for-youtube
@@ -26,7 +26,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
27
 
28
  if ( ! defined( 'SBYVER' ) ) {
29
- define( 'SBYVER', '1.2' );
30
  }
31
  if ( ! defined( 'SBY_DBVERSION' ) ) {
32
  define( 'SBY_DBVERSION', 1.1 );
@@ -611,6 +611,7 @@ if ( function_exists( 'sby_init' ) ) {
611
  'include' => array( 'title', 'icon', 'user', 'views', 'date', 'countdown' ),
612
  'hoverinclude' => array( 'description', 'stats' ),
613
  'playerratio' => '9:16',
 
614
  );
615
 
616
  return $defaults;
3
  Plugin Name: Feeds for YouTube
4
  Plugin URI: http://smashballoon.com/youtube-feed
5
  Description: The Feeds for YouTube plugin allows you to display customizable YouTube feeds from any YouTube channel.
6
+ Version: 1.2.1
7
  Author: Smash Balloon YouTube Team
8
  Author URI: http://smashballoon.com/
9
  Text Domain: feeds-for-youtube
26
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
27
 
28
  if ( ! defined( 'SBYVER' ) ) {
29
+ define( 'SBYVER', '1.2.1' );
30
  }
31
  if ( ! defined( 'SBY_DBVERSION' ) ) {
32
  define( 'SBY_DBVERSION', 1.1 );
611
  'include' => array( 'title', 'icon', 'user', 'views', 'date', 'countdown' ),
612
  'hoverinclude' => array( 'description', 'stats' ),
613
  'playerratio' => '9:16',
614
+ 'eagerload' => false
615
  );
616
 
617
  return $defaults;