PowerPress Podcasting plugin by Blubrry - Version 1.0.8

Version Description

  • Released on 5/10/2010
  • Fixed bug where ampersand characters, if present, where not being escaped properly for the itunes:new-feed-url setting. (Thanks Bryon for reporting the bug)
  • Added option to 1 pixel out player to display Display Remaining Time (thanks siri102 for suggesting this feature)
  • Added option to 1 pixel out player to set the Buffering Time (thanks siri102 for suggesting this feature)
  • Added better debug information for the Verify button's AJAX failures
  • Implemented more efficient logic for including project files in PHP (Thanks Joseph Scott from Automattic)
Download this release

Release Info

Developer amandato
Plugin Icon 128x128 PowerPress Podcasting plugin by Blubrry
Version 1.0.8
Comparing to
See all releases

Code changes from version 1.0.7 to 1.0.8

mp3info.class.php CHANGED
@@ -480,7 +480,7 @@
480
 
481
  // Hack so this works in Windows, helper apps are not necessary for what we're doing anyway
482
  define('GETID3_HELPERAPPSDIR', true);
483
- require_once(dirname(__FILE__).'/getid3/getid3.php');
484
  $getID3 = new getID3;
485
  $FileInfo = $getID3->analyze( $LocalFile, $this->m_ContentLength );
486
  if( $DeleteFile )
480
 
481
  // Hack so this works in Windows, helper apps are not necessary for what we're doing anyway
482
  define('GETID3_HELPERAPPSDIR', true);
483
+ require_once(POWERPRESS_ABSPATH.'/getid3/getid3.php');
484
  $getID3 = new getID3;
485
  $FileInfo = $getID3->analyze( $LocalFile, $this->m_ContentLength );
486
  if( $DeleteFile )
powerpress-player.php CHANGED
@@ -12,7 +12,7 @@ if( !defined('PHP_EOL') )
12
 
13
  function powerpressplayer_get_root_url()
14
  {
15
- return WP_PLUGIN_URL . '/'. basename( dirname(__FILE__) ) .'/';
16
  }
17
 
18
  function powerpressplayer_filter($content, $media_url, $ExtraData = array())
@@ -306,6 +306,6 @@ $content .= "</div>\n";
306
  add_filter('powerpress_player', 'powerpressplayer_filter', 10, 3);
307
 
308
  //if( is_admin() )
309
- // require_once(dirname(__FILE__).'/powerpressadmin-player.php');
310
 
311
  ?>
12
 
13
  function powerpressplayer_get_root_url()
14
  {
15
+ return WP_PLUGIN_URL . '/'. basename( POWERPRESS_ABSPATH ) .'/';
16
  }
17
 
18
  function powerpressplayer_filter($content, $media_url, $ExtraData = array())
306
  add_filter('powerpress_player', 'powerpressplayer_filter', 10, 3);
307
 
308
  //if( is_admin() )
309
+ // require_once( POWERPRESS_ABSPATH .'/powerpressadmin-player.php');
310
 
311
  ?>
powerpress.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://www.blubrry.com/powerpress/
5
  Description: <a href="http://www.blubrry.com/powerpress/" target="_blank">Blubrry PowerPress</a> adds podcasting support to your blog. Features include: media player, 3rd party statistics, iTunes integration, Blubrry Services (Media Statistics and Hosting) integration and a lot more.
6
- Version: 1.0.7
7
  Author: Blubrry
8
  Author URI: http://www.blubrry.com/
9
  Change Log:
@@ -21,7 +21,7 @@ Credits:
21
  flashembed(), License: MIT by Tero Piirainen (tipiirai [at] gmail.com)
22
  Note: code found at bottom of player.js
23
 
24
- Copyright 2008-2009 RawVoice Inc. (http://www.rawvoice.com)
25
 
26
  License: GPL (http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)
27
 
@@ -33,7 +33,7 @@ if( !function_exists('add_action') )
33
  die("access denied.");
34
 
35
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
36
- define('POWERPRESS_VERSION', '1.0.7' );
37
 
38
  /////////////////////////////////////////////////////
39
  // The following define options should be placed in your
@@ -80,10 +80,14 @@ if( !defined('POWERPRESS_MOBILE_REGEX') )
80
 
81
  $powerpress_feed = NULL; // DO NOT CHANGE
82
 
 
 
 
 
83
  // Translation support loaded:
84
  load_plugin_textdomain('powerpress', // domain / keyword name of plugin
85
- PLUGINDIR.'/'.dirname(plugin_basename(__FILE__)).'/languages', // Absolute path
86
- dirname(plugin_basename(__FILE__)).'/languages' ); // relative path in plugins folder
87
 
88
  function powerpress_content($content)
89
  {
@@ -355,11 +359,15 @@ function powerpress_rss2_head()
355
  if( powerpress_is_custom_podcast_feed() )
356
  {
357
  if( !empty($Feed['itunes_new_feed_url']) )
358
- echo "\t<itunes:new-feed-url>". trim($Feed['itunes_new_feed_url']) .'</itunes:new-feed-url>'.PHP_EOL;
 
 
 
359
  }
360
  else if( !empty($Feed['itunes_new_feed_url']) && ($feed_slug == 'feed' || $feed_slug == 'rss2') ) // If it is the default feed (We don't wnat to apply this to category or tag feeds
361
  {
362
- echo "\t<itunes:new-feed-url>". $Feed['itunes_new_feed_url'] .'</itunes:new-feed-url>'.PHP_EOL;
 
363
  }
364
 
365
  if( !empty($Feed['itunes_summary']) )
@@ -817,7 +825,7 @@ function powerpress_do_podcast_feed($for_comments=false)
817
  $FeedSettings = get_option('powerpress_feed_'.$feed_slug);
818
  if( @$FeedSettings['premium'] )
819
  {
820
- require_once( dirname(__FILE__).'/powerpress-feed-auth.php');
821
  powerpress_feed_auth( $feed_slug );
822
  }
823
  }
@@ -938,7 +946,7 @@ function powerpress_init()
938
  $GeneralSettings = get_option('powerpress_general');
939
 
940
  if( !empty($GeneralSettings['player_options']) )
941
- require_once( dirname(__FILE__).'/powerpress-player.php');
942
 
943
  if( isset($_GET['powerpress_pinw']) )
944
  powerpress_do_pinw($_GET['powerpress_pinw'], !empty($GeneralSettings['process_podpress']) );
@@ -1265,7 +1273,7 @@ function powerpress_future_to_publish($post)
1265
  $Settings = get_option('powerpress_general');
1266
  if( isset($Settings['ping_itunes']) && $Settings['ping_itunes'] )
1267
  {
1268
- require_once(dirname(__FILE__).'/powerpressadmin.php');
1269
  }
1270
  }
1271
  }
@@ -2006,7 +2014,7 @@ function powerpress_itunes_categories($PrefixSubCategories = false)
2006
 
2007
  function powerpress_get_root_url()
2008
  {
2009
- $powerpress_dirname = basename( dirname(__FILE__) );
2010
  return WP_PLUGIN_URL . '/'. $powerpress_dirname .'/';
2011
  }
2012
 
@@ -2506,7 +2514,7 @@ End Helper Functions
2506
  // Are we in the admin?
2507
  if( is_admin() )
2508
  {
2509
- require_once(dirname(__FILE__).'/powerpressadmin.php');
2510
  register_activation_hook( __FILE__, 'powerpress_admin_activate' );
2511
  }
2512
 
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://www.blubrry.com/powerpress/
5
  Description: <a href="http://www.blubrry.com/powerpress/" target="_blank">Blubrry PowerPress</a> adds podcasting support to your blog. Features include: media player, 3rd party statistics, iTunes integration, Blubrry Services (Media Statistics and Hosting) integration and a lot more.
6
+ Version: 1.0.8
7
  Author: Blubrry
8
  Author URI: http://www.blubrry.com/
9
  Change Log:
21
  flashembed(), License: MIT by Tero Piirainen (tipiirai [at] gmail.com)
22
  Note: code found at bottom of player.js
23
 
24
+ Copyright 2008-2010 RawVoice Inc. (http://www.rawvoice.com)
25
 
26
  License: GPL (http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)
27
 
33
  die("access denied.");
34
 
35
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
36
+ define('POWERPRESS_VERSION', '1.0.8' );
37
 
38
  /////////////////////////////////////////////////////
39
  // The following define options should be placed in your
80
 
81
  $powerpress_feed = NULL; // DO NOT CHANGE
82
 
83
+
84
+ if ( !defined('POWERPRESS_ABSPATH') )
85
+ define('POWERPRESS_ABSPATH', dirname(__FILE__) );
86
+
87
  // Translation support loaded:
88
  load_plugin_textdomain('powerpress', // domain / keyword name of plugin
89
+ POWERPRESS_ABSPATH .'/languages', // Absolute path
90
+ basename(POWERPRESS_ABSPATH).'/languages' ); // relative path in plugins folder
91
 
92
  function powerpress_content($content)
93
  {
359
  if( powerpress_is_custom_podcast_feed() )
360
  {
361
  if( !empty($Feed['itunes_new_feed_url']) )
362
+ {
363
+ $Feed['itunes_new_feed_url'] = str_replace('&amp;', '&', $Feed['itunes_new_feed_url']);
364
+ echo "\t<itunes:new-feed-url>". htmlspecialchars(trim($Feed['itunes_new_feed_url'])) .'</itunes:new-feed-url>'.PHP_EOL;
365
+ }
366
  }
367
  else if( !empty($Feed['itunes_new_feed_url']) && ($feed_slug == 'feed' || $feed_slug == 'rss2') ) // If it is the default feed (We don't wnat to apply this to category or tag feeds
368
  {
369
+ $Feed['itunes_new_feed_url'] = str_replace('&amp;', '&', $Feed['itunes_new_feed_url']);
370
+ echo "\t<itunes:new-feed-url>". htmlspecialchars(trim($Feed['itunes_new_feed_url'])) .'</itunes:new-feed-url>'.PHP_EOL;
371
  }
372
 
373
  if( !empty($Feed['itunes_summary']) )
825
  $FeedSettings = get_option('powerpress_feed_'.$feed_slug);
826
  if( @$FeedSettings['premium'] )
827
  {
828
+ require_once( POWERPRESS_ABSPATH.'/powerpress-feed-auth.php');
829
  powerpress_feed_auth( $feed_slug );
830
  }
831
  }
946
  $GeneralSettings = get_option('powerpress_general');
947
 
948
  if( !empty($GeneralSettings['player_options']) )
949
+ require_once( POWERPRESS_ABSPATH.'/powerpress-player.php');
950
 
951
  if( isset($_GET['powerpress_pinw']) )
952
  powerpress_do_pinw($_GET['powerpress_pinw'], !empty($GeneralSettings['process_podpress']) );
1273
  $Settings = get_option('powerpress_general');
1274
  if( isset($Settings['ping_itunes']) && $Settings['ping_itunes'] )
1275
  {
1276
+ require_once(POWERPRESS_ABSPATH.'/powerpressadmin.php');
1277
  }
1278
  }
1279
  }
2014
 
2015
  function powerpress_get_root_url()
2016
  {
2017
+ $powerpress_dirname = basename( POWERPRESS_ABSPATH );
2018
  return WP_PLUGIN_URL . '/'. $powerpress_dirname .'/';
2019
  }
2020
 
2514
  // Are we in the admin?
2515
  if( is_admin() )
2516
  {
2517
+ require_once(POWERPRESS_ABSPATH.'/powerpressadmin.php');
2518
  register_activation_hook( __FILE__, 'powerpress_admin_activate' );
2519
  }
2520
 
powerpressadmin-mt.php CHANGED
@@ -148,7 +148,7 @@ if( !function_exists('add_action') )
148
 
149
  if( $DetectDuration )
150
  {
151
- require_once(dirname(__FILE__).'/mp3info.class.php');
152
  $Mp3Info = new Mp3Info();
153
  }
154
 
148
 
149
  if( $DetectDuration )
150
  {
151
+ require_once(POWERPRESS_ABSPATH.'/mp3info.class.php');
152
  $Mp3Info = new Mp3Info();
153
  }
154
 
powerpressadmin-player-page.php CHANGED
@@ -280,9 +280,17 @@ function powerpress_activate_player(Player)
280
  'pagebg' => '',
281
  'rtl' => 'no',
282
  'initialvolume'=>'60',
283
- 'animation'=>'yes'
 
284
  );
285
  endif;
 
 
 
 
 
 
 
286
  $keys = array_keys($PlayerSettings);
287
  $flashvars ='';
288
  foreach ($keys as $key) {
@@ -437,6 +445,12 @@ function audio_player_defaults()
437
  jQuery('#animation').val( 'yes');
438
  UpdatePlayerPreview('animation',jQuery('#animation').val() );
439
 
 
 
 
 
 
 
440
  jQuery('#rtl' ).val( 'no' );
441
  UpdatePlayerPreview('rtl',jQuery('#rtl').val() );
442
 
@@ -528,7 +542,7 @@ function audio_player_defaults()
528
  $option = array('no','yes');
529
  foreach($option as $option){
530
  if($PlayerSettings['rtl'] == $option):
531
- $selected = " SELECTED";
532
  else:
533
  $selected = "";
534
  endif;
@@ -583,7 +597,7 @@ function audio_player_defaults()
583
  $option = array('yes','no');
584
  foreach($option as $option){
585
  if($PlayerSettings['animation'] == $option):
586
- $selected = " SELECTED";
587
  else:
588
  $selected = "";
589
  endif;
@@ -593,6 +607,50 @@ function audio_player_defaults()
593
  </td>
594
  </tr>
595
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
596
  </table>
597
  </div>
598
 
@@ -1144,7 +1202,7 @@ $content .= '</object>'.PHP_EOL;
1144
  <select style="width: 100px;" id="showstop" name="Player[showstop]">
1145
  <?php foreach($options as $option){
1146
  if($PlayerSettings['showstop'] == $option):
1147
- $selected = " SELECTED";
1148
  else:
1149
  $selected = "";
1150
  endif;
@@ -1168,7 +1226,7 @@ $content .= '</object>'.PHP_EOL;
1168
  <select style="width: 100px;" id="showinfo" name="Player[showinfo]">
1169
  <?php foreach($options as $option){
1170
  if($PlayerSettings['showinfo'] == $option):
1171
- $selected = " SELECTED";
1172
  else:
1173
  $selected = "";
1174
  endif;
@@ -1199,7 +1257,7 @@ $content .= '</object>'.PHP_EOL;
1199
  <select style="width: 100px;" id="showvolume" name="Player[showvolume]">
1200
  <?php foreach($options as $option){
1201
  if($PlayerSettings['showvolume'] == $option):
1202
- $selected = " SELECTED";
1203
  else:
1204
  $selected = "";
1205
  endif;
@@ -1223,7 +1281,7 @@ $content .= '</object>'.PHP_EOL;
1223
  <select style="width: 100px;" id="volume" name="Player[volume]">
1224
  <?php foreach($volume as $volume){
1225
  if($PlayerSettings['volume'] == $volume):
1226
- $selected = " SELECTED";
1227
  else:
1228
  $selected = "";
1229
  endif;
@@ -1270,7 +1328,7 @@ $content .= '</object>'.PHP_EOL;
1270
  <select style="width: 100px;" id="showslider" name="Player[showslider]">
1271
  <?php foreach($options as $option){
1272
  if($PlayerSettings['showslider'] == $option):
1273
- $selected = " SELECTED";
1274
  else:
1275
  $selected = "";
1276
  endif;
@@ -1350,7 +1408,7 @@ $content .= '</object>'.PHP_EOL;
1350
  <select style="width: 100px;" id="showloading" name="Player[showloading]">
1351
  <?php foreach($autoload as $option){
1352
  if($PlayerSettings['showloading'] == $option):
1353
- $selected = " SELECTED";
1354
  else:
1355
  $selected = "";
1356
  endif;
@@ -1501,7 +1559,7 @@ print $content;
1501
  <?php $options = array('playpause','playstop');
1502
  foreach($options as $option){
1503
  if($PlayerSettings['mode'] == $option):
1504
- $selected = " SELECTED";
1505
  else:
1506
  $selected = "";
1507
  endif;
280
  'pagebg' => '',
281
  'rtl' => 'no',
282
  'initialvolume'=>'60',
283
+ 'animation'=>'yes',
284
+ 'remaining'=>'no',
285
  );
286
  endif;
287
+
288
+ if( empty($PlayerSettings['remaining']) )
289
+ $PlayerSettings['remaining'] = 'no'; // New default setting
290
+ if( !isset($PlayerSettings['buffer']) )
291
+ $PlayerSettings['buffer'] = ''; // New default setting
292
+
293
+
294
  $keys = array_keys($PlayerSettings);
295
  $flashvars ='';
296
  foreach ($keys as $key) {
445
  jQuery('#animation').val( 'yes');
446
  UpdatePlayerPreview('animation',jQuery('#animation').val() );
447
 
448
+ jQuery('#remaining').val( 'no');
449
+ UpdatePlayerPreview('remaining',jQuery('#remaining').val() );
450
+
451
+ jQuery('#buffer').val( '');
452
+ UpdatePlayerPreview('buffer',jQuery('#buffer').val() );
453
+
454
  jQuery('#rtl' ).val( 'no' );
455
  UpdatePlayerPreview('rtl',jQuery('#rtl').val() );
456
 
542
  $option = array('no','yes');
543
  foreach($option as $option){
544
  if($PlayerSettings['rtl'] == $option):
545
+ $selected = " selected";
546
  else:
547
  $selected = "";
548
  endif;
597
  $option = array('yes','no');
598
  foreach($option as $option){
599
  if($PlayerSettings['animation'] == $option):
600
+ $selected = " selected";
601
  else:
602
  $selected = "";
603
  endif;
607
  </td>
608
  </tr>
609
 
610
+ <tr valign="top">
611
+ <th scope="row">
612
+ <?php _e("Display Remaining Time"); ?>
613
+ </th>
614
+ <td>
615
+ <div class="color_control">
616
+ <select style="width: 50px;" id="remaining" name="Player[remaining]" class="other_field">
617
+ <?php
618
+ $options = array('yes','no');
619
+ foreach($options as $option){
620
+ if($PlayerSettings['remaining'] == $option):
621
+ $selected = " selected";
622
+ else:
623
+ $selected = "";
624
+ endif;
625
+ echo '<option value="'. $option .'"'. $selected .' >'. ucwords($option) .'</option>';
626
+ }?>
627
+ </select> if yes, shows remaining track time rather than ellapsed time (default: no)</div>
628
+ </td>
629
+ </tr>
630
+
631
+ <tr valign="top">
632
+ <th scope="row">
633
+ <?php _e("Buffering Time"); ?>
634
+ </th>
635
+ <td>
636
+ <div class="color_control">
637
+ <select style="width: 200px;" id="buffer" name="Player[buffer]" class="other_field">
638
+ <?php
639
+ $options = array('0'=>'No buffering', ''=>'Default (5 seconds)','10'=>'10 seconds','15'=>'15 seconds','20'=>'20 seconds','30'=>'30 seconds','60'=>'60 seconds');
640
+
641
+ while( list($key,$value) = each($options) ) {
642
+ if( $PlayerSettings['buffer'] == $key )
643
+ $selected = " selected";
644
+ else
645
+ $selected = "";
646
+
647
+ echo '<option value="'. $key .'"'. $selected .' >'. $value .'</option>';
648
+ }?>
649
+ </select> buffering time in seconds</div>
650
+ </td>
651
+ </tr>
652
+
653
+
654
  </table>
655
  </div>
656
 
1202
  <select style="width: 100px;" id="showstop" name="Player[showstop]">
1203
  <?php foreach($options as $option){
1204
  if($PlayerSettings['showstop'] == $option):
1205
+ $selected = " selected";
1206
  else:
1207
  $selected = "";
1208
  endif;
1226
  <select style="width: 100px;" id="showinfo" name="Player[showinfo]">
1227
  <?php foreach($options as $option){
1228
  if($PlayerSettings['showinfo'] == $option):
1229
+ $selected = " selected";
1230
  else:
1231
  $selected = "";
1232
  endif;
1257
  <select style="width: 100px;" id="showvolume" name="Player[showvolume]">
1258
  <?php foreach($options as $option){
1259
  if($PlayerSettings['showvolume'] == $option):
1260
+ $selected = " selected";
1261
  else:
1262
  $selected = "";
1263
  endif;
1281
  <select style="width: 100px;" id="volume" name="Player[volume]">
1282
  <?php foreach($volume as $volume){
1283
  if($PlayerSettings['volume'] == $volume):
1284
+ $selected = " selected";
1285
  else:
1286
  $selected = "";
1287
  endif;
1328
  <select style="width: 100px;" id="showslider" name="Player[showslider]">
1329
  <?php foreach($options as $option){
1330
  if($PlayerSettings['showslider'] == $option):
1331
+ $selected = " selected";
1332
  else:
1333
  $selected = "";
1334
  endif;
1408
  <select style="width: 100px;" id="showloading" name="Player[showloading]">
1409
  <?php foreach($autoload as $option){
1410
  if($PlayerSettings['showloading'] == $option):
1411
+ $selected = " selected";
1412
  else:
1413
  $selected = "";
1414
  endif;
1559
  <?php $options = array('playpause','playstop');
1560
  foreach($options as $option){
1561
  if($PlayerSettings['mode'] == $option):
1562
+ $selected = " selected";
1563
  else:
1564
  $selected = "";
1565
  endif;
powerpressadmin-player.php CHANGED
@@ -82,7 +82,7 @@ function powerpress_admin_page_player()
82
 
83
  //$Settings = get_option('powerpress_general');
84
  //powerpress_admin_page_header('powerpress/powerpressadmin_player.php', 'powerpress-edit', $simple_mode );
85
- require_once( dirname(__FILE__).'/powerpressadmin-player-page.php');
86
  powerpress_admin_players();
87
  //powerpress_admin_page_footer(true);
88
  }
82
 
83
  //$Settings = get_option('powerpress_general');
84
  //powerpress_admin_page_header('powerpress/powerpressadmin_player.php', 'powerpress-edit', $simple_mode );
85
+ require_once( POWERPRESS_ABSPATH.'/powerpressadmin-player-page.php');
86
  powerpress_admin_players();
87
  //powerpress_admin_page_footer(true);
88
  }
powerpressadmin.php CHANGED
@@ -468,7 +468,7 @@ function powerpress_admin_init()
468
  case 'powerpress-ping-sites': {
469
  check_admin_referer('powerpress-ping-sites');
470
 
471
- require_once( dirname(__FILE__) . '/powerpressadmin-ping-sites.php');
472
  powerpressadmin_ping_sites_process();
473
 
474
  $_GET['action'] = 'powerpress-ping-sites';
@@ -476,7 +476,7 @@ function powerpress_admin_init()
476
  case 'powerpress-find-replace': {
477
  check_admin_referer('powerpress-find-replace');
478
 
479
- require_once( dirname(__FILE__) . '/powerpressadmin-find-replace.php');
480
  powerpressadmin_find_replace_process();
481
 
482
  $_GET['action'] = 'powerpress-find-replace';
@@ -484,7 +484,7 @@ function powerpress_admin_init()
484
  case 'powerpress-importpodpress': {
485
  check_admin_referer('powerpress-import-podpress');
486
 
487
- require_once( dirname(__FILE__) . '/powerpressadmin-podpress.php');
488
  powerpressadmin_podpress_do_import();
489
 
490
  $_GET['action'] = 'powerpress-podpress-epiosdes';
@@ -492,7 +492,7 @@ function powerpress_admin_init()
492
  case 'powerpress-importmt': {
493
  check_admin_referer('powerpress-import-mt');
494
 
495
- require_once( dirname(__FILE__) . '/powerpressadmin-mt.php');
496
  powerpressadmin_mt_do_import();
497
 
498
  $_GET['action'] = 'powerpress-mt-epiosdes';
@@ -500,7 +500,7 @@ function powerpress_admin_init()
500
  case 'deletepodpressdata': {
501
  check_admin_referer('powerpress-delete-podpress-data');
502
 
503
- require_once( dirname(__FILE__) . '/powerpressadmin-podpress.php');
504
  powerpressadmin_podpress_delete_data();
505
 
506
  }; break;
@@ -728,7 +728,7 @@ function powerpress_admin_init()
728
  if( @$GeneralSettings['player_options'] )
729
  {
730
  // Make sure we include the player-options
731
- require_once( dirname(__FILE__).'/powerpressadmin-player.php');
732
  powerpress_admin_players_init();
733
  }
734
  }
@@ -825,7 +825,7 @@ function powerpress_admin_menu()
825
  else if( function_exists('add_meta_box') && (!@$Powerpress['use_caps'] || current_user_can('edit_podcast') ) )
826
  { // Otherwise we're using a version of wordpress that is not supported.
827
 
828
- require_once( dirname(__FILE__).'/powerpressadmin-metabox.php');
829
  add_meta_box('powerpress-podcast', __('Podcast Episode'), 'powerpress_meta_box', 'page', 'normal');
830
 
831
  if( isset($Powerpress['custom_feeds']) )
@@ -1342,6 +1342,10 @@ function powerpress_get_media_info(FeedSlug)
1342
  timeout: (30 * 1000),
1343
  success: function(response) {
1344
 
 
 
 
 
1345
  var Parts = response.split("\n", 5);
1346
  var FeedSlug = Parts[0];
1347
 
@@ -1392,12 +1396,21 @@ function powerpress_get_media_info(FeedSlug)
1392
  }
1393
  },
1394
  error: function(objAJAXRequest, strError) {
1395
-
 
 
 
 
 
1396
  jQuery('#powerpress_check_'+FeedSlug).css("display", 'none');
1397
  if( strError == 'timeout' )
1398
  jQuery( '#powerpress_warning_'+FeedSlug ).text( '<?php echo __('Operation timed out.'); ?>' );
1399
- else
1400
- jQuery( '#powerpress_warning_'+FeedSlug ).text( '<?php echo __('AJAX Error occurred: '); ?>'+strError );
 
 
 
 
1401
  jQuery( '#powerpress_warning_'+FeedSlug ).css('display', 'block');
1402
  }
1403
  });
@@ -1599,15 +1612,15 @@ function powerpress_admin_page_basic()
1599
  if( !isset($Settings['advanced_mode']) )
1600
  {
1601
  powerpress_admin_page_header(false, 'powerpress-edit', true);
1602
- require_once( dirname(__FILE__).'/powerpressadmin-mode.php');
1603
  powerpress_admin_mode();
1604
  powerpress_admin_page_footer(false);
1605
  return;
1606
  }
1607
 
1608
  powerpress_admin_page_header();
1609
- require_once( dirname(__FILE__).'/powerpressadmin-basic.php');
1610
- require_once( dirname(__FILE__).'/powerpressadmin-editfeed.php');
1611
  powerpress_admin_basic();
1612
  powerpress_admin_page_footer(true);
1613
  }
@@ -1616,7 +1629,7 @@ function powerpress_admin_page_basic()
1616
  function powerpress_admin_page_players()
1617
  {
1618
  powerpress_admin_page_header('powerpress/powerpressadmin_player.php');
1619
- require_once( dirname(__FILE__).'/powerpressadmin-player.php');
1620
  powerpress_admin_page_player();
1621
  powerpress_admin_page_footer(true);
1622
  }
@@ -1625,7 +1638,7 @@ function powerpress_admin_page_players()
1625
  function powerpress_admin_page_podpress_stats()
1626
  {
1627
  powerpress_admin_page_header('powerpress/powerpressadmin_podpress-stats.php');
1628
- require_once( dirname(__FILE__).'/powerpressadmin-podpress-stats.php');
1629
  powerpress_admin_podpress_stats();
1630
  powerpress_admin_page_footer(false);
1631
  }
@@ -1634,7 +1647,7 @@ function powerpress_admin_page_podpress_stats()
1634
  function powerpress_admin_page_tags()
1635
  {
1636
  powerpress_admin_page_header('powerpress/powerpressadmin_tags.php');
1637
- require_once( dirname(__FILE__).'/powerpressadmin-tags.php');
1638
  powerpress_admin_tags();
1639
  powerpress_admin_page_footer();
1640
  }
@@ -1646,14 +1659,14 @@ function powerpress_admin_page_customfeeds()
1646
  {
1647
  case 'powerpress-editfeed' : {
1648
  powerpress_admin_page_header('powerpress/powerpressadmin_customfeeds.php');
1649
- require_once( dirname(__FILE__).'/powerpressadmin-editfeed.php');
1650
- require_once( dirname(__FILE__).'/powerpressadmin-basic.php');
1651
  powerpress_admin_editfeed($_GET['feed_slug']);
1652
  powerpress_admin_page_footer();
1653
  }; break;
1654
  default: {
1655
  powerpress_admin_page_header('powerpress/powerpressadmin_customfeeds.php', 'powerpress-add-feed');
1656
- require_once( dirname(__FILE__).'/powerpressadmin-customfeeds.php');
1657
  powerpress_admin_customfeeds();
1658
  powerpress_admin_page_footer(false);
1659
  };
@@ -1667,14 +1680,14 @@ function powerpress_admin_page_categoryfeeds()
1667
  {
1668
  case 'powerpress-editcategoryfeed' : {
1669
  powerpress_admin_page_header('powerpress/powerpressadmin_categoryfeeds.php');
1670
- require_once( dirname(__FILE__).'/powerpressadmin-editfeed.php');
1671
- require_once( dirname(__FILE__).'/powerpressadmin-basic.php');
1672
  powerpress_admin_editfeed(false, $_GET['cat']);
1673
  powerpress_admin_page_footer();
1674
  }; break;
1675
  default: {
1676
  powerpress_admin_page_header('powerpress/powerpressadmin_categoryfeeds.php', 'powerpress-add-categoryfeed');
1677
- require_once( dirname(__FILE__).'/powerpressadmin-categoryfeeds.php');
1678
  powerpress_admin_categoryfeeds();
1679
  powerpress_admin_page_footer(false);
1680
  };
@@ -1688,37 +1701,37 @@ function powerpress_admin_page_tools()
1688
  {
1689
  case 'powerpress-podpress-epiosdes' : {
1690
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', 'powerpress-import-podpress');
1691
- require_once( dirname(__FILE__).'/powerpressadmin-podpress.php');
1692
  powerpress_admin_podpress();
1693
  powerpress_admin_page_footer(false);
1694
  }; break;
1695
  case 'powerpress-mt-epiosdes': {
1696
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', 'powerpress-import-mt');
1697
- require_once( dirname(__FILE__).'/powerpressadmin-mt.php');
1698
  powerpress_admin_mt();
1699
  powerpress_admin_page_footer(false);
1700
  }; break;
1701
  case 'powerpress-ping-sites': {
1702
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', 'powerpress-ping-sites');
1703
- require_once( dirname(__FILE__).'/powerpressadmin-ping-sites.php');
1704
  powerpress_admin_ping_sites();
1705
  powerpress_admin_page_footer(false);
1706
  }; break;
1707
  case 'powerpress-find-replace': {
1708
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', 'powerpress-find-replace');
1709
- require_once( dirname(__FILE__).'/powerpressadmin-find-replace.php');
1710
  powerpress_admin_find_replace();
1711
  powerpress_admin_page_footer(false);
1712
  }; break;
1713
  case 'powerpress-diagnostics': {
1714
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', false);
1715
- require_once( dirname(__FILE__).'/powerpressadmin-diagnostics.php');
1716
  powerpressadmin_diagnostics();
1717
  powerpress_admin_page_footer(false, false);
1718
  }; break;
1719
  default: {
1720
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', false);
1721
- require_once( dirname(__FILE__).'/powerpressadmin-tools.php');
1722
  powerpress_admin_tools();
1723
  powerpress_admin_page_footer(false, false);
1724
  };
@@ -2139,7 +2152,7 @@ function powerpress_json_decode($value)
2139
  if( function_exists('json_decode') && version_compare($wp_version, '2.8.9', '>') ) // WordPress 2.9+ json_decode function
2140
  $null = json_decode('{"a":1}'); // Hack, includes the class-json.php from within the wp-includes folder
2141
  if( !class_exists('Services_JSON') )
2142
- require_once( dirname(__FILE__).'/3rdparty/JSON.php');
2143
  $json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
2144
  return $json->decode($value);
2145
  }
@@ -2610,7 +2623,7 @@ function powerpress_get_media_info_local($media_file, $content_type='', $file_si
2610
 
2611
  $get_duration_info = ($content_type == 'audio/mpeg' && $duration === '');
2612
  // Lets use the mp3info class:
2613
- require_once(dirname(__FILE__).'/mp3info.class.php');
2614
  $Mp3Info = new Mp3Info();
2615
  $Mp3Data = $Mp3Info->GetMp3Info($media_file, !$get_duration_info);
2616
  if( $Mp3Data )
@@ -2664,7 +2677,7 @@ function powerpress_get_media_info_local($media_file, $content_type='', $file_si
2664
  if( $content_type == 'audio/mpeg' && $duration === '' ) // if duration has a value or is set to false then we don't want to try to obtain it here...
2665
  {
2666
  // Lets use the mp3info class:
2667
- require_once(dirname(__FILE__).'/mp3info.class.php');
2668
  $Mp3Info = new Mp3Info();
2669
  $Mp3Data = $Mp3Info->GetMp3Info($media_file);
2670
  if( $Mp3Data )
@@ -2736,8 +2749,8 @@ function powerpress_add_error($error)
2736
 
2737
 
2738
 
2739
- require_once( dirname(__FILE__).'/powerpressadmin-jquery.php');
2740
  // Only include the dashboard when appropriate.
2741
- require_once(dirname(__FILE__).'/powerpressadmin-dashboard.php');
2742
 
2743
  ?>
468
  case 'powerpress-ping-sites': {
469
  check_admin_referer('powerpress-ping-sites');
470
 
471
+ require_once( POWERPRESS_ABSPATH . '/powerpressadmin-ping-sites.php');
472
  powerpressadmin_ping_sites_process();
473
 
474
  $_GET['action'] = 'powerpress-ping-sites';
476
  case 'powerpress-find-replace': {
477
  check_admin_referer('powerpress-find-replace');
478
 
479
+ require_once( POWERPRESS_ABSPATH . '/powerpressadmin-find-replace.php');
480
  powerpressadmin_find_replace_process();
481
 
482
  $_GET['action'] = 'powerpress-find-replace';
484
  case 'powerpress-importpodpress': {
485
  check_admin_referer('powerpress-import-podpress');
486
 
487
+ require_once( POWERPRESS_ABSPATH . '/powerpressadmin-podpress.php');
488
  powerpressadmin_podpress_do_import();
489
 
490
  $_GET['action'] = 'powerpress-podpress-epiosdes';
492
  case 'powerpress-importmt': {
493
  check_admin_referer('powerpress-import-mt');
494
 
495
+ require_once( POWERPRESS_ABSPATH . '/powerpressadmin-mt.php');
496
  powerpressadmin_mt_do_import();
497
 
498
  $_GET['action'] = 'powerpress-mt-epiosdes';
500
  case 'deletepodpressdata': {
501
  check_admin_referer('powerpress-delete-podpress-data');
502
 
503
+ require_once( POWERPRESS_ABSPATH . '/powerpressadmin-podpress.php');
504
  powerpressadmin_podpress_delete_data();
505
 
506
  }; break;
728
  if( @$GeneralSettings['player_options'] )
729
  {
730
  // Make sure we include the player-options
731
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-player.php');
732
  powerpress_admin_players_init();
733
  }
734
  }
825
  else if( function_exists('add_meta_box') && (!@$Powerpress['use_caps'] || current_user_can('edit_podcast') ) )
826
  { // Otherwise we're using a version of wordpress that is not supported.
827
 
828
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-metabox.php');
829
  add_meta_box('powerpress-podcast', __('Podcast Episode'), 'powerpress_meta_box', 'page', 'normal');
830
 
831
  if( isset($Powerpress['custom_feeds']) )
1342
  timeout: (30 * 1000),
1343
  success: function(response) {
1344
 
1345
+ <?php
1346
+ if( defined('POWERPRESS_AJAX_DEBUG') )
1347
+ echo "\t\t\t\talert(response);\n";
1348
+ ?>
1349
  var Parts = response.split("\n", 5);
1350
  var FeedSlug = Parts[0];
1351
 
1396
  }
1397
  },
1398
  error: function(objAJAXRequest, strError) {
1399
+
1400
+ var errorMsg = "HTTP " +objAJAXRequest.statusText;
1401
+ if ( objAJAXRequest.responseText ) {
1402
+ errorMsg += ', '+ objAJAXRequest.responseText.replace( /<.[^<>]*?>/g, '' );
1403
+ }
1404
+
1405
  jQuery('#powerpress_check_'+FeedSlug).css("display", 'none');
1406
  if( strError == 'timeout' )
1407
  jQuery( '#powerpress_warning_'+FeedSlug ).text( '<?php echo __('Operation timed out.'); ?>' );
1408
+ else if( errorMsg )
1409
+ jQuery( '#powerpress_warning_'+FeedSlug ).text( '<?php echo __('AJAX Error') .': '; ?>'+errorMsg );
1410
+ else if( strError != null )
1411
+ jQuery( '#powerpress_warning_'+FeedSlug ).text( '<?php echo __('AJAX Error') .': '; ?>'+strError );
1412
+ else
1413
+ jQuery( '#powerpress_warning_'+FeedSlug ).text( '<?php echo __('AJAX Error') .': '. __('Unknown'); ?>' );
1414
  jQuery( '#powerpress_warning_'+FeedSlug ).css('display', 'block');
1415
  }
1416
  });
1612
  if( !isset($Settings['advanced_mode']) )
1613
  {
1614
  powerpress_admin_page_header(false, 'powerpress-edit', true);
1615
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-mode.php');
1616
  powerpress_admin_mode();
1617
  powerpress_admin_page_footer(false);
1618
  return;
1619
  }
1620
 
1621
  powerpress_admin_page_header();
1622
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-basic.php');
1623
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-editfeed.php');
1624
  powerpress_admin_basic();
1625
  powerpress_admin_page_footer(true);
1626
  }
1629
  function powerpress_admin_page_players()
1630
  {
1631
  powerpress_admin_page_header('powerpress/powerpressadmin_player.php');
1632
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-player.php');
1633
  powerpress_admin_page_player();
1634
  powerpress_admin_page_footer(true);
1635
  }
1638
  function powerpress_admin_page_podpress_stats()
1639
  {
1640
  powerpress_admin_page_header('powerpress/powerpressadmin_podpress-stats.php');
1641
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-podpress-stats.php');
1642
  powerpress_admin_podpress_stats();
1643
  powerpress_admin_page_footer(false);
1644
  }
1647
  function powerpress_admin_page_tags()
1648
  {
1649
  powerpress_admin_page_header('powerpress/powerpressadmin_tags.php');
1650
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-tags.php');
1651
  powerpress_admin_tags();
1652
  powerpress_admin_page_footer();
1653
  }
1659
  {
1660
  case 'powerpress-editfeed' : {
1661
  powerpress_admin_page_header('powerpress/powerpressadmin_customfeeds.php');
1662
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-editfeed.php');
1663
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-basic.php');
1664
  powerpress_admin_editfeed($_GET['feed_slug']);
1665
  powerpress_admin_page_footer();
1666
  }; break;
1667
  default: {
1668
  powerpress_admin_page_header('powerpress/powerpressadmin_customfeeds.php', 'powerpress-add-feed');
1669
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-customfeeds.php');
1670
  powerpress_admin_customfeeds();
1671
  powerpress_admin_page_footer(false);
1672
  };
1680
  {
1681
  case 'powerpress-editcategoryfeed' : {
1682
  powerpress_admin_page_header('powerpress/powerpressadmin_categoryfeeds.php');
1683
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-editfeed.php');
1684
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-basic.php');
1685
  powerpress_admin_editfeed(false, $_GET['cat']);
1686
  powerpress_admin_page_footer();
1687
  }; break;
1688
  default: {
1689
  powerpress_admin_page_header('powerpress/powerpressadmin_categoryfeeds.php', 'powerpress-add-categoryfeed');
1690
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-categoryfeeds.php');
1691
  powerpress_admin_categoryfeeds();
1692
  powerpress_admin_page_footer(false);
1693
  };
1701
  {
1702
  case 'powerpress-podpress-epiosdes' : {
1703
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', 'powerpress-import-podpress');
1704
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-podpress.php');
1705
  powerpress_admin_podpress();
1706
  powerpress_admin_page_footer(false);
1707
  }; break;
1708
  case 'powerpress-mt-epiosdes': {
1709
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', 'powerpress-import-mt');
1710
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-mt.php');
1711
  powerpress_admin_mt();
1712
  powerpress_admin_page_footer(false);
1713
  }; break;
1714
  case 'powerpress-ping-sites': {
1715
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', 'powerpress-ping-sites');
1716
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-ping-sites.php');
1717
  powerpress_admin_ping_sites();
1718
  powerpress_admin_page_footer(false);
1719
  }; break;
1720
  case 'powerpress-find-replace': {
1721
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', 'powerpress-find-replace');
1722
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-find-replace.php');
1723
  powerpress_admin_find_replace();
1724
  powerpress_admin_page_footer(false);
1725
  }; break;
1726
  case 'powerpress-diagnostics': {
1727
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', false);
1728
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-diagnostics.php');
1729
  powerpressadmin_diagnostics();
1730
  powerpress_admin_page_footer(false, false);
1731
  }; break;
1732
  default: {
1733
  powerpress_admin_page_header('powerpress/powerpressadmin_tools.php', false);
1734
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-tools.php');
1735
  powerpress_admin_tools();
1736
  powerpress_admin_page_footer(false, false);
1737
  };
2152
  if( function_exists('json_decode') && version_compare($wp_version, '2.8.9', '>') ) // WordPress 2.9+ json_decode function
2153
  $null = json_decode('{"a":1}'); // Hack, includes the class-json.php from within the wp-includes folder
2154
  if( !class_exists('Services_JSON') )
2155
+ require_once( POWERPRESS_ABSPATH .'/3rdparty/JSON.php');
2156
  $json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
2157
  return $json->decode($value);
2158
  }
2623
 
2624
  $get_duration_info = ($content_type == 'audio/mpeg' && $duration === '');
2625
  // Lets use the mp3info class:
2626
+ require_once( POWERPRESS_ABSPATH .'/mp3info.class.php');
2627
  $Mp3Info = new Mp3Info();
2628
  $Mp3Data = $Mp3Info->GetMp3Info($media_file, !$get_duration_info);
2629
  if( $Mp3Data )
2677
  if( $content_type == 'audio/mpeg' && $duration === '' ) // if duration has a value or is set to false then we don't want to try to obtain it here...
2678
  {
2679
  // Lets use the mp3info class:
2680
+ require_once( POWERPRESS_ABSPATH .'/mp3info.class.php');
2681
  $Mp3Info = new Mp3Info();
2682
  $Mp3Data = $Mp3Info->GetMp3Info($media_file);
2683
  if( $Mp3Data )
2749
 
2750
 
2751
 
2752
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-jquery.php');
2753
  // Only include the dashboard when appropriate.
2754
+ require_once( POWERPRESS_ABSPATH .'/powerpressadmin-dashboard.php');
2755
 
2756
  ?>
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Blubrry PowerPress Podcasting plugin ===
2
  Contributors: Angelo Mandato, Blubrry.com
3
- Tags: podcasting, podcast, podcaster, itunes, enclosure, zune, iphone, youtube, viddler, blip.tv, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, wordpressmu, mu, wordpress mu
4
  Requires at least: 2.6.0
5
  Tested up to: 2.9.2
6
- Stable tag: 1.0.7
7
 
8
  Blubrry PowerPress brings the essential features for podcasting to WordPress including full iTunes support, web audio/video media players and more.
9
 
@@ -140,9 +140,18 @@ To install Blubrry PowerPress manually, follow these steps:
140
  = Announcement =
141
  * We are about 90% done updating PowerPress for translation. If you would like to have PowerPress translated into other languages, please contact Angelo: cio [at] rawvoice.com.
142
 
 
 
 
 
 
 
 
 
 
143
  = 1.0.7 =
144
  * Released on 3/29/2010
145
- * NOTE: There is no need to update to this version unless you can benefit from the minor fixes listed below.
146
  * Removed code to maintain currently selected tab due to conflict with mod_security. (Thanks Glark and matt1027 for your assistance with this issue!)
147
  * Fixed ampersand (&) to &amp; in podcast channel descriptions (Thanks David for bringing to our attention!)
148
  * Fixed bug where duration would only properly set using the Verify button, now works without the Verify button (Thanks Fr. Shawn for bringing to our attention!)
1
  === Blubrry PowerPress Podcasting plugin ===
2
  Contributors: Angelo Mandato, Blubrry.com
3
+ Tags: podcasting, podcast, podcaster, itunes, enclosure, zune, iphone, youtube, viddler, blip.tv, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, wordpressmu, mu, wordpress mu, mediacaster, post, plugin, posts, simple, social, dashboard
4
  Requires at least: 2.6.0
5
  Tested up to: 2.9.2
6
+ Stable tag: 1.0.8
7
 
8
  Blubrry PowerPress brings the essential features for podcasting to WordPress including full iTunes support, web audio/video media players and more.
9
 
140
  = Announcement =
141
  * We are about 90% done updating PowerPress for translation. If you would like to have PowerPress translated into other languages, please contact Angelo: cio [at] rawvoice.com.
142
 
143
+ = 1.0.8 =
144
+ * Released on 5/10/2010
145
+ * Fixed bug where ampersand characters, if present, where not being escaped properly for the itunes:new-feed-url setting. (Thanks Bryon for reporting the bug)
146
+ * Added option to 1 pixel out player to display **Display Remaining Time** (thanks siri102 for suggesting this feature)
147
+ * Added option to 1 pixel out player to set the **Buffering Time** (thanks siri102 for suggesting this feature)
148
+ * Added better debug information for the Verify button's AJAX failures
149
+ * Implemented more efficient logic for including project files in PHP (Thanks [Joseph Scott](http://josephscott.org/archives/2010/04/efficient-php-dont-abuse-dirname-__file__/) from Automattic)
150
+
151
+
152
  = 1.0.7 =
153
  * Released on 3/29/2010
154
+ * NOTE: There is no need to update to this version unless you can benefit from the new options or minor fixes listed below.
155
  * Removed code to maintain currently selected tab due to conflict with mod_security. (Thanks Glark and matt1027 for your assistance with this issue!)
156
  * Fixed ampersand (&) to &amp; in podcast channel descriptions (Thanks David for bringing to our attention!)
157
  * Fixed bug where duration would only properly set using the Verify button, now works without the Verify button (Thanks Fr. Shawn for bringing to our attention!)