Version Description
- Released on 07/10/2018
- Spotify and Google Podcasts subscribe links added to Destinations.
- PowerPress users using Blubrry Podcast Hosting may now submit shows to Spotify!
- Added PodcastMirror setting, a modern alternative to FeedBurner. Learn more about PodcastMirror at podcastmirror.com
- Converted loop logic from each() to foreach() for PHP 7.3+ / 8.0+ compatibility.
- Improved logic for playlist player to appear better when certain settings are not set.
- Moved the enqueue script ('jquery-ui-tabs') logic so it only loads in the powerpress admin pages. (Thanks @keenanpayne for the code change!)
- Added define option
POWERPRESS_POSTTYPE_MIXING
, when set to true podcast channels for the default podcast feed will mix all post types of type post with the default podcast feed. (Thanks @eos-rose for bringing to our attention) - Fixed bug with translation and javascript alert messages. (Thanks Enrico for reporting the bug!)
Download this release
Release Info
Developer | amandato |
Plugin | PowerPress Podcasting plugin by Blubrry |
Version | 7.3 |
Comparing to | |
See all releases |
Code changes from version 7.2 to 7.3
- class.powerpress-subscribe-widget.php +13 -7
- css/admin.css +16 -0
- css/subscribe.css +13 -4
- images/spriteRetina.png +0 -0
- images/spriteRetina2.png +0 -0
- images/spriteStandard.png +0 -0
- images/spriteStandard2.png +0 -0
- mp3info.class.php +3 -3
- powerpress-player.php +4 -4
- powerpress-playlist.php +16 -8
- powerpress-subscribe.php +36 -14
- powerpress.php +37 -35
- powerpressadmin-basic.php +36 -33
- powerpressadmin-categoryfeeds.php +1 -1
- powerpressadmin-customfeeds.php +1 -1
- powerpressadmin-dashboard.php +1 -1
- powerpressadmin-defaults.php +1 -1
- powerpressadmin-diagnostics.php +1 -1
- powerpressadmin-editfeed.php +17 -26
- powerpressadmin-find-replace.php +3 -3
- powerpressadmin-jquery.php +11 -8
- powerpressadmin-metabox.php +11 -10
- powerpressadmin-metamarks.php +5 -5
- powerpressadmin-migrate.php +12 -12
- powerpressadmin-mt.php +14 -14
- powerpressadmin-notifications.php +39 -13
- powerpressadmin-ping-sites.php +3 -3
- powerpressadmin-player-page.php +1 -1
- powerpressadmin-podpress.php +13 -13
- powerpressadmin-posttypefeeds.php +3 -3
- powerpressadmin-pts.php +1 -1
- powerpressadmin-rss-import.php +10 -11
- powerpressadmin-taxonomyfeeds.php +2 -2
- powerpressadmin.php +51 -45
- readme.txt +38 -247
- views/settings_tab_appearance.php +2 -2
- views/settings_tab_destinations.php +26 -10
- views/settings_tab_other.php +3 -3
class.powerpress-subscribe-widget.php
CHANGED
@@ -102,7 +102,11 @@ body .pp-ssb-widget a.pp-ssb-btn:hover {
|
|
102 |
background-color: #2CB6A8;
|
103 |
}
|
104 |
.pp-ssb-widget-modern a.pp-ssb-gp {
|
105 |
-
background-color: #
|
|
|
|
|
|
|
|
|
106 |
}
|
107 |
.pp-ssb-widget-modern a.pp-ssb-android {
|
108 |
background-color: #6AB344;
|
@@ -117,7 +121,7 @@ body .pp-ssb-widget a.pp-ssb-btn:hover {
|
|
117 |
display: inline-block;
|
118 |
vertical-align: middle;
|
119 |
margin-right: 2px;
|
120 |
-
background-image: url(<?php echo powerpress_get_root_url(); ?>images/
|
121 |
background-repeat: no-repeat;
|
122 |
background-size: 294px;
|
123 |
}
|
@@ -139,10 +143,12 @@ body .pp-ssb-widget a.pp-ssb-btn:hover {
|
|
139 |
.pp-ssb-tunein .pp-ssb-ic {
|
140 |
background-position: -245px -98px;
|
141 |
}
|
|
|
|
|
|
|
142 |
.pp-ssb-gp .pp-ssb-ic {
|
143 |
-
background-position: -196px
|
144 |
}
|
145 |
-
|
146 |
.pp-ssb-more .pp-ssb-ic {
|
147 |
background-position: -49px -49px;
|
148 |
}
|
@@ -152,7 +158,7 @@ body .pp-ssb-widget a.pp-ssb-btn:hover {
|
|
152 |
only screen and (-o-min-device-pixel-ratio: 200/100),
|
153 |
only screen and (min-device-pixel-ratio: 2.0) {
|
154 |
.pp-sub-ic {
|
155 |
-
background-image: url(<?php echo powerpress_get_root_url(); ?>images/
|
156 |
}
|
157 |
}
|
158 |
</style>
|
@@ -194,7 +200,7 @@ body .pp-ssb-widget a.pp-ssb-btn:hover {
|
|
194 |
if( !empty($GeneralSettings['posttype_podcasting']) || $instance['subscribe_type'] == 'post_type' ) // If post type podcasting enabled
|
195 |
$types['post_type'] = __('Post Type Podcasting','powerpress');
|
196 |
|
197 |
-
|
198 |
echo '<option value="' . $type . '"'
|
199 |
. selected( $instance['subscribe_type'], $type, false )
|
200 |
. '>' . $label . "</option>\n";
|
@@ -213,7 +219,7 @@ body .pp-ssb-widget a.pp-ssb-btn:hover {
|
|
213 |
<option value=""><?php echo __('Select Post Type', 'powerpress'); ?></option>
|
214 |
<?php
|
215 |
$post_types = powerpress_admin_get_post_types(false);
|
216 |
-
|
217 |
echo '<option value="' . $label . '"'
|
218 |
. selected( $instance['subscribe_post_type'], $label, false )
|
219 |
. '>' . $label . "</option>\n";
|
102 |
background-color: #2CB6A8;
|
103 |
}
|
104 |
.pp-ssb-widget-modern a.pp-ssb-gp {
|
105 |
+
background-color: #db3236;
|
106 |
+
}
|
107 |
+
.pp-ssb-widget-modern a.pp-ssb-spotify {
|
108 |
+
background-color: #84bd00;
|
109 |
+
background-color: #1db954;
|
110 |
}
|
111 |
.pp-ssb-widget-modern a.pp-ssb-android {
|
112 |
background-color: #6AB344;
|
121 |
display: inline-block;
|
122 |
vertical-align: middle;
|
123 |
margin-right: 2px;
|
124 |
+
background-image: url(<?php echo powerpress_get_root_url(); ?>images/spriteStandard2.png);
|
125 |
background-repeat: no-repeat;
|
126 |
background-size: 294px;
|
127 |
}
|
143 |
.pp-ssb-tunein .pp-ssb-ic {
|
144 |
background-position: -245px -98px;
|
145 |
}
|
146 |
+
.pp-ssb-spotify .pp-ssb-ic {
|
147 |
+
background-position: -147px 0;
|
148 |
+
}
|
149 |
.pp-ssb-gp .pp-ssb-ic {
|
150 |
+
background-position: -196px 0;
|
151 |
}
|
|
|
152 |
.pp-ssb-more .pp-ssb-ic {
|
153 |
background-position: -49px -49px;
|
154 |
}
|
158 |
only screen and (-o-min-device-pixel-ratio: 200/100),
|
159 |
only screen and (min-device-pixel-ratio: 2.0) {
|
160 |
.pp-sub-ic {
|
161 |
+
background-image: url(<?php echo powerpress_get_root_url(); ?>images/spriteRetina2.png);
|
162 |
}
|
163 |
}
|
164 |
</style>
|
200 |
if( !empty($GeneralSettings['posttype_podcasting']) || $instance['subscribe_type'] == 'post_type' ) // If post type podcasting enabled
|
201 |
$types['post_type'] = __('Post Type Podcasting','powerpress');
|
202 |
|
203 |
+
foreach( $types as $type => $label ) {
|
204 |
echo '<option value="' . $type . '"'
|
205 |
. selected( $instance['subscribe_type'], $type, false )
|
206 |
. '>' . $label . "</option>\n";
|
219 |
<option value=""><?php echo __('Select Post Type', 'powerpress'); ?></option>
|
220 |
<?php
|
221 |
$post_types = powerpress_admin_get_post_types(false);
|
222 |
+
foreach( $post_types as $index => $label ) {
|
223 |
echo '<option value="' . $label . '"'
|
224 |
. selected( $instance['subscribe_post_type'], $label, false )
|
225 |
. '>' . $label . "</option>\n";
|
css/admin.css
CHANGED
@@ -213,6 +213,22 @@ padding-bottom: 15px;
|
|
213 |
/* float: left; */
|
214 |
display: inline-block;
|
215 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
#powerpress_admin_header .powerpress-mode {
|
217 |
margin-left: 14px;
|
218 |
display: inline-block;
|
213 |
/* float: left; */
|
214 |
display: inline-block;
|
215 |
}
|
216 |
+
#powerpress_admin_header h2,
|
217 |
+
#powerpress_admin_header h3,
|
218 |
+
#powerpress_admin_header h4 {
|
219 |
+
line-height: 1.1;
|
220 |
+
margin: 10px 0 0 0;
|
221 |
+
padding: 0;
|
222 |
+
font-weight: bold;
|
223 |
+
}
|
224 |
+
#powerpress_admin_header p {
|
225 |
+
line-height: 1.1;
|
226 |
+
margin: 5px 0 10px 0;
|
227 |
+
padding: 0;
|
228 |
+
}
|
229 |
+
#powerpress_admin_header .powerpress-admin-heading {
|
230 |
+
font-weight: bold;
|
231 |
+
}
|
232 |
#powerpress_admin_header .powerpress-mode {
|
233 |
margin-left: 14px;
|
234 |
display: inline-block;
|
css/subscribe.css
CHANGED
@@ -141,7 +141,13 @@ body .pp-sub-widget a:hover {
|
|
141 |
background-color: #2CB6A8;
|
142 |
}
|
143 |
.pp-sub-widget-modern a.pp-sub-gp {
|
144 |
-
background-color: #F15832;
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
}
|
146 |
.pp-sub-widget-modern a.pp-sub-android {
|
147 |
background-color: #6AB344;
|
@@ -161,7 +167,7 @@ body .pp-sub-widget a:hover {
|
|
161 |
margin-right: 2px;
|
162 |
}
|
163 |
.pp-sub-ic {
|
164 |
-
background-image: url(../images/
|
165 |
background-repeat: no-repeat;
|
166 |
background-size: 294px;
|
167 |
}
|
@@ -190,7 +196,10 @@ body .pp-sub-widget a:hover {
|
|
190 |
background-position: -245px -98px;
|
191 |
}
|
192 |
.pp-sub-gp .pp-sub-ic {
|
193 |
-
background-position: -196px
|
|
|
|
|
|
|
194 |
}
|
195 |
|
196 |
/* Retina-specific stuff here */
|
@@ -199,6 +208,6 @@ body .pp-sub-widget a:hover {
|
|
199 |
only screen and (-o-min-device-pixel-ratio: 200/100),
|
200 |
only screen and (min-device-pixel-ratio: 2.0) {
|
201 |
.pp-sub-ic {
|
202 |
-
background-image: url(../images/
|
203 |
}
|
204 |
}
|
141 |
background-color: #2CB6A8;
|
142 |
}
|
143 |
.pp-sub-widget-modern a.pp-sub-gp {
|
144 |
+
background-color: #F15832; /* google yellow */
|
145 |
+
background-color: #3cba54; /* google green */
|
146 |
+
background-color: #4885ed; /* google blue */
|
147 |
+
background-color: #db3236; /* google red */
|
148 |
+
}
|
149 |
+
.pp-sub-widget-modern a.pp-sub-spotify {
|
150 |
+
background-color: #1db954;
|
151 |
}
|
152 |
.pp-sub-widget-modern a.pp-sub-android {
|
153 |
background-color: #6AB344;
|
167 |
margin-right: 2px;
|
168 |
}
|
169 |
.pp-sub-ic {
|
170 |
+
background-image: url(../images/spriteStandard2.png);
|
171 |
background-repeat: no-repeat;
|
172 |
background-size: 294px;
|
173 |
}
|
196 |
background-position: -245px -98px;
|
197 |
}
|
198 |
.pp-sub-gp .pp-sub-ic {
|
199 |
+
background-position: -196px 0;
|
200 |
+
}
|
201 |
+
.pp-sub-spotify .pp-sub-ic {
|
202 |
+
background-position: -147px 0;
|
203 |
}
|
204 |
|
205 |
/* Retina-specific stuff here */
|
208 |
only screen and (-o-min-device-pixel-ratio: 200/100),
|
209 |
only screen and (min-device-pixel-ratio: 2.0) {
|
210 |
.pp-sub-ic {
|
211 |
+
background-image: url(../images/spriteRetina2.png);
|
212 |
}
|
213 |
}
|
images/spriteRetina.png
CHANGED
Binary file
|
images/spriteRetina2.png
ADDED
Binary file
|
images/spriteStandard.png
CHANGED
Binary file
|
images/spriteStandard2.png
ADDED
Binary file
|
mp3info.class.php
CHANGED
@@ -657,7 +657,7 @@
|
|
657 |
}
|
658 |
|
659 |
$errors = '';
|
660 |
-
|
661 |
{
|
662 |
if( strstr($error, 'error parsing') )
|
663 |
continue;
|
@@ -673,7 +673,7 @@
|
|
673 |
if( false && isset($FileInfo['warning']) )
|
674 |
{
|
675 |
$errors = '';
|
676 |
-
|
677 |
$this->AddWarning($warning );
|
678 |
}
|
679 |
|
@@ -749,7 +749,7 @@
|
|
749 |
{
|
750 |
$plugin_folder = $matches[1];
|
751 |
$current_plugins = get_option('active_plugins');
|
752 |
-
|
753 |
{
|
754 |
if( substr($plugin_local_path, 0, strpos($plugin_local_path, '/') ) != $plugin_folder )
|
755 |
continue;
|
657 |
}
|
658 |
|
659 |
$errors = '';
|
660 |
+
foreach( $FileInfo['error'] as $null => $error )
|
661 |
{
|
662 |
if( strstr($error, 'error parsing') )
|
663 |
continue;
|
673 |
if( false && isset($FileInfo['warning']) )
|
674 |
{
|
675 |
$errors = '';
|
676 |
+
foreach( $FileInfo['warning'] as $null => $warning )
|
677 |
$this->AddWarning($warning );
|
678 |
}
|
679 |
|
749 |
{
|
750 |
$plugin_folder = $matches[1];
|
751 |
$current_plugins = get_option('active_plugins');
|
752 |
+
foreach( $current_plugins as $null => $plugin_local_path )
|
753 |
{
|
754 |
if( substr($plugin_local_path, 0, strpos($plugin_local_path, '/') ) != $plugin_folder )
|
755 |
continue;
|
powerpress-player.php
CHANGED
@@ -189,7 +189,7 @@ function powerpress_shortcode_handler( $attributes, $content = null )
|
|
189 |
};
|
190 |
}
|
191 |
|
192 |
-
|
193 |
{
|
194 |
if( !empty( $postTypeSettings['title']) )
|
195 |
$GeneralSettings['custom_feeds'][ $feed_slug ] = $postTypeSettings['title'];
|
@@ -199,7 +199,7 @@ function powerpress_shortcode_handler( $attributes, $content = null )
|
|
199 |
}
|
200 |
}
|
201 |
|
202 |
-
|
203 |
{
|
204 |
if( isset($GeneralSettings['disable_player']) && isset($GeneralSettings['disable_player'][$feed_slug]) )
|
205 |
continue;
|
@@ -1251,7 +1251,7 @@ function powerpressplayer_build_mediaelementvideo($media_url, $EpisodeData=array
|
|
1251 |
$shortcode = wp_video_shortcode( $attr );
|
1252 |
} else {
|
1253 |
$shortcode_value = '[video ';
|
1254 |
-
|
1255 |
$shortcode_value .= ' '.$tag_name.'="'. esc_attr($tag_value) .'"';
|
1256 |
}
|
1257 |
$shortcode_value .= ']';
|
@@ -1578,7 +1578,7 @@ function powerpressplayer_build_1pxoutplayer($media_url, $EpisodeData = array())
|
|
1578 |
}
|
1579 |
|
1580 |
$flashvars ='';
|
1581 |
-
|
1582 |
{
|
1583 |
$flashvars .= '&'. $key .'='. preg_replace('/\#/','',$value);
|
1584 |
}
|
189 |
};
|
190 |
}
|
191 |
|
192 |
+
foreach( $PostTypeSettingsArray as $feed_slug => $postTypeSettings )
|
193 |
{
|
194 |
if( !empty( $postTypeSettings['title']) )
|
195 |
$GeneralSettings['custom_feeds'][ $feed_slug ] = $postTypeSettings['title'];
|
199 |
}
|
200 |
}
|
201 |
|
202 |
+
foreach( $GeneralSettings['custom_feeds'] as $feed_slug => $feed_title )
|
203 |
{
|
204 |
if( isset($GeneralSettings['disable_player']) && isset($GeneralSettings['disable_player'][$feed_slug]) )
|
205 |
continue;
|
1251 |
$shortcode = wp_video_shortcode( $attr );
|
1252 |
} else {
|
1253 |
$shortcode_value = '[video ';
|
1254 |
+
foreach( $attr as $tag_name => $tag_value ) {
|
1255 |
$shortcode_value .= ' '.$tag_name.'="'. esc_attr($tag_value) .'"';
|
1256 |
}
|
1257 |
$shortcode_value .= ']';
|
1578 |
}
|
1579 |
|
1580 |
$flashvars ='';
|
1581 |
+
foreach( $PlayerSettings as $key => $value )
|
1582 |
{
|
1583 |
$flashvars .= '&'. $key .'='. preg_replace('/\#/','',$value);
|
1584 |
}
|
powerpress-playlist.php
CHANGED
@@ -57,7 +57,7 @@ function powerpress_get_program_title_by_taxonomy($term_id, $taxonomy = 'categor
|
|
57 |
{
|
58 |
$Feeds = $General['custom_cat_feeds'];
|
59 |
// Walk through the categories...
|
60 |
-
|
61 |
{
|
62 |
$FeedSettings = get_option('powerpress_cat_feed_'.$cat_id);
|
63 |
if( !empty($FeedSettings['title']) )
|
@@ -70,7 +70,7 @@ function powerpress_get_program_title_by_taxonomy($term_id, $taxonomy = 'categor
|
|
70 |
if( !empty($PowerPressTaxonomies) )
|
71 |
{
|
72 |
$query_in = '';
|
73 |
-
|
74 |
{
|
75 |
if( !empty($query_in) )
|
76 |
$query_in .= ',';
|
@@ -81,7 +81,7 @@ function powerpress_get_program_title_by_taxonomy($term_id, $taxonomy = 'categor
|
|
81 |
{
|
82 |
$terms = $wpdb->get_results("SELECT term_taxonomy_id, term_id, taxonomy FROM {$wpdb->term_taxonomy} WHERE term_taxonomy_id IN ($query_in)", ARRAY_A);
|
83 |
|
84 |
-
|
85 |
{
|
86 |
// TODO: We need to get term by the term_id and taxonomy
|
87 |
$FeedSettings = powerpress_get_settings('powerpress_taxonomy_'.$term_info['term_taxonomy_id']);
|
@@ -165,7 +165,7 @@ function powerpress_playlist_episodes($args)
|
|
165 |
// First santity check make sure we are only working with numbers....
|
166 |
if( preg_match('/^[0-9,\s]*$/', $args['ids']) ) {
|
167 |
$ids = explode(',', preg_replace('/(\s)/', '', $args['ids']) );
|
168 |
-
|
169 |
if( empty($id) )
|
170 |
continue;
|
171 |
if( !empty($for_query) )
|
@@ -191,7 +191,7 @@ function powerpress_playlist_episodes($args)
|
|
191 |
$results_data = $wpdb->get_results($query, ARRAY_A);
|
192 |
if( $results_data )
|
193 |
{
|
194 |
-
|
195 |
{
|
196 |
if( empty($row['meta_value']) )
|
197 |
continue;
|
@@ -223,7 +223,7 @@ function powerpress_underscore_playlist_templates() {
|
|
223 |
<# } #>
|
224 |
<# if ( data.meta.link ) { #>
|
225 |
<span class="wp-playlist-item-meta wp-playlist-item-title"><a href="{{ data.meta.link }}" rel="nofollow">{{ data.title }}</a></span>
|
226 |
-
<# } else { #>
|
227 |
<span class="wp-playlist-item-meta wp-playlist-item-title">{{ data.title }}</span>
|
228 |
<# } #>
|
229 |
<# if ( data.meta.date ) { #><span class="wp-playlist-item-meta wp-playlist-item-artist">{{ data.meta.date }}</span><# } #>
|
@@ -234,7 +234,9 @@ function powerpress_underscore_playlist_templates() {
|
|
234 |
<div class="wp-playlist-item">
|
235 |
<a class="wp-playlist-caption" href="{{ data.src }}">
|
236 |
<!-- <span class="wp-playlist-item-title">“{{{ data.title }}}”</span> -->
|
|
|
237 |
<span class="wp-playlist-item-title">{{ data.title }}</span>
|
|
|
238 |
<# if ( data.meta.date ) { #>
|
239 |
<span class="wp-playlist-item-artist"> — {{ data.meta.date }}</span>
|
240 |
<# } #>
|
@@ -312,7 +314,7 @@ function powerpress_playlist_shortcode( $attr ) {
|
|
312 |
'term_taxonomy_id'=>'', // Used for PowerPress Playlist (specify term_taxonomy_id)
|
313 |
'program_titles_by_taxonomy'=>'', // e.g. category
|
314 |
'date' => true, // Display the date
|
315 |
-
'title' => true, // Dislay the title of
|
316 |
'links'=>true, // Link to episode page
|
317 |
'slug' => '', // Used for PowerPress Playlist
|
318 |
'feed' => '', // Used for PowerPress Playlist
|
@@ -335,6 +337,7 @@ function powerpress_playlist_shortcode( $attr ) {
|
|
335 |
$images = filter_var( $images, FILTER_VALIDATE_BOOLEAN );
|
336 |
$links = filter_var( $links, FILTER_VALIDATE_BOOLEAN );
|
337 |
$itunes_subtitle = filter_var( $itunes_subtitle, FILTER_VALIDATE_BOOLEAN );
|
|
|
338 |
$date = filter_var( $date, FILTER_VALIDATE_BOOLEAN );
|
339 |
|
340 |
if( empty($slug) && !empty($feed) )
|
@@ -420,6 +423,10 @@ function powerpress_playlist_shortcode( $attr ) {
|
|
420 |
'description' => $episode['post_title']
|
421 |
);
|
422 |
|
|
|
|
|
|
|
|
|
423 |
//$image = false;
|
424 |
$episode_image = $image;
|
425 |
if( $images && !empty($episode['enclosure']['image']) )
|
@@ -444,7 +451,8 @@ function powerpress_playlist_shortcode( $attr ) {
|
|
444 |
$track['meta']['program_title'] = powerpress_get_program_title_by_taxonomy($ObjectTerms[0]->term_id, $program_titles_by_taxonomy);
|
445 |
}
|
446 |
}
|
447 |
-
$
|
|
|
448 |
if( !empty($itunes_subtitle) && !empty($episode['enclosure']['subtitle']) )
|
449 |
$track['meta']['itunes_subtitle'] = $episode['enclosure']['subtitle'];
|
450 |
$track['meta']['genre'] = 'Podcast';
|
57 |
{
|
58 |
$Feeds = $General['custom_cat_feeds'];
|
59 |
// Walk through the categories...
|
60 |
+
foreach( $Feeds as $null=> $cat_id )
|
61 |
{
|
62 |
$FeedSettings = get_option('powerpress_cat_feed_'.$cat_id);
|
63 |
if( !empty($FeedSettings['title']) )
|
70 |
if( !empty($PowerPressTaxonomies) )
|
71 |
{
|
72 |
$query_in = '';
|
73 |
+
foreach( $PowerPressTaxonomies as $tt_id=> $null )
|
74 |
{
|
75 |
if( !empty($query_in) )
|
76 |
$query_in .= ',';
|
81 |
{
|
82 |
$terms = $wpdb->get_results("SELECT term_taxonomy_id, term_id, taxonomy FROM {$wpdb->term_taxonomy} WHERE term_taxonomy_id IN ($query_in)", ARRAY_A);
|
83 |
|
84 |
+
foreach( $terms as $index=> $term_info )
|
85 |
{
|
86 |
// TODO: We need to get term by the term_id and taxonomy
|
87 |
$FeedSettings = powerpress_get_settings('powerpress_taxonomy_'.$term_info['term_taxonomy_id']);
|
165 |
// First santity check make sure we are only working with numbers....
|
166 |
if( preg_match('/^[0-9,\s]*$/', $args['ids']) ) {
|
167 |
$ids = explode(',', preg_replace('/(\s)/', '', $args['ids']) );
|
168 |
+
foreach( $ids as $index=> $id ) {
|
169 |
if( empty($id) )
|
170 |
continue;
|
171 |
if( !empty($for_query) )
|
191 |
$results_data = $wpdb->get_results($query, ARRAY_A);
|
192 |
if( $results_data )
|
193 |
{
|
194 |
+
foreach( $results_data as $null=> $row )
|
195 |
{
|
196 |
if( empty($row['meta_value']) )
|
197 |
continue;
|
223 |
<# } #>
|
224 |
<# if ( data.meta.link ) { #>
|
225 |
<span class="wp-playlist-item-meta wp-playlist-item-title"><a href="{{ data.meta.link }}" rel="nofollow">{{ data.title }}</a></span>
|
226 |
+
<# } else if ( data.title ) { #>
|
227 |
<span class="wp-playlist-item-meta wp-playlist-item-title">{{ data.title }}</span>
|
228 |
<# } #>
|
229 |
<# if ( data.meta.date ) { #><span class="wp-playlist-item-meta wp-playlist-item-artist">{{ data.meta.date }}</span><# } #>
|
234 |
<div class="wp-playlist-item">
|
235 |
<a class="wp-playlist-caption" href="{{ data.src }}">
|
236 |
<!-- <span class="wp-playlist-item-title">“{{{ data.title }}}”</span> -->
|
237 |
+
<# if ( data.title ) { #>
|
238 |
<span class="wp-playlist-item-title">{{ data.title }}</span>
|
239 |
+
<# } #>
|
240 |
<# if ( data.meta.date ) { #>
|
241 |
<span class="wp-playlist-item-artist"> — {{ data.meta.date }}</span>
|
242 |
<# } #>
|
314 |
'term_taxonomy_id'=>'', // Used for PowerPress Playlist (specify term_taxonomy_id)
|
315 |
'program_titles_by_taxonomy'=>'', // e.g. category
|
316 |
'date' => true, // Display the date
|
317 |
+
'title' => true, // Dislay the title of episode
|
318 |
'links'=>true, // Link to episode page
|
319 |
'slug' => '', // Used for PowerPress Playlist
|
320 |
'feed' => '', // Used for PowerPress Playlist
|
337 |
$images = filter_var( $images, FILTER_VALIDATE_BOOLEAN );
|
338 |
$links = filter_var( $links, FILTER_VALIDATE_BOOLEAN );
|
339 |
$itunes_subtitle = filter_var( $itunes_subtitle, FILTER_VALIDATE_BOOLEAN );
|
340 |
+
$episode_title = filter_var( $title, FILTER_VALIDATE_BOOLEAN );
|
341 |
$date = filter_var( $date, FILTER_VALIDATE_BOOLEAN );
|
342 |
|
343 |
if( empty($slug) && !empty($feed) )
|
423 |
'description' => $episode['post_title']
|
424 |
);
|
425 |
|
426 |
+
if( empty($episode_title) ) {
|
427 |
+
$track['title'] = '';
|
428 |
+
}
|
429 |
+
|
430 |
//$image = false;
|
431 |
$episode_image = $image;
|
432 |
if( $images && !empty($episode['enclosure']['image']) )
|
451 |
$track['meta']['program_title'] = powerpress_get_program_title_by_taxonomy($ObjectTerms[0]->term_id, $program_titles_by_taxonomy);
|
452 |
}
|
453 |
}
|
454 |
+
if( !empty($episode_title) )
|
455 |
+
$track['meta']['title'] = $episode['post_title'];
|
456 |
if( !empty($itunes_subtitle) && !empty($episode['enclosure']['subtitle']) )
|
457 |
$track['meta']['itunes_subtitle'] = $episode['enclosure']['subtitle'];
|
458 |
$track['meta']['genre'] = 'Podcast';
|
powerpress-subscribe.php
CHANGED
@@ -85,8 +85,11 @@ function powerpresssubscribe_get_settings($ExtraData, $detect_category=true)
|
|
85 |
if( !$category_id && is_single() )
|
86 |
{
|
87 |
$categories = wp_get_post_categories( get_the_ID() );
|
88 |
-
if( count($categories) == 1 )
|
89 |
-
|
|
|
|
|
|
|
90 |
if( !empty($category_id) )
|
91 |
{
|
92 |
$Settings = get_option('powerpress_cat_feed_'.$category_id );
|
@@ -129,6 +132,7 @@ function powerpresssubscribe_get_settings($ExtraData, $detect_category=true)
|
|
129 |
$Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
|
130 |
$Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
|
131 |
$Settings['subscribe_feature_tunein'] = (!empty($GeneralSettings['subscribe_feature_tunein']) );
|
|
|
132 |
return $Settings;
|
133 |
}
|
134 |
|
@@ -189,6 +193,7 @@ function powerpresssubscribe_get_settings($ExtraData, $detect_category=true)
|
|
189 |
$Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
|
190 |
$Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
|
191 |
$Settings['subscribe_feature_tunein'] = (!empty($GeneralSettings['subscribe_feature_tunein']) );
|
|
|
192 |
return $Settings;
|
193 |
}
|
194 |
}; break;
|
@@ -222,11 +227,13 @@ function powerpresssubscribe_get_settings($ExtraData, $detect_category=true)
|
|
222 |
$Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
|
223 |
$Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
|
224 |
$Settings['subscribe_feature_tunein'] = (!empty($GeneralSettings['subscribe_feature_tunein']) );
|
|
|
225 |
if( !empty($FeedSettings['premium']) ) {
|
226 |
$Settings['subscribe_feature_email'] = false;
|
227 |
$Settings['subscribe_feature_gp'] = false;
|
228 |
$Settings['subscribe_feature_stitcher'] = false;
|
229 |
$Settings['subscribe_feature_tunein'] = false;
|
|
|
230 |
}
|
231 |
|
232 |
return $Settings;
|
@@ -279,10 +286,10 @@ function powerpressplayer_link_subscribe_pre($content, $media_url, $ExtraData =
|
|
279 |
}
|
280 |
}
|
281 |
|
282 |
-
if( !empty($SubscribeSettings['subscribe_feature_gp'])
|
283 |
{
|
284 |
-
$SubscribeSettings['googleplay_url'] =
|
285 |
-
$links_array[] = "<a href=\"". esc_attr($SubscribeSettings['googleplay_url'] ) ."\" class=\"powerpress_link_subscribe powerpress_link_subscribe_googleplay\" title=\"". __('Subscribe on Google
|
286 |
}
|
287 |
|
288 |
if( !empty($SubscribeSettings['subscribe_feature_stitcher']) && !empty($SubscribeSettings['stitcher_url']) )
|
@@ -296,7 +303,13 @@ function powerpressplayer_link_subscribe_pre($content, $media_url, $ExtraData =
|
|
296 |
$SubscribeSettings['tunein_url'] = trim($SubscribeSettings['tunein_url']);
|
297 |
$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;
|
298 |
}
|
299 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
if( !empty($SubscribeSettings['subscribe_feature_rss']) ) {
|
301 |
$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;
|
302 |
}
|
@@ -574,10 +587,9 @@ function powerpress_do_subscribe_widget($settings)
|
|
574 |
}
|
575 |
}
|
576 |
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
}
|
581 |
|
582 |
if( !empty($settings['stitcher_url']) )
|
583 |
{
|
@@ -589,6 +601,11 @@ function powerpress_do_subscribe_widget($settings)
|
|
589 |
$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>';
|
590 |
}
|
591 |
|
|
|
|
|
|
|
|
|
|
|
592 |
//$html .= var_dump($settings, true);
|
593 |
|
594 |
if( !empty($settings['subscribe_feature_rss']) ) {
|
@@ -639,11 +656,11 @@ function powerpress_do_subscribe_sidebar_widget($settings)
|
|
639 |
}
|
640 |
}
|
641 |
|
642 |
-
if( !empty($settings['subscribe_feature_gp'])
|
643 |
-
$
|
644 |
-
$html .= '<a href="'. esc_url( $
|
645 |
}
|
646 |
-
|
647 |
if( !empty($settings['subscribe_feature_stitcher']) && !empty($settings['stitcher_url']) ) {
|
648 |
$settings['stitcher_url'] = trim($settings['stitcher_url']);
|
649 |
$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>';
|
@@ -654,6 +671,11 @@ function powerpress_do_subscribe_sidebar_widget($settings)
|
|
654 |
$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>';
|
655 |
}
|
656 |
|
|
|
|
|
|
|
|
|
|
|
657 |
if( !empty($settings['subscribe_feature_rss']) ) {
|
658 |
$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>';
|
659 |
}
|
85 |
if( !$category_id && is_single() )
|
86 |
{
|
87 |
$categories = wp_get_post_categories( get_the_ID() );
|
88 |
+
if( count($categories) == 1 ) {
|
89 |
+
foreach( $categories as $null=> $category_id ) {
|
90 |
+
break;
|
91 |
+
}
|
92 |
+
}
|
93 |
if( !empty($category_id) )
|
94 |
{
|
95 |
$Settings = get_option('powerpress_cat_feed_'.$category_id );
|
132 |
$Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
|
133 |
$Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
|
134 |
$Settings['subscribe_feature_tunein'] = (!empty($GeneralSettings['subscribe_feature_tunein']) );
|
135 |
+
$Settings['subscribe_feature_spotify'] = (!empty($GeneralSettings['subscribe_feature_spotify']) );
|
136 |
return $Settings;
|
137 |
}
|
138 |
|
193 |
$Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
|
194 |
$Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
|
195 |
$Settings['subscribe_feature_tunein'] = (!empty($GeneralSettings['subscribe_feature_tunein']) );
|
196 |
+
$Settings['subscribe_feature_spotify'] = (!empty($GeneralSettings['subscribe_feature_spotify']) );
|
197 |
return $Settings;
|
198 |
}
|
199 |
}; break;
|
227 |
$Settings['subscribe_feature_gp'] = (!empty($GeneralSettings['subscribe_feature_gp']) );
|
228 |
$Settings['subscribe_feature_stitcher'] = (!empty($GeneralSettings['subscribe_feature_stitcher']) );
|
229 |
$Settings['subscribe_feature_tunein'] = (!empty($GeneralSettings['subscribe_feature_tunein']) );
|
230 |
+
$Settings['subscribe_feature_spotify'] = (!empty($GeneralSettings['subscribe_feature_spotify']) );
|
231 |
if( !empty($FeedSettings['premium']) ) {
|
232 |
$Settings['subscribe_feature_email'] = false;
|
233 |
$Settings['subscribe_feature_gp'] = false;
|
234 |
$Settings['subscribe_feature_stitcher'] = false;
|
235 |
$Settings['subscribe_feature_tunein'] = false;
|
236 |
+
$Settings['subscribe_feature_spotify'] = false;
|
237 |
}
|
238 |
|
239 |
return $Settings;
|
286 |
}
|
287 |
}
|
288 |
|
289 |
+
if( !empty($SubscribeSettings['subscribe_feature_gp']) )
|
290 |
{
|
291 |
+
$SubscribeSettings['googleplay_url'] = 'https://www.google.com/podcasts?feed='. base64_encode($feed_url);
|
292 |
+
$links_array[] = "<a href=\"". esc_attr($SubscribeSettings['googleplay_url'] ) ."\" class=\"powerpress_link_subscribe powerpress_link_subscribe_googleplay\" title=\"". __('Subscribe on Google Podcasts', 'powerpress') ."\" rel=\"nofollow\">". __('Google Podcasts','powerpress') ."</a>".PHP_EOL_WEB;
|
293 |
}
|
294 |
|
295 |
if( !empty($SubscribeSettings['subscribe_feature_stitcher']) && !empty($SubscribeSettings['stitcher_url']) )
|
303 |
$SubscribeSettings['tunein_url'] = trim($SubscribeSettings['tunein_url']);
|
304 |
$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;
|
305 |
}
|
306 |
+
|
307 |
+
if( !empty($SubscribeSettings['subscribe_feature_spotify']) && !empty($SubscribeSettings['spotify_url']) )
|
308 |
+
{
|
309 |
+
$SubscribeSettings['spotify_url'] = trim($SubscribeSettings['spotify_url']);
|
310 |
+
$links_array[] = "<a href=\"". esc_attr($SubscribeSettings['spotify_url'] ) ."\" class=\"powerpress_link_subscribe powerpress_link_subscribe_spotify\" title=\"". __('Subscribe on Spotify', 'powerpress') ."\" rel=\"nofollow\">". __('Spotify','powerpress') ."</a>".PHP_EOL_WEB;
|
311 |
+
}
|
312 |
+
|
313 |
if( !empty($SubscribeSettings['subscribe_feature_rss']) ) {
|
314 |
$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;
|
315 |
}
|
587 |
}
|
588 |
}
|
589 |
|
590 |
+
// Google Podcasts
|
591 |
+
$html .= '<a href="'. esc_url( 'https://www.google.com/podcasts?feed='. base64_encode($settings['feed_url']) ) .'" class="pp-sub-btn pp-sub-gp" title="'. esc_attr( __('Subscribe on Google Podcasts', 'powerpress') ) .'"><span class="pp-sub-ic"></span>'. esc_html( __('on Google Podcasts', 'powerpress') ) .'</a>';
|
592 |
+
|
|
|
593 |
|
594 |
if( !empty($settings['stitcher_url']) )
|
595 |
{
|
601 |
$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>';
|
602 |
}
|
603 |
|
604 |
+
if( !empty($settings['spotify_url']) )
|
605 |
+
{
|
606 |
+
$html .= '<a href="'. esc_url( $settings['spotify_url'] ) .'" class="pp-sub-btn pp-sub-spotify" title="'. esc_attr( __('Subscribe on Spotify', 'powerpress') ) .'"><span class="pp-sub-ic"></span>'. esc_html( __('on Spotify', 'powerpress') ) .'</a>';
|
607 |
+
}
|
608 |
+
|
609 |
//$html .= var_dump($settings, true);
|
610 |
|
611 |
if( !empty($settings['subscribe_feature_rss']) ) {
|
656 |
}
|
657 |
}
|
658 |
|
659 |
+
if( !empty($settings['subscribe_feature_gp']) ) {
|
660 |
+
$gp_url = 'https://www.google.com/podcasts?feed='.base64_encode($settings['feed_url']);
|
661 |
+
$html .= '<a href="'. esc_url( $gp_url ) .'" class="pp-ssb-btn pp-ssb-gp" title="'. esc_attr( __('Subscribe on Google Podcasts', 'powerpress') ) .'"><span class="pp-ssb-ic"></span>'. esc_html( __('on Google Podcasts', 'powerpress') ) .'</a>';
|
662 |
}
|
663 |
+
|
664 |
if( !empty($settings['subscribe_feature_stitcher']) && !empty($settings['stitcher_url']) ) {
|
665 |
$settings['stitcher_url'] = trim($settings['stitcher_url']);
|
666 |
$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>';
|
671 |
$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>';
|
672 |
}
|
673 |
|
674 |
+
if( !empty($settings['subscribe_feature_spotify']) && !empty($settings['spotify_url']) ) {
|
675 |
+
$settings['spotify_url'] = trim($settings['spotify_url']);
|
676 |
+
$html .= '<a href="'. esc_url( $settings['spotify_url'] ) .'" class="pp-ssb-btn pp-ssb-spotify" title="'. esc_attr( __('Subscribe on Spotify', 'powerpress') ) .'"><span class="pp-ssb-ic"></span>'. esc_html( __('on Spotify', 'powerpress') ) .'</a>';
|
677 |
+
}
|
678 |
+
|
679 |
if( !empty($settings['subscribe_feature_rss']) ) {
|
680 |
$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>';
|
681 |
}
|
powerpress.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/*
|
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
|
6 |
-
Version: 7.
|
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.
|
36 |
|
37 |
// Translation support:
|
38 |
if ( !defined('POWERPRESS_ABSPATH') )
|
@@ -189,7 +189,7 @@ function powerpress_content($content)
|
|
189 |
$Temp = $GeneralSettings['custom_feeds'];
|
190 |
$GeneralSettings['custom_feeds'] = array();
|
191 |
$GeneralSettings['custom_feeds']['podcast'] = 'Default Podcast Feed';
|
192 |
-
|
193 |
{
|
194 |
if( $feed_slug == 'podcast' )
|
195 |
continue;
|
@@ -219,7 +219,7 @@ function powerpress_content($content)
|
|
219 |
}; break;
|
220 |
}
|
221 |
|
222 |
-
|
223 |
{
|
224 |
if( !empty( $postTypeSettings['title']) )
|
225 |
$GeneralSettings['custom_feeds'][ $feed_slug ] = $postTypeSettings['title'];
|
@@ -258,7 +258,7 @@ function powerpress_content($content)
|
|
258 |
{
|
259 |
if( isset($matches[3]) )
|
260 |
{
|
261 |
-
|
262 |
{
|
263 |
$attributes = shortcode_parse_atts($row);
|
264 |
if( isset($attributes['url']) )
|
@@ -281,7 +281,7 @@ function powerpress_content($content)
|
|
281 |
|
282 |
// LOOP HERE TO DISPLAY EACH MEDIA TYPE
|
283 |
$new_content = '';
|
284 |
-
|
285 |
{
|
286 |
// Get the enclosure data
|
287 |
$EpisodeData = powerpress_get_enclosure_data($post->ID, $feed_slug);
|
@@ -418,7 +418,7 @@ function powerpress_pinw(pinw_url){window.open(pinw_url, 'PowerPressPlayer','too
|
|
418 |
if( !empty($Powerpress['feed_links']) )
|
419 |
{
|
420 |
// Loop through podcast feeds and display them here
|
421 |
-
|
422 |
{
|
423 |
$href = get_feed_link($feed_slug);
|
424 |
if ( isset($title) && isset($href) )
|
@@ -746,7 +746,7 @@ function powerpress_rss2_head()
|
|
746 |
if( !empty($Feed['donate_link']) && !empty($Feed['donate_url']) )
|
747 |
echo "\t<rawvoice:donate href=\"". htmlspecialchars( $Feed['donate_url'] ) ."\">". htmlspecialchars( (empty($Feed['donate_label'])?'':$Feed['donate_label']) ) ."</rawvoice:donate>".PHP_EOL;
|
748 |
|
749 |
-
if( !empty($Feed['itunes_url']) || !empty($Feed['
|
750 |
echo "\t<rawvoice:subscribe feed=\"";
|
751 |
self_link();
|
752 |
echo '"';
|
@@ -763,14 +763,14 @@ function powerpress_rss2_head()
|
|
763 |
|
764 |
if( !empty($Feed['itunes_url']) )
|
765 |
echo " itunes=\"". htmlspecialchars( $Feed['itunes_url'] ) .'"';
|
766 |
-
if( !empty($Feed['googleplay_url']) )
|
767 |
-
echo " googleplay=\"". htmlspecialchars( $Feed['googleplay_url'] ) .'"';
|
768 |
if( !empty($Feed['blubrry_url']) )
|
769 |
echo " blubrry=\"". htmlspecialchars( $Feed['blubrry_url'] ) .'"';
|
770 |
if( !empty($Feed['stitcher_url']) )
|
771 |
echo " stitcher=\"". htmlspecialchars( $Feed['stitcher_url'] ) .'"';
|
772 |
if( !empty($Feed['tunein_url']) )
|
773 |
echo " tunein=\"". htmlspecialchars( $Feed['tunein_url'] ) .'"';
|
|
|
|
|
774 |
echo "></rawvoice:subscribe>".PHP_EOL;
|
775 |
}
|
776 |
}
|
@@ -1365,9 +1365,9 @@ function powerpress_template_redirect()
|
|
1365 |
if( is_array($powerpress_feed) && trim($powerpress_feed['feed_redirect_url']) != '' && !preg_match("/feedburner|feedsqueezer|feedvalidator/i", $_SERVER['HTTP_USER_AGENT'] ) && $redirect_value != 'no' )
|
1366 |
{
|
1367 |
if (function_exists('status_header'))
|
1368 |
-
status_header(
|
1369 |
header("Location: " . trim($powerpress_feed['feed_redirect_url']));
|
1370 |
-
header("HTTP/1.1
|
1371 |
exit();
|
1372 |
}
|
1373 |
}
|
@@ -1386,7 +1386,7 @@ function powerpress_rewrite_rules_array($array)
|
|
1386 |
$podcast_feeds = array_merge($settings['custom_feeds'], $podcast_feeds );
|
1387 |
|
1388 |
$merged_slugs = '';
|
1389 |
-
|
1390 |
{
|
1391 |
if( $merged_slugs != '' )
|
1392 |
$merged_slugs .= '|';
|
@@ -1402,7 +1402,7 @@ function powerpress_rewrite_rules_array($array)
|
|
1402 |
|
1403 |
global $wpdb;
|
1404 |
reset($podcast_feeds);
|
1405 |
-
|
1406 |
{
|
1407 |
$page_name_id = $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE post_name = '".$feed_slug."'");
|
1408 |
if( $page_name_id )
|
@@ -1424,7 +1424,7 @@ function powerpress_rewrite_rules_array($array)
|
|
1424 |
{
|
1425 |
reset($podcast_feeds);
|
1426 |
$remaining_slugs = '';
|
1427 |
-
|
1428 |
{
|
1429 |
if( $remaining_slugs != '' )
|
1430 |
$remaining_slugs .= '|';
|
@@ -1449,7 +1449,7 @@ function powerpress_pre_transient_rewrite_rules($return_rules)
|
|
1449 |
|
1450 |
if( $GeneralSettings && isset($GeneralSettings['custom_feeds']) && is_array($GeneralSettings['custom_feeds']) )
|
1451 |
{
|
1452 |
-
|
1453 |
{
|
1454 |
if( !in_array($feed_slug, $wp_rewrite->feeds) )
|
1455 |
$wp_rewrite->feeds[] = $feed_slug;
|
@@ -1499,7 +1499,7 @@ function powerpress_init()
|
|
1499 |
|
1500 |
if( $GeneralSettings && isset($GeneralSettings['custom_feeds']) && is_array($GeneralSettings['custom_feeds']) )
|
1501 |
{
|
1502 |
-
|
1503 |
{
|
1504 |
if( $feed_slug != 'podcast' )
|
1505 |
add_feed($feed_slug, 'powerpress_do_podcast_feed');
|
@@ -1528,12 +1528,12 @@ function powerpress_init()
|
|
1528 |
{
|
1529 |
$FeedSlugPostTypesArray = array();
|
1530 |
}
|
1531 |
-
|
1532 |
{
|
1533 |
if ( !in_array($feed_slug, $wp_rewrite->feeds) ) // we need to add this feed name
|
1534 |
{
|
1535 |
add_feed($feed_slug, 'powerpress_do_podcast_feed');
|
1536 |
-
|
1537 |
{
|
1538 |
add_rewrite_rule( '/'. $post_type_slug .'/feed/'. $feed_slug .'/?$', 'index.php?post_type='. $post_type_slug .'&feed='.$feed_slug, 'top' ); // capture the post type feeds
|
1539 |
add_rewrite_rule( '/'. $post_type_slug .'/feed/'. $feed_slug .'/?$', 'index.php?post_type='. $post_type_slug .'&feed='.$feed_slug, 'bottom' ); // capture the post type feeds
|
@@ -1601,9 +1601,9 @@ function powerpress_request($qv)
|
|
1601 |
|
1602 |
if( $podcast_feed_slug )
|
1603 |
{
|
1604 |
-
if( $qv['feed'] == 'podcast' )
|
1605 |
$qv['post_type'] = 'post';
|
1606 |
-
else {
|
1607 |
$qv['post_type'] = get_post_types( array('public'=> true, 'capability_type'=>'post') );
|
1608 |
if( !empty($qv['post_type']['attachment']) )
|
1609 |
unset($qv['post_type']['attachment']);
|
@@ -2166,7 +2166,7 @@ function get_the_powerpress_content()
|
|
2166 |
$GeneralSettings['custom_feeds'] = array();
|
2167 |
$GeneralSettings['custom_feeds']['podcast'] = 'Default Podcast Feed';
|
2168 |
|
2169 |
-
|
2170 |
{
|
2171 |
if( $feed_slug == 'podcast' )
|
2172 |
continue;
|
@@ -2196,7 +2196,7 @@ function get_the_powerpress_content()
|
|
2196 |
}; break;
|
2197 |
}
|
2198 |
|
2199 |
-
|
2200 |
{
|
2201 |
if( !empty( $postTypeSettings['title']) )
|
2202 |
$GeneralSettings['custom_feeds'][ $feed_slug ] = $postTypeSettings['title'];
|
@@ -2220,7 +2220,7 @@ function get_the_powerpress_content()
|
|
2220 |
|
2221 |
// LOOP HERE TO DISPLAY EACH MEDIA TYPE
|
2222 |
$new_content = '';
|
2223 |
-
|
2224 |
{
|
2225 |
// Get the enclosure data
|
2226 |
$EpisodeData = powerpress_get_enclosure_data($post->ID, $feed_slug);
|
@@ -2492,7 +2492,7 @@ function powerpress_itunes_categories($PrefixSubCategories = false)
|
|
2492 |
|
2493 |
if( $PrefixSubCategories )
|
2494 |
{
|
2495 |
-
|
2496 |
{
|
2497 |
$parts = explode('-', $key);
|
2498 |
$cat = $parts[0];
|
@@ -2782,7 +2782,9 @@ function powerpress_add_redirect_url($MediaURL, $EpisodeData = false) // $channe
|
|
2782 |
} else if( is_single() ) {
|
2783 |
$categories = wp_get_post_categories( get_the_ID() );
|
2784 |
if( count($categories) == 1 ) { // See if only one category is associated with this post
|
2785 |
-
|
|
|
|
|
2786 |
$FeedCatSettings = get_option('powerpress_cat_feed_'.$cat_id );
|
2787 |
if( $FeedCatSettings && !empty($FeedCatSettings['redirect']) ) {
|
2788 |
$Redirects['redirect0'] = $FeedCatSettings['redirect'];
|
@@ -2852,7 +2854,7 @@ function powerpress_add_redirect_url($MediaURL, $EpisodeData = false) // $channe
|
|
2852 |
$ttid_found = 0;
|
2853 |
$TaxonomySettings = false;
|
2854 |
|
2855 |
-
|
2856 |
{
|
2857 |
// Skip the default taxonomies
|
2858 |
if( $termObj->taxonomy == 'category' || $termObj->taxonomy == 'link_category' || $termObj->taxonomy == 'post_tag' || $termObj->taxonomy == 'nav_menu' )
|
@@ -2992,7 +2994,7 @@ function powerpress_merge_empty_feed_settings($CustomFeedSettings, $FeedSettings
|
|
2992 |
if( !$CustomFeedSettings )
|
2993 |
return $FeedSettings; // If the $CustomFeedSettings is false
|
2994 |
|
2995 |
-
|
2996 |
{
|
2997 |
if( $value !== '' || !isset($FeedSettings[$key]) )
|
2998 |
$FeedSettings[$key] = $value;
|
@@ -3158,7 +3160,7 @@ function powerpress_get_enclosure_data($post_id, $feed_slug = 'podcast', $raw_da
|
|
3158 |
$ExtraData = @unserialize($Serialized);
|
3159 |
if( $ExtraData && is_array($ExtraData) )
|
3160 |
{
|
3161 |
-
|
3162 |
|
3163 |
// Make sure specific fields are not overwritten...
|
3164 |
switch( $key ) {
|
@@ -3341,7 +3343,7 @@ function get_the_powerpress_all_players($slug = false, $no_link=false)
|
|
3341 |
{
|
3342 |
if( isset($GeneralSettings['custom_feeds']['podcast']) )
|
3343 |
$ChannelSlugs = array(); // Reset the array so it is added from the list in specified order
|
3344 |
-
|
3345 |
$ChannelSlugs[] = $feed_slug;
|
3346 |
}
|
3347 |
else if( is_array($slug) )
|
@@ -3358,7 +3360,7 @@ function get_the_powerpress_all_players($slug = false, $no_link=false)
|
|
3358 |
{
|
3359 |
the_post();
|
3360 |
|
3361 |
-
|
3362 |
{
|
3363 |
// Do we follow the global settings to disable a player?
|
3364 |
if( isset($GeneralSettings['disable_player']) && isset($GeneralSettings['disable_player'][$feed_slug]) && $slug == false )
|
@@ -3501,7 +3503,7 @@ function powerpress_in_wp_head()
|
|
3501 |
$trace = $e->getTrace();
|
3502 |
|
3503 |
if( !empty($trace) ) {
|
3504 |
-
|
3505 |
if( isset($call['function']) ) {
|
3506 |
// Which calls should we not add the player and links...
|
3507 |
switch( $call['function'] ) {
|
@@ -3522,8 +3524,8 @@ function powerpress_in_custom_post_widget()
|
|
3522 |
$trace = $e->getTrace();
|
3523 |
|
3524 |
if( !empty($trace) ) {
|
3525 |
-
|
3526 |
-
|
3527 |
if( isset($call['function']) ) {
|
3528 |
// Which calls should we not add the player and links...
|
3529 |
switch( $call['function'] ) {
|
2 |
/*
|
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 Apple Podcasts (previously iTunes), Google Podcasts, Spotify, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
|
6 |
+
Version: 7.3
|
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.3' );
|
36 |
|
37 |
// Translation support:
|
38 |
if ( !defined('POWERPRESS_ABSPATH') )
|
189 |
$Temp = $GeneralSettings['custom_feeds'];
|
190 |
$GeneralSettings['custom_feeds'] = array();
|
191 |
$GeneralSettings['custom_feeds']['podcast'] = 'Default Podcast Feed';
|
192 |
+
foreach( $Temp as $feed_slug=> $feed_title )
|
193 |
{
|
194 |
if( $feed_slug == 'podcast' )
|
195 |
continue;
|
219 |
}; break;
|
220 |
}
|
221 |
|
222 |
+
foreach( $PostTypeSettingsArray as $feed_slug=> $postTypeSettings )
|
223 |
{
|
224 |
if( !empty( $postTypeSettings['title']) )
|
225 |
$GeneralSettings['custom_feeds'][ $feed_slug ] = $postTypeSettings['title'];
|
258 |
{
|
259 |
if( isset($matches[3]) )
|
260 |
{
|
261 |
+
foreach( $matches[3] as $key=> $row )
|
262 |
{
|
263 |
$attributes = shortcode_parse_atts($row);
|
264 |
if( isset($attributes['url']) )
|
281 |
|
282 |
// LOOP HERE TO DISPLAY EACH MEDIA TYPE
|
283 |
$new_content = '';
|
284 |
+
foreach( $GeneralSettings['custom_feeds'] as $feed_slug=> $feed_title )
|
285 |
{
|
286 |
// Get the enclosure data
|
287 |
$EpisodeData = powerpress_get_enclosure_data($post->ID, $feed_slug);
|
418 |
if( !empty($Powerpress['feed_links']) )
|
419 |
{
|
420 |
// Loop through podcast feeds and display them here
|
421 |
+
foreach( $Powerpress['custom_feeds'] as $feed_slug=> $title )
|
422 |
{
|
423 |
$href = get_feed_link($feed_slug);
|
424 |
if ( isset($title) && isset($href) )
|
746 |
if( !empty($Feed['donate_link']) && !empty($Feed['donate_url']) )
|
747 |
echo "\t<rawvoice:donate href=\"". htmlspecialchars( $Feed['donate_url'] ) ."\">". htmlspecialchars( (empty($Feed['donate_label'])?'':$Feed['donate_label']) ) ."</rawvoice:donate>".PHP_EOL;
|
748 |
|
749 |
+
if( !empty($Feed['itunes_url']) || !empty($Feed['blubrry_url']) || !empty($Feed['stitcher_url']) || !empty($Feed['tunein_url']) || !empty($Feed['spotify_url']) ) {
|
750 |
echo "\t<rawvoice:subscribe feed=\"";
|
751 |
self_link();
|
752 |
echo '"';
|
763 |
|
764 |
if( !empty($Feed['itunes_url']) )
|
765 |
echo " itunes=\"". htmlspecialchars( $Feed['itunes_url'] ) .'"';
|
|
|
|
|
766 |
if( !empty($Feed['blubrry_url']) )
|
767 |
echo " blubrry=\"". htmlspecialchars( $Feed['blubrry_url'] ) .'"';
|
768 |
if( !empty($Feed['stitcher_url']) )
|
769 |
echo " stitcher=\"". htmlspecialchars( $Feed['stitcher_url'] ) .'"';
|
770 |
if( !empty($Feed['tunein_url']) )
|
771 |
echo " tunein=\"". htmlspecialchars( $Feed['tunein_url'] ) .'"';
|
772 |
+
if( !empty($Feed['spotify_url']) )
|
773 |
+
echo " spotify=\"". htmlspecialchars( $Feed['spotify_url'] ) .'"';
|
774 |
echo "></rawvoice:subscribe>".PHP_EOL;
|
775 |
}
|
776 |
}
|
1365 |
if( is_array($powerpress_feed) && trim($powerpress_feed['feed_redirect_url']) != '' && !preg_match("/feedburner|feedsqueezer|feedvalidator/i", $_SERVER['HTTP_USER_AGENT'] ) && $redirect_value != 'no' )
|
1366 |
{
|
1367 |
if (function_exists('status_header'))
|
1368 |
+
status_header( 301 );
|
1369 |
header("Location: " . trim($powerpress_feed['feed_redirect_url']));
|
1370 |
+
header("HTTP/1.1 301 Moved Permanently");
|
1371 |
exit();
|
1372 |
}
|
1373 |
}
|
1386 |
$podcast_feeds = array_merge($settings['custom_feeds'], $podcast_feeds );
|
1387 |
|
1388 |
$merged_slugs = '';
|
1389 |
+
foreach( $podcast_feeds as $feed_slug=> $feed_title )
|
1390 |
{
|
1391 |
if( $merged_slugs != '' )
|
1392 |
$merged_slugs .= '|';
|
1402 |
|
1403 |
global $wpdb;
|
1404 |
reset($podcast_feeds);
|
1405 |
+
foreach( $podcast_feeds as $feed_slug=> $feed_title )
|
1406 |
{
|
1407 |
$page_name_id = $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE post_name = '".$feed_slug."'");
|
1408 |
if( $page_name_id )
|
1424 |
{
|
1425 |
reset($podcast_feeds);
|
1426 |
$remaining_slugs = '';
|
1427 |
+
foreach( $podcast_feeds as $feed_slug=> $feed_title )
|
1428 |
{
|
1429 |
if( $remaining_slugs != '' )
|
1430 |
$remaining_slugs .= '|';
|
1449 |
|
1450 |
if( $GeneralSettings && isset($GeneralSettings['custom_feeds']) && is_array($GeneralSettings['custom_feeds']) )
|
1451 |
{
|
1452 |
+
foreach( $GeneralSettings['custom_feeds'] as $feed_slug=> $null )
|
1453 |
{
|
1454 |
if( !in_array($feed_slug, $wp_rewrite->feeds) )
|
1455 |
$wp_rewrite->feeds[] = $feed_slug;
|
1499 |
|
1500 |
if( $GeneralSettings && isset($GeneralSettings['custom_feeds']) && is_array($GeneralSettings['custom_feeds']) )
|
1501 |
{
|
1502 |
+
foreach( $GeneralSettings['custom_feeds'] as $feed_slug=> $feed_title )
|
1503 |
{
|
1504 |
if( $feed_slug != 'podcast' )
|
1505 |
add_feed($feed_slug, 'powerpress_do_podcast_feed');
|
1528 |
{
|
1529 |
$FeedSlugPostTypesArray = array();
|
1530 |
}
|
1531 |
+
foreach( $FeedSlugPostTypesArray as $feed_slug=> $FeedSlugPostTypes )
|
1532 |
{
|
1533 |
if ( !in_array($feed_slug, $wp_rewrite->feeds) ) // we need to add this feed name
|
1534 |
{
|
1535 |
add_feed($feed_slug, 'powerpress_do_podcast_feed');
|
1536 |
+
foreach( $FeedSlugPostTypes as $post_type_slug=> $title )
|
1537 |
{
|
1538 |
add_rewrite_rule( '/'. $post_type_slug .'/feed/'. $feed_slug .'/?$', 'index.php?post_type='. $post_type_slug .'&feed='.$feed_slug, 'top' ); // capture the post type feeds
|
1539 |
add_rewrite_rule( '/'. $post_type_slug .'/feed/'. $feed_slug .'/?$', 'index.php?post_type='. $post_type_slug .'&feed='.$feed_slug, 'bottom' ); // capture the post type feeds
|
1601 |
|
1602 |
if( $podcast_feed_slug )
|
1603 |
{
|
1604 |
+
if( !defined('POWERPRESS_POSTTYPE_MIXING') && $qv['feed'] == 'podcast' ) {
|
1605 |
$qv['post_type'] = 'post';
|
1606 |
+
} else {
|
1607 |
$qv['post_type'] = get_post_types( array('public'=> true, 'capability_type'=>'post') );
|
1608 |
if( !empty($qv['post_type']['attachment']) )
|
1609 |
unset($qv['post_type']['attachment']);
|
2166 |
$GeneralSettings['custom_feeds'] = array();
|
2167 |
$GeneralSettings['custom_feeds']['podcast'] = 'Default Podcast Feed';
|
2168 |
|
2169 |
+
foreach( $Temp as $feed_slug=> $feed_title )
|
2170 |
{
|
2171 |
if( $feed_slug == 'podcast' )
|
2172 |
continue;
|
2196 |
}; break;
|
2197 |
}
|
2198 |
|
2199 |
+
foreach( $PostTypeSettingsArray as $feed_slug=> $postTypeSettings )
|
2200 |
{
|
2201 |
if( !empty( $postTypeSettings['title']) )
|
2202 |
$GeneralSettings['custom_feeds'][ $feed_slug ] = $postTypeSettings['title'];
|
2220 |
|
2221 |
// LOOP HERE TO DISPLAY EACH MEDIA TYPE
|
2222 |
$new_content = '';
|
2223 |
+
foreach( $GeneralSettings['custom_feeds'] as $feed_slug=> $feed_title )
|
2224 |
{
|
2225 |
// Get the enclosure data
|
2226 |
$EpisodeData = powerpress_get_enclosure_data($post->ID, $feed_slug);
|
2492 |
|
2493 |
if( $PrefixSubCategories )
|
2494 |
{
|
2495 |
+
foreach( $temp as $key=> $val )
|
2496 |
{
|
2497 |
$parts = explode('-', $key);
|
2498 |
$cat = $parts[0];
|
2782 |
} else if( is_single() ) {
|
2783 |
$categories = wp_get_post_categories( get_the_ID() );
|
2784 |
if( count($categories) == 1 ) { // See if only one category is associated with this post
|
2785 |
+
foreach( $categories as $null=> $cat_id ) {
|
2786 |
+
break;
|
2787 |
+
}
|
2788 |
$FeedCatSettings = get_option('powerpress_cat_feed_'.$cat_id );
|
2789 |
if( $FeedCatSettings && !empty($FeedCatSettings['redirect']) ) {
|
2790 |
$Redirects['redirect0'] = $FeedCatSettings['redirect'];
|
2854 |
$ttid_found = 0;
|
2855 |
$TaxonomySettings = false;
|
2856 |
|
2857 |
+
foreach( $terms as $index=> $termObj )
|
2858 |
{
|
2859 |
// Skip the default taxonomies
|
2860 |
if( $termObj->taxonomy == 'category' || $termObj->taxonomy == 'link_category' || $termObj->taxonomy == 'post_tag' || $termObj->taxonomy == 'nav_menu' )
|
2994 |
if( !$CustomFeedSettings )
|
2995 |
return $FeedSettings; // If the $CustomFeedSettings is false
|
2996 |
|
2997 |
+
foreach( $CustomFeedSettings as $key=> $value )
|
2998 |
{
|
2999 |
if( $value !== '' || !isset($FeedSettings[$key]) )
|
3000 |
$FeedSettings[$key] = $value;
|
3160 |
$ExtraData = @unserialize($Serialized);
|
3161 |
if( $ExtraData && is_array($ExtraData) )
|
3162 |
{
|
3163 |
+
foreach( $ExtraData as $key=> $value ) {
|
3164 |
|
3165 |
// Make sure specific fields are not overwritten...
|
3166 |
switch( $key ) {
|
3343 |
{
|
3344 |
if( isset($GeneralSettings['custom_feeds']['podcast']) )
|
3345 |
$ChannelSlugs = array(); // Reset the array so it is added from the list in specified order
|
3346 |
+
foreach( $GeneralSettings['custom_feeds'] as $feed_slug=> $null )
|
3347 |
$ChannelSlugs[] = $feed_slug;
|
3348 |
}
|
3349 |
else if( is_array($slug) )
|
3360 |
{
|
3361 |
the_post();
|
3362 |
|
3363 |
+
foreach( $ChannelSlugs as $null=> $feed_slug )
|
3364 |
{
|
3365 |
// Do we follow the global settings to disable a player?
|
3366 |
if( isset($GeneralSettings['disable_player']) && isset($GeneralSettings['disable_player'][$feed_slug]) && $slug == false )
|
3503 |
$trace = $e->getTrace();
|
3504 |
|
3505 |
if( !empty($trace) ) {
|
3506 |
+
foreach( $trace as $index=> $call ) {
|
3507 |
if( isset($call['function']) ) {
|
3508 |
// Which calls should we not add the player and links...
|
3509 |
switch( $call['function'] ) {
|
3524 |
$trace = $e->getTrace();
|
3525 |
|
3526 |
if( !empty($trace) ) {
|
3527 |
+
|
3528 |
+
foreach( $trace as $index=> $call ) {
|
3529 |
if( isset($call['function']) ) {
|
3530 |
// Which calls should we not add the player and links...
|
3531 |
switch( $call['function'] ) {
|
powerpressadmin-basic.php
CHANGED
@@ -151,8 +151,8 @@ jQuery(document).ready(function($) {
|
|
151 |
<li><a href="#tab2"><span><?php echo htmlspecialchars(__('Services & Stats', 'powerpress')); ?></span></a></li>
|
152 |
<li><a href="#tab3"><span><?php echo htmlspecialchars(__('Website', 'powerpress')); ?></span></a></li>
|
153 |
<li><a href="#tab4"><span><?php echo htmlspecialchars(__('Feeds', 'powerpress')); ?></span></a></li>
|
154 |
-
<li><a href="#tab5"><span><?php echo htmlspecialchars(__('
|
155 |
-
<li><a href="#tab6"><span><?php echo htmlspecialchars(__('Google
|
156 |
<li><a href="#tab7"><span><?php echo htmlspecialchars(__('Artwork', 'powerpress')); ?></span></a></li>
|
157 |
<li><a href="#tab-dest"><span><?php echo htmlspecialchars(__('Destinations', 'powerpress')); ?></span></a></li>
|
158 |
</ul>
|
@@ -262,17 +262,17 @@ jQuery(document).ready( function() {
|
|
262 |
<div style="margin-left: 50px;" >
|
263 |
<div>
|
264 |
<input type="checkbox" name="NULL[import_podcast]" value="1" checked disabled />
|
265 |
-
<strong><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_import_feed.php'); ?>"><?php echo __('Import Podcast', 'powerpress'); ?></a></strong>
|
266 |
<?php echo __('Import podcast feed from SoundCloud, LibSyn, PodBean or other podcast service.', 'powerpress'); ?>
|
267 |
</div>
|
268 |
<div>
|
269 |
<input type="checkbox" name="NULL[migrate_media]" value="1" checked disabled />
|
270 |
-
<strong><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php'); ?>"><?php echo __('Migrate Media', 'powerpress'); ?></a></strong>
|
271 |
<?php echo __('Migrate media files to Blubrry Podcast Media Hosting with only a few clicks.', 'powerpress'); ?>
|
272 |
</div>
|
273 |
<div>
|
274 |
<input type="checkbox" name="NULL[podcasting_seo]" value="1" checked disabled />
|
275 |
-
<strong><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_search.php'); ?>"><?php echo __('Podcasting SEO', 'powerpress'); ?></a></strong>
|
276 |
<?php echo __('Select from 3 different web based audio players.', 'powerpress'); ?>
|
277 |
</div>
|
278 |
|
@@ -509,7 +509,7 @@ function powerpressadmin_edit_entry_options($General)
|
|
509 |
(<?php echo __('Leave unchecked if you do not distribute closed captioned media', 'powerpress'); ?>)</p>
|
510 |
|
511 |
<p style="margin-top: 15px;"><label><input id="episode_box_order" class="episode_box_option" name="General[episode_box_order]" type="checkbox" value="1"<?php if( !empty($General['episode_box_order']) ) echo ' checked'; ?> <?php if( !empty($General['episode_box_feature_in_itunes']) ) echo ' disabled'; ?> /> <?php echo __('iTunes Order', 'powerpress'); ?></label>
|
512 |
-
(<?php echo __('Override the default ordering of episodes on the
|
513 |
<em><strong><?php echo __('If conflicting values are present the directories will use the default ordering.', 'powerpress'); ?></strong></em><br />
|
514 |
<em><strong><?php echo __('This feature only applies to the default podcast feed and Custom Podcast Channel feeds added by PowerPress.', 'powerpress'); ?></strong></em>
|
515 |
|
@@ -519,11 +519,11 @@ function powerpressadmin_edit_entry_options($General)
|
|
519 |
$linkoptions = array('false'=>__('Hide Field', 'powerpress'),
|
520 |
1=>__('Show Field', 'powerpress') );
|
521 |
|
522 |
-
|
523 |
echo "\t<option value=\"$value\"". ( !empty($General['episode_box_itunes_title']) && $General['episode_box_itunes_title'] == $value ?' selected':''). ">$desc</option>\n";
|
524 |
|
525 |
?>
|
526 |
-
</select> <?php echo __('iTunes Episode Title Field', 'powerpress'); ?></label>
|
527 |
<em><strong><?php echo __('Specify iTunes episode title separate from podcast feed title.', 'powerpress'); ?></strong></em>
|
528 |
<?php } // end episode_box_itunes_title ?>
|
529 |
|
@@ -533,16 +533,16 @@ while( list($value,$desc) = each($linkoptions) )
|
|
533 |
$linkoptions = array('false'=>__('Hide Field', 'powerpress'),
|
534 |
1=>__('Show Field', 'powerpress') );
|
535 |
|
536 |
-
|
537 |
echo "\t<option value=\"$value\"". ( !empty($General['episode_box_itunes_nst']) && $General['episode_box_itunes_nst'] == $value ?' selected':''). ">$desc</option>\n";
|
538 |
|
539 |
?>
|
540 |
-
</select> <?php echo __('iTunes Episode Number, Season and Type Fields', 'powerpress'); ?></label>
|
541 |
<em><strong><?php echo __('Enter specifics about episode including episode number, season number and type (full, trailer, or bonus).', 'powerpress'); ?></strong></em>
|
542 |
<?php } // end episode_box_itunes_title ?>
|
543 |
|
544 |
-
<p style="margin-top: 15px;"><label><input id="episode_box_feature_in_itunes" class="episode_box_option" name="General[episode_box_feature_in_itunes]" type="checkbox" value="1"<?php if( !empty($General['episode_box_feature_in_itunes']) ) echo ' checked'; ?> /> <?php echo __('Feature Episode in
|
545 |
-
(<?php echo __('Display selected episode at top of your
|
546 |
<em><strong><?php echo __('All other episodes will be listed following the featured episode.', 'powerpress'); ?></strong></em><br />
|
547 |
<em><strong><?php echo __('This feature only applies to the default podcast feed and Custom Podcast Channel feeds added by PowerPress.', 'powerpress'); ?></strong></em>
|
548 |
|
@@ -623,7 +623,7 @@ SelectEmbedField(<?php echo $General['episode_box_embed']; ?>);
|
|
623 |
<?php
|
624 |
$options = array(0=>__('Auto detect file size', 'powerpress'), 1=>__('User specify', 'powerpress') );
|
625 |
|
626 |
-
|
627 |
echo "\t<option value=\"$value\"". ($General['set_size']==$value?' selected':''). ">$desc</option>\n";
|
628 |
|
629 |
?>
|
@@ -639,7 +639,7 @@ while( list($value,$desc) = each($options) )
|
|
639 |
<?php
|
640 |
$options = array(0=>__('Auto detect duration', 'powerpress'), 1=>__('User specify', 'powerpress'), -1=>__('Not specified (not recommended)', 'powerpress') );
|
641 |
|
642 |
-
|
643 |
echo "\t<option value=\"$value\"". ($General['set_duration']==$value?' selected':''). ">$desc</option>\n";
|
644 |
|
645 |
?>
|
@@ -658,7 +658,7 @@ while( list($value,$desc) = each($options) )
|
|
658 |
<?php
|
659 |
$options = array(0=>__('Disabled (default)', 'powerpress'), 1=>__('First media link found in post content', 'powerpress'), 2=>__('Last media link found in post content', 'powerpress') );
|
660 |
|
661 |
-
|
662 |
echo "\t<option value=\"$value\"". ($General['auto_enclose']==$value?' selected':''). ">$desc</option>\n";
|
663 |
|
664 |
?>
|
@@ -676,7 +676,7 @@ while( list($value,$desc) = each($options) )
|
|
676 |
<?php
|
677 |
$options = array(0=>__('No (default)', 'powerpress'), 1=>__('Yes', 'powerpress') );
|
678 |
$current_value = (!empty($General['hide_warnings'])?$General['hide_warnings']:0);
|
679 |
-
|
680 |
echo "\t<option value=\"$value\"". ($current_value==$value?' selected':''). ">$desc</option>\n";
|
681 |
|
682 |
?>
|
@@ -705,7 +705,7 @@ while( list($value,$desc) = each($options) )
|
|
705 |
$options = array(0=>__('Default WordPress Behavior', 'powerpress'), 1=>__('Match Feed Name to Page/Category', 'powerpress') );
|
706 |
$current_value = (!empty($General['permalink_feeds_only'])?$General['permalink_feeds_only']:0);
|
707 |
|
708 |
-
|
709 |
echo "\t<option value=\"$value\"". ($current_value==$value?' selected':''). ">$desc</option>\n";
|
710 |
|
711 |
?>
|
@@ -743,7 +743,7 @@ function powerpressadmin_edit_podpress_options($General)
|
|
743 |
<?php
|
744 |
$options = array(0=>__('Ignore', 'powerpress'), 1=>__('Include in Posts and Feeds', 'powerpress') );
|
745 |
|
746 |
-
|
747 |
echo "\t<option value=\"$value\"". ($General['process_podpress']==$value?' selected':''). ">$desc</option>\n";
|
748 |
|
749 |
?>
|
@@ -760,7 +760,7 @@ while( list($value,$desc) = each($options) )
|
|
760 |
<?php
|
761 |
$options = array(0=>__('Hide', 'powerpress'), 1=>__('Display', 'powerpress') );
|
762 |
|
763 |
-
|
764 |
echo "\t<option value=\"$value\"". ($General['podpress_stats']==$value?' selected':''). ">$desc</option>\n";
|
765 |
|
766 |
?>
|
@@ -818,7 +818,7 @@ function powerpressadmin_edit_googleplay($FeedSettings, $General, $FeedAttribs =
|
|
818 |
}
|
819 |
|
820 |
?>
|
821 |
-
<h3><?php echo __('Google Play Settings', 'powerpress'); ?>
|
822 |
<table class="form-table">
|
823 |
<tr valign="top">
|
824 |
<th scope="row">
|
@@ -864,7 +864,7 @@ function powerpressadmin_edit_googleplay($FeedSettings, $General, $FeedAttribs =
|
|
864 |
<?php
|
865 |
$explicit = array(0=> __('No - display nothing', 'powerpress'), 1=>__('Yes - explicit content', 'powerpress') );
|
866 |
|
867 |
-
|
868 |
echo "\t<option value=\"$value\"". ($FeedSettings['googleplay_explicit']==$value?' selected':''). ">$desc</option>\n";
|
869 |
|
870 |
?>
|
@@ -886,7 +886,7 @@ $MoreCategories = false;
|
|
886 |
$Categories = powerpress_googleplay_categories();
|
887 |
|
888 |
echo '<option value="">'. __('Select Category', 'powerpress') .'</option>';
|
889 |
-
|
890 |
echo "\t<option value=\"$value\"". ($FeedSettings['googleplay_cat']==$value?' selected':''). ">".htmlspecialchars($desc)."</option>\n";
|
891 |
|
892 |
?>
|
@@ -1161,7 +1161,7 @@ function powerpressadmin_appearance($General=false, $Feed = false)
|
|
1161 |
$Players = array('podcast'=>__('Default Podcast (podcast)', 'powerpress') );
|
1162 |
if( isset($General['custom_feeds']) )
|
1163 |
{
|
1164 |
-
|
1165 |
{
|
1166 |
if( $podcast_slug == 'podcast' )
|
1167 |
continue;
|
@@ -1281,7 +1281,7 @@ function powerpressadmin_appearance($General=false, $Feed = false)
|
|
1281 |
|
1282 |
<tr valign="top">
|
1283 |
<th scope="row">
|
1284 |
-
<?php echo __('Subscribe Links', 'powerpress'); ?>
|
1285 |
<td>
|
1286 |
<p style="padding-top: 8px;"><label><input type="checkbox" name="General[subscribe_links]" value="1" <?php if( $General['subscribe_links'] == 1 ) echo 'checked '; ?>/>
|
1287 |
<?php echo __('Display subscribe links below player and media links.', 'powerpress'); ?></label></p>
|
@@ -1298,7 +1298,7 @@ function powerpressadmin_appearance($General=false, $Feed = false)
|
|
1298 |
<p><a href="<?php echo 'https://linkmaker.itunes.apple.com/?q='.urlencode( get_bloginfo('name') ); ?>&media=podcasts" target="_blank"><?php echo __('Find your iTunes Subscription URL', 'powerpress'); ?></a></p>
|
1299 |
</div>
|
1300 |
|
1301 |
-
<p><input type="checkbox" name="NULL[subscribe_feature_android]" value="1" checked disabled /> <label><?php echo __('Subscribe on Android', 'powerpress'); ?></label
|
1302 |
<div style="margin-left: 24px;">
|
1303 |
<p><?php echo __('Link to your one click Subscribe on Android URL.', 'powerpress'); ?></p>
|
1304 |
<p><a href="http://subscribeonandroid.com/podcasters/" target="_blank"><?php echo __('Learn more about Subscribe on Android', 'powerpress'); ?></a></p>
|
@@ -1309,7 +1309,7 @@ function powerpressadmin_appearance($General=false, $Feed = false)
|
|
1309 |
<p><?php echo __('Link to your podcast RSS feed.', 'powerpress'); ?></p>
|
1310 |
</div>
|
1311 |
|
1312 |
-
<p><input type="checkbox" id="subscribe_feature_email" name="General[subscribe_feature_email]" value="1" <?php if( !empty($General['subscribe_feature_email']) ) echo 'checked '; ?>/> <label for="subscribe_feature_email"><?php echo __('Subscribe By Email', 'powerpress'); ?></label>
|
1313 |
<div style="margin-left: 24px;">
|
1314 |
<p><?php echo __('Link to your one click Subscribe by Email URL.', 'powerpress'); ?></p>
|
1315 |
<p>
|
@@ -1320,11 +1320,14 @@ function powerpressadmin_appearance($General=false, $Feed = false)
|
|
1320 |
</p>
|
1321 |
</div>
|
1322 |
|
1323 |
-
<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
|
|
|
1324 |
|
1325 |
-
<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
|
1326 |
|
1327 |
-
<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
|
|
|
|
|
1328 |
|
1329 |
</td>
|
1330 |
</tr>
|
@@ -1349,7 +1352,7 @@ $linkoptions = array(0=>__('No, everything is working', 'powerpress'),
|
|
1349 |
3=>__('Yes, excluding excerpts', 'powerpress'),
|
1350 |
4=>__('Yes, wp_head check', 'powerpress') );
|
1351 |
|
1352 |
-
|
1353 |
echo "\t<option value=\"$value\"". ($General['player_aggressive']==$value?' selected':''). ">$desc</option>\n";
|
1354 |
|
1355 |
?>
|
@@ -1450,7 +1453,7 @@ function powerpressadmin_edit_funding($FeedSettings = false, $feed_slug='podcast
|
|
1450 |
<table class="form-table">
|
1451 |
<tr valign="top">
|
1452 |
<th scope="row">
|
1453 |
-
<?php echo __('Donate Link', 'powerpress'); ?>
|
1454 |
<td>
|
1455 |
<p style="padding-top: 8px;"><label for="donate_link"><input type="checkbox" id="donate_link" name="Feed[donate_link]" value="1" <?php if( $FeedSettings['donate_link'] == 1 ) echo 'checked '; ?>/>
|
1456 |
<?php echo __('Syndicate a donate link with your podcast. Create your own croudfunding page with PayPal donate buttons, or link to a service such as Patreon.', 'powerpress'); ?></label></p>
|
@@ -1502,7 +1505,7 @@ function powerpressadmin_edit_tv($FeedSettings = false, $feed_slug='podcast', $c
|
|
1502 |
);
|
1503 |
|
1504 |
|
1505 |
-
|
1506 |
{
|
1507 |
$tip = $RatingsTips[ $rating ];
|
1508 |
?>
|
@@ -1582,7 +1585,7 @@ function powerpressadmin_edit_artwork($FeedSettings, $General)
|
|
1582 |
<table class="form-table">
|
1583 |
<tr valign="top">
|
1584 |
<th scope="row">
|
1585 |
-
<?php echo __('Google Play Image', 'powerpress'); ?>
|
1586 |
</th>
|
1587 |
<td>
|
1588 |
<input type="text" id="googleplay_image" name="Feed[googleplay_image]" style="width: 60%; margin-top: 10px;" value="<?php echo esc_attr( !empty($FeedSettings['googleplay_image'])? $FeedSettings['googleplay_image']:''); ?>" maxlength="255" />
|
151 |
<li><a href="#tab2"><span><?php echo htmlspecialchars(__('Services & Stats', 'powerpress')); ?></span></a></li>
|
152 |
<li><a href="#tab3"><span><?php echo htmlspecialchars(__('Website', 'powerpress')); ?></span></a></li>
|
153 |
<li><a href="#tab4"><span><?php echo htmlspecialchars(__('Feeds', 'powerpress')); ?></span></a></li>
|
154 |
+
<li><a href="#tab5"><span><?php echo htmlspecialchars(__('Apple', 'powerpress')); ?></span></a></li>
|
155 |
+
<li><a href="#tab6"><span><?php echo htmlspecialchars(__('Google', 'powerpress')); ?></span></a></li>
|
156 |
<li><a href="#tab7"><span><?php echo htmlspecialchars(__('Artwork', 'powerpress')); ?></span></a></li>
|
157 |
<li><a href="#tab-dest"><span><?php echo htmlspecialchars(__('Destinations', 'powerpress')); ?></span></a></li>
|
158 |
</ul>
|
262 |
<div style="margin-left: 50px;" >
|
263 |
<div>
|
264 |
<input type="checkbox" name="NULL[import_podcast]" value="1" checked disabled />
|
265 |
+
<strong><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_import_feed.php'); ?>"><?php echo __('Import Podcast', 'powerpress'); ?></a></strong> -
|
266 |
<?php echo __('Import podcast feed from SoundCloud, LibSyn, PodBean or other podcast service.', 'powerpress'); ?>
|
267 |
</div>
|
268 |
<div>
|
269 |
<input type="checkbox" name="NULL[migrate_media]" value="1" checked disabled />
|
270 |
+
<strong><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php'); ?>"><?php echo __('Migrate Media', 'powerpress'); ?></a></strong> -
|
271 |
<?php echo __('Migrate media files to Blubrry Podcast Media Hosting with only a few clicks.', 'powerpress'); ?>
|
272 |
</div>
|
273 |
<div>
|
274 |
<input type="checkbox" name="NULL[podcasting_seo]" value="1" checked disabled />
|
275 |
+
<strong><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_search.php'); ?>"><?php echo __('Podcasting SEO', 'powerpress'); ?></a></strong> -
|
276 |
<?php echo __('Select from 3 different web based audio players.', 'powerpress'); ?>
|
277 |
</div>
|
278 |
|
509 |
(<?php echo __('Leave unchecked if you do not distribute closed captioned media', 'powerpress'); ?>)</p>
|
510 |
|
511 |
<p style="margin-top: 15px;"><label><input id="episode_box_order" class="episode_box_option" name="General[episode_box_order]" type="checkbox" value="1"<?php if( !empty($General['episode_box_order']) ) echo ' checked'; ?> <?php if( !empty($General['episode_box_feature_in_itunes']) ) echo ' disabled'; ?> /> <?php echo __('iTunes Order', 'powerpress'); ?></label>
|
512 |
+
(<?php echo __('Override the default ordering of episodes on the Apple and Google Podcast directories', 'powerpress'); ?>)</p>
|
513 |
<em><strong><?php echo __('If conflicting values are present the directories will use the default ordering.', 'powerpress'); ?></strong></em><br />
|
514 |
<em><strong><?php echo __('This feature only applies to the default podcast feed and Custom Podcast Channel feeds added by PowerPress.', 'powerpress'); ?></strong></em>
|
515 |
|
519 |
$linkoptions = array('false'=>__('Hide Field', 'powerpress'),
|
520 |
1=>__('Show Field', 'powerpress') );
|
521 |
|
522 |
+
foreach( $linkoptions as $value => $desc )
|
523 |
echo "\t<option value=\"$value\"". ( !empty($General['episode_box_itunes_title']) && $General['episode_box_itunes_title'] == $value ?' selected':''). ">$desc</option>\n";
|
524 |
|
525 |
?>
|
526 |
+
</select> <?php echo __('iTunes Episode Title Field', 'powerpress'); ?></label> </p>
|
527 |
<em><strong><?php echo __('Specify iTunes episode title separate from podcast feed title.', 'powerpress'); ?></strong></em>
|
528 |
<?php } // end episode_box_itunes_title ?>
|
529 |
|
533 |
$linkoptions = array('false'=>__('Hide Field', 'powerpress'),
|
534 |
1=>__('Show Field', 'powerpress') );
|
535 |
|
536 |
+
foreach( $linkoptions as $value => $desc )
|
537 |
echo "\t<option value=\"$value\"". ( !empty($General['episode_box_itunes_nst']) && $General['episode_box_itunes_nst'] == $value ?' selected':''). ">$desc</option>\n";
|
538 |
|
539 |
?>
|
540 |
+
</select> <?php echo __('iTunes Episode Number, Season and Type Fields', 'powerpress'); ?></label> </p>
|
541 |
<em><strong><?php echo __('Enter specifics about episode including episode number, season number and type (full, trailer, or bonus).', 'powerpress'); ?></strong></em>
|
542 |
<?php } // end episode_box_itunes_title ?>
|
543 |
|
544 |
+
<p style="margin-top: 15px;"><label><input id="episode_box_feature_in_itunes" class="episode_box_option" name="General[episode_box_feature_in_itunes]" type="checkbox" value="1"<?php if( !empty($General['episode_box_feature_in_itunes']) ) echo ' checked'; ?> /> <?php echo __('Feature Episode in Apple and Google Podcasts', 'powerpress'); ?></label>
|
545 |
+
(<?php echo __('Display selected episode at top of your Apple and Google Podcasts listings', 'powerpress'); ?>)</p>
|
546 |
<em><strong><?php echo __('All other episodes will be listed following the featured episode.', 'powerpress'); ?></strong></em><br />
|
547 |
<em><strong><?php echo __('This feature only applies to the default podcast feed and Custom Podcast Channel feeds added by PowerPress.', 'powerpress'); ?></strong></em>
|
548 |
|
623 |
<?php
|
624 |
$options = array(0=>__('Auto detect file size', 'powerpress'), 1=>__('User specify', 'powerpress') );
|
625 |
|
626 |
+
foreach( $options as $value => $desc )
|
627 |
echo "\t<option value=\"$value\"". ($General['set_size']==$value?' selected':''). ">$desc</option>\n";
|
628 |
|
629 |
?>
|
639 |
<?php
|
640 |
$options = array(0=>__('Auto detect duration', 'powerpress'), 1=>__('User specify', 'powerpress'), -1=>__('Not specified (not recommended)', 'powerpress') );
|
641 |
|
642 |
+
foreach( $options as $value => $desc )
|
643 |
echo "\t<option value=\"$value\"". ($General['set_duration']==$value?' selected':''). ">$desc</option>\n";
|
644 |
|
645 |
?>
|
658 |
<?php
|
659 |
$options = array(0=>__('Disabled (default)', 'powerpress'), 1=>__('First media link found in post content', 'powerpress'), 2=>__('Last media link found in post content', 'powerpress') );
|
660 |
|
661 |
+
foreach( $options as $value => $desc )
|
662 |
echo "\t<option value=\"$value\"". ($General['auto_enclose']==$value?' selected':''). ">$desc</option>\n";
|
663 |
|
664 |
?>
|
676 |
<?php
|
677 |
$options = array(0=>__('No (default)', 'powerpress'), 1=>__('Yes', 'powerpress') );
|
678 |
$current_value = (!empty($General['hide_warnings'])?$General['hide_warnings']:0);
|
679 |
+
foreach( $options as $value => $desc )
|
680 |
echo "\t<option value=\"$value\"". ($current_value==$value?' selected':''). ">$desc</option>\n";
|
681 |
|
682 |
?>
|
705 |
$options = array(0=>__('Default WordPress Behavior', 'powerpress'), 1=>__('Match Feed Name to Page/Category', 'powerpress') );
|
706 |
$current_value = (!empty($General['permalink_feeds_only'])?$General['permalink_feeds_only']:0);
|
707 |
|
708 |
+
foreach( $options as $value => $desc )
|
709 |
echo "\t<option value=\"$value\"". ($current_value==$value?' selected':''). ">$desc</option>\n";
|
710 |
|
711 |
?>
|
743 |
<?php
|
744 |
$options = array(0=>__('Ignore', 'powerpress'), 1=>__('Include in Posts and Feeds', 'powerpress') );
|
745 |
|
746 |
+
foreach( $options as $value => $desc )
|
747 |
echo "\t<option value=\"$value\"". ($General['process_podpress']==$value?' selected':''). ">$desc</option>\n";
|
748 |
|
749 |
?>
|
760 |
<?php
|
761 |
$options = array(0=>__('Hide', 'powerpress'), 1=>__('Display', 'powerpress') );
|
762 |
|
763 |
+
foreach( $options as $value => $desc )
|
764 |
echo "\t<option value=\"$value\"". ($General['podpress_stats']==$value?' selected':''). ">$desc</option>\n";
|
765 |
|
766 |
?>
|
818 |
}
|
819 |
|
820 |
?>
|
821 |
+
<h3><?php echo __('Google Play Settings', 'powerpress'); ?> </h3>
|
822 |
<table class="form-table">
|
823 |
<tr valign="top">
|
824 |
<th scope="row">
|
864 |
<?php
|
865 |
$explicit = array(0=> __('No - display nothing', 'powerpress'), 1=>__('Yes - explicit content', 'powerpress') );
|
866 |
|
867 |
+
foreach( $explicit as $value => $desc )
|
868 |
echo "\t<option value=\"$value\"". ($FeedSettings['googleplay_explicit']==$value?' selected':''). ">$desc</option>\n";
|
869 |
|
870 |
?>
|
886 |
$Categories = powerpress_googleplay_categories();
|
887 |
|
888 |
echo '<option value="">'. __('Select Category', 'powerpress') .'</option>';
|
889 |
+
foreach( $Categories as $value => $desc )
|
890 |
echo "\t<option value=\"$value\"". ($FeedSettings['googleplay_cat']==$value?' selected':''). ">".htmlspecialchars($desc)."</option>\n";
|
891 |
|
892 |
?>
|
1161 |
$Players = array('podcast'=>__('Default Podcast (podcast)', 'powerpress') );
|
1162 |
if( isset($General['custom_feeds']) )
|
1163 |
{
|
1164 |
+
foreach( $General['custom_feeds'] as $podcast_slug => $podcast_title )
|
1165 |
{
|
1166 |
if( $podcast_slug == 'podcast' )
|
1167 |
continue;
|
1281 |
|
1282 |
<tr valign="top">
|
1283 |
<th scope="row">
|
1284 |
+
<?php echo __('Subscribe Links', 'powerpress'); ?> </th>
|
1285 |
<td>
|
1286 |
<p style="padding-top: 8px;"><label><input type="checkbox" name="General[subscribe_links]" value="1" <?php if( $General['subscribe_links'] == 1 ) echo 'checked '; ?>/>
|
1287 |
<?php echo __('Display subscribe links below player and media links.', 'powerpress'); ?></label></p>
|
1298 |
<p><a href="<?php echo 'https://linkmaker.itunes.apple.com/?q='.urlencode( get_bloginfo('name') ); ?>&media=podcasts" target="_blank"><?php echo __('Find your iTunes Subscription URL', 'powerpress'); ?></a></p>
|
1299 |
</div>
|
1300 |
|
1301 |
+
<p><input type="checkbox" name="NULL[subscribe_feature_android]" value="1" checked disabled /> <label><?php echo __('Subscribe on Android', 'powerpress'); ?></label></p>
|
1302 |
<div style="margin-left: 24px;">
|
1303 |
<p><?php echo __('Link to your one click Subscribe on Android URL.', 'powerpress'); ?></p>
|
1304 |
<p><a href="http://subscribeonandroid.com/podcasters/" target="_blank"><?php echo __('Learn more about Subscribe on Android', 'powerpress'); ?></a></p>
|
1309 |
<p><?php echo __('Link to your podcast RSS feed.', 'powerpress'); ?></p>
|
1310 |
</div>
|
1311 |
|
1312 |
+
<p><input type="checkbox" id="subscribe_feature_email" name="General[subscribe_feature_email]" value="1" <?php if( !empty($General['subscribe_feature_email']) ) echo 'checked '; ?>/> <label for="subscribe_feature_email"><?php echo __('Subscribe By Email', 'powerpress'); ?></label> </p>
|
1313 |
<div style="margin-left: 24px;">
|
1314 |
<p><?php echo __('Link to your one click Subscribe by Email URL.', 'powerpress'); ?></p>
|
1315 |
<p>
|
1320 |
</p>
|
1321 |
</div>
|
1322 |
|
1323 |
+
<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 Podcasts', 'powerpress'); ?></label> <?php echo powerpressadmin_new(); ?></p>
|
1324 |
+
<p><?php echo __('Note: Subscribe on Android includes Google Podcasts.', 'powerpress'); ?>
|
1325 |
|
1326 |
+
<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></p>
|
1327 |
|
1328 |
+
<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></p>
|
1329 |
+
|
1330 |
+
<p><input type="hidden" name="General[subscribe_feature_spotify]" value="0" /><input type="checkbox" id="subscribe_feature_spotify" name="General[subscribe_feature_spotify]" value="1" <?php if( !empty($General['subscribe_feature_spotify']) ) echo 'checked '; ?>/> <label for="subscribe_feature_spotify"><?php echo __('Subscribe on Spotify', 'powerpress'); ?></label> <?php echo powerpressadmin_new(); ?></p>
|
1331 |
|
1332 |
</td>
|
1333 |
</tr>
|
1352 |
3=>__('Yes, excluding excerpts', 'powerpress'),
|
1353 |
4=>__('Yes, wp_head check', 'powerpress') );
|
1354 |
|
1355 |
+
foreach( $linkoptions as $value => $desc )
|
1356 |
echo "\t<option value=\"$value\"". ($General['player_aggressive']==$value?' selected':''). ">$desc</option>\n";
|
1357 |
|
1358 |
?>
|
1453 |
<table class="form-table">
|
1454 |
<tr valign="top">
|
1455 |
<th scope="row">
|
1456 |
+
<?php echo __('Donate Link', 'powerpress'); ?> </th>
|
1457 |
<td>
|
1458 |
<p style="padding-top: 8px;"><label for="donate_link"><input type="checkbox" id="donate_link" name="Feed[donate_link]" value="1" <?php if( $FeedSettings['donate_link'] == 1 ) echo 'checked '; ?>/>
|
1459 |
<?php echo __('Syndicate a donate link with your podcast. Create your own croudfunding page with PayPal donate buttons, or link to a service such as Patreon.', 'powerpress'); ?></label></p>
|
1505 |
);
|
1506 |
|
1507 |
|
1508 |
+
foreach( $Ratings as $rating => $title )
|
1509 |
{
|
1510 |
$tip = $RatingsTips[ $rating ];
|
1511 |
?>
|
1585 |
<table class="form-table">
|
1586 |
<tr valign="top">
|
1587 |
<th scope="row">
|
1588 |
+
<?php echo __('Google Play Image', 'powerpress'); ?>
|
1589 |
</th>
|
1590 |
<td>
|
1591 |
<input type="text" id="googleplay_image" name="Feed[googleplay_image]" style="width: 60%; margin-top: 10px;" value="<?php echo esc_attr( !empty($FeedSettings['googleplay_image'])? $FeedSettings['googleplay_image']:''); ?>" maxlength="255" />
|
powerpressadmin-categoryfeeds.php
CHANGED
@@ -67,7 +67,7 @@ function powerpress_admin_categoryfeeds()
|
|
67 |
$Feeds = $General['custom_cat_feeds'];
|
68 |
|
69 |
$count = 0;
|
70 |
-
|
71 |
{
|
72 |
if( empty($cat_ID) )
|
73 |
continue;
|
67 |
$Feeds = $General['custom_cat_feeds'];
|
68 |
|
69 |
$count = 0;
|
70 |
+
foreach( $Feeds as $null => $cat_ID )
|
71 |
{
|
72 |
if( empty($cat_ID) )
|
73 |
continue;
|
powerpressadmin-customfeeds.php
CHANGED
@@ -72,7 +72,7 @@ function powerpress_admin_customfeeds()
|
|
72 |
asort($Feeds, SORT_STRING); // Sort feeds
|
73 |
|
74 |
$count = 0;
|
75 |
-
|
76 |
{
|
77 |
$feed_slug = esc_attr($feed_slug); // Precaution
|
78 |
$episode_total = powerpress_admin_episodes_per_feed($feed_slug);
|
72 |
asort($Feeds, SORT_STRING); // Sort feeds
|
73 |
|
74 |
$count = 0;
|
75 |
+
foreach( $Feeds as $feed_slug => $feed_title )
|
76 |
{
|
77 |
$feed_slug = esc_attr($feed_slug); // Precaution
|
78 |
$episode_total = powerpress_admin_episodes_per_feed($feed_slug);
|
powerpressadmin-dashboard.php
CHANGED
@@ -160,7 +160,7 @@ function powerpress_dashboard_stats_content()
|
|
160 |
{
|
161 |
$success = false;
|
162 |
$api_url_array = powerpress_get_api_array();
|
163 |
-
|
164 |
{
|
165 |
$req_url = sprintf('%s/stats/%s/summary.html?nobody=1', rtrim($api_url, '/'), $Keyword);
|
166 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
160 |
{
|
161 |
$success = false;
|
162 |
$api_url_array = powerpress_get_api_array();
|
163 |
+
foreach( $api_url_array as $index=> $api_url )
|
164 |
{
|
165 |
$req_url = sprintf('%s/stats/%s/summary.html?nobody=1', rtrim($api_url, '/'), $Keyword);
|
166 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
powerpressadmin-defaults.php
CHANGED
@@ -117,7 +117,7 @@ jQuery(document).ready(function($) {
|
|
117 |
if( $Step > 1 ) { // Only display if we have episdoes in the feed!
|
118 |
// TODO: Need to include the settings_tab_destinations.php but only the iTunes option to keep things simple
|
119 |
}
|
120 |
-
//
|
121 |
powerpressadmin_edit_itunes_feed($FeedSettings, $General, $FeedAttribs);
|
122 |
|
123 |
powerpressadmin_edit_artwork($FeedSettings, $General);
|
117 |
if( $Step > 1 ) { // Only display if we have episdoes in the feed!
|
118 |
// TODO: Need to include the settings_tab_destinations.php but only the iTunes option to keep things simple
|
119 |
}
|
120 |
+
// Apple settings (in simple mode of course)
|
121 |
powerpressadmin_edit_itunes_feed($FeedSettings, $General, $FeedAttribs);
|
122 |
|
123 |
powerpressadmin_edit_artwork($FeedSettings, $General);
|
powerpressadmin-diagnostics.php
CHANGED
@@ -291,7 +291,7 @@
|
|
291 |
$current_plugins = get_option('active_plugins');
|
292 |
$message .= "<br />\n";
|
293 |
$message .= '<strong>'.__('Active Plugins', 'powerpress') ."</strong><br />\n";
|
294 |
-
|
295 |
{
|
296 |
$plugin_data = get_plugin_data( rtrim(WP_PLUGIN_DIR, '/\\'). '/'. rtrim($plugin_path, '\\/'), false, false ); //Do not apply markup/translate as it'll be cached.
|
297 |
|
291 |
$current_plugins = get_option('active_plugins');
|
292 |
$message .= "<br />\n";
|
293 |
$message .= '<strong>'.__('Active Plugins', 'powerpress') ."</strong><br />\n";
|
294 |
+
foreach( $current_plugins as $null=> $plugin_path )
|
295 |
{
|
296 |
$plugin_data = get_plugin_data( rtrim(WP_PLUGIN_DIR, '/\\'). '/'. rtrim($plugin_path, '\\/'), false, false ); //Do not apply markup/translate as it'll be cached.
|
297 |
|
powerpressadmin-editfeed.php
CHANGED
@@ -133,7 +133,7 @@ function powerpress_admin_capabilities()
|
|
133 |
$capnames = apply_filters( 'powerpress_admin_capabilities', array_unique($capnames) );
|
134 |
|
135 |
$remove_keys = array('level_0', 'level_1', 'level_2', 'level_3', 'level_4', 'level_5', 'level_6', 'level_7', 'level_8', 'level_9', 'level_10');
|
136 |
-
|
137 |
unset($capnames[ $key ]);
|
138 |
asort($capnames);
|
139 |
return $capnames;
|
@@ -252,8 +252,8 @@ function powerpress_admin_editfeed($type='', $type_value = '', $feed_slug = fals
|
|
252 |
<div id="powerpress_settings_page" class="powerpress_tabbed_content">
|
253 |
<ul class="powerpress_settings_tabs">
|
254 |
<li><a href="#feed_tab_feed"><span><?php echo htmlspecialchars(__('Feed', 'powerpress')); ?></span></a></li>
|
255 |
-
<li><a href="#feed_tab_itunes"><span><?php echo htmlspecialchars(__('
|
256 |
-
<li><a href="#feed_tab_googleplay"><span><?php echo htmlspecialchars(__('Google
|
257 |
<li><a href="#feed_tab_artwork"><span><?php echo htmlspecialchars(__('Artwork', 'powerpress')); ?></span></a></li>
|
258 |
<?php if( in_array($FeedAttribs['type'], array('category', 'ttid', 'post_type', 'channel') ) ) { ?>
|
259 |
<li><a href="#feed_tab_appearance"><span><?php echo htmlspecialchars(__('Website', 'powerpress')); ?></span></a></li>
|
@@ -391,7 +391,7 @@ function powerpressadmin_edit_feed_general($FeedSettings, $General)
|
|
391 |
else if( isset($General['custom_feeds'])&& is_array($General['custom_feeds']) )
|
392 |
$Feeds += $General['custom_feeds'];
|
393 |
|
394 |
-
|
395 |
{
|
396 |
if( empty($feed_title) )
|
397 |
$feed_title = $feed_slug;
|
@@ -421,7 +421,7 @@ function powerpressadmin_edit_feed_general($FeedSettings, $General)
|
|
421 |
<th scope="row">
|
422 |
<?php echo __('Feed Discovery', 'powerpress'); ?></th>
|
423 |
<td>
|
424 |
-
<p style="margin-top: 10px;"><label><input type="checkbox" name="General[feed_links]" value="1" <?php if( !empty($General['feed_links']) && $General['feed_links'] == 1 ) echo 'checked '; ?>/> <?php echo __('
|
425 |
<p><?php echo __('Adds "feed discovery" links to your web site\'s headers allowing web browsers and feed readers to auto-detect your podcast feeds.', 'powerpress'); ?></p>
|
426 |
</td>
|
427 |
</tr>
|
@@ -570,22 +570,16 @@ if( $FeedAttribs['type'] != 'general' ) // All types exept general settings
|
|
570 |
<?php } ?>
|
571 |
</td>
|
572 |
</tr>
|
|
|
573 |
|
574 |
<tr valign="top">
|
575 |
<th scope="row">
|
576 |
-
<?php echo __('
|
577 |
-
<span style="font-size: 85%; margin-left: 5px;"><?php echo __('
|
578 |
</th>
|
579 |
<td>
|
580 |
<input type="text" name="Feed[feed_redirect_url]" style="width: 60%;" value="<?php echo esc_attr(!empty($FeedSettings['feed_redirect_url'])? $FeedSettings['feed_redirect_url']:''); ?>" maxlength="100" /> (<?php echo __('leave blank to use built-in feed', 'powerpress'); ?>)
|
581 |
-
|
582 |
-
<p style="margin-top: 0px; margin-bottomd: 0;" class="description"><?php echo powerpressadmin_notice( __('NOTE: FeedBurner is not required for podcasting.', 'powerpress') ); ?> <br />
|
583 |
-
<?php echo powerpressadmin_notice( __('No support is available from blubrry if you are using Feedburner or other feed hosted services.', 'powerpress') ); ?><br />
|
584 |
-
<a href="http://create.blubrry.com/manual/syndicating-your-podcast-rss-feeds/feedburner-for-podcasting/" target="_blank"><?php echo __('Learn more about FeedBurner and Podcasitng', 'powerpress'); ?></a>
|
585 |
-
</p>
|
586 |
-
<p><?php echo __('Use this option to redirect this feed to a hosted feed service such as FeedBurner.', 'powerpress'); ?></p>
|
587 |
-
|
588 |
-
<p><?php echo __('We recommend that you disable FeedBurner SmartCast when using FeedBurner with PowerPress.', 'powerpress'); ?></p>
|
589 |
<?php
|
590 |
$link = $feed_link;
|
591 |
if( strstr($link, '?') )
|
@@ -597,8 +591,6 @@ else
|
|
597 |
</td>
|
598 |
</tr>
|
599 |
|
600 |
-
<?php } // End not general settings ?>
|
601 |
-
|
602 |
<tr valign="top">
|
603 |
<th scope="row">
|
604 |
<?php echo __('Show the most recent', 'powerpress'); ?>
|
@@ -615,7 +607,7 @@ else
|
|
615 |
?>
|
616 |
<tr valign="top">
|
617 |
<th scope="row">
|
618 |
-
<?php echo __('Feed Episode Maximizer', 'powerpress'); ?>
|
619 |
</th>
|
620 |
<td>
|
621 |
<p><input type="checkbox" name="Feed[maximize_feed]" value="1" <?php if( !empty($FeedSettings['maximize_feed']) ) echo 'checked'; ?> />
|
@@ -637,7 +629,7 @@ else
|
|
637 |
$Languages = powerpress_languages();
|
638 |
|
639 |
echo '<option value="">'. __('Blog Default Language', 'powerpress') .'</option>';
|
640 |
-
|
641 |
echo "\t<option value=\"$value\"". ($FeedSettings['rss_language']==$value?' selected':''). ">". esc_attr($desc)."</option>\n";
|
642 |
?>
|
643 |
</select>
|
@@ -778,7 +770,7 @@ function powerpressadmin_edit_itunes_feed($FeedSettings, $General, $FeedAttribs
|
|
778 |
|
779 |
?>
|
780 |
|
781 |
-
<h3><?php echo __('
|
782 |
<table class="form-table">
|
783 |
<tr valign="top">
|
784 |
<th scope="row">
|
@@ -861,7 +853,7 @@ $Categories = powerpress_itunes_categories(true);
|
|
861 |
|
862 |
echo '<option value="">'. __('Select Category', 'powerpress') .'</option>';
|
863 |
|
864 |
-
|
865 |
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_cat_1']==$value?' selected':''). ">".htmlspecialchars($desc)."</option>\n";
|
866 |
|
867 |
reset($Categories);
|
@@ -892,7 +884,7 @@ reset($Categories);
|
|
892 |
|
893 |
|
894 |
echo '<option value="">'. __('Select Category', 'powerpress') .'</option>';
|
895 |
-
|
896 |
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_cat_2']==$value?' selected':''). ">".htmlspecialchars($desc)."</option>\n";
|
897 |
|
898 |
reset($Categories);
|
@@ -917,7 +909,7 @@ reset($Categories);
|
|
917 |
<?php
|
918 |
|
919 |
echo '<option value="">'. __('Select Category', 'powerpress') .'</option>';
|
920 |
-
|
921 |
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_cat_3']==$value?' selected':''). ">".htmlspecialchars($desc)."</option>\n";
|
922 |
|
923 |
reset($Categories);
|
@@ -946,7 +938,7 @@ reset($Categories);
|
|
946 |
<?php
|
947 |
$explicit = array(0=> __('No option selected', 'powerpress'), 1=>__('Yes - explicit content', 'powerpress'), 2=>__('Clean - no explicit content', 'powerpress'));
|
948 |
|
949 |
-
|
950 |
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_explicit']==$value?' selected':''). (($FeedSettings['itunes_explicit']!=0&&$value==0)?'disabled':''). ">$desc</option>\n";
|
951 |
|
952 |
?>
|
@@ -991,14 +983,13 @@ while( list($value,$desc) = each($explicit) )
|
|
991 |
<tr valign="top">
|
992 |
<th scope="row">
|
993 |
<?php echo __('iTunes Type', 'powerpress'); ?>
|
994 |
-
<?php echo powerpressadmin_new(); ?>
|
995 |
</th>
|
996 |
<td>
|
997 |
<select name="Feed[itunes_type]" class="bpp_input_med">
|
998 |
<?php
|
999 |
$types = array(''=> __('No option selected', 'powerpress'), 'episodic'=>__('Episodic (default)', 'powerpress'), 'serial'=>__('Serial', 'powerpress'));
|
1000 |
|
1001 |
-
|
1002 |
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_type']==$value?' selected':''). ">$desc</option>\n";
|
1003 |
|
1004 |
?>
|
133 |
$capnames = apply_filters( 'powerpress_admin_capabilities', array_unique($capnames) );
|
134 |
|
135 |
$remove_keys = array('level_0', 'level_1', 'level_2', 'level_3', 'level_4', 'level_5', 'level_6', 'level_7', 'level_8', 'level_9', 'level_10');
|
136 |
+
foreach( $remove_keys as $null=> $key )
|
137 |
unset($capnames[ $key ]);
|
138 |
asort($capnames);
|
139 |
return $capnames;
|
252 |
<div id="powerpress_settings_page" class="powerpress_tabbed_content">
|
253 |
<ul class="powerpress_settings_tabs">
|
254 |
<li><a href="#feed_tab_feed"><span><?php echo htmlspecialchars(__('Feed', 'powerpress')); ?></span></a></li>
|
255 |
+
<li><a href="#feed_tab_itunes"><span><?php echo htmlspecialchars(__('Apple', 'powerpress')); ?></span></a></li>
|
256 |
+
<li><a href="#feed_tab_googleplay"><span><?php echo htmlspecialchars(__('Google', 'powerpress')); ?></span></a></li>
|
257 |
<li><a href="#feed_tab_artwork"><span><?php echo htmlspecialchars(__('Artwork', 'powerpress')); ?></span></a></li>
|
258 |
<?php if( in_array($FeedAttribs['type'], array('category', 'ttid', 'post_type', 'channel') ) ) { ?>
|
259 |
<li><a href="#feed_tab_appearance"><span><?php echo htmlspecialchars(__('Website', 'powerpress')); ?></span></a></li>
|
391 |
else if( isset($General['custom_feeds'])&& is_array($General['custom_feeds']) )
|
392 |
$Feeds += $General['custom_feeds'];
|
393 |
|
394 |
+
foreach( $Feeds as $feed_slug=> $feed_title )
|
395 |
{
|
396 |
if( empty($feed_title) )
|
397 |
$feed_title = $feed_slug;
|
421 |
<th scope="row">
|
422 |
<?php echo __('Feed Discovery', 'powerpress'); ?></th>
|
423 |
<td>
|
424 |
+
<p style="margin-top: 10px;"><label><input type="checkbox" name="General[feed_links]" value="1" <?php if( !empty($General['feed_links']) && $General['feed_links'] == 1 ) echo 'checked '; ?>/> <?php echo __('Include podcast feed links in HTML headers.', 'powerpress'); ?></label></p>
|
425 |
<p><?php echo __('Adds "feed discovery" links to your web site\'s headers allowing web browsers and feed readers to auto-detect your podcast feeds.', 'powerpress'); ?></p>
|
426 |
</td>
|
427 |
</tr>
|
570 |
<?php } ?>
|
571 |
</td>
|
572 |
</tr>
|
573 |
+
<?php } // End not general settings ?>
|
574 |
|
575 |
<tr valign="top">
|
576 |
<th scope="row">
|
577 |
+
<?php echo __('PodcastMirror Feed URL', 'powerpress'); ?> <?php echo powerpressadmin_new(); ?><br />
|
578 |
+
<span style="font-size: 85%; margin-left: 5px;"><a href="https://podcastmirror.com" target="_blank"><?php echo __('learn more', 'powerpress'); ?></a></span>
|
579 |
</th>
|
580 |
<td>
|
581 |
<input type="text" name="Feed[feed_redirect_url]" style="width: 60%;" value="<?php echo esc_attr(!empty($FeedSettings['feed_redirect_url'])? $FeedSettings['feed_redirect_url']:''); ?>" maxlength="100" /> (<?php echo __('leave blank to use built-in feed', 'powerpress'); ?>)
|
582 |
+
<p><?php echo __('Use this option to mirror your podcast feed to provide fast, scalable subscriptions to your show. Service is FeedBurner compatible.', 'powerpress'); ?></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
583 |
<?php
|
584 |
$link = $feed_link;
|
585 |
if( strstr($link, '?') )
|
591 |
</td>
|
592 |
</tr>
|
593 |
|
|
|
|
|
594 |
<tr valign="top">
|
595 |
<th scope="row">
|
596 |
<?php echo __('Show the most recent', 'powerpress'); ?>
|
607 |
?>
|
608 |
<tr valign="top">
|
609 |
<th scope="row">
|
610 |
+
<?php echo __('Feed Episode Maximizer', 'powerpress'); ?>
|
611 |
</th>
|
612 |
<td>
|
613 |
<p><input type="checkbox" name="Feed[maximize_feed]" value="1" <?php if( !empty($FeedSettings['maximize_feed']) ) echo 'checked'; ?> />
|
629 |
$Languages = powerpress_languages();
|
630 |
|
631 |
echo '<option value="">'. __('Blog Default Language', 'powerpress') .'</option>';
|
632 |
+
foreach( $Languages as $value=> $desc )
|
633 |
echo "\t<option value=\"$value\"". ($FeedSettings['rss_language']==$value?' selected':''). ">". esc_attr($desc)."</option>\n";
|
634 |
?>
|
635 |
</select>
|
770 |
|
771 |
?>
|
772 |
|
773 |
+
<h3><?php echo __('Apple Settings', 'powerpress'); ?></h3>
|
774 |
<table class="form-table">
|
775 |
<tr valign="top">
|
776 |
<th scope="row">
|
853 |
|
854 |
echo '<option value="">'. __('Select Category', 'powerpress') .'</option>';
|
855 |
|
856 |
+
foreach( $Categories as $value=> $desc )
|
857 |
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_cat_1']==$value?' selected':''). ">".htmlspecialchars($desc)."</option>\n";
|
858 |
|
859 |
reset($Categories);
|
884 |
|
885 |
|
886 |
echo '<option value="">'. __('Select Category', 'powerpress') .'</option>';
|
887 |
+
foreach( $Categories as $value=> $desc )
|
888 |
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_cat_2']==$value?' selected':''). ">".htmlspecialchars($desc)."</option>\n";
|
889 |
|
890 |
reset($Categories);
|
909 |
<?php
|
910 |
|
911 |
echo '<option value="">'. __('Select Category', 'powerpress') .'</option>';
|
912 |
+
foreach( $Categories as $value=> $desc )
|
913 |
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_cat_3']==$value?' selected':''). ">".htmlspecialchars($desc)."</option>\n";
|
914 |
|
915 |
reset($Categories);
|
938 |
<?php
|
939 |
$explicit = array(0=> __('No option selected', 'powerpress'), 1=>__('Yes - explicit content', 'powerpress'), 2=>__('Clean - no explicit content', 'powerpress'));
|
940 |
|
941 |
+
foreach( $explicit as $value=> $desc )
|
942 |
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_explicit']==$value?' selected':''). (($FeedSettings['itunes_explicit']!=0&&$value==0)?'disabled':''). ">$desc</option>\n";
|
943 |
|
944 |
?>
|
983 |
<tr valign="top">
|
984 |
<th scope="row">
|
985 |
<?php echo __('iTunes Type', 'powerpress'); ?>
|
|
|
986 |
</th>
|
987 |
<td>
|
988 |
<select name="Feed[itunes_type]" class="bpp_input_med">
|
989 |
<?php
|
990 |
$types = array(''=> __('No option selected', 'powerpress'), 'episodic'=>__('Episodic (default)', 'powerpress'), 'serial'=>__('Serial', 'powerpress'));
|
991 |
|
992 |
+
foreach( $types as $value=> $desc )
|
993 |
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_type']==$value?' selected':''). ">$desc</option>\n";
|
994 |
|
995 |
?>
|
powerpressadmin-find-replace.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
$query = "SELECT meta_id, post_id, meta_key, meta_value FROM {$wpdb->postmeta} WHERE meta_key LIKE \"%enclosure\"";
|
12 |
$results_data = $wpdb->get_results($query, ARRAY_A);
|
13 |
|
14 |
-
|
15 |
{
|
16 |
list($url) = @explode("\n", $row['meta_value'], 2 );
|
17 |
$url = trim($url);
|
@@ -45,7 +45,7 @@
|
|
45 |
|
46 |
$FoundArray = powerpressadmin_find_replace_get_enclosures($FindReplace['find_string']);
|
47 |
|
48 |
-
|
49 |
{
|
50 |
// powerpress_get_post_meta
|
51 |
$meta_value = get_post_meta($row['post_id'], $row['meta_key'], true);
|
@@ -257,7 +257,7 @@ dt {
|
|
257 |
|
258 |
<ol>
|
259 |
<?php
|
260 |
-
|
261 |
{
|
262 |
$post_view_link = '<a href="' . get_permalink($row['post_id']) . '" target="_blank">' . get_the_title($row['post_id']) . '</a>';
|
263 |
$post_edit_link = '<a href="' . get_edit_post_link($row['post_id']) . '" target="_blank">' . __('Edit Post', 'powerpress') . '</a>';
|
11 |
$query = "SELECT meta_id, post_id, meta_key, meta_value FROM {$wpdb->postmeta} WHERE meta_key LIKE \"%enclosure\"";
|
12 |
$results_data = $wpdb->get_results($query, ARRAY_A);
|
13 |
|
14 |
+
foreach( $results_data as $index=> $row )
|
15 |
{
|
16 |
list($url) = @explode("\n", $row['meta_value'], 2 );
|
17 |
$url = trim($url);
|
45 |
|
46 |
$FoundArray = powerpressadmin_find_replace_get_enclosures($FindReplace['find_string']);
|
47 |
|
48 |
+
foreach( $FoundArray as $meta_id=> $row )
|
49 |
{
|
50 |
// powerpress_get_post_meta
|
51 |
$meta_value = get_post_meta($row['post_id'], $row['meta_key'], true);
|
257 |
|
258 |
<ol>
|
259 |
<?php
|
260 |
+
foreach( $FindReplaceResults as $meta_id=> $row )
|
261 |
{
|
262 |
$post_view_link = '<a href="' . get_permalink($row['post_id']) . '" target="_blank">' . get_the_title($row['post_id']) . '</a>';
|
263 |
$post_edit_link = '<a href="' . get_edit_post_link($row['post_id']) . '" target="_blank">' . __('Edit Post', 'powerpress') . '</a>';
|
powerpressadmin-jquery.php
CHANGED
@@ -186,7 +186,7 @@ function powerpress_admin_jquery_init()
|
|
186 |
{
|
187 |
$json_data = false;
|
188 |
$api_url_array = powerpress_get_api_array();
|
189 |
-
|
190 |
{
|
191 |
$req_url = sprintf('%s/media/%s/%s?format=json', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'], $DeleteFile );
|
192 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
@@ -209,7 +209,7 @@ function powerpress_admin_jquery_init()
|
|
209 |
|
210 |
$json_data = false;
|
211 |
$api_url_array = powerpress_get_api_array();
|
212 |
-
|
213 |
{
|
214 |
$req_url = sprintf('%s/media/%s/index.json?quota=true&published=true', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'] );
|
215 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
@@ -318,7 +318,7 @@ function DeleteMedia(File)
|
|
318 |
else if( is_array($results) )
|
319 |
{
|
320 |
$PublishedList = false;
|
321 |
-
|
322 |
{
|
323 |
if( $index === 'quota' )
|
324 |
{
|
@@ -486,7 +486,7 @@ function DeleteMedia(File)
|
|
486 |
$auth = base64_encode( $SaveSettings['blubrry_username'] . ':' . $Password );
|
487 |
$json_data = false;
|
488 |
$api_url_array = powerpress_get_api_array();
|
489 |
-
|
490 |
{
|
491 |
$req_url = sprintf('%s/service/index.json', rtrim($api_url, '/') );
|
492 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
|
@@ -524,7 +524,7 @@ function DeleteMedia(File)
|
|
524 |
else
|
525 |
{
|
526 |
// Get all the programs for this user...
|
527 |
-
|
528 |
{
|
529 |
$Programs[ $row['program_keyword'] ] = $row['program_title'];
|
530 |
if( $row['hosting'] === true || $row['hosting'] == 'true' )
|
@@ -556,7 +556,10 @@ function DeleteMedia(File)
|
|
556 |
}
|
557 |
else if( count($Programs) == 1 )
|
558 |
{
|
559 |
-
|
|
|
|
|
|
|
560 |
$SaveSettings['blubrry_program_keyword'] = $keyword;
|
561 |
$SaveSettings['blubrry_hosting'] = $ProgramHosting[ $keyword ];
|
562 |
if( !is_bool($SaveSettings['blubrry_hosting']) )
|
@@ -698,7 +701,7 @@ jQuery(document).ready(function($) {
|
|
698 |
<select id="blubrry_program_keyword" name="Settings[blubrry_program_keyword]">
|
699 |
<option value=""><?php echo __('Select Program', 'powerpress'); ?></option>
|
700 |
<?php
|
701 |
-
|
702 |
echo "\t<option value=\"$value\"". ($Settings['blubrry_program_keyword']==$value?' selected':''). ">$desc</option>\n";
|
703 |
?>
|
704 |
</select>
|
@@ -750,7 +753,7 @@ while( list($value,$desc) = each($Programs) )
|
|
750 |
{
|
751 |
$json_data = false;
|
752 |
$api_url_array = powerpress_get_api_array();
|
753 |
-
|
754 |
{
|
755 |
$req_url = sprintf('%s/media/%s/upload_session.json', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'] );
|
756 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
|
186 |
{
|
187 |
$json_data = false;
|
188 |
$api_url_array = powerpress_get_api_array();
|
189 |
+
foreach( $api_url_array as $index => $api_url )
|
190 |
{
|
191 |
$req_url = sprintf('%s/media/%s/%s?format=json', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'], $DeleteFile );
|
192 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
209 |
|
210 |
$json_data = false;
|
211 |
$api_url_array = powerpress_get_api_array();
|
212 |
+
foreach( $api_url_array as $index => $api_url )
|
213 |
{
|
214 |
$req_url = sprintf('%s/media/%s/index.json?quota=true&published=true', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'] );
|
215 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
318 |
else if( is_array($results) )
|
319 |
{
|
320 |
$PublishedList = false;
|
321 |
+
foreach( $results as $index => $data )
|
322 |
{
|
323 |
if( $index === 'quota' )
|
324 |
{
|
486 |
$auth = base64_encode( $SaveSettings['blubrry_username'] . ':' . $Password );
|
487 |
$json_data = false;
|
488 |
$api_url_array = powerpress_get_api_array();
|
489 |
+
foreach( $api_url_array as $index => $api_url )
|
490 |
{
|
491 |
$req_url = sprintf('%s/service/index.json', rtrim($api_url, '/') );
|
492 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
|
524 |
else
|
525 |
{
|
526 |
// Get all the programs for this user...
|
527 |
+
foreach( $results as $null => $row )
|
528 |
{
|
529 |
$Programs[ $row['program_keyword'] ] = $row['program_title'];
|
530 |
if( $row['hosting'] === true || $row['hosting'] == 'true' )
|
556 |
}
|
557 |
else if( count($Programs) == 1 )
|
558 |
{
|
559 |
+
foreach( $Programs as $keyword => $title ) {
|
560 |
+
break;
|
561 |
+
}
|
562 |
+
|
563 |
$SaveSettings['blubrry_program_keyword'] = $keyword;
|
564 |
$SaveSettings['blubrry_hosting'] = $ProgramHosting[ $keyword ];
|
565 |
if( !is_bool($SaveSettings['blubrry_hosting']) )
|
701 |
<select id="blubrry_program_keyword" name="Settings[blubrry_program_keyword]">
|
702 |
<option value=""><?php echo __('Select Program', 'powerpress'); ?></option>
|
703 |
<?php
|
704 |
+
foreach( $Programs as $value => $desc )
|
705 |
echo "\t<option value=\"$value\"". ($Settings['blubrry_program_keyword']==$value?' selected':''). ">$desc</option>\n";
|
706 |
?>
|
707 |
</select>
|
753 |
{
|
754 |
$json_data = false;
|
755 |
$api_url_array = powerpress_get_api_array();
|
756 |
+
foreach( $api_url_array as $index => $api_url )
|
757 |
{
|
758 |
$req_url = sprintf('%s/media/%s/upload_session.json', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'] );
|
759 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
|
powerpressadmin-metabox.php
CHANGED
@@ -404,7 +404,7 @@ function powerpress_meta_box($object, $box)
|
|
404 |
<?php
|
405 |
$type_array = array(''=>__('Full (default)', 'powerpress'), 'full'=>__('Full', 'powerpress'),'trailer'=>__('Trailer', 'powerpress'), 'bonus'=>__('Bonus', 'powerpress') );
|
406 |
|
407 |
-
|
408 |
echo "\t<option value=\"$value\"". ($ExtraData['episode_type']==$value?' selected':''). ">$desc</option>\n";
|
409 |
unset($cc_array);
|
410 |
?>
|
@@ -525,7 +525,7 @@ unset($cc_array);
|
|
525 |
<?php
|
526 |
$explicit_array = array(''=>__('Use feed\'s explicit setting', 'powerpress'), 0=>__('no - display nothing', 'powerpress'), 1=>__('yes - explicit content', 'powerpress'), 2=>__('clean - no explicit content', 'powerpress') );
|
527 |
|
528 |
-
|
529 |
echo "\t<option value=\"$value\"". ($iTunesExplicit==$value?' selected':''). ">$desc</option>\n";
|
530 |
|
531 |
?>
|
@@ -545,7 +545,7 @@ while( list($value,$desc) = each($explicit_array) )
|
|
545 |
<?php
|
546 |
$explicit_array = array(''=>__('Use feed\'s explicit setting', 'powerpress'), 0=>__('no - display nothing', 'powerpress'), 1=>__('yes - explicit content', 'powerpress') );
|
547 |
|
548 |
-
|
549 |
echo "\t<option value=\"$value\"". ($GooglePlayExplicit==$value?' selected':''). ">$desc</option>\n";
|
550 |
|
551 |
?>
|
@@ -566,7 +566,7 @@ while( list($value,$desc) = each($explicit_array) )
|
|
566 |
<?php
|
567 |
$cc_array = array(''=>__('No Closed Captioning', 'powerpress'), 1=>__('Yes, Closed Captioned media', 'powerpress') );
|
568 |
|
569 |
-
|
570 |
echo "\t<option value=\"$value\"". ($iTunesCC==$value?' selected':''). ">$desc</option>\n";
|
571 |
unset($cc_array);
|
572 |
?>
|
@@ -617,7 +617,7 @@ unset($cc_array);
|
|
617 |
<?php
|
618 |
$block_array = array(''=>__('No', 'powerpress'), 1=>__('Yes, Block episode from iTunes', 'powerpress') );
|
619 |
|
620 |
-
|
621 |
echo "\t<option value=\"$value\"". ($iTunesBlock==$value?' selected':''). ">$desc</option>\n";
|
622 |
unset($block_array);
|
623 |
?>
|
@@ -635,9 +635,9 @@ unset($block_array);
|
|
635 |
<div class="powerpress_row_content">
|
636 |
<select id="powerpress_block_<?php echo $FeedSlug; ?>" name="Powerpress[<?php echo $FeedSlug; ?>][gp_block]" style="width: 220px;">
|
637 |
<?php
|
638 |
-
$block_array = array(''=>__('No', 'powerpress'), 1=>__('Yes, Block episode from Google
|
639 |
|
640 |
-
|
641 |
echo "\t<option value=\"$value\"". ($GooglePlayBlock==$value?' selected':''). ">$desc</option>\n";
|
642 |
unset($block_array);
|
643 |
?>
|
@@ -670,8 +670,9 @@ unset($block_array);
|
|
670 |
$cur_cat_id = intval(!empty($ExtraData['category'])?$ExtraData['category']:0);
|
671 |
if( count($GeneralSettings['custom_cat_feeds']) == 1 ) // Lets auto select the category
|
672 |
{
|
673 |
-
|
674 |
-
|
|
|
675 |
reset($GeneralSettings['custom_cat_feeds']);
|
676 |
}
|
677 |
|
@@ -683,7 +684,7 @@ unset($block_array);
|
|
683 |
echo '<option value="0"';
|
684 |
echo '>' . esc_html( __('Select category', 'powerpress') ) . '</option>' . "\n";
|
685 |
|
686 |
-
|
687 |
$catObj = get_category( $cat_id );
|
688 |
if( empty($catObj->name ) )
|
689 |
continue; // Do not allow empty categories forward
|
404 |
<?php
|
405 |
$type_array = array(''=>__('Full (default)', 'powerpress'), 'full'=>__('Full', 'powerpress'),'trailer'=>__('Trailer', 'powerpress'), 'bonus'=>__('Bonus', 'powerpress') );
|
406 |
|
407 |
+
foreach( $type_array as $value => $desc )
|
408 |
echo "\t<option value=\"$value\"". ($ExtraData['episode_type']==$value?' selected':''). ">$desc</option>\n";
|
409 |
unset($cc_array);
|
410 |
?>
|
525 |
<?php
|
526 |
$explicit_array = array(''=>__('Use feed\'s explicit setting', 'powerpress'), 0=>__('no - display nothing', 'powerpress'), 1=>__('yes - explicit content', 'powerpress'), 2=>__('clean - no explicit content', 'powerpress') );
|
527 |
|
528 |
+
foreach( $explicit_array as $value => $desc )
|
529 |
echo "\t<option value=\"$value\"". ($iTunesExplicit==$value?' selected':''). ">$desc</option>\n";
|
530 |
|
531 |
?>
|
545 |
<?php
|
546 |
$explicit_array = array(''=>__('Use feed\'s explicit setting', 'powerpress'), 0=>__('no - display nothing', 'powerpress'), 1=>__('yes - explicit content', 'powerpress') );
|
547 |
|
548 |
+
foreach( $explicit_array as $value => $desc )
|
549 |
echo "\t<option value=\"$value\"". ($GooglePlayExplicit==$value?' selected':''). ">$desc</option>\n";
|
550 |
|
551 |
?>
|
566 |
<?php
|
567 |
$cc_array = array(''=>__('No Closed Captioning', 'powerpress'), 1=>__('Yes, Closed Captioned media', 'powerpress') );
|
568 |
|
569 |
+
foreach( $cc_array as $value => $desc )
|
570 |
echo "\t<option value=\"$value\"". ($iTunesCC==$value?' selected':''). ">$desc</option>\n";
|
571 |
unset($cc_array);
|
572 |
?>
|
617 |
<?php
|
618 |
$block_array = array(''=>__('No', 'powerpress'), 1=>__('Yes, Block episode from iTunes', 'powerpress') );
|
619 |
|
620 |
+
foreach( $block_array as $value => $desc )
|
621 |
echo "\t<option value=\"$value\"". ($iTunesBlock==$value?' selected':''). ">$desc</option>\n";
|
622 |
unset($block_array);
|
623 |
?>
|
635 |
<div class="powerpress_row_content">
|
636 |
<select id="powerpress_block_<?php echo $FeedSlug; ?>" name="Powerpress[<?php echo $FeedSlug; ?>][gp_block]" style="width: 220px;">
|
637 |
<?php
|
638 |
+
$block_array = array(''=>__('No', 'powerpress'), 1=>__('Yes, Block episode from Google Podcasts', 'powerpress') );
|
639 |
|
640 |
+
foreach( $block_array as $value => $desc )
|
641 |
echo "\t<option value=\"$value\"". ($GooglePlayBlock==$value?' selected':''). ">$desc</option>\n";
|
642 |
unset($block_array);
|
643 |
?>
|
670 |
$cur_cat_id = intval(!empty($ExtraData['category'])?$ExtraData['category']:0);
|
671 |
if( count($GeneralSettings['custom_cat_feeds']) == 1 ) // Lets auto select the category
|
672 |
{
|
673 |
+
foreach( $GeneralSettings['custom_cat_feeds'] as $null => $cur_cat_id ) {
|
674 |
+
break;
|
675 |
+
}
|
676 |
reset($GeneralSettings['custom_cat_feeds']);
|
677 |
}
|
678 |
|
684 |
echo '<option value="0"';
|
685 |
echo '>' . esc_html( __('Select category', 'powerpress') ) . '</option>' . "\n";
|
686 |
|
687 |
+
foreach( $GeneralSettings['custom_cat_feeds'] as $null => $cat_id ) {
|
688 |
$catObj = get_category( $cat_id );
|
689 |
if( empty($catObj->name ) )
|
690 |
continue; // Do not allow empty categories forward
|
powerpressadmin-metamarks.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
$Episodes = ( !empty($_POST['Powerpress']) ? $_POST['Powerpress'] : false);
|
8 |
if( $Episodes )
|
9 |
{
|
10 |
-
|
11 |
{
|
12 |
$field = '_'.$feed_slug.':metamarks';
|
13 |
|
@@ -25,14 +25,14 @@
|
|
25 |
{
|
26 |
$MetaMarkData = $MetaMarks[ $feed_slug ];
|
27 |
// Loop through, and convert position and duration to seconds, if specified with 00:00:00
|
28 |
-
|
29 |
{
|
30 |
$MetaMarkData[ $index ]['position'] = powerpress_raw_duration( $row['position'] );
|
31 |
$MetaMarkData[ $index ]['duration'] = powerpress_raw_duration( $row['duration'] );
|
32 |
}
|
33 |
reset($MetaMarkData);
|
34 |
|
35 |
-
|
36 |
{
|
37 |
if( empty($MetaMarkData[ $index ]['type']) && empty($MetaMarkData[ $index ]['position']) && empty($MetaMarkData[ $index ]['duration']) && empty($MetaMarkData[ $index ]['link']) && empty($MetaMarkData[ $index ]['value']) )
|
38 |
{
|
@@ -87,7 +87,7 @@
|
|
87 |
|
88 |
$html .= '<div class="powerpress_metamarks_block" id="powerpress_metamarks_block_' . $feed_slug .'">';
|
89 |
$index = 0;
|
90 |
-
|
91 |
{
|
92 |
$html .= powerpress_metamarks_editrow_html($feed_slug, $index, $row);
|
93 |
$index++;
|
@@ -266,7 +266,7 @@ function powerpress_metamarks_deleterow(div)
|
|
266 |
function powerpress_metamarks_print_rss2($episode_data)
|
267 |
{
|
268 |
$MetaRecords = powerpress_metamarks_get($episode_data['id'], $episode_data['feed'] );
|
269 |
-
|
270 |
{
|
271 |
echo "\t\t";
|
272 |
echo '<rawvoice:metamark type="'. esc_attr($MetaMark['type']) .'"';
|
7 |
$Episodes = ( !empty($_POST['Powerpress']) ? $_POST['Powerpress'] : false);
|
8 |
if( $Episodes )
|
9 |
{
|
10 |
+
foreach( $Episodes as $feed_slug => $Powerpress )
|
11 |
{
|
12 |
$field = '_'.$feed_slug.':metamarks';
|
13 |
|
25 |
{
|
26 |
$MetaMarkData = $MetaMarks[ $feed_slug ];
|
27 |
// Loop through, and convert position and duration to seconds, if specified with 00:00:00
|
28 |
+
foreach( $MetaMarkData as $index => $row )
|
29 |
{
|
30 |
$MetaMarkData[ $index ]['position'] = powerpress_raw_duration( $row['position'] );
|
31 |
$MetaMarkData[ $index ]['duration'] = powerpress_raw_duration( $row['duration'] );
|
32 |
}
|
33 |
reset($MetaMarkData);
|
34 |
|
35 |
+
foreach( $MetaMarkData as $index => $row )
|
36 |
{
|
37 |
if( empty($MetaMarkData[ $index ]['type']) && empty($MetaMarkData[ $index ]['position']) && empty($MetaMarkData[ $index ]['duration']) && empty($MetaMarkData[ $index ]['link']) && empty($MetaMarkData[ $index ]['value']) )
|
38 |
{
|
87 |
|
88 |
$html .= '<div class="powerpress_metamarks_block" id="powerpress_metamarks_block_' . $feed_slug .'">';
|
89 |
$index = 0;
|
90 |
+
foreach( $MetaRecords as $key => $row )
|
91 |
{
|
92 |
$html .= powerpress_metamarks_editrow_html($feed_slug, $index, $row);
|
93 |
$index++;
|
266 |
function powerpress_metamarks_print_rss2($episode_data)
|
267 |
{
|
268 |
$MetaRecords = powerpress_metamarks_get($episode_data['id'], $episode_data['feed'] );
|
269 |
+
foreach( $MetaRecords as $index => $MetaMark )
|
270 |
{
|
271 |
echo "\t\t";
|
272 |
echo '<rawvoice:metamark type="'. esc_attr($MetaMark['type']) .'"';
|
powerpressadmin-migrate.php
CHANGED
@@ -52,7 +52,7 @@ function powerpress_admin_migrate_get_files($clean=false, $exclude_blubrry=true)
|
|
52 |
$results_data = $wpdb->get_results($query, ARRAY_A);
|
53 |
if( $results_data )
|
54 |
{
|
55 |
-
|
56 |
{
|
57 |
$meta_id = $row['meta_id'];
|
58 |
$EpisodeData = powerpress_get_enclosure_data($row['post_id'], 'podcast', $row['meta_value'], false); // Get the enclosure data with no redirect added
|
@@ -84,7 +84,7 @@ function powepress_admin_migrate_add_urls($urls)
|
|
84 |
|
85 |
$json_data = false;
|
86 |
$api_url_array = powerpress_get_api_array();
|
87 |
-
|
88 |
{
|
89 |
$req_url = sprintf('%s/media/%s/migrate_add.json', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']) );
|
90 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
@@ -139,7 +139,7 @@ function powerpress_admin_migrate_get_status()
|
|
139 |
|
140 |
$json_data = false;
|
141 |
$api_url_array = powerpress_get_api_array();
|
142 |
-
|
143 |
{
|
144 |
$req_url = sprintf('%s/media/%s/migrate_status.json?status=summary&simple=true', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'] );
|
145 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
@@ -191,7 +191,7 @@ function powerpress_admin_migrate_get_migrated_by_status($status='migrated')
|
|
191 |
|
192 |
$json_data = false;
|
193 |
$api_url_array = powerpress_get_api_array();
|
194 |
-
|
195 |
{
|
196 |
$req_url = sprintf('%s/media/%s/migrate_status.json?status=%s&limit=10000&simple=true', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'], urlencode($status) );
|
197 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
@@ -302,7 +302,7 @@ function powerpress_admin_migrate_request()
|
|
302 |
$FoundCount = 0;
|
303 |
if( !empty($QueuedEpisodes) )
|
304 |
{
|
305 |
-
|
306 |
{
|
307 |
if( $row['status'] != 'completed' ) // Not migrated
|
308 |
continue;
|
@@ -319,7 +319,7 @@ function powerpress_admin_migrate_request()
|
|
319 |
$FoundCount++;
|
320 |
$GLOBALS['g_powerpress_total_files_found']++;
|
321 |
|
322 |
-
|
323 |
{
|
324 |
// Get the post meta
|
325 |
$meta_object = get_metadata_by_mid('post', $meta_id);
|
@@ -419,7 +419,7 @@ function powerpress_admin_extension_counts()
|
|
419 |
{
|
420 |
$files = powerpress_admin_migrate_get_files(true, false);
|
421 |
$extensions = array(); // 'blubrry'=>0, 'mp3'=>0, 'm4a'=>0, 'mp4'=>0, 'm4v'=>0, '*'=>0 );
|
422 |
-
|
423 |
{
|
424 |
$extension = '*';
|
425 |
|
@@ -442,7 +442,7 @@ function powerpress_admin_queue_files($extensions=array() )
|
|
442 |
{
|
443 |
$add_urls = '';
|
444 |
$extensions_preg_match = '';
|
445 |
-
|
446 |
{
|
447 |
if( $extension == '*' )
|
448 |
{
|
@@ -473,7 +473,7 @@ function powerpress_admin_queue_files($extensions=array() )
|
|
473 |
$AddedCount = 0;;
|
474 |
$AlreadyAddedCount = 0;
|
475 |
|
476 |
-
|
477 |
{
|
478 |
$parts = pathinfo($row['src_url']);
|
479 |
if( preg_match('/('.$extensions_preg_match.')/i', $parts['extension']) )
|
@@ -544,7 +544,7 @@ function powerpress_admin_migrate_step1()
|
|
544 |
<?php
|
545 |
}
|
546 |
$types = array('mp3', 'm4a', 'mp4', 'm4v', 'mov', '*', 'blubrry');
|
547 |
-
|
548 |
{
|
549 |
if( empty($GLOBALS['powerpress_migrate_stats'][$extension]) )
|
550 |
continue;
|
@@ -586,7 +586,7 @@ function powerpress_admin_migrate_step1()
|
|
586 |
function powerpress_admin_migrate_find_in_results(&$results, $src_url)
|
587 |
{
|
588 |
$found = false;
|
589 |
-
|
590 |
{
|
591 |
if( $row['source_url'] == $src_url )
|
592 |
{
|
@@ -658,7 +658,7 @@ table.powerpress-migration-table tr:hover {
|
|
658 |
<th class="powerpress-migrate-e"><?php echo __('Episode Updated', 'powerpress'); ?></th>
|
659 |
</tr>
|
660 |
<?php
|
661 |
-
|
662 |
{
|
663 |
$status = __('Requested', 'powerpress');
|
664 |
$updated = '-';
|
52 |
$results_data = $wpdb->get_results($query, ARRAY_A);
|
53 |
if( $results_data )
|
54 |
{
|
55 |
+
foreach( $results_data as $null => $row )
|
56 |
{
|
57 |
$meta_id = $row['meta_id'];
|
58 |
$EpisodeData = powerpress_get_enclosure_data($row['post_id'], 'podcast', $row['meta_value'], false); // Get the enclosure data with no redirect added
|
84 |
|
85 |
$json_data = false;
|
86 |
$api_url_array = powerpress_get_api_array();
|
87 |
+
foreach( $api_url_array as $index => $api_url )
|
88 |
{
|
89 |
$req_url = sprintf('%s/media/%s/migrate_add.json', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']) );
|
90 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
139 |
|
140 |
$json_data = false;
|
141 |
$api_url_array = powerpress_get_api_array();
|
142 |
+
foreach( $api_url_array as $index => $api_url )
|
143 |
{
|
144 |
$req_url = sprintf('%s/media/%s/migrate_status.json?status=summary&simple=true', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'] );
|
145 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
191 |
|
192 |
$json_data = false;
|
193 |
$api_url_array = powerpress_get_api_array();
|
194 |
+
foreach( $api_url_array as $index => $api_url )
|
195 |
{
|
196 |
$req_url = sprintf('%s/media/%s/migrate_status.json?status=%s&limit=10000&simple=true', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'], urlencode($status) );
|
197 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
302 |
$FoundCount = 0;
|
303 |
if( !empty($QueuedEpisodes) )
|
304 |
{
|
305 |
+
foreach( $URLs['results'] as $index => $row )
|
306 |
{
|
307 |
if( $row['status'] != 'completed' ) // Not migrated
|
308 |
continue;
|
319 |
$FoundCount++;
|
320 |
$GLOBALS['g_powerpress_total_files_found']++;
|
321 |
|
322 |
+
foreach( $found as $null => $meta_id )
|
323 |
{
|
324 |
// Get the post meta
|
325 |
$meta_object = get_metadata_by_mid('post', $meta_id);
|
419 |
{
|
420 |
$files = powerpress_admin_migrate_get_files(true, false);
|
421 |
$extensions = array(); // 'blubrry'=>0, 'mp3'=>0, 'm4a'=>0, 'mp4'=>0, 'm4v'=>0, '*'=>0 );
|
422 |
+
foreach( $files as $meta_id => $row )
|
423 |
{
|
424 |
$extension = '*';
|
425 |
|
442 |
{
|
443 |
$add_urls = '';
|
444 |
$extensions_preg_match = '';
|
445 |
+
foreach( $extensions as $extension => $null )
|
446 |
{
|
447 |
if( $extension == '*' )
|
448 |
{
|
473 |
$AddedCount = 0;;
|
474 |
$AlreadyAddedCount = 0;
|
475 |
|
476 |
+
foreach( $files as $meta_id => $row )
|
477 |
{
|
478 |
$parts = pathinfo($row['src_url']);
|
479 |
if( preg_match('/('.$extensions_preg_match.')/i', $parts['extension']) )
|
544 |
<?php
|
545 |
}
|
546 |
$types = array('mp3', 'm4a', 'mp4', 'm4v', 'mov', '*', 'blubrry');
|
547 |
+
foreach( $types as $null => $extension )
|
548 |
{
|
549 |
if( empty($GLOBALS['powerpress_migrate_stats'][$extension]) )
|
550 |
continue;
|
586 |
function powerpress_admin_migrate_find_in_results(&$results, $src_url)
|
587 |
{
|
588 |
$found = false;
|
589 |
+
foreach( $results as $index => $row )
|
590 |
{
|
591 |
if( $row['source_url'] == $src_url )
|
592 |
{
|
658 |
<th class="powerpress-migrate-e"><?php echo __('Episode Updated', 'powerpress'); ?></th>
|
659 |
</tr>
|
660 |
<?php
|
661 |
+
foreach( $QueuedResults as $meta_id => $url )
|
662 |
{
|
663 |
$status = __('Requested', 'powerpress');
|
664 |
$updated = '-';
|
powerpressadmin-mt.php
CHANGED
@@ -20,7 +20,7 @@ if( !function_exists('add_action') )
|
|
20 |
$results_data = $wpdb->get_results($query, ARRAY_A); // This could return a lot of data...
|
21 |
if( $results_data )
|
22 |
{
|
23 |
-
|
24 |
{
|
25 |
$Media = powerpressadmin_mt_media_from_content($row['post_content']);
|
26 |
if( count($Media) == 0 )
|
@@ -31,7 +31,7 @@ if( !function_exists('add_action') )
|
|
31 |
$return[ $row['ID'] ] = array();
|
32 |
$return[ $row['ID'] ]['post_title'] = $row['post_title'];
|
33 |
$return[ $row['ID'] ]['post_date'] = $row['post_date'];
|
34 |
-
|
35 |
$return[ $row['ID'] ]['enclosures'][$index]['url'] = $url;
|
36 |
}
|
37 |
}
|
@@ -128,7 +128,7 @@ if( !function_exists('add_action') )
|
|
128 |
$any = $ltrs . $gunk . $punc;
|
129 |
|
130 |
preg_match_all( "{\b http : [$any] +? (?= [$punc] * [^$any] | $)}x", $content, $post_links_temp );
|
131 |
-
|
132 |
{
|
133 |
if( powerpressadmin_mt_is_media($url) )
|
134 |
{
|
@@ -161,9 +161,9 @@ if( !function_exists('add_action') )
|
|
161 |
$Mp3Info->SetDownloadBytesLimit(POWERPRESS_DOWNLOAD_BYTE_LIMIT);
|
162 |
}
|
163 |
|
164 |
-
|
165 |
{
|
166 |
-
|
167 |
{
|
168 |
if( $feed_slug == '' )
|
169 |
continue; // User decoded not to import this one..
|
@@ -315,7 +315,7 @@ if( !function_exists('add_action') )
|
|
315 |
|
316 |
if( !empty($Settings['custom_feeds']) && is_array($Settings['custom_feeds']) )
|
317 |
{
|
318 |
-
|
319 |
{
|
320 |
if( $feed_slug != 'podcast' )
|
321 |
$data['feed-'.$feed_slug] = __('Feed', 'powerpress') .': ('.$feed_slug.')';
|
@@ -494,7 +494,7 @@ else
|
|
494 |
$MaxFileIndex = 1;
|
495 |
|
496 |
$count = 0;
|
497 |
-
|
498 |
{
|
499 |
$edit_link = get_edit_post_link( $post_id );
|
500 |
if( $post_id == 'feeds_required' )
|
@@ -506,7 +506,7 @@ else
|
|
506 |
|
507 |
if( is_array($Settings['custom_feeds']) )
|
508 |
{
|
509 |
-
|
510 |
{
|
511 |
if( $feed_slug == 'podcast' )
|
512 |
$enclosure_data = get_post_meta($post_id, 'enclosure', true);
|
@@ -524,7 +524,7 @@ else
|
|
524 |
}
|
525 |
|
526 |
$found = false;
|
527 |
-
|
528 |
{
|
529 |
if( $episode_data['url'] == $CurrentEnclosures[ $feed_slug ]['url'] )
|
530 |
{
|
@@ -584,7 +584,7 @@ else
|
|
584 |
echo '</strong><br />';
|
585 |
echo '<div style="margin-left: 10px;">';
|
586 |
$index = 1;
|
587 |
-
|
588 |
{
|
589 |
if( $index > $MaxFileIndex )
|
590 |
$MaxFileIndex = $index;
|
@@ -651,7 +651,7 @@ else
|
|
651 |
if( isset($CurrentEnclosures[$feed_slug]) && $CurrentEnclosures[$feed_slug]['imported'] )
|
652 |
{
|
653 |
$index = 1;
|
654 |
-
|
655 |
{
|
656 |
echo "File $index: ";
|
657 |
if( $CurrentEnclosures[$feed_slug]['url'] == $episode_data['url'] )
|
@@ -671,7 +671,7 @@ else
|
|
671 |
else
|
672 |
{
|
673 |
$index = 1;
|
674 |
-
|
675 |
{
|
676 |
echo "File $index: ";
|
677 |
if( !empty($episode_data['imported']) )
|
@@ -731,7 +731,7 @@ else
|
|
731 |
<p style="margin: 0 0 0 40px; padding: 0;">
|
732 |
<?php echo __('File', 'powerpress'); ?> <?php echo ($number+1); ?>:
|
733 |
<?php
|
734 |
-
|
735 |
{
|
736 |
echo '<a href="javascript:void()" onclick="select_all('. $number .',\''. $feed_slug .'\');return false;">'. htmlspecialchars($feed_title) .'</a> | ';
|
737 |
}
|
@@ -746,7 +746,7 @@ else
|
|
746 |
<?php
|
747 |
$comma = false;
|
748 |
global $g_import_mt_extensions;
|
749 |
-
|
750 |
{
|
751 |
if( $comma )
|
752 |
echo ', ';
|
20 |
$results_data = $wpdb->get_results($query, ARRAY_A); // This could return a lot of data...
|
21 |
if( $results_data )
|
22 |
{
|
23 |
+
foreach( $results_data as $null => $row )
|
24 |
{
|
25 |
$Media = powerpressadmin_mt_media_from_content($row['post_content']);
|
26 |
if( count($Media) == 0 )
|
31 |
$return[ $row['ID'] ] = array();
|
32 |
$return[ $row['ID'] ]['post_title'] = $row['post_title'];
|
33 |
$return[ $row['ID'] ]['post_date'] = $row['post_date'];
|
34 |
+
foreach( $Media as $index => $url )
|
35 |
$return[ $row['ID'] ]['enclosures'][$index]['url'] = $url;
|
36 |
}
|
37 |
}
|
128 |
$any = $ltrs . $gunk . $punc;
|
129 |
|
130 |
preg_match_all( "{\b http : [$any] +? (?= [$punc] * [^$any] | $)}x", $content, $post_links_temp );
|
131 |
+
foreach( $post_links_temp[0] as $null => $url )
|
132 |
{
|
133 |
if( powerpressadmin_mt_is_media($url) )
|
134 |
{
|
161 |
$Mp3Info->SetDownloadBytesLimit(POWERPRESS_DOWNLOAD_BYTE_LIMIT);
|
162 |
}
|
163 |
|
164 |
+
foreach( $Import as $post_id => $episode_feeds )
|
165 |
{
|
166 |
+
foreach( $episode_feeds as $media_index => $feed_slug )
|
167 |
{
|
168 |
if( $feed_slug == '' )
|
169 |
continue; // User decoded not to import this one..
|
315 |
|
316 |
if( !empty($Settings['custom_feeds']) && is_array($Settings['custom_feeds']) )
|
317 |
{
|
318 |
+
foreach( $Settings['custom_feeds'] as $feed_slug => $value )
|
319 |
{
|
320 |
if( $feed_slug != 'podcast' )
|
321 |
$data['feed-'.$feed_slug] = __('Feed', 'powerpress') .': ('.$feed_slug.')';
|
494 |
$MaxFileIndex = 1;
|
495 |
|
496 |
$count = 0;
|
497 |
+
foreach( $results as $post_id => $import_data )
|
498 |
{
|
499 |
$edit_link = get_edit_post_link( $post_id );
|
500 |
if( $post_id == 'feeds_required' )
|
506 |
|
507 |
if( is_array($Settings['custom_feeds']) )
|
508 |
{
|
509 |
+
foreach( $Settings['custom_feeds'] as $feed_slug => $value )
|
510 |
{
|
511 |
if( $feed_slug == 'podcast' )
|
512 |
$enclosure_data = get_post_meta($post_id, 'enclosure', true);
|
524 |
}
|
525 |
|
526 |
$found = false;
|
527 |
+
foreach( $import_data['enclosures'] as $episode_index => $episode_data )
|
528 |
{
|
529 |
if( $episode_data['url'] == $CurrentEnclosures[ $feed_slug ]['url'] )
|
530 |
{
|
584 |
echo '</strong><br />';
|
585 |
echo '<div style="margin-left: 10px;">';
|
586 |
$index = 1;
|
587 |
+
foreach( $import_data['enclosures'] as $episode_index => $episode_data )
|
588 |
{
|
589 |
if( $index > $MaxFileIndex )
|
590 |
$MaxFileIndex = $index;
|
651 |
if( isset($CurrentEnclosures[$feed_slug]) && $CurrentEnclosures[$feed_slug]['imported'] )
|
652 |
{
|
653 |
$index = 1;
|
654 |
+
foreach( $import_data['enclosures'] as $episode_index => $episode_data )
|
655 |
{
|
656 |
echo "File $index: ";
|
657 |
if( $CurrentEnclosures[$feed_slug]['url'] == $episode_data['url'] )
|
671 |
else
|
672 |
{
|
673 |
$index = 1;
|
674 |
+
foreach( $import_data['enclosures'] as $episode_index => $episode_data )
|
675 |
{
|
676 |
echo "File $index: ";
|
677 |
if( !empty($episode_data['imported']) )
|
731 |
<p style="margin: 0 0 0 40px; padding: 0;">
|
732 |
<?php echo __('File', 'powerpress'); ?> <?php echo ($number+1); ?>:
|
733 |
<?php
|
734 |
+
foreach( $Settings['custom_feeds'] as $feed_slug => $feed_title )
|
735 |
{
|
736 |
echo '<a href="javascript:void()" onclick="select_all('. $number .',\''. $feed_slug .'\');return false;">'. htmlspecialchars($feed_title) .'</a> | ';
|
737 |
}
|
746 |
<?php
|
747 |
$comma = false;
|
748 |
global $g_import_mt_extensions;
|
749 |
+
foreach( $g_import_mt_extensions as $ext => $null )
|
750 |
{
|
751 |
if( $comma )
|
752 |
echo ', ';
|
powerpressadmin-notifications.php
CHANGED
@@ -53,7 +53,7 @@ class PowerPress_Notification_Manager {
|
|
53 |
|
54 |
public function all_admin_notices()
|
55 |
{
|
56 |
-
|
57 |
{
|
58 |
echo $notification->get_notification_as_string();
|
59 |
}
|
@@ -164,35 +164,61 @@ function powerpressadmin_notifications_appropriate()
|
|
164 |
}
|
165 |
|
166 |
if( powerpressadmin_notifications_appropriate() ) {
|
167 |
-
|
168 |
|
169 |
// e.g. usage
|
170 |
-
|
171 |
-
if( !$PowerPressNotificationManager->dismissed_status('
|
172 |
|
173 |
$message = '';
|
174 |
-
$message .= '<
|
175 |
-
$message .= __('
|
176 |
-
$message .= '</
|
177 |
-
|
178 |
-
$message .= '
|
179 |
-
$message .= '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
$message .= "\n\n";
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
$message .= __('Apple has changed the iTunes explicit setting. <strong>You <i>must</i> now select "clean" or "explicit"</strong> - the \'no\' option is no longer available', 'powerpress');
|
182 |
$message .= ' — <a href="'. admin_url("admin.php?page=powerpressadmin_basic#tab5") .'">'. __('Update Now', 'powerpress') .'</a>';
|
183 |
$message .= ' | <a href="http://www.powerpresspodcast.com/2016/02/19/new-itunes-podcast-directory-recommendations-february-2016/" target="_blank">'. __('Learn More', 'powerpress') .'</a>';
|
184 |
$message .= "\n\n";
|
185 |
-
$message .= __('Podcast submissions to the iTunes podcast directory are now managed by the new <a href="https://podcastsconnect.apple.com/" target="_blank">Podcast Connect</a> website. The new website allows you to submit new podcasts, as well as refresh, hide and delete your current podcast listings.', 'powerpress');
|
|
|
186 |
$message .= ' — <a href="http://www.powerpresspodcast.com/2016/02/19/new-itunes-podcast-directory-recommendations-february-2016/" target="_blank">'. __('Learn More', 'powerpress') .'</a>';
|
|
|
187 |
$message .= "\n\n";
|
188 |
$message .= '<div style="text-align: center; margin: 5px 0; font-weight: bold;"><i>'. powerpress_review_message() .'</i></div>';
|
189 |
|
190 |
// http://www.apple.com/customer-letter/
|
191 |
// if you love PowerPress, Please rate and review PowerPress here:
|
192 |
|
193 |
-
$PowerPressNotificationManager->add('
|
194 |
}
|
195 |
-
|
196 |
}
|
197 |
|
198 |
// eof
|
53 |
|
54 |
public function all_admin_notices()
|
55 |
{
|
56 |
+
foreach( $this->notifications as $key => $notification )
|
57 |
{
|
58 |
echo $notification->get_notification_as_string();
|
59 |
}
|
164 |
}
|
165 |
|
166 |
if( powerpressadmin_notifications_appropriate() ) {
|
167 |
+
$PowerPressNotificationManager = new PowerPress_Notification_Manager(); // Uncomment when we have notices to display
|
168 |
|
169 |
// e.g. usage
|
170 |
+
|
171 |
+
if( !$PowerPressNotificationManager->dismissed_status('spotify-201807') ) {
|
172 |
|
173 |
$message = '';
|
174 |
+
$message .= '<h2 style="margin: 0; padding; 0; font-size: 115%;">';
|
175 |
+
$message .= __('Spotify Submissions and Google Podcasts Announcement, July 2018 - Blubrry PowerPress', 'powerpress');
|
176 |
+
$message .= '</h2>';
|
177 |
+
|
178 |
+
$message .= '<a href="https://create.blubrry.com/manual/podcast-promotion/submit-podcast-to-spotify/" target="_blank" class="powerpress-admin-heading">';
|
179 |
+
$message .= 'Submit Your Podcasts to Spotify';
|
180 |
+
$message .= '</a> ';
|
181 |
+
$message .= powerpressadmin_new();
|
182 |
+
$message .= '<p>PowerPress users who also use <a href="https://create.blubrry.com/resources/podcast-media-hosting/" target="_blank">Blubrry media hosting</a> can now submit their podcast to Spotify. Not a Blubrry hosting customer? Migration is free and easy, and includes free email, phone, and scheduled screen sharing support. Get started with the <a href="https://create.blubrry.com/resources/podcast-media-hosting/migrating-to-blubrry/powerpress-podcasting-plugin-wordpress/" target="_blank">Media Migration Tool</a> built into PowerPress.</p>';
|
183 |
+
|
184 |
+
$message .= '<a href="https://create.blubrry.com/manual/podcast-promotion/submit-podcast-google-podcasts/" target="_blank" class="powerpress-admin-heading">';
|
185 |
+
$message .= 'Google Podcasts';
|
186 |
+
$message .= '</a> ';
|
187 |
+
$message .= powerpressadmin_new();
|
188 |
+
$message .= '<p>Google has launched a new podcast directory that is available through Google search, Google Home smart speakers and the new <a href="https://powerpresspodcast.com/2018/06/25/google-podcasts-app-is-here-yp34/" target="_blank">Google Podcasts</a> app for Android. As long as your podcast website is discoverable by Google search, your podcast will be included in this directory.</p>';
|
189 |
+
//$message .= '<p>Google has launched a new Podcast directory built into Google search. No submission is necessary. As long as your website is discoverable by Google search your podcast will be indexed by Google.</p>';
|
190 |
+
$message .= "\n\n";
|
191 |
+
|
192 |
+
|
193 |
+
$message .= '<div class="powerpress-admin-heading">';
|
194 |
+
$message .= 'Destinations Tab and Subscribe Page (Shortcode) and Sidebar Widget Updated';
|
195 |
+
$message .= '</div> ';
|
196 |
+
$message .= '<p>Destinations settings in PowerPress have been updated to include Google Podcasts and Spotify. The subscribe pages and sidebar will update with your new destinations.</p>';
|
197 |
+
//$message .= '<p>Google has launched a new Podcast directory built into Google search. No submission is necessary. As long as your website is discoverable by Google search your podcast will be indexed by Google.</p>';
|
198 |
$message .= "\n\n";
|
199 |
+
|
200 |
+
//$message .= '<p>Do not forget to update the <a href="'. admin_url("admin.php?page=powerpressadmin_basic#tab-dest") .'">Destinations</a> settings in PowerPress to maximize your podcast distribution.</p>'. "\n\n";
|
201 |
+
|
202 |
+
|
203 |
+
/*
|
204 |
+
|
205 |
$message .= __('Apple has changed the iTunes explicit setting. <strong>You <i>must</i> now select "clean" or "explicit"</strong> - the \'no\' option is no longer available', 'powerpress');
|
206 |
$message .= ' — <a href="'. admin_url("admin.php?page=powerpressadmin_basic#tab5") .'">'. __('Update Now', 'powerpress') .'</a>';
|
207 |
$message .= ' | <a href="http://www.powerpresspodcast.com/2016/02/19/new-itunes-podcast-directory-recommendations-february-2016/" target="_blank">'. __('Learn More', 'powerpress') .'</a>';
|
208 |
$message .= "\n\n";
|
209 |
+
$message .= '<p>'.__('Podcast submissions to the iTunes podcast directory are now managed by the new <a href="https://podcastsconnect.apple.com/" target="_blank">Podcast Connect</a> website. The new website allows you to submit new podcasts, as well as refresh, hide and delete your current podcast listings.', 'powerpress') .'</p>';
|
210 |
+
|
211 |
$message .= ' — <a href="http://www.powerpresspodcast.com/2016/02/19/new-itunes-podcast-directory-recommendations-february-2016/" target="_blank">'. __('Learn More', 'powerpress') .'</a>';
|
212 |
+
*/
|
213 |
$message .= "\n\n";
|
214 |
$message .= '<div style="text-align: center; margin: 5px 0; font-weight: bold;"><i>'. powerpress_review_message() .'</i></div>';
|
215 |
|
216 |
// http://www.apple.com/customer-letter/
|
217 |
// if you love PowerPress, Please rate and review PowerPress here:
|
218 |
|
219 |
+
$PowerPressNotificationManager->add('spotify-201807', $message);
|
220 |
}
|
221 |
+
|
222 |
}
|
223 |
|
224 |
// eof
|
powerpressadmin-ping-sites.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
{
|
12 |
$ping_site_data = get_option('ping_sites');
|
13 |
|
14 |
-
|
15 |
$ping_site_data = trim($ping_site_data)."\r\n$url";
|
16 |
|
17 |
update_option('ping_sites', $ping_site_data);
|
@@ -45,7 +45,7 @@
|
|
45 |
<td>
|
46 |
<p><?php echo __('Select the blog service you would like to notify.', 'powerpress'); ?></p>
|
47 |
<?php
|
48 |
-
|
49 |
{
|
50 |
if( stripos($ping_sites, $url) !== false )
|
51 |
{
|
@@ -69,7 +69,7 @@
|
|
69 |
<td>
|
70 |
<p><?php echo __('Select the podcasting service you would like to notify.', 'powerpress'); ?></p>
|
71 |
<?php
|
72 |
-
|
73 |
{
|
74 |
if( stripos($ping_sites, $url) !== false )
|
75 |
{
|
11 |
{
|
12 |
$ping_site_data = get_option('ping_sites');
|
13 |
|
14 |
+
foreach( $PingSites as $null => $url )
|
15 |
$ping_site_data = trim($ping_site_data)."\r\n$url";
|
16 |
|
17 |
update_option('ping_sites', $ping_site_data);
|
45 |
<td>
|
46 |
<p><?php echo __('Select the blog service you would like to notify.', 'powerpress'); ?></p>
|
47 |
<?php
|
48 |
+
foreach( $BlogSites as $url => $name )
|
49 |
{
|
50 |
if( stripos($ping_sites, $url) !== false )
|
51 |
{
|
69 |
<td>
|
70 |
<p><?php echo __('Select the podcasting service you would like to notify.', 'powerpress'); ?></p>
|
71 |
<?php
|
72 |
+
foreach( $PodcastSites as $url => $name )
|
73 |
{
|
74 |
if( stripos($ping_sites, $url) !== false )
|
75 |
{
|
powerpressadmin-player-page.php
CHANGED
@@ -370,7 +370,7 @@ table.html5formats tr > td:first-child {
|
|
370 |
<th scope="row"> </th>
|
371 |
<td>
|
372 |
<ul>
|
373 |
-
<li><label><input type="radio" name="Player[player]" id="player_blubrryaudio" value="blubrryaudio" <?php if( $General['player'] == 'blubrryaudio' ) echo 'checked'; ?> /> <?php echo __('Blubrry Audio Player', 'powerpress'); ?>
|
374 |
<strong style="padding-top: 8px; margin-left: 20px;"><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_blubrryaudio" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a></strong>
|
375 |
</li>
|
376 |
<li style="margin-left: 30px; margin-bottom:16px;">
|
370 |
<th scope="row"> </th>
|
371 |
<td>
|
372 |
<ul>
|
373 |
+
<li><label><input type="radio" name="Player[player]" id="player_blubrryaudio" value="blubrryaudio" <?php if( $General['player'] == 'blubrryaudio' ) echo 'checked'; ?> /> <?php echo __('Blubrry Audio Player', 'powerpress'); ?> </label>
|
374 |
<strong style="padding-top: 8px; margin-left: 20px;"><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_blubrryaudio" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a></strong>
|
375 |
</li>
|
376 |
<li style="margin-left: 30px; margin-bottom:16px;">
|
powerpressadmin-podpress.php
CHANGED
@@ -75,7 +75,7 @@ if( !function_exists('add_action') )
|
|
75 |
$results_data = $wpdb->get_results($query, ARRAY_A);
|
76 |
if( $results_data )
|
77 |
{
|
78 |
-
|
79 |
{
|
80 |
//$return = $row;
|
81 |
$podpress_data = @unserialize($row['meta_value']);
|
@@ -120,7 +120,7 @@ if( !function_exists('add_action') )
|
|
120 |
}
|
121 |
|
122 |
$clean_data = array();
|
123 |
-
|
124 |
{
|
125 |
if( trim($episode_data['URI']) != '' )
|
126 |
{
|
@@ -165,7 +165,7 @@ if( !function_exists('add_action') )
|
|
165 |
list($EnclosureURL,$null) = explode("\n", $enclosure_data);
|
166 |
$return[ $row['ID'] ]['enclosure'] = $enclosure_data;
|
167 |
|
168 |
-
|
169 |
{
|
170 |
if( trim($EnclosureURL) == trim($episode_data_temp['url']) )
|
171 |
{
|
@@ -233,9 +233,9 @@ if( !function_exists('add_action') )
|
|
233 |
$Import = ( !empty( $_POST['Import']) ? $_POST['Import'] : array() );
|
234 |
$PodPressData = powerpress_get_podpress_episodes(true);
|
235 |
|
236 |
-
|
237 |
{
|
238 |
-
|
239 |
{
|
240 |
if( $feed_slug )
|
241 |
{
|
@@ -315,7 +315,7 @@ if( !function_exists('add_action') )
|
|
315 |
|
316 |
if( is_array($Settings['custom_feeds']) )
|
317 |
{
|
318 |
-
|
319 |
{
|
320 |
if( $feed_slug != 'podcast' )
|
321 |
$data['feed-'.$feed_slug] = __('Feed', 'powerpress') .': ('.$feed_slug.')';
|
@@ -492,7 +492,7 @@ function select_all(index,value)
|
|
492 |
$ImportableEpisodes = 0;
|
493 |
|
494 |
$count = 0;
|
495 |
-
|
496 |
{
|
497 |
$edit_link = get_edit_post_link( $post_id );
|
498 |
if( $post_id == 'feeds_required' )
|
@@ -504,7 +504,7 @@ function select_all(index,value)
|
|
504 |
|
505 |
if( is_array($Settings['custom_feeds']) )
|
506 |
{
|
507 |
-
|
508 |
{
|
509 |
if( $feed_slug == 'podcast' )
|
510 |
$enclosure_data = get_post_meta($post_id, 'enclosure', true);
|
@@ -522,7 +522,7 @@ function select_all(index,value)
|
|
522 |
}
|
523 |
|
524 |
$found = false;
|
525 |
-
|
526 |
{
|
527 |
if( $episode_data['url'] == $CurrentEnclosures[ $feed_slug ]['url'] )
|
528 |
{
|
@@ -578,7 +578,7 @@ function select_all(index,value)
|
|
578 |
echo '</strong><br />';
|
579 |
echo '<div style="margin-left: 10px;">';
|
580 |
$index = 1;
|
581 |
-
|
582 |
{
|
583 |
$Parts = parse_url($episode_data['url']);
|
584 |
$filename = substr($Parts['path'], strrpos($Parts['path'], '/')+1 );
|
@@ -634,7 +634,7 @@ function select_all(index,value)
|
|
634 |
if( isset($CurrentEnclosures[$feed_slug]) && $CurrentEnclosures[$feed_slug]['imported'] )
|
635 |
{
|
636 |
$index = 1;
|
637 |
-
|
638 |
{
|
639 |
echo "File $index: ";
|
640 |
if( $CurrentEnclosures[$feed_slug]['url'] == $episode_data['url'] )
|
@@ -654,7 +654,7 @@ function select_all(index,value)
|
|
654 |
else
|
655 |
{
|
656 |
$index = 1;
|
657 |
-
|
658 |
{
|
659 |
echo __('File', 'powerpress') ." $index: ";
|
660 |
if( !empty($episode_data['imported']) )
|
@@ -712,7 +712,7 @@ function select_all(index,value)
|
|
712 |
<p style="margin: 0 0 0 40px; padding: 0;">
|
713 |
File <?php echo ($number+1); ?>:
|
714 |
<?php
|
715 |
-
|
716 |
{
|
717 |
echo '<a href="javascript:void()" onclick="select_all('. $number .',\''. $feed_slug .'\');return false;">'. htmlspecialchars($feed_title) .'</a> | ';
|
718 |
}
|
75 |
$results_data = $wpdb->get_results($query, ARRAY_A);
|
76 |
if( $results_data )
|
77 |
{
|
78 |
+
foreach( $results_data as $null => $row )
|
79 |
{
|
80 |
//$return = $row;
|
81 |
$podpress_data = @unserialize($row['meta_value']);
|
120 |
}
|
121 |
|
122 |
$clean_data = array();
|
123 |
+
foreach( $podpress_data as $episode_index => $episode_data )
|
124 |
{
|
125 |
if( trim($episode_data['URI']) != '' )
|
126 |
{
|
165 |
list($EnclosureURL,$null) = explode("\n", $enclosure_data);
|
166 |
$return[ $row['ID'] ]['enclosure'] = $enclosure_data;
|
167 |
|
168 |
+
foreach( $clean_data as $episode_index_temp => $episode_data_temp )
|
169 |
{
|
170 |
if( trim($EnclosureURL) == trim($episode_data_temp['url']) )
|
171 |
{
|
233 |
$Import = ( !empty( $_POST['Import']) ? $_POST['Import'] : array() );
|
234 |
$PodPressData = powerpress_get_podpress_episodes(true);
|
235 |
|
236 |
+
foreach( $Import as $post_id => $podpress_episode_feeds )
|
237 |
{
|
238 |
+
foreach( $podpress_episode_feeds as $podpress_index => $feed_slug )
|
239 |
{
|
240 |
if( $feed_slug )
|
241 |
{
|
315 |
|
316 |
if( is_array($Settings['custom_feeds']) )
|
317 |
{
|
318 |
+
foreach( $Settings['custom_feeds'] as $feed_slug => $value )
|
319 |
{
|
320 |
if( $feed_slug != 'podcast' )
|
321 |
$data['feed-'.$feed_slug] = __('Feed', 'powerpress') .': ('.$feed_slug.')';
|
492 |
$ImportableEpisodes = 0;
|
493 |
|
494 |
$count = 0;
|
495 |
+
foreach( $results as $post_id => $import_data )
|
496 |
{
|
497 |
$edit_link = get_edit_post_link( $post_id );
|
498 |
if( $post_id == 'feeds_required' )
|
504 |
|
505 |
if( is_array($Settings['custom_feeds']) )
|
506 |
{
|
507 |
+
foreach( $Settings['custom_feeds'] as $feed_slug => $value )
|
508 |
{
|
509 |
if( $feed_slug == 'podcast' )
|
510 |
$enclosure_data = get_post_meta($post_id, 'enclosure', true);
|
522 |
}
|
523 |
|
524 |
$found = false;
|
525 |
+
foreach( $import_data['podpress_data'] as $episode_index => $episode_data )
|
526 |
{
|
527 |
if( $episode_data['url'] == $CurrentEnclosures[ $feed_slug ]['url'] )
|
528 |
{
|
578 |
echo '</strong><br />';
|
579 |
echo '<div style="margin-left: 10px;">';
|
580 |
$index = 1;
|
581 |
+
foreach( $import_data['podpress_data'] as $episode_index => $episode_data )
|
582 |
{
|
583 |
$Parts = parse_url($episode_data['url']);
|
584 |
$filename = substr($Parts['path'], strrpos($Parts['path'], '/')+1 );
|
634 |
if( isset($CurrentEnclosures[$feed_slug]) && $CurrentEnclosures[$feed_slug]['imported'] )
|
635 |
{
|
636 |
$index = 1;
|
637 |
+
foreach( $import_data['podpress_data'] as $episode_index => $episode_data )
|
638 |
{
|
639 |
echo "File $index: ";
|
640 |
if( $CurrentEnclosures[$feed_slug]['url'] == $episode_data['url'] )
|
654 |
else
|
655 |
{
|
656 |
$index = 1;
|
657 |
+
foreach( $import_data['podpress_data'] as $episode_index => $episode_data )
|
658 |
{
|
659 |
echo __('File', 'powerpress') ." $index: ";
|
660 |
if( !empty($episode_data['imported']) )
|
712 |
<p style="margin: 0 0 0 40px; padding: 0;">
|
713 |
File <?php echo ($number+1); ?>:
|
714 |
<?php
|
715 |
+
foreach( $Settings['custom_feeds'] as $feed_slug => $feed_title )
|
716 |
{
|
717 |
echo '<a href="javascript:void()" onclick="select_all('. $number .',\''. $feed_slug .'\');return false;">'. htmlspecialchars($feed_title) .'</a> | ';
|
718 |
}
|
powerpressadmin-posttypefeeds.php
CHANGED
@@ -70,13 +70,13 @@ function powerpress_admin_posttypefeeds()
|
|
70 |
<?php
|
71 |
|
72 |
$count = 0;
|
73 |
-
|
74 |
{
|
75 |
$PostTypeSettingsArray = get_option('powerpress_posttype_'. $post_type );
|
76 |
if( !$PostTypeSettingsArray )
|
77 |
continue;
|
78 |
|
79 |
-
|
80 |
{
|
81 |
$feed_title = ( !empty($PostTypeSettings['title']) ? $PostTypeSettings['title'] : '(blank)');
|
82 |
// $post_type
|
@@ -191,7 +191,7 @@ function powerpress_admin_posttypefeeds()
|
|
191 |
|
192 |
|
193 |
reset($post_types);
|
194 |
-
|
195 |
if( $post_type == 'post' )
|
196 |
continue;
|
197 |
|
70 |
<?php
|
71 |
|
72 |
$count = 0;
|
73 |
+
foreach( $post_types as $null => $post_type )
|
74 |
{
|
75 |
$PostTypeSettingsArray = get_option('powerpress_posttype_'. $post_type );
|
76 |
if( !$PostTypeSettingsArray )
|
77 |
continue;
|
78 |
|
79 |
+
foreach( $PostTypeSettingsArray as $feed_slug => $PostTypeSettings )
|
80 |
{
|
81 |
$feed_title = ( !empty($PostTypeSettings['title']) ? $PostTypeSettings['title'] : '(blank)');
|
82 |
// $post_type
|
191 |
|
192 |
|
193 |
reset($post_types);
|
194 |
+
foreach( $post_types as $null => $post_type ) {
|
195 |
if( $post_type == 'post' )
|
196 |
continue;
|
197 |
|
powerpressadmin-pts.php
CHANGED
@@ -151,7 +151,7 @@ function callUpdateListing( $post_id, $program_keyword, $guid ) {
|
|
151 |
foreach ( $api_url_array as $api_url ) {
|
152 |
$response = powerpress_remote_fopen( "{$api_url}social/{$program_keyword}/update-listing.json", $Settings['blubrry_auth'], json_encode( $post_params ) );
|
153 |
|
154 |
-
mail('cio@rawvoice.com', 'update listing response', $response);
|
155 |
if ( $response ) {
|
156 |
break;
|
157 |
}
|
151 |
foreach ( $api_url_array as $api_url ) {
|
152 |
$response = powerpress_remote_fopen( "{$api_url}social/{$program_keyword}/update-listing.json", $Settings['blubrry_auth'], json_encode( $post_params ) );
|
153 |
|
154 |
+
//mail('cio@rawvoice.com', 'update listing response', $response);
|
155 |
if ( $response ) {
|
156 |
break;
|
157 |
}
|
powerpressadmin-rss-import.php
CHANGED
@@ -186,7 +186,7 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
|
|
186 |
<?php
|
187 |
|
188 |
asort($Feeds, SORT_STRING); // Sort feeds
|
189 |
-
|
190 |
|
191 |
echo "\t<option value=\"$feed_slug\">$feed_title ($feed_slug)</option>\n";
|
192 |
}
|
@@ -249,7 +249,7 @@ if( !empty($PowerPressTaxonomies) ) { // If taxonomy podcasting feeds exist..
|
|
249 |
$tt_ids = '';
|
250 |
|
251 |
$SelectOptions = array();
|
252 |
-
|
253 |
if( !empty($tt_ids) )
|
254 |
$tt_ids .= ',';
|
255 |
$tt_ids .= $tt_id;
|
@@ -265,7 +265,7 @@ if( !empty($PowerPressTaxonomies) ) { // If taxonomy podcasting feeds exist..
|
|
265 |
<option value=""><?php echo __('Select Taxonomy Podcast', ''); ?></option>
|
266 |
<?php
|
267 |
|
268 |
-
|
269 |
{
|
270 |
echo "\t<option value=\"$tt_id\">". htmlspecialchars($label). "</option>\n";
|
271 |
}
|
@@ -356,7 +356,7 @@ jQuery(document).ready( function() {
|
|
356 |
<select id="import_post_status" name="import_post_status" class="medium-text">
|
357 |
<?php
|
358 |
$post_statuses = get_post_statuses();
|
359 |
-
|
360 |
|
361 |
echo "\t<option value=\"$post_status_slug\"". ($post_status_slug=='publish'?' selected':'') .">". htmlspecialchars("$post_status_label ($post_status_slug)") . "</option>\n";
|
362 |
}
|
@@ -587,7 +587,7 @@ jQuery(document).ready( function() {
|
|
587 |
$cats_by_title = array_flip( $Categories );
|
588 |
|
589 |
$FoundCategories = array();
|
590 |
-
|
591 |
{
|
592 |
$category = str_replace('&', '&', $category);
|
593 |
$category = strtolower($category);
|
@@ -599,7 +599,7 @@ jQuery(document).ready( function() {
|
|
599 |
// this logic rebuilds the categorires in the correct order no matter what method the service stacked them
|
600 |
$FinalCats = array(1=>'', 2=>'', 3=>'');
|
601 |
$last_category_index = 1;
|
602 |
-
|
603 |
{
|
604 |
if( !empty($FinalCats[$last_category_index]) ) // Do we need to increment to the next category position
|
605 |
{
|
@@ -620,7 +620,7 @@ jQuery(document).ready( function() {
|
|
620 |
$FinalCats[ $last_category_index ] = $cat_id;
|
621 |
}
|
622 |
|
623 |
-
|
624 |
if( empty( $cat_id) )
|
625 |
continue;
|
626 |
$field = sprintf('itunes_cat_%d', $field_no);
|
@@ -674,7 +674,7 @@ jQuery(document).ready( function() {
|
|
674 |
echo '<hr />';
|
675 |
echo '<p><strong>'. __('Program information imported', 'powerpress') .'</strong></p>';
|
676 |
echo '<ul class="ul-disc">';
|
677 |
-
|
678 |
{
|
679 |
if( $field == 'rss2_image' )
|
680 |
continue;
|
@@ -1137,7 +1137,7 @@ jQuery(document).ready( function() {
|
|
1137 |
}
|
1138 |
|
1139 |
$add_urls = '';
|
1140 |
-
|
1141 |
{
|
1142 |
if( empty($QueuedFiles[ $meta_id ]) ) { // Add to the array if not already added
|
1143 |
$QueuedFiles[ $meta_id ] = $url;
|
@@ -1321,8 +1321,7 @@ jQuery(document).ready( function() {
|
|
1321 |
$results = $wpdb->get_results($query, ARRAY_A);
|
1322 |
if( !empty($results) )
|
1323 |
{
|
1324 |
-
|
1325 |
-
{
|
1326 |
return $row['ID'];
|
1327 |
}
|
1328 |
}
|
186 |
<?php
|
187 |
|
188 |
asort($Feeds, SORT_STRING); // Sort feeds
|
189 |
+
foreach( $Feeds as $feed_slug => $feed_title ) {
|
190 |
|
191 |
echo "\t<option value=\"$feed_slug\">$feed_title ($feed_slug)</option>\n";
|
192 |
}
|
249 |
$tt_ids = '';
|
250 |
|
251 |
$SelectOptions = array();
|
252 |
+
foreach( $PowerPressTaxonomies as $tt_id => $null ) {
|
253 |
if( !empty($tt_ids) )
|
254 |
$tt_ids .= ',';
|
255 |
$tt_ids .= $tt_id;
|
265 |
<option value=""><?php echo __('Select Taxonomy Podcast', ''); ?></option>
|
266 |
<?php
|
267 |
|
268 |
+
foreach( $SelectOptions as $tt_id => $label )
|
269 |
{
|
270 |
echo "\t<option value=\"$tt_id\">". htmlspecialchars($label). "</option>\n";
|
271 |
}
|
356 |
<select id="import_post_status" name="import_post_status" class="medium-text">
|
357 |
<?php
|
358 |
$post_statuses = get_post_statuses();
|
359 |
+
foreach( $post_statuses as $post_status_slug => $post_status_label ) {
|
360 |
|
361 |
echo "\t<option value=\"$post_status_slug\"". ($post_status_slug=='publish'?' selected':'') .">". htmlspecialchars("$post_status_label ($post_status_slug)") . "</option>\n";
|
362 |
}
|
587 |
$cats_by_title = array_flip( $Categories );
|
588 |
|
589 |
$FoundCategories = array();
|
590 |
+
foreach( $itunes_categories as $index => $category )
|
591 |
{
|
592 |
$category = str_replace('&', '&', $category);
|
593 |
$category = strtolower($category);
|
599 |
// this logic rebuilds the categorires in the correct order no matter what method the service stacked them
|
600 |
$FinalCats = array(1=>'', 2=>'', 3=>'');
|
601 |
$last_category_index = 1;
|
602 |
+
foreach( $FoundCategories as $index => $cat_id )
|
603 |
{
|
604 |
if( !empty($FinalCats[$last_category_index]) ) // Do we need to increment to the next category position
|
605 |
{
|
620 |
$FinalCats[ $last_category_index ] = $cat_id;
|
621 |
}
|
622 |
|
623 |
+
foreach( $FinalCats as $field_no => $cat_id ) {
|
624 |
if( empty( $cat_id) )
|
625 |
continue;
|
626 |
$field = sprintf('itunes_cat_%d', $field_no);
|
674 |
echo '<hr />';
|
675 |
echo '<p><strong>'. __('Program information imported', 'powerpress') .'</strong></p>';
|
676 |
echo '<ul class="ul-disc">';
|
677 |
+
foreach( $NewSettings as $field => $value )
|
678 |
{
|
679 |
if( $field == 'rss2_image' )
|
680 |
continue;
|
1137 |
}
|
1138 |
|
1139 |
$add_urls = '';
|
1140 |
+
foreach( $GLOBALS['pp_migrate_media_urls'] as $meta_id => $url )
|
1141 |
{
|
1142 |
if( empty($QueuedFiles[ $meta_id ]) ) { // Add to the array if not already added
|
1143 |
$QueuedFiles[ $meta_id ] = $url;
|
1321 |
$results = $wpdb->get_results($query, ARRAY_A);
|
1322 |
if( !empty($results) )
|
1323 |
{
|
1324 |
+
foreach( $results as $null => $row ) {
|
|
|
1325 |
return $row['ID'];
|
1326 |
}
|
1327 |
}
|
powerpressadmin-taxonomyfeeds.php
CHANGED
@@ -77,7 +77,7 @@ function powerpress_admin_taxonomyfeeds()
|
|
77 |
|
78 |
|
79 |
$count = 0;
|
80 |
-
|
81 |
{
|
82 |
$taxonomy_type = '';
|
83 |
$term_ID = '';
|
@@ -201,7 +201,7 @@ function powerpress_admin_taxonomyfeeds()
|
|
201 |
$taxonomies=get_taxonomies('','names');
|
202 |
|
203 |
|
204 |
-
|
205 |
if( $taxonomy == 'category' )
|
206 |
continue;
|
207 |
$taxonomy = htmlspecialchars($taxonomy);
|
77 |
|
78 |
|
79 |
$count = 0;
|
80 |
+
foreach( $PowerPressTaxonomies as $tt_id => $null )
|
81 |
{
|
82 |
$taxonomy_type = '';
|
83 |
$term_ID = '';
|
201 |
$taxonomies=get_taxonomies('','names');
|
202 |
|
203 |
|
204 |
+
foreach( $taxonomies as $null => $taxonomy ) {
|
205 |
if( $taxonomy == 'category' )
|
206 |
continue;
|
207 |
$taxonomy = htmlspecialchars($taxonomy);
|
powerpressadmin.php
CHANGED
@@ -7,8 +7,9 @@ function powerpress_esc_html($escape)
|
|
7 |
{
|
8 |
if( is_array($escape) )
|
9 |
{
|
10 |
-
|
11 |
$escape[ $index ] = powerpress_esc_html($value);
|
|
|
12 |
}
|
13 |
return esc_html($escape);
|
14 |
}
|
@@ -71,11 +72,12 @@ function powerpress_admin_init()
|
|
71 |
add_thickbox(); // we use the thckbox for some settings
|
72 |
wp_enqueue_script('jquery');
|
73 |
wp_enqueue_script('jquery-ui-core'); // Now including the library at Google
|
74 |
-
wp_enqueue_script('jquery-ui-tabs');
|
75 |
|
76 |
// Powerpress page
|
77 |
if( isset($_GET['page']) && strstr($_GET['page'], 'powerpress' ) !== false )
|
78 |
{
|
|
|
|
|
79 |
//wp_enqueue_script('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js');
|
80 |
if( preg_match('/powerpressadmin_(mobile|audio|video)player/', $_GET['page']) )
|
81 |
{
|
@@ -674,7 +676,7 @@ function powerpress_admin_init()
|
|
674 |
update_option('powerpress_track_number', $_POST['PowerPressTrackNumber']);
|
675 |
}
|
676 |
// Set all the tag values...
|
677 |
-
|
678 |
{
|
679 |
if( substr($key, 0, 4) == 'tag_' )
|
680 |
{
|
@@ -700,7 +702,7 @@ function powerpress_admin_init()
|
|
700 |
{
|
701 |
$json_data = false;
|
702 |
$api_url_array = powerpress_get_api_array();
|
703 |
-
|
704 |
{
|
705 |
$req_url = sprintf('%s/media/%s/coverart.json?url=%s', rtrim($api_url, '/'), $GeneralSettingsTemp['blubrry_program_keyword'], urlencode($TagValues['tag_coverart']) );
|
706 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
@@ -803,7 +805,9 @@ function powerpress_admin_init()
|
|
803 |
if( isset($GeneralSettingsTemp['episode_box_background_color']) )
|
804 |
$SaveEpisdoeBoxBGColor['episode_box_background_color'] = $GeneralSettingsTemp['episode_box_background_color']; // copy previous settings
|
805 |
|
806 |
-
|
|
|
|
|
807 |
$SaveEpisdoeBoxBGColor['episode_box_background_color'][ $feed_slug_temp ] = $background_color;
|
808 |
powerpress_save_settings($SaveEpisdoeBoxBGColor);
|
809 |
}
|
@@ -1230,7 +1234,7 @@ function powerpress_admin_init()
|
|
1230 |
check_admin_referer('powerpress-add-caps');
|
1231 |
|
1232 |
$users = array('administrator','editor', 'author'); // , 'contributor', 'subscriber');
|
1233 |
-
|
1234 |
{
|
1235 |
$role = get_role($user);
|
1236 |
if( !empty($role) )
|
@@ -1251,7 +1255,7 @@ function powerpress_admin_init()
|
|
1251 |
check_admin_referer('powerpress-remove-caps');
|
1252 |
|
1253 |
$users = array('administrator','editor', 'author', 'contributor', 'subscriber');
|
1254 |
-
|
1255 |
{
|
1256 |
$role = get_role($user);
|
1257 |
if( !empty($role) )
|
@@ -1280,7 +1284,7 @@ function powerpress_admin_init()
|
|
1280 |
}
|
1281 |
|
1282 |
$users = array('administrator','editor', 'author'); // , 'contributor', 'subscriber');
|
1283 |
-
|
1284 |
{
|
1285 |
$role = get_role($user);
|
1286 |
if( !empty($role) )
|
@@ -1299,7 +1303,7 @@ function powerpress_admin_init()
|
|
1299 |
check_admin_referer('powerpress-remove-feed-caps');
|
1300 |
|
1301 |
$users = array('administrator','editor', 'author', 'contributor', 'subscriber', 'premium_subscriber', 'powerpress');
|
1302 |
-
|
1303 |
{
|
1304 |
$role = get_role($user);
|
1305 |
if( !empty($role) )
|
@@ -1387,7 +1391,7 @@ function powerpress_admin_notices()
|
|
1387 |
// Clear the SG cachepress plugin:
|
1388 |
if (function_exists('sg_cachepress_purge_cache')) { sg_cachepress_purge_cache(); }
|
1389 |
|
1390 |
-
|
1391 |
{
|
1392 |
?>
|
1393 |
<div class="updated"><p style="line-height: 125%;"><strong><?php echo $error; ?></strong></p></div>
|
@@ -1412,8 +1416,9 @@ function powerpress_save_settings($SettingsNew=false, $field = 'powerpress_gener
|
|
1412 |
$Settings = get_option($field);
|
1413 |
if( !is_array($Settings) )
|
1414 |
$Settings = array();
|
1415 |
-
|
1416 |
$Settings[$key] = $value;
|
|
|
1417 |
if( $field == 'powerpress_general' && !isset($Settings['timestamp']) )
|
1418 |
$Settings['timestamp'] = time();
|
1419 |
|
@@ -1544,7 +1549,7 @@ function powerpress_htmlspecialchars($data)
|
|
1544 |
return $data;
|
1545 |
if( is_array($data) )
|
1546 |
{
|
1547 |
-
|
1548 |
{
|
1549 |
if( $key == 'itunes_summary' )
|
1550 |
continue; // Skip this one as we escape it in the form.
|
@@ -1566,7 +1571,7 @@ function powerpress_stripslashes($data)
|
|
1566 |
if( !is_array($data) )
|
1567 |
return stripslashes($data);
|
1568 |
|
1569 |
-
|
1570 |
{
|
1571 |
if( is_array($value) )
|
1572 |
$data[$key] = powerpress_stripslashes($value);
|
@@ -1584,7 +1589,7 @@ function powerpress_admin_get_post_types($capability_type = 'post')
|
|
1584 |
|
1585 |
$return = array();
|
1586 |
$post_types = get_post_types();
|
1587 |
-
|
1588 |
{
|
1589 |
if( $post_type == 'redirect_rule' || $post_type == 'attachment' || $post_type == 'nav_menu_item' || $post_type == 'revision' || $post_type == 'action' )
|
1590 |
continue;
|
@@ -1609,13 +1614,13 @@ function powerpress_rebuild_posttype_podcasting()
|
|
1609 |
// array( feed-slugs => array('posttype1'=>'post type 1 title', 'posttype2'=>post type 2 title', ...) );
|
1610 |
$post_types = get_post_types();
|
1611 |
$FeedSlugPostTypeArray = array();
|
1612 |
-
|
1613 |
{
|
1614 |
$PostTypeSettingsArray = get_option('powerpress_posttype_'. $post_type );
|
1615 |
if( !$PostTypeSettingsArray )
|
1616 |
continue;
|
1617 |
|
1618 |
-
|
1619 |
{
|
1620 |
$FeedSlugPostTypeArray[ $feed_slug ][ $post_type ] = ( empty($PostTypeSettings['title'])? $feed_slug : $PostTypeSettings['title'] );
|
1621 |
}
|
@@ -1649,7 +1654,7 @@ function powerpress_admin_menu()
|
|
1649 |
if( empty($Powerpress['posttype_podcasting']) )
|
1650 |
$page_types = powerpress_admin_get_post_types('page'); // Get pages by capability type
|
1651 |
|
1652 |
-
|
1653 |
{
|
1654 |
if( empty($FeedSlugPostTypesArray[ 'podcast' ][ $page_type ]) )
|
1655 |
add_meta_box('powerpress-podcast', __('Podcast Episode', 'powerpress'), 'powerpress_meta_box', $page_type, 'normal');
|
@@ -1673,9 +1678,9 @@ function powerpress_admin_menu()
|
|
1673 |
if( empty($FeedSlugPostTypesArray) )
|
1674 |
$FeedSlugPostTypesArray = array();
|
1675 |
|
1676 |
-
|
1677 |
{
|
1678 |
-
|
1679 |
{
|
1680 |
if ( $feed_slug != 'podcast' || $post_type != 'post' ) // No the default podcast feed
|
1681 |
{
|
@@ -1693,7 +1698,7 @@ function powerpress_admin_menu()
|
|
1693 |
{
|
1694 |
$FeedDefaultPodcast = get_option('powerpress_feed_podcast');
|
1695 |
|
1696 |
-
|
1697 |
{
|
1698 |
// Make sure this post type can edit the default podcast channel...
|
1699 |
if( !empty($FeedDefaultPodcast['custom_post_type']) && $FeedDefaultPodcast['custom_post_type'] != $post_type )
|
@@ -1703,7 +1708,7 @@ function powerpress_admin_menu()
|
|
1703 |
add_meta_box('powerpress-podcast', __('Podcast Episode (default)', 'powerpress'), 'powerpress_meta_box', $post_type, 'normal');
|
1704 |
}
|
1705 |
|
1706 |
-
|
1707 |
{
|
1708 |
if( $feed_slug == 'podcast' )
|
1709 |
continue;
|
@@ -1713,7 +1718,7 @@ function powerpress_admin_menu()
|
|
1713 |
|
1714 |
|
1715 |
reset($post_types);
|
1716 |
-
|
1717 |
{
|
1718 |
// Make sure this post type can edit the default podcast channel...
|
1719 |
if( !empty($FeedCustom['custom_post_type']) && $FeedCustom['custom_post_type'] != $post_type )
|
@@ -1728,7 +1733,7 @@ function powerpress_admin_menu()
|
|
1728 |
else // This handles all podcast post types and default 'post'. if post type podcasting enabled.
|
1729 |
{
|
1730 |
reset($post_types);
|
1731 |
-
|
1732 |
{
|
1733 |
if( empty($FeedSlugPostTypesArray[ 'podcast' ][ $post_type ]) )
|
1734 |
add_meta_box('powerpress-podcast', __('Podcast Episode', 'powerpress'), 'powerpress_meta_box', $post_type, 'normal');
|
@@ -1741,7 +1746,7 @@ function powerpress_admin_menu()
|
|
1741 |
$post_types = powerpress_admin_get_post_types( POWERPRESS_CUSTOM_CAPABILITY_TYPE );
|
1742 |
if( !empty($post_types) )
|
1743 |
{
|
1744 |
-
|
1745 |
{
|
1746 |
if( $feed_slug == 'podcast' )
|
1747 |
continue;
|
@@ -1749,7 +1754,7 @@ function powerpress_admin_menu()
|
|
1749 |
$FeedCustom = get_option('powerpress_feed_'.$feed_slug);
|
1750 |
|
1751 |
reset($post_types);
|
1752 |
-
|
1753 |
{
|
1754 |
if( !empty($FeedCustom['custom_post_type']) && $FeedCustom['custom_post_type'] != $post_type )
|
1755 |
continue;
|
@@ -1794,7 +1799,7 @@ function powerpress_admin_menu()
|
|
1794 |
|
1795 |
add_submenu_page($parent_slug, __('Import podcast feed from SoundCloud, LibSyn, PodBean or other podcast service.', 'powerpress'), __('Import Podcast', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_import_feed.php', 'powerpress_admin_page_import_feed');
|
1796 |
add_submenu_page($parent_slug, __('Migrate media files to Blubrry Podcast Media Hosting with only a few clicks.', 'powerpress'), __('Migrate Media', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_migrate.php', 'powerpress_admin_page_migrate');
|
1797 |
-
add_submenu_page($parent_slug, __('PowerPress Podcasting SEO', 'powerpress'), '<span style="color:#f18500">'. __('Podcasting SEO', 'powerpress') .'</span> '
|
1798 |
|
1799 |
add_submenu_page($parent_slug, __('PowerPress Audio Player Options', 'powerpress'), __('Audio Player', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_player.php', 'powerpress_admin_page_players');
|
1800 |
add_submenu_page($parent_slug, __('PowerPress Video Player Options', 'powerpress'), __('Video Player', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_videoplayer.php', 'powerpress_admin_page_videoplayers');
|
@@ -1838,7 +1843,7 @@ function powerpress_edit_post($post_ID, $post)
|
|
1838 |
|
1839 |
if( $Episodes )
|
1840 |
{
|
1841 |
-
|
1842 |
{
|
1843 |
$field = 'enclosure';
|
1844 |
if( $feed_slug != 'podcast' )
|
@@ -2101,7 +2106,7 @@ function powerpress_edit_post($post_ID, $post)
|
|
2101 |
$FeatureEpisodes = array();
|
2102 |
|
2103 |
$PowerpressFeature = $_POST['PowerpressFeature'];
|
2104 |
-
|
2105 |
{
|
2106 |
if( !empty($set_featured) )
|
2107 |
$FeatureEpisodes[ $feed_slug ] = $post_ID;
|
@@ -2483,7 +2488,7 @@ function powerpress_check_url(url)
|
|
2483 |
{
|
2484 |
if( validChars.indexOf( url.charAt(x) ) == -1 )
|
2485 |
{
|
2486 |
-
jQuery( '#'+DestDiv ).text('<?php echo __('Media URL contains characters that may cause problems for some clients. For maximum compatibility, only use letters, numbers, dash - and underscore _ characters only.', 'powerpress'); ?>');
|
2487 |
jQuery( '#'+DestDiv ).css('display', 'block');
|
2488 |
return false;
|
2489 |
}
|
@@ -2911,7 +2916,7 @@ function powerpress_create_subscribe_page()
|
|
2911 |
$languages[] = 'en_US'; // fallback to the en_US version
|
2912 |
|
2913 |
$template_content = false;
|
2914 |
-
|
2915 |
{
|
2916 |
$template_content = powerpress_remote_fopen( $template_url . $lang . '.txt' );
|
2917 |
if( empty($template_content) ) { // Lets force cURL and see if that helps...
|
@@ -3438,7 +3443,7 @@ function powerpress_remote_fopen($url, $basic_auth = false, $post_args = array()
|
|
3438 |
if( count($post_args) > 0 )
|
3439 |
{
|
3440 |
$post_query = '';
|
3441 |
-
|
3442 |
{
|
3443 |
if( $post_query != '' )
|
3444 |
$post_query .= '&';
|
@@ -3553,14 +3558,14 @@ function powerpress_process_hosting($post_ID, $post_title)
|
|
3553 |
if( !empty($Settings['posttype_podcasting']) )
|
3554 |
{
|
3555 |
$FeedSlugPostTypesArray = get_option('powerpress_posttype-podcasting');
|
3556 |
-
|
3557 |
{
|
3558 |
if( empty($CustomFeeds[$feed_slug]) )
|
3559 |
$CustomFeeds[$feed_slug] = $feed_slug;
|
3560 |
}
|
3561 |
}
|
3562 |
|
3563 |
-
|
3564 |
{
|
3565 |
$field = 'enclosure';
|
3566 |
if( $feed_slug != 'podcast' )
|
@@ -3644,7 +3649,7 @@ function powerpress_process_hosting($post_ID, $post_title)
|
|
3644 |
set_time_limit(60*20); // give it 20 minutes just in case
|
3645 |
$json_data = false;
|
3646 |
$api_url_array = powerpress_get_api_array();
|
3647 |
-
|
3648 |
{
|
3649 |
$req_url = sprintf('%s/media/%s/%s?format=json&publish=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($EnclosureURL) );
|
3650 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
@@ -3953,7 +3958,9 @@ function powerpress_admin_episodes_per_feed($feed_slug, $post_type='post')
|
|
3953 |
if ( $results = $wpdb->get_results("SELECT COUNT(post_id) AS episodes_total FROM $wpdb->postmeta WHERE meta_key = '$field'", ARRAY_A) ) {
|
3954 |
if( count($results) )
|
3955 |
{
|
3956 |
-
|
|
|
|
|
3957 |
if( $row['episodes_total'] )
|
3958 |
return $row['episodes_total'];
|
3959 |
}
|
@@ -4032,7 +4039,7 @@ function powerpress_write_tags($file, $post_title)
|
|
4032 |
|
4033 |
$PostArgs = array();
|
4034 |
$Fields = array('title','artist','album','genre','year','track','composer','copyright','url');
|
4035 |
-
|
4036 |
{
|
4037 |
if( !empty($Settings[ 'tag_'.$field ]) )
|
4038 |
{
|
@@ -4083,7 +4090,7 @@ function powerpress_write_tags($file, $post_title)
|
|
4083 |
|
4084 |
// Get meta info via API
|
4085 |
$api_url_array = powerpress_get_api_array();
|
4086 |
-
|
4087 |
{
|
4088 |
$req_url = sprintf('%s/media/%s/%s?format=json&id3=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($file) );
|
4089 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
@@ -4110,7 +4117,7 @@ function powerpress_get_media_info($file)
|
|
4110 |
$Settings = get_option('powerpress_general');
|
4111 |
$content = false;
|
4112 |
$api_url_array = powerpress_get_api_array();
|
4113 |
-
|
4114 |
{
|
4115 |
$req_url = sprintf('%s/media/%s/%s?format=json&info=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($file) );
|
4116 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
@@ -4248,7 +4255,7 @@ function powerpress_get_media_info_local($media_file, $content_type='', $file_si
|
|
4248 |
if( empty($GeneralSettings['hide_warnings']) && count( $Mp3Info->GetWarnings() ) > 0 )
|
4249 |
{
|
4250 |
$Warnings = $Mp3Info->GetWarnings();
|
4251 |
-
|
4252 |
{
|
4253 |
$warning = sprintf( __('Warning, Media URL %s', 'powerpress'), $media_file) .': '. $warning .' [<a href="http://create.blubrry.com/resources/powerpress/using-powerpress/warning-messages-explained/" target="_blank">'. __('PowerPress Warnings Explained', 'powerpress') .'</a>]';
|
4254 |
if( $return_warnings )
|
@@ -4301,7 +4308,7 @@ function powerpress_get_media_info_local($media_file, $content_type='', $file_si
|
|
4301 |
if( count( $Mp3Info->GetWarnings() ) > 0 )
|
4302 |
{
|
4303 |
$Warnings = $Mp3Info->GetWarnings();
|
4304 |
-
|
4305 |
powerpress_add_error( sprintf( __('Warning, Media URL %s', 'powerpress'), $media_file) .': '. $warning .' [<a href="http://create.blubrry.com/resources/powerpress/using-powerpress/warning-messages-explained/" target="_blank">'. __('PowerPress Warnings Explained', 'powerpress') .'</a>]' );
|
4306 |
}
|
4307 |
}
|
@@ -4385,7 +4392,7 @@ function powerpress_print_options($options,$selected=null, $return=false)
|
|
4385 |
if( $return )
|
4386 |
{
|
4387 |
$html = '';
|
4388 |
-
|
4389 |
{
|
4390 |
$html .= '<option value="'. esc_attr($key) .'"'. ( ($selected !== null && strcmp($selected, $key) == 0 )?' selected':'') .'>';
|
4391 |
$html .= htmlspecialchars($value);
|
@@ -4394,7 +4401,7 @@ function powerpress_print_options($options,$selected=null, $return=false)
|
|
4394 |
|
4395 |
return $html;
|
4396 |
}
|
4397 |
-
|
4398 |
{
|
4399 |
echo '<option value="'. esc_attr($key) .'"'. ( ($selected !== null && strcmp($selected, $key) == 0 )?' selected':'') .'>';
|
4400 |
echo htmlspecialchars($value);
|
@@ -4466,7 +4473,7 @@ function powerpressadmin_community_news($items=3)
|
|
4466 |
else
|
4467 |
{
|
4468 |
$first_item = true;
|
4469 |
-
|
4470 |
{
|
4471 |
$enclosure = $item->get_enclosure();
|
4472 |
echo '<li>';
|
@@ -4563,8 +4570,7 @@ function powerpressadmin_community_highlighted($items=8)
|
|
4563 |
}
|
4564 |
else
|
4565 |
{
|
4566 |
-
|
4567 |
-
while( list($null,$item) = each($rss_items) )
|
4568 |
{
|
4569 |
echo '<li>';
|
4570 |
echo '<a class="rsswidget" href="'.esc_url( $item->get_permalink(), $protocolls=null, 'display' ).'" target="_blank">'. esc_html( $item->get_title() ) .'</a>';
|
7 |
{
|
8 |
if( is_array($escape) )
|
9 |
{
|
10 |
+
foreach( $escape as $index => $value ) {
|
11 |
$escape[ $index ] = powerpress_esc_html($value);
|
12 |
+
}
|
13 |
}
|
14 |
return esc_html($escape);
|
15 |
}
|
72 |
add_thickbox(); // we use the thckbox for some settings
|
73 |
wp_enqueue_script('jquery');
|
74 |
wp_enqueue_script('jquery-ui-core'); // Now including the library at Google
|
|
|
75 |
|
76 |
// Powerpress page
|
77 |
if( isset($_GET['page']) && strstr($_GET['page'], 'powerpress' ) !== false )
|
78 |
{
|
79 |
+
wp_enqueue_script('jquery-ui-tabs');
|
80 |
+
|
81 |
//wp_enqueue_script('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js');
|
82 |
if( preg_match('/powerpressadmin_(mobile|audio|video)player/', $_GET['page']) )
|
83 |
{
|
676 |
update_option('powerpress_track_number', $_POST['PowerPressTrackNumber']);
|
677 |
}
|
678 |
// Set all the tag values...
|
679 |
+
foreach( $GeneralPosted as $key => $value )
|
680 |
{
|
681 |
if( substr($key, 0, 4) == 'tag_' )
|
682 |
{
|
702 |
{
|
703 |
$json_data = false;
|
704 |
$api_url_array = powerpress_get_api_array();
|
705 |
+
foreach( $api_url_array as $index => $api_url )
|
706 |
{
|
707 |
$req_url = sprintf('%s/media/%s/coverart.json?url=%s', rtrim($api_url, '/'), $GeneralSettingsTemp['blubrry_program_keyword'], urlencode($TagValues['tag_coverart']) );
|
708 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
805 |
if( isset($GeneralSettingsTemp['episode_box_background_color']) )
|
806 |
$SaveEpisdoeBoxBGColor['episode_box_background_color'] = $GeneralSettingsTemp['episode_box_background_color']; // copy previous settings
|
807 |
|
808 |
+
foreach( $_POST['EpisodeBoxBGColor'] as $feed_slug_temp => $background_color ) {
|
809 |
+
break;
|
810 |
+
}
|
811 |
$SaveEpisdoeBoxBGColor['episode_box_background_color'][ $feed_slug_temp ] = $background_color;
|
812 |
powerpress_save_settings($SaveEpisdoeBoxBGColor);
|
813 |
}
|
1234 |
check_admin_referer('powerpress-add-caps');
|
1235 |
|
1236 |
$users = array('administrator','editor', 'author'); // , 'contributor', 'subscriber');
|
1237 |
+
foreach( $users as $null => $user )
|
1238 |
{
|
1239 |
$role = get_role($user);
|
1240 |
if( !empty($role) )
|
1255 |
check_admin_referer('powerpress-remove-caps');
|
1256 |
|
1257 |
$users = array('administrator','editor', 'author', 'contributor', 'subscriber');
|
1258 |
+
foreach( $users as $null => $user )
|
1259 |
{
|
1260 |
$role = get_role($user);
|
1261 |
if( !empty($role) )
|
1284 |
}
|
1285 |
|
1286 |
$users = array('administrator','editor', 'author'); // , 'contributor', 'subscriber');
|
1287 |
+
foreach( $users as $null => $user )
|
1288 |
{
|
1289 |
$role = get_role($user);
|
1290 |
if( !empty($role) )
|
1303 |
check_admin_referer('powerpress-remove-feed-caps');
|
1304 |
|
1305 |
$users = array('administrator','editor', 'author', 'contributor', 'subscriber', 'premium_subscriber', 'powerpress');
|
1306 |
+
foreach( $users as $null => $user )
|
1307 |
{
|
1308 |
$role = get_role($user);
|
1309 |
if( !empty($role) )
|
1391 |
// Clear the SG cachepress plugin:
|
1392 |
if (function_exists('sg_cachepress_purge_cache')) { sg_cachepress_purge_cache(); }
|
1393 |
|
1394 |
+
foreach( $errors as $null => $error )
|
1395 |
{
|
1396 |
?>
|
1397 |
<div class="updated"><p style="line-height: 125%;"><strong><?php echo $error; ?></strong></p></div>
|
1416 |
$Settings = get_option($field);
|
1417 |
if( !is_array($Settings) )
|
1418 |
$Settings = array();
|
1419 |
+
foreach( $SettingsNew as $key => $value ) {
|
1420 |
$Settings[$key] = $value;
|
1421 |
+
}
|
1422 |
if( $field == 'powerpress_general' && !isset($Settings['timestamp']) )
|
1423 |
$Settings['timestamp'] = time();
|
1424 |
|
1549 |
return $data;
|
1550 |
if( is_array($data) )
|
1551 |
{
|
1552 |
+
foreach( $data as $key => $value )
|
1553 |
{
|
1554 |
if( $key == 'itunes_summary' )
|
1555 |
continue; // Skip this one as we escape it in the form.
|
1571 |
if( !is_array($data) )
|
1572 |
return stripslashes($data);
|
1573 |
|
1574 |
+
foreach( $data as $key => $value )
|
1575 |
{
|
1576 |
if( is_array($value) )
|
1577 |
$data[$key] = powerpress_stripslashes($value);
|
1589 |
|
1590 |
$return = array();
|
1591 |
$post_types = get_post_types();
|
1592 |
+
foreach( $post_types as $index => $post_type )
|
1593 |
{
|
1594 |
if( $post_type == 'redirect_rule' || $post_type == 'attachment' || $post_type == 'nav_menu_item' || $post_type == 'revision' || $post_type == 'action' )
|
1595 |
continue;
|
1614 |
// array( feed-slugs => array('posttype1'=>'post type 1 title', 'posttype2'=>post type 2 title', ...) );
|
1615 |
$post_types = get_post_types();
|
1616 |
$FeedSlugPostTypeArray = array();
|
1617 |
+
foreach( $post_types as $index => $post_type )
|
1618 |
{
|
1619 |
$PostTypeSettingsArray = get_option('powerpress_posttype_'. $post_type );
|
1620 |
if( !$PostTypeSettingsArray )
|
1621 |
continue;
|
1622 |
|
1623 |
+
foreach( $PostTypeSettingsArray as $feed_slug => $PostTypeSettings )
|
1624 |
{
|
1625 |
$FeedSlugPostTypeArray[ $feed_slug ][ $post_type ] = ( empty($PostTypeSettings['title'])? $feed_slug : $PostTypeSettings['title'] );
|
1626 |
}
|
1654 |
if( empty($Powerpress['posttype_podcasting']) )
|
1655 |
$page_types = powerpress_admin_get_post_types('page'); // Get pages by capability type
|
1656 |
|
1657 |
+
foreach( $page_types as $null => $page_type )
|
1658 |
{
|
1659 |
if( empty($FeedSlugPostTypesArray[ 'podcast' ][ $page_type ]) )
|
1660 |
add_meta_box('powerpress-podcast', __('Podcast Episode', 'powerpress'), 'powerpress_meta_box', $page_type, 'normal');
|
1678 |
if( empty($FeedSlugPostTypesArray) )
|
1679 |
$FeedSlugPostTypesArray = array();
|
1680 |
|
1681 |
+
foreach( $FeedSlugPostTypesArray as $feed_slug => $FeedSlugPostTypes )
|
1682 |
{
|
1683 |
+
foreach( $FeedSlugPostTypes as $post_type => $type_title )
|
1684 |
{
|
1685 |
if ( $feed_slug != 'podcast' || $post_type != 'post' ) // No the default podcast feed
|
1686 |
{
|
1698 |
{
|
1699 |
$FeedDefaultPodcast = get_option('powerpress_feed_podcast');
|
1700 |
|
1701 |
+
foreach( $post_types as $null => $post_type )
|
1702 |
{
|
1703 |
// Make sure this post type can edit the default podcast channel...
|
1704 |
if( !empty($FeedDefaultPodcast['custom_post_type']) && $FeedDefaultPodcast['custom_post_type'] != $post_type )
|
1708 |
add_meta_box('powerpress-podcast', __('Podcast Episode (default)', 'powerpress'), 'powerpress_meta_box', $post_type, 'normal');
|
1709 |
}
|
1710 |
|
1711 |
+
foreach( $Powerpress['custom_feeds'] as $feed_slug => $feed_title )
|
1712 |
{
|
1713 |
if( $feed_slug == 'podcast' )
|
1714 |
continue;
|
1718 |
|
1719 |
|
1720 |
reset($post_types);
|
1721 |
+
foreach( $post_types as $null => $post_type )
|
1722 |
{
|
1723 |
// Make sure this post type can edit the default podcast channel...
|
1724 |
if( !empty($FeedCustom['custom_post_type']) && $FeedCustom['custom_post_type'] != $post_type )
|
1733 |
else // This handles all podcast post types and default 'post'. if post type podcasting enabled.
|
1734 |
{
|
1735 |
reset($post_types);
|
1736 |
+
foreach( $post_types as $null => $post_type )
|
1737 |
{
|
1738 |
if( empty($FeedSlugPostTypesArray[ 'podcast' ][ $post_type ]) )
|
1739 |
add_meta_box('powerpress-podcast', __('Podcast Episode', 'powerpress'), 'powerpress_meta_box', $post_type, 'normal');
|
1746 |
$post_types = powerpress_admin_get_post_types( POWERPRESS_CUSTOM_CAPABILITY_TYPE );
|
1747 |
if( !empty($post_types) )
|
1748 |
{
|
1749 |
+
foreach( $Powerpress['custom_feeds'] as $feed_slug => $feed_title )
|
1750 |
{
|
1751 |
if( $feed_slug == 'podcast' )
|
1752 |
continue;
|
1754 |
$FeedCustom = get_option('powerpress_feed_'.$feed_slug);
|
1755 |
|
1756 |
reset($post_types);
|
1757 |
+
foreach( $post_types as $null => $post_type )
|
1758 |
{
|
1759 |
if( !empty($FeedCustom['custom_post_type']) && $FeedCustom['custom_post_type'] != $post_type )
|
1760 |
continue;
|
1799 |
|
1800 |
add_submenu_page($parent_slug, __('Import podcast feed from SoundCloud, LibSyn, PodBean or other podcast service.', 'powerpress'), __('Import Podcast', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_import_feed.php', 'powerpress_admin_page_import_feed');
|
1801 |
add_submenu_page($parent_slug, __('Migrate media files to Blubrry Podcast Media Hosting with only a few clicks.', 'powerpress'), __('Migrate Media', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_migrate.php', 'powerpress_admin_page_migrate');
|
1802 |
+
add_submenu_page($parent_slug, __('PowerPress Podcasting SEO', 'powerpress'), '<span style="color:#f18500">'. __('Podcasting SEO', 'powerpress') .'</span> ', POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_search.php', 'powerpress_admin_page_search');
|
1803 |
|
1804 |
add_submenu_page($parent_slug, __('PowerPress Audio Player Options', 'powerpress'), __('Audio Player', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_player.php', 'powerpress_admin_page_players');
|
1805 |
add_submenu_page($parent_slug, __('PowerPress Video Player Options', 'powerpress'), __('Video Player', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_videoplayer.php', 'powerpress_admin_page_videoplayers');
|
1843 |
|
1844 |
if( $Episodes )
|
1845 |
{
|
1846 |
+
foreach( $Episodes as $feed_slug => $Powerpress )
|
1847 |
{
|
1848 |
$field = 'enclosure';
|
1849 |
if( $feed_slug != 'podcast' )
|
2106 |
$FeatureEpisodes = array();
|
2107 |
|
2108 |
$PowerpressFeature = $_POST['PowerpressFeature'];
|
2109 |
+
foreach( $PowerpressFeature as $feed_slug => $set_featured )
|
2110 |
{
|
2111 |
if( !empty($set_featured) )
|
2112 |
$FeatureEpisodes[ $feed_slug ] = $post_ID;
|
2488 |
{
|
2489 |
if( validChars.indexOf( url.charAt(x) ) == -1 )
|
2490 |
{
|
2491 |
+
jQuery( '#'+DestDiv ).text('<?php echo esc_js( __('Media URL contains characters that may cause problems for some clients. For maximum compatibility, only use letters, numbers, dash - and underscore _ characters only.', 'powerpress')); ?>');
|
2492 |
jQuery( '#'+DestDiv ).css('display', 'block');
|
2493 |
return false;
|
2494 |
}
|
2916 |
$languages[] = 'en_US'; // fallback to the en_US version
|
2917 |
|
2918 |
$template_content = false;
|
2919 |
+
foreach( $languages as $index => $lang )
|
2920 |
{
|
2921 |
$template_content = powerpress_remote_fopen( $template_url . $lang . '.txt' );
|
2922 |
if( empty($template_content) ) { // Lets force cURL and see if that helps...
|
3443 |
if( count($post_args) > 0 )
|
3444 |
{
|
3445 |
$post_query = '';
|
3446 |
+
foreach( $post_args as $name => $value )
|
3447 |
{
|
3448 |
if( $post_query != '' )
|
3449 |
$post_query .= '&';
|
3558 |
if( !empty($Settings['posttype_podcasting']) )
|
3559 |
{
|
3560 |
$FeedSlugPostTypesArray = get_option('powerpress_posttype-podcasting');
|
3561 |
+
foreach( $FeedSlugPostTypesArray as $feed_slug => $null )
|
3562 |
{
|
3563 |
if( empty($CustomFeeds[$feed_slug]) )
|
3564 |
$CustomFeeds[$feed_slug] = $feed_slug;
|
3565 |
}
|
3566 |
}
|
3567 |
|
3568 |
+
foreach( $CustomFeeds as $feed_slug => $null )
|
3569 |
{
|
3570 |
$field = 'enclosure';
|
3571 |
if( $feed_slug != 'podcast' )
|
3649 |
set_time_limit(60*20); // give it 20 minutes just in case
|
3650 |
$json_data = false;
|
3651 |
$api_url_array = powerpress_get_api_array();
|
3652 |
+
foreach( $api_url_array as $index => $api_url )
|
3653 |
{
|
3654 |
$req_url = sprintf('%s/media/%s/%s?format=json&publish=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($EnclosureURL) );
|
3655 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
3958 |
if ( $results = $wpdb->get_results("SELECT COUNT(post_id) AS episodes_total FROM $wpdb->postmeta WHERE meta_key = '$field'", ARRAY_A) ) {
|
3959 |
if( count($results) )
|
3960 |
{
|
3961 |
+
foreach( $results as $key => $row ) {
|
3962 |
+
break;
|
3963 |
+
}
|
3964 |
if( $row['episodes_total'] )
|
3965 |
return $row['episodes_total'];
|
3966 |
}
|
4039 |
|
4040 |
$PostArgs = array();
|
4041 |
$Fields = array('title','artist','album','genre','year','track','composer','copyright','url');
|
4042 |
+
foreach( $Fields as $null => $field )
|
4043 |
{
|
4044 |
if( !empty($Settings[ 'tag_'.$field ]) )
|
4045 |
{
|
4090 |
|
4091 |
// Get meta info via API
|
4092 |
$api_url_array = powerpress_get_api_array();
|
4093 |
+
foreach( $api_url_array as $index => $api_url )
|
4094 |
{
|
4095 |
$req_url = sprintf('%s/media/%s/%s?format=json&id3=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($file) );
|
4096 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
4117 |
$Settings = get_option('powerpress_general');
|
4118 |
$content = false;
|
4119 |
$api_url_array = powerpress_get_api_array();
|
4120 |
+
foreach( $api_url_array as $index => $api_url )
|
4121 |
{
|
4122 |
$req_url = sprintf('%s/media/%s/%s?format=json&info=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($file) );
|
4123 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
|
4255 |
if( empty($GeneralSettings['hide_warnings']) && count( $Mp3Info->GetWarnings() ) > 0 )
|
4256 |
{
|
4257 |
$Warnings = $Mp3Info->GetWarnings();
|
4258 |
+
foreach( $Warnings as $null => $warning )
|
4259 |
{
|
4260 |
$warning = sprintf( __('Warning, Media URL %s', 'powerpress'), $media_file) .': '. $warning .' [<a href="http://create.blubrry.com/resources/powerpress/using-powerpress/warning-messages-explained/" target="_blank">'. __('PowerPress Warnings Explained', 'powerpress') .'</a>]';
|
4261 |
if( $return_warnings )
|
4308 |
if( count( $Mp3Info->GetWarnings() ) > 0 )
|
4309 |
{
|
4310 |
$Warnings = $Mp3Info->GetWarnings();
|
4311 |
+
foreach( $Warnings as $null => $warning )
|
4312 |
powerpress_add_error( sprintf( __('Warning, Media URL %s', 'powerpress'), $media_file) .': '. $warning .' [<a href="http://create.blubrry.com/resources/powerpress/using-powerpress/warning-messages-explained/" target="_blank">'. __('PowerPress Warnings Explained', 'powerpress') .'</a>]' );
|
4313 |
}
|
4314 |
}
|
4392 |
if( $return )
|
4393 |
{
|
4394 |
$html = '';
|
4395 |
+
foreach( $options as $key=> $value )
|
4396 |
{
|
4397 |
$html .= '<option value="'. esc_attr($key) .'"'. ( ($selected !== null && strcmp($selected, $key) == 0 )?' selected':'') .'>';
|
4398 |
$html .= htmlspecialchars($value);
|
4401 |
|
4402 |
return $html;
|
4403 |
}
|
4404 |
+
foreach( $options as $key=> $value )
|
4405 |
{
|
4406 |
echo '<option value="'. esc_attr($key) .'"'. ( ($selected !== null && strcmp($selected, $key) == 0 )?' selected':'') .'>';
|
4407 |
echo htmlspecialchars($value);
|
4473 |
else
|
4474 |
{
|
4475 |
$first_item = true;
|
4476 |
+
foreach( $rss_items as $null=> $item)
|
4477 |
{
|
4478 |
$enclosure = $item->get_enclosure();
|
4479 |
echo '<li>';
|
4570 |
}
|
4571 |
else
|
4572 |
{
|
4573 |
+
foreach( $rss_items as $null=> $item)
|
|
|
4574 |
{
|
4575 |
echo '<li>';
|
4576 |
echo '<a class="rsswidget" href="'.esc_url( $item->get_permalink(), $protocolls=null, 'display' ).'" target="_blank">'. esc_html( $item->get_title() ) .'</a>';
|
readme.txt
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
=== PowerPress Podcasting plugin by Blubrry ===
|
2 |
Contributors: amandato, blubrry
|
3 |
-
Tags: podcasting, podcast, podcaster, powerpress, itunes,
|
4 |
Requires at least: 3.6
|
5 |
Requires PHP: 5.2
|
6 |
-
Tested up to: 4.9.
|
7 |
-
Stable tag: 7.
|
8 |
-
Donate link: https://
|
9 |
License: GPLv2 or later
|
10 |
|
11 |
-
No. 1 Podcasting plugin for WordPress, with simple & advanced modes, players, subscribe tools, and more! Supports
|
12 |
|
13 |
== Description ==
|
14 |
|
@@ -16,22 +16,22 @@ No. 1 Podcasting plugin for WordPress, with simple & advanced modes, players, su
|
|
16 |
|
17 |
[youtube https://www.youtube.com/watch?v=twqKrVehY3o]
|
18 |
|
19 |
-
Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast page embeds and sidebar widgets, podcasting SEO features, and more! Fully supports
|
20 |
|
21 |
= Simple Mode =
|
22 |
If you are just getting started or feel overwelmed with all the settings and options, switch to Simple mode! PowerPress's Simple Mode will walk you through getting started in 3 easy steps.
|
23 |
|
24 |
1. Setup your Podcast quickly with only the essential settings
|
25 |
1. Create your first Episode
|
26 |
-
1. Submit your podcast to iTunes
|
27 |
|
28 |
When you're ready you can switch to Advanced mode to tap into all the options professionals would want.
|
29 |
|
30 |
= PowerPress Key Features =
|
31 |
-
- Full iTunes & Google
|
32 |
- Integrated HTML5 Media Players: Audio/video Web players with embed support from sites such as YouTube.
|
33 |
- Subscribe tools: Create subscribe page with our exclusive subscribe shortcode embed and subscribe sidebar widget optimized for responsive websites, high-resolution screens and Apple Retina displays.
|
34 |
-
- Podcasting SEO: Improve discovery of your podcast on search engines such as Google, and with the
|
35 |
- Podcast Importing: Import your podcast from SoundCloud, LibSyn, PodBean, Squarespace, or other podcast RSS feed.
|
36 |
- Migration tools: Quickly migrate from PodPress, TGS Podcasting, Seriously Simple Podcasting, Blogger, or Movable Type without losing episodes.
|
37 |
- Multi-podcast support: Create separate podcasts by category (Category Podcasting) or by media format (Podcast Channels).
|
@@ -39,17 +39,17 @@ When you're ready you can switch to Advanced mode to tap into all the options pr
|
|
39 |
- *Media Statistics: Get FREE Blubrry Media Statistics from your WordPress dashboard.
|
40 |
- Multi-languages and locales: See [PowerPress in your language](http://create.blubrry.com/resources/powerpress/powerpress-language/) for details.
|
41 |
|
42 |
-
= Includes Full
|
43 |
-
Blubrry PowerPress fully supports iTunes, which is required for podcasting. PowerPress comes with the following
|
44 |
|
45 |
-
*
|
46 |
-
* Optimized
|
47 |
-
* Tunes artwork: Upload and manage your
|
48 |
-
*
|
49 |
-
* Feed Episode Maximizer: Increase the number of episodes viewed on
|
50 |
|
51 |
-
= Includes Full Google
|
52 |
-
Blubrry PowerPress
|
53 |
|
54 |
= Integrated Media Players =
|
55 |
Blubrry PowerPress includes extensive Web player options to display your podcast audio and video in your Web pages.
|
@@ -68,9 +68,9 @@ Blubrry PowerPress includes extensive Web player options to display your podcast
|
|
68 |
A Blubrry PowerPress exclusive, podcast subscribe tools help you convert Web visitors into podcast subscribers. Subscribe options include:
|
69 |
|
70 |
* [Subscribe page](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/subscribe-page/): Instantly create a subscribe page with simplified instructions on how to subscribe to your podcast using the PowerPress subscribe page shortcode.
|
71 |
-
* [Subscribe page shortcode](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/powerpress-subscribe-shortcode/): Add the `[powerpress_subscribe]` shortcode to include a mobile-device optimized subscribe embed in any post or page that includes buttons to subscribe on
|
72 |
-
* Subscribe sidebar widget: Mobile device optimized sidebar buttons to subscribe on
|
73 |
-
* Subscribe links: Subscribe on
|
74 |
* Retina enabled: Subscribe button images optimized for high resolution displays including Apple Retina displays.
|
75 |
* Responsive: Subscribe tools are designed for any screen and optimized for touch screens by providing custom buttons that are indrustry standard 48 pixels in height optimized for touch screen use.
|
76 |
|
@@ -90,7 +90,7 @@ The Blubrry basic statistics service is FREE. Our [Premium Statistics Service](h
|
|
90 |
= Advanced Features for those who need more =
|
91 |
Want more? We've got more! With a simple click you can enable advanced features and options. Check out some of the advanced features:
|
92 |
|
93 |
-
* [Podcasting SEO settings](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/podcasting-seo-settings/): Utilize the
|
94 |
* Embeds: Provide embeds your audience can take with them (just like YouTube embeds)
|
95 |
* Media size and duration detection: Enter your media URL and let the PowerPress do the rest.
|
96 |
* Category Casting: Add podcast support to your WordPress category feeds.
|
@@ -103,7 +103,7 @@ Want more? We've got more! With a simple click you can enable advanced features
|
|
103 |
* WordPress MultiSite: Blubrry PowerPress is compatible with WordPress MultiSite and can be extended using the [Blubrry PowerPress MultiSite add-on plugin](https://wordpress.org/plugins/powerpress-multisite/).
|
104 |
* *Supported syndication formats: mp3, m4a, mp4, m4v, webm, ogg, oga, ogv, wma, ra, mp4a, m4v, mp4v, mpg, asf, avi, wmv, flv, swf, mov, divx, 3gp, midi, wav, aa, pdf, torrent, m4b, m4r, epub.
|
105 |
|
106 |
-
*Apple
|
107 |
|
108 |
= Migrating from PodPress or other podcasting plugin? =
|
109 |
Switching to from PodPress to PowerPress is seamless. Simply enable PowerPress then disable PodPress and you're done! PowerPress will continue where plugin your old plugin left off by including your previously created episodes in your feeds and Web pages.
|
@@ -166,11 +166,10 @@ If you are having a problem specifically with the player and links, try the "Hav
|
|
166 |
* [Eli's PowerPress Addon Widget](http://wordpress.org/extend/plugins/podpress-addons/) - Adds a sidebar widget that lists your podcast episodes linked to the play in a new window PowerPress player.
|
167 |
* [PowerPress Posts From MySQL](http://wordpress.org/extend/plugins/powerpress-posts-from-mysql/developers/) - Creates blog posts with PowerPress podcast episode information from a MySQL table.
|
168 |
* [Featured Podcast Widget](http://wordpress.org/plugins/featured-podcast-widget/), [Home Page](http://www.richardfarrar.com/featured-podcast-widget-for-wordpress/) - A widget that enables you to display your latest podcast from a category or featured podcast utilising the PowerPress plugin's default player.
|
169 |
-
|
170 |
-
|
171 |
|
172 |
= Why doesn't Blubrry PowerPress support multiple enclosures in one feed item/post? =
|
173 |
-
Blubrry PowerPress does not allow you to include multiple media files for one feed item (blog post). This is because each podcatcher handles multiple enclosures in feeds differently.
|
174 |
|
175 |
As a alternative, PowerPress allows you to create additional Custom Podcast Feeds to associate any magnitude of media format and/or length in a blog post to specific custom feeds. For example, you can create one blog post associated to separate video and audio podcast feeds saving you time from entering your show notes twice.
|
176 |
|
@@ -228,12 +227,23 @@ To install Blubrry PowerPress manually, follow these steps:
|
|
228 |
== Changelog ==
|
229 |
|
230 |
= Next Major Release Announcements =
|
231 |
-
* Facebook Instant Articles for podcasting coming in next release!
|
232 |
* 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#feedback) with your name and email.
|
233 |
|
234 |
= Fan of PowerPress and want to show your support? =
|
235 |
If you are a fan of PowerPress, we would greatly appreciate it if you could take a moment and [leave us a review on WordPress.org](https://wordpress.org/support/plugin/powerpress/reviews/?rate=5#new-post). Your support is greatly appreciated!
|
236 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
= 7.2 =
|
238 |
* Released on 12/13/2017
|
239 |
* Added code to allow customization of Blubrry player style and colors.
|
@@ -373,225 +383,6 @@ If you are a fan of PowerPress, we would greatly appreciate it if you could take
|
|
373 |
* Embed link now toggles embed box when clicked multiple times.
|
374 |
* ATTENTION: The 1 pixel out audio player will be removed from PowerPress 7.1.
|
375 |
|
376 |
-
|
377 |
-
= 6.3.3 =
|
378 |
-
* Released on 4/2/2016
|
379 |
-
* Improved feed import for PodBean users (they appear to be blocking user agents like SquareSpace)
|
380 |
-
* Adding `<br />` to new lines for iTunes summary so new lines appear on iTunes desktop app (Thanks Daniel for input!)
|
381 |
-
* Added additional code to handle ajax verify media URL errors.
|
382 |
-
* Added Feed setting option `Do not allow other plugins to modify podcast feeds.`.
|
383 |
-
* Added Feed setting option `Include RSS Image in feeds.`, default is enabled. For themes that set their own site icon in the feeds.
|
384 |
-
* Added logic to handle post type podcast only feeds. (Thanks Alan for helping us debug!)
|
385 |
-
* Added logic to prevent featured episode from appearing on custom post type feeds.
|
386 |
-
* Fixed bug with post type podcasting channel level feed settings not applying correctly when using slug `podcast`. (Thanks Joe for pointing out the issue)
|
387 |
-
* Fixed bug with enhanced itunes summary not displaying in some circumstances. (Thanks Filip for bringing to our attention!)
|
388 |
-
* Podcast Subscribe sidebar widget category podcasting option now accepts category slug values (in addition to the category numeric ID)
|
389 |
-
* Added define option `POWERPRESS_FEED_AUTH_PRINT_WP_ERRORS` to print `wp_authentication` error message when password protected feed authentication fails. This is useful for debugging purposes.
|
390 |
-
* Fixed typos in RSS import page. (Thanks Robin!)
|
391 |
-
|
392 |
-
|
393 |
-
= 6.3.2 =
|
394 |
-
* Released on 2/21/2016
|
395 |
-
* Added import podcast from Squarespace option (thanks Steve for bringing to our attention that importing from Squarespace requires added logic)
|
396 |
-
* The itunes:summary tag values can now use CDATA encapsulation. Note updated that `<itunes:summary>` may not contain HTML, except for hyperlinks. (Thanks Apple iTunes team!)
|
397 |
-
* Added checkbox to enable wrapping iTunes summary values with `<![CDATA[ ... ]]>` tags. This may become a permanent feature.
|
398 |
-
* Added new define option `POWERPRESS_FEED_TEMPLATE`. (Thanks Ron for the suggestion!)
|
399 |
-
* Added new define option `POWERPRESS_PREMIUM_GROUPS_PLUGIN`, for premium podcasting with Groups plugin commonly paired with WooCommerce.
|
400 |
-
* Removed iTunes explicit 'no' value from `<itunes:explicit>` tag. (iTunes change - February, 2016)
|
401 |
-
* Updated iTunes recommended image size to 3000 x 3000 saved in a compressed format such as JPG. (iTunes change - February, 2016)
|
402 |
-
* Fixed notice message from appearing when using the playlist player (Thanks chefjoef for bringing to our attention).
|
403 |
-
* Added width and height attributes to img tag for the HTML5 audio player image. (Thanks Eduard for the patch and information about the Accelerated Mobile Pages Project!)
|
404 |
-
* Fixed tab control styling when other themes or plugins use newer versions of jquery-ui.
|
405 |
-
* Added dismissable notification message to alert PowerPress users of the latest iTunes changes.
|
406 |
-
* Enhanced iTunes summary option now formats new lines with <br /> tag for use on iOS podcasts app.
|
407 |
-
|
408 |
-
|
409 |
-
= 6.3.1 =
|
410 |
-
* Released on 1/6/2016
|
411 |
-
* Fixed messages that could occur the first time you select a video player when PHP notices enabled on server. (Thanks Paul Bearne for bringing to our attention!)
|
412 |
-
* Fixed date issue when importing feeds. (Thanks tiptopolive for bringing to our attention!)
|
413 |
-
* Set item limit advanced option added for podcast importing.
|
414 |
-
|
415 |
-
|
416 |
-
= 6.3 =
|
417 |
-
* Released on 12/14/2015
|
418 |
-
* Import Podcast by feed added. You can now migrate your podcast from any service such as SoundCloud, LibSyn or PodBean into your own WordPress site powered by PowerPress!. With only a couple clicks you can import your program information, artwork and episodes.
|
419 |
-
**NOTE: Import feature was planned for PowerPress 7.0. Based on requests and rumors we are releasing this feature now.
|
420 |
-
* Import podcast feature includes program level information (Thanks Daniel Lewis for your feedback!)
|
421 |
-
* Import podcast feature downloads iTunes artwork.
|
422 |
-
* Import podcast feature advanced options: Allow duplicate episode titles and dates, Overwrite podcast program information, and include blog posts.
|
423 |
-
* Import podcast feature only imports your feed and meta information. Media files may be migrated using the Media Migration tool or manually.
|
424 |
-
* Fixed bug with podcast titles not displaying in some situations when using WordPress versions older than 4.4. (Thanks Daniel Lewis for pointing out the issue)
|
425 |
-
* Fixed bug with image title not matching feed title (Thanks EntBuddha for the heads up!)
|
426 |
-
* Happy Holidays! [Jeff Buckley cover of Everyday People](https://www.youtube.com/watch?v=6CHwqGCnh7E)
|
427 |
-
|
428 |
-
|
429 |
-
= 6.2.2 =
|
430 |
-
* Released on 12/9/2015
|
431 |
-
* WordPress 4.4 has changed how feed titles are set. Please update PowerPress immediately to avoid feed title issues.
|
432 |
-
* Feed titles in WP 4.4 no longer use the `get_bloginfo_rss` filter. All other feed fields appear to still be using the `get_bloginfo_rss` filter at this time. We will be taking additional measures in future releases of PowerPress assuming WordPress core will be abandoning the `get_bloginfo_rss` filter for all other feed fields.
|
433 |
-
* YOU MUST UPDATE POWERPRESS TO 6.2.2 IF YOU ARE USING WORDPRESS 4.4
|
434 |
-
* Tested latest changes does not break backwards compatibility with WordPRess 4.3 or older.
|
435 |
-
* Fixed Clammr typos (Thanks Robin for the heads up!)
|
436 |
-
* Increased fields with maxlength 250 to 255 for iTunes settings (Thanks Robin for pointing out limit!)
|
437 |
-
|
438 |
-
|
439 |
-
= 6.2.1 =
|
440 |
-
* Released on 11/22/2015
|
441 |
-
* Removed logic added in last updated to call the do_shortcode function. We originally added this code to solve a theme conflict, it appears to have cause problems for others so we're reverting back.
|
442 |
-
If your theme overrides the audio player shortcode (player will only appear correctly when calling `do_shortcode('[audio]')`), then you must include the following define in your wp-config.php: `POWERPRESS_DO_SHORTCODE`.
|
443 |
-
* Added new `itunes_subtitle="true"` attribute for `powerpress_subscribe` shortcode, will put your itunes subtitle below your podcast title in the subscribe widget. (Thanks Robert for the feature suggestion!)
|
444 |
-
* Added new `subtitle="your custom subtitle"` attribute for `powerpress_subscribe` shortcode, you can now customize a subtitle that goes below your title. (Again thanks Robert!)
|
445 |
-
* Added logic to use cURL library when native HTTP library in WordPress fails. (Thanks Zuke for helping us debug the problem!)
|
446 |
-
* Added new logic to check for `the_content`/`the_excerpt` used in the http head. Should fix issue for folks using Yoast's SEO plugin with Facebook social enabled.
|
447 |
-
* Added code for the Clammr audio player to work in the "play in new window".
|
448 |
-
* Added new "Having Issues?" option, "wp_head check", will not add player and links if within the wp_head function call.
|
449 |
-
* Updated links for submitting to iTunes and Google Play Music Podcast Portal.
|
450 |
-
|
451 |
-
|
452 |
-
= 6.2 =
|
453 |
-
* Released on 11/16/2015
|
454 |
-
* Clammr Audio Player option added to PowerPress.
|
455 |
-
* Added logic to call the do_shortcode function when themes override the audio shortcode.
|
456 |
-
* Fixed bug in the media redirect url function when switching between sites for a MultiSite. (Thanks Avi for the patch!)
|
457 |
-
* HTML output will only append a "\n" when in debug mode. This will prevent situation where some plugins convert new lines into `<br>` tags. (Thanks Avi for bringing to our attention)
|
458 |
-
* Added new define option `POWERPRESS_DO_SHORTCODE`, when set in your wp-config.php the `do_shortcode` is used rather than calling the `wp_audio_shortcode` function.
|
459 |
-
* Moved the `wp_enqueue_style` for subscribe widget within the shortcode. Shortcode can now be used outside of `the_content`. (Thanks Robert for letting us know about the bug!)
|
460 |
-
|
461 |
-
|
462 |
-
= 6.1 =
|
463 |
-
* Released on 10/30/2015
|
464 |
-
* Added Google Play Music podcast directory support.
|
465 |
-
* Added Donate Link option under Feed settings tab.
|
466 |
-
* Removed the enqueuing of mediaelement.js scripts and styles for the player and links in theme pages. PowerPress's player.min.js will only be included on pages with the player or player links. (Thanks wadehammes for bringing to our attention).
|
467 |
-
* Updated iTunes subtitle and summary values to treat utf8mb4 data as utf8.
|
468 |
-
* Added better logic for checking for UTF8 values for iTunes attributes.
|
469 |
-
* Added the text domain setting in the powerpress.php file for [translate.wordpress.org](http://translate.wordpress.org) use.
|
470 |
-
* Enhanced iTunes summary bug where some iTunes summaries were getting cut to 255 characters fixed.
|
471 |
-
* Code updated to support PHP7.
|
472 |
-
|
473 |
-
|
474 |
-
= 6.0.5 =
|
475 |
-
* Released on 9/8/2015
|
476 |
-
* Changed the Play in New Window logic to support WordPress MultiSite `switch_to_blog()` function calls (Thanks Avi for the patch!)
|
477 |
-
* Removed the pp_flashembed JavaScript function from the player.js include (we are no longer using flash for fallback).
|
478 |
-
* Minified version of player.min.js updated.
|
479 |
-
* Fixed possible XSS vulnerability with the settings tab control.
|
480 |
-
* Added new `POWERPRESS_CURL` define option for wp-config.php. When set, PowerPress will use it's own cURL logic rather than use the `wp_remote_get()`/`wp_remote_post()` functions.
|
481 |
-
|
482 |
-
|
483 |
-
= 6.0.4 =
|
484 |
-
* Released on 8/27/2015
|
485 |
-
* Added new Subscribe by Email option to Subscribe Links feature. By default this new feature is not enabled. Go to "PowerPress Settings" > "Media Appearance" to enable Subscribe by Email.
|
486 |
-
* Enhanced iTunes Summary feature now maintains <a> links.
|
487 |
-
* Added check for null values returned from `get_role` function.
|
488 |
-
* HTTPS URL warnings have been removed. The past year usage of podcast applications that do not support https is now negligible.
|
489 |
-
* Added support for https:// media URLs for Blubrry and RawVoice statistics services.
|
490 |
-
* Verify media URL option now verifies SSL certificates and hostnames for https URLs.
|
491 |
-
* Added Podcast subscribe link support to post type podcasting.
|
492 |
-
* Links to Feed Validator have been temporarily removed, service does not correctly validate secure podcast feeds. We are working on an alternative.
|
493 |
-
* Moved defines for customizing links within the `plugins_loaded` action after translations are loaded.
|
494 |
-
* Fixed bug with linking blubrry account displayed HTML syntax for sign-in errors.
|
495 |
-
* Added logic to the Subscribe to Podcast sidebar widget to only display category, feed slug and post type settings when appropriate.
|
496 |
-
* Added new define option `POWERPRESS_NO_THE_EXCERPT`, allows you to remove PowerPress's the_excerpt filter for special situations that warrant it. (Thanks Avi for the code)
|
497 |
-
* Changed logic for the `powerpress_get_the_excerpt_rss` function. (Thanks Avi for the code)
|
498 |
-
* Added 'mov' file extensions to the list of migrate-able media files.
|
499 |
-
* Updated migrate media logic to allow for resetting of migration.
|
500 |
-
* Improved error reporting for blubrry.com API calls.
|
501 |
-
* Tweaked how Blubrry account linking is presented in plugin to make it easier.
|
502 |
-
|
503 |
-
|
504 |
-
= 6.0.3 =
|
505 |
-
* Released on 5/7/2015
|
506 |
-
* Added define option `POWERPRESS_DEFAULT_MEDIA_URL` to enable the default media URL field.
|
507 |
-
* Fixed notice messages being printed when populating category podcasting settings (thanks slapdashcast for bringing to our attention)
|
508 |
-
* iTunes image requirements updated, 3000x3000 is now the maximum (previously 2048x2048) for iTunes artwork. 1400x1400 is still the recommended size.
|
509 |
-
* Added [Subscribe on Android](http://subscribeonandroid.com/), the one-click subscribe protocol for Android. There are currently 6 Android apps that support Subscribe on Android one-click with more to follow in the coming weeks.
|
510 |
-
* PowerPress Playlist Player SQLi injection vulnerability fixed (Thanks Ben Bidner, Security Wrangler @ Automattic.com!)
|
511 |
-
* Subscribe tools now use the esc_attr, esc_url and esc_html native WordPress functions (rather than htmlspecialchars).
|
512 |
-
|
513 |
-
|
514 |
-
= 6.0.2 =
|
515 |
-
* Released on 3/21/2015
|
516 |
-
* Fixed bug where specific global podcast settings are not applied when podcast channel settings iTunes new feed URL or feed maximizer option were configured then deleted afterward. This only effected settings if you deleted the default podcast feed.
|
517 |
-
* Added wp-config define option `POWERPRESS_DISABLE_ITUNES_UTF8`, when set to true PowerPress will not convert iTunes values to UTF-8. This is for the very small number of folks who are not using UTF-8 in their website.
|
518 |
-
* The subscribe shortcode embed attributes are now strictly enforced. If you enter a category or a podcast channel and it does not exist, the shortcode will be empty and will no longer fall-back to the main podcast settings.
|
519 |
-
* The subscribe shortcode embed specifying a category not displaying category fixed (thanks elembemedia for bringing to our attention)
|
520 |
-
* Subscribe links below player for category podcasts now works but only if you select 1 category. 2 or more categories complicates things.
|
521 |
-
* Added logic to fix situation with JetPack and automatic excerpts. Manual excerpts or regular content pages are not affected. (Thanks grahamharper for the details!)
|
522 |
-
* Added new "Having Issues?" option "Yes, excluding excerpts", will apply player and links fix logic except when the_excerpt filter is called first.
|
523 |
-
* AudioObject and VideoObject descriptions are now set using the blog post if no itunes subtitle is set.
|
524 |
-
* Fixed Episode Titles bug, if you did not set a custom episode title the program title was not appended.
|
525 |
-
* Fixed "Feature Episode" bug, unchecking the option will now properly save.
|
526 |
-
* Fixed playlist player date attribute not applying when set to false (thanks trb310 for pointing out the issue!)
|
527 |
-
* Danish translation updated, thanks [Team Blogos](http://wordpress.blogos.dk/s%C3%B8g-efter-downloads/?did=280)!
|
528 |
-
* Added new subscribe embed attribute "heading", you can now customize the "Subscribe to" label, e.g. add "the" to the Subscribe to label `[powerpress_subscribe heading="Subscribe to the"`
|
529 |
-
* Added new define `POWERPRESS_DEBUG` for PowerPress debugging.
|
530 |
-
* Coming in PowerPress 6.1 we will allow podcasters who use category podcasting to set one of their category podcasts as the "Default". This podcast category will replace the default podcast feed. This will solve a number of complications Category podcasting has in regards to slug name collisions as well as in-page features like the subscribe links.
|
531 |
-
* Coming in PowerPress 6.1 Podcasting SEO field options will be customizable.
|
532 |
-
|
533 |
-
|
534 |
-
= 6.0.1 =
|
535 |
-
* Released on 1/25/2015
|
536 |
-
* Duration detection option now works for sites running PHP 5.2 (If you can, please upgrade your PHP, but we understand that some situations warrant running outdated software)
|
537 |
-
* Tweaked CSS for subscribe sidebar widget font color to always be white.
|
538 |
-
* Changed the new 6.0 logic that prevents players from being added until after the wp_head is called, we now ignore when having theme issues option is selected to fix custom theme logic that may happen before wp_head.
|
539 |
-
* Added additional "Having Theme Issues" option, alternative logic to try to fix the situation where the player and/or links does not appear with some themes and plugins.
|
540 |
-
* Even though PowerPress 6.0 requires WordPress 3.6+, code has been added to prevent error messages in the event plugin updated on older version of WordPress.
|
541 |
-
* Fixed bug where malicious code could be injected into the edit existing category podcasting page. Thanks [Netsparker](https://www.netsparker.com) for reporting the issue.
|
542 |
-
* Fixed bug with Podcasting SEO settings where Episode Titles could not be disabled.
|
543 |
-
* Fixed bug where Godaddy customers using PHP 5.4 were getting a blank screen for the PowerPress Settings page due to a bug in the stristr() function. Godaddy is aware of the problem and working on a fix. In the mean time we've replaced calls to stristr() with preg_match().
|
544 |
-
* Podcast Republic now uses the podcast feed URL for subscriptions (rather than the iTunes URL).
|
545 |
-
|
546 |
-
|
547 |
-
= 6.0 =
|
548 |
-
* Released on 12/19/2014
|
549 |
-
* You must have WordPress 3.6 or newer and PHP 5.2 or newer for PowerPress 6.0.
|
550 |
-
* NEW FEATURE: Playlist player, utilizes WordPress built-in playlist specifically for podcasting. [Learn more](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/powerpress-playlist-shortcode/)
|
551 |
-
* NEW FEATURE: Subscribe links, adds subscribe on iTunes and via RSS links below the player and links.
|
552 |
-
* NEW FEATURE: Subscribe page template and `[powerpress_subscribe]` page shortcode added. Create a "Subscribe to podcast" page for your podcast.
|
553 |
-
* NEW FEATURE: Subscribe to podcast widget, adds subscribe on iTunes and via RSS links to side bar, with optional link to subscribe to podcast page.
|
554 |
-
* NEW FEATURE: Podcasting SEO settings. Includes options to customize podcast feed titles, AudioObjects, VideoObjects, and highlight key iTunes fields.
|
555 |
-
* NEW FEATURE: Migrate to Blubrry Podcast Hosting in 3 easy steps added.
|
556 |
-
* iTunes image requirements updated, 1400x1400 minimum size is now "required" and 2048x2048 is now the maximum size for iTunes artwork.
|
557 |
-
* iTunes category and subcategory selection updated for latest iTunes category selection rules.
|
558 |
-
* Enhnaced iTunes Summary is back! The feature actually never left, but for the past few years links were not formatted in the iOS app. Now that they are, we now recommend the feature.
|
559 |
-
* Fixed bug where Feed Maximizer option only worked when Podcast Channels was enabled (Thanks Daniel Lewis for bringing to our attention!)
|
560 |
-
* Fixed bug where player and links would not appear if Yoast's WordPress SEO plugin option "Add Open Graph meta data" was enabled.
|
561 |
-
* iTunes keywords feature has been removed, feature was deprecated last year by Apple. The iTunes keywords field will appear for previous episodes that used the feature.
|
562 |
-
* Added support for Opus audio with content type audio/ogg. (Thanks thebugcast for the heads up!)
|
563 |
-
* Files with 'ogg' file extension are now treated as audio/ogg, unless the following define is added to your wp-config.php: `define('POWERPRESS_OGG_VIDEO', true);` (Thanks thebugcast for pointing out the default!)
|
564 |
-
* Updated the Find and Replace episode URLs tool to use native WordPress MySQL query functions.
|
565 |
-
* Changed the logic for HEAD requests for HTTP authentication. Default WordPress behavior is to exit all HEAD requests. (Thanks thebugcast!)
|
566 |
-
* Changed all content types to either use the site default or use UTF8 (applies to play in new window and 401 Unauthorized HTML pages).
|
567 |
-
* Added new `powerpress_premium_content_authorized` filter for premium plugins to override the default behavior which uses roles and capabilities.
|
568 |
-
* Updated the getid3 library to latest version, PowerPress now includes ogg duration detection support for "Speex" or "vorbis".
|
569 |
-
* We are no longer detecting if the sample rate is optimal, we're no longer worried about Flash playback.
|
570 |
-
* Removed Flow Player, Simple Flash, AudioPlay and Flash Mp3 Maxi players. These flash players are no longer supported.
|
571 |
-
* New MediaElement.js Audio player max width setting added. Player will now display full width otherwise. Player is now responsive, the width will shrink or stretch for the screen.
|
572 |
-
* Improved MediaElement.js Video player width and height settings. Player will now display full width, or as styled by the theme's CSS if width and height are blank. Player is now responsive, the width will shrink or stretch for the screen, the height can be set with a blank width to allow for the player to fit different screens.
|
573 |
-
* We are now warning users not to use Flash based players in the player selection screens.
|
574 |
-
* Added option to set stats redirect at the channel/post type level. Requires a define `CHANNEL_STATS_REDIRECT` and/or `POST_TYPE_STATS_REDIRECT` in the wp-config.php file.
|
575 |
-
* FeedBurner feed URL when set will be used in the new subscribe page and subscribe sidebar widget (Thanks Daniel Lewis for bringing to our attention)
|
576 |
-
* Playlist Player no longer includes the play time when it is zero. (Thanks Daniel Lewis for bringing to our attention)
|
577 |
-
* Program Titles with double quotes in the general settings was not escaped correctly, it is now fixed. (Thanks Robin for bringing to our attention)
|
578 |
-
* Edit value fields now use the `esc_attr()` wordpress function rather than the `htmlspecialchars()` native PHP function.
|
579 |
-
* Added `powerpress_admin_capabilities` filter for premium capabilities. (Thanks Blair Williams for the suggestion)
|
580 |
-
* Made subscribe sidebar and subscribe embed button icons Retina screen compatible
|
581 |
-
* Re-added the blubrry folder icon for blubrry podcast hosting customers.
|
582 |
-
* Tweaked wording and updated documentation for SEO settings (Thanks Daniel Lewis for the feedback!)
|
583 |
-
* Tweaked updated documentation for the PowerPress Playlist (Thanks Daniel Lewis for asking questions, it helped us better document the features)
|
584 |
-
* Fixed subscribe links always displaying (thanks Thiago Miro for pointing out the bug)
|
585 |
-
* Fixed upload itunes image and poster image episode functions to use selected image size when "Link URL" is blank (Thanks Daniel Lewis for bringing to our attention)
|
586 |
-
* Added a learn more link to the SEO page.
|
587 |
-
* Added code for the new Subscribe embed so the subscribe embed CSS is only loaded when the shortcode is used in a page.
|
588 |
-
* Added the wp-video and wp-video-shortcode classes to the MEJS video player so latest CSS styling in WordPress is again applied 100% of the time to the MEJS player packaged in PowerPress.
|
589 |
-
* Playlist player will now use the iTunes episode image if one is set for each episode. Program level image is used if no image is set.
|
590 |
-
* Playlist player taxonomy podcasting now accepts the term_taxonomy_id, making it more efficient.
|
591 |
-
* Moved the Shortcodes into their own section in Media Appearance settings, they are now included in Podcast Channels, Category Podcasting, Post Type podcasting and Taxonomy podcasting with the appropriate attributes set for convenience.
|
592 |
-
* Brazilian Portuguese translation for v6.0+ by [Leo Lopes from Radiofobia](http://radiofobia.com.br/).
|
593 |
-
|
594 |
-
|
595 |
= Additional PowerPress Version History =
|
596 |
Please visit the [PowerPress Version History](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/powerpress-version-history/) page for history prior to version 6.0.
|
597 |
|
@@ -614,7 +405,7 @@ Nicolas Bouliane, [Personal Blog](http://nicolasbouliane.com/) - contributed cod
|
|
614 |
|
615 |
== Translators ==
|
616 |
* Danish translation for v1.0.11+ by [Team Blogos](http://wordpress.blogos.dk/s%C3%B8g-efter-downloads/?did=280) - Latest translation available [here](http://wordpress.blogos.dk/s%C3%B8g-efter-downloads/?did=280)
|
617 |
-
* French translation for v1.0.11+ by [
|
618 |
* Simplified Chinese for v1.0.12+ by [webmote](http://codeex.cn) - From webmote: Welcome to use the plugin. Very good! and then hope you to access my site.
|
619 |
* Italian translation for v2.0.4+ by [Umberto Sartori](http://veneziadoc.net/)
|
620 |
* Romanian translation for v2.0.4+ by Alexander Ovsov (Web Geek Sciense: http://webhostinggeeks.com/science/)
|
1 |
=== PowerPress Podcasting plugin by Blubrry ===
|
2 |
Contributors: amandato, blubrry
|
3 |
+
Tags: podcasting, podcast, podcaster, powerpress, itunes, apple, apple podcasts, google podcasts, 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 |
Requires PHP: 5.2
|
6 |
+
Tested up to: 4.9.7
|
7 |
+
Stable tag: 7.3
|
8 |
+
Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
|
9 |
License: GPLv2 or later
|
10 |
|
11 |
+
No. 1 Podcasting plugin for WordPress, with simple & advanced modes, players, subscribe tools, and more! Supports Apple Podcasts, Google, Spotify,..
|
12 |
|
13 |
== Description ==
|
14 |
|
16 |
|
17 |
[youtube https://www.youtube.com/watch?v=twqKrVehY3o]
|
18 |
|
19 |
+
Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast page embeds and sidebar widgets, podcasting SEO features, and more! Fully supports Apple Podcasts, Google Podcasts, Stitcher, TuneIn and Blubrry Podcasting directories, as well as all podcast applications and clients. PowerPress users who use Blubrry Podcast Hosting may also [submit their shows to Spotify](https://create.blubrry.com/manual/podcast-promotion/submit-podcast-to-spotify/).
|
20 |
|
21 |
= Simple Mode =
|
22 |
If you are just getting started or feel overwelmed with all the settings and options, switch to Simple mode! PowerPress's Simple Mode will walk you through getting started in 3 easy steps.
|
23 |
|
24 |
1. Setup your Podcast quickly with only the essential settings
|
25 |
1. Create your first Episode
|
26 |
+
1. Submit your podcast to Apple Podcasts (previously iTunes Podcasts)
|
27 |
|
28 |
When you're ready you can switch to Advanced mode to tap into all the options professionals would want.
|
29 |
|
30 |
= PowerPress Key Features =
|
31 |
+
- Full Apple Podcasts (previously iTunes Podcasts) & Google Podcasts support: Adds Apple Podcast compliant podcast feeds to your WordPress site.
|
32 |
- Integrated HTML5 Media Players: Audio/video Web players with embed support from sites such as YouTube.
|
33 |
- Subscribe tools: Create subscribe page with our exclusive subscribe shortcode embed and subscribe sidebar widget optimized for responsive websites, high-resolution screens and Apple Retina displays.
|
34 |
+
- Podcasting SEO: Improve discovery of your podcast on search engines such as Google, and with the Apple Podcasts directory.
|
35 |
- Podcast Importing: Import your podcast from SoundCloud, LibSyn, PodBean, Squarespace, or other podcast RSS feed.
|
36 |
- Migration tools: Quickly migrate from PodPress, TGS Podcasting, Seriously Simple Podcasting, Blogger, or Movable Type without losing episodes.
|
37 |
- Multi-podcast support: Create separate podcasts by category (Category Podcasting) or by media format (Podcast Channels).
|
39 |
- *Media Statistics: Get FREE Blubrry Media Statistics from your WordPress dashboard.
|
40 |
- Multi-languages and locales: See [PowerPress in your language](http://create.blubrry.com/resources/powerpress/powerpress-language/) for details.
|
41 |
|
42 |
+
= Includes Full Apple Podcasts Support! =
|
43 |
+
Blubrry PowerPress fully supports Apple Podcasts (previously iTunes podcasts), which is required for podcasting. PowerPress comes with the following Apple Podcasts specific features:
|
44 |
|
45 |
+
* Apple Podcasts compliant podcast feeds: The appropriate tags are added to your feeds so your Apple Podcasts listing looks great.
|
46 |
+
* Optimized Apple Podcasts summary: Converts your blog-post content to a format suited for viewing in Apple Podcasts ([learn more](http://create.blubrry.com/resources/powerpress/powerpress-settings/itunes/)).
|
47 |
+
* Tunes artwork: Upload and manage your Apple Podcasts artwork directly from within PowerPress settings.
|
48 |
+
* Apple Podcasts: Fully supported, including the latest [Apple Podcasts specifications](http://www.powerpresspodcast.com/2012/05/10/itunes-podcasting-specifications-changed-may-2012-what-that-means-for-podcasting/).
|
49 |
+
* Feed Episode Maximizer: Increase the number of episodes viewed on Apple Podcasts while decreasing the byte size of your feeds.
|
50 |
|
51 |
+
= Includes Full Google Podcasts Support! =
|
52 |
+
Blubrry PowerPress fully supports the newly launched Google Podcasts directory built into Google search, Google Home smart speakers and Google Podcasts Android app.
|
53 |
|
54 |
= Integrated Media Players =
|
55 |
Blubrry PowerPress includes extensive Web player options to display your podcast audio and video in your Web pages.
|
68 |
A Blubrry PowerPress exclusive, podcast subscribe tools help you convert Web visitors into podcast subscribers. Subscribe options include:
|
69 |
|
70 |
* [Subscribe page](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/subscribe-page/): Instantly create a subscribe page with simplified instructions on how to subscribe to your podcast using the PowerPress subscribe page shortcode.
|
71 |
+
* [Subscribe page shortcode](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/powerpress-subscribe-shortcode/): Add the `[powerpress_subscribe]` shortcode to include a mobile-device optimized subscribe embed in any post or page that includes buttons to subscribe on Apple Podcasts, [Subscribe on Android](http://www.subscribeonandroid.com), [Subscribe by Email](http://www.subscribebyemail.com), Stitcher, tuneIn, Spotify, Google Podcasts, via RSS, and an special textbox to easily copy and paste your podcast feed into any podcast application.
|
72 |
+
* Subscribe sidebar widget: Mobile device optimized sidebar buttons to subscribe on Apple Podcasts, [Subscribe on Android](http://www.subscribeonandroid.com), Stitcher, tuneIn, Spotify, Google Podcasts, subscribe by RSS, and a "more subscribe options" button linked to your podcast's subscribe page.
|
73 |
+
* Subscribe links: Subscribe on Apple Podcasts, [Subscribe on Android](http://www.subscribeonandroid.com), [Subscribe by Email](https://www.subscribebyemail.com), subscribe by RSS and a link to your custom subscribe page below every player.
|
74 |
* Retina enabled: Subscribe button images optimized for high resolution displays including Apple Retina displays.
|
75 |
* Responsive: Subscribe tools are designed for any screen and optimized for touch screens by providing custom buttons that are indrustry standard 48 pixels in height optimized for touch screen use.
|
76 |
|
90 |
= Advanced Features for those who need more =
|
91 |
Want more? We've got more! With a simple click you can enable advanced features and options. Check out some of the advanced features:
|
92 |
|
93 |
+
* [Podcasting SEO settings](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/podcasting-seo-settings/): Utilize the Apple and Google feed and HTML tags to improve the discovery of your podcasts and include the necessary meta data in your blog pages for search engines to discover.
|
94 |
* Embeds: Provide embeds your audience can take with them (just like YouTube embeds)
|
95 |
* Media size and duration detection: Enter your media URL and let the PowerPress do the rest.
|
96 |
* Category Casting: Add podcast support to your WordPress category feeds.
|
103 |
* WordPress MultiSite: Blubrry PowerPress is compatible with WordPress MultiSite and can be extended using the [Blubrry PowerPress MultiSite add-on plugin](https://wordpress.org/plugins/powerpress-multisite/).
|
104 |
* *Supported syndication formats: mp3, m4a, mp4, m4v, webm, ogg, oga, ogv, wma, ra, mp4a, m4v, mp4v, mpg, asf, avi, wmv, flv, swf, mov, divx, 3gp, midi, wav, aa, pdf, torrent, m4b, m4r, epub.
|
105 |
|
106 |
+
*Apple Podcasts only supports mp3, m4a, mp4, m4v, pdf and epub.
|
107 |
|
108 |
= Migrating from PodPress or other podcasting plugin? =
|
109 |
Switching to from PodPress to PowerPress is seamless. Simply enable PowerPress then disable PodPress and you're done! PowerPress will continue where plugin your old plugin left off by including your previously created episodes in your feeds and Web pages.
|
166 |
* [Eli's PowerPress Addon Widget](http://wordpress.org/extend/plugins/podpress-addons/) - Adds a sidebar widget that lists your podcast episodes linked to the play in a new window PowerPress player.
|
167 |
* [PowerPress Posts From MySQL](http://wordpress.org/extend/plugins/powerpress-posts-from-mysql/developers/) - Creates blog posts with PowerPress podcast episode information from a MySQL table.
|
168 |
* [Featured Podcast Widget](http://wordpress.org/plugins/featured-podcast-widget/), [Home Page](http://www.richardfarrar.com/featured-podcast-widget-for-wordpress/) - A widget that enables you to display your latest podcast from a category or featured podcast utilising the PowerPress plugin's default player.
|
169 |
+
|
|
|
170 |
|
171 |
= Why doesn't Blubrry PowerPress support multiple enclosures in one feed item/post? =
|
172 |
+
Blubrry PowerPress does not allow you to include multiple media files for one feed item (blog post). This is because each podcatcher handles multiple enclosures in feeds differently. Apple Podcasts will download the first enclosure that it sees in the feed ignoring the rest. Other podcatchers and podcasting directories either pick up the first enclosure or the last in each post item. This inconsistency combined with the fact that [Dave Winer does not recommend multiple enclosures](http://www.reallysimplesyndication.com/2004/12/21) and the [FeedValidator.org recommendation against it](http://www.feedvalidator.org/docs/warning/DuplicateEnclosure.html) is why the Blubrry PowerPress does not support them.
|
173 |
|
174 |
As a alternative, PowerPress allows you to create additional Custom Podcast Feeds to associate any magnitude of media format and/or length in a blog post to specific custom feeds. For example, you can create one blog post associated to separate video and audio podcast feeds saving you time from entering your show notes twice.
|
175 |
|
227 |
== Changelog ==
|
228 |
|
229 |
= Next Major Release Announcements =
|
|
|
230 |
* 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#feedback) with your name and email.
|
231 |
|
232 |
= Fan of PowerPress and want to show your support? =
|
233 |
If you are a fan of PowerPress, we would greatly appreciate it if you could take a moment and [leave us a review on WordPress.org](https://wordpress.org/support/plugin/powerpress/reviews/?rate=5#new-post). Your support is greatly appreciated!
|
234 |
|
235 |
+
= 7.3 =
|
236 |
+
* Released on 07/10/2018
|
237 |
+
* Spotify and Google Podcasts subscribe links added to Destinations.
|
238 |
+
* PowerPress users using [Blubrry Podcast Hosting](https://create.blubrry.com/resources/podcast-media-hosting/) may now submit shows to Spotify!
|
239 |
+
* Added PodcastMirror setting, a modern alternative to FeedBurner. Learn more about [PodcastMirror](https://podcastmirror.com/) at [podcastmirror.com](https://podcastmirror.com/)
|
240 |
+
* Converted loop logic from each() to foreach() for PHP 7.3+ / 8.0+ compatibility.
|
241 |
+
* Improved logic for playlist player to appear better when certain settings are not set.
|
242 |
+
* Moved the enqueue script ('jquery-ui-tabs') logic so it only loads in the powerpress admin pages. (Thanks @keenanpayne for the code change!)
|
243 |
+
* Added define option `POWERPRESS_POSTTYPE_MIXING`, when set to true podcast channels for the default podcast feed will mix all post types of type post with the default podcast feed. (Thanks @eos-rose for bringing to our attention)
|
244 |
+
* Fixed bug with translation and javascript alert messages. (Thanks Enrico for reporting the bug!)
|
245 |
+
|
246 |
+
|
247 |
= 7.2 =
|
248 |
* Released on 12/13/2017
|
249 |
* Added code to allow customization of Blubrry player style and colors.
|
383 |
* Embed link now toggles embed box when clicked multiple times.
|
384 |
* ATTENTION: The 1 pixel out audio player will be removed from PowerPress 7.1.
|
385 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
386 |
= Additional PowerPress Version History =
|
387 |
Please visit the [PowerPress Version History](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/powerpress-version-history/) page for history prior to version 6.0.
|
388 |
|
405 |
|
406 |
== Translators ==
|
407 |
* Danish translation for v1.0.11+ by [Team Blogos](http://wordpress.blogos.dk/s%C3%B8g-efter-downloads/?did=280) - Latest translation available [here](http://wordpress.blogos.dk/s%C3%B8g-efter-downloads/?did=280)
|
408 |
+
* French translation for v1.0.11+ by [Aur�lien Denis](http://wpchannel.com/) - Aur�lien is looking for assistance maintaining the French translation, email wpchannel [at] gmail.com if interested.
|
409 |
* Simplified Chinese for v1.0.12+ by [webmote](http://codeex.cn) - From webmote: Welcome to use the plugin. Very good! and then hope you to access my site.
|
410 |
* Italian translation for v2.0.4+ by [Umberto Sartori](http://veneziadoc.net/)
|
411 |
* Romanian translation for v2.0.4+ by Alexander Ovsov (Web Geek Sciense: http://webhostinggeeks.com/science/)
|
views/settings_tab_appearance.php
CHANGED
@@ -132,7 +132,7 @@
|
|
132 |
<p class="description">
|
133 |
<?php echo __('Note: When specifying a URL to media in the powerpress shortcode, only the player is included. The Media Links will <u>NOT</u> be included since there is not enough meta information to display them.', 'powerpress'); ?>
|
134 |
</p>
|
135 |
-
<h3><?php echo __('PowerPress Playlist Shortcode', 'powerpress');
|
136 |
<?php if( empty($GeneralSettings['playlist_player']) ) { // Either not set or set on
|
137 |
?>
|
138 |
<p style="margin-bottom: 20px; margin-left: 40px;">
|
@@ -150,7 +150,7 @@
|
|
150 |
<?php echo sprintf(__('Please visit the %s page for additional options.', 'powerpress'), '<a href="http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/powerpress-playlist-shortcode/" target="_blank">'. __('PowerPress Playlist Shortcode', 'powerpress') .'</a>' ); ?>
|
151 |
</p>
|
152 |
|
153 |
-
<h3><?php echo __('PowerPress Subscribe Shortcode', 'powerpress'); ?>
|
154 |
<p>
|
155 |
<?php echo '<code>'.$shortcode['powerpress_subscribe'].'</code>'; ?>
|
156 |
</p>
|
132 |
<p class="description">
|
133 |
<?php echo __('Note: When specifying a URL to media in the powerpress shortcode, only the player is included. The Media Links will <u>NOT</u> be included since there is not enough meta information to display them.', 'powerpress'); ?>
|
134 |
</p>
|
135 |
+
<h3><?php echo __('PowerPress Playlist Shortcode', 'powerpress'); ?></h3>
|
136 |
<?php if( empty($GeneralSettings['playlist_player']) ) { // Either not set or set on
|
137 |
?>
|
138 |
<p style="margin-bottom: 20px; margin-left: 40px;">
|
150 |
<?php echo sprintf(__('Please visit the %s page for additional options.', 'powerpress'), '<a href="http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/powerpress-playlist-shortcode/" target="_blank">'. __('PowerPress Playlist Shortcode', 'powerpress') .'</a>' ); ?>
|
151 |
</p>
|
152 |
|
153 |
+
<h3><?php echo __('PowerPress Subscribe Shortcode', 'powerpress'); ?> </h3>
|
154 |
<p>
|
155 |
<?php echo '<code>'.$shortcode['powerpress_subscribe'].'</code>'; ?>
|
156 |
</p>
|
views/settings_tab_destinations.php
CHANGED
@@ -32,14 +32,16 @@
|
|
32 |
|
33 |
if( empty($FeedSettings['itunes_url']) )
|
34 |
$FeedSettings['itunes_url'] = '';
|
35 |
-
if( empty($FeedSettings['googleplay_url']) )
|
36 |
-
$FeedSettings['googleplay_url'] = '';
|
37 |
if( empty($FeedSettings['blubrry_url']) )
|
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 |
|
@@ -62,24 +64,25 @@
|
|
62 |
<p><?php echo __('Listing URLs are used by player subscribe links, subscribe sidebar widgets and subscribe to podcast page shortcodes.', 'powerpress'); ?></p>
|
63 |
<table class="form-table">
|
64 |
<tr valign="top">
|
65 |
-
<th scope="row"><?php echo __('
|
66 |
<td>
|
67 |
-
<p><strong><a href="http://create.blubrry.com/manual/podcast-promotion/submit-podcast-to-itunes/?podcast-feed=<?php echo urlencode($feed_url); ?>" target="_blank"><?php echo __('Submit podcast to
|
68 |
-
<label for="itunes_url" style="font-size: 120%; display: block; font-weight: bold;"><?php echo __('
|
69 |
<input type="text" style="width: 80%;" id="itunes_url" name="Feed[itunes_url]" value="<?php echo esc_attr($FeedSettings['itunes_url']); ?>" maxlength="255" />
|
70 |
<p class="description"><?php echo sprintf(__('e.g. %s', 'powerpress'), 'http://itunes.apple.com/podcast/title-of-podcast/id<strong>000000000</strong>'); ?></p>
|
71 |
-
<p><?php echo __('
|
72 |
</td>
|
73 |
</tr>
|
74 |
</table>
|
75 |
|
76 |
<table class="form-table">
|
77 |
<tr valign="top">
|
78 |
-
<th scope="row"><?php echo __('Google
|
79 |
<td>
|
80 |
-
<p><strong><a href="http://create.blubrry.com/manual/podcast-promotion/
|
81 |
-
<label for="googleplay_url" style="font-size: 120%; display: block; font-weight: bold;"><?php echo __('Google
|
82 |
-
<input type="text" class="bpp-input-normal" id="googleplay_url" name="
|
|
|
83 |
</td>
|
84 |
</tr>
|
85 |
</table>
|
@@ -126,4 +129,17 @@
|
|
126 |
</tr>
|
127 |
</table>
|
128 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
<br />
|
32 |
|
33 |
if( empty($FeedSettings['itunes_url']) )
|
34 |
$FeedSettings['itunes_url'] = '';
|
|
|
|
|
35 |
if( empty($FeedSettings['blubrry_url']) )
|
36 |
$FeedSettings['blubrry_url'] = '';
|
37 |
if( empty($FeedSettings['stitcher_url']) )
|
38 |
$FeedSettings['stitcher_url'] = '';
|
39 |
if( empty($FeedSettings['tunein_url']) )
|
40 |
$FeedSettings['tunein_url'] = '';
|
41 |
+
if( empty($FeedSettings['spotify_url']) )
|
42 |
+
$FeedSettings['spotify_url'] = '';
|
43 |
+
|
44 |
+
$googleUrl = 'https://www.google.com/podcasts?feed='.base64_encode($feed_url);
|
45 |
?>
|
46 |
|
47 |
|
64 |
<p><?php echo __('Listing URLs are used by player subscribe links, subscribe sidebar widgets and subscribe to podcast page shortcodes.', 'powerpress'); ?></p>
|
65 |
<table class="form-table">
|
66 |
<tr valign="top">
|
67 |
+
<th scope="row"><?php echo __('Apple', 'powerpress'); ?></th>
|
68 |
<td>
|
69 |
+
<p><strong><a href="http://create.blubrry.com/manual/podcast-promotion/submit-podcast-to-itunes/?podcast-feed=<?php echo urlencode($feed_url); ?>" target="_blank"><?php echo __('Submit podcast to Apple', 'powerpress'); ?></a></strong></p>
|
70 |
+
<label for="itunes_url" style="font-size: 120%; display: block; font-weight: bold;"><?php echo __('Apple Subscription URL', 'powerpress'); ?></label>
|
71 |
<input type="text" style="width: 80%;" id="itunes_url" name="Feed[itunes_url]" value="<?php echo esc_attr($FeedSettings['itunes_url']); ?>" maxlength="255" />
|
72 |
<p class="description"><?php echo sprintf(__('e.g. %s', 'powerpress'), 'http://itunes.apple.com/podcast/title-of-podcast/id<strong>000000000</strong>'); ?></p>
|
73 |
+
<p><?php echo __('Apple will email your Subscription URL to your <em>Apple Email</em> when your podcast is accepted into the Apple Podcasts Directory.', 'powerpress'); ?></p>
|
74 |
</td>
|
75 |
</tr>
|
76 |
</table>
|
77 |
|
78 |
<table class="form-table">
|
79 |
<tr valign="top">
|
80 |
+
<th scope="row"><?php echo __('Google', 'powerpress'); ?> <?php echo powerpressadmin_new(); ?></th>
|
81 |
<td>
|
82 |
+
<p><strong><a href="http://create.blubrry.com/manual/podcast-promotion/submit-podcast-google-podcasts/?podcast-feed=<?php echo urlencode($feed_url); ?>" target="_blank"><?php echo __('Learn more about Google Podcasts', 'powerpress'); ?></a></strong></p>
|
83 |
+
<label for="googleplay_url" style="font-size: 120%; display: block; font-weight: bold;"><?php echo __('Google Listing URL', 'powerpress'); ?></label>
|
84 |
+
<input type="text" class="bpp-input-normal" id="googleplay_url" name="Null[google_url]" value="<?php echo esc_attr($googleUrl); ?>" maxlength="255" readOnly onclick="javascript: this.select();" onfocus="javascript: this.select();" />
|
85 |
+
<p><?php echo __('Google Podcasts directory is available through Google search, Google Home smart speakers, and the new Google Podcasts app for Android. As long as your podcast website is discoverable by Google search, your podcast will be included in this directory.', 'powerpress'); ?></p>
|
86 |
</td>
|
87 |
</tr>
|
88 |
</table>
|
129 |
</tr>
|
130 |
</table>
|
131 |
|
132 |
+
<table class="form-table">
|
133 |
+
<tr valign="top">
|
134 |
+
<th scope="row"><?php echo __('Spotify', 'powerpress'); ?> <?php echo powerpressadmin_new(); ?></th>
|
135 |
+
<td>
|
136 |
+
<p><strong><a href="http://create.blubrry.com/manual/podcast-promotion/submit-podcast-to-spotify/?podcast-feed=<?php echo urlencode($feed_url); ?>" target="_blank"><?php echo __('Submit podcast to Spotify', 'powerpress'); ?></a></strong></p>
|
137 |
+
<label for="tunein_url" style="font-size: 120%; display: block; font-weight: bold;"><?php echo __('Spotify Listing URL', 'powerpress'); ?></label>
|
138 |
+
<input type="text" class="bpp-input-normal" id="spotify_url" name="Feed[spotify_url]" value="<?php echo esc_attr($FeedSettings['spotify_url']); ?>" maxlength="255" />
|
139 |
+
<p class="description"><?php echo sprintf(__('e.g. %s', 'powerpress'), 'https://open.spotify.com/show/abcdefghijklmnopqrstu'); ?></p>
|
140 |
+
|
141 |
+
</td>
|
142 |
+
</tr>
|
143 |
+
</table>
|
144 |
+
|
145 |
<br />
|
views/settings_tab_other.php
CHANGED
@@ -105,7 +105,7 @@
|
|
105 |
$actual_premium_value = $FeedSettings['premium'];
|
106 |
|
107 |
echo '<option value="">'. __('None', 'powerpress') .'</option>';
|
108 |
-
|
109 |
echo "\t<option value=\"$value\"". ($actual_premium_value==$value?' selected':''). ">".htmlspecialchars($desc)."</option>\n";
|
110 |
?>
|
111 |
</select></div>
|
@@ -204,7 +204,7 @@ function powerpress_default_premium_label(event)
|
|
204 |
$custom_post_type = $FeedSettings['custom_post_type'];
|
205 |
|
206 |
echo '<option value="">'. __('All Post Types (default)', 'powerpress') .'</option>';
|
207 |
-
|
208 |
{
|
209 |
$desc = $value;
|
210 |
// TODO: See if we can get a post type label somehow
|
@@ -219,7 +219,7 @@ function powerpress_default_premium_label(event)
|
|
219 |
$post_types = powerpress_admin_get_post_types( POWERPRESS_CUSTOM_CAPABILITY_TYPE );
|
220 |
if( !empty($post_types) )
|
221 |
{
|
222 |
-
|
223 |
{
|
224 |
$desc = $value;
|
225 |
// TODO: See if we can get a post type label somehow
|
105 |
$actual_premium_value = $FeedSettings['premium'];
|
106 |
|
107 |
echo '<option value="">'. __('None', 'powerpress') .'</option>';
|
108 |
+
foreach( $caps as $value => $desc )
|
109 |
echo "\t<option value=\"$value\"". ($actual_premium_value==$value?' selected':''). ">".htmlspecialchars($desc)."</option>\n";
|
110 |
?>
|
111 |
</select></div>
|
204 |
$custom_post_type = $FeedSettings['custom_post_type'];
|
205 |
|
206 |
echo '<option value="">'. __('All Post Types (default)', 'powerpress') .'</option>';
|
207 |
+
foreach( $post_types as $index => $value )
|
208 |
{
|
209 |
$desc = $value;
|
210 |
// TODO: See if we can get a post type label somehow
|
219 |
$post_types = powerpress_admin_get_post_types( POWERPRESS_CUSTOM_CAPABILITY_TYPE );
|
220 |
if( !empty($post_types) )
|
221 |
{
|
222 |
+
foreach( $post_types as $index => $value )
|
223 |
{
|
224 |
$desc = $value;
|
225 |
// TODO: See if we can get a post type label somehow
|