Version Description
- Released on 2/21/2016
- Added import podcast from Squarespace option (thanks Steve for bringing to our attention that importing from Squarespace requires added logic)
- 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!) - Added checkbox to enable wrapping iTunes summary values with
<![CDATA[ ... ]]>
tags. This may become a permanent feature. - Added new define option
POWERPRESS_FEED_TEMPLATE
. (Thanks Ron for the suggestion!) - Added new define option
POWERPRESS_PREMIUM_GROUPS_PLUGIN
, for premium podcasting with Groups plugin commonly paired with WooCommerce. - Removed iTunes explicit 'no' value from
<itunes:explicit>
tag. (iTunes change - February, 2016) - Updated iTunes recommended image size to 3000 x 3000 saved in a compressed format such as JPG. (iTunes change - February, 2016)
- Fixed notice message from appearing when using the playlist player (Thanks chefjoef for bringing to our attention).
- 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!)
- Fixed tab control styling when other themes or plugins use newer versions of jquery-ui.
- Added dismissable notification message to alert PowerPress users of the latest iTunes changes.
Download this release
Release Info
Developer | amandato |
Plugin | PowerPress Podcasting plugin by Blubrry |
Version | 6.3.2 |
Comparing to | |
See all releases |
Code changes from version 6.3.1 to 6.3.2
- css/admin.css +86 -93
- css/steps.css +107 -0
- feed-podcast.php +1 -1
- powerpress-feed-auth.php +17 -5
- powerpress-player.php +5 -1
- powerpress-playlist.php +1 -1
- powerpress.php +86 -61
- powerpressadmin-basic.php +2 -1
- powerpressadmin-defaults.php +17 -41
- powerpressadmin-editfeed.php +13 -5
- powerpressadmin-import-feed.php +5 -0
- powerpressadmin-metabox.php +1 -1
- powerpressadmin-notifications.php +196 -0
- powerpressadmin-rss-import.php +27 -7
- powerpressadmin.php +47 -1
- readme.txt +17 -3
css/admin.css
CHANGED
@@ -1,15 +1,12 @@
|
|
1 |
/* admin.css */
|
|
|
2 |
.powerpress-notice,
|
3 |
div.powerpress-notice,
|
4 |
.wrap div.powerpress-notice {
|
|
|
5 |
margin: 20px 0 10px;
|
6 |
padding: 0 5px;
|
7 |
line-height: 29px;
|
8 |
-
font-size: 12px;
|
9 |
-
border-width: 1px;
|
10 |
-
border-style: solid;
|
11 |
-
font-weight: bold;
|
12 |
-
/* background-color: #FFFFE0; /* yellow */
|
13 |
}
|
14 |
.powerpress-error,
|
15 |
div.powerpress-error,
|
@@ -213,10 +210,23 @@ padding-bottom: 15px;
|
|
213 |
font-size: 15px;
|
214 |
font-weight: bold;
|
215 |
}
|
|
|
|
|
|
|
216 |
|
217 |
-
#
|
218 |
-
|
|
|
|
|
|
|
219 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
.powerpress-required {
|
221 |
font-size: 85%;
|
222 |
color: #CC0000;
|
@@ -228,79 +238,12 @@ padding-bottom: 15px;
|
|
228 |
display: inline-block;
|
229 |
float: left;
|
230 |
width: 200px;
|
231 |
-
|
232 |
-
|
233 |
-
margin-left: 10px;
|
234 |
margin-right: 0;
|
235 |
text-align: top;
|
236 |
position: relative;
|
237 |
-
padding
|
238 |
-
}
|
239 |
-
#powerpress_steps h3 {
|
240 |
-
color: #CCCCCC;
|
241 |
-
margin: 0;
|
242 |
-
font-size: 24px;
|
243 |
-
top: -16px;
|
244 |
-
left: 0;
|
245 |
-
position: absolute;
|
246 |
-
}
|
247 |
-
#powerpress_single_step h3 {
|
248 |
-
color: #337EC9;
|
249 |
-
font-size: 24px;
|
250 |
-
}
|
251 |
-
#powerpress_steps p {
|
252 |
-
font-size: 20px;
|
253 |
-
margin: 20px 4px;
|
254 |
-
color: #CCCCCC;
|
255 |
-
line-height:120%;
|
256 |
-
}
|
257 |
-
#powerpress_steps p.normal {
|
258 |
-
font-size: 14px;
|
259 |
-
margin: 8px 0 8px 8px;
|
260 |
-
color: #CCCCCC;
|
261 |
-
line-height: normal;
|
262 |
-
}
|
263 |
-
#powerpress_steps a {
|
264 |
-
color: #CCCCCC;
|
265 |
-
}
|
266 |
-
#powerpreess_step_1 {
|
267 |
-
background-image: url('../images/DownArrow.png');
|
268 |
-
background-repeat:no-repeat;
|
269 |
-
background-position: 6px bottom;
|
270 |
-
}
|
271 |
-
|
272 |
-
#powerpress_steps .active-step h3 {
|
273 |
-
color: #337EC9;
|
274 |
-
}
|
275 |
-
#powerpress_steps .active-step p,
|
276 |
-
#powerpress_steps .active-step a {
|
277 |
-
color: #787878;
|
278 |
-
|
279 |
-
}
|
280 |
-
|
281 |
-
#powerpress_steps>:first-child {
|
282 |
-
margin-left: 0;
|
283 |
-
}
|
284 |
-
.powerpress-step-complete {
|
285 |
-
position: absolute;
|
286 |
-
bottom: 0;
|
287 |
-
right: 0;
|
288 |
-
height: 46px;
|
289 |
-
width: 150px;
|
290 |
-
}
|
291 |
-
.powerpress-step-complete-box {
|
292 |
-
border: 1px solid #CCCCCC;
|
293 |
-
width: 24px;
|
294 |
-
height: 24px;
|
295 |
-
display: inline-block;
|
296 |
-
position: absolute;
|
297 |
-
bottom: -2px;
|
298 |
-
right: 20px;
|
299 |
-
}
|
300 |
-
.powerpress-step-completed {
|
301 |
-
background-image: url('../images/Check.png');
|
302 |
-
background-repeat:no-repeat;
|
303 |
-
background-position: right 2px;
|
304 |
}
|
305 |
|
306 |
.blubrry-services {
|
@@ -355,34 +298,84 @@ padding-bottom: 15px;
|
|
355 |
font-size: 16px;
|
356 |
margin: 20px 4px;
|
357 |
}
|
358 |
-
.powerpress-step-complete {
|
359 |
-
width: 125px;
|
360 |
-
}
|
361 |
-
.powerpress-step-complete p {
|
362 |
-
padding-top: 5px;
|
363 |
-
}
|
364 |
.blubrry-services .blubrry-hosting {
|
365 |
margin-right: 20px;
|
366 |
}
|
367 |
}
|
368 |
@media screen and (min-width: 1px) and (max-width: 729px) {
|
369 |
-
|
370 |
-
width: 130px;
|
371 |
-
}
|
372 |
#powerpreess_step_1 {
|
373 |
background-position: 1px bottom;
|
374 |
}
|
375 |
#powerpress_steps p {
|
376 |
margin: 10px 4px;
|
377 |
}
|
378 |
-
.powerpress-step-complete {
|
379 |
-
width: 110px;
|
380 |
-
}
|
381 |
-
#powerpress_steps .powerpress-step-complete p {
|
382 |
-
padding-top: 20px;
|
383 |
-
font-size: 12px;
|
384 |
-
}
|
385 |
.blubrry-services .blubrry-hosting {
|
386 |
margin-right: 10px;
|
387 |
}
|
388 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
/* admin.css */
|
2 |
+
|
3 |
.powerpress-notice,
|
4 |
div.powerpress-notice,
|
5 |
.wrap div.powerpress-notice {
|
6 |
+
|
7 |
margin: 20px 0 10px;
|
8 |
padding: 0 5px;
|
9 |
line-height: 29px;
|
|
|
|
|
|
|
|
|
|
|
10 |
}
|
11 |
.powerpress-error,
|
12 |
div.powerpress-error,
|
210 |
font-size: 15px;
|
211 |
font-weight: bold;
|
212 |
}
|
213 |
+
#pp-getting-started-box {
|
214 |
+
max-width: 1200px;
|
215 |
+
}
|
216 |
|
217 |
+
#pp-getting-started-box h2 {
|
218 |
+
font-size: 200%;
|
219 |
+
margin-bottom: 20px;
|
220 |
+
font-style: oblique;
|
221 |
+
line-height: 1.2em;
|
222 |
}
|
223 |
+
#pp-getting-started-box > p {
|
224 |
+
font-size: 125%;
|
225 |
+
}
|
226 |
+
|
227 |
+
|
228 |
+
|
229 |
+
|
230 |
.powerpress-required {
|
231 |
font-size: 85%;
|
232 |
color: #CC0000;
|
238 |
display: inline-block;
|
239 |
float: left;
|
240 |
width: 200px;
|
241 |
+
width: 24%;
|
242 |
+
margin-left: 60px;
|
|
|
243 |
margin-right: 0;
|
244 |
text-align: top;
|
245 |
position: relative;
|
246 |
+
padding: 8px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
}
|
248 |
|
249 |
.blubrry-services {
|
298 |
font-size: 16px;
|
299 |
margin: 20px 4px;
|
300 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
301 |
.blubrry-services .blubrry-hosting {
|
302 |
margin-right: 20px;
|
303 |
}
|
304 |
}
|
305 |
@media screen and (min-width: 1px) and (max-width: 729px) {
|
306 |
+
|
|
|
|
|
307 |
#powerpreess_step_1 {
|
308 |
background-position: 1px bottom;
|
309 |
}
|
310 |
#powerpress_steps p {
|
311 |
margin: 10px 4px;
|
312 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
.blubrry-services .blubrry-hosting {
|
314 |
margin-right: 10px;
|
315 |
}
|
316 |
}
|
317 |
+
|
318 |
+
@media screen and (min-width: 1px) and (max-width: 729px) {
|
319 |
+
|
320 |
+
.powerpress-step {
|
321 |
+
width: 24%;
|
322 |
+
margin-left: 30px;
|
323 |
+
}
|
324 |
+
}
|
325 |
+
|
326 |
+
.numberCircle {
|
327 |
+
border-radius: 50%;
|
328 |
+
behavior: url(PIE.htc); /* remove if you don't care about IE8 */
|
329 |
+
|
330 |
+
width: 36px;
|
331 |
+
height: 36px;
|
332 |
+
padding: 8px;
|
333 |
+
|
334 |
+
background: #fff;
|
335 |
+
border: 2px solid #666;
|
336 |
+
color: #666;
|
337 |
+
text-align: center;
|
338 |
+
|
339 |
+
font: 32px Arial, sans-serif;
|
340 |
+
}
|
341 |
+
|
342 |
+
#powerpress_settings_page {
|
343 |
+
background: none;
|
344 |
+
background-color: inherit;
|
345 |
+
border: none;
|
346 |
+
}
|
347 |
+
#powerpress_settings_page .ui-widget-header {
|
348 |
+
background: none;
|
349 |
+
border: none;
|
350 |
+
}
|
351 |
+
#powerpress_settings_page .ui-state-default,
|
352 |
+
#powerpress_settings_page .ui-widget-content .ui-state-default,
|
353 |
+
#powerpress_settings_page .ui-widget-header .ui-state-default {
|
354 |
+
background: none;
|
355 |
+
border: none;
|
356 |
+
}
|
357 |
+
#powerpress_settings_page .ui-tabs-nav li {
|
358 |
+
margin-bottom: 0px;
|
359 |
+
border-bottom: none;
|
360 |
+
}
|
361 |
+
|
362 |
+
#powerpress_settings_page .ui-tabs-nav li.ui-tabs-active {
|
363 |
+
margin-bottom: -1px;
|
364 |
+
padding-bottom: 1px;
|
365 |
+
}
|
366 |
+
#powerpress_settings_page .ui-tabs-nav li a {
|
367 |
+
padding: 4px 5px 2px;
|
368 |
+
}
|
369 |
+
#powerpress_settings_page .ui-tabs-nav li.ui-tabs-active a {
|
370 |
+
padding: 4px 5px 3px;
|
371 |
+
}
|
372 |
+
|
373 |
+
|
374 |
+
#powerpress_settings_page .powerpress_tab {
|
375 |
+
background-color: #FFFFFF;
|
376 |
+
border-collapse: separate;
|
377 |
+
border-style: solid;
|
378 |
+
border-width: 1px;
|
379 |
+
border-color: #DFDFDF;
|
380 |
+
border-color: #B3B3B3;
|
381 |
+
}
|
css/steps.css
ADDED
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
#powerpress-steps {
|
3 |
+
margin: 20px 0 30px 0;
|
4 |
+
overflow: hidden;
|
5 |
+
/*CSS counters to number the steps*/
|
6 |
+
counter-reset: step;
|
7 |
+
text-align: center;
|
8 |
+
}
|
9 |
+
#powerpress-steps li {
|
10 |
+
list-style-type: none;
|
11 |
+
color: white;
|
12 |
+
color: #999999;
|
13 |
+
text-transform: uppercase;
|
14 |
+
font-size: 18px;
|
15 |
+
width: 33.33%;
|
16 |
+
float: left;
|
17 |
+
position: relative;
|
18 |
+
}
|
19 |
+
#powerpress-steps li.pp-step-1:before {
|
20 |
+
content: '1';
|
21 |
+
}
|
22 |
+
#powerpress-steps li.pp-step-2:before {
|
23 |
+
content: '2';
|
24 |
+
}
|
25 |
+
#powerpress-steps li.pp-step-3:before {
|
26 |
+
content: '3';
|
27 |
+
}
|
28 |
+
#powerpress-steps li:before {
|
29 |
+
width: 30px;
|
30 |
+
line-height: 30px;
|
31 |
+
display: block;
|
32 |
+
font-size: 18px;
|
33 |
+
color: #333;
|
34 |
+
background: white;
|
35 |
+
background: #999999;
|
36 |
+
color: white;
|
37 |
+
border-radius: 3px;
|
38 |
+
margin: 0 auto 5px auto;
|
39 |
+
font-family: arial, verdana;
|
40 |
+
}
|
41 |
+
#powerpress-steps li:after {
|
42 |
+
content: '';
|
43 |
+
width: 100%;
|
44 |
+
height: 2px;
|
45 |
+
background: #999999;
|
46 |
+
position: absolute;
|
47 |
+
left: -50%;
|
48 |
+
top: 14px;
|
49 |
+
z-index: -1; /*put it behind the numbers*/
|
50 |
+
}
|
51 |
+
#powerpress-steps li:first-child:after {
|
52 |
+
/*connector not needed before the first step*/
|
53 |
+
content: none;
|
54 |
+
}
|
55 |
+
#powerpress-steps li.pp-step-active:before, #powerpress-steps li.pp-step-active:after{
|
56 |
+
background: #0D87E9;
|
57 |
+
color: white;
|
58 |
+
}
|
59 |
+
#powerpress-steps li.pp-step-active {
|
60 |
+
color: #0D87E9;
|
61 |
+
}
|
62 |
+
#powerpress-steps li.pp-step-active p,
|
63 |
+
#powerpress-steps li.pp-step-active h3 {
|
64 |
+
color: #0D87E9;
|
65 |
+
}
|
66 |
+
#powerpress-steps p {
|
67 |
+
text-transform: none;
|
68 |
+
margin: 10px 40px;
|
69 |
+
line-height: 1.3em;
|
70 |
+
}
|
71 |
+
#powerpress-steps h3 {
|
72 |
+
text-transform: none;
|
73 |
+
margin: 10px 40px;
|
74 |
+
font-size: 100%;
|
75 |
+
line-height: 1.3em;
|
76 |
+
position: relative;
|
77 |
+
display: inline-block;
|
78 |
+
}
|
79 |
+
#powerpress-steps a {
|
80 |
+
color: #999999;
|
81 |
+
}
|
82 |
+
#powerpress-steps li.pp-step-active a {
|
83 |
+
color: #003366;
|
84 |
+
color: #0D87E9;
|
85 |
+
}
|
86 |
+
#powerpress-steps li.pp-step-active a:hover {
|
87 |
+
color: #003366;
|
88 |
+
}
|
89 |
+
#powerpress-steps h3.pp-step-h-completed:before
|
90 |
+
{
|
91 |
+
content: '\2713';
|
92 |
+
font-weight: 400;
|
93 |
+
font-size: 32px;
|
94 |
+
position: absolute;
|
95 |
+
left: -25px;
|
96 |
+
top: -5px;
|
97 |
+
}
|
98 |
+
|
99 |
+
@media screen and (max-width: 400px) {
|
100 |
+
#powerpress-steps p,
|
101 |
+
#powerpress-steps h3 {
|
102 |
+
margin: 10px 10px;
|
103 |
+
}
|
104 |
+
#powerpress-steps h3.pp-step-h-completed:before {
|
105 |
+
left: -15px;
|
106 |
+
}
|
107 |
+
}
|
feed-podcast.php
CHANGED
@@ -88,7 +88,7 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
|
|
88 |
<?php
|
89 |
}
|
90 |
else // If feed maximizer on
|
91 |
-
{
|
92 |
?>
|
93 |
<description><?php echo powerpress_format_itunes_value( powerpress_get_the_excerpt_rss(), 'description' ); ?></description>
|
94 |
<?php
|
88 |
<?php
|
89 |
}
|
90 |
else // If feed maximizer on
|
91 |
+
{
|
92 |
?>
|
93 |
<description><?php echo powerpress_format_itunes_value( powerpress_get_the_excerpt_rss(), 'description' ); ?></description>
|
94 |
<?php
|
powerpress-feed-auth.php
CHANGED
@@ -9,18 +9,28 @@
|
|
9 |
{
|
10 |
$FeedSettings = get_option('powerpress_feed_'.$feed_slug);
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
if( !isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) )
|
13 |
powerpress_feed_auth_basic( $FeedSettings['title'] );
|
14 |
|
15 |
$user = $_SERVER['PHP_AUTH_USER'];
|
16 |
$password = $_SERVER['PHP_AUTH_PW'];
|
17 |
|
18 |
-
|
19 |
-
|
20 |
$userObj = wp_authenticate($user, $password);
|
21 |
|
22 |
-
|
23 |
-
|
24 |
if( !is_wp_error($userObj) )
|
25 |
{
|
26 |
// Check capability...
|
@@ -40,6 +50,7 @@
|
|
40 |
if( !$error )
|
41 |
$error = __('Unauthorized', 'powerpress');
|
42 |
header('HTTP/1.0 401 Unauthorized');
|
|
|
43 |
header('WWW-Authenticate: Basic realm="'. str_replace('"', '', $realm_name).'"');
|
44 |
|
45 |
echo '<!DOCTYPE html>'; // HTML5!
|
@@ -58,5 +69,6 @@
|
|
58 |
<?php
|
59 |
exit;
|
60 |
}
|
|
|
|
|
61 |
|
62 |
-
?>
|
9 |
{
|
10 |
$FeedSettings = get_option('powerpress_feed_'.$feed_slug);
|
11 |
|
12 |
+
/*
|
13 |
+
* php-cgi under Apache does not pass HTTP Basic user/pass to PHP by default
|
14 |
+
* For this workaround to work, add this line to your .htaccess file:
|
15 |
+
* RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
16 |
+
*/
|
17 |
+
// Workaround for HTTP Authentication with PHP running as CGI
|
18 |
+
if ( !isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['HTTP_AUTHORIZATION'])) {
|
19 |
+
$ha = base64_decode( substr($_SERVER['HTTP_AUTHORIZATION'],6) ); // Chop off 'basic ' from the beginning of the value
|
20 |
+
if( strstr($ha, ':') ) { // Colon found, lets split it for user:password
|
21 |
+
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $ha);
|
22 |
+
}
|
23 |
+
unset($ha);
|
24 |
+
}
|
25 |
+
|
26 |
if( !isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) )
|
27 |
powerpress_feed_auth_basic( $FeedSettings['title'] );
|
28 |
|
29 |
$user = $_SERVER['PHP_AUTH_USER'];
|
30 |
$password = $_SERVER['PHP_AUTH_PW'];
|
31 |
|
|
|
|
|
32 |
$userObj = wp_authenticate($user, $password);
|
33 |
|
|
|
|
|
34 |
if( !is_wp_error($userObj) )
|
35 |
{
|
36 |
// Check capability...
|
50 |
if( !$error )
|
51 |
$error = __('Unauthorized', 'powerpress');
|
52 |
header('HTTP/1.0 401 Unauthorized');
|
53 |
+
header('Content-Type: text/html');
|
54 |
header('WWW-Authenticate: Basic realm="'. str_replace('"', '', $realm_name).'"');
|
55 |
|
56 |
echo '<!DOCTYPE html>'; // HTML5!
|
69 |
<?php
|
70 |
exit;
|
71 |
}
|
72 |
+
|
73 |
+
|
74 |
|
|
powerpress-player.php
CHANGED
@@ -1449,6 +1449,7 @@ function powerpressplayer_build_html5audio($media_url, $EpisodeData=array(), $em
|
|
1449 |
{
|
1450 |
$GeneralSettings = get_option('powerpress_general');
|
1451 |
$cover_image = powerpress_get_root_url() . 'play_audio.png';
|
|
|
1452 |
if( !empty($EpisodeData['custom_play_button']) )
|
1453 |
{
|
1454 |
$cover_image = $EpisodeData['custom_play_button'];
|
@@ -1460,7 +1461,10 @@ function powerpressplayer_build_html5audio($media_url, $EpisodeData=array(), $em
|
|
1460 |
|
1461 |
$content .= '<div class="powerpress_player" id="powerpress_player_'. $player_id .'">';
|
1462 |
$content .= '<a href="'. $media_url .'" title="'. htmlspecialchars(POWERPRESS_PLAY_TEXT) .'" onclick="return powerpress_embed_html5a(\''.$player_id.'\',\''.$media_url.'\');" target="_blank">';
|
1463 |
-
$
|
|
|
|
|
|
|
1464 |
$content .= '</a>';
|
1465 |
$content .= "</div>\n";
|
1466 |
|
1449 |
{
|
1450 |
$GeneralSettings = get_option('powerpress_general');
|
1451 |
$cover_image = powerpress_get_root_url() . 'play_audio.png';
|
1452 |
+
$cover_image_default = $cover_image;
|
1453 |
if( !empty($EpisodeData['custom_play_button']) )
|
1454 |
{
|
1455 |
$cover_image = $EpisodeData['custom_play_button'];
|
1461 |
|
1462 |
$content .= '<div class="powerpress_player" id="powerpress_player_'. $player_id .'">';
|
1463 |
$content .= '<a href="'. $media_url .'" title="'. htmlspecialchars(POWERPRESS_PLAY_TEXT) .'" onclick="return powerpress_embed_html5a(\''.$player_id.'\',\''.$media_url.'\');" target="_blank">';
|
1464 |
+
if( $cover_image_default == $cover_image )
|
1465 |
+
$content .= '<img src="'. $cover_image .'" title="'. htmlspecialchars(POWERPRESS_PLAY_TEXT) .'" alt="'. htmlspecialchars(POWERPRESS_PLAY_TEXT) .'" style="border:0;" width="23px" height="24px" />';
|
1466 |
+
else
|
1467 |
+
$content .= '<img src="'. $cover_image .'" title="'. htmlspecialchars(POWERPRESS_PLAY_TEXT) .'" alt="'. htmlspecialchars(POWERPRESS_PLAY_TEXT) .'" style="border:0;" />';
|
1468 |
$content .= '</a>';
|
1469 |
$content .= "</div>\n";
|
1470 |
|
powerpress-playlist.php
CHANGED
@@ -339,7 +339,7 @@ function powerpress_playlist_shortcode( $attr ) {
|
|
339 |
if( !empty($post_type) )
|
340 |
{
|
341 |
$PostTypeSettingsArray = get_option('powerpress_posttype_'.$post_type);
|
342 |
-
if( is_array($PostTypeSettingsArray[ $slug ] ) )
|
343 |
{
|
344 |
$ProgramSettings = $PostTypeSettingsArray[ $slug ];
|
345 |
}
|
339 |
if( !empty($post_type) )
|
340 |
{
|
341 |
$PostTypeSettingsArray = get_option('powerpress_posttype_'.$post_type);
|
342 |
+
if( isset($PostTypeSettingsArray[ $slug ]) && is_array($PostTypeSettingsArray[ $slug ] ) )
|
343 |
{
|
344 |
$ProgramSettings = $PostTypeSettingsArray[ $slug ];
|
345 |
}
|
powerpress.php
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
Plugin Name: Blubrry PowerPress
|
4 |
Plugin URI: http://create.blubrry.com/resources/powerpress/
|
5 |
Description: <a href="http://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports iTunes, Google Play, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
|
6 |
-
Version: 6.3.
|
7 |
Author: Blubrry
|
8 |
Author URI: http://www.blubrry.com/
|
9 |
Requires at least: 3.7
|
10 |
-
Tested up to: 4.4
|
11 |
Text Domain: powerpress
|
12 |
Change Log:
|
13 |
Please see readme.txt for detailed change log.
|
@@ -552,15 +552,22 @@ function powerpress_rss2_head()
|
|
552 |
echo "\t<itunes:new-feed-url>". htmlspecialchars(trim($Feed['itunes_new_feed_url'])) .'</itunes:new-feed-url>'.PHP_EOL;
|
553 |
}
|
554 |
|
555 |
-
if( !empty($
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
560 |
if( !empty($powerpress_feed['itunes_talent_name']) )
|
561 |
echo "\t<itunes:author>" . esc_html($powerpress_feed['itunes_talent_name']) . '</itunes:author>'.PHP_EOL;
|
562 |
|
563 |
-
if( !empty($powerpress_feed['explicit']) )
|
564 |
echo "\t".'<itunes:explicit>' . $powerpress_feed['explicit'] . '</itunes:explicit>'.PHP_EOL;
|
565 |
|
566 |
if( !empty($Feed['itunes_block']) )
|
@@ -854,16 +861,15 @@ function powerpress_rss2_item()
|
|
854 |
$content_no_html_a = '';
|
855 |
if( !$subtitle || !$summary )
|
856 |
{
|
857 |
-
$
|
858 |
-
$excerpt_no_html = strip_tags($post->post_excerpt);
|
859 |
}
|
860 |
|
861 |
if( (!$subtitle && !$excerpt_no_html) || (!$summary && !$powerpress_feed['enhance_itunes_summary'] && !$excerpt_no_html ) )
|
862 |
{
|
863 |
// Strip and format the wordpress way, but don't apply any other filters for these itunes tags
|
864 |
-
$content_no_html =
|
865 |
$content_no_html = strip_shortcodes( $content_no_html );
|
866 |
-
|
867 |
$content_no_html_a = strip_tags($content_no_html, '<a>');
|
868 |
$content_no_html = strip_tags($content_no_html);
|
869 |
}
|
@@ -877,14 +883,28 @@ function powerpress_rss2_item()
|
|
877 |
|
878 |
if( empty($powerpress_feed['feed_maximizer_on']) )
|
879 |
{
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
888 |
|
889 |
if( $author )
|
890 |
echo "\t\t<itunes:author>" . esc_html($author) . '</itunes:author>'.PHP_EOL;
|
@@ -898,7 +918,7 @@ function powerpress_rss2_item()
|
|
898 |
echo "\t\t".'<itunes:image href="' . esc_html( str_replace(' ', '+', $powerpress_feed['itunes_image']), 'double') . '" />'.PHP_EOL;
|
899 |
}
|
900 |
|
901 |
-
if( $explicit )
|
902 |
echo "\t\t<itunes:explicit>" . $explicit . '</itunes:explicit>'.PHP_EOL;
|
903 |
|
904 |
if( $EpisodeData['duration'] && preg_match('/^(\d{1,2}:){0,2}\d{1,2}$/i', ltrim($EpisodeData['duration'], '0:') ) ) // Include duration if it is valid
|
@@ -1273,7 +1293,11 @@ function powerpress_do_podcast_feed($for_comments=false)
|
|
1273 |
}
|
1274 |
|
1275 |
// Use the template to gurantee future WordPress behavior
|
1276 |
-
|
|
|
|
|
|
|
|
|
1277 |
}
|
1278 |
|
1279 |
function powerpress_template_redirect()
|
@@ -2247,40 +2271,6 @@ function powerpress_get_contenttype($file, $use_wp_check_filetype = true)
|
|
2247 |
return '';
|
2248 |
}
|
2249 |
|
2250 |
-
function powerpress_itunes_summary($html)
|
2251 |
-
{
|
2252 |
-
// Do some smart conversion of the post html to readable text without HTML.
|
2253 |
-
/*
|
2254 |
-
// First, convert: <a href="link"...>label</a>
|
2255 |
-
// to: label (link)
|
2256 |
-
$html = preg_replace_callback('/(\<a[^\>]*href="([^"]*)"[^\>]*>([^\<]*)<\/a\>)/i',
|
2257 |
-
create_function(
|
2258 |
-
'$matches',
|
2259 |
-
'return "{$matches[3]} ({$matches[2]})";'
|
2260 |
-
),
|
2261 |
-
$html);
|
2262 |
-
|
2263 |
-
// Second, convert: <img src="link" title="title" />
|
2264 |
-
// to: if no title (image: link) or (image title: link)
|
2265 |
-
$html = preg_replace_callback('/(\<img[^\>]*src="([^"]*)"[^\>]*[^\>]*\>)/i',
|
2266 |
-
create_function(
|
2267 |
-
'$matches',
|
2268 |
-
'return "({$matches[2]})";'
|
2269 |
-
),
|
2270 |
-
$html);
|
2271 |
-
*/
|
2272 |
-
|
2273 |
-
// For now make them bullet points...
|
2274 |
-
$html = str_replace('<li>', '<li>* ', $html);
|
2275 |
-
|
2276 |
-
// Now do all the other regular conversions...
|
2277 |
-
$html = strip_shortcodes( $html );
|
2278 |
-
$html = str_replace(']]>', ']]>', $html);
|
2279 |
-
$content_no_html = strip_tags($html, '<a>'); // We can leave a tags
|
2280 |
-
$content_no_html = powerpress_format_itunes_value($content_no_html, 'summary-enhanced');
|
2281 |
-
//$content_no_html = preg_replace('/(\(http:\/\/[^\)\s]*)$/i', '', $content_no_html);
|
2282 |
-
return $content_no_html;
|
2283 |
-
}
|
2284 |
|
2285 |
function powerpress_itunes_categories($PrefixSubCategories = false)
|
2286 |
{
|
@@ -2424,8 +2414,21 @@ function powerpress_get_root_url()
|
|
2424 |
return $plugin_url . '/';
|
2425 |
}
|
2426 |
|
2427 |
-
function
|
2428 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2429 |
if( !defined('POWERPRESS_DISABLE_ITUNES_UTF8') || POWERPRESS_DISABLE_ITUNES_UTF8 == false ) // If not defined or it is false
|
2430 |
{
|
2431 |
global $wpdb;
|
@@ -2435,10 +2438,6 @@ function powerpress_format_itunes_value($value, $tag)
|
|
2435 |
case 'utf8mb3': break;
|
2436 |
case 'utf8mb4': break;
|
2437 |
default: {
|
2438 |
-
//if( defined('DB_CHARSET') && DB_CHARSET == 'utf8' ) {
|
2439 |
-
// break; }
|
2440 |
-
//if( defined('DB_CHARSET') && DB_CHARSET == 'utf8mb4' ) {
|
2441 |
-
// break; }
|
2442 |
|
2443 |
// preg_match fails when it encounters invalid UTF8 in $string
|
2444 |
if ( 1 !== @preg_match( '/^./us', $value ) ) {
|
@@ -3196,3 +3195,29 @@ if( defined('POWERPRESS_NEW_CODE') && POWERPRESS_NEW_CODE && file_exists(POWERPR
|
|
3196 |
require_once(POWERPRESS_ABSPATH.'/powerpress-new-code.php');
|
3197 |
}
|
3198 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Plugin Name: Blubrry PowerPress
|
4 |
Plugin URI: http://create.blubrry.com/resources/powerpress/
|
5 |
Description: <a href="http://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports iTunes, Google Play, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
|
6 |
+
Version: 6.3.2
|
7 |
Author: Blubrry
|
8 |
Author URI: http://www.blubrry.com/
|
9 |
Requires at least: 3.7
|
10 |
+
Tested up to: 4.4.2
|
11 |
Text Domain: powerpress
|
12 |
Change Log:
|
13 |
Please see readme.txt for detailed change log.
|
552 |
echo "\t<itunes:new-feed-url>". htmlspecialchars(trim($Feed['itunes_new_feed_url'])) .'</itunes:new-feed-url>'.PHP_EOL;
|
553 |
}
|
554 |
|
555 |
+
if( !empty($General['itunes_cdata']) ) {
|
556 |
+
if( !empty($Feed['itunes_summary']) )
|
557 |
+
echo "\t".'<itunes:summary><![CDATA['. powerpress_format_itunes_value( $Feed['itunes_summary'], 'summary', true ) .']]></itunes:summary>'.PHP_EOL;
|
558 |
+
else
|
559 |
+
echo "\t".'<itunes:summary><![CDATA['. powerpress_format_itunes_value( get_bloginfo('description'), 'summary', true ) .']]></itunes:summary>'.PHP_EOL;
|
560 |
+
} else {
|
561 |
+
if( !empty($Feed['itunes_summary']) )
|
562 |
+
echo "\t".'<itunes:summary>'. powerpress_format_itunes_value( $Feed['itunes_summary'], 'summary' ) .'</itunes:summary>'.PHP_EOL;
|
563 |
+
else
|
564 |
+
echo "\t".'<itunes:summary>'. powerpress_format_itunes_value( get_bloginfo('description'), 'summary' ) .'</itunes:summary>'.PHP_EOL;
|
565 |
+
}
|
566 |
+
|
567 |
if( !empty($powerpress_feed['itunes_talent_name']) )
|
568 |
echo "\t<itunes:author>" . esc_html($powerpress_feed['itunes_talent_name']) . '</itunes:author>'.PHP_EOL;
|
569 |
|
570 |
+
if( !empty($powerpress_feed['explicit']) && $powerpress_feed['explicit'] != 'no' )
|
571 |
echo "\t".'<itunes:explicit>' . $powerpress_feed['explicit'] . '</itunes:explicit>'.PHP_EOL;
|
572 |
|
573 |
if( !empty($Feed['itunes_block']) )
|
861 |
$content_no_html_a = '';
|
862 |
if( !$subtitle || !$summary )
|
863 |
{
|
864 |
+
$excerpt_no_html = strip_tags( get_the_excerpt() );
|
|
|
865 |
}
|
866 |
|
867 |
if( (!$subtitle && !$excerpt_no_html) || (!$summary && !$powerpress_feed['enhance_itunes_summary'] && !$excerpt_no_html ) )
|
868 |
{
|
869 |
// Strip and format the wordpress way, but don't apply any other filters for these itunes tags
|
870 |
+
$content_no_html = get_the_content();
|
871 |
$content_no_html = strip_shortcodes( $content_no_html );
|
872 |
+
//$content_no_html = str_replace(']]>', ']]>', $content_no_html);
|
873 |
$content_no_html_a = strip_tags($content_no_html, '<a>');
|
874 |
$content_no_html = strip_tags($content_no_html);
|
875 |
}
|
883 |
|
884 |
if( empty($powerpress_feed['feed_maximizer_on']) )
|
885 |
{
|
886 |
+
$General = get_option('powerpress_general');
|
887 |
+
|
888 |
+
if( !empty($General['itunes_cdata']) )
|
889 |
+
{
|
890 |
+
if( $summary )
|
891 |
+
echo "\t\t<itunes:summary><![CDATA[". powerpress_format_itunes_value($summary, 'summary', true) .']]></itunes:summary>'.PHP_EOL;
|
892 |
+
else if( $powerpress_feed['enhance_itunes_summary'] )
|
893 |
+
echo "\t\t<itunes:summary><![CDATA[". powerpress_itunes_summary() .']]></itunes:summary>'.PHP_EOL;
|
894 |
+
else if( $excerpt_no_html ) // $content_no_html_a
|
895 |
+
echo "\t\t<itunes:summary><![CDATA[". powerpress_format_itunes_value($excerpt_no_html, 'summary', true) .']]></itunes:summary>'.PHP_EOL;
|
896 |
+
else
|
897 |
+
echo "\t\t<itunes:summary><![CDATA[". powerpress_format_itunes_value($content_no_html_a, 'summary', true) .']]></itunes:summary>'.PHP_EOL;
|
898 |
+
} else {
|
899 |
+
if( $summary )
|
900 |
+
echo "\t\t<itunes:summary>". powerpress_format_itunes_value($summary, 'summary') .'</itunes:summary>'.PHP_EOL;
|
901 |
+
else if( $powerpress_feed['enhance_itunes_summary'] )
|
902 |
+
echo "\t\t<itunes:summary><![CDATA[". powerpress_itunes_summary($post->post_content) .']]></itunes:summary>'.PHP_EOL;
|
903 |
+
else if( $excerpt_no_html ) // $content_no_html_a
|
904 |
+
echo "\t\t<itunes:summary>". powerpress_format_itunes_value($excerpt_no_html, 'summary') .'</itunes:summary>'.PHP_EOL;
|
905 |
+
else
|
906 |
+
echo "\t\t<itunes:summary>". powerpress_format_itunes_value($content_no_html_a, 'summary') .'</itunes:summary>'.PHP_EOL;
|
907 |
+
}
|
908 |
|
909 |
if( $author )
|
910 |
echo "\t\t<itunes:author>" . esc_html($author) . '</itunes:author>'.PHP_EOL;
|
918 |
echo "\t\t".'<itunes:image href="' . esc_html( str_replace(' ', '+', $powerpress_feed['itunes_image']), 'double') . '" />'.PHP_EOL;
|
919 |
}
|
920 |
|
921 |
+
if( !empty($explicit) && $explicit != 'no' )
|
922 |
echo "\t\t<itunes:explicit>" . $explicit . '</itunes:explicit>'.PHP_EOL;
|
923 |
|
924 |
if( $EpisodeData['duration'] && preg_match('/^(\d{1,2}:){0,2}\d{1,2}$/i', ltrim($EpisodeData['duration'], '0:') ) ) // Include duration if it is valid
|
1293 |
}
|
1294 |
|
1295 |
// Use the template to gurantee future WordPress behavior
|
1296 |
+
if( defined('POWERPRESS_FEED_TEMPLATE') ) {
|
1297 |
+
load_template( POWERPRESS_FEED_TEMPLATE );
|
1298 |
+
} else {
|
1299 |
+
load_template( POWERPRESS_ABSPATH . '/feed-podcast.php' );
|
1300 |
+
}
|
1301 |
}
|
1302 |
|
1303 |
function powerpress_template_redirect()
|
2271 |
return '';
|
2272 |
}
|
2273 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2274 |
|
2275 |
function powerpress_itunes_categories($PrefixSubCategories = false)
|
2276 |
{
|
2414 |
return $plugin_url . '/';
|
2415 |
}
|
2416 |
|
2417 |
+
function powerpress_itunes_summary()
|
2418 |
{
|
2419 |
+
$summary = apply_filters( 'the_content', get_the_content() );
|
2420 |
+
$summary = str_replace(']]>', ']]>', $content); // CDATA error prevention
|
2421 |
+
$summary = strip_tags($summary, '<a>'); // We can leave a tags for itunes:summary
|
2422 |
+
return powerpress_trim_itunes_value($summary, 'summary');
|
2423 |
+
}
|
2424 |
+
|
2425 |
+
function powerpress_format_itunes_value($value, $tag, $cdata=false)
|
2426 |
+
{
|
2427 |
+
if( $cdata ) {
|
2428 |
+
$value = str_replace(']]>', ']]>', $value);
|
2429 |
+
return powerpress_trim_itunes_value($value, $tag);
|
2430 |
+
}
|
2431 |
+
|
2432 |
if( !defined('POWERPRESS_DISABLE_ITUNES_UTF8') || POWERPRESS_DISABLE_ITUNES_UTF8 == false ) // If not defined or it is false
|
2433 |
{
|
2434 |
global $wpdb;
|
2438 |
case 'utf8mb3': break;
|
2439 |
case 'utf8mb4': break;
|
2440 |
default: {
|
|
|
|
|
|
|
|
|
2441 |
|
2442 |
// preg_match fails when it encounters invalid UTF8 in $string
|
2443 |
if ( 1 !== @preg_match( '/^./us', $value ) ) {
|
3195 |
require_once(POWERPRESS_ABSPATH.'/powerpress-new-code.php');
|
3196 |
}
|
3197 |
*/
|
3198 |
+
|
3199 |
+
|
3200 |
+
if( defined('POWERPRESS_PREMIUM_GROUPS_PLUGIN') ) {
|
3201 |
+
|
3202 |
+
function powerpress_pre_get_posts($query) {
|
3203 |
+
if( is_feed() && powerpress_is_custom_podcast_feed() && method_exists('Groups_Post_Access', 'posts_where') )
|
3204 |
+
{
|
3205 |
+
$feed_slug = get_query_var('feed');
|
3206 |
+
|
3207 |
+
if( $feed_slug != 'podcast' )
|
3208 |
+
{
|
3209 |
+
$FeedSettings = get_option('powerpress_feed_'.$feed_slug);
|
3210 |
+
if( !empty($FeedSettings['premium']) )
|
3211 |
+
{
|
3212 |
+
if( has_filter('posts_where', 'Groups_Post_Access::posts_where') )
|
3213 |
+
{
|
3214 |
+
remove_filter('posts_where', 'Groups_Post_Access::posts_where');
|
3215 |
+
}
|
3216 |
+
}
|
3217 |
+
}
|
3218 |
+
}
|
3219 |
+
}
|
3220 |
+
add_filter('pre_get_posts', 'powerpress_pre_get_posts');
|
3221 |
+
}
|
3222 |
+
|
3223 |
+
// eof
|
powerpressadmin-basic.php
CHANGED
@@ -1659,6 +1659,7 @@ function powerpressadmin_edit_artwork($FeedSettings, $General)
|
|
1659 |
<th scope="row">
|
1660 |
<?php echo __('iTunes Image', 'powerpress'); ?>
|
1661 |
<span class="powerpress-required"><?php echo __('Required', 'powerpress'); ?></span>
|
|
|
1662 |
</th>
|
1663 |
<td>
|
1664 |
<input type="text" id="itunes_image" name="Feed[itunes_image]" style="width: 60%; margin-top: 10px;" value="<?php echo esc_attr( !empty($FeedSettings['itunes_image'])? $FeedSettings['itunes_image']:''); ?>" maxlength="255" />
|
@@ -1667,7 +1668,7 @@ function powerpressadmin_edit_artwork($FeedSettings, $General)
|
|
1667 |
<p><?php echo __('iTunes image must be at least 1400 x 1400 pixels in .jpg or .png format. iTunes image must not exceed 3000 x 3000 pixels and must use RGB color space.', 'powerpress'); ?> <?php echo __('Example', 'powerpress'); ?>: http://example.com/images/itunes.jpg
|
1668 |
</p>
|
1669 |
|
1670 |
-
<p><strong><?php echo __('A square
|
1671 |
|
1672 |
<p>
|
1673 |
<?php echo __('This image is for your listing on the iTunes podcast directory and may also be used by other directories like Blubrry. It is not the artwork that is displayed during episode playback. That artwork needs to be saved into the media file in the form of tags (ID3 tags for mp3) following the production of the media file.', 'powerpress'); ?>
|
1659 |
<th scope="row">
|
1660 |
<?php echo __('iTunes Image', 'powerpress'); ?>
|
1661 |
<span class="powerpress-required"><?php echo __('Required', 'powerpress'); ?></span>
|
1662 |
+
<?php echo powerpressadmin_updated( __('recommended size changed February, 2016', 'powerpress') ); ?>
|
1663 |
</th>
|
1664 |
<td>
|
1665 |
<input type="text" id="itunes_image" name="Feed[itunes_image]" style="width: 60%; margin-top: 10px;" value="<?php echo esc_attr( !empty($FeedSettings['itunes_image'])? $FeedSettings['itunes_image']:''); ?>" maxlength="255" />
|
1668 |
<p><?php echo __('iTunes image must be at least 1400 x 1400 pixels in .jpg or .png format. iTunes image must not exceed 3000 x 3000 pixels and must use RGB color space.', 'powerpress'); ?> <?php echo __('Example', 'powerpress'); ?>: http://example.com/images/itunes.jpg
|
1669 |
</p>
|
1670 |
|
1671 |
+
<p><strong><?php echo __('A square 3000 x 3000 pixel image in .jpg format is recommended.', 'powerpress'); ?></strong></p>
|
1672 |
|
1673 |
<p>
|
1674 |
<?php echo __('This image is for your listing on the iTunes podcast directory and may also be used by other directories like Blubrry. It is not the artwork that is displayed during episode playback. That artwork needs to be saved into the media file in the form of tags (ID3 tags for mp3) following the production of the media file.', 'powerpress'); ?>
|
powerpressadmin-defaults.php
CHANGED
@@ -1,47 +1,23 @@
|
|
1 |
<?php
|
2 |
|
3 |
|
4 |
-
function powerpressadmin_default_steps($
|
5 |
{
|
|
|
|
|
6 |
?>
|
7 |
-
<div id="
|
8 |
-
<
|
9 |
-
<
|
10 |
-
<
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
</p>
|
20 |
-
<p><a href="http://create.blubrry.com/resources/" target="_blank"><?php echo __('Need Help?', 'powerpress'); ?></a>
|
21 |
-
</p>
|
22 |
-
<?php powerpressadmin_complete_check($Step >= 2); ?>
|
23 |
-
</div>
|
24 |
-
<div class="powerpress-step<?php echo ($Step >= 2? ' active-step':''); ?>">
|
25 |
-
<h3><?php echo __('Step 3', 'powerpress'); ?></h3>
|
26 |
-
<p>
|
27 |
-
<a href="http://create.blubrry.com/manual/podcast-promotion/submit-podcast-to-itunes/?podcast-feed=<?php echo urlencode(get_feed_link('podcast')); ?>" target="_blank"><?php echo __('Submit your feed to iTunes and other podcast directories', 'powerpress'); ?></a>
|
28 |
-
</p>
|
29 |
-
<?php powerpressadmin_complete_check($Step == 3); ?>
|
30 |
-
</div>
|
31 |
-
<div class="clear"></div>
|
32 |
-
</div>
|
33 |
-
<?php
|
34 |
-
|
35 |
-
}
|
36 |
-
|
37 |
-
function powerpressadmin_complete_check($checked=false)
|
38 |
-
{
|
39 |
-
?>
|
40 |
-
<div class="powerpress-step-complete<?php echo ($checked?' powerpress-step-completed':''); ?>">
|
41 |
-
<p>complete
|
42 |
-
<span class="powerpress-step-complete-box"> </span>
|
43 |
-
</p>
|
44 |
-
</div>
|
45 |
<?php
|
46 |
}
|
47 |
|
@@ -108,8 +84,8 @@ jQuery(document).ready(function($) {
|
|
108 |
</div>
|
109 |
|
110 |
<?php
|
111 |
-
|
112 |
-
powerpressadmin_default_steps($
|
113 |
|
114 |
if( $MultiSiteServiceSettings && defined('POWERPRESS_MULTISITE_VERSION') )
|
115 |
{
|
1 |
<?php
|
2 |
|
3 |
|
4 |
+
function powerpressadmin_default_steps($Step = 0, $Heading = true)
|
5 |
{
|
6 |
+
if( isset($_GET['pp-step']) )
|
7 |
+
$Step = $_GET['pp-step'];
|
8 |
?>
|
9 |
+
<div id="pp-getting-started-box">
|
10 |
+
<?php echo ($Heading?'<h2>'. __('Start your podcast in 3 easy steps...', 'powerpress') .'</h2>':''); ?>
|
11 |
+
<link rel="stylesheet" type="text/css" href="<?php echo powerpress_get_root_url(); ?>css/steps.css">
|
12 |
+
<ul id="powerpress-steps">
|
13 |
+
<li class="pp-step-1<?php echo ($Step >= 0? ' pp-step-active':''); ?>"><h3 class="<?php echo ($Step >= 1? 'pp-step-h-completed':''); ?>"><?php echo __('Fill out the settings on this page', 'powerpress'); ?></h3></li>
|
14 |
+
<li class="pp-step-2<?php echo ($Step >= 1? ' pp-step-active':''); ?>">
|
15 |
+
<h3 class="<?php echo ($Step >= 2? 'pp-step-h-completed':''); ?>"><a href="<?php echo admin_url( 'post-new.php' ); ?>"><?php echo __('Create a blog post with an episode', 'powerpress'); ?></a></h3>
|
16 |
+
<p><a href="http://create.blubrry.com/resources/powerpress/using-powerpress/creating-your-first-episode-with-powerpress/" target="_blank"><?php echo __('Need help?', 'powerpress'); ?></a>
|
17 |
+
</li>
|
18 |
+
<li class="pp-step-3<?php echo ($Step >= 2? ' pp-step-active':''); ?>"><h3 class="<?php echo ($Step >= 3? 'pp-step-h-completed':''); ?>"><a href="http://create.blubrry.com/manual/podcast-promotion/submit-podcast-to-itunes/?podcast-feed=<?php echo urlencode(get_feed_link('podcast')); ?>" target="_blank"><?php echo __('Submit your podcast to iTunes and other podcast directories', 'powerpress'); ?></a></h3></li>
|
19 |
+
</ul>
|
20 |
+
</div><!-- end pp-getting-started-box -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
<?php
|
22 |
}
|
23 |
|
84 |
</div>
|
85 |
|
86 |
<?php
|
87 |
+
|
88 |
+
powerpressadmin_default_steps($Step);
|
89 |
|
90 |
if( $MultiSiteServiceSettings && defined('POWERPRESS_MULTISITE_VERSION') )
|
91 |
{
|
powerpressadmin-editfeed.php
CHANGED
@@ -1014,9 +1014,13 @@ function powerpressadmin_edit_itunes_feed($FeedSettings, $General, $FeedAttribs
|
|
1014 |
|
1015 |
<?php echo __('iTunes Program Summary', 'powerpress'); ?></th>
|
1016 |
<td>
|
1017 |
-
<p style="margin-top: 5px;"><?php echo __('Your summary
|
1018 |
|
1019 |
<textarea name="Feed[itunes_summary]" rows="5" style="width:80%;" ><?php echo esc_textarea($FeedSettings['itunes_summary']); ?></textarea>
|
|
|
|
|
|
|
|
|
1020 |
</td>
|
1021 |
</tr>
|
1022 |
|
@@ -1029,7 +1033,7 @@ function powerpressadmin_edit_itunes_feed($FeedSettings, $General, $FeedAttribs
|
|
1029 |
|
1030 |
<?php echo __('iTunes Episode Summary', 'powerpress'); ?></th>
|
1031 |
<td>
|
1032 |
-
<div><input type="checkbox" name="Feed[enhance_itunes_summary]" value="1" <?php echo ( !empty($FeedSettings['enhance_itunes_summary'])?'checked ':''); ?>/> <?php echo __('Optimize iTunes Summary from Blog Posts', 'powerpress'); ?>
|
1033 |
</div>
|
1034 |
<p>
|
1035 |
<?php echo __('Creates a friendlier view of your post/episode content.', 'powerpress'); ?>
|
@@ -1158,17 +1162,21 @@ reset($Categories);
|
|
1158 |
<tr valign="top">
|
1159 |
<th scope="row">
|
1160 |
<?php echo __('iTunes Explicit', 'powerpress'); ?>
|
|
|
1161 |
</th>
|
1162 |
<td>
|
1163 |
-
<select name="Feed[itunes_explicit]"
|
1164 |
<?php
|
1165 |
-
$explicit = array(0=> __('No
|
1166 |
|
1167 |
while( list($value,$desc) = each($explicit) )
|
1168 |
-
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_explicit']==$value?' selected':''). ">$desc</option>\n";
|
1169 |
|
1170 |
?>
|
1171 |
</select>
|
|
|
|
|
|
|
1172 |
</td>
|
1173 |
</tr>
|
1174 |
<?php if( !empty($General['advanced_mode_2']) ) { ?>
|
1014 |
|
1015 |
<?php echo __('iTunes Program Summary', 'powerpress'); ?></th>
|
1016 |
<td>
|
1017 |
+
<p style="margin-top: 5px;"><?php echo __('Your summary cannot exceed 4,000 characters in length and should not include HTML, except for hyperlinks', 'powerpress'); ?></p>
|
1018 |
|
1019 |
<textarea name="Feed[itunes_summary]" rows="5" style="width:80%;" ><?php echo esc_textarea($FeedSettings['itunes_summary']); ?></textarea>
|
1020 |
+
<div>
|
1021 |
+
<input type="hidden" name="General[itunes_cdata]" value="0" />
|
1022 |
+
<input type="checkbox" name="General[itunes_cdata]" value="1" <?php echo ( !empty($General['itunes_cdata'])?'checked ':''); ?>/> <?php echo __('Wrap summary values with <![CDATA[ ... ]]> tags', 'powerpress'); ?>
|
1023 |
+
</div>
|
1024 |
</td>
|
1025 |
</tr>
|
1026 |
|
1033 |
|
1034 |
<?php echo __('iTunes Episode Summary', 'powerpress'); ?></th>
|
1035 |
<td>
|
1036 |
+
<div style="margin-top: 15px;"><input type="checkbox" name="Feed[enhance_itunes_summary]" value="1" <?php echo ( !empty($FeedSettings['enhance_itunes_summary'])?'checked ':''); ?>/> <?php echo __('Optimize iTunes Summary from Blog Posts', 'powerpress'); ?>
|
1037 |
</div>
|
1038 |
<p>
|
1039 |
<?php echo __('Creates a friendlier view of your post/episode content.', 'powerpress'); ?>
|
1162 |
<tr valign="top">
|
1163 |
<th scope="row">
|
1164 |
<?php echo __('iTunes Explicit', 'powerpress'); ?>
|
1165 |
+
<span class="powerpress-required"><?php echo __('Required', 'powerpress'); ?></span>
|
1166 |
</th>
|
1167 |
<td>
|
1168 |
+
<select name="Feed[itunes_explicit]" style="width: 70%;">
|
1169 |
<?php
|
1170 |
+
$explicit = array(0=> __('No option selected', 'powerpress'), 1=>__('Yes - explicit content', 'powerpress'), 2=>__('Clean - no explicit content', 'powerpress'));
|
1171 |
|
1172 |
while( list($value,$desc) = each($explicit) )
|
1173 |
+
echo "\t<option value=\"$value\"". ($FeedSettings['itunes_explicit']==$value?' selected':''). (($FeedSettings['itunes_explicit']!=0&&$value==0)?'disabled':''). ">$desc</option>\n";
|
1174 |
|
1175 |
?>
|
1176 |
</select>
|
1177 |
+
<p>
|
1178 |
+
<em><?php echo __('Note: As of February, 2016, you must select either Yes or Clean.', 'powerpress'); ?></em>
|
1179 |
+
</p>
|
1180 |
</td>
|
1181 |
</tr>
|
1182 |
<?php if( !empty($General['advanced_mode_2']) ) { ?>
|
powerpressadmin-import-feed.php
CHANGED
@@ -9,10 +9,15 @@ function powerpress_admin_import_feed()
|
|
9 |
<p><?php echo __('The following tool will import your podcast episodes to this website.', 'powerpress'); ?></p>
|
10 |
|
11 |
<ul><li>
|
|
|
12 |
<ul>
|
13 |
<li><strong><a href="<?php echo admin_url("admin.php?import=powerpress-soundcloud-rss-podcast"); ?>"><?php echo __('Podcast from SoundCloud', 'powerpress'); ?></a></strong></li>
|
14 |
<li><strong><a href="<?php echo admin_url("admin.php?import=powerpress-libsyn-rss-podcast"); ?>"><?php echo __('Podcast from LibSyn', 'powerpress'); ?></a></strong></li>
|
15 |
<li><strong><a href="<?php echo admin_url("admin.php?import=powerpress-podbean-rss-podcast"); ?>"><?php echo __('Podcast from PodBean', 'powerpress'); ?></a></strong></li>
|
|
|
|
|
|
|
|
|
16 |
<li><strong><a href="<?php echo admin_url("admin.php?import=powerpress-rss-podcast"); ?>"><?php echo __('Podcast RSS Feed', 'powerpress'); ?></a></strong></li>
|
17 |
</ul>
|
18 |
</li></ul>
|
9 |
<p><?php echo __('The following tool will import your podcast episodes to this website.', 'powerpress'); ?></p>
|
10 |
|
11 |
<ul><li>
|
12 |
+
<h3><?php echo __('Import from specific service', 'powerpress'); ?></h3>
|
13 |
<ul>
|
14 |
<li><strong><a href="<?php echo admin_url("admin.php?import=powerpress-soundcloud-rss-podcast"); ?>"><?php echo __('Podcast from SoundCloud', 'powerpress'); ?></a></strong></li>
|
15 |
<li><strong><a href="<?php echo admin_url("admin.php?import=powerpress-libsyn-rss-podcast"); ?>"><?php echo __('Podcast from LibSyn', 'powerpress'); ?></a></strong></li>
|
16 |
<li><strong><a href="<?php echo admin_url("admin.php?import=powerpress-podbean-rss-podcast"); ?>"><?php echo __('Podcast from PodBean', 'powerpress'); ?></a></strong></li>
|
17 |
+
<li><strong><a href="<?php echo admin_url("admin.php?import=powerpress-squarespace-rss-podcast"); ?>"><?php echo __('Podcast from Squarespace', 'powerpress'); ?></a></strong></li>
|
18 |
+
</ul>
|
19 |
+
<h3><?php echo __('Import from anywhere else', 'powerpress'); ?></h3>
|
20 |
+
<ul>
|
21 |
<li><strong><a href="<?php echo admin_url("admin.php?import=powerpress-rss-podcast"); ?>"><?php echo __('Podcast RSS Feed', 'powerpress'); ?></a></strong></li>
|
22 |
</ul>
|
23 |
</li></ul>
|
powerpressadmin-metabox.php
CHANGED
@@ -413,7 +413,7 @@ function powerpress_meta_box($object, $box)
|
|
413 |
<textarea id="powerpress_summary_<?php echo $FeedSlug; ?>" name="Powerpress[<?php echo $FeedSlug; ?>][summary]" style="width: 90%; height: 80px; font-size: 90%;"><?php echo esc_textarea($iTunesSummary); ?></textarea>
|
414 |
</div>
|
415 |
<div class="powerpress_row_content">
|
416 |
-
<em><?php echo __('Your summary
|
417 |
</div>
|
418 |
</div>
|
419 |
<?php
|
413 |
<textarea id="powerpress_summary_<?php echo $FeedSlug; ?>" name="Powerpress[<?php echo $FeedSlug; ?>][summary]" style="width: 90%; height: 80px; font-size: 90%;"><?php echo esc_textarea($iTunesSummary); ?></textarea>
|
414 |
</div>
|
415 |
<div class="powerpress_row_content">
|
416 |
+
<em><?php echo __('Your summary cannot exceed 4,000 characters in length and should not include HTML, except for hyperlinks. Leave blank to use your blog post.', 'powerpress'); ?></em>
|
417 |
</div>
|
418 |
</div>
|
419 |
<?php
|
powerpressadmin-notifications.php
ADDED
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// powerpressadmin-notifications.php
|
3 |
+
|
4 |
+
// Notice message manager for PowerPress
|
5 |
+
|
6 |
+
// Inspired by the notifications in Yoast's SEO
|
7 |
+
// Also inspired from https://premium.wpmudev.org/blog/adding-admin-notices/
|
8 |
+
// For the sake of keeping things simple, we will only include this class when we need to display notifications
|
9 |
+
|
10 |
+
class PowerPress_Notification {
|
11 |
+
|
12 |
+
private $settings = array();
|
13 |
+
|
14 |
+
public function __construct($content, $settings = array() )
|
15 |
+
{
|
16 |
+
$defaults = array();
|
17 |
+
$defaults['content'] = '';
|
18 |
+
$defaults['type'] = 'updated';
|
19 |
+
$defaults['id'] = '';
|
20 |
+
$this->settings = wp_parse_args( $settings, $defaults );
|
21 |
+
if( !empty($content) )
|
22 |
+
$this->settings['content'] = $content;
|
23 |
+
if( empty($this->settings['content']) )
|
24 |
+
$this->settings['id'] = crc32($this->settings['content']); // Not ideal, but with no ID we need some unique value
|
25 |
+
}
|
26 |
+
|
27 |
+
public function get_notification_as_string()
|
28 |
+
{
|
29 |
+
$html = '<div class="powerpress-notice notice is-dismissible ' . esc_attr( $this->settings['type'] ) . '" id="powerpress-notice-'. esc_attr( $this->settings['id'] ) .'">';
|
30 |
+
$html .= wpautop( $this->settings['content'] );
|
31 |
+
|
32 |
+
if( version_compare($GLOBALS['wp_version'], 4.2, '<' ) ) {
|
33 |
+
$html .= '<p> <a style="float:right;" href="#" class="notice-dismiss-link">'. __('Dismiss', 'powerpress') .'</a></p>';
|
34 |
+
}
|
35 |
+
$html .= '</div>' . PHP_EOL;
|
36 |
+
return $html;
|
37 |
+
}
|
38 |
+
|
39 |
+
};
|
40 |
+
|
41 |
+
class PowerPress_Notification_Manager {
|
42 |
+
|
43 |
+
private $notifications = array();
|
44 |
+
private $dismissedNotifications = array();
|
45 |
+
|
46 |
+
public function __construct()
|
47 |
+
{
|
48 |
+
$this->dismissedNotifications = get_option('powerpress_dismissed_notices');
|
49 |
+
add_action( 'all_admin_notices', array( $this, 'all_admin_notices' ) );
|
50 |
+
add_action('wp_ajax_powerpress_notice_dismiss', array($this, 'wp_ajax_powerpress_notice_dismiss') );
|
51 |
+
add_action('admin_head', array($this, 'admin_head') );
|
52 |
+
}
|
53 |
+
|
54 |
+
public function all_admin_notices()
|
55 |
+
{
|
56 |
+
while( list($key, $notification) = each($this->notifications) )
|
57 |
+
{
|
58 |
+
echo $notification->get_notification_as_string();
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
public function wp_ajax_powerpress_notice_dismiss()
|
63 |
+
{
|
64 |
+
$dismiss_notice_id = $_POST['dismiss_notice_id'];
|
65 |
+
preg_match('/^powerpress-notice-(.*)$/i', $dismiss_notice_id, $match );
|
66 |
+
if( empty($match[1]) )
|
67 |
+
die('-1');
|
68 |
+
|
69 |
+
$DismissedNotifications = get_option('powerpress_dismissed_notices');
|
70 |
+
if( !is_array($DismissedNotifications) )
|
71 |
+
$DismissedNotifications = array();
|
72 |
+
$DismissedNotifications[ $match[1] ] = 1;
|
73 |
+
update_option('powerpress_dismissed_notices', $DismissedNotifications);
|
74 |
+
die('1');
|
75 |
+
}
|
76 |
+
|
77 |
+
function admin_head()
|
78 |
+
{
|
79 |
+
if( count($this->notifications) > 0 ) // If there are notices to print, then lets also put in the ajax to clear them
|
80 |
+
{
|
81 |
+
if( version_compare($GLOBALS['wp_version'], 4.2, '>=' ) ) {
|
82 |
+
?>
|
83 |
+
<script type="text/javascript"><!--
|
84 |
+
|
85 |
+
jQuery(document).ready( function() {
|
86 |
+
|
87 |
+
jQuery(document).on( 'click', '.powerpress-notice .notice-dismiss', function() {
|
88 |
+
|
89 |
+
var dismissId = jQuery(this).closest('.powerpress-notice').attr('id');
|
90 |
+
jQuery.post('<?php echo admin_url('admin-ajax.php'); ?>', {action:"powerpress_notice_dismiss", dismiss_notice_id: dismissId });
|
91 |
+
});
|
92 |
+
});
|
93 |
+
|
94 |
+
--></script>
|
95 |
+
<?php
|
96 |
+
}
|
97 |
+
else
|
98 |
+
{
|
99 |
+
?>
|
100 |
+
<script type="text/javascript"><!--
|
101 |
+
|
102 |
+
jQuery(document).ready( function() {
|
103 |
+
|
104 |
+
jQuery(document).on( 'click', '.powerpress-notice .notice-dismiss-link', function(e) {
|
105 |
+
e.preventDefault();
|
106 |
+
var dismissId = jQuery(this).closest('.powerpress-notice').attr('id');
|
107 |
+
jQuery.post('<?php echo admin_url('admin-ajax.php'); ?>', {action:"powerpress_notice_dismiss", dismiss_notice_id: dismissId });
|
108 |
+
jQuery(this).closest('.powerpress-notice').hide(); // Hide the div now we dismissed it
|
109 |
+
});
|
110 |
+
});
|
111 |
+
|
112 |
+
--></script>
|
113 |
+
<?php
|
114 |
+
}
|
115 |
+
?>
|
116 |
+
<style>
|
117 |
+
.powerpress-notice a {
|
118 |
+
text-decoration: underline;
|
119 |
+
}
|
120 |
+
</style>
|
121 |
+
<?php
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
public function dismissed_status($notification_id)
|
126 |
+
{
|
127 |
+
if( !empty($this->dismissedNotifications[ $notification_id ]) )
|
128 |
+
return true;
|
129 |
+
return false;
|
130 |
+
}
|
131 |
+
|
132 |
+
public function add($notification_id, $notification_content)
|
133 |
+
{
|
134 |
+
if( !$this->dismissed_status($notification_id) ) {
|
135 |
+
$this->notifications[$notification_id] = new PowerPress_Notification($notification_content, array('id'=>$notification_id) );
|
136 |
+
}
|
137 |
+
}
|
138 |
+
|
139 |
+
};
|
140 |
+
|
141 |
+
function powerpressadmin_notifications_appropriate()
|
142 |
+
{
|
143 |
+
// Any powerpress page
|
144 |
+
if( preg_match('/wp-admin\/.*powerpress/', $_SERVER['REQUEST_URI']) )
|
145 |
+
return true;
|
146 |
+
|
147 |
+
// Dashboard is acceptable:
|
148 |
+
if( preg_match('/wp-admin\/(index\.php)?$/', $_SERVER['REQUEST_URI']) )
|
149 |
+
return true;
|
150 |
+
|
151 |
+
// edit posts (pages, post types, etc...)
|
152 |
+
if( preg_match('/wp-admin\/edit\.php/', $_SERVER['REQUEST_URI']) )
|
153 |
+
return true;
|
154 |
+
|
155 |
+
// managing plugins
|
156 |
+
if( preg_match('/wp-admin\/plugins\.php/', $_SERVER['REQUEST_URI']) )
|
157 |
+
return true;
|
158 |
+
|
159 |
+
// Required so we can dismiss notices
|
160 |
+
if( preg_match('/wp-admin\/admin-ajax\.php/', $_SERVER['REQUEST_URI']) )
|
161 |
+
return true;
|
162 |
+
|
163 |
+
return false;
|
164 |
+
}
|
165 |
+
|
166 |
+
if( powerpressadmin_notifications_appropriate() ) {
|
167 |
+
$PowerPressNotificationManager = new PowerPress_Notification_Manager();
|
168 |
+
|
169 |
+
// e.g. usage
|
170 |
+
if( !$PowerPressNotificationManager->dismissed_status('apple-201602') ) {
|
171 |
+
|
172 |
+
$message = '';
|
173 |
+
$message .= '<h3 style="margin: 5px 0;">';
|
174 |
+
$message .= __('iTunes Update, February, 2016 - Blubrry PowerPress', 'powerpress');
|
175 |
+
$message .= '</h3>';
|
176 |
+
$message .= __('Apple now recommends using a 3000 x 3000 pixel JPG or PNG in the RGB color space in a compressed format. Saving your image as a JPG with your favorite image editing software should automatically compress your image to optimize for mobile devices.', 'powerpress');
|
177 |
+
$message .= ' — <a href="'. admin_url("admin.php?page=powerpress/powerpressadmin_basic.php#tab7") .'">'. __('Update Now', 'powerpress') .'</a>';
|
178 |
+
$message .= ' | <a href="http://www.powerpresspodcast.com/2016/02/19/new-itunes-podcast-directory-recommendations-february-2016/" target="_blank">'. __('Learn More', 'powerpress') .'</a>';
|
179 |
+
$message .= "\n\n";
|
180 |
+
$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');
|
181 |
+
$message .= ' — <a href="'. admin_url("admin.php?page=powerpress/powerpressadmin_basic.php#tab5") .'">'. __('Update Now', 'powerpress') .'</a>';
|
182 |
+
$message .= ' | <a href="http://www.powerpresspodcast.com/2016/02/19/new-itunes-podcast-directory-recommendations-february-2016/" target="_blank">'. __('Learn More', 'powerpress') .'</a>';
|
183 |
+
$message .= "\n\n";
|
184 |
+
$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');
|
185 |
+
$message .= ' — <a href="http://www.powerpresspodcast.com/2016/02/19/new-itunes-podcast-directory-recommendations-february-2016/" target="_blank">'. __('Learn More', 'powerpress') .'</a>';
|
186 |
+
$message .= "\n\n";
|
187 |
+
$message .= '<div style="text-align: center; margin: 5px 0; font-weight: bold;"><i>'. powerpress_review_message() .'</i></div>';
|
188 |
+
|
189 |
+
// http://www.apple.com/customer-letter/
|
190 |
+
// if you love PowerPress, Please rate and review PowerPress here:
|
191 |
+
|
192 |
+
$PowerPressNotificationManager->add('apple-201602', $message);
|
193 |
+
}
|
194 |
+
}
|
195 |
+
|
196 |
+
// eof
|
powerpressadmin-rss-import.php
CHANGED
@@ -39,6 +39,7 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
|
|
39 |
case 'powerpress-soundcloud-rss-podcast': echo '<h2>'.__('Import Podcast from SoundCloud', 'powerpress').'</h2>'; break;
|
40 |
case 'powerpress-libsyn-rss-podcast': echo '<h2>'.__('Import Podcast from LibSyn', 'powerpress').'</h2>'; break;
|
41 |
case 'powerpress-podbean-rss-podcast': echo '<h2>'.__('Import Podcast from PodBean', 'powerpress').'</h2>'; break;
|
|
|
42 |
case 'powerpress-rss-podcast':
|
43 |
default: echo '<h2>'.__('Import Podcast RSS Feed', 'powerpress').'</h2>'; break;
|
44 |
}
|
@@ -73,6 +74,7 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
|
|
73 |
case 'powerpress-soundcloud-rss-podcast': $placeholder = 'http://feeds.soundcloud.com/users/soundcloud:users:00000000/sounds.rss'; break;
|
74 |
case 'powerpress-libsyn-rss-podcast': $placeholder = 'http://yourshow.libsyn.com/rss'; break;
|
75 |
case 'powerpress-podbean-rss-podcast': $placeholder = 'http://yourshow.podbean.com/feed/'; break;
|
|
|
76 |
}
|
77 |
?>
|
78 |
<input type="text" name="podcast_feed_url" id="podcast_feed_url" size="50" class="code" style="width: 90%;" placeholder="<?php echo esc_attr($placeholder); ?>" />
|
@@ -260,9 +262,19 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
|
|
260 |
}
|
261 |
}
|
262 |
|
263 |
-
$
|
264 |
-
|
265 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
file_put_contents($upload_path.$filename, $image_data);
|
267 |
$NewSettings['itunes_image'] = $upload_url . $filename;
|
268 |
$NewSettings['rss2_image'] = $itunes_image;
|
@@ -863,12 +875,19 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
|
|
863 |
return false;
|
864 |
}
|
865 |
|
866 |
-
$
|
867 |
-
|
868 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
869 |
return false;
|
870 |
}
|
871 |
-
|
|
|
872 |
return true;
|
873 |
}
|
874 |
|
@@ -888,6 +907,7 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
|
|
888 |
register_importer('powerpress-soundcloud-rss-podcast', __('Podcast from SoundCloud', 'powerpress'), __('Import episdoes from a SoundCloud podcast feed.', 'powerpress'), array ($powerpress_rss_podcast_import, 'dispatch'));
|
889 |
register_importer('powerpress-libsyn-rss-podcast', __('Podcast from LibSyn', 'powerpress'), __('Import episdoes from a LibSyn podcast feed.', 'powerpress'), array ($powerpress_rss_podcast_import, 'dispatch'));
|
890 |
register_importer('powerpress-podbean-rss-podcast', __('Podcast from PodBean ', 'powerpress'), __('Import episdoes from a PodBean podcast feed.', 'powerpress'), array ($powerpress_rss_podcast_import, 'dispatch'));
|
|
|
891 |
register_importer('powerpress-rss-podcast', __('Podcast RSS Feed', 'powerpress'), __('Import episdoes from a RSS podcast feed.', 'powerpress'), array ($powerpress_rss_podcast_import, 'dispatch'));
|
892 |
|
893 |
}; // end if WP_Importer exists
|
39 |
case 'powerpress-soundcloud-rss-podcast': echo '<h2>'.__('Import Podcast from SoundCloud', 'powerpress').'</h2>'; break;
|
40 |
case 'powerpress-libsyn-rss-podcast': echo '<h2>'.__('Import Podcast from LibSyn', 'powerpress').'</h2>'; break;
|
41 |
case 'powerpress-podbean-rss-podcast': echo '<h2>'.__('Import Podcast from PodBean', 'powerpress').'</h2>'; break;
|
42 |
+
case 'powerpress-squarespace-rss-podcast': echo '<h2>'.__('Import Podcast from Squarespace', 'powerpress').'</h2>'; break;
|
43 |
case 'powerpress-rss-podcast':
|
44 |
default: echo '<h2>'.__('Import Podcast RSS Feed', 'powerpress').'</h2>'; break;
|
45 |
}
|
74 |
case 'powerpress-soundcloud-rss-podcast': $placeholder = 'http://feeds.soundcloud.com/users/soundcloud:users:00000000/sounds.rss'; break;
|
75 |
case 'powerpress-libsyn-rss-podcast': $placeholder = 'http://yourshow.libsyn.com/rss'; break;
|
76 |
case 'powerpress-podbean-rss-podcast': $placeholder = 'http://yourshow.podbean.com/feed/'; break;
|
77 |
+
case 'powerpress-squarespace-rss-podcast': $placeholder = 'http://example.com/podcast/?format=rss'; break;
|
78 |
}
|
79 |
?>
|
80 |
<input type="text" name="podcast_feed_url" id="podcast_feed_url" size="50" class="code" style="width: 90%;" placeholder="<?php echo esc_attr($placeholder); ?>" />
|
262 |
}
|
263 |
}
|
264 |
|
265 |
+
$options = array();
|
266 |
+
$options['user-agent'] = 'Blubrry PowerPress/'.POWERPRESS_VERSION;
|
267 |
+
if( !empty($_GET['import']) && $_GET['import'] == 'powerpress-squarespace-rss-podcast' )
|
268 |
+
$options['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36';
|
269 |
+
$options['timeout'] = 10;
|
270 |
+
|
271 |
+
$image_data = '';
|
272 |
+
$response = wp_safe_remote_get($itunes_image, $options);
|
273 |
+
if ( !is_wp_error( $response ) ) {
|
274 |
+
$image_data = wp_remote_retrieve_body( $response );
|
275 |
+
}
|
276 |
+
|
277 |
+
if( !empty($image_data) ) {
|
278 |
file_put_contents($upload_path.$filename, $image_data);
|
279 |
$NewSettings['itunes_image'] = $upload_url . $filename;
|
280 |
$NewSettings['rss2_image'] = $itunes_image;
|
875 |
return false;
|
876 |
}
|
877 |
|
878 |
+
$options = array();
|
879 |
+
$options['user-agent'] = 'Blubrry PowerPress/'.POWERPRESS_VERSION;
|
880 |
+
if( !empty($_GET['import']) && $_GET['import'] == 'powerpress-squarespace-rss-podcast' )
|
881 |
+
$options['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36';
|
882 |
+
$options['timeout'] = 10;
|
883 |
+
|
884 |
+
$response = wp_safe_remote_get($_POST['podcast_feed_url'], $options);
|
885 |
+
if ( is_wp_error( $response ) ) {
|
886 |
+
echo '<p>'. $response->get_error_message() .'<p>';
|
887 |
return false;
|
888 |
}
|
889 |
+
|
890 |
+
$this->m_content = wp_remote_retrieve_body( $response );
|
891 |
return true;
|
892 |
}
|
893 |
|
907 |
register_importer('powerpress-soundcloud-rss-podcast', __('Podcast from SoundCloud', 'powerpress'), __('Import episdoes from a SoundCloud podcast feed.', 'powerpress'), array ($powerpress_rss_podcast_import, 'dispatch'));
|
908 |
register_importer('powerpress-libsyn-rss-podcast', __('Podcast from LibSyn', 'powerpress'), __('Import episdoes from a LibSyn podcast feed.', 'powerpress'), array ($powerpress_rss_podcast_import, 'dispatch'));
|
909 |
register_importer('powerpress-podbean-rss-podcast', __('Podcast from PodBean ', 'powerpress'), __('Import episdoes from a PodBean podcast feed.', 'powerpress'), array ($powerpress_rss_podcast_import, 'dispatch'));
|
910 |
+
register_importer('powerpress-squarespace-rss-podcast', __('Podcast from Squarespace', 'powerpress'), __('Import episdoes from a Squarespace podcast feed.', 'powerpress'), array ($powerpress_rss_podcast_import, 'dispatch'));
|
911 |
register_importer('powerpress-rss-podcast', __('Podcast RSS Feed', 'powerpress'), __('Import episdoes from a RSS podcast feed.', 'powerpress'), array ($powerpress_rss_podcast_import, 'dispatch'));
|
912 |
|
913 |
}; // end if WP_Importer exists
|
powerpressadmin.php
CHANGED
@@ -564,7 +564,7 @@ function powerpress_admin_init()
|
|
564 |
$General['episode_box_feature_in_itunes'] = 0;
|
565 |
else
|
566 |
$General['episode_box_order'] = 0;
|
567 |
-
|
568 |
if( !isset($General['episode_box_block'] ) )
|
569 |
$General['episode_box_block'] = 0;
|
570 |
if( !isset($General['episode_box_gp_block'] ) )
|
@@ -1344,9 +1344,14 @@ function powerpress_admin_init()
|
|
1344 |
exit;
|
1345 |
}
|
1346 |
|
|
|
|
|
1347 |
// Hnadle player settings
|
1348 |
require_once( POWERPRESS_ABSPATH .'/powerpressadmin-player.php');
|
1349 |
powerpress_admin_players_init();
|
|
|
|
|
|
|
1350 |
}
|
1351 |
|
1352 |
add_action('admin_init', 'powerpress_admin_init');
|
@@ -2968,6 +2973,8 @@ function powerpress_admin_page_footer($SaveButton=true, $form=true)
|
|
2968 |
if( $SaveButton ) { ?>
|
2969 |
<p class="submit">
|
2970 |
<input type="submit" name="Submit" id="powerpress_save_button" class="button-primary" value="<?php echo __('Save Changes', 'powerpress') ?>" />
|
|
|
|
|
2971 |
</p>
|
2972 |
<?php } ?>
|
2973 |
<p style="font-size: 85%; text-align: center; padding-bottom: 35px;">
|
@@ -4303,6 +4310,11 @@ function powerpressadmin_new($style='')
|
|
4303 |
return '<sup style="'.$style.'">'. __('new!', 'powerpress') .'</sup>';
|
4304 |
}
|
4305 |
|
|
|
|
|
|
|
|
|
|
|
4306 |
function powerpressadmin_notice($updated_message)
|
4307 |
{
|
4308 |
return '<sup style="color: #CC0000; font-weight: bold; font-size: 105%;">'. htmlspecialchars($updated_message) .'</sup>';
|
@@ -4477,6 +4489,39 @@ $PowerPressClammr = get_option('powerpress_clammr');
|
|
4477 |
}
|
4478 |
}
|
4479 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4480 |
require_once( POWERPRESS_ABSPATH .'/powerpressadmin-jquery.php');
|
4481 |
// Only include the dashboard when appropriate.
|
4482 |
require_once( POWERPRESS_ABSPATH .'/powerpressadmin-dashboard.php');
|
@@ -4485,3 +4530,4 @@ if( defined('WP_LOAD_IMPORTERS') ) {
|
|
4485 |
require_once( POWERPRESS_ABSPATH .'/powerpressadmin-rss-import.php');
|
4486 |
}
|
4487 |
|
|
564 |
$General['episode_box_feature_in_itunes'] = 0;
|
565 |
else
|
566 |
$General['episode_box_order'] = 0;
|
567 |
+
|
568 |
if( !isset($General['episode_box_block'] ) )
|
569 |
$General['episode_box_block'] = 0;
|
570 |
if( !isset($General['episode_box_gp_block'] ) )
|
1344 |
exit;
|
1345 |
}
|
1346 |
|
1347 |
+
add_filter( 'plugin_row_meta', 'powerpress_plugin_row_meta', 10, 2);
|
1348 |
+
|
1349 |
// Hnadle player settings
|
1350 |
require_once( POWERPRESS_ABSPATH .'/powerpressadmin-player.php');
|
1351 |
powerpress_admin_players_init();
|
1352 |
+
|
1353 |
+
// Handle notices
|
1354 |
+
require_once( POWERPRESS_ABSPATH .'/powerpressadmin-notifications.php');
|
1355 |
}
|
1356 |
|
1357 |
add_action('admin_init', 'powerpress_admin_init');
|
2973 |
if( $SaveButton ) { ?>
|
2974 |
<p class="submit">
|
2975 |
<input type="submit" name="Submit" id="powerpress_save_button" class="button-primary" value="<?php echo __('Save Changes', 'powerpress') ?>" />
|
2976 |
+
—
|
2977 |
+
<strong><i><?php echo powerpress_review_message(); ?></i></strong>
|
2978 |
</p>
|
2979 |
<?php } ?>
|
2980 |
<p style="font-size: 85%; text-align: center; padding-bottom: 35px;">
|
4310 |
return '<sup style="'.$style.'">'. __('new!', 'powerpress') .'</sup>';
|
4311 |
}
|
4312 |
|
4313 |
+
function powerpressadmin_updated($updated_message)
|
4314 |
+
{
|
4315 |
+
return '<div style="margin: 5px;"><sup style="color: #CC0000; font-weight: bold; font-size: 85%;">'. $updated_message .'</sup></div>';
|
4316 |
+
}
|
4317 |
+
|
4318 |
function powerpressadmin_notice($updated_message)
|
4319 |
{
|
4320 |
return '<sup style="color: #CC0000; font-weight: bold; font-size: 105%;">'. htmlspecialchars($updated_message) .'</sup>';
|
4489 |
}
|
4490 |
}
|
4491 |
|
4492 |
+
function powerpress_plugin_row_meta( $links, $file ) {
|
4493 |
+
|
4494 |
+
if ( strpos( $file, 'powerpress.php' ) !== false ) {
|
4495 |
+
|
4496 |
+
$new_links = array();
|
4497 |
+
$new_links[] = powerpress_get_documentation_link();
|
4498 |
+
//$new_links[] = '<a href="http://create.blubrry.com/resources/powerpress/powerpress-documentation/" target="_blank">' . __( 'Support', 'powerpress' ) . '</a>';
|
4499 |
+
$new_links[] = powerpress_get_review_link();
|
4500 |
+
|
4501 |
+
|
4502 |
+
$links = array_merge( $links, $new_links );
|
4503 |
+
}
|
4504 |
+
|
4505 |
+
return $links;
|
4506 |
+
}
|
4507 |
+
|
4508 |
+
function powerpress_review_message()
|
4509 |
+
{
|
4510 |
+
return sprintf(__('Fan of PowerPress? Please show your appreciation by <a href="%s" target="_blank">leaving a review</a>.', 'powerpress'), 'https://wordpress.org/support/view/plugin-reviews/powerpress?rate=5#postform');
|
4511 |
+
}
|
4512 |
+
|
4513 |
+
function powerpress_get_review_link()
|
4514 |
+
{
|
4515 |
+
return '<a href="https://wordpress.org/support/view/plugin-reviews/powerpress?rate=5#postform" target="_blank">' . __( 'Write a review', 'powerpress' ) . '</a>';
|
4516 |
+
}
|
4517 |
+
|
4518 |
+
function powerpress_get_documentation_link()
|
4519 |
+
{
|
4520 |
+
return '<a href="http://create.blubrry.com/resources/powerpress/powerpress-documentation/" target="_blank">' . __( 'Documentation', 'powerpress' ) . '</a>';
|
4521 |
+
}
|
4522 |
+
|
4523 |
+
|
4524 |
+
|
4525 |
require_once( POWERPRESS_ABSPATH .'/powerpressadmin-jquery.php');
|
4526 |
// Only include the dashboard when appropriate.
|
4527 |
require_once( POWERPRESS_ABSPATH .'/powerpressadmin-dashboard.php');
|
4530 |
require_once( POWERPRESS_ABSPATH .'/powerpressadmin-rss-import.php');
|
4531 |
}
|
4532 |
|
4533 |
+
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Blubrry PowerPress Podcasting plugin ===
|
2 |
Contributors: amandato, blubrry
|
3 |
-
Tags: powerpress, podcasting, podcast, podcaster, itunes, google play music, google play, enclosure, professional, apple, apple tv, ipad, iphone, soundcloud, 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, show, shows, series, docs, documentation, support, free, add-ons, extensions, addons, libsyn, libsyn-podcasting, podbean, podomatic, spreaker
|
4 |
Requires at least: 3.6
|
5 |
Tested up to: 4.4.1
|
6 |
-
Stable tag: 6.3.
|
7 |
Donate link: https://www.patreon.com/blubrry?ty=h
|
8 |
License: GPLv2 or later
|
9 |
|
@@ -28,7 +28,7 @@ When you're ready you can switch to Advanced mode to tap into all the options pr
|
|
28 |
- Integrated HTML5 Media Players: Audio/video Web players with embed support from sites such as YouTube.
|
29 |
- 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.
|
30 |
- Podcasting SEO: Improve discovery of your podcast on search engines such as Google, and with the iTunes podcast directory.
|
31 |
-
- Podcast Importing: Import your podcast from SoundCloud, LibSyn, PodBean, or other podcast RSS feed.
|
32 |
- Migration tools: Quickly migrate from PodPress, TGS Podcasting, Seriously Simple Podcasting, Blogger, or Movable Type without losing episodes.
|
33 |
- Multi-podcast support: Create separate podcasts by category (Category Podcasting) or by media format (Podcast Channels).
|
34 |
- Post type and taxonomy podcasting: Create podcasts from custom post types and taxonomies.
|
@@ -226,6 +226,20 @@ To install Blubrry PowerPress manually, follow these steps:
|
|
226 |
= Become a PowerPress Patron! =
|
227 |
Help support your favorite podcasting plugin via Patreon. [Visit Blubrry's Patreon page](https://www.patreon.com/blubrry?ty=h)
|
228 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
|
230 |
= 6.3.1 =
|
231 |
* Released on 1/6/2016
|
1 |
=== Blubrry PowerPress Podcasting plugin ===
|
2 |
Contributors: amandato, blubrry
|
3 |
+
Tags: powerpress, podcasting, podcast, podcaster, itunes, google play music, google play, enclosure, professional, apple, apple tv, ipad, iphone, soundcloud, squarespace, youtube, viddler, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, mp4, m4v, wordpressmu, mu, wordpress mu, multisite, multi site, mediacaster, post, plugin, posts, simple, social, dashboard, TSG, Buzzsprout, MTR, WP-boxCast, CastMyBlog, tgs podcasting, simple podcasting, seriously simple podcasting, seriously-simple-podcasting, serious, seriously, ssp, podlove, podcast.de, clammr, clammr radio, audio player, stitcher, show, shows, series, docs, documentation, support, free, add-ons, extensions, addons, libsyn, libsyn-podcasting, podbean, podomatic, spreaker
|
4 |
Requires at least: 3.6
|
5 |
Tested up to: 4.4.1
|
6 |
+
Stable tag: 6.3.2
|
7 |
Donate link: https://www.patreon.com/blubrry?ty=h
|
8 |
License: GPLv2 or later
|
9 |
|
28 |
- Integrated HTML5 Media Players: Audio/video Web players with embed support from sites such as YouTube.
|
29 |
- 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.
|
30 |
- Podcasting SEO: Improve discovery of your podcast on search engines such as Google, and with the iTunes podcast directory.
|
31 |
+
- Podcast Importing: Import your podcast from SoundCloud, LibSyn, PodBean, Squarespace, or other podcast RSS feed.
|
32 |
- Migration tools: Quickly migrate from PodPress, TGS Podcasting, Seriously Simple Podcasting, Blogger, or Movable Type without losing episodes.
|
33 |
- Multi-podcast support: Create separate podcasts by category (Category Podcasting) or by media format (Podcast Channels).
|
34 |
- Post type and taxonomy podcasting: Create podcasts from custom post types and taxonomies.
|
226 |
= Become a PowerPress Patron! =
|
227 |
Help support your favorite podcasting plugin via Patreon. [Visit Blubrry's Patreon page](https://www.patreon.com/blubrry?ty=h)
|
228 |
|
229 |
+
= 6.3.2 =
|
230 |
+
* Released on 2/21/2016
|
231 |
+
* Added import podcast from Squarespace option (thanks Steve for bringing to our attention that importing from Squarespace requires added logic)
|
232 |
+
* 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!)
|
233 |
+
* Added checkbox to enable wrapping iTunes summary values with `<![CDATA[ ... ]]>` tags. This may become a permanent feature.
|
234 |
+
* Added new define option `POWERPRESS_FEED_TEMPLATE`. (Thanks Ron for the suggestion!)
|
235 |
+
* Added new define option `POWERPRESS_PREMIUM_GROUPS_PLUGIN`, for premium podcasting with Groups plugin commonly paired with WooCommerce.
|
236 |
+
* Removed iTunes explicit 'no' value from `<itunes:explicit>` tag. (iTunes change - February, 2016)
|
237 |
+
* Updated iTunes recommended image size to 3000 x 3000 saved in a compressed format such as JPG. (iTunes change - February, 2016)
|
238 |
+
* Fixed notice message from appearing when using the playlist player (Thanks chefjoef for bringing to our attention).
|
239 |
+
* 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!)
|
240 |
+
* Fixed tab control styling when other themes or plugins use newer versions of jquery-ui.
|
241 |
+
* Added dismissable notification message to alert PowerPress users of the latest iTunes changes.
|
242 |
+
|
243 |
|
244 |
= 6.3.1 =
|
245 |
* Released on 1/6/2016
|