PowerPress Podcasting plugin by Blubrry - Version 7.0.2

Version Description

  • Released on 7/22/2016
  • Fixed bug with new Blubrry Player not displaying show notes button.
  • Added TuneIn subscribe URL option. (Thanks @kgagne for bringing to our attention!)
  • Removed the PHP 5.2 or older error message in the getid3 library. (Thanks davidpmariano for the heads up!)
  • Fixed bug where podcast channels with a blank feed title do not apply specific channel settings like the website link. (Thanks Robin Brinkler for bringing to our attention!)
  • Fixed bug where category episodes were not using the category settings like they used to if only one category is selected. (Thanks Jason Bryant for explaining the situation for us to reproduce the problem!)
  • Added additional logic to better handle category podcasting when strict category podcasting is not enabled.
  • Removed itunes:summary when Feed Maximizer on (this was the behavior before 7.0). iTunes summary is a duplicate of the RSS description. To include itunes summary in maximizer mode, please add define('POWERPRESS_MAXIMIZER_INCLUDE_ITUNES_SUMMARY', true); in your wp-config.php.
Download this release

Release Info

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

Code changes from version 7.0.1 to 7.0.2

class.powerpress-subscribe-widget.php CHANGED
@@ -96,6 +96,9 @@ body .pp-ssb-widget a.pp-ssb-btn:hover {
96
  .pp-ssb-widget-modern a.pp-ssb-stitcher {
97
  background-color: #197195;
98
  }
 
 
 
99
  .pp-ssb-widget-modern a.pp-ssb-gp {
100
  background-color: #F15832;
101
  }
@@ -131,6 +134,9 @@ body .pp-ssb-widget a.pp-ssb-btn:hover {
131
  .pp-ssb-stitcher .pp-ssb-ic {
132
  background-position: -147px -98px;
133
  }
 
 
 
134
  .pp-ssb-gp .pp-ssb-ic {
135
  background-position: -196px -98px;
136
  }
96
  .pp-ssb-widget-modern a.pp-ssb-stitcher {
97
  background-color: #197195;
98
  }
99
+ .pp-ssb-widget-modern a.pp-ssb-tunein {
100
+ background-color: #2CB6A8;
101
+ }
102
  .pp-ssb-widget-modern a.pp-ssb-gp {
103
  background-color: #F15832;
104
  }
134
  .pp-ssb-stitcher .pp-ssb-ic {
135
  background-position: -147px -98px;
136
  }
137
+ .pp-ssb-tunein .pp-ssb-ic {
138
+ background-position: -245px -98px;
139
+ }
140
  .pp-ssb-gp .pp-ssb-ic {
141
  background-position: -196px -98px;
142
  }
css/subscribe.css CHANGED
@@ -137,6 +137,9 @@ body .pp-sub-widget a:hover {
137
  background-color: #3ec6ff; /* stitcher light blue */
138
  background-color: #197195; /* stitcher dark blue */
139
  }
 
 
 
140
  .pp-sub-widget-modern a.pp-sub-gp {
141
  background-color: #F15832;
142
  }
@@ -183,6 +186,9 @@ body .pp-sub-widget a:hover {
183
  .pp-sub-stitcher .pp-sub-ic {
184
  background-position: -147px -98px;
185
  }
 
 
 
186
  .pp-sub-gp .pp-sub-ic {
187
  background-position: -196px -98px;
188
  }
137
  background-color: #3ec6ff; /* stitcher light blue */
138
  background-color: #197195; /* stitcher dark blue */
139
  }
140
+ .pp-sub-widget-modern a.pp-sub-tunein {
141
+ background-color: #2CB6A8;
142
+ }
143
  .pp-sub-widget-modern a.pp-sub-gp {
144
  background-color: #F15832;
145
  }
186
  .pp-sub-stitcher .pp-sub-ic {
187
  background-position: -147px -98px;
188
  }
189
+ .pp-sub-tunein .pp-sub-ic {
190
+ background-position: -245px -98px;
191
+ }
192
  .pp-sub-gp .pp-sub-ic {
193
  background-position: -196px -98px;
194
  }
feed-podcast.php CHANGED
@@ -182,3 +182,4 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'."\n";
182
  ?>
183
  </channel>
184
  </rss>
 
182
  ?>
183
  </channel>
184
  </rss>
185
+ <?php exit; // exit feed to prevent possible notices ?>
getid3/getid3.php CHANGED
@@ -119,11 +119,11 @@ class getID3
119
  public function __construct() {
120
 
121
  // Check for PHP version
122
- $required_php_version = '5.3.0';
123
- if (version_compare(PHP_VERSION, $required_php_version, '<')) {
124
- $this->startup_error .= 'getID3() requires PHP v'.$required_php_version.' or higher - you are running v'.PHP_VERSION;
125
- return false;
126
- }
127
 
128
  // Check memory
129
  $this->memory_limit = ini_get('memory_limit');
119
  public function __construct() {
120
 
121
  // Check for PHP version
122
+ //~ $required_php_version = '5.3.0';
123
+ //~ if (version_compare(PHP_VERSION, $required_php_version, '<')) {
124
+ //~ $this->startup_error .= 'getID3() requires PHP v'.$required_php_version.' or higher - you are running v'.PHP_VERSION;
125
+ //~ return false;
126
+ //~ }
127
 
128
  // Check memory
129
  $this->memory_limit = ini_get('memory_limit');
images/spriteRetina.png CHANGED
Binary file
images/spriteStandard.png CHANGED
Binary file
powerpress-player.php CHANGED
@@ -275,7 +275,7 @@ function powerpress_generate_embed($player, $EpisodeData) // $post_id, $feed_slu
275
  $extension = powerpressplayer_get_extension($EpisodeData['url']);
276
  if( $extension == 'mp3' || $extension == 'm4a' )
277
  {
278
- return powerpressplayer_build_blubrryaudio($EpisodeData['url']);
279
  }
280
  return '';
281
  }
@@ -1402,7 +1402,14 @@ function powerpressplayer_build_blubrryaudio($media_url, $EpisodeData=array(), $
1402
  // media URL is all we need., as long as it's hosted at blubrry.com...
1403
  if( preg_match('/content\.blubrry\.com/', $media_url) )
1404
  {
1405
- return '<iframe src="//player.blubrry.com?media_url='. urlencode($media_url) .'" scrolling="no" width="100%" height="138px" frameborder="0"></iframe>';
 
 
 
 
 
 
 
1406
  }
1407
 
1408
  return powerpressplayer_build_mediaelementaudio($media_url, $EpisodeData, $embed);
275
  $extension = powerpressplayer_get_extension($EpisodeData['url']);
276
  if( $extension == 'mp3' || $extension == 'm4a' )
277
  {
278
+ return powerpressplayer_build_blubrryaudio($EpisodeData['url'], $EpisodeData);
279
  }
280
  return '';
281
  }
1402
  // media URL is all we need., as long as it's hosted at blubrry.com...
1403
  if( preg_match('/content\.blubrry\.com/', $media_url) )
1404
  {
1405
+ $url = '//player.blubrry.com?media_url='. urlencode($media_url);
1406
+ if( !empty($EpisodeData['id']) ) {
1407
+ // Get permalink URL
1408
+ $permalink = get_permalink( $EpisodeData['id'] );
1409
+ if( !empty($permalink) )
1410
+ $url.= '&amp;podcast_link='. urlencode($permalink);
1411
+ }
1412
+ return '<iframe src="'. $url .'" scrolling="no" width="100%" height="138px" frameborder="0"></iframe>';
1413
  }
1414
 
1415
  return powerpressplayer_build_mediaelementaudio($media_url, $EpisodeData, $embed);
powerpress-subscribe.php CHANGED
@@ -33,8 +33,11 @@ function powerpresssubscribe_get_settings($ExtraData, $detect_category=true)
33
  $taxonomy_term_id = (empty($ExtraData['taxonomy_term_id'])?false: $ExtraData['taxonomy_term_id']);
34
  // Special case, strict category specified...
35
  if( 'podcast' == $feed_slug && empty($post_type) && empty($taxonomy_term_id) && !empty($ExtraData['category']) ) {
36
- $category_id = $ExtraData['category'];
37
- $ExtraData['subscribe_type'] = 'category';
 
 
 
38
  }
39
 
40
  if( empty($ExtraData['subscribe_type']) ) // Make sure this value is set
@@ -78,6 +81,16 @@ function powerpresssubscribe_get_settings($ExtraData, $detect_category=true)
78
  $categories = wp_get_post_categories( get_the_ID() );
79
  if( count($categories) == 1 )
80
  list($null,$category_id) = each($categories);
 
 
 
 
 
 
 
 
 
 
81
  }
82
  }
83
 
@@ -109,6 +122,7 @@ function powerpresssubscribe_get_settings($ExtraData, $detect_category=true)
109
  $Settings['subscribe_feature_email'] = (!empty($GeneralSettings['subscribe_feature_email']) );
110
  $Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
111
  $Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
 
112
  return $Settings;
113
  }
114
 
@@ -168,6 +182,7 @@ function powerpresssubscribe_get_settings($ExtraData, $detect_category=true)
168
  $Settings['subscribe_feature_email'] = (!empty($GeneralSettings['subscribe_feature_email']) );
169
  $Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
170
  $Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
 
171
  return $Settings;
172
  }
173
  }; break;
@@ -200,10 +215,12 @@ function powerpresssubscribe_get_settings($ExtraData, $detect_category=true)
200
  $Settings['subscribe_feature_email'] = (!empty($GeneralSettings['subscribe_feature_email']) );
201
  $Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
202
  $Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
 
203
  if( !empty($FeedSettings['premium']) ) {
204
  $Settings['subscribe_feature_email'] = false;
205
  $Settings['subscribe_feature_gp'] = false;
206
  $Settings['subscribe_feature_stitcher'] = false;
 
207
  }
208
 
209
  return $Settings;
@@ -222,7 +239,7 @@ function powerpressplayer_link_subscribe_pre($content, $media_url, $ExtraData =
222
  }
223
  else if( 'post' == get_post_type() && !empty($ExtraData['category']) ) { // If strict category selected
224
  $ExtraData['cat_id'] = $ExtraData['category'];
225
- $ExtraData['subscribe_type'] = 'category';
226
  $detect_category = false;
227
  }
228
 
@@ -268,6 +285,12 @@ function powerpressplayer_link_subscribe_pre($content, $media_url, $ExtraData =
268
  $SubscribeSettings['stitcher_url'] = trim($SubscribeSettings['stitcher_url']);
269
  $links_array[] = "<a href=\"". esc_attr($SubscribeSettings['stitcher_url'] ) ."\" class=\"powerpress_link_subscribe powerpress_link_subscribe_stitcher\" title=\"". __('Subscribe on Stitcher', 'powerpress') ."\" rel=\"nofollow\">". __('Stitcher','powerpress') ."</a>".PHP_EOL_WEB;
270
  }
 
 
 
 
 
 
271
 
272
  if( !empty($SubscribeSettings['subscribe_feature_rss']) ) {
273
  $links_array[] = "<a href=\"". htmlspecialchars($feed_url) ."\" class=\"powerpress_link_subscribe powerpress_link_subscribe_rss\" title=\"". __('Subscribe via RSS', 'powerpress') ."\" rel=\"nofollow\">". __('RSS','powerpress') ."</a>".PHP_EOL_WEB;
@@ -285,7 +308,7 @@ function powerpressplayer_link_subscribe_pre($content, $media_url, $ExtraData =
285
 
286
  function powerpressplayer_link_subscribe_post($content, $media_url, $ExtraData = array() )
287
  {
288
- if( $content )
289
  {
290
  $GeneralSettings = get_option('powerpress_general');
291
 
@@ -295,7 +318,7 @@ function powerpressplayer_link_subscribe_post($content, $media_url, $ExtraData =
295
  // Get label setting from $GeneralSettings
296
  $prefix = htmlspecialchars($label) . ' ';
297
 
298
- $return = '<p class="powerpress_links powerpress_subsribe_links">'. $prefix . $content . '</p>';
299
  return $return;
300
  }
301
  return $content;
@@ -428,7 +451,7 @@ function powerpress_subscribe_shortcode( $attr ) {
428
 
429
  if( !empty($attr['itunes_button']) && !empty($Settings['itunes_url']) )
430
  {
431
- $html .= '<div>';
432
  $html .= '';
433
  $html .='<a href="';
434
  $html .= esc_url($Settings['itunes_url']);
@@ -530,16 +553,23 @@ function powerpress_do_subscribe_widget($settings)
530
  }
531
  }
532
 
533
- if( true && !empty($settings['googleplay_url']) )
534
  {
535
  $html .= '<a href="'. esc_url( $settings['googleplay_url'] ) .'" class="pp-sub-btn pp-sub-gp" title="'. esc_attr( __('Subscribe on Google Play', 'powerpress') ) .'"><span class="pp-sub-ic"></span>'. esc_html( __('on Google Play', 'powerpress') ) .'</a>';
536
  }
537
 
538
- if( true && !empty($settings['stitcher_url']) )
539
  {
540
  $html .= '<a href="'. esc_url( $settings['stitcher_url'] ) .'" class="pp-sub-btn pp-sub-stitcher" title="'. esc_attr( __('Subscribe on Stitcher', 'powerpress') ) .'"><span class="pp-sub-ic"></span>'. esc_html( __('on Stitcher', 'powerpress') ) .'</a>';
541
  }
542
 
 
 
 
 
 
 
 
543
  if( !empty($settings['subscribe_feature_rss']) ) {
544
  $html .= '<a href="'. esc_url( $settings['feed_url'] ) .'" class="pp-sub-btn pp-sub-rss" title="'. esc_attr( __('Subscribe via RSS', 'powerpress') ) .'"><span class="pp-sub-ic"></span>'. esc_html( __('via RSS', 'powerpress') ) .'</a>';
545
  }
@@ -598,6 +628,11 @@ function powerpress_do_subscribe_sidebar_widget($settings)
598
  $html .= '<a href="'. esc_url( $settings['stitcher_url'] ) .'" class="pp-ssb-btn pp-ssb-stitcher" title="'. esc_attr( __('Subscribe on Stitcher', 'powerpress') ) .'"><span class="pp-ssb-ic"></span>'. esc_html( __('on Stitcher', 'powerpress') ) .'</a>';
599
  }
600
 
 
 
 
 
 
601
  if( !empty($settings['subscribe_feature_rss']) ) {
602
  $html .= '<a href="'. esc_url( $settings['feed_url'] ) .'" class="pp-ssb-btn pp-ssb-rss" title="'. esc_attr( __('Subscribe via RSS', 'powerpress') ) .'"><span class="pp-ssb-ic"></span>'. esc_html( __('via RSS', 'powerpress') ) .'</a>';
603
  }
33
  $taxonomy_term_id = (empty($ExtraData['taxonomy_term_id'])?false: $ExtraData['taxonomy_term_id']);
34
  // Special case, strict category specified...
35
  if( 'podcast' == $feed_slug && empty($post_type) && empty($taxonomy_term_id) && !empty($ExtraData['category']) ) {
36
+ if( !empty($GeneralSettings['cat_casting_strict']) ) // Strict category podcasting, otherwise we let the logic below figure it out!
37
+ {
38
+ $category_id = $ExtraData['category'];
39
+ $ExtraData['subscribe_type'] = 'category';
40
+ }
41
  }
42
 
43
  if( empty($ExtraData['subscribe_type']) ) // Make sure this value is set
81
  $categories = wp_get_post_categories( get_the_ID() );
82
  if( count($categories) == 1 )
83
  list($null,$category_id) = each($categories);
84
+ if( !empty($category_id) )
85
+ {
86
+ $Settings = get_option('powerpress_cat_feed_'.$category_id );
87
+ // Check if it is a podcast category...
88
+ if( !empty($Settings) ) {
89
+ $ExtraData['subscribe_type'] = 'category';
90
+ } else {
91
+ $category_id = false; // Unset it!
92
+ }
93
+ }
94
  }
95
  }
96
 
122
  $Settings['subscribe_feature_email'] = (!empty($GeneralSettings['subscribe_feature_email']) );
123
  $Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
124
  $Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
125
+ $Settings['subscribe_feature_tunein'] = (!empty($GeneralSettings['subscribe_feature_tunein']) );
126
  return $Settings;
127
  }
128
 
182
  $Settings['subscribe_feature_email'] = (!empty($GeneralSettings['subscribe_feature_email']) );
183
  $Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
184
  $Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
185
+ $Settings['subscribe_feature_tunein'] = (!empty($GeneralSettings['subscribe_feature_tunein']) );
186
  return $Settings;
187
  }
188
  }; break;
215
  $Settings['subscribe_feature_email'] = (!empty($GeneralSettings['subscribe_feature_email']) );
216
  $Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
217
  $Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
218
+ $Settings['subscribe_feature_tunein'] = (!empty($GeneralSettings['subscribe_feature_tunein']) );
219
  if( !empty($FeedSettings['premium']) ) {
220
  $Settings['subscribe_feature_email'] = false;
221
  $Settings['subscribe_feature_gp'] = false;
222
  $Settings['subscribe_feature_stitcher'] = false;
223
+ $Settings['subscribe_feature_tunein'] = false;
224
  }
225
 
226
  return $Settings;
239
  }
240
  else if( 'post' == get_post_type() && !empty($ExtraData['category']) ) { // If strict category selected
241
  $ExtraData['cat_id'] = $ExtraData['category'];
242
+ //$ExtraData['subscribe_type'] = 'category'; // Let the get settings function below figure this out
243
  $detect_category = false;
244
  }
245
 
285
  $SubscribeSettings['stitcher_url'] = trim($SubscribeSettings['stitcher_url']);
286
  $links_array[] = "<a href=\"". esc_attr($SubscribeSettings['stitcher_url'] ) ."\" class=\"powerpress_link_subscribe powerpress_link_subscribe_stitcher\" title=\"". __('Subscribe on Stitcher', 'powerpress') ."\" rel=\"nofollow\">". __('Stitcher','powerpress') ."</a>".PHP_EOL_WEB;
287
  }
288
+
289
+ if( !empty($SubscribeSettings['subscribe_feature_tunein']) && !empty($SubscribeSettings['tunein_url']) )
290
+ {
291
+ $SubscribeSettings['tunein_url'] = trim($SubscribeSettings['tunein_url']);
292
+ $links_array[] = "<a href=\"". esc_attr($SubscribeSettings['tunein_url'] ) ."\" class=\"powerpress_link_subscribe powerpress_link_subscribe_tunein\" title=\"". __('Subscribe on TuneIn', 'powerpress') ."\" rel=\"nofollow\">". __('TuneIn','powerpress') ."</a>".PHP_EOL_WEB;
293
+ }
294
 
295
  if( !empty($SubscribeSettings['subscribe_feature_rss']) ) {
296
  $links_array[] = "<a href=\"". htmlspecialchars($feed_url) ."\" class=\"powerpress_link_subscribe powerpress_link_subscribe_rss\" title=\"". __('Subscribe via RSS', 'powerpress') ."\" rel=\"nofollow\">". __('RSS','powerpress') ."</a>".PHP_EOL_WEB;
308
 
309
  function powerpressplayer_link_subscribe_post($content, $media_url, $ExtraData = array() )
310
  {
311
+ if( !empty($content) )
312
  {
313
  $GeneralSettings = get_option('powerpress_general');
314
 
318
  // Get label setting from $GeneralSettings
319
  $prefix = htmlspecialchars($label) . ' ';
320
 
321
+ $return = '<p class="powerpress_links powerpress_subscribe_links">'. $prefix . $content . '</p>';
322
  return $return;
323
  }
324
  return $content;
451
 
452
  if( !empty($attr['itunes_button']) && !empty($Settings['itunes_url']) )
453
  {
454
+ $html = '<div>';
455
  $html .= '';
456
  $html .='<a href="';
457
  $html .= esc_url($Settings['itunes_url']);
553
  }
554
  }
555
 
556
+ if( !empty($settings['googleplay_url']) )
557
  {
558
  $html .= '<a href="'. esc_url( $settings['googleplay_url'] ) .'" class="pp-sub-btn pp-sub-gp" title="'. esc_attr( __('Subscribe on Google Play', 'powerpress') ) .'"><span class="pp-sub-ic"></span>'. esc_html( __('on Google Play', 'powerpress') ) .'</a>';
559
  }
560
 
561
+ if( !empty($settings['stitcher_url']) )
562
  {
563
  $html .= '<a href="'. esc_url( $settings['stitcher_url'] ) .'" class="pp-sub-btn pp-sub-stitcher" title="'. esc_attr( __('Subscribe on Stitcher', 'powerpress') ) .'"><span class="pp-sub-ic"></span>'. esc_html( __('on Stitcher', 'powerpress') ) .'</a>';
564
  }
565
 
566
+ if( !empty($settings['tunein_url']) )
567
+ {
568
+ $html .= '<a href="'. esc_url( $settings['tunein_url'] ) .'" class="pp-sub-btn pp-sub-tunein" title="'. esc_attr( __('Subscribe on TuneIn', 'powerpress') ) .'"><span class="pp-sub-ic"></span>'. esc_html( __('on TuneIn', 'powerpress') ) .'</a>';
569
+ }
570
+
571
+ //$html .= var_dump($settings, true);
572
+
573
  if( !empty($settings['subscribe_feature_rss']) ) {
574
  $html .= '<a href="'. esc_url( $settings['feed_url'] ) .'" class="pp-sub-btn pp-sub-rss" title="'. esc_attr( __('Subscribe via RSS', 'powerpress') ) .'"><span class="pp-sub-ic"></span>'. esc_html( __('via RSS', 'powerpress') ) .'</a>';
575
  }
628
  $html .= '<a href="'. esc_url( $settings['stitcher_url'] ) .'" class="pp-ssb-btn pp-ssb-stitcher" title="'. esc_attr( __('Subscribe on Stitcher', 'powerpress') ) .'"><span class="pp-ssb-ic"></span>'. esc_html( __('on Stitcher', 'powerpress') ) .'</a>';
629
  }
630
 
631
+ if( !empty($settings['subscribe_feature_tunein']) && !empty($settings['tunein_url']) ) {
632
+ $settings['tunein_url'] = trim($settings['tunein_url']);
633
+ $html .= '<a href="'. esc_url( $settings['tunein_url'] ) .'" class="pp-ssb-btn pp-ssb-tunein" title="'. esc_attr( __('Subscribe on TuneIn', 'powerpress') ) .'"><span class="pp-ssb-ic"></span>'. esc_html( __('on TuneIn', 'powerpress') ) .'</a>';
634
+ }
635
+
636
  if( !empty($settings['subscribe_feature_rss']) ) {
637
  $html .= '<a href="'. esc_url( $settings['feed_url'] ) .'" class="pp-ssb-btn pp-ssb-rss" title="'. esc_attr( __('Subscribe via RSS', 'powerpress') ) .'"><span class="pp-ssb-ic"></span>'. esc_html( __('via RSS', 'powerpress') ) .'</a>';
638
  }
powerpress.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://create.blubrry.com/resources/powerpress/
5
  Description: <a href="http://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports iTunes, Google Play, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
- Version: 7.0.1
7
  Author: Blubrry
8
  Author URI: http://www.blubrry.com/
9
  Requires at least: 3.6
@@ -32,7 +32,7 @@ if( !function_exists('add_action') )
32
  die("access denied.");
33
 
34
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
35
- define('POWERPRESS_VERSION', '7.0.1' );
36
 
37
  // Translation support:
38
  if ( !defined('POWERPRESS_ABSPATH') )
@@ -325,10 +325,10 @@ function powerpress_content($content)
325
  }
326
  }
327
 
328
- if( !isset($EpisodeData['no_links']) )
329
  $new_content .= apply_filters('powerpress_player_links', '', powerpress_add_flag_to_redirect_url($EpisodeData['url'], 'p'), $EpisodeData );
330
- //$new_content .= powerpress_get_player_links($post->ID, $feed_slug, $EpisodeData);
331
  $new_content .= apply_filters('powerpress_player_subscribe_links', '', powerpress_add_flag_to_redirect_url($EpisodeData['url'], 'p'), $EpisodeData );
 
332
  }
333
  }
334
  }
@@ -775,7 +775,7 @@ function powerpress_rss2_head()
775
  if( !empty($Feed['donate_link']) && !empty($Feed['donate_url']) )
776
  echo "\t<rawvoice:donate href=\"". htmlspecialchars( $Feed['donate_url'] ) ."\">". htmlspecialchars( (empty($Feed['donate_label'])?'':$Feed['donate_label']) ) ."</rawvoice:donate>".PHP_EOL;
777
 
778
- if( !empty($Feed['itunes_url']) || !empty($Feed['googleplay_url']) || !empty($Feed['blubrry_url']) || !empty($Feed['stitcher_url']) ) {
779
  echo "\t<rawvoice:subscribe feed=\"";
780
  self_link();
781
  echo '"';
@@ -798,6 +798,8 @@ function powerpress_rss2_head()
798
  echo " blubrry=\"". htmlspecialchars( $Feed['blubrry_url'] ) .'"';
799
  if( !empty($Feed['stitcher_url']) )
800
  echo " stitcher=\"". htmlspecialchars( $Feed['stitcher_url'] ) .'"';
 
 
801
  echo "></rawvoice:subscribe>".PHP_EOL;
802
  }
803
  }
@@ -912,14 +914,16 @@ function powerpress_rss2_item()
912
  echo "\t<itunes:subtitle>". powerpress_format_itunes_value($subtitle, 'subtitle') .'</itunes:subtitle>'.PHP_EOL;
913
  }
914
 
915
- if( !empty($summary) ) {
916
- if( $summary_cdata ) {
917
- echo "\t\t<itunes:summary><![CDATA[". powerpress_format_itunes_value($summary, 'summary', true) .']]></itunes:summary>'.PHP_EOL;
918
- } else {
919
- echo "\t\t<itunes:summary>". powerpress_format_itunes_value($summary, 'summary') .'</itunes:summary>'.PHP_EOL;
 
 
920
  }
921
  }
922
-
923
  if( !empty($author) ) {
924
  echo "\t\t<itunes:author>" . esc_html($author) . '</itunes:author>'.PHP_EOL;
925
  }
@@ -1089,7 +1093,7 @@ function powerpress_bloginfo_rss($content, $field = '')
1089
  else
1090
  {
1091
  global $powerpress_feed;
1092
- //var_dump($powerpress_feed);
1093
  if( !empty($powerpress_feed['post_type']) )
1094
  {
1095
  $feed_slug = get_query_var('feed');
@@ -1803,7 +1807,7 @@ function powerpress_load_general_feed_settings()
1803
 
1804
  $feed_slug = get_query_var('feed');
1805
  // Are we dealing with a custom podcast channel or a custom post type podcast feed...
1806
- if( !empty($GeneralSettings['posttype_podcasting']) || !empty($GeneralSettings['custom_feeds'][ $feed_slug ]) )
1807
  {
1808
  $Feed = false;
1809
  if( !empty($GeneralSettings['posttype_podcasting']) )
@@ -1822,7 +1826,7 @@ function powerpress_load_general_feed_settings()
1822
  }
1823
  }
1824
  }
1825
- if( empty($Feed) && !empty($GeneralSettings['custom_feeds'][ $feed_slug ]) )
1826
  {
1827
  $FeedCustom = get_option('powerpress_feed_'.$feed_slug); // Get custom feed specific settings
1828
  $Feed = powerpress_merge_empty_feed_settings($FeedCustom, $FeedSettingsBasic, ($feed_slug == 'podcast') );
@@ -2681,7 +2685,7 @@ function powerpress_add_redirect_url($MediaURL, $EpisodeData = false) // $channe
2681
  if( empty($EpisodeData['feed']) )
2682
  $EpisodeData['feed'] = 'podcast';
2683
 
2684
- $NewURL = apply_filters('powerpress_redirect_url', $MediaURL);
2685
 
2686
  $URLScheme = ( (preg_match('/^https:\/\//i', $NewURL) != 0 ) ? 'https://':'http://');
2687
 
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://create.blubrry.com/resources/powerpress/
5
  Description: <a href="http://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports iTunes, Google Play, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
+ Version: 7.0.2
7
  Author: Blubrry
8
  Author URI: http://www.blubrry.com/
9
  Requires at least: 3.6
32
  die("access denied.");
33
 
34
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
35
+ define('POWERPRESS_VERSION', '7.0.2' );
36
 
37
  // Translation support:
38
  if ( !defined('POWERPRESS_ABSPATH') )
325
  }
326
  }
327
 
328
+ if( !isset($EpisodeData['no_links']) ) {
329
  $new_content .= apply_filters('powerpress_player_links', '', powerpress_add_flag_to_redirect_url($EpisodeData['url'], 'p'), $EpisodeData );
 
330
  $new_content .= apply_filters('powerpress_player_subscribe_links', '', powerpress_add_flag_to_redirect_url($EpisodeData['url'], 'p'), $EpisodeData );
331
+ }
332
  }
333
  }
334
  }
775
  if( !empty($Feed['donate_link']) && !empty($Feed['donate_url']) )
776
  echo "\t<rawvoice:donate href=\"". htmlspecialchars( $Feed['donate_url'] ) ."\">". htmlspecialchars( (empty($Feed['donate_label'])?'':$Feed['donate_label']) ) ."</rawvoice:donate>".PHP_EOL;
777
 
778
+ if( !empty($Feed['itunes_url']) || !empty($Feed['googleplay_url']) || !empty($Feed['blubrry_url']) || !empty($Feed['stitcher_url']) || !empty($Feed['tunein_url']) ) {
779
  echo "\t<rawvoice:subscribe feed=\"";
780
  self_link();
781
  echo '"';
798
  echo " blubrry=\"". htmlspecialchars( $Feed['blubrry_url'] ) .'"';
799
  if( !empty($Feed['stitcher_url']) )
800
  echo " stitcher=\"". htmlspecialchars( $Feed['stitcher_url'] ) .'"';
801
+ if( !empty($Feed['tunein_url']) )
802
+ echo " tunein=\"". htmlspecialchars( $Feed['tunein_url'] ) .'"';
803
  echo "></rawvoice:subscribe>".PHP_EOL;
804
  }
805
  }
914
  echo "\t<itunes:subtitle>". powerpress_format_itunes_value($subtitle, 'subtitle') .'</itunes:subtitle>'.PHP_EOL;
915
  }
916
 
917
+ if( empty($powerpress_feed['feed_maximizer_on']) || defined('POWERPRESS_MAXIMIZER_INCLUDE_ITUNES_SUMMARY') ) {
918
+ if( !empty($summary) ) {
919
+ if( $summary_cdata ) {
920
+ echo "\t\t<itunes:summary><![CDATA[". powerpress_format_itunes_value($summary, 'summary', true) .']]></itunes:summary>'.PHP_EOL;
921
+ } else {
922
+ echo "\t\t<itunes:summary>". powerpress_format_itunes_value($summary, 'summary') .'</itunes:summary>'.PHP_EOL;
923
+ }
924
  }
925
  }
926
+
927
  if( !empty($author) ) {
928
  echo "\t\t<itunes:author>" . esc_html($author) . '</itunes:author>'.PHP_EOL;
929
  }
1093
  else
1094
  {
1095
  global $powerpress_feed;
1096
+
1097
  if( !empty($powerpress_feed['post_type']) )
1098
  {
1099
  $feed_slug = get_query_var('feed');
1807
 
1808
  $feed_slug = get_query_var('feed');
1809
  // Are we dealing with a custom podcast channel or a custom post type podcast feed...
1810
+ if( !empty($GeneralSettings['posttype_podcasting']) || isset($GeneralSettings['custom_feeds'][ $feed_slug ]) )
1811
  {
1812
  $Feed = false;
1813
  if( !empty($GeneralSettings['posttype_podcasting']) )
1826
  }
1827
  }
1828
  }
1829
+ if( empty($Feed) && isset($GeneralSettings['custom_feeds'][ $feed_slug ]) )
1830
  {
1831
  $FeedCustom = get_option('powerpress_feed_'.$feed_slug); // Get custom feed specific settings
1832
  $Feed = powerpress_merge_empty_feed_settings($FeedCustom, $FeedSettingsBasic, ($feed_slug == 'podcast') );
2685
  if( empty($EpisodeData['feed']) )
2686
  $EpisodeData['feed'] = 'podcast';
2687
 
2688
+ $NewURL = apply_filters( 'powerpress_redirect_url', $MediaURL, $EpisodeData );
2689
 
2690
  $URLScheme = ( (preg_match('/^https:\/\//i', $NewURL) != 0 ) ? 'https://':'http://');
2691
 
powerpressadmin-basic.php CHANGED
@@ -1290,9 +1290,12 @@ function powerpressadmin_appearance($General=false, $Feed = false)
1290
  </p>
1291
  </div>
1292
 
 
 
1293
  <p><input type="hidden" name="General[subscribe_feature_stitcher]" value="0" /><input type="checkbox" id="subscribe_feature_stitcher" name="General[subscribe_feature_stitcher]" value="1" <?php if( !empty($General['subscribe_feature_stitcher']) ) echo 'checked '; ?>/> <label for="subscribe_feature_stitcher"><?php echo __('Subscribe on Stitcher', 'powerpress'); ?></label> <?php echo powerpressadmin_new(); ?></p>
1294
 
1295
- <p><input type="hidden" name="General[subscribe_feature_gp]" value="0" /><input type="checkbox" id="subscribe_feature_gp" name="General[subscribe_feature_gp]" value="1" <?php if( !empty($General['subscribe_feature_gp']) ) echo 'checked '; ?>/> <label for="subscribe_feature_gp"><?php echo __('Subscribe on Google Play', 'powerpress'); ?></label> <?php echo powerpressadmin_new(); ?></p>
 
1296
  </td>
1297
  </tr>
1298
  </table>
1290
  </p>
1291
  </div>
1292
 
1293
+ <p><input type="hidden" name="General[subscribe_feature_gp]" value="0" /><input type="checkbox" id="subscribe_feature_gp" name="General[subscribe_feature_gp]" value="1" <?php if( !empty($General['subscribe_feature_gp']) ) echo 'checked '; ?>/> <label for="subscribe_feature_gp"><?php echo __('Subscribe on Google Play', 'powerpress'); ?></label> <?php echo powerpressadmin_new(); ?></p>
1294
+
1295
  <p><input type="hidden" name="General[subscribe_feature_stitcher]" value="0" /><input type="checkbox" id="subscribe_feature_stitcher" name="General[subscribe_feature_stitcher]" value="1" <?php if( !empty($General['subscribe_feature_stitcher']) ) echo 'checked '; ?>/> <label for="subscribe_feature_stitcher"><?php echo __('Subscribe on Stitcher', 'powerpress'); ?></label> <?php echo powerpressadmin_new(); ?></p>
1296
 
1297
+ <p><input type="hidden" name="General[subscribe_feature_tunein]" value="0" /><input type="checkbox" id="subscribe_feature_tunein" name="General[subscribe_feature_tunein]" value="1" <?php if( !empty($General['subscribe_feature_tunein']) ) echo 'checked '; ?>/> <label for="subscribe_feature_tunein"><?php echo __('Subscribe on TuneIn', 'powerpress'); ?></label> <?php echo powerpressadmin_new(); ?></p>
1298
+
1299
  </td>
1300
  </tr>
1301
  </table>
powerpressadmin-editfeed.php CHANGED
@@ -416,7 +416,7 @@ function powerpressadmin_edit_feed_general($FeedSettings, $General)
416
  <input type="hidden" name="General[feed_action_hook]" value="0" />
417
  <p><label><input type="checkbox" name="General[feed_action_hook]" value="1" <?php if( !empty($General['feed_action_hook']) && $General['feed_action_hook'] == 1 ) echo 'checked '; ?>/> <?php echo __('Do not allow other plugins to modify podcast feeds.', 'powerpress'); ?></label></p>
418
  <input type="hidden" name="General[feed_accel]" value="0" />
419
- <p><label><input type="checkbox" name="General[feed_accel]" value="1" <?php if( !empty($General['feed_accel']) && $General['feed_accel'] == 1 ) echo 'checked '; ?>/> <?php echo __('Accelerate feed (may conflict with caching plugins)', 'powerpress'); ?></label></p>
420
 
421
  </td>
422
  </tr>
416
  <input type="hidden" name="General[feed_action_hook]" value="0" />
417
  <p><label><input type="checkbox" name="General[feed_action_hook]" value="1" <?php if( !empty($General['feed_action_hook']) && $General['feed_action_hook'] == 1 ) echo 'checked '; ?>/> <?php echo __('Do not allow other plugins to modify podcast feeds.', 'powerpress'); ?></label></p>
418
  <input type="hidden" name="General[feed_accel]" value="0" />
419
+ <p><label><input type="checkbox" name="General[feed_accel]" value="1" <?php if( !empty($General['feed_accel']) && $General['feed_accel'] == 1 ) echo 'checked '; ?>/> <?php echo __('Accelerate feed', 'powerpress'); ?></label></p>
420
 
421
  </td>
422
  </tr>
powerpressadmin-migrate.php CHANGED
@@ -150,12 +150,13 @@ function powerpress_admin_migrate_get_status()
150
 
151
  if( !$json_data )
152
  {
 
153
  if( !empty($GLOBALS['g_powerpress_remote_errorno']) && $GLOBALS['g_powerpress_remote_errorno'] == 401 )
154
- $error .= __('Incorrect sign-in email address or password.', 'powerpress') .' '. __('Verify your account settings then try again.', 'powerpress');
155
  else if( !empty($GLOBALS['g_powerpress_remote_error']) )
156
- $error .= $GLOBALS['g_powerpress_remote_error'];
157
  else
158
- $error .= __('Authentication failed.', 'powerpress');
159
  powerpress_page_message_add_error($error);
160
  return false;
161
  }
150
 
151
  if( !$json_data )
152
  {
153
+ $error = '';
154
  if( !empty($GLOBALS['g_powerpress_remote_errorno']) && $GLOBALS['g_powerpress_remote_errorno'] == 401 )
155
+ $error = __('Incorrect sign-in email address or password.', 'powerpress') .' '. __('Verify your account settings then try again.', 'powerpress');
156
  else if( !empty($GLOBALS['g_powerpress_remote_error']) )
157
+ $error = $GLOBALS['g_powerpress_remote_error'];
158
  else
159
+ $error = __('Authentication failed.', 'powerpress');
160
  powerpress_page_message_add_error($error);
161
  return false;
162
  }
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: amandato, blubrry
3
  Tags: powerpress, podcasting, podcast, podcaster, itunes, google play music, google play, enclosure, professional, apple, apple tv, ipad, iphone, soundcloud, squarespace, youtube, viddler, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, mp4, m4v, wordpressmu, mu, wordpress mu, multisite, multi site, mediacaster, post, plugin, posts, simple, social, dashboard, TSG, Buzzsprout, MTR, WP-boxCast, CastMyBlog, tgs podcasting, simple podcasting, seriously simple podcasting, seriously-simple-podcasting, serious, seriously, ssp, podlove, podcast.de, clammr, clammr radio, audio player, stitcher, tunein, show, shows, series, docs, documentation, support, free, add-ons, extensions, addons, libsyn, libsyn-podcasting, podbean, podomatic, spreaker
4
  Requires at least: 3.6
5
- Tested up to: 4.5.2
6
- Stable tag: 7.0.1
7
  Donate link: https://www.patreon.com/blubrry?ty=h
8
  License: GPLv2 or later
9
 
@@ -219,19 +219,32 @@ To install Blubrry PowerPress manually, follow these steps:
219
  == Changelog ==
220
 
221
  = Next Major Release Announcements =
222
- * PowerPress 7.1 coming early July 2016. Beta testers expect an email mid to late June.
 
223
  * We are looking for beta testers! If you would like to beta test future versions of PowerPress, please [contact us](http://www.blubrry.com/contact.php) with your name and email.
224
 
225
  = Become a PowerPress Patron! =
226
  Help support your favorite podcasting plugin via Patreon. [Visit Blubrry's Patreon page](https://www.patreon.com/blubrry?ty=h)
227
 
 
 
 
 
 
 
 
 
 
 
 
228
  = 7.0.1 =
229
- * Released on 6/11/2016
230
- * Fixed bug where verify media could fail with "unable to determine file format" caused by getid3 library update. (Thanks @budgetnerd for bringing to our attention!)
231
  * Re-added the itpc links for subscribe on iTunes when no iTunes subscribe URL provided. For those who wanted this, please notice itpc does not work on iOS devices.
232
  * Statistics redirects that do not end with a / will now work. We add a slash if no slash is present.
233
  * Removed February 2016 iTunes notice message.
234
  * Subscribe by Email, on Google Play and Stitcher options removed for premium podcast feeds.
 
235
 
236
 
237
  = 7.0 =
2
  Contributors: amandato, blubrry
3
  Tags: powerpress, podcasting, podcast, podcaster, itunes, google play music, google play, enclosure, professional, apple, apple tv, ipad, iphone, soundcloud, squarespace, youtube, viddler, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, mp4, m4v, wordpressmu, mu, wordpress mu, multisite, multi site, mediacaster, post, plugin, posts, simple, social, dashboard, TSG, Buzzsprout, MTR, WP-boxCast, CastMyBlog, tgs podcasting, simple podcasting, seriously simple podcasting, seriously-simple-podcasting, serious, seriously, ssp, podlove, podcast.de, clammr, clammr radio, audio player, stitcher, tunein, show, shows, series, docs, documentation, support, free, add-ons, extensions, addons, libsyn, libsyn-podcasting, podbean, podomatic, spreaker
4
  Requires at least: 3.6
5
+ Tested up to: 4.5.3
6
+ Stable tag: 7.0.2
7
  Donate link: https://www.patreon.com/blubrry?ty=h
8
  License: GPLv2 or later
9
 
219
  == Changelog ==
220
 
221
  = Next Major Release Announcements =
222
+ * Facebook Instant Articles for podcasting coming in PowerPress 7.1 release!
223
+ * PowerPress 7.1 will be released in 1-2 weeks. Beta testers expect an email early next week.
224
  * We are looking for beta testers! If you would like to beta test future versions of PowerPress, please [contact us](http://www.blubrry.com/contact.php) with your name and email.
225
 
226
  = Become a PowerPress Patron! =
227
  Help support your favorite podcasting plugin via Patreon. [Visit Blubrry's Patreon page](https://www.patreon.com/blubrry?ty=h)
228
 
229
+ = 7.0.2 =
230
+ * Released on 7/22/2016
231
+ * Fixed bug with new Blubrry Player not displaying show notes button.
232
+ * Added TuneIn subscribe URL option. (Thanks @kgagne for bringing to our attention!)
233
+ * Removed the PHP 5.2 or older error message in the getid3 library. (Thanks davidpmariano for the heads up!)
234
+ * Fixed bug where podcast channels with a blank feed title do not apply specific channel settings like the website link. (Thanks Robin Brinkler for bringing to our attention!)
235
+ * Fixed bug where category episodes were not using the category settings like they used to if only one category is selected. (Thanks Jason Bryant for explaining the situation for us to reproduce the problem!)
236
+ * Added additional logic to better handle category podcasting when strict category podcasting is not enabled.
237
+ * Removed itunes:summary when Feed Maximizer on (this was the behavior before 7.0). iTunes summary is a duplicate of the RSS description. To include itunes summary in maximizer mode, please add `define('POWERPRESS_MAXIMIZER_INCLUDE_ITUNES_SUMMARY', true);` in your wp-config.php.
238
+
239
+
240
  = 7.0.1 =
241
+ * Released on 6/20/2016
242
+ * Fixed bug where verify media could fail with "unable to determine file format" caused by getid3 library update. (Thanks @budgetnerd for bringing to our attention!)
243
  * Re-added the itpc links for subscribe on iTunes when no iTunes subscribe URL provided. For those who wanted this, please notice itpc does not work on iOS devices.
244
  * Statistics redirects that do not end with a / will now work. We add a slash if no slash is present.
245
  * Removed February 2016 iTunes notice message.
246
  * Subscribe by Email, on Google Play and Stitcher options removed for premium podcast feeds.
247
+ * Subscribe links will no longer appear when episode no links option checked. (Thanks @360woodworking for bringing to our attention)
248
 
249
 
250
  = 7.0 =
views/settings_tab_destinations.php CHANGED
@@ -38,6 +38,8 @@
38
  $FeedSettings['blubrry_url'] = '';
39
  if( empty($FeedSettings['stitcher_url']) )
40
  $FeedSettings['stitcher_url'] = '';
 
 
41
  ?>
42
 
43
 
@@ -116,7 +118,10 @@
116
  <th scope="row"><?php echo __('TuneIn', 'powerpress'); ?></th>
117
  <td>
118
  <p><strong><a href="http://create.blubrry.com/manual/podcast-promotion/publish-podcast-tunein/?podcast-feed=<?php echo urlencode($feed_url); ?>" target="_blank"><?php echo __('Submit podcast to TuneIn', 'powerpress'); ?></a></strong></p>
119
- <p class="description"><?php echo __('TuneIn does not offer listing URLs at this time.', 'powerpress'); ?></p>
 
 
 
120
  </td>
121
  </tr>
122
  </table>
38
  $FeedSettings['blubrry_url'] = '';
39
  if( empty($FeedSettings['stitcher_url']) )
40
  $FeedSettings['stitcher_url'] = '';
41
+ if( empty($FeedSettings['tunein_url']) )
42
+ $FeedSettings['tunein_url'] = '';
43
  ?>
44
 
45
 
118
  <th scope="row"><?php echo __('TuneIn', 'powerpress'); ?></th>
119
  <td>
120
  <p><strong><a href="http://create.blubrry.com/manual/podcast-promotion/publish-podcast-tunein/?podcast-feed=<?php echo urlencode($feed_url); ?>" target="_blank"><?php echo __('Submit podcast to TuneIn', 'powerpress'); ?></a></strong></p>
121
+ <label for="tunein_url" style="font-size: 120%; display: block; font-weight: bold;"><?php echo __('TuneIn Listing URL', 'powerpress'); ?></label>
122
+ <input type="text" class="bpp-input-normal" id="tunein_url" name="Feed[tunein_url]" value="<?php echo esc_attr($FeedSettings['tunein_url']); ?>" maxlength="255" />
123
+ <p class="description"><?php echo sprintf(__('e.g. %s', 'powerpress'), 'http://tunein.com/radio/your-podcast-p000000/'); ?></p>
124
+
125
  </td>
126
  </tr>
127
  </table>