Smart YouTube PRO - Version 3.0

Version Description

Download this release

Release Info

Developer freediver
Plugin Icon 128x128 Smart YouTube PRO
Version 3.0
Comparing to
See all releases

Code changes from version 2.8.1 to 3.0

Files changed (2) hide show
  1. readme.txt +3 -0
  2. smartyoutube.php +55 -20
readme.txt CHANGED
@@ -34,6 +34,9 @@ Main Features:
34
 
35
  Change Log:
36
 
 
 
 
37
  v2.8.1
38
  - Added option to remove Annotations
39
 
34
 
35
  Change Log:
36
 
37
+ v3.0
38
+ - Added video template, option to set sidebar video size, fixed sidebar widget code, fixed video syntax issue
39
+
40
  v2.8.1
41
  - Added option to remove Annotations
42
 
smartyoutube.php CHANGED
@@ -4,10 +4,11 @@ Plugin Name: Smart Youtube
4
  Plugin URI: http://www.prelovac.com/vladimir/wordpress-plugins/smart-youtube
5
  Description: Insert YouTube videos in posts, comments and RSS feeds with ease and full customization.
6
  Author: Vladimir Prelovac
7
- Version: 2.8.1
8
  Author URI: http://www.prelovac.com/vladimir/
9
 
10
  Updates:
 
11
  2.8.1 - Display Annotioans added as option
12
  2.8 - Support for playlists
13
  2.7.5 - Plugin url updated to use WP_PLUGIN_URL
@@ -83,8 +84,7 @@ function yte_options_page()
83
  // If form was submitted
84
  if (isset($_POST['submitted']))
85
  {
86
- check_admin_referer('smart-youtube');
87
-
88
  $disp_img = !isset($_POST['disp_img'])? 'off': 'on';
89
  $disp_link = !isset($_POST['disp_link'])? 'off': 'on';
90
  $disp_search = !isset($_POST['disp_search'])? 'off': 'on';
@@ -110,6 +110,12 @@ function yte_options_page()
110
 
111
  update_option('smart_yt_widthhq', $disp_widthhq);
112
  update_option('smart_yt_heighthq', $disp_heighthq);
 
 
 
 
 
 
113
 
114
  $disp_rel = !isset($_POST['embedRel'])? '1': $_POST['embedRel'];
115
 
@@ -133,6 +139,8 @@ function yte_options_page()
133
  update_option('smart_yt_posts', $disp_posts);
134
  update_option('smart_yt_comments', $disp_comments);
135
 
 
 
136
 
137
 
138
 
@@ -159,6 +167,9 @@ function yte_options_page()
159
  $disp_widthhq = get_option('smart_yt_widthhq');
160
  $disp_heighthq = get_option('smart_yt_heighthq');
161
 
 
 
 
162
  $disp_autoplay = (get_option('smart_yt_autoplay')=='1') ? 'checked':'';
163
 
164
 
@@ -172,7 +183,7 @@ function yte_options_page()
172
  $disp_posts = (get_option('smart_yt_posts')=='on') ? 'checked' :'' ;
173
  $disp_comments = (get_option('smart_yt_comments')=='on') ? 'checked':'';
174
 
175
-
176
 
177
 
178
  if ($disp_width=="")
@@ -310,6 +321,7 @@ text-decoration:none;
310
  $imgpath=$wp_yte_plugin_url.'/i';
311
  $actionurl=$_SERVER['REQUEST_URI'];
312
  $nonce=wp_create_nonce( 'smart-youtube');
 
313
  // Configuration Page
314
 
315
 
@@ -327,7 +339,7 @@ text-decoration:none;
327
  <img src="$imgpath/rate.png"><a style="text-decoration:none;" href="http://wordpress.org/extend/plugins/smart-youtube/"> Rate this plugin</a><br /><br />
328
  <img src="$imgpath/help.png"><a style="text-decoration:none;" href="http://www.prelovac.com/vladimir/forum"> Support and Help</a><br />
329
  <p >
330
- <a style="text-decoration:none;" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2567254"><img src="$imgpath/paypal.gif"></a>
331
  </p><br />
332
  <img src="$imgpath/more.png"><a style="text-decoration:none;" href="http://www.prelovac.com/vladimir/wordpress-plugins"> Cool WordPress Plugins</a><br /><br />
333
  <img src="$imgpath/twit.png"><a style="text-decoration:none;" href="http://twitter.com/vprelovac"> Follow updates on Twitter</a><br /><br />
@@ -340,8 +352,8 @@ text-decoration:none;
340
  <div class="dbx-content">
341
  <form name="yteform" action="$action_url" method="post">
342
  <input type="hidden" name="submitted" value="1" />
343
- <input type="hidden" id="_wpnonce" name="_wpnonce" value="$nonce" />'
344
- <h2>Usage</h2>
345
 
346
  <p>To use the video in your posts, paste YouTube video URL with <strong>httpv://</strong> (notice the 'v'). </p>
347
  <p><strong>Important:</strong> The URL should just be copied into your post normally and the letter 'v' added, do not create a clickable link!</p>
@@ -367,14 +379,20 @@ text-decoration:none;
367
 
368
 
369
  <br><br><strong>Video Appearence</strong><br><br>
 
 
 
370
 
371
  <p>Video width and height in normal mode. Default is 425x344.</p>
372
  <input id="disp_width" name="disp_width" value="$disp_width" size="7"/>x<input id="disp_height" name="disp_height" value="$disp_height" size="7" /><br>
373
 
374
-
375
  <p>Video width and height in <strong>high quality</strong> mode. Default is 480x360.</p>
376
  <input id="disp_widthhq" name="disp_widthhq" value="$disp_widthhq" size="7" />x<input id="disp_heighthq" name="disp_heighthq" value="$disp_heighthq" size="7" /><br><br>
377
 
 
 
 
 
378
  <br />
379
  <div id="watch-customize-embed-form">
380
  <input type="radio" $disp_rel id="embedCustomization1" name="embedRel" value="1"/>
@@ -444,9 +462,10 @@ add_action('admin_menu', 'yte_add_pages');
444
 
445
 
446
 
447
- function yte_tag($file, $high='v', $time = "") {
448
  global $CustomColors;
449
 
 
450
  $playlist=0;
451
 
452
  $disp_rel = get_option('smart_yt_rel');
@@ -456,6 +475,7 @@ global $CustomColors;
456
  $disp_search=(get_option('smart_yt_search')=='on') ? "1":"0";
457
  $disp_info=(get_option('smart_yt_info')=='on') ? "&showinfo=0":"";
458
  $disp_ann=(get_option('smart_yt_ann')=='on') ? "&iv_load_policy=3":"";
 
459
 
460
 
461
  $valid=get_option('smart_yt_valid');
@@ -470,8 +490,10 @@ global $CustomColors;
470
  default : $high=""; break;
471
  }
472
 
473
- $width=$high ? get_option('smart_yt_widthhq') : get_option('smart_yt_width');
474
- $height=$high ? get_option('smart_yt_heighthq') : get_option('smart_yt_height');
 
 
475
 
476
  if ($width=="")
477
  $width=$high!="" ? "480" : "425" ;
@@ -507,26 +529,27 @@ if (is_feed())
507
  // if ( (get_option('smart_yt_link')=='off') && (get_option('smart_yt_img')=='off') )
508
  // $yte_tag='http://www.youtube.com/watch?v='.$file;
509
  }
 
510
 
511
- return $yte_tag;
512
  }
513
 
514
- function yte_check($the_content) {
515
  if(strpos($the_content, "httpv")!==FALSE ) {
516
 
517
- $char_codes = array('&#215;');
518
- $replacements = array("x");
519
- $the_content=str_replace($char_codes, $replacements, $the_content);
520
 
521
  preg_match_all("/http(v|vh|vhd):\/\/([a-zA-Z0-9\-\_]+\.|)youtube\.com\/watch(\?v\=|\/v\/)([a-zA-Z0-9\-\_]{11})([^<\s]*)/", $the_content, $matches, PREG_SET_ORDER);
522
  foreach($matches as $match) {
523
 
524
- $the_content = preg_replace("/http".$match[1].":\/\/([a-zA-Z0-9\-\_]+\.|)youtube\.com\/watch(\?v\=|\/v\/)([a-zA-Z0-9\-\_]{11})([^\s<]*)/", yte_tag($match[4], $match[1], $match[5]), $the_content, 1);
525
  }
526
 
527
  preg_match_all("/http(vp):\/\/([a-zA-Z0-9\-\_]+\.|)youtube\.com\/view_play_list(\?p\=|\/v\/)([a-zA-Z0-9\-\_]{16})([^<\s]*)/", $the_content, $matches, PREG_SET_ORDER);
528
  foreach($matches as $match) {
529
- $the_content = preg_replace("/http".$match[1].":\/\/([a-zA-Z0-9\-\_]+\.|)youtube\.com\/view_play_list(\?p\=|\/v\/)([a-zA-Z0-9\-\_]{16})([^\s<]*)/", yte_tag($match[4], $match[1], $match[5]), $the_content, 1);
530
  }
531
 
532
 
@@ -555,6 +578,13 @@ function yte_install(){
555
  add_option('smart_yt_heighthq', '360');
556
  }
557
 
 
 
 
 
 
 
 
558
  if(get_option('smart_yt_rel' == '') || !get_option('smart_yt_rel')){
559
  add_option('smart_yt_rel', '1');
560
  }
@@ -582,6 +612,11 @@ function yte_install(){
582
  add_option('smart_yt_ann', 'on');
583
  }
584
 
 
 
 
 
 
585
  // register widget
586
  if (function_exists('register_sidebar_widget'))
587
  register_sidebar_widget('Smart YouTube', 'yte_widget');
@@ -607,8 +642,8 @@ function yte_widgetcontrol()
607
 
608
  function yte_widget($args = array() )
609
  {
610
-
611
- $text = yte_check(stripslashes(get_option('smart_yt_wtext')));
612
  echo $before_widget;
613
  echo $text;
614
  echo $after_widget;
4
  Plugin URI: http://www.prelovac.com/vladimir/wordpress-plugins/smart-youtube
5
  Description: Insert YouTube videos in posts, comments and RSS feeds with ease and full customization.
6
  Author: Vladimir Prelovac
7
+ Version: 3.0
8
  Author URI: http://www.prelovac.com/vladimir/
9
 
10
  Updates:
11
+ 3.0 - Added video template, option to set sidebar video size, fixed sidebar widget code, fixed video syntax issue
12
  2.8.1 - Display Annotioans added as option
13
  2.8 - Support for playlists
14
  2.7.5 - Plugin url updated to use WP_PLUGIN_URL
84
  // If form was submitted
85
  if (isset($_POST['submitted']))
86
  {
87
+ check_admin_referer('smart-youtube');
 
88
  $disp_img = !isset($_POST['disp_img'])? 'off': 'on';
89
  $disp_link = !isset($_POST['disp_link'])? 'off': 'on';
90
  $disp_search = !isset($_POST['disp_search'])? 'off': 'on';
110
 
111
  update_option('smart_yt_widthhq', $disp_widthhq);
112
  update_option('smart_yt_heighthq', $disp_heighthq);
113
+
114
+ $disp_widthside = (int) ($_POST['disp_widthside']=="")? '150': $_POST['disp_widthside'];
115
+ $disp_heightside = (int) ($_POST['disp_heightside']=="")? '125': $_POST['disp_heightside'];
116
+
117
+ update_option('smart_yt_widthside', $disp_widthside);
118
+ update_option('smart_yt_heightside', $disp_heightside);
119
 
120
  $disp_rel = !isset($_POST['embedRel'])? '1': $_POST['embedRel'];
121
 
139
  update_option('smart_yt_posts', $disp_posts);
140
  update_option('smart_yt_comments', $disp_comments);
141
 
142
+ $disp_template = !isset($_POST['disp_template'])? '{video}': stripslashes(htmlspecialchars($_POST['disp_template']));
143
+ update_option('smart_yt_template', $disp_template);
144
 
145
 
146
 
167
  $disp_widthhq = get_option('smart_yt_widthhq');
168
  $disp_heighthq = get_option('smart_yt_heighthq');
169
 
170
+ $disp_widthside = get_option('smart_yt_widthside');
171
+ $disp_heightside = get_option('smart_yt_heightside');
172
+
173
  $disp_autoplay = (get_option('smart_yt_autoplay')=='1') ? 'checked':'';
174
 
175
 
183
  $disp_posts = (get_option('smart_yt_posts')=='on') ? 'checked' :'' ;
184
  $disp_comments = (get_option('smart_yt_comments')=='on') ? 'checked':'';
185
 
186
+ $disp_template = wp_specialchars(get_option('smart_yt_template'));
187
 
188
 
189
  if ($disp_width=="")
321
  $imgpath=$wp_yte_plugin_url.'/i';
322
  $actionurl=$_SERVER['REQUEST_URI'];
323
  $nonce=wp_create_nonce( 'smart-youtube');
324
+ $example=htmlentities('<div style="float:left;margin-right: 10px;">{video}</div>');
325
  // Configuration Page
326
 
327
 
339
  <img src="$imgpath/rate.png"><a style="text-decoration:none;" href="http://wordpress.org/extend/plugins/smart-youtube/"> Rate this plugin</a><br /><br />
340
  <img src="$imgpath/help.png"><a style="text-decoration:none;" href="http://www.prelovac.com/vladimir/forum"> Support and Help</a><br />
341
  <p >
342
+ <a style="text-decoration:none;" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2567254&lc=US"><img src="$imgpath/paypal.gif"></a>
343
  </p><br />
344
  <img src="$imgpath/more.png"><a style="text-decoration:none;" href="http://www.prelovac.com/vladimir/wordpress-plugins"> Cool WordPress Plugins</a><br /><br />
345
  <img src="$imgpath/twit.png"><a style="text-decoration:none;" href="http://twitter.com/vprelovac"> Follow updates on Twitter</a><br /><br />
352
  <div class="dbx-content">
353
  <form name="yteform" action="$action_url" method="post">
354
  <input type="hidden" name="submitted" value="1" />
355
+ <input type="hidden" id="_wpnonce" name="_wpnonce" value="$nonce" />
356
+ <h2>Usage</h2>
357
 
358
  <p>To use the video in your posts, paste YouTube video URL with <strong>httpv://</strong> (notice the 'v'). </p>
359
  <p><strong>Important:</strong> The URL should just be copied into your post normally and the letter 'v' added, do not create a clickable link!</p>
379
 
380
 
381
  <br><br><strong>Video Appearence</strong><br><br>
382
+ <p>Video template. Default is just {video}. <br />
383
+ You can try $example if you want the text to wrap around video.</p>
384
+ <textarea cols="50" id="disp_template" name="disp_template">$disp_template</textarea>
385
 
386
  <p>Video width and height in normal mode. Default is 425x344.</p>
387
  <input id="disp_width" name="disp_width" value="$disp_width" size="7"/>x<input id="disp_height" name="disp_height" value="$disp_height" size="7" /><br>
388
 
 
389
  <p>Video width and height in <strong>high quality</strong> mode. Default is 480x360.</p>
390
  <input id="disp_widthhq" name="disp_widthhq" value="$disp_widthhq" size="7" />x<input id="disp_heighthq" name="disp_heighthq" value="$disp_heighthq" size="7" /><br><br>
391
 
392
+ <p>Video width and height in <strong>sidebar</strong> mode (regardless of quality). Default is 150x125.</p>
393
+ <input id="disp_widthside" name="disp_widthside" value="$disp_widthside" size="7" />x<input id="disp_heightside" name="disp_heightside" value="$disp_heightside" size="7" /><br><br>
394
+
395
+
396
  <br />
397
  <div id="watch-customize-embed-form">
398
  <input type="radio" $disp_rel id="embedCustomization1" name="embedRel" value="1"/>
462
 
463
 
464
 
465
+ function yte_tag($file, $high='v', $time = "", $side = 0) {
466
  global $CustomColors;
467
 
468
+
469
  $playlist=0;
470
 
471
  $disp_rel = get_option('smart_yt_rel');
475
  $disp_search=(get_option('smart_yt_search')=='on') ? "1":"0";
476
  $disp_info=(get_option('smart_yt_info')=='on') ? "&showinfo=0":"";
477
  $disp_ann=(get_option('smart_yt_ann')=='on') ? "&iv_load_policy=3":"";
478
+ $template=get_option('smart_yt_template');
479
 
480
 
481
  $valid=get_option('smart_yt_valid');
490
  default : $high=""; break;
491
  }
492
 
493
+ $width=$side ? get_option('smart_yt_widthside') : ($high ? get_option('smart_yt_widthhq') : get_option('smart_yt_width'));
494
+ $height=$side ? get_option('smart_yt_heightside') : ($high ? get_option('smart_yt_heighthq') : get_option('smart_yt_height'));
495
+
496
+
497
 
498
  if ($width=="")
499
  $width=$high!="" ? "480" : "425" ;
529
  // if ( (get_option('smart_yt_link')=='off') && (get_option('smart_yt_img')=='off') )
530
  // $yte_tag='http://www.youtube.com/watch?v='.$file;
531
  }
532
+ $result= str_replace('{video}', $yte_tag, html_entity_decode($template));
533
 
534
+ return $result;
535
  }
536
 
537
+ function yte_check($the_content, $side=0) {
538
  if(strpos($the_content, "httpv")!==FALSE ) {
539
 
540
+ $char_codes = array('&#215;','&#8211;');
541
+ $replacements = array("x", "--");
542
+ $the_content=str_replace($char_codes, $replacements, $the_content);
543
 
544
  preg_match_all("/http(v|vh|vhd):\/\/([a-zA-Z0-9\-\_]+\.|)youtube\.com\/watch(\?v\=|\/v\/)([a-zA-Z0-9\-\_]{11})([^<\s]*)/", $the_content, $matches, PREG_SET_ORDER);
545
  foreach($matches as $match) {
546
 
547
+ $the_content = preg_replace("/http".$match[1].":\/\/([a-zA-Z0-9\-\_]+\.|)youtube\.com\/watch(\?v\=|\/v\/)([a-zA-Z0-9\-\_]{11})([^\s<]*)/", yte_tag($match[4], $match[1], $match[5], $side), $the_content, 1);
548
  }
549
 
550
  preg_match_all("/http(vp):\/\/([a-zA-Z0-9\-\_]+\.|)youtube\.com\/view_play_list(\?p\=|\/v\/)([a-zA-Z0-9\-\_]{16})([^<\s]*)/", $the_content, $matches, PREG_SET_ORDER);
551
  foreach($matches as $match) {
552
+ $the_content = preg_replace("/http".$match[1].":\/\/([a-zA-Z0-9\-\_]+\.|)youtube\.com\/view_play_list(\?p\=|\/v\/)([a-zA-Z0-9\-\_]{16})([^\s<]*)/", yte_tag($match[4], $match[1], $match[5], $side), $the_content, 1);
553
  }
554
 
555
 
578
  add_option('smart_yt_heighthq', '360');
579
  }
580
 
581
+ if(get_option('smart_yt_widthside' == '') || !get_option('smart_yt_widthside')){
582
+ add_option('smart_yt_widthside', '150');
583
+ }
584
+ if(get_option('smart_yt_heightside' == '') || !get_option('smart_yt_heightside')){
585
+ add_option('smart_yt_heightside', '125');
586
+ }
587
+
588
  if(get_option('smart_yt_rel' == '') || !get_option('smart_yt_rel')){
589
  add_option('smart_yt_rel', '1');
590
  }
612
  add_option('smart_yt_ann', 'on');
613
  }
614
 
615
+ if(get_option('smart_yt_template' == '') || !get_option('smart_yt_template')){
616
+ add_option('smart_yt_template', '{video}');
617
+ }
618
+
619
+
620
  // register widget
621
  if (function_exists('register_sidebar_widget'))
622
  register_sidebar_widget('Smart YouTube', 'yte_widget');
642
 
643
  function yte_widget($args = array() )
644
  {
645
+ extract ($args);
646
+ $text = yte_check(stripslashes(get_option('smart_yt_wtext')), 1);
647
  echo $before_widget;
648
  echo $text;
649
  echo $after_widget;