Version Description
Download this release
Release Info
Developer | amandato |
Plugin | PowerPress Podcasting plugin by Blubrry |
Version | 0.7.2 |
Comparing to | |
See all releases |
Code changes from version 0.7.1 to 0.7.2
- mp3info.class.php +6 -4
- player.js +68 -5
- powerpress.php +102 -55
- powerpressadmin-appearance.php +1 -0
- powerpressadmin-basic.php +4 -1
- powerpressadmin-editfeed.php +3 -0
- powerpressadmin-podpress.php +37 -1
- powerpressadmin.php +60 -13
- readme.txt +45 -39
mp3info.class.php
CHANGED
@@ -87,8 +87,8 @@
|
|
87 |
return false;
|
88 |
}
|
89 |
|
90 |
-
if(
|
91 |
-
return $this->
|
92 |
|
93 |
// The following code relies on fopen_url capability.
|
94 |
if( $RedirectCount > $this->m_RedirectLimit )
|
@@ -204,10 +204,11 @@
|
|
204 |
/*
|
205 |
Alternative method (curl) for downloading portion of a media file
|
206 |
*/
|
207 |
-
function
|
208 |
{
|
209 |
$curl = curl_init();
|
210 |
// First, get the content-length...
|
|
|
211 |
curl_setopt($curl, CURLOPT_URL, $url);
|
212 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
213 |
curl_setopt($curl, CURLOPT_HEADER, true); // header will be at output
|
@@ -250,6 +251,7 @@
|
|
250 |
$fp = fopen($TempFile, 'w+b');
|
251 |
// Next get the first chunk of the file...
|
252 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
|
|
|
253 |
curl_setopt($curl, CURLOPT_FILE, $fp);
|
254 |
curl_setopt($curl, CURLOPT_URL, $url);
|
255 |
curl_setopt($curl, CURLOPT_HEADER, false); // header will be at output
|
@@ -258,7 +260,7 @@
|
|
258 |
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
|
259 |
curl_setopt($curl, CURLOPT_MAXREDIRS, $this->m_RedirectLimit);
|
260 |
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
|
261 |
-
curl_setopt($curl, CURLOPT_HTTPHEADER,array('Range: bytes=0-'.($this->m_DownloadBytesLimit-1) ));
|
262 |
//curl_setopt($curl, CURLINFO_HEADER_OUT, true); // For debugging
|
263 |
// Do the download
|
264 |
$success = curl_exec($curl);
|
87 |
return false;
|
88 |
}
|
89 |
|
90 |
+
if( ini_get( 'curl_init' ) )
|
91 |
+
return $this->DownloadCurl($url);
|
92 |
|
93 |
// The following code relies on fopen_url capability.
|
94 |
if( $RedirectCount > $this->m_RedirectLimit )
|
204 |
/*
|
205 |
Alternative method (curl) for downloading portion of a media file
|
206 |
*/
|
207 |
+
function DownloadCurl($url)
|
208 |
{
|
209 |
$curl = curl_init();
|
210 |
// First, get the content-length...
|
211 |
+
curl_setopt($cUrl, CURLOPT_USERAGENT, 'Blubrry PowerPress/'.POWERPRESS_VERSION);
|
212 |
curl_setopt($curl, CURLOPT_URL, $url);
|
213 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
214 |
curl_setopt($curl, CURLOPT_HEADER, true); // header will be at output
|
251 |
$fp = fopen($TempFile, 'w+b');
|
252 |
// Next get the first chunk of the file...
|
253 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
|
254 |
+
curl_setopt($cUrl, CURLOPT_USERAGENT, 'Blubrry PowerPress/'.POWERPRESS_VERSION);
|
255 |
curl_setopt($curl, CURLOPT_FILE, $fp);
|
256 |
curl_setopt($curl, CURLOPT_URL, $url);
|
257 |
curl_setopt($curl, CURLOPT_HEADER, false); // header will be at output
|
260 |
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
|
261 |
curl_setopt($curl, CURLOPT_MAXREDIRS, $this->m_RedirectLimit);
|
262 |
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
|
263 |
+
curl_setopt($curl, CURLOPT_HTTPHEADER,array('Range: bytes=0-'.($this->m_DownloadBytesLimit-1) ));
|
264 |
//curl_setopt($curl, CURLINFO_HEADER_OUT, true); // For debugging
|
265 |
// Do the download
|
266 |
$success = curl_exec($curl);
|
player.js
CHANGED
@@ -8,6 +8,7 @@
|
|
8 |
* Released under Aoache 2 license:
|
9 |
* http://www.apache.org/licenses/LICENSE-2.0
|
10 |
*
|
|
|
11 |
* versoin 1.1.2 - 03/04/2009 - Added options to set the width for audio, width and height for video.
|
12 |
* versoin 1.1.1 - 12/22/20008 - Minor change to support Windows Media in Firefox. Includes link to preferred Firefox Windows Media Player plugin.
|
13 |
* versoin 1.1.0 - 11/25/20008 - Major re-write, object now stored in this include file, auto play is no longer a member variable and is determined by function call.
|
@@ -28,8 +29,20 @@ var g_bpPlayer = false;
|
|
28 |
*/
|
29 |
function powerpress_player_init(PluginURL, QuicktimeImage)
|
30 |
{
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
g_bpPlayer = new jsMediaPlayer(PluginURL +'FlowPlayerClassic.swf');
|
|
|
|
|
33 |
g_bpPlayer.PlayImage(QuicktimeImage);
|
34 |
if( powerpress_player_init.arguments.length > 2 )
|
35 |
g_bpPlayer.OnePlayerOnly(powerpress_player_init.arguments[2]);
|
@@ -104,6 +117,8 @@ function jsMediaPlayer(FlashSrc) {
|
|
104 |
this.m_one_player_only = false;
|
105 |
this.m_media_url = false;
|
106 |
this.m_play_image = false;
|
|
|
|
|
107 |
|
108 |
|
109 |
this.FlashSrc=function(Src) {
|
@@ -126,6 +141,11 @@ function jsMediaPlayer(FlashSrc) {
|
|
126 |
this.m_one_player_only = Setting;
|
127 |
}
|
128 |
|
|
|
|
|
|
|
|
|
|
|
129 |
this.PlayImage=function(URL) {
|
130 |
this.m_play_image = URL;
|
131 |
}
|
@@ -340,13 +360,54 @@ function jsMediaPlayer(FlashSrc) {
|
|
340 |
auto_play = this._doFlowPlayer.arguments[1];
|
341 |
if( height == 24 )
|
342 |
width = this.m_widthAudio;
|
343 |
-
|
344 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
this.m_player_div,
|
346 |
{src: this.m_flash_src, width: width, height: height },
|
347 |
{config: { autoPlay: auto_play?true:false, autoBuffering: false, initialScale: 'scale', showFullScreenButton: false, showMenu: false, videoFile: this.m_media_url, loop: false, autoRewind: true } }
|
348 |
);
|
349 |
-
|
|
|
350 |
return false;
|
351 |
}
|
352 |
|
@@ -562,6 +623,7 @@ function powerpress_addLoadEvent(func)
|
|
562 |
}
|
563 |
}
|
564 |
|
|
|
565 |
/**
|
566 |
* flashembed 0.31. Adobe Flash embedding script
|
567 |
*
|
@@ -577,4 +639,5 @@ function powerpress_addLoadEvent(func)
|
|
577 |
* version 0.01 - 03/11/2008
|
578 |
* version 0.31 - Tue Jul 22 2008 06:30:31 GMT+0200 (GMT+02:00)
|
579 |
*/
|
580 |
-
|
|
8 |
* Released under Aoache 2 license:
|
9 |
* http://www.apache.org/licenses/LICENSE-2.0
|
10 |
*
|
11 |
+
* versoin 1.1.3 - 03/23/2009 - Added code to support FlowPlayer v3.
|
12 |
* versoin 1.1.2 - 03/04/2009 - Added options to set the width for audio, width and height for video.
|
13 |
* versoin 1.1.1 - 12/22/20008 - Minor change to support Windows Media in Firefox. Includes link to preferred Firefox Windows Media Player plugin.
|
14 |
* versoin 1.1.0 - 11/25/20008 - Major re-write, object now stored in this include file, auto play is no longer a member variable and is determined by function call.
|
29 |
*/
|
30 |
function powerpress_player_init(PluginURL, QuicktimeImage)
|
31 |
{
|
32 |
+
var FlowPlayerVer = 2;
|
33 |
+
if( powerpress_player_init.arguments.length > 3 )
|
34 |
+
FlowPlayerVer = powerpress_player_init.arguments[3];
|
35 |
+
|
36 |
+
if( g_bpPlayer == false && FlowPlayerVer == 3 )
|
37 |
+
{
|
38 |
+
g_bpPlayer = new jsMediaPlayer(PluginURL +'flowplayer-3.0.7.swf');
|
39 |
+
g_bpPlayer.FlashSrcPlugin( PluginURL + 'flowplayer.audio-3.0.4.swf');
|
40 |
+
}
|
41 |
+
else
|
42 |
+
{
|
43 |
g_bpPlayer = new jsMediaPlayer(PluginURL +'FlowPlayerClassic.swf');
|
44 |
+
}
|
45 |
+
|
46 |
g_bpPlayer.PlayImage(QuicktimeImage);
|
47 |
if( powerpress_player_init.arguments.length > 2 )
|
48 |
g_bpPlayer.OnePlayerOnly(powerpress_player_init.arguments[2]);
|
117 |
this.m_one_player_only = false;
|
118 |
this.m_media_url = false;
|
119 |
this.m_play_image = false;
|
120 |
+
this.m_FlowPlayerVer = 2;
|
121 |
+
this.m_flash_src_plugin = '';
|
122 |
|
123 |
|
124 |
this.FlashSrc=function(Src) {
|
141 |
this.m_one_player_only = Setting;
|
142 |
}
|
143 |
|
144 |
+
this.FlashSrcPlugin=function(Src) {
|
145 |
+
this.m_FlowPlayerVer = (Src==''?2:3);
|
146 |
+
this.m_flash_src_plugin = Src;
|
147 |
+
}
|
148 |
+
|
149 |
this.PlayImage=function(URL) {
|
150 |
this.m_play_image = URL;
|
151 |
}
|
360 |
auto_play = this._doFlowPlayer.arguments[1];
|
361 |
if( height == 24 )
|
362 |
width = this.m_widthAudio;
|
363 |
+
if( this.m_FlowPlayerVer == 3 )
|
364 |
+
{
|
365 |
+
flashembed(
|
366 |
+
this.m_player_div,
|
367 |
+
{src: this.m_flash_src, width: width, height: height },
|
368 |
+
{
|
369 |
+
config: {
|
370 |
+
plugins: {
|
371 |
+
controls: {
|
372 |
+
borderRadius: '0',
|
373 |
+
durationColor: '#000000',
|
374 |
+
timeColor: '#ECECEC',
|
375 |
+
sliderColor: '#6F6F6F',
|
376 |
+
sliderGradient: 'low',
|
377 |
+
progressColor: '#6F6F6F',
|
378 |
+
progressGradient: 'low',
|
379 |
+
bufferColor: '#CCCCCC',
|
380 |
+
bufferGradient: 'low',
|
381 |
+
buttonColor: '#6F6F6F',
|
382 |
+
buttonOverColor: '#7F7F7F',
|
383 |
+
backgroundColor: '#9F9F9F',
|
384 |
+
backgroundGradient: 'low',
|
385 |
+
fullscreen: false,
|
386 |
+
opacity:1.0
|
387 |
+
},
|
388 |
+
audio: {
|
389 |
+
url: this.m_flash_src_plugin
|
390 |
+
}
|
391 |
+
},
|
392 |
+
clip: {
|
393 |
+
autoPlay: false,
|
394 |
+
autoBuffering: false,
|
395 |
+
url: this.m_media_url
|
396 |
+
}
|
397 |
+
}
|
398 |
+
}
|
399 |
+
);
|
400 |
+
// {config: { autoPlay: auto_play?true:false, autoBuffering: false, initialScale: 'scale', showFullScreenButton: false, showMenu: false, videoFile: this.m_media_url, loop: false, autoRewind: true } }
|
401 |
+
}
|
402 |
+
else
|
403 |
+
{
|
404 |
+
flashembed(
|
405 |
this.m_player_div,
|
406 |
{src: this.m_flash_src, width: width, height: height },
|
407 |
{config: { autoPlay: auto_play?true:false, autoBuffering: false, initialScale: 'scale', showFullScreenButton: false, showMenu: false, videoFile: this.m_media_url, loop: false, autoRewind: true } }
|
408 |
);
|
409 |
+
}
|
410 |
+
|
411 |
return false;
|
412 |
}
|
413 |
|
623 |
}
|
624 |
}
|
625 |
|
626 |
+
|
627 |
/**
|
628 |
* flashembed 0.31. Adobe Flash embedding script
|
629 |
*
|
639 |
* version 0.01 - 03/11/2008
|
640 |
* version 0.31 - Tue Jul 22 2008 06:30:31 GMT+0200 (GMT+02:00)
|
641 |
*/
|
642 |
+
|
643 |
+
function flashembed(root,userParams,flashvars){function getHTML(){var html="";if(typeof flashvars=='function'){flashvars=flashvars();}if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){html='<embed type="application/x-shockwave-flash" ';if(params.id){extend(params,{name:params.id});}for(var key in params){if(params[key]!==null){html+=[key]+'="'+params[key]+'"\n\t';}}if(flashvars){html+='flashvars=\''+concatVars(flashvars)+'\'';}html+='/>';}else{html='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';html+='width="'+params.width+'" height="'+params.height+'"';if(!params.id&&document.all){params.id="_"+(""+Math.random()).substring(5);}if(params.id){html+=' id="'+params.id+'"';}html+='>';html+='\n\t<param name="movie" value="'+params.src+'" />';params.id=params.src=params.width=params.height=null;for(var k in params){if(params[k]!==null){html+='\n\t<param name="'+k+'" value="'+params[k]+'" />';}}if(flashvars){html+='\n\t<param name="flashvars" value=\''+concatVars(flashvars)+'\' />';}html+="</object>";if(debug){alert(html);}}return html;}function init(name){var timer=setInterval(function(){var doc=document;var el=doc.getElementById(name);if(el){flashembed(el,userParams,flashvars);clearInterval(timer);}else if(doc&&doc.getElementsByTagName&&doc.getElementById&&doc.body){clearInterval(timer);}},13);return true;}function extend(to,from){if(from){for(key in from){if(from.hasOwnProperty(key)){to[key]=from[key];}}}}var params={src:'#',width:'100%',height:'100%',version:null,onFail:null,expressInstall:null,debug:false,bgcolor:'#ffffff',allowfullscreen:true,allowscriptaccess:'always',quality:'high',type:'application/x-shockwave-flash',pluginspage:'http://www.adobe.com/go/getflashplayer'};if(typeof userParams=='string'){userParams={src:userParams};}extend(params,userParams);var version=flashembed.getVersion();var required=params.version;var express=params.expressInstall;var debug=params.debug;if(typeof root=='string'){var el=document.getElementById(root);if(el){root=el;}else{return init(root);}}if(!root){return;}if(!required||flashembed.isSupported(required)){params.onFail=params.version=params.expressInstall=params.debug=null;root.innerHTML=getHTML();return root.firstChild;}else if(params.onFail){var ret=params.onFail.call(params,flashembed.getVersion(),flashvars);if(ret){root.innerHTML=ret;}}else if(required&&express&&flashembed.isSupported([6,65])){extend(params,{src:express});flashvars={MMredirectURL:location.href,MMplayerType:'PlugIn',MMdoctitle:document.title};root.innerHTML=getHTML();}else{if(root.innerHTML.replace(/\s/g,'')!==''){}else{root.innerHTML="<h2>Flash version "+required+" or greater is required</h2>"+"<h3>"+(version[0]>0?"Your version is "+version:"You have no flash plugin installed")+"</h3>"+"<p>Download latest version from <a href='"+params.pluginspage+"'>here</a></p>";}}function concatVars(vars){var out="";for(var key in vars){if(vars[key]){out+=[key]+'='+asString(vars[key])+'&';}}return out.substring(0,out.length-1);}function asString(obj){switch(typeOf(obj)){case'string':return'"'+obj.replace(new RegExp('(["\\\\])','g'),'\\$1')+'"';case'array':return'['+map(obj,function(el){return asString(el);}).join(',')+']';case'function':return'"function()"';case'object':var str=[];for(var prop in obj){if(obj.hasOwnProperty(prop)){str.push('"'+prop+'":'+asString(obj[prop]));}}return'{'+str.join(',')+'}';}return String(obj).replace(/\s/g," ").replace(/\'/g,"\"");}function typeOf(obj){if(obj===null||obj===undefined){return false;}var type=typeof obj;return(type=='object'&&obj.push)?'array':type;}if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};});}function map(arr,func){var newArr=[];for(var i in arr){if(arr.hasOwnProperty(i)){newArr[i]=func(arr[i]);}}return newArr;}return root;}if(typeof jQuery=='function'){(function($){$.fn.extend({flashembed:function(params,flashvars){return this.each(function(){flashembed(this,params,flashvars);});}});})(jQuery);}flashembed=flashembed||{};flashembed.getVersion=function(){var version=[0,0];if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){var _d=navigator.plugins["Shockwave Flash"].description;if(typeof _d!="undefined"){_d=_d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var _m=parseInt(_d.replace(/^(.*)\..*$/,"$1"),10);var _r=/r/.test(_d)?parseInt(_d.replace(/^.*r(.*)$/,"$1"),10):0;version=[_m,_r];}}else if(window.ActiveXObject){try{var _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{_a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");version=[6,0];_a.AllowScriptAccess="always";}catch(ee){if(version[0]==6){return;}}try{_a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(eee){}}if(typeof _a=="object"){_d=_a.GetVariable("$version");if(typeof _d!="undefined"){_d=_d.replace(/^\S+\s+(.*)$/,"$1").split(",");version=[parseInt(_d[0],10),parseInt(_d[2],10)];}}}return version;};flashembed.isSupported=function(version){var now=flashembed.getVersion();var ret=(now[0]>version[0])||(now[0]==version[0]&&now[1]>=version[1]);return ret;};
|
powerpress.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Blubrry PowerPress
|
4 |
Plugin URI: http://www.blubrry.com/powerpress/
|
5 |
Description: <a href="http://www.blubrry.com/powerpress/" target="_blank">Blubrry PowerPress</a> adds podcasting support to your blog. Features include: media player, 3rd party statistics and iTunes integration.
|
6 |
-
Version: 0.7.
|
7 |
Author: Blubrry
|
8 |
Author URI: http://www.blubrry.com/
|
9 |
Change Log:
|
@@ -29,7 +29,7 @@ License: GPL (http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)
|
|
29 |
*/
|
30 |
|
31 |
// WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
|
32 |
-
define('POWERPRESS_VERSION', '0.7.
|
33 |
|
34 |
/////////////////////////////////////////////////////
|
35 |
// The following define options should be placed in your
|
@@ -49,8 +49,6 @@ if( !defined('POWERPRESS_PLAY_ON_PAGE_TEXT') )
|
|
49 |
if( !defined('POWERPRESS_DOWNLOAD_TEXT') )
|
50 |
define('POWERPRESS_DOWNLOAD_TEXT', __('Download') );
|
51 |
|
52 |
-
|
53 |
-
|
54 |
// Load players in the footer of the page, improves page load times but requires wp_footer() function to be included in WP Theme.
|
55 |
//define('POWERPRESS_USE_FOOTER', true);
|
56 |
// You can also define the delay.
|
@@ -58,15 +56,12 @@ if( !defined('POWERPRESS_DOWNLOAD_TEXT') )
|
|
58 |
|
59 |
// Set whether players should be loaded using the page onload event
|
60 |
if( !defined('POWERPRESS_USE_ONLOAD') ) // Add define('POWERPRESS_USE_ONLOAD', false); to your wp-config.php to turn this feature off
|
61 |
-
define('POWERPRESS_USE_ONLOAD',
|
62 |
|
63 |
// define how much of a delay should exist when media players are loaded
|
64 |
if( !defined('POWERPRESS_USE_ONLOAD_DELAY') ) // Add define('POWERPRESS_USE_ONLOAD_DELAY', 1000); to your wp-config.php to set a full 1 second delay.
|
65 |
define('POWERPRESS_USE_ONLOAD_DELAY', 500);
|
66 |
|
67 |
-
// Display PowerPress player only for previously created Podpress episodes.
|
68 |
-
//define('POWERPRESS_USE_PLAYER_FOR_PODPRESS_EPISODES', true);
|
69 |
-
|
70 |
// Display custom play image for quicktime media. Applies to on page player only.
|
71 |
//define('POWERPRESS_PLAY_IMAGE', 'http://www.blubrry.com/themes/blubrry/images/player/PlayerBadge150x50NoBorder.jpg');
|
72 |
|
@@ -176,12 +171,6 @@ function powerpress_content($content)
|
|
176 |
if( !isset($Powerpress['podcast_link']) )
|
177 |
$Powerpress['podcast_link'] = 1;
|
178 |
|
179 |
-
if( defined('POWERPRESS_USE_PLAYER_FOR_PODPRESS_EPISODES') )
|
180 |
-
{
|
181 |
-
if( !isset($podPressMedia) )
|
182 |
-
return $content;
|
183 |
-
}
|
184 |
-
|
185 |
// The blog owner doesn't want anything displayed, so don't bother wasting anymore CPU cycles
|
186 |
if( $Powerpress['display_player'] == 0 )
|
187 |
return $content;
|
@@ -298,28 +287,30 @@ function powerpress_header()
|
|
298 |
// PowerPress settings:
|
299 |
$Powerpress = get_option('powerpress_general');
|
300 |
|
301 |
-
$
|
|
|
|
|
302 |
?>
|
303 |
<script type="text/javascript" src="<?php echo $PowerpressPluginURL; ?>player.js"></script>
|
304 |
<script type="text/javascript">
|
305 |
<?php
|
306 |
-
$player_image_url = POWERPRESS_PLAY_IMAGE;
|
307 |
-
if( strstr($player_image_url, 'http://') !== $player_image_url )
|
308 |
-
|
309 |
|
310 |
-
if( $Powerpress['player_function'] == 4 || $Powerpress['player_function'] == 5 ) // Links would imply only one player in the page
|
311 |
-
|
312 |
-
else
|
313 |
-
|
314 |
-
|
315 |
-
if( isset($Powerpress['player_width']) && isset($Powerpress['player_height']) && isset($Powerpress['player_width_audio']) )
|
316 |
-
|
317 |
-
|
318 |
-
if( defined('POWERPRESS_USE_ONLOAD') && POWERPRESS_USE_ONLOAD )
|
319 |
-
{
|
320 |
-
|
321 |
-
|
322 |
-
}
|
323 |
?>
|
324 |
</script>
|
325 |
<style type="text/css">
|
@@ -329,6 +320,7 @@ if( defined('POWERPRESS_USE_ONLOAD') && POWERPRESS_USE_ONLOAD )
|
|
329 |
}
|
330 |
</style>
|
331 |
<?php
|
|
|
332 |
}
|
333 |
|
334 |
add_action('wp_head', 'powerpress_header');
|
@@ -351,12 +343,16 @@ function powerpress_rss2_head()
|
|
351 |
if( !powerpress_is_podcast_feed() )
|
352 |
return; // Not a feed we manage
|
353 |
|
354 |
-
$
|
355 |
|
|
|
356 |
if( powerpress_is_custom_podcast_feed() )
|
357 |
-
|
358 |
-
|
359 |
-
$
|
|
|
|
|
|
|
360 |
|
361 |
// We made it this far, lets write stuff to the feed!
|
362 |
echo '<!-- podcast_generator="Blubrry PowerPress/'. POWERPRESS_VERSION .'" -->'.PHP_EOL;
|
@@ -367,7 +363,7 @@ function powerpress_rss2_head()
|
|
367 |
if( trim($Feed['itunes_new_feed_url']) )
|
368 |
echo "\t<itunes:new-feed-url>". trim($Feed['itunes_new_feed_url']) .'</itunes:new-feed-url>'.PHP_EOL;
|
369 |
}
|
370 |
-
else if( trim($Feed['itunes_new_feed_url']) && ($
|
371 |
{
|
372 |
echo "\t<itunes:new-feed-url>". $Feed['itunes_new_feed_url'] .'</itunes:new-feed-url>'.PHP_EOL;
|
373 |
}
|
@@ -377,8 +373,8 @@ function powerpress_rss2_head()
|
|
377 |
else
|
378 |
echo "\t".'<itunes:summary>'. powerpress_format_itunes_value( get_bloginfo('description'), 4000 ) .'</itunes:summary>'.PHP_EOL;
|
379 |
|
380 |
-
if( $powerpress_feed['
|
381 |
-
echo "\t\t<itunes:author>" . wp_specialchars($powerpress_feed['
|
382 |
|
383 |
if( $powerpress_feed['explicit'] )
|
384 |
echo "\t".'<itunes:explicit>' . $powerpress_feed['explicit'] . '</itunes:explicit>'.PHP_EOL;
|
@@ -398,10 +394,10 @@ function powerpress_rss2_head()
|
|
398 |
if( $Feed['email'] )
|
399 |
{
|
400 |
echo "\t".'<itunes:owner>'.PHP_EOL;
|
401 |
-
echo "\t\t".'<itunes:name>' . wp_specialchars($powerpress_feed['
|
402 |
echo "\t\t".'<itunes:email>' . wp_specialchars($Feed['email']) . '</itunes:email>'.PHP_EOL;
|
403 |
echo "\t".'</itunes:owner>'.PHP_EOL;
|
404 |
-
echo "\t".'<managingEditor>'. wp_specialchars($Feed['email'] .' ('. $powerpress_feed['
|
405 |
}
|
406 |
|
407 |
if( $Feed['copyright'] )
|
@@ -610,7 +606,7 @@ function powerpress_rss2_item()
|
|
610 |
$EnclosureURL = trim($EnclosureURL);
|
611 |
$EnclosureType = trim($EnclosureType);
|
612 |
$EnclosureSize = trim($EnclosureSize);
|
613 |
-
$author = $powerpress_feed['
|
614 |
$explicit = $powerpress_feed['explicit'];
|
615 |
$summary = false;
|
616 |
$subtitle = false;
|
@@ -744,7 +740,7 @@ function powerpress_filter_rss_enclosure($content)
|
|
744 |
|
745 |
add_filter('rss_enclosure', 'powerpress_filter_rss_enclosure');
|
746 |
|
747 |
-
function powerpress_bloginfo_rss($content, $field)
|
748 |
{
|
749 |
if( powerpress_is_custom_podcast_feed() )
|
750 |
{
|
@@ -819,10 +815,28 @@ function powerpress_init()
|
|
819 |
if( $feed_slug != 'podcast' )
|
820 |
add_feed($feed_slug, 'powerpress_do_podcast_feed');
|
821 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
822 |
}
|
823 |
}
|
824 |
|
825 |
-
add_action('init', 'powerpress_init');
|
826 |
|
827 |
// Load the general feed settings for feeds handled by powerpress
|
828 |
function powerpress_load_general_feed_settings()
|
@@ -834,13 +848,20 @@ function powerpress_load_general_feed_settings()
|
|
834 |
|
835 |
// Get the powerpress settings
|
836 |
$GeneralSettings = get_option('powerpress_general');
|
|
|
|
|
|
|
837 |
if( $GeneralSettings )
|
838 |
{
|
839 |
$feed_slug = get_query_var('feed');
|
840 |
|
841 |
if( isset($GeneralSettings['custom_feeds']) && is_array($GeneralSettings['custom_feeds']) && isset($GeneralSettings['custom_feeds'][ $feed_slug ] ))
|
842 |
{
|
843 |
-
$Feed = get_option('
|
|
|
|
|
|
|
|
|
844 |
$powerpress_feed = array();
|
845 |
$powerpress_feed['is_custom'] = true;
|
846 |
$powerpress_feed['feed-slug'] = $feed_slug;
|
@@ -848,10 +869,10 @@ function powerpress_load_general_feed_settings()
|
|
848 |
$powerpress_feed['default_url'] = rtrim($GeneralSettings['default_url'], '/') .'/';
|
849 |
$explicit = array("no", "yes", "clean");
|
850 |
$powerpress_feed['explicit'] = $explicit[$Feed['itunes_explicit']];
|
851 |
-
if( $Feed['
|
852 |
-
$powerpress_feed['
|
853 |
else
|
854 |
-
$powerpress_feed['
|
855 |
$powerpress_feed['enhance_itunes_summary'] = @$Feed['enhance_itunes_summary'];
|
856 |
$powerpress_feed['posts_per_rss'] = $Feed['posts_per_rss'];
|
857 |
}
|
@@ -859,25 +880,39 @@ function powerpress_load_general_feed_settings()
|
|
859 |
{
|
860 |
// One last check, we may still want to manage this feed, it's just not a custom feed...
|
861 |
$Feed = get_option('powerpress_feed');
|
|
|
862 |
// First, determine if powerpress should even be rewriting this feed...
|
863 |
switch( $Feed['apply_to'] )
|
864 |
{
|
865 |
case 2: // RSS2 feed only
|
866 |
-
|
867 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
868 |
case 1: // All other feeds
|
869 |
{
|
870 |
-
$powerpress_feed = array();
|
871 |
$powerpress_feed['is_custom'] = false; // ($feed_slug == 'podcast'?true:false);
|
872 |
$powerpress_feed['feed-slug'] = $feed_slug;
|
873 |
$powerpress_feed['process_podpress'] = $GeneralSettings['process_podpress']; // We don't touch podpress data for custom feeds
|
874 |
$powerpress_feed['default_url'] = rtrim($GeneralSettings['default_url'], '/') .'/';
|
875 |
$explicit = array("no", "yes", "clean");
|
876 |
$powerpress_feed['explicit'] = $explicit[$Feed['itunes_explicit']];
|
877 |
-
if( $Feed['
|
878 |
-
$powerpress_feed['
|
879 |
else
|
880 |
-
$powerpress_feed['
|
881 |
$powerpress_feed['enhance_itunes_summary'] = @$Feed['enhance_itunes_summary'];
|
882 |
$powerpress_feed['posts_per_rss'] = $Feed['posts_per_rss'];
|
883 |
}; break;
|
@@ -1259,6 +1294,18 @@ function powerpress_byte_size($ppbytes)
|
|
1259 |
return $ppsize;
|
1260 |
}
|
1261 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1262 |
function powerpress_readable_duration($duration, $include_hour=false)
|
1263 |
{
|
1264 |
$seconds = 0;
|
@@ -1272,12 +1319,12 @@ function powerpress_readable_duration($duration, $include_hour=false)
|
|
1272 |
|
1273 |
$hours = 0;
|
1274 |
$minutes = 0;
|
1275 |
-
if( $seconds
|
1276 |
{
|
1277 |
$hours = floor( $seconds /(60*60) );
|
1278 |
$seconds -= (60*60*$hours);
|
1279 |
}
|
1280 |
-
if( $seconds
|
1281 |
{
|
1282 |
$minutes = floor( $seconds /(60) );
|
1283 |
$seconds -= (60*$minutes);
|
3 |
Plugin Name: Blubrry PowerPress
|
4 |
Plugin URI: http://www.blubrry.com/powerpress/
|
5 |
Description: <a href="http://www.blubrry.com/powerpress/" target="_blank">Blubrry PowerPress</a> adds podcasting support to your blog. Features include: media player, 3rd party statistics and iTunes integration.
|
6 |
+
Version: 0.7.2
|
7 |
Author: Blubrry
|
8 |
Author URI: http://www.blubrry.com/
|
9 |
Change Log:
|
29 |
*/
|
30 |
|
31 |
// WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
|
32 |
+
define('POWERPRESS_VERSION', '0.7.2' );
|
33 |
|
34 |
/////////////////////////////////////////////////////
|
35 |
// The following define options should be placed in your
|
49 |
if( !defined('POWERPRESS_DOWNLOAD_TEXT') )
|
50 |
define('POWERPRESS_DOWNLOAD_TEXT', __('Download') );
|
51 |
|
|
|
|
|
52 |
// Load players in the footer of the page, improves page load times but requires wp_footer() function to be included in WP Theme.
|
53 |
//define('POWERPRESS_USE_FOOTER', true);
|
54 |
// You can also define the delay.
|
56 |
|
57 |
// Set whether players should be loaded using the page onload event
|
58 |
if( !defined('POWERPRESS_USE_ONLOAD') ) // Add define('POWERPRESS_USE_ONLOAD', false); to your wp-config.php to turn this feature off
|
59 |
+
define('POWERPRESS_USE_ONLOAD', false);
|
60 |
|
61 |
// define how much of a delay should exist when media players are loaded
|
62 |
if( !defined('POWERPRESS_USE_ONLOAD_DELAY') ) // Add define('POWERPRESS_USE_ONLOAD_DELAY', 1000); to your wp-config.php to set a full 1 second delay.
|
63 |
define('POWERPRESS_USE_ONLOAD_DELAY', 500);
|
64 |
|
|
|
|
|
|
|
65 |
// Display custom play image for quicktime media. Applies to on page player only.
|
66 |
//define('POWERPRESS_PLAY_IMAGE', 'http://www.blubrry.com/themes/blubrry/images/player/PlayerBadge150x50NoBorder.jpg');
|
67 |
|
171 |
if( !isset($Powerpress['podcast_link']) )
|
172 |
$Powerpress['podcast_link'] = 1;
|
173 |
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
// The blog owner doesn't want anything displayed, so don't bother wasting anymore CPU cycles
|
175 |
if( $Powerpress['display_player'] == 0 )
|
176 |
return $content;
|
287 |
// PowerPress settings:
|
288 |
$Powerpress = get_option('powerpress_general');
|
289 |
|
290 |
+
if( $Powerpress['player_function'] ) // Don't include the player in the header if it is not needed...
|
291 |
+
{
|
292 |
+
$PowerpressPluginURL = powerpress_get_root_url();
|
293 |
?>
|
294 |
<script type="text/javascript" src="<?php echo $PowerpressPluginURL; ?>player.js"></script>
|
295 |
<script type="text/javascript">
|
296 |
<?php
|
297 |
+
$player_image_url = POWERPRESS_PLAY_IMAGE;
|
298 |
+
if( strstr($player_image_url, 'http://') !== $player_image_url )
|
299 |
+
$player_image_url = powerpress_get_root_url().$player_image_url;
|
300 |
|
301 |
+
if( $Powerpress['player_function'] == 4 || $Powerpress['player_function'] == 5 ) // Links would imply only one player in the page
|
302 |
+
echo 'powerpress_player_init(\''. $PowerpressPluginURL .'\',\''. $player_image_url .'\',true);'.PHP_EOL;
|
303 |
+
else
|
304 |
+
echo 'powerpress_player_init(\''. $PowerpressPluginURL .'\',\''. $player_image_url .'\');'.PHP_EOL;
|
305 |
+
|
306 |
+
if( isset($Powerpress['player_width']) && isset($Powerpress['player_height']) && isset($Powerpress['player_width_audio']) )
|
307 |
+
echo 'powerpress_player_size('. (int)trim($Powerpress['player_width']) .','. (int)trim($Powerpress['player_height']) .','. (int)trim($Powerpress['player_width_audio']) .');'.PHP_EOL;
|
308 |
+
|
309 |
+
if( defined('POWERPRESS_USE_ONLOAD') && POWERPRESS_USE_ONLOAD )
|
310 |
+
{
|
311 |
+
echo 'powerpress_addLoadEvent(powerpress_onload);'.PHP_EOL;
|
312 |
+
echo "var g_bpLoadDelay = ".POWERPRESS_USE_ONLOAD_DELAY.";\n";
|
313 |
+
}
|
314 |
?>
|
315 |
</script>
|
316 |
<style type="text/css">
|
320 |
}
|
321 |
</style>
|
322 |
<?php
|
323 |
+
}
|
324 |
}
|
325 |
|
326 |
add_action('wp_head', 'powerpress_header');
|
343 |
if( !powerpress_is_podcast_feed() )
|
344 |
return; // Not a feed we manage
|
345 |
|
346 |
+
$feed_slug = get_query_var( 'feed' );
|
347 |
|
348 |
+
$Feed = get_option('powerpress_feed');
|
349 |
if( powerpress_is_custom_podcast_feed() )
|
350 |
+
{
|
351 |
+
$CustomFeed = get_option('powerpress_feed_'.$feed_slug);
|
352 |
+
if( $CustomFeed )
|
353 |
+
$Feed = powerpress_merge_empty_feed_settings($CustomFeed, $Feed);
|
354 |
+
}
|
355 |
+
|
356 |
|
357 |
// We made it this far, lets write stuff to the feed!
|
358 |
echo '<!-- podcast_generator="Blubrry PowerPress/'. POWERPRESS_VERSION .'" -->'.PHP_EOL;
|
363 |
if( trim($Feed['itunes_new_feed_url']) )
|
364 |
echo "\t<itunes:new-feed-url>". trim($Feed['itunes_new_feed_url']) .'</itunes:new-feed-url>'.PHP_EOL;
|
365 |
}
|
366 |
+
else if( trim($Feed['itunes_new_feed_url']) && ($feed_slug == 'feed' || $feed_slug == 'rss2') ) // If it is the default feed (We don't wnat to apply this to category or tag feeds
|
367 |
{
|
368 |
echo "\t<itunes:new-feed-url>". $Feed['itunes_new_feed_url'] .'</itunes:new-feed-url>'.PHP_EOL;
|
369 |
}
|
373 |
else
|
374 |
echo "\t".'<itunes:summary>'. powerpress_format_itunes_value( get_bloginfo('description'), 4000 ) .'</itunes:summary>'.PHP_EOL;
|
375 |
|
376 |
+
if( $powerpress_feed['itunes_talent_name'] )
|
377 |
+
echo "\t\t<itunes:author>" . wp_specialchars($powerpress_feed['itunes_talent_name']) . '</itunes:author>'.PHP_EOL;
|
378 |
|
379 |
if( $powerpress_feed['explicit'] )
|
380 |
echo "\t".'<itunes:explicit>' . $powerpress_feed['explicit'] . '</itunes:explicit>'.PHP_EOL;
|
394 |
if( $Feed['email'] )
|
395 |
{
|
396 |
echo "\t".'<itunes:owner>'.PHP_EOL;
|
397 |
+
echo "\t\t".'<itunes:name>' . wp_specialchars($powerpress_feed['itunes_talent_name']) . '</itunes:name>'.PHP_EOL;
|
398 |
echo "\t\t".'<itunes:email>' . wp_specialchars($Feed['email']) . '</itunes:email>'.PHP_EOL;
|
399 |
echo "\t".'</itunes:owner>'.PHP_EOL;
|
400 |
+
echo "\t".'<managingEditor>'. wp_specialchars($Feed['email'] .' ('. $powerpress_feed['itunes_talent_name'] .')') .'</managingEditor>'.PHP_EOL;
|
401 |
}
|
402 |
|
403 |
if( $Feed['copyright'] )
|
606 |
$EnclosureURL = trim($EnclosureURL);
|
607 |
$EnclosureType = trim($EnclosureType);
|
608 |
$EnclosureSize = trim($EnclosureSize);
|
609 |
+
$author = $powerpress_feed['itunes_talent_name'];
|
610 |
$explicit = $powerpress_feed['explicit'];
|
611 |
$summary = false;
|
612 |
$subtitle = false;
|
740 |
|
741 |
add_filter('rss_enclosure', 'powerpress_filter_rss_enclosure');
|
742 |
|
743 |
+
function powerpress_bloginfo_rss($content, $field = '')
|
744 |
{
|
745 |
if( powerpress_is_custom_podcast_feed() )
|
746 |
{
|
815 |
if( $feed_slug != 'podcast' )
|
816 |
add_feed($feed_slug, 'powerpress_do_podcast_feed');
|
817 |
}
|
818 |
+
|
819 |
+
// FeedSmith support...
|
820 |
+
if( isset($_GET['feed']) )
|
821 |
+
{
|
822 |
+
switch($_GET['feed'])
|
823 |
+
{
|
824 |
+
case '':
|
825 |
+
case 'feed':
|
826 |
+
case 'atom':
|
827 |
+
case 'rss':
|
828 |
+
case 'comments-rss2':
|
829 |
+
case 'rss2': break; // Let FeedSmith redirect these feeds if it wants
|
830 |
+
default: { // Otherwise lets remove FeedSmith
|
831 |
+
if( has_action('init', 'ol_check_url') !== false )
|
832 |
+
remove_action('init', 'ol_check_url');
|
833 |
+
}
|
834 |
+
}
|
835 |
+
}
|
836 |
}
|
837 |
}
|
838 |
|
839 |
+
add_action('init', 'powerpress_init', 9);
|
840 |
|
841 |
// Load the general feed settings for feeds handled by powerpress
|
842 |
function powerpress_load_general_feed_settings()
|
848 |
|
849 |
// Get the powerpress settings
|
850 |
$GeneralSettings = get_option('powerpress_general');
|
851 |
+
if( !isset($GeneralSettings['custom_feeds']['podcast']) )
|
852 |
+
$GeneralSettings['custom_feeds']['podcast'] = 'Podcast Feed'; // Fixes scenario where the user never configured the custom default podcast feed.
|
853 |
+
|
854 |
if( $GeneralSettings )
|
855 |
{
|
856 |
$feed_slug = get_query_var('feed');
|
857 |
|
858 |
if( isset($GeneralSettings['custom_feeds']) && is_array($GeneralSettings['custom_feeds']) && isset($GeneralSettings['custom_feeds'][ $feed_slug ] ))
|
859 |
{
|
860 |
+
$Feed = get_option('powerpress_feed'); // Get overall feed settings
|
861 |
+
$FeedCustom = get_option('powerpress_feed_'.$feed_slug); // Get custom feed specific settings
|
862 |
+
if( $FeedCustom )
|
863 |
+
$Feed = powerpress_merge_empty_feed_settings($FeedCustom, $Feed);
|
864 |
+
|
865 |
$powerpress_feed = array();
|
866 |
$powerpress_feed['is_custom'] = true;
|
867 |
$powerpress_feed['feed-slug'] = $feed_slug;
|
869 |
$powerpress_feed['default_url'] = rtrim($GeneralSettings['default_url'], '/') .'/';
|
870 |
$explicit = array("no", "yes", "clean");
|
871 |
$powerpress_feed['explicit'] = $explicit[$Feed['itunes_explicit']];
|
872 |
+
if( $Feed['itunes_talent_name'] )
|
873 |
+
$powerpress_feed['itunes_talent_name'] = $Feed['itunes_talent_name'];
|
874 |
else
|
875 |
+
$powerpress_feed['itunes_talent_name'] = get_bloginfo_rss('name');
|
876 |
$powerpress_feed['enhance_itunes_summary'] = @$Feed['enhance_itunes_summary'];
|
877 |
$powerpress_feed['posts_per_rss'] = $Feed['posts_per_rss'];
|
878 |
}
|
880 |
{
|
881 |
// One last check, we may still want to manage this feed, it's just not a custom feed...
|
882 |
$Feed = get_option('powerpress_feed');
|
883 |
+
$wp = $GLOBALS['wp_query'];
|
884 |
// First, determine if powerpress should even be rewriting this feed...
|
885 |
switch( $Feed['apply_to'] )
|
886 |
{
|
887 |
case 2: // RSS2 feed only
|
888 |
+
{
|
889 |
+
if( $feed_slug != 'feed' && $feed_slug != 'rss2')
|
890 |
+
break; // We're only adding podcasts to the rss2 feed in this situation
|
891 |
+
|
892 |
+
if( $wp->query_vars['category_name'] != '' ) // don't touch the category feeds...
|
893 |
+
break;
|
894 |
+
|
895 |
+
if( $wp->query_vars['tag'] != '' ) // don't touch the tag feeds...
|
896 |
+
break;
|
897 |
+
|
898 |
+
if( $wp->query_vars['withcomments'] ) // don't touch the comments feeds...
|
899 |
+
break;
|
900 |
+
|
901 |
+
// Okay we must be working with the normal rss2 feed...
|
902 |
+
} // important: no break here!
|
903 |
case 1: // All other feeds
|
904 |
{
|
905 |
+
$powerpress_feed = array(); // Only store what's needed for each feed item
|
906 |
$powerpress_feed['is_custom'] = false; // ($feed_slug == 'podcast'?true:false);
|
907 |
$powerpress_feed['feed-slug'] = $feed_slug;
|
908 |
$powerpress_feed['process_podpress'] = $GeneralSettings['process_podpress']; // We don't touch podpress data for custom feeds
|
909 |
$powerpress_feed['default_url'] = rtrim($GeneralSettings['default_url'], '/') .'/';
|
910 |
$explicit = array("no", "yes", "clean");
|
911 |
$powerpress_feed['explicit'] = $explicit[$Feed['itunes_explicit']];
|
912 |
+
if( $Feed['itunes_talent_name'] )
|
913 |
+
$powerpress_feed['itunes_talent_name'] = $Feed['itunes_talent_name'];
|
914 |
else
|
915 |
+
$powerpress_feed['itunes_talent_name'] = get_bloginfo_rss('name');
|
916 |
$powerpress_feed['enhance_itunes_summary'] = @$Feed['enhance_itunes_summary'];
|
917 |
$powerpress_feed['posts_per_rss'] = $Feed['posts_per_rss'];
|
918 |
}; break;
|
1294 |
return $ppsize;
|
1295 |
}
|
1296 |
|
1297 |
+
// Merges settings where $S
|
1298 |
+
function powerpress_merge_empty_feed_settings($CustomFeedSettings, $FeedSettings)
|
1299 |
+
{
|
1300 |
+
while( list($key,$value) = each($CustomFeedSettings) )
|
1301 |
+
{
|
1302 |
+
if( $value === '' && $FeedSettings[$key] != $value )
|
1303 |
+
$CustomFeedSettings[$key] = $FeedSettings[$key];
|
1304 |
+
}
|
1305 |
+
|
1306 |
+
return $CustomFeedSettings;
|
1307 |
+
}
|
1308 |
+
|
1309 |
function powerpress_readable_duration($duration, $include_hour=false)
|
1310 |
{
|
1311 |
$seconds = 0;
|
1319 |
|
1320 |
$hours = 0;
|
1321 |
$minutes = 0;
|
1322 |
+
if( $seconds >= (60*60) )
|
1323 |
{
|
1324 |
$hours = floor( $seconds /(60*60) );
|
1325 |
$seconds -= (60*60*$hours);
|
1326 |
}
|
1327 |
+
if( $seconds >= (60) )
|
1328 |
{
|
1329 |
$minutes = floor( $seconds /(60) );
|
1330 |
$seconds -= (60*$minutes);
|
powerpressadmin-appearance.php
CHANGED
@@ -5,6 +5,7 @@ function powerpressadmin_appearance()
|
|
5 |
{
|
6 |
$General = powerpress_get_settings('powerpress_general');
|
7 |
?>
|
|
|
8 |
<h2><?php echo __("Appearance Settings"); ?></h2>
|
9 |
|
10 |
<p style="margin-bottom: 0;">Configure how your media will be found on your blog.</p>
|
5 |
{
|
6 |
$General = powerpress_get_settings('powerpress_general');
|
7 |
?>
|
8 |
+
<input type="hidden" name="action" value="powerpress-save-appearance" />
|
9 |
<h2><?php echo __("Appearance Settings"); ?></h2>
|
10 |
|
11 |
<p style="margin-bottom: 0;">Configure how your media will be found on your blog.</p>
|
powerpressadmin-basic.php
CHANGED
@@ -5,6 +5,7 @@ function powerpress_admin_basic()
|
|
5 |
$General = powerpress_get_settings('powerpress_general');
|
6 |
$AdvancedMode = $General['advanced_mode'];
|
7 |
?>
|
|
|
8 |
<h2><?php echo __("Basic Settings"); ?></h2>
|
9 |
|
10 |
<table class="form-table">
|
@@ -78,7 +79,7 @@ while( list($value,$desc) = each($options) )
|
|
78 |
<p>Click the following link to <a href="https://phobos.apple.com/WebObjects/MZFinance.woa/wa/publishPodcast" target="_blank" title="Publish a Podcast on iTunes">Publish a Podcast on iTunes</a>.
|
79 |
Once your podcast is listed on iTunes, enter your one-click subscription URL above.
|
80 |
</p>
|
81 |
-
<p>e.g. http://
|
82 |
</td>
|
83 |
</tr>
|
84 |
|
@@ -108,6 +109,8 @@ while( list($value,$desc) = each($options) )
|
|
108 |
$ping_url = str_replace(
|
109 |
array( 'https://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=',
|
110 |
'http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=',
|
|
|
|
|
111 |
'https://www.itunes.com/podcast?id=',
|
112 |
'http://www.itunes.com/podcast?id='),
|
113 |
'https://phobos.apple.com/WebObjects/MZFinance.woa/wa/pingPodcast?id=', $General['itunes_url']);
|
5 |
$General = powerpress_get_settings('powerpress_general');
|
6 |
$AdvancedMode = $General['advanced_mode'];
|
7 |
?>
|
8 |
+
<input type="hidden" name="action" value="powerpress-save-basic" />
|
9 |
<h2><?php echo __("Basic Settings"); ?></h2>
|
10 |
|
11 |
<table class="form-table">
|
79 |
<p>Click the following link to <a href="https://phobos.apple.com/WebObjects/MZFinance.woa/wa/publishPodcast" target="_blank" title="Publish a Podcast on iTunes">Publish a Podcast on iTunes</a>.
|
80 |
Once your podcast is listed on iTunes, enter your one-click subscription URL above.
|
81 |
</p>
|
82 |
+
<p>e.g. http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=000000000</p>
|
83 |
</td>
|
84 |
</tr>
|
85 |
|
109 |
$ping_url = str_replace(
|
110 |
array( 'https://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=',
|
111 |
'http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=',
|
112 |
+
'https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=',
|
113 |
+
'http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=',
|
114 |
'https://www.itunes.com/podcast?id=',
|
115 |
'http://www.itunes.com/podcast?id='),
|
116 |
'https://phobos.apple.com/WebObjects/MZFinance.woa/wa/pingPodcast?id=', $General['itunes_url']);
|
powerpressadmin-editfeed.php
CHANGED
@@ -35,10 +35,12 @@ function powerpress_admin_editfeed($feed_slug=false)
|
|
35 |
?>
|
36 |
<h2><?php echo $FeedTitle; ?></h2>
|
37 |
<?php if( $feed_slug ) { ?>
|
|
|
38 |
<p style="margin-bottom: 0;">
|
39 |
<?php _e('Configure your custom podcast feed.'); ?>
|
40 |
</p>
|
41 |
<?php } else { ?>
|
|
|
42 |
<p style="margin-bottom: 0;">
|
43 |
<?php _e('Configure your feeds to support podcasting.'); ?>
|
44 |
</p>
|
@@ -322,6 +324,7 @@ while( list($value,$desc) = each($explicit) )
|
|
322 |
|
323 |
<p>Place the URL to the iTunes image above. e.g. http://mysite.com/images/itunes.jpg<br /><br />iTunes prefers square .jpg or .png images that are at 600 x 600 pixels (prevously 300 x 300), which is different than what is specified for the standard RSS image.</p>
|
324 |
|
|
|
325 |
<?php if( $SupportUploads ) { ?>
|
326 |
<p><input name="itunes_image_checkbox" type="checkbox" onchange="powerpress_show_field('itunes_image_upload', this.checked)" value="1" /> Upload new image </p>
|
327 |
<div style="display:none" id="itunes_image_upload">
|
35 |
?>
|
36 |
<h2><?php echo $FeedTitle; ?></h2>
|
37 |
<?php if( $feed_slug ) { ?>
|
38 |
+
<input type="hidden" name="action" value="powerpress-save-customfeed" />
|
39 |
<p style="margin-bottom: 0;">
|
40 |
<?php _e('Configure your custom podcast feed.'); ?>
|
41 |
</p>
|
42 |
<?php } else { ?>
|
43 |
+
<input type="hidden" name="action" value="powerpress-save-feedsettings" />
|
44 |
<p style="margin-bottom: 0;">
|
45 |
<?php _e('Configure your feeds to support podcasting.'); ?>
|
46 |
</p>
|
324 |
|
325 |
<p>Place the URL to the iTunes image above. e.g. http://mysite.com/images/itunes.jpg<br /><br />iTunes prefers square .jpg or .png images that are at 600 x 600 pixels (prevously 300 x 300), which is different than what is specified for the standard RSS image.</p>
|
326 |
|
327 |
+
<p>Note: It may take some time (days or even a month) for iTunes to cache modified or replaced iTunes images in the iTunes Podcast Directory. Please contact <a href="http://www.apple.com/support/itunes/">iTunes Support</a> if you are having issues with your image changes not appearing in iTunes.</p>
|
328 |
<?php if( $SupportUploads ) { ?>
|
329 |
<p><input name="itunes_image_checkbox" type="checkbox" onchange="powerpress_show_field('itunes_image_upload', this.checked)" value="1" /> Upload new image </p>
|
330 |
<div style="display:none" id="itunes_image_upload">
|
powerpressadmin-podpress.php
CHANGED
@@ -19,6 +19,7 @@
|
|
19 |
$query .= "FROM {$wpdb->posts} AS p ";
|
20 |
$query .= "INNER JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id ";
|
21 |
$query .= "WHERE pm.meta_key = 'podPressMedia' ";
|
|
|
22 |
$query .= "GROUP BY p.ID ";
|
23 |
$query .= "ORDER BY p.post_date DESC ";
|
24 |
|
@@ -237,7 +238,7 @@
|
|
237 |
{
|
238 |
if( $results['feeds_required'] > count($Settings['custom_feeds']) )
|
239 |
{
|
240 |
-
powerpress_page_message_add_error( sprintf(__('You will need %d Custom
|
241 |
powerpress_page_message_print();
|
242 |
}
|
243 |
else
|
@@ -564,6 +565,14 @@ function check_radio_selection(obj, PostID, FileIndex)
|
|
564 |
<p class="submit">
|
565 |
<input type="submit" name="Submit" id="powerpress_import_button" class="button-primary" value="Import Episodes" />
|
566 |
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
567 |
<?php
|
568 |
}
|
569 |
|
@@ -590,6 +599,33 @@ function check_radio_selection(obj, PostID, FileIndex)
|
|
590 |
<?php
|
591 |
}
|
592 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
593 |
?>
|
594 |
<!-- start footer -->
|
595 |
<?php
|
19 |
$query .= "FROM {$wpdb->posts} AS p ";
|
20 |
$query .= "INNER JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id ";
|
21 |
$query .= "WHERE pm.meta_key = 'podPressMedia' ";
|
22 |
+
$query .= "AND p.post_type != 'revision' ";
|
23 |
$query .= "GROUP BY p.ID ";
|
24 |
$query .= "ORDER BY p.post_date DESC ";
|
25 |
|
238 |
{
|
239 |
if( $results['feeds_required'] > count($Settings['custom_feeds']) )
|
240 |
{
|
241 |
+
powerpress_page_message_add_error( sprintf(__('We found blog posts that have %d media files. You will need to create %d more Custom Feed%s in order to continue.'), $results['feeds_required'], $results['feeds_required'] - count($Settings['custom_feeds']), (( ( $results['feeds_required'] - count($Settings['custom_feeds']) ) > 1 )?'s':'') ) );
|
242 |
powerpress_page_message_print();
|
243 |
}
|
244 |
else
|
565 |
<p class="submit">
|
566 |
<input type="submit" name="Submit" id="powerpress_import_button" class="button-primary" value="Import Episodes" />
|
567 |
</p>
|
568 |
+
<?php
|
569 |
+
}
|
570 |
+
else
|
571 |
+
{
|
572 |
+
?>
|
573 |
+
<p class="submit">
|
574 |
+
<input type="button" name="Submit" id="powerpress_import_button" class="button-primary" value="Import Episodes" onclick="alert('There are no PodPress episodes found to import.');" />
|
575 |
+
</p>
|
576 |
<?php
|
577 |
}
|
578 |
|
599 |
<?php
|
600 |
}
|
601 |
}
|
602 |
+
else
|
603 |
+
{
|
604 |
+
?>
|
605 |
+
<div class="error powerpress-error">
|
606 |
+
We found blog posts that have <?php echo $results['feeds_required']; ?> media files.
|
607 |
+
|
608 |
+
You will need to create <?php echo ( $results['feeds_required'] - count($Settings['custom_feeds']) ); ?> more Custom Feed<?php if( ( $results['feeds_required'] - count($Settings['custom_feeds']) ) > 1 ) echo 's'; ?> in order to continue.
|
609 |
+
</div>
|
610 |
+
<p>
|
611 |
+
Blubrry PowerPress does not allow you to include multiple media files for one feed item (blog post).
|
612 |
+
This is because each podcatcher handles multiple enclosures in feeds differently. iTunes will download
|
613 |
+
the first enclosure that it sees in the feed ignoring the rest. Other podcatchers and podcasting directories
|
614 |
+
either pick up the first enclosure or the last in each post item. This inconsistency combined with the fact that
|
615 |
+
<a href="http://www.reallysimplesyndication.com/2004/12/21" target="_blank">Dave Winer does not recommend multiple enclosures</a>
|
616 |
+
and the
|
617 |
+
<a href="http://www.feedvalidator.org/docs/warning/DuplicateEnclosure.html" target="_blank">FeedValidator.org recommendation against it</a>
|
618 |
+
is why Blubrry PowerPress does not support them.
|
619 |
+
</p>
|
620 |
+
<p>
|
621 |
+
As a alternative, PowerPress allows you to create additional <a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_customfeeds.php'); ?>">Custom Podcast Feeds</a> to associate additional media files in a blog post to specific feeds.
|
622 |
+
</p>
|
623 |
+
<p class="submit">
|
624 |
+
<input type="button" name="Submit" id="powerpress_import_button" class="button-primary" value="Import Episodes" onclick="alert('We found blog posts that have <?php echo $results['feeds_required']; ?> media files.\n\nYou will need to create <?php echo ( $results['feeds_required'] - count($Settings['custom_feeds']) ); ?> more Custom Feed<?php if( ( $results['feeds_required'] - count($Settings['custom_feeds']) ) > 1 ) echo 's'; ?> in order to continue. ');" />
|
625 |
+
</p>
|
626 |
+
|
627 |
+
<?php
|
628 |
+
}
|
629 |
?>
|
630 |
<!-- start footer -->
|
631 |
<?php
|
powerpressadmin.php
CHANGED
@@ -132,6 +132,12 @@ function powerpress_admin_init()
|
|
132 |
// Update the settings in the database:
|
133 |
if( $General )
|
134 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
// Wordpress adds slashes to everything, but since we're storing everything serialized, lets remove them...
|
136 |
$General = powerpress_stripslashes($General);
|
137 |
powerpress_save_settings($General);
|
@@ -149,17 +155,29 @@ function powerpress_admin_init()
|
|
149 |
$wp_rewrite->flush_rules();
|
150 |
|
151 |
// Settings saved successfully
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
if( @$_POST['TestiTunesPing'] == 1 )
|
158 |
{
|
159 |
$PingResults = powerpress_ping_itunes($General['itunes_url']);
|
160 |
if( @$PingResults['success'] )
|
161 |
{
|
162 |
-
powerpress_page_message_add_notice( 'iTunes Ping Successful. Podcast Feed URL:'. $PingResults['feed_url'] );
|
163 |
}
|
164 |
else
|
165 |
{
|
@@ -915,19 +933,18 @@ add_action('shutdown','powerpress_shutdown'); // disable the auto enclosure proc
|
|
915 |
*/
|
916 |
function powerpress_ping_itunes($iTunes_url)
|
917 |
{
|
918 |
-
|
|
|
919 |
return array('error'=>true, 'content'=>'iTunes URL required to ping iTunes.');
|
920 |
|
|
|
|
|
921 |
// convert: https://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=
|
922 |
// to: https://phobos.apple.com/WebObjects/MZFinance.woa/wa/pingPodcast?id=
|
923 |
-
$ping_url =
|
924 |
-
array( 'https://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=',
|
925 |
-
'http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=',
|
926 |
-
'https://www.itunes.com/podcast?id=',
|
927 |
-
'http://www.itunes.com/podcast?id='),
|
928 |
-
'https://phobos.apple.com/WebObjects/MZFinance.woa/wa/pingPodcast?id=', $iTunes_url);
|
929 |
|
930 |
-
|
|
|
931 |
|
932 |
if( $tempdata == false )
|
933 |
return array('error'=>true, 'content'=>'Unable to connect to iTunes ping server.');
|
@@ -942,6 +959,36 @@ function powerpress_ping_itunes($iTunes_url)
|
|
942 |
return array('success'=>true, 'content'=>$tempdata, 'feed_url'=>trim($FeedURL), 'podcast_id'=>trim($PodcastID) );
|
943 |
}
|
944 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
945 |
// Import podpress settings
|
946 |
function powerpress_admin_import_podpress_settings()
|
947 |
{
|
132 |
// Update the settings in the database:
|
133 |
if( $General )
|
134 |
{
|
135 |
+
if( $_POST['action'] == 'powerpress-save-appearance' )
|
136 |
+
{
|
137 |
+
if( !isset($General['display_player_excerpt']) ) // If we are modifying appearance settings but this option was not checked...
|
138 |
+
$General['display_player_excerpt'] = 0; // Set it to zero.
|
139 |
+
}
|
140 |
+
|
141 |
// Wordpress adds slashes to everything, but since we're storing everything serialized, lets remove them...
|
142 |
$General = powerpress_stripslashes($General);
|
143 |
powerpress_save_settings($General);
|
155 |
$wp_rewrite->flush_rules();
|
156 |
|
157 |
// Settings saved successfully
|
158 |
+
switch( $_POST['action'] )
|
159 |
+
{
|
160 |
+
case 'powerpress-save-appearance': {
|
161 |
+
powerpress_page_message_add_notice( __('Blubrry PowerPress Appearance settings saved.') );
|
162 |
+
}; break;
|
163 |
+
case 'powerpress-save-customfeed': {
|
164 |
+
powerpress_page_message_add_notice( __('Blubrry PowerPress Custom Feed settings saved.') );
|
165 |
+
}; break;
|
166 |
+
case 'powerpress-save-feedsettings': {
|
167 |
+
powerpress_page_message_add_notice( __('Blubrry PowerPress Feed settings saved.') );
|
168 |
+
}; break;
|
169 |
+
case 'powerpress-save-basic':
|
170 |
+
default: {
|
171 |
+
powerpress_page_message_add_notice( __('Blubrry PowerPress settings saved.') );
|
172 |
+
}; break;
|
173 |
+
}
|
174 |
|
175 |
if( @$_POST['TestiTunesPing'] == 1 )
|
176 |
{
|
177 |
$PingResults = powerpress_ping_itunes($General['itunes_url']);
|
178 |
if( @$PingResults['success'] )
|
179 |
{
|
180 |
+
powerpress_page_message_add_notice( 'iTunes Ping Successful. Podcast Feed URL: '. $PingResults['feed_url'] );
|
181 |
}
|
182 |
else
|
183 |
{
|
933 |
*/
|
934 |
function powerpress_ping_itunes($iTunes_url)
|
935 |
{
|
936 |
+
// Pull the iTunes FEEDID from the URL...
|
937 |
+
if( !preg_match('/id=(\d+)/', $iTunes_url, $matches) )
|
938 |
return array('error'=>true, 'content'=>'iTunes URL required to ping iTunes.');
|
939 |
|
940 |
+
$FEEDID = $matches[1];
|
941 |
+
|
942 |
// convert: https://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=
|
943 |
// to: https://phobos.apple.com/WebObjects/MZFinance.woa/wa/pingPodcast?id=
|
944 |
+
$ping_url = sprintf('https://phobos.apple.com/WebObjects/MZFinance.woa/wa/pingPodcast?id=%d', $FEEDID );
|
|
|
|
|
|
|
|
|
|
|
945 |
|
946 |
+
//$tempdata = wp_remote_fopen($ping_url);
|
947 |
+
$tempdata = powerpress_remote_fopen($ping_url);
|
948 |
|
949 |
if( $tempdata == false )
|
950 |
return array('error'=>true, 'content'=>'Unable to connect to iTunes ping server.');
|
959 |
return array('success'=>true, 'content'=>$tempdata, 'feed_url'=>trim($FeedURL), 'podcast_id'=>trim($PodcastID) );
|
960 |
}
|
961 |
|
962 |
+
function powerpress_remote_fopen($url)
|
963 |
+
{
|
964 |
+
if( function_exists( 'curl_init' ) )
|
965 |
+
{
|
966 |
+
$curl = curl_init();
|
967 |
+
curl_setopt($curl, CURLOPT_URL, $url);
|
968 |
+
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
969 |
+
curl_setopt($curl, CURLOPT_HEADER, 0);
|
970 |
+
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); // Follow location redirection
|
971 |
+
curl_setopt($curl, CURLOPT_MAXREDIRS, 5); // Location redirection limit
|
972 |
+
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2 ); // Connect time out
|
973 |
+
curl_setopt($curl, CURLOPT_TIMEOUT, 5); // The maximum number of seconds to execute.
|
974 |
+
curl_setopt($curl, CURLOPT_USERAGENT, 'Blubrry PowerPress/'.POWERPRESS_VERSION);
|
975 |
+
if( strtolower(substr($url, 0, 5)) == 'https' )
|
976 |
+
{
|
977 |
+
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
|
978 |
+
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
|
979 |
+
}
|
980 |
+
$content = curl_exec($curl);
|
981 |
+
$error = curl_errno($curl);
|
982 |
+
curl_close($curl);
|
983 |
+
if( $error )
|
984 |
+
return false;
|
985 |
+
return $content;
|
986 |
+
}
|
987 |
+
|
988 |
+
// Use the bullt-in remote_fopen...
|
989 |
+
return wp_remote_fopen($url);
|
990 |
+
}
|
991 |
+
|
992 |
// Import podpress settings
|
993 |
function powerpress_admin_import_podpress_settings()
|
994 |
{
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: Angelo Mandato, Blubrry.com
|
|
3 |
Tags: podcast, podcasting, itunes, enclosure, zune, iphone, audio, video, rss2, feed, player, media, rss
|
4 |
Requires at least: 2.5.0
|
5 |
Tested up to: 2.7.1
|
6 |
-
Stable tag: 0.7.
|
7 |
|
8 |
Add podcasting support to your blog.
|
9 |
|
@@ -44,7 +44,9 @@ http://help.blubrry.com/blubrry-powerpress/
|
|
44 |
== Frequently Asked Questions ==
|
45 |
|
46 |
= Why doesn't Blubrry PowerPress support multiple enclosures? =
|
47 |
-
|
|
|
|
|
48 |
|
49 |
= Why doesn't Blubrry PowerPress include media statistics? =
|
50 |
Blubrry PowerPress does not include media statistics. This is not because Blubrry has its own statistics service, although that's a good reason by itself. Maintaining and calculating statistics is a resource and server intensive task that would add bloat to an otherwise lightweight Wordpress podcasting plugin. We recommend you use your media hosting's statistics and you're more than welcome to use the [Blubrry Statistics service](http://www.blubrry.com/podcast_statistics/) as well.
|
@@ -64,63 +66,67 @@ http://help.blubrry.com/blubrry-powerpress/
|
|
64 |
|
65 |
== Changelog ==
|
66 |
|
67 |
-
0.2 released on
|
68 |
-
|
69 |
|
70 |
-
0.
|
71 |
-
|
|
|
72 |
|
73 |
-
0.
|
74 |
-
|
75 |
|
76 |
-
0.
|
77 |
-
Fixed
|
78 |
|
79 |
-
0.
|
80 |
-
|
81 |
|
82 |
-
0.
|
83 |
-
Added
|
84 |
|
85 |
-
0.
|
86 |
-
|
87 |
|
88 |
-
0.
|
89 |
-
|
90 |
|
91 |
-
0.
|
92 |
-
|
|
|
|
|
|
|
93 |
|
94 |
0.5.1 released on 12/10/2008
|
95 |
Added podcast to pages option (Thanks @Frumph), added code to make sure the itunes:subtitle, keywords and summary feed tags never exceed their size limits.
|
96 |
|
97 |
-
0.5.
|
98 |
-
|
99 |
|
100 |
-
0.
|
101 |
-
Fixed
|
102 |
|
103 |
-
0.
|
104 |
-
|
105 |
|
106 |
-
0.
|
107 |
-
Added
|
108 |
|
109 |
-
0.
|
110 |
-
Added
|
111 |
|
112 |
-
0.
|
113 |
-
Fixed bug
|
114 |
|
115 |
-
0.
|
116 |
-
|
117 |
|
118 |
-
0.
|
119 |
-
|
|
|
|
|
|
|
120 |
|
121 |
-
0.7.1 released on 03/11/2009
|
122 |
-
Bugs: Improved flash player loading on pages with multiple podcast episodes, Detecting file size when specifying duration bug fixed. Fixed bug where duration would sometimes save minutes over 60 rather than rolling over one hour.
|
123 |
-
Features: Added new Simple and Advanced Modes. Advance mode adds 5 new pages (Basic, Appearance, Feed Settings, Custom Feeds and Tools). New Edit Post settings section added which allows user to toggle between a simple and normal edit episode boxes. The simple mode displays only the Media URL field. Users can now set the width of the audio player as well as the width and height of the video player. New language added to the Feed Settings page to better explain the apply settings to setting which is now renamed "Enhance Feeds" setting. Added new Enhance iTunes Summary from Blog Posts option, which intelligently takes web links and links to images in your regular blog post into a readable and clickable format for the iTunes summary. Custom feeds including the default podcast feed include additional options such as setting the number of most recent posts in the feed, customizing the feed title, description and landing web link, as well as full support for redirecting feed to a hosted feed service such as FeedBurner.com. The new Custom Feeds section allows user to create an endless number of podcast specific feeds either for separating long and sort formats and/or media types such as ogg, wma and mp3. New Tools section allows users to re-import PodPress settings (typically imported automatically upon first install), Import PodPress episodes with a detailed table of media files with options to specify which media files go to which feeds. Tools page also includes an option to add Edit Podcast Capability for User Role Management. Added Nonces support to all edit and delete transactions to admin pages. Added simple mode for podcast episode boxes in the edit post screen.
|
124 |
|
125 |
== Contributors ==
|
126 |
Angelo Mandato, CIO [RawVoice](http://www.rawvoice.com) - Plugin founder, architect and lead developer
|
3 |
Tags: podcast, podcasting, itunes, enclosure, zune, iphone, audio, video, rss2, feed, player, media, rss
|
4 |
Requires at least: 2.5.0
|
5 |
Tested up to: 2.7.1
|
6 |
+
Stable tag: 0.7.2
|
7 |
|
8 |
Add podcasting support to your blog.
|
9 |
|
44 |
== Frequently Asked Questions ==
|
45 |
|
46 |
= Why doesn't Blubrry PowerPress support multiple enclosures? =
|
47 |
+
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. iTunes 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.
|
48 |
+
|
49 |
+
As a alternative, PowerPress allows you to create additional Custom Podcast Feeds to associate additional media files in a blog post to specific feeds.
|
50 |
|
51 |
= Why doesn't Blubrry PowerPress include media statistics? =
|
52 |
Blubrry PowerPress does not include media statistics. This is not because Blubrry has its own statistics service, although that's a good reason by itself. Maintaining and calculating statistics is a resource and server intensive task that would add bloat to an otherwise lightweight Wordpress podcasting plugin. We recommend you use your media hosting's statistics and you're more than welcome to use the [Blubrry Statistics service](http://www.blubrry.com/podcast_statistics/) as well.
|
66 |
|
67 |
== Changelog ==
|
68 |
|
69 |
+
0.7.2 released on 3/26/2009
|
70 |
+
Re-ordered change log so latest release is listed first rather than last. Fixed powerpress_bloginfo_rss() warning message that occurred for some users, Updated the itunes_url setting to handle the latest itunes URL itunes.apple.com, No longer including revision posts in the PodPress import episode utility, Fixed bug with iTunes author setting not getting applied to feeds, display player in excerpts checkbox bug fixed, no longer including player code in HTML headers if not necessary, fixed duration bug with 1:00:60 which now reports 1:01:00, feed settings are now used for custom feeds that do not have settings of their own, added additional fix for FeedSmith when permalinks is not enabled, fixed bug where feed settings were not being applied to podcast feed in simple mode under some situations, fixed bug with enhance podcast only and main site feed only setting, fixed bug with pinging iTunes with CURL missing SSL certificates, and fixed itunes ping for latest itunes.apple.com one click subscribe links.
|
71 |
|
72 |
+
0.7.1 released on 03/11/2009
|
73 |
+
Bugs: Improved flash player loading on pages with multiple podcast episodes, Detecting file size when specifying duration bug fixed. Fixed bug where duration would sometimes save minutes over 60 rather than rolling over one hour.
|
74 |
+
Features: Added new Simple and Advanced Modes. Advance mode adds 5 new pages (Basic, Appearance, Feed Settings, Custom Feeds and Tools). New Edit Post settings section added which allows user to toggle between a simple and normal edit episode boxes. The simple mode displays only the Media URL field. Users can now set the width of the audio player as well as the width and height of the video player. New language added to the Feed Settings page to better explain the apply settings to setting which is now renamed "Enhance Feeds" setting. Added new Enhance iTunes Summary from Blog Posts option, which intelligently takes web links and links to images in your regular blog post into a readable and clickable format for the iTunes summary. Custom feeds including the default podcast feed include additional options such as setting the number of most recent posts in the feed, customizing the feed title, description and landing web link, as well as full support for redirecting feed to a hosted feed service such as FeedBurner.com. The new Custom Feeds section allows user to create an endless number of podcast specific feeds either for separating long and sort formats and/or media types such as ogg, wma and mp3. New Tools section allows users to re-import PodPress settings (typically imported automatically upon first install), Import PodPress episodes with a detailed table of media files with options to specify which media files go to which feeds. Tools page also includes an option to add Edit Podcast Capability for User Role Management. Added Nonces support to all edit and delete transactions to admin pages. Added simple mode for podcast episode boxes in the edit post screen.
|
75 |
|
76 |
+
0.7.0 released on 03/10/2009
|
77 |
+
Beta release only intended for a handfull of beta testers. For full list of changes, please refer to version 0.7.1
|
78 |
|
79 |
+
0.6.5 released on 02/20/2009
|
80 |
+
Fixed warning from being printed when v0.6.3/v0.6.4 used with PHP4. Bug only affected users using PHP4.
|
81 |
|
82 |
+
0.6.4 released on 02/16/2009
|
83 |
+
Fixed bug where post_password_required() function does not exist, bug only affects users using Wordpress blogs older than version 2.7.
|
84 |
|
85 |
+
0.6.3 released on 02/16/2009
|
86 |
+
Added new options to load all javascript for players in the wp_footer() function. Options are available as defines to add to the wp-config.php and are documented near the top of the powerpress.php. Added option in settings to display player in excerpts. Added code to repair corrupted Podpress data for displaying previously created podpress episodes. Note: Podpress data corruption was originally caused by previous versions of Podpress. Added code to prevent Wordpress from auto adding enclosures created from links to media found in the blog post.
|
87 |
|
88 |
+
0.6.2 released on 01/26/2009
|
89 |
+
Added option to reset rewrite rules when settings saved to fix problem with podcast feed returning 404, logic added to prevent FeedSmith plugin from redirecting podcast feed, and added support for the Kimili Flash Embed plugin
|
90 |
|
91 |
+
0.6.1 released on 01/20/2009
|
92 |
+
Player now handles Windows Media (wmv) in Firefox, offering link to preferred Firefox plugin, now using the wp_specialchars() function for adding entities to feed values, fix problem with themes using excerpts not displaying the player correctly (Thanks @wayofthegeek for your help), and a number of other syntactical changes.
|
93 |
|
94 |
+
0.6.0 released on 12/17/2008
|
95 |
+
Fixed bug with podcast feed in Wordpress 2.7, added defaults for file size and duration, and added iTunes New Feed URL option.
|
96 |
+
|
97 |
+
0.5.2 released on 12/14/2008
|
98 |
+
Fixed bug with the feed channel itunes:summary being limited to 255 characters, the limit is now set to 4,000.
|
99 |
|
100 |
0.5.1 released on 12/10/2008
|
101 |
Added podcast to pages option (Thanks @Frumph), added code to make sure the itunes:subtitle, keywords and summary feed tags never exceed their size limits.
|
102 |
|
103 |
+
0.5.0 released on 11/26/2008
|
104 |
+
Added options to report media duration and file size next to download links. Removed optional defines POWERPRESS _ PLUGIN _ PATH and POWERPRESS _ ITEM _ SUMMARY, defines no longer necessary. Added itunes:author and itunes:subtitle to header portion of podcast feeds and itunes:summary to post items. No longer removing quotes or extra spaces from itunes summary. Player auto-play bug fixed when quicktime files mixed with mp3s. Added new option to ping iTunes in a new browser window. Verify flash player check added, Wordpress auto plugin update will corrupt the flash player. This bug is fixed in Wordpress 2.7 beta 2 and newer. Media URL now displays a warning if the value contains characters which may cause problems.
|
105 |
|
106 |
+
0.4.2 released on 11/02/2008
|
107 |
+
Fixed quicktime in-page player bug, fixed bug which caused itunes keywords and subtitle to be blank and incremented version number.
|
108 |
|
109 |
+
0.4.1 released on 10/24/2008
|
110 |
+
Fixed auto-play bug found in last update, only affected quicktime files with the play on page option.
|
111 |
|
112 |
+
0.4.0 released on 10/21/2008
|
113 |
+
Added two new play options adding 'play on page' links with and without play in new window links and now use a customizable play image for quicktime formatted media. Image may be customized by adding a define('POWERPRESS _ PLAY _ IMAGE', 'URL to image') to wp config file.
|
114 |
|
115 |
+
0.3.2 released on 10/05/2008
|
116 |
+
Added alternative logic for those who host their blogs on servers with allow _ url _ fopen turned off.
|
117 |
|
118 |
+
0.3.1 released on 10/02/2008
|
119 |
+
Fixed bug and added enhancements: iTunes subtitle, keywords and summary values now properly escape html special characters such as added define for adding itunes:new-feed-url tag, added define to display player for legacy Podpress episodes only.
|
120 |
|
121 |
+
0.3.0 released on 09/24/2008
|
122 |
+
New features: Added important feeds list in feed settings, logic to prevent stats redirect duplication and added podcast only feed.
|
123 |
|
124 |
+
0.2.1 released on 09/17/2008
|
125 |
+
Fixed bugs: itunes:subtitle bug, itunes:summary is now enabled by default, add ending trailing slash to media url if missing, and copy blubrry keyword from podpress fix.
|
126 |
+
|
127 |
+
0.2 released on 08/11/2008
|
128 |
+
Initial release of Blubrry PowerPress
|
129 |
|
|
|
|
|
|
|
130 |
|
131 |
== Contributors ==
|
132 |
Angelo Mandato, CIO [RawVoice](http://www.rawvoice.com) - Plugin founder, architect and lead developer
|