Version Description
Download this release
Release Info
Developer | javitxu123 |
Plugin | Youtube Channel Gallery |
Version | 1.5.2 |
Comparing to | |
See all releases |
Code changes from version 1.4.5 to 1.5.2
- admin-script.js +15 -0
- admin-styles.css +6 -0
- img/play.png +0 -0
- readme.txt +2 -2
- scripts.js +18 -10
- uninstall.php +7 -0
- youtube-channel-gallery.php +314 -133
admin-script.js
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function($) {
|
2 |
+
$('.edit-player-options').live('click',function(){
|
3 |
+
$(".player-options-select").slideToggle("fast");
|
4 |
+
});
|
5 |
+
|
6 |
+
|
7 |
+
$('.edit-thumbnails-options').live('click',function(){
|
8 |
+
$(".thumbnails-options-select").slideToggle("fast");
|
9 |
+
});
|
10 |
+
|
11 |
+
|
12 |
+
$('.edit-link-options').live('click',function(){
|
13 |
+
$(".link-options-select").slideToggle("fast");
|
14 |
+
});
|
15 |
+
});
|
admin-styles.css
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
fieldset{
|
2 |
+
border-radius: 5px;
|
3 |
+
background: #F3F3F3;
|
4 |
+
border: 1px solid #DFDFDF;
|
5 |
+
padding: 10px
|
6 |
+
}
|
img/play.png
ADDED
Binary file
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Youtube Channel Gallery ===
|
2 |
-
Contributors:
|
3 |
Donate link: http://poselab.com/
|
4 |
Tags: widget, gallery, youtube, channel, user
|
5 |
Requires at least: 2.8
|
6 |
Tested up to: 3.4.1
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
1 |
=== Youtube Channel Gallery ===
|
2 |
+
Contributors: javitxu123
|
3 |
Donate link: http://poselab.com/
|
4 |
Tags: widget, gallery, youtube, channel, user
|
5 |
Requires at least: 2.8
|
6 |
Tested up to: 3.4.1
|
7 |
+
Stable tag: 1.5.2
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
scripts.js
CHANGED
@@ -1,17 +1,25 @@
|
|
1 |
var ytcplayer = {};
|
2 |
|
3 |
-
function ytcplayVideo (iframeid, youtubeid) {
|
|
|
|
|
4 |
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
|
|
12 |
}
|
13 |
-
}
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
15 |
}
|
16 |
|
17 |
}
|
1 |
var ytcplayer = {};
|
2 |
|
3 |
+
function ytcplayVideo (e, iframeid, youtubeid) {
|
4 |
+
if (!e) var e = window.event;
|
5 |
+
try {
|
6 |
|
7 |
+
if(iframeid in ytcplayer) {
|
8 |
+
ytcplayer[iframeid].loadVideoById(youtubeid);
|
9 |
+
}else{
|
10 |
+
ytcplayer[iframeid] = new YT.Player(iframeid, {
|
11 |
+
events: {
|
12 |
+
'onReady': function(){
|
13 |
+
ytcplayer[iframeid].loadVideoById(youtubeid);
|
14 |
+
}
|
15 |
}
|
16 |
+
});
|
17 |
+
}
|
18 |
+
e.preventDefault();
|
19 |
+
}
|
20 |
+
|
21 |
+
catch (err) {
|
22 |
+
console.log('error with API. Try unchecking extra security option in the widget options')
|
23 |
}
|
24 |
|
25 |
}
|
uninstall.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if( !defined( ‘WP_UNINSTALL_PLUGIN’ ) )
|
3 |
+
exit ();
|
4 |
+
|
5 |
+
// Delete options
|
6 |
+
delete_option( 'YoutubeChannelGallery_Widget' );
|
7 |
+
?>
|
youtube-channel-gallery.php
CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://www.poselab.com/
|
|
5 |
Description: Show a youtube video and a gallery of thumbnails for a youtube channel.
|
6 |
Author: Javier Gómez Pose
|
7 |
Author URI: http://www.poselab.com/
|
8 |
-
Version: 1.
|
9 |
License: GPL2
|
10 |
|
11 |
Copyright 2010 Javier Gómez Pose (email : javierpose@gmail.com)
|
@@ -40,6 +40,9 @@ class YoutubeChannelGallery_Widget extends WP_Widget {
|
|
40 |
load_plugin_textdomain('youtube-channel-gallery', false, dirname(plugin_basename( __FILE__ ) ) . '/languages/' );
|
41 |
add_shortcode('Youtube_Channel_Gallery', array($this, 'YoutubeChannelGallery_Shortcode'));
|
42 |
|
|
|
|
|
|
|
43 |
parent::__construct(
|
44 |
'youtubechannelgallery_widget', // Base ID
|
45 |
__( 'Youtube Channel Gallery', 'youtube-channel-gallery' ), // Name
|
@@ -55,6 +58,7 @@ class YoutubeChannelGallery_Widget extends WP_Widget {
|
|
55 |
// Load JavaScript and stylesheets
|
56 |
$this->register_scripts_and_styles();
|
57 |
|
|
|
58 |
extract( $args );
|
59 |
$title = apply_filters( 'widget_title', $instance['title'] );
|
60 |
|
@@ -62,7 +66,7 @@ class YoutubeChannelGallery_Widget extends WP_Widget {
|
|
62 |
if ( ! empty( $title ) )
|
63 |
echo $before_title . $title . $after_title;
|
64 |
|
65 |
-
$this->ytchag_rss_markup($instance);
|
66 |
|
67 |
echo $after_widget;
|
68 |
}
|
@@ -74,13 +78,24 @@ class YoutubeChannelGallery_Widget extends WP_Widget {
|
|
74 |
$instance = $old_instance;
|
75 |
$instance['title'] = strip_tags( $new_instance['title'] );
|
76 |
$instance['ytchag_user'] = strip_tags( $new_instance['ytchag_user'] );
|
77 |
-
|
78 |
-
|
79 |
-
$instance['ytchag_maxitems'] = strip_tags( $new_instance['ytchag_maxitems'] );
|
80 |
$instance['ytchag_video_width'] = strip_tags( $new_instance['ytchag_video_width'] );
|
81 |
-
$instance['
|
82 |
-
$instance['ytchag_thumb_columns'] = strip_tags( $new_instance['ytchag_thumb_columns'] );
|
83 |
$instance['ytchag_theme'] = strip_tags( $new_instance['ytchag_theme'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
|
85 |
return $instance;
|
86 |
}
|
@@ -91,13 +106,28 @@ class YoutubeChannelGallery_Widget extends WP_Widget {
|
|
91 |
public function form( $instance ) {
|
92 |
$title = esc_attr($instance['title']);
|
93 |
$ytchag_user = strip_tags($instance['ytchag_user']);
|
94 |
-
|
95 |
-
|
96 |
$ytchag_video_width = strip_tags($instance['ytchag_video_width']);
|
97 |
-
$
|
98 |
-
$ytchag_thumb_columns = strip_tags($instance['ytchag_thumb_columns']);
|
99 |
$ytchag_theme = strip_tags($instance['ytchag_theme']);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
?>
|
|
|
|
|
101 |
<p>
|
102 |
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'youtube-channel-gallery' ); ?></label>
|
103 |
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
|
@@ -107,39 +137,113 @@ class YoutubeChannelGallery_Widget extends WP_Widget {
|
|
107 |
<label for="<?php echo $this->get_field_id( 'ytchag_user' ); ?>"><?php _e( 'YouTube user name:', 'youtube-channel-gallery' ); ?></label>
|
108 |
<input class="widefat" id="<?php echo $this->get_field_id( 'ytchag_user' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_user' ); ?>" type="text" value="<?php echo esc_attr( $ytchag_user ); ?>" />
|
109 |
</p>
|
110 |
-
|
111 |
-
<p>
|
112 |
-
<input class="checkbox" type="checkbox" <?php checked( (bool) $instance['ytchag_link'], true ); ?> id="<?php echo $this->get_field_id( 'ytchag_link' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_link' ); ?>" />
|
113 |
-
<label for="<?php echo $this->get_field_id( 'ytchag_link' ); ?>"><?php _e('Show link to channel:', 'youtube-channel-gallery'); ?></label><br />
|
114 |
-
</p>
|
115 |
-
|
116 |
-
<p>
|
117 |
-
<label for="ytchag_maxitems"><?php _e( 'Number of videos to show:', 'youtube-channel-gallery' ); ?></label>
|
118 |
-
<input class="widefat" id="<?php echo $this->get_field_id( 'ytchag_maxitems' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_maxitems' ); ?>" type="text" value="<?php echo esc_attr( $ytchag_maxitems ); ?>" />
|
119 |
-
</p>
|
120 |
-
|
121 |
<p>
|
122 |
-
<
|
123 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
</p>
|
125 |
-
|
|
|
|
|
126 |
<p>
|
127 |
-
<
|
128 |
-
<
|
129 |
-
|
|
|
130 |
|
131 |
-
|
132 |
-
|
133 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
</p>
|
135 |
|
|
|
|
|
136 |
<p>
|
137 |
-
<
|
138 |
-
<
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
|
144 |
<?php
|
145 |
}
|
@@ -151,112 +255,149 @@ class YoutubeChannelGallery_Widget extends WP_Widget {
|
|
151 |
private function ytchag_rss_markup($instance){
|
152 |
|
153 |
//$instance variables
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
|
162 |
//defaults
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
|
168 |
//heights of video and thumbnail
|
169 |
-
|
|
|
|
|
|
|
|
|
|
|
170 |
$ytchag_thumb_height = $ytchag_thumb_width*75/100; // 75% 'cos sizes of thumbnail in xml file are 480x360 and 120x90
|
171 |
|
172 |
if( $ytchag_user ) { // only if user name inserted
|
173 |
|
174 |
// links
|
175 |
-
$ytchag_rss_url
|
176 |
$ytchag_link_url = "http://www.youtube.com/user/" . $ytchag_user;
|
177 |
|
|
|
178 |
|
179 |
-
|
180 |
-
|
181 |
-
include_once(ABSPATH . WPINC . '/feed.php');
|
182 |
-
|
183 |
-
$rss = fetch_feed($ytchag_rss_url);
|
184 |
-
$maxitems = ( $ytchag_maxitems ) ? $ytchag_maxitems : 9;
|
185 |
-
$items = $rss->get_items(0, $maxitems);
|
186 |
-
|
187 |
|
188 |
-
|
189 |
-
$i = 0;
|
190 |
-
$column = 0;
|
191 |
-
foreach ( $items as $item ) {
|
192 |
|
193 |
-
|
194 |
-
|
195 |
-
|
|
|
|
|
|
|
|
|
|
|
196 |
|
197 |
-
|
|
|
|
|
|
|
198 |
|
199 |
-
|
200 |
-
|
|
|
201 |
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
if($ytchag_thumb_width > '120'){
|
207 |
-
$size = $big;
|
208 |
-
}
|
209 |
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
214 |
}
|
215 |
}
|
216 |
-
}
|
217 |
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
<ul class="ytchagallery">
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
<a class="ytcthumb" href="
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
if( $ytchag_link) {
|
250 |
-
?>
|
251 |
-
<a href="<?php echo $ytchag_link_url ?>" class="more"><?php _e('Show more videos»', 'youtube-channel-gallery') ?></a>
|
252 |
-
<?php
|
253 |
}
|
|
|
|
|
254 |
}
|
255 |
} else {
|
256 |
-
|
257 |
-
<p class="empty"><?php _e('There is no video to show.', 'youtube-channel-gallery') ?></p>
|
258 |
-
<?php
|
259 |
}
|
|
|
260 |
}//ytchag_rss_markup
|
261 |
|
262 |
//parse youtube url to extract id
|
@@ -274,6 +415,17 @@ class YoutubeChannelGallery_Widget extends WP_Widget {
|
|
274 |
wp_enqueue_style('youtube-channel-gallery', plugins_url('/styles.css', __FILE__), false, false, 'all');
|
275 |
}//register_scripts_and_styles
|
276 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
277 |
/*--------------------------------------------------*/
|
278 |
/* Shortcode
|
279 |
/*--------------------------------------------------*/
|
@@ -285,25 +437,49 @@ class YoutubeChannelGallery_Widget extends WP_Widget {
|
|
285 |
|
286 |
extract( shortcode_atts( array(
|
287 |
'user' => '',
|
288 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
289 |
'maxitems' => '9',
|
290 |
-
'videowidth' => '280',
|
291 |
'thumbwidth' => '85',
|
292 |
'thumbcolumns' => '0',
|
293 |
-
'
|
|
|
|
|
294 |
), $atts ) );
|
295 |
|
296 |
$instance['ytchag_user'] = $user;
|
297 |
-
|
298 |
-
|
299 |
-
$instance['ytchag_maxitems'] = $maxitems;
|
300 |
$instance['ytchag_video_width'] = $videowidth;
|
301 |
-
$instance['
|
302 |
-
$instance['ytchag_thumb_columns'] = $thumbcolumns;
|
303 |
$instance['ytchag_theme'] = $theme;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
|
305 |
|
306 |
-
$this->ytchag_rss_markup($instance);
|
307 |
|
308 |
} // YoutubeChannelGallery_Shortcode
|
309 |
|
@@ -313,11 +489,16 @@ class YoutubeChannelGallery_Widget extends WP_Widget {
|
|
313 |
// register YoutubeChannelGallery_Widget widget
|
314 |
add_action( 'widgets_init', create_function( '', 'register_widget( "YoutubeChannelGallery_Widget" );' ) );
|
315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
|
317 |
|
318 |
-
|
319 |
-
|
320 |
-
/*--------------------------------------------------*/
|
321 |
-
|
322 |
-
|
323 |
-
?>
|
5 |
Description: Show a youtube video and a gallery of thumbnails for a youtube channel.
|
6 |
Author: Javier Gómez Pose
|
7 |
Author URI: http://www.poselab.com/
|
8 |
+
Version: 1.5.2
|
9 |
License: GPL2
|
10 |
|
11 |
Copyright 2010 Javier Gómez Pose (email : javierpose@gmail.com)
|
40 |
load_plugin_textdomain('youtube-channel-gallery', false, dirname(plugin_basename( __FILE__ ) ) . '/languages/' );
|
41 |
add_shortcode('Youtube_Channel_Gallery', array($this, 'YoutubeChannelGallery_Shortcode'));
|
42 |
|
43 |
+
//load admin scripts
|
44 |
+
add_action('admin_print_scripts', array($this, 'register_admin_scripts_and_styles'));
|
45 |
+
|
46 |
parent::__construct(
|
47 |
'youtubechannelgallery_widget', // Base ID
|
48 |
__( 'Youtube Channel Gallery', 'youtube-channel-gallery' ), // Name
|
58 |
// Load JavaScript and stylesheets
|
59 |
$this->register_scripts_and_styles();
|
60 |
|
61 |
+
|
62 |
extract( $args );
|
63 |
$title = apply_filters( 'widget_title', $instance['title'] );
|
64 |
|
66 |
if ( ! empty( $title ) )
|
67 |
echo $before_title . $title . $after_title;
|
68 |
|
69 |
+
echo $this->ytchag_rss_markup($instance);
|
70 |
|
71 |
echo $after_widget;
|
72 |
}
|
78 |
$instance = $old_instance;
|
79 |
$instance['title'] = strip_tags( $new_instance['title'] );
|
80 |
$instance['ytchag_user'] = strip_tags( $new_instance['ytchag_user'] );
|
81 |
+
|
82 |
+
// Player options
|
|
|
83 |
$instance['ytchag_video_width'] = strip_tags( $new_instance['ytchag_video_width'] );
|
84 |
+
$instance['ytchag_ratio'] = strip_tags( $new_instance['ytchag_ratio'] );
|
|
|
85 |
$instance['ytchag_theme'] = strip_tags( $new_instance['ytchag_theme'] );
|
86 |
+
$instance['ytchag_color'] = strip_tags( $new_instance['ytchag_color'] );
|
87 |
+
$instance['ytchag_autoplay'] = strip_tags( $new_instance['ytchag_autoplay'] );
|
88 |
+
$instance['ytchag_rel'] = strip_tags( $new_instance['ytchag_rel'] );
|
89 |
+
$instance['ytchag_showinfo'] = ( isset( $new_instance['ytchag_showinfo'] ) ? 0 : 1 );
|
90 |
+
$instance['ytchag_origin'] = strip_tags( $new_instance['ytchag_origin'] );
|
91 |
+
|
92 |
+
// Thumbnail options
|
93 |
+
$instance['ytchag_maxitems'] = strip_tags( $new_instance['ytchag_maxitems'] );
|
94 |
+
$instance['ytchag_thumb_width'] = strip_tags( $new_instance['ytchag_thumb_width'] );
|
95 |
+
$instance['ytchag_link_tx'] = strip_tags( $new_instance['ytchag_link_tx'] );
|
96 |
+
|
97 |
+
// Link options
|
98 |
+
$instance['ytchag_link'] = $new_instance['ytchag_link'];
|
99 |
|
100 |
return $instance;
|
101 |
}
|
106 |
public function form( $instance ) {
|
107 |
$title = esc_attr($instance['title']);
|
108 |
$ytchag_user = strip_tags($instance['ytchag_user']);
|
109 |
+
|
110 |
+
// Player options
|
111 |
$ytchag_video_width = strip_tags($instance['ytchag_video_width']);
|
112 |
+
$ytchag_ratio = strip_tags($instance['ytchag_ratio']);
|
|
|
113 |
$ytchag_theme = strip_tags($instance['ytchag_theme']);
|
114 |
+
$ytchag_color = strip_tags($instance['ytchag_color']);
|
115 |
+
$ytchag_autoplay = strip_tags($instance['ytchag_autoplay']);
|
116 |
+
$ytchag_rel = strip_tags($instance['ytchag_rel']);
|
117 |
+
$ytchag_showinfo = strip_tags($instance['ytchag_showinfo']);
|
118 |
+
$ytchag_origin = strip_tags($instance['ytchag_origin']);
|
119 |
+
|
120 |
+
// Thumbnails options
|
121 |
+
$ytchag_maxitems = strip_tags($instance['ytchag_maxitems']);
|
122 |
+
$ytchag_thumb_width = strip_tags($instance['ytchag_thumb_width']);
|
123 |
+
$ytchag_link_tx = strip_tags($instance['ytchag_link_tx']);
|
124 |
+
|
125 |
+
// Link options
|
126 |
+
$ytchag_link = esc_attr($instance['ytchag_link']);
|
127 |
+
|
128 |
?>
|
129 |
+
|
130 |
+
|
131 |
<p>
|
132 |
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'youtube-channel-gallery' ); ?></label>
|
133 |
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
|
137 |
<label for="<?php echo $this->get_field_id( 'ytchag_user' ); ?>"><?php _e( 'YouTube user name:', 'youtube-channel-gallery' ); ?></label>
|
138 |
<input class="widefat" id="<?php echo $this->get_field_id( 'ytchag_user' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_user' ); ?>" type="text" value="<?php echo esc_attr( $ytchag_user ); ?>" />
|
139 |
</p>
|
140 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
<p>
|
142 |
+
<a class="edit-player-options hide-if-no-js">Change player options...</a>
|
143 |
+
<fieldset class="player-options-select" style="display: none; ">
|
144 |
+
<legend >Player options:</legend>
|
145 |
+
|
146 |
+
<p>
|
147 |
+
<label for="ytchag_video_width"><?php _e( 'Video width:', 'youtube-channel-gallery' ); ?></label>
|
148 |
+
<input class="widefat" id="<?php echo $this->get_field_id( 'ytchag_video_width' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_video_width' ); ?>" type="text" value="<?php echo esc_attr( $ytchag_video_width ); ?>" />
|
149 |
+
</p>
|
150 |
+
|
151 |
+
<p>
|
152 |
+
|
153 |
+
<label for="ytchag_ratio"><?php _e( 'Aspect ratio:', 'youtube-channel-gallery' ); ?></label>
|
154 |
+
<select class="widefat" id="<?php echo $this->get_field_id( 'ytchag_ratio' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_ratio' ); ?>">
|
155 |
+
<option value="4x3"<?php selected( $instance['ytchag_ratio'], '4x3' ); ?>><?php _e( 'Standard (4x3)', 'youtube-channel-gallery' ); ?></option>
|
156 |
+
<option value="16x9"<?php selected( $instance['ytchag_ratio'], '16x9' ); ?>><?php _e( 'Widescreen (16x9)', 'youtube-channel-gallery' ); ?></option>
|
157 |
+
</select>
|
158 |
+
</p>
|
159 |
+
|
160 |
+
<p>
|
161 |
+
|
162 |
+
<label for="ytchag_theme"><?php _e( 'Theme:', 'youtube-channel-gallery' ); ?></label>
|
163 |
+
<select class="widefat" id="<?php echo $this->get_field_id( 'ytchag_theme' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_theme' ); ?>">
|
164 |
+
<option value="dark"<?php selected( $instance['ytchag_theme'], 'dark' ); ?>><?php _e( 'Dark', 'youtube-channel-gallery' ); ?></option>
|
165 |
+
<option value="light"<?php selected( $instance['ytchag_theme'], 'light' ); ?>><?php _e( 'Light', 'youtube-channel-gallery' ); ?></option>
|
166 |
+
</select>
|
167 |
+
</p>
|
168 |
+
|
169 |
+
<p>
|
170 |
+
|
171 |
+
<label for="ytchag_color"><?php _e( 'Progress bar color:', 'youtube-channel-gallery' ); ?></label>
|
172 |
+
<select class="widefat" id="<?php echo $this->get_field_id( 'ytchag_color' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_color' ); ?>">
|
173 |
+
<option value="red"<?php selected( $instance['ytchag_color'], 'red' ); ?>><?php _e( 'Red', 'youtube-channel-gallery' ); ?></option>
|
174 |
+
<option value="white"<?php selected( $instance['ytchag_color'], 'white' ); ?>><?php _e( 'White', 'youtube-channel-gallery' ); ?></option>
|
175 |
+
</select>
|
176 |
+
</p>
|
177 |
+
|
178 |
+
<input class="checkbox" type="checkbox" <?php checked( (bool) $instance['ytchag_autoplay'], true ); ?> id="<?php echo $this->get_field_id( 'ytchag_autoplay' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_autoplay' ); ?>" />
|
179 |
+
<label for="<?php echo $this->get_field_id( 'ytchag_autoplay' ); ?>"><?php _e('Autoplay', 'youtube-channel-gallery'); ?></label>
|
180 |
+
|
181 |
+
<br>
|
182 |
+
|
183 |
+
<input class="checkbox" type="checkbox" <?php checked( (bool) $instance['ytchag_rel'], true ); ?> id="<?php echo $this->get_field_id( 'ytchag_rel' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_rel' ); ?>" />
|
184 |
+
<label for="<?php echo $this->get_field_id( 'ytchag_rel' ); ?>"><?php _e('Show related videos', 'youtube-channel-gallery'); ?></label>
|
185 |
+
|
186 |
+
<br>
|
187 |
+
|
188 |
+
<input class="checkbox" type="checkbox" <?php checked( (bool) $instance['ytchag_showinfo'], false ); ?> id="<?php echo $this->get_field_id( 'ytchag_showinfo' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_showinfo' ); ?>" />
|
189 |
+
<label for="<?php echo $this->get_field_id( 'ytchag_showinfo' ); ?>"><?php _e('Show info (title, uploader)', 'youtube-channel-gallery'); ?></label>
|
190 |
+
|
191 |
+
<br>
|
192 |
+
|
193 |
+
<input class="checkbox" type="checkbox" <?php checked( (bool) $instance['ytchag_origin'], true ); ?> id="<?php echo $this->get_field_id( 'ytchag_origin' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_origin' ); ?>" />
|
194 |
+
<label for="<?php echo $this->get_field_id( 'ytchag_origin' ); ?>"><?php _e('Extra security (Uncheck if it does not work properly)', 'youtube-channel-gallery'); ?></label>
|
195 |
+
|
196 |
+
|
197 |
+
</fieldset>
|
198 |
</p>
|
199 |
+
|
200 |
+
|
201 |
+
|
202 |
<p>
|
203 |
+
<a class="edit-thumbnails-options hide-if-no-js">Change thumbnails options...</a>
|
204 |
+
<fieldset class="thumbnails-options-select" style="display: none; ">
|
205 |
+
<legend >Thumbnails options:</legend>
|
206 |
+
|
207 |
|
208 |
+
<p>
|
209 |
+
<label for="ytchag_maxitems"><?php _e( 'Number of videos to show:', 'youtube-channel-gallery' ); ?></label>
|
210 |
+
<input class="widefat" id="<?php echo $this->get_field_id( 'ytchag_maxitems' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_maxitems' ); ?>" type="text" value="<?php echo esc_attr( $ytchag_maxitems ); ?>" />
|
211 |
+
</p>
|
212 |
+
|
213 |
+
<p>
|
214 |
+
<label for="ytchag_thumb_width"><?php _e( 'Thumbnail width:', 'youtube-channel-gallery' ); ?></label>
|
215 |
+
<input class="widefat" id="<?php echo $this->get_field_id( 'ytchag_thumb_width' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_thumb_width' ); ?>" type="text" value="<?php echo esc_attr( $ytchag_thumb_width ); ?>" />
|
216 |
+
</p>
|
217 |
+
|
218 |
+
<p>
|
219 |
+
<label for="ytchag_link_tx"><?php _e( 'Thumbnail columns:', 'youtube-channel-gallery' ); ?></label>
|
220 |
+
<input class="widefat" id="<?php echo $this->get_field_id( 'ytchag_link_tx' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_link_tx' ); ?>" type="text" value="<?php echo esc_attr( $ytchag_link_tx ); ?>" />
|
221 |
+
</p>
|
222 |
+
|
223 |
+
</fieldset>
|
224 |
</p>
|
225 |
|
226 |
+
|
227 |
+
|
228 |
<p>
|
229 |
+
<a class="edit-link-options hide-if-no-js">Change link options...</a>
|
230 |
+
<fieldset class="link-options-select" style="display: none; ">
|
231 |
+
<legend >Thumbnails options:</legend>
|
232 |
+
|
233 |
+
|
234 |
+
<p>
|
235 |
+
<label for="ytchag_link_tx"><?php _e( 'Link text:', 'youtube-channel-gallery' ); ?></label>
|
236 |
+
<input class="widefat" id="<?php echo $this->get_field_id( 'ytchag_link_tx' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_link_tx' ); ?>" type="text" value="<?php echo esc_attr( $ytchag_link_tx ); ?>" />
|
237 |
+
</p>
|
238 |
+
|
239 |
+
<p>
|
240 |
+
<input class="checkbox" type="checkbox" <?php checked( (bool) $instance['ytchag_link'], true ); ?> id="<?php echo $this->get_field_id( 'ytchag_link' ); ?>" name="<?php echo $this->get_field_name( 'ytchag_link' ); ?>" />
|
241 |
+
<label for="<?php echo $this->get_field_id( 'ytchag_link' ); ?>"><?php _e('Show link to channel', 'youtube-channel-gallery'); ?></label>
|
242 |
+
</p>
|
243 |
+
|
244 |
+
</fieldset>
|
245 |
+
</p>
|
246 |
+
|
247 |
|
248 |
<?php
|
249 |
}
|
255 |
private function ytchag_rss_markup($instance){
|
256 |
|
257 |
//$instance variables
|
258 |
+
//----------------
|
259 |
+
$ytchag_user = apply_filters('ytchag_user', $instance['ytchag_user']);
|
260 |
+
|
261 |
+
// Player options
|
262 |
+
$ytchag_video_width = apply_filters('ytchag_video_width', $instance['ytchag_video_width']);
|
263 |
+
$ytchag_ratio = apply_filters('ytchag_ratio', $instance['ytchag_ratio']);
|
264 |
+
$ytchag_theme = apply_filters('ytchag_theme', $instance['ytchag_theme']);
|
265 |
+
$ytchag_color = apply_filters('ytchag_color', $instance['ytchag_color']);
|
266 |
+
$ytchag_autoplay = apply_filters('ytchag_autoplay', $instance['ytchag_autoplay']);
|
267 |
+
$ytchag_rel = apply_filters('ytchag_rel', $instance['ytchag_rel']);
|
268 |
+
$ytchag_showinfo = apply_filters('ytchag_showinfo', $instance['ytchag_showinfo']);
|
269 |
+
$ytchag_origin = apply_filters('ytchag_origin', $instance['ytchag_origin']);
|
270 |
+
|
271 |
+
// Thumbnail options
|
272 |
+
$ytchag_maxitems = apply_filters('ytchag_maxitems', $instance['ytchag_maxitems']);
|
273 |
+
$ytchag_thumb_width = apply_filters('ytchag_thumb_width', $instance['ytchag_thumb_width']);
|
274 |
+
$ytchag_link_tx = apply_filters('ytchag_link_tx', $instance['ytchag_link_tx']);
|
275 |
+
$ytchag_link_tx = apply_filters('ytchag_link_tx', $instance['ytchag_link_tx']);
|
276 |
+
|
277 |
+
// Link options
|
278 |
+
$ytchag_link = apply_filters('ytchag_link', $instance['ytchag_link']);
|
279 |
+
|
280 |
+
//end $instance variables
|
281 |
|
282 |
//defaults
|
283 |
+
//----------------
|
284 |
+
// Player options
|
285 |
+
$ytchag_video_width = ( $ytchag_video_width ) ? $ytchag_video_width : 250;
|
286 |
+
$ytchag_theme = ( $ytchag_theme ) ? '&theme='. $ytchag_theme : '';
|
287 |
+
$ytchag_color = ( $ytchag_color ) ? '&color='. $ytchag_color : '';
|
288 |
+
$ytchag_autoplay = ( $ytchag_autoplay ) ? '&autoplay=1' : '';
|
289 |
+
$ytchag_rel = ( $ytchag_rel ) ? '' : '&rel=0';
|
290 |
+
$ytchag_showinfo = ( $ytchag_showinfo ) ? '&showinfo=0' : '';
|
291 |
+
$ytchag_origin = ( $ytchag_origin ) ? '&origin='. site_url() : '';
|
292 |
+
|
293 |
+
// Thumbnail options
|
294 |
+
$ytchag_thumb_width = ( $ytchag_thumb_width ) ? $ytchag_thumb_width : 85;
|
295 |
+
$ytchag_link_tx = ( $ytchag_link_tx ) ? $ytchag_link_tx : 0;
|
296 |
+
$ytchag_link_tx = ( $ytchag_link_tx ) ? $ytchag_link_tx : __('Show more videos»', 'youtube-channel-gallery');
|
297 |
+
|
298 |
+
//end defaults
|
299 |
+
|
300 |
+
|
301 |
|
302 |
//heights of video and thumbnail
|
303 |
+
if ($ytchag_ratio == '16x9') {
|
304 |
+
$ytchag_video_heigh = round( ($ytchag_video_width * 9) / 16);
|
305 |
+
} else {
|
306 |
+
$ytchag_video_heigh = round( ($ytchag_video_width * 3) / 4);
|
307 |
+
}
|
308 |
+
|
309 |
$ytchag_thumb_height = $ytchag_thumb_width*75/100; // 75% 'cos sizes of thumbnail in xml file are 480x360 and 120x90
|
310 |
|
311 |
if( $ytchag_user ) { // only if user name inserted
|
312 |
|
313 |
// links
|
314 |
+
$ytchag_rss_url = "http://gdata.youtube.com/feeds/api/users/" . $ytchag_user . "/uploads";
|
315 |
$ytchag_link_url = "http://www.youtube.com/user/" . $ytchag_user;
|
316 |
|
317 |
+
if ( file_get_contents($ytchag_rss_url) == '' ) { // check if correct user name
|
318 |
|
319 |
+
$content.= '<p class="empty">' . __('You must insert a valid YouTube user name.', 'youtube-channel-gallery') . '</p>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
320 |
|
321 |
+
} else{
|
|
|
|
|
|
|
322 |
|
323 |
+
//RSS Feed
|
324 |
+
|
325 |
+
include_once(ABSPATH . WPINC . '/feed.php');
|
326 |
+
|
327 |
+
$rss = fetch_feed($ytchag_rss_url);
|
328 |
+
$maxitems = ( $ytchag_maxitems ) ? $ytchag_maxitems : 9;
|
329 |
+
$items = $rss->get_items(0, $maxitems);
|
330 |
+
|
331 |
|
332 |
+
if (!empty($items)) {
|
333 |
+
$i = 0;
|
334 |
+
$column = 0;
|
335 |
+
foreach ( $items as $item ) {
|
336 |
|
337 |
+
$url = $item->get_permalink();
|
338 |
+
$youtubeid = $this->youtubeid($url);
|
339 |
+
$title = $item->get_title();
|
340 |
|
341 |
+
if ($enclosure = $item->get_enclosure()){
|
342 |
+
|
343 |
+
//extract thumbnail
|
344 |
+
//-----------------
|
|
|
|
|
|
|
345 |
|
346 |
+
//thumbnail index in xml
|
347 |
+
$big = 0;
|
348 |
+
$small = 1;
|
349 |
+
$size = $small;
|
350 |
+
if($ytchag_thumb_width > '120'){
|
351 |
+
$size = $big;
|
352 |
+
}
|
353 |
+
|
354 |
+
$allThumbs = $enclosure->get_thumbnails();
|
355 |
+
foreach ($allThumbs as $index => $allThumb) {
|
356 |
+
if ($index == $size) {
|
357 |
+
$thumb = $allThumbs[$index];
|
358 |
+
}
|
359 |
}
|
360 |
}
|
|
|
361 |
|
362 |
+
//Show the player: iframe player
|
363 |
+
if($i == 0) {
|
364 |
+
//count the plugin occurrences on page
|
365 |
+
STATIC $plugincount = 0;
|
366 |
+
$plugincount++;
|
367 |
+
|
368 |
+
$content = '<iframe id="ytcplayer' . $plugincount . '" class="ytcplayer" allowfullscreen width="' . $ytchag_video_width . '" height="' . $ytchag_video_heigh . '" src="http://www.youtube.com/embed/' . $youtubeid . '?version=3' . $ytchag_theme . $ytchag_color . $ytchag_autoplay . $ytchag_rel . $ytchag_showinfo . $ytchag_origin .'&enablejsapi=1" frameborder="0"></iframe>';
|
369 |
+
$content.= '<ul class="ytchagallery">';
|
370 |
+
|
371 |
+
|
372 |
+
} // if player end
|
373 |
+
$i++;
|
374 |
+
|
375 |
+
$column++;
|
376 |
+
|
377 |
+
// list of thumbnail videos
|
378 |
+
$content.= '<li class="ytccell-' . $column . '">';
|
379 |
+
$content.= '<a class="ytcthumb" href="http://www.youtube.com/watch?v=' . $youtubeid . '" target="_blank" onclick="ytcplayVideo(event, \'ytcplayer' . $plugincount . '\', \'' . $youtubeid . '\');" alt="' . $title . '" title="' . $title . '" style="background-image: url(' . $thumb . ');">';
|
380 |
+
$content.= '<div class="ytcplay" style="width: ' . $ytchag_thumb_width . 'px; height: ' . $ytchag_thumb_height . 'px"></div></a></li>';
|
381 |
+
|
382 |
+
|
383 |
+
if($ytchag_link_tx !=0 && $column%$ytchag_link_tx === 0){
|
384 |
+
$column = 0;
|
385 |
+
}
|
386 |
+
} //foreach end
|
387 |
+
|
388 |
+
$content.= '</ul>';
|
389 |
+
|
390 |
+
//link to youtube.com gallery
|
391 |
+
if( $ytchag_link) {
|
392 |
+
$content.= '<a href="' . $ytchag_link_url . '" class="more">' . $ytchag_link_tx . '</a>';
|
|
|
|
|
|
|
|
|
393 |
}
|
394 |
+
}
|
395 |
+
|
396 |
}
|
397 |
} else {
|
398 |
+
$content.= '<p class="empty">' . __('You must insert a YouTube user name.', 'youtube-channel-gallery') . '</p>';
|
|
|
|
|
399 |
}
|
400 |
+
return $content;
|
401 |
}//ytchag_rss_markup
|
402 |
|
403 |
//parse youtube url to extract id
|
415 |
wp_enqueue_style('youtube-channel-gallery', plugins_url('/styles.css', __FILE__), false, false, 'all');
|
416 |
}//register_scripts_and_styles
|
417 |
|
418 |
+
|
419 |
+
public function register_admin_scripts_and_styles($hook) {
|
420 |
+
// load in admin > widgets.php
|
421 |
+
//if( 'widgets.php' != $hook )
|
422 |
+
// return;
|
423 |
+
wp_enqueue_script('youtube-channel-gallery', plugins_url('/admin-script.js', __FILE__), false, false, true);
|
424 |
+
wp_enqueue_style('youtube-channel-gallery', plugins_url('/admin-styles.css', __FILE__), false, false, 'all');
|
425 |
+
}
|
426 |
+
|
427 |
+
|
428 |
+
|
429 |
/*--------------------------------------------------*/
|
430 |
/* Shortcode
|
431 |
/*--------------------------------------------------*/
|
437 |
|
438 |
extract( shortcode_atts( array(
|
439 |
'user' => '',
|
440 |
+
|
441 |
+
// Player options
|
442 |
+
'videowidth' => '250',
|
443 |
+
'ratio' => '',
|
444 |
+
'theme' => '',
|
445 |
+
'color' => '',
|
446 |
+
'autoplay' => '',
|
447 |
+
'rel' => '',
|
448 |
+
'showinfo' => '',
|
449 |
+
'origin' => '',
|
450 |
+
|
451 |
+
// Thumbnail options
|
452 |
'maxitems' => '9',
|
|
|
453 |
'thumbwidth' => '85',
|
454 |
'thumbcolumns' => '0',
|
455 |
+
'link' => '',
|
456 |
+
'link_tx' => ''
|
457 |
+
|
458 |
), $atts ) );
|
459 |
|
460 |
$instance['ytchag_user'] = $user;
|
461 |
+
|
462 |
+
// Player options
|
|
|
463 |
$instance['ytchag_video_width'] = $videowidth;
|
464 |
+
$instance['ytchag_ratio'] = $ratio;
|
|
|
465 |
$instance['ytchag_theme'] = $theme;
|
466 |
+
$instance['ytchag_color'] = $color;
|
467 |
+
$instance['ytchag_autoplay'] = $autoplay;
|
468 |
+
$instance['ytchag_rel'] = $rel;
|
469 |
+
$instance['ytchag_showinfo'] = $showinfo;
|
470 |
+
$instance['ytchag_origin'] = $origin;
|
471 |
+
|
472 |
+
// Thumbnail options
|
473 |
+
$instance['ytchag_maxitems'] = $maxitems;
|
474 |
+
$instance['ytchag_thumb_width'] = $thumbwidth;
|
475 |
+
$instance['ytchag_link_tx'] = $thumbcolumns;
|
476 |
+
|
477 |
+
// Link options
|
478 |
+
$instance['ytchag_link'] = $link;
|
479 |
+
$instance['ytchag_link_tx'] = $link_tx;
|
480 |
|
481 |
|
482 |
+
return $this->ytchag_rss_markup($instance);
|
483 |
|
484 |
} // YoutubeChannelGallery_Shortcode
|
485 |
|
489 |
// register YoutubeChannelGallery_Widget widget
|
490 |
add_action( 'widgets_init', create_function( '', 'register_widget( "YoutubeChannelGallery_Widget" );' ) );
|
491 |
|
492 |
+
//check valid user name
|
493 |
+
//correct bug in shortcode position
|
494 |
+
//correct css hover thumbnails
|
495 |
+
//added new fields to control other Youtube player options
|
496 |
+
//Added video url on thumbnails to improve link syntax, accessibility and SEO
|
497 |
+
//Redesign of widget interface for managing so many fields
|
498 |
+
//improved control of height player
|
499 |
+
//improved error handling in javascript. Now, if the API fails it uses the link to Youtube
|
500 |
+
//added field to customize the text link to youtube
|
501 |
|
502 |
|
503 |
+
//uninstall
|
504 |
+
?>
|
|
|
|
|
|
|
|