Ticket #1089: 1089_new_xspf_player_with_skin_files.patch
| File 1089_new_xspf_player_with_skin_files.patch, 41.5 KB (added by ntm, 2 years ago) |
|---|
-
players/xspf_jukebox/dynamic/skin.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <skin version="0" xmlns="http://xsml.org/ns/0/"> 3 <width>170</width> 4 <height>210</height> 5 <name>SlimOriginal</name> 6 <author>Lacy Morrow</author> 7 <email>gojukebox@gmail.com</email> 8 <website>http://www.lacymorrow.com</website> 9 <comment>DYNAMIC SlimOriginal Skin for XSPF Jukebox (This is a derivate of the SlimOriginal skin.) - THIS FILE WILL BE OVERWRITTEN BY THE PODPRESS XSPF WIDGET! You can prevent this by defining the constant PODPRESS_XSPF_PLAYER_USE_CUSTOM_SKINFILE in the podpress.php file.</comment> 10 <objects> 11 <background color="CCCCCC" /> 12 <playlist x="3" y="21" width="154" height="173" size="10" font="Arial" color="333333" selectedColor="aa3333" /> 13 <shape shape="rectangle" x="0" y="0" width="170" height="18" color="EAEAEA" /> 14 <shape shape="rectangle" x="160" y="18" width="10" height="173" color="EAEAEA" /> 15 <shape shape="rectangle" x="0" y="191" width="170" height="19" color="EAEAEA" /> 16 <text x="137" y="191" size="10" text="About" font="Arial" bold="0" color="333333" hoverMessage="About XSPF Jukebox player" url="http://blog.lacymorrow.com" /> 17 <object label="prevButton" x="2" y="3" width="11" height="10" color="999999" /> 18 <object label="playButton" x="19" y="3" width="10" height="10" color="999999" /> 19 <object label="stopButton" x="32" y="3" width="9" height="10" color="999999" /> 20 <object label="fwdButton" x="46" y="3" width="11" height="10" color="999999" /> 21 <object label="trackDisplay" x="59" y="0" width="67" size="10" font="Arial" color="000000" align="left" /> 22 <object label="timeBar" x="59" y="1" width="93" height="13" alpha="60" color="cc9999" /> 23 <object label="loadBar" x="59" y="14" width="93" height="3" alpha="60" color="BBdddd" /> 24 <object label="timeDisplay" x="127" y="0" width="26" size="10" font="Arial" color="000000" /> 25 <object label="volumeDisplay" x="154" y="3" width="14" height="10" color="444444" /> 26 <object label="scrollupButton" x="161" y="20" width="6" height="6" color="999999" /> 27 <object label="scrolldownButton" x="161" y="31" width="6" height="6" color="999999" /> 28 <object label="scrollButton" x="161" y="43" width="6" height="148" color="999999" bgAlpha="0" /> 29 <object label="shuffleButton" x="4" y="194" width="20.7" height="11.7" color="333333" hoverMessage="Shuffle" /> 30 <object label="repeatButton" x="27" y="194" width="15.7" height="11.7" color="333333" hoverMessage="Repeat" /> 31 </objects> 32 </skin> -
players/xspf_jukebox/dynamic/skin_slim.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <skin version="0" xmlns="http://xsml.org/ns/0/"> 3 <width>170</width> 4 <height>30</height> 5 <name>SlimOriginal</name> 6 <author>Lacy Morrow</author> 7 <email>gojukebox@gmail.com</email> 8 <website>http://www.lacymorrow.com</website> 9 <comment>DYNAMIC SlimOriginal Skin for XSPF Jukebox (This is a derivate of the SlimOriginal skin for the slim player.) - THIS FILE WILL BE OVERWRITTEN BY THE PODPRESS XSPF WIDGET! You can prevent this by defining the constant PODPRESS_XSPF_PLAYER_USE_CUSTOM_SKINFILE in the podpress.php file.</comment> 10 <objects> 11 <background color="CCCCCC" /> 12 <shape shape="rectangle" x="0" y="0" width="170" height="18" color="EAEAEA" /> 13 <shape shape="rectangle" x="0" y="18" width="170" height="12" color="EAEAEA" /> 14 <text x="137" y="15" size="10" text="About" font="Arial" bold="0" color="333333" hoverMessage="About XSPF Jukebox player" url="http://blog.lacymorrow.com" /> 15 <object label="prevButton" x="2" y="3" width="11" height="10" color="999999" /> 16 <object label="playButton" x="19" y="3" width="10" height="10" color="999999" /> 17 <object label="stopButton" x="32" y="3" width="9" height="10" color="999999" /> 18 <object label="fwdButton" x="46" y="3" width="11" height="10" color="999999" /> 19 <object label="trackDisplay" x="59" y="0" width="67" size="10" font="Arial" color="000000" align="left" /> 20 <object label="timeBar" x="59" y="1" width="93" height="13" alpha="60" color="cc9999" /> 21 <object label="loadBar" x="59" y="14" width="93" height="3" alpha="60" color="BBdddd" /> 22 <object label="timeDisplay" x="127" y="0" width="26" size="10" font="Arial" color="000000" /> 23 <object label="volumeDisplay" x="154" y="3" width="14" height="10" color="444444" /> 24 <object label="shuffleButton" x="4" y="18" width="17.1" height="10" color="333333" hoverMessage="Shuffle" /> 25 <object label="repeatButton" x="27" y="18" width="12.1" height="10" color="333333" hoverMessage="Repeat" /> 26 </objects> 27 </skin> -
players/xspf_jukebox/license.txt
1 XSPF JUKEBOX 2 Copyright (c) 2009, Lacy Morrow 3 All rights reserved. 4 5 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 6 7 Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 8 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 Neither the name of the owner nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 10 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 No newline at end of file -
podpress.php
1 1 <?php 2 2 define('PODPRESS_VERSION', '8.8'); 3 define('PODPRESS_MAINTENANCE_VERSION', '8.8.5 beta 2');3 define('PODPRESS_MAINTENANCE_VERSION', '8.8.5 beta 3'); 4 4 /* 5 5 Info for WordPress: 6 6 ============================================================================== 7 7 Plugin Name: podPress 8 Version: 8.8.5-beta_ 28 Version: 8.8.5-beta_3 9 9 Plugin URI: http://www.mightyseek.com/podpress/ 10 10 Description: The podPress pluggin gives you everything you need in one easy plugin to use WordPress for Podcasting. Set it up in <a href="admin.php?page=podpress/podpress_feed.php">'podPress'->Feed/iTunes Settings</a>. If you this plugin works for you, send us a comment. 11 11 Author: Dan Kuykendall (Seek3r) … … 37 37 38 38 Contributors: 39 39 ============================================================================== 40 Developer Dan Kuykendallhttp://www.mightyseek.com/41 Developer David Maciejewskihttp://www.macx.de/42 Forum Support/BugBoy Jeff Norrishttp://www.iscifi.tv/40 Developer Dan Kuykendall http://www.mightyseek.com/ 41 Developer David Maciejewski http://www.macx.de/ 42 Forum Support/BugBoy Jeff Norris http://www.iscifi.tv/ 43 43 44 Audio player Martin Lainehttp://www.1pixelout.net45 WP-iPodCatter Garrick Van Burenhttp://garrickvanburen.com/44 Audio player Martin Laine http://www.1pixelout.net 45 WP-iPodCatter Garrick Van Buren http://garrickvanburen.com/ 46 46 47 47 Thanks to all contributors and bug reporters! :) 48 48 … … 91 91 if (!defined('PLUGINDIR')) { define('PLUGINDIR', 'wp-content/plugins'); } 92 92 if (!defined('PODPRESSPLUGINDIR')) { define('PODPRESSPLUGINDIR', ABSPATH.PLUGINDIR); } 93 93 94 // Begin - XSPF Jukebox player configuration: 95 // If you want to use a custom skin file for the XSPF player then uncomment this line and replace or edit the skin files into the folder /podpress/players/xspf_jukebox/dynamic/ 96 // if ( ! defined('PODPRESS_XSPF_PLAYER_USE_CUSTOM_SKINFILE') ) { define('PODPRESS_XSPF_PLAYER_USE_CUSTOM_SKINFILE', TRUE); } 97 98 // podPress uses a derivate of the SlimOriginal skin. If you want to use a different skin with different heights then uncomment these lines and change the height values appropriately. 99 // if ( ! defined( 'PODPRESS_XSPF_PLAYER_HEIGHT' ) ) { define( 'PODPRESS_XSPF_PLAYER_HEIGHT', 210 ); } 100 // if ( ! defined( 'PODPRESS_XSPF_SLIM_PLAYER_HEIGHT' ) ) { define( 'PODPRESS_XSPF_SLIM_PLAYER_HEIGHT', 30 ); } 101 102 // If you want to let the player show the episode preview images then uncomment the following line (is only necessary if you are using the default player skin of podPress): 103 // if ( ! defined('PODPRESS_XSPF_SHOW_PREVIEW_IMAGE') ) { define('PODPRESS_XSPF_SHOW_PREVIEW_IMAGE', TRUE); } 104 // End - XSPF Jukebox player configuration 105 106 94 107 if(!function_exists('memory_get_usage')) { 95 108 unset($_GET['podpress_showmem']); 96 109 function memory_get_usage() { return 0; } … … 154 167 podPress_checkmem('podPress base class included'); 155 168 require_once(ABSPATH.PLUGINDIR.'/podpress/podpress_functions.php'); 156 169 podPress_checkmem('podPress functions loaded'); 157 170 158 171 if($podPress_x = @parse_url($_SERVER['REQUEST_URI'])) { 159 172 $podPress_x = $podPress_x['path']; 160 173 if (strpos($podPress_x, 'crossdomain.xml')) { … … 781 794 $podPress->post_form_wp25plus('page'); 782 795 echo "\n<!-- podPress dbx for modern WP versions - page -->\n"; 783 796 } 797 ?> -
podpress_functions.php
82 82 } 83 83 return PODPRESSURL; 84 84 } else { 85 $result = get_settings('siteurl'); 86 if(substr($result, -1, 1) != '/') { 87 $result .= '/'; 88 } 89 return $result.'wp-content/plugins/podpress/'; 85 //~ $result = get_settings('siteurl'); 86 //~ if(substr($result, -1, 1) != '/') { 87 //~ $result .= '/'; 88 //~ } 89 //~ return $result.'wp-content/plugins/podpress/'; 90 return PODPRESS_URL.'/'; 90 91 } 91 92 } 92 93 … … 296 297 /* Functions for supporting the widgets */ 297 298 /**************************************************************/ 298 299 function podPress_loadWidgets () { 300 global $wp_version; 301 299 302 if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') ) { 300 303 return; 301 304 } 302 // Tell Dynamic Sidebar about our new widget and its control 303 register_sidebar_widget(array('Feed Buttons', 'widgets'), 'podPress_feedButtons'); 304 register_widget_control(array('Feed Buttons', 'widgets'), 'podPress_feedButtons_control', 300, 200); 305 306 if (TRUE == version_compare($wp_version, '2.2', '>=')) { 307 // Feed Buttons widget 308 $widget_ops = array( 309 'classname' => 'podpress_feedbuttons', 310 'description' => __('Shows buttons for the podcast feeds in the sidebar', 'podpress') 311 ); 312 $control_ops = array('width' => 300, 'height' => 300, 'id_base' => 'podpressfeedbuttons'); 313 $id = $control_ops['id_base']; 314 wp_register_sidebar_widget($id, __('podPress - Feed Buttons','podpress'), 'podPress_feedButtons', $widget_ops); 315 wp_register_widget_control($id, __('podPress - Feed Buttons','podpress'), 'podPress_feedButtons_control', $control_ops); 316 317 // XSPF Player widget 318 $widget_ops = array( 319 'classname' => 'podpress_xspfplayer', 320 'description' => __('Shows a flash player in the sidebar which uses the XSPF playlist of your podcast episodes', 'podpress') 321 ); 322 $control_ops = array('width' => 300, 'height' => 300, 'id_base' => 'podpressxspfPlayer'); 323 $id = $control_ops['id_base']; 324 wp_register_sidebar_widget($id, __('podPress - XSPF Player','podpress'), 'podPress_xspfPlayer', $widget_ops); 325 wp_register_widget_control($id, __('podPress - XSPF Player','podpress'), 'podPress_xspfPlayer_control', $control_ops); 326 } else { 327 // Feed Buttons widget 328 register_sidebar_widget(array('podPress - Feed Buttons', 'widgets'), 'podPress_feedButtons', $widget_ops); 329 register_widget_control(array('podPress - Feed Buttons', 'widgets'), 'podPress_feedButtons_control', 300, 200); 330 331 // XSPF Player widget 332 register_sidebar_widget(array('podPress - XSPF Player', 'widgets'), 'podPress_xspfPlayer'); 333 register_widget_control(array('podPress - XSPF Player', 'widgets'), 'podPress_xspfPlayer_control', 300, 200); 334 } 305 335 306 // Tell Dynamic Sidebar about our new widget and its control307 register_sidebar_widget(array('XSPF Player', 'widgets'), 'podPress_xspfPlayer');308 register_widget_control(array('XSPF Player', 'widgets'), 'podPress_xspfPlayer_control', 300, 200);309 336 } 310 337 311 338 function podPress_feedButtons_control() { … … 347 374 } 348 375 $title = htmlspecialchars($options['title'], ENT_QUOTES); 349 376 ?> 350 <p style="text-align: right; "><b><?php _e('A podPress Widget', 'podpress'); ?></b></p>351 <p><label for="podPressFeedButtons-title"><?php _e('Title:'); ?> <input style="width: 250px;" id="podPressFeedButtons-title" name="podPressFeedButtons-title" type="text" value="<?php echo $title; ?>" /></label></p>377 <p style="text-align: right; font-weight:bold;"><?php _e('A podPress Widget', 'podpress'); ?></p> 378 <p><label for="podPressFeedButtons-title"><?php _e('Title:'); ?></label> <input style="width: 250px;" id="podPressFeedButtons-title" name="podPressFeedButtons-title" type="text" value="<?php echo $title; ?>" /></p> 352 379 <?php 353 if ($podPress->settings['podcastFeedURL'] != get_settings('rss2_url')) {354 ?>355 <p style="text-align:right;margin-right:40px;"><label for="podPressFeedButtons-blog"><?php _e('Site Blog Feed', 'podpress'); ?> <input class="checkbox" type="checkbox" <?php echo $blog; ?> id="podPressFeedButtons-blog" name="podPressFeedButtons-blog" /></label></p>356 <?php380 if ($podPress->settings['podcastFeedURL'] != get_settings('rss2_url')) { 381 ?> 382 <p style="text-align:right;margin-right:40px;"><label for="podPressFeedButtons-blog"><?php _e('Site Blog Feed', 'podpress'); ?></label> <input class="checkbox" type="checkbox" <?php echo $blog; ?> id="podPressFeedButtons-blog" name="podPressFeedButtons-blog" /></p> 383 <?php 357 384 } 358 385 ?> 359 <p style="text-align:right;margin-right:40px;"><label for="podPressFeedButtons-podcast"><?php _e('Show Podcast Feed', 'podpress'); ?> <input class="checkbox" type="checkbox" <?php echo $podcast; ?> id="podPressFeedButtons-podcast" name="podPressFeedButtons-podcast" /></label></p> 360 361 <p style="text-align:right;margin-right:40px;"><label for="podPressFeedButtons-itunes"><?php _e('Show iTunes Music Store', 'podpress'); ?> <input class="checkbox" type="checkbox" <?php echo $itunes; ?> id="podPressFeedButtons-itunes" name="podPressFeedButtons-itunes" /></label></p> 362 <p style="text-align:right;margin-right:40px;"><label for="podPressFeedButtons-iprot"><?php _e('Use Itunes protcol for URL', 'podpress'); ?> <input class="checkbox" type="checkbox" <?php echo $iprot; ?> id="podPressItunesProtocol-iprot" name="podPressItunesProtocol-iprot" /></label></p> 386 <p style="text-align:right;margin-right:40px;"><label for="podPressFeedButtons-podcast"><?php _e('Show Podcast Feed', 'podpress'); ?></label> <input class="checkbox" type="checkbox" <?php echo $podcast; ?> id="podPressFeedButtons-podcast" name="podPressFeedButtons-podcast" /></p> 387 <p style="text-align:right;margin-right:40px;"><label for="podPressFeedButtons-itunes"><?php _e('Show iTunes Music Store', 'podpress'); ?></label> <input class="checkbox" type="checkbox" <?php echo $itunes; ?> id="podPressFeedButtons-itunes" name="podPressFeedButtons-itunes" /></p> 388 <p style="text-align:right;margin-right:40px;"><label for="podPressFeedButtons-iprot"><?php _e('Use Itunes protcol for URL', 'podpress'); ?></label> <input class="checkbox" type="checkbox" <?php echo $iprot; ?> id="podPressItunesProtocol-iprot" name="podPressItunesProtocol-iprot" /></p> 363 389 <input type="hidden" id="podPressFeedButtons-submit" name="podPressFeedButtons-submit" value="1" /> 364 390 <?php 365 391 } … … 408 434 } 409 435 410 436 function podPress_xspfPlayer_control() { 411 $options = $newoptions = get_option('widget_podPressXspfPlayer'); 412 if ( $_POST["podPressXspfPlayer-submit"] ) { 413 $newoptions['useSlimPlayer'] = isset($_POST['podPressXspfPlayer-useSlimPlayer']); 414 $newoptions['title'] = strip_tags(stripslashes($_POST["podPressXspfPlayer-title"])); 415 } 416 if ( $options != $newoptions ) { 417 $options = $newoptions; 437 static $updated = false; // Whether or not we have already updated the data after a POST submit 438 $options = get_option('widget_podPressXspfPlayer'); 439 440 // We need to update the data 441 if ( !$updated && !empty($_POST['podPressXspfPlayer-submit']) ) { 442 $options['title'] = strip_tags(stripslashes($_POST['podPressXspfPlayer-title'])); 443 $options['useSlimPlayer'] = isset($_POST['podPressXspfPlayer-useSlimPlayer']); 444 $options['PlayerWidth'] = intval(preg_replace('/[^0-9]/', '',$_POST['podPressXspfPlayer-width'])); // only numeric values are allowed 445 // the player width should not be bigger than 600px and not be smaller than 170px 446 if (600 < $options['PlayerWidth']) { 447 $options['PlayerWidth'] = 600; 448 } elseif (170 > $options['PlayerWidth']) { 449 $options['PlayerWidth'] = 170; 450 } 451 if ( ! defined( 'PODPRESS_XSPF_PLAYER_HEIGHT' ) ) { define( 'PODPRESS_XSPF_PLAYER_HEIGHT', 210 ); } 452 if ( ! defined( 'PODPRESS_XSPF_SLIM_PLAYER_HEIGHT' ) ) { define( 'PODPRESS_XSPF_SLIM_PLAYER_HEIGHT', 30 ); } 453 if ( FALSE === defined( 'PODPRESS_XSPF_PLAYER_USE_CUSTOM_SKINFILE' ) OR FALSE === PODPRESS_XSPF_PLAYER_USE_CUSTOM_SKINFILE ) { 454 if (TRUE === $options['useSlimPlayer']) { 455 $options['PlayerHeight'] = PODPRESS_XSPF_SLIM_PLAYER_HEIGHT; 456 podpress_xspf_jukebox_slim_skin_xml($options['PlayerWidth'], $options['PlayerHeight']); 457 } else { 458 $options['PlayerHeight'] = PODPRESS_XSPF_PLAYER_HEIGHT; 459 podpress_xspf_jukebox_skin_xml($options['PlayerWidth'], $options['PlayerHeight']); 460 } 461 } 418 462 update_option('widget_podPressXspfPlayer', $options); 463 $updated = true; // So that we don't go through this more than once 419 464 } 420 465 $useSlimPlayer = $options['useSlimPlayer'] ? 'checked="checked"' : ''; 421 466 if(!isset($options['title'])) { … … 423 468 } 424 469 $title = htmlspecialchars($options['title'], ENT_QUOTES); 425 470 ?> 426 <p style="text-align: right;"><b><?php _e('A podPress Widget', 'podpress'); ?></b></p> 427 <p><label for="podPressXspfPlayer-title"><?php _e('Title:'); ?> <input style="width: 250px;" id="podPressXspfPlayer-title" name="podPressXspfPlayer-title" type="text" value="<?php echo $title; ?>" /></label></p> 428 <p style="text-align:right;margin-right:40px;"><label for="podPressXspfPlayer-useSlimPlayer"><?php _e('Use Slim Player', 'podpress'); ?> <input class="checkbox" type="checkbox" <?php echo $useSlimPlayer; ?> id="podPressXspfPlayer-useSlimPlayer" name="podPressXspfPlayer-useSlimPlayer" /></label></p> 471 <p style="text-align: right; font-weight:bold;"><?php _e('A podPress Widget', 'podpress'); ?></p> 472 <p><label for="podPressXspfPlayer-title"><?php _e('Title:'); ?></label> <input type="text" id="podPressXspfPlayer-title" name="podPressXspfPlayer-title" value="<?php echo $title; ?>" style="width: 250px;" /></p> 473 <p><label for="podPressXspfPlayer-useSlimPlayer"><?php _e('Use Slim Player', 'podpress'); ?></label> <input type="checkbox" class="checkbox" <?php echo $useSlimPlayer; ?> id="podPressXspfPlayer-useSlimPlayer" name="podPressXspfPlayer-useSlimPlayer" /></p> 474 <p><label for="podPressXspfPlayer-width"><?php _e('player width:', 'podpress'); ?></label> <input type="text" id="podPressXspfPlayer-width" name="podPressXspfPlayer-width" maxlength="3" value="<?php echo $options['PlayerWidth']; ?>" style="width:3em;" /> <?php _e('px', 'podpress'); ?></p> 429 475 <input type="hidden" id="podPressXspfPlayer-submit" name="podPressXspfPlayer-submit" value="1" /> 430 476 <?php 431 477 } … … 433 479 function podPress_xspfPlayer ($args = '##NOTSET##') { 434 480 GLOBAL $podPress; 435 481 extract($args); 482 if ( ! defined( 'PODPRESS_XSPF_SLIM_PLAYER_HEIGHT' ) ) { define( 'PODPRESS_XSPF_SLIM_PLAYER_HEIGHT', 30 ); } 436 483 $options = get_option('widget_podPressXspfPlayer'); 437 484 if(!isset($options['title'])) { 438 485 $options['title'] = __('Podcast Player'); … … 444 491 445 492 echo $before_widget; 446 493 echo $before_title . $options['title'] . $after_title; 447 448 if($options['useSlimPlayer']) { 449 echo '<object type="application/x-shockwave-flash" width="150" height="170" '; 450 //echo 'data="'.podPress_url().'players/xspf_player_slim.swf?playlist_url='.get_settings('siteurl').'/playlist.xspf">'."\n"; 451 echo 'data="'.podPress_url().'players/xspf_player_slim.swf?playlist_url='.get_feed_link('playlist.xspf').'">'."\n"; 452 //echo ' <param name="movie" value="'.podPress_url().'players/xspf_player_slim.swf?playlist_url='.get_settings('siteurl').'/playlist.xspf" />'."\n"; 453 echo ' <param name="movie" value="'.podPress_url().'players/xspf_player_slim.swf?playlist_url='.get_feed_link('playlist.xspf').'" />'."\n"; 494 if ($options['useSlimPlayer']) { 495 $data_string = PODPRESS_URL.'/players/xspf_jukebox/xspf_jukebox.swf?playlist_url='.get_feed_link('playlist.xspf').'&skin_url='.PODPRESS_URL.'/players/xspf_jukebox/dynamic/skin_slim.xml&autoload=true&autoplay=false&loaded=true'; 496 echo '<object type="application/x-shockwave-flash" width="'.$options['PlayerWidth'].'" height="'.$options['PlayerHeight'].'" id="podpress_xspf_player_slim" data="'.$data_string.'">'."\n"; 497 echo ' <param name="movie" value="'.$data_string.'" />'."\n"; 498 echo ' <param name="bgcolor" value="#ffddee" />'."\n"; 454 499 echo '</object>'."\n"; 455 500 } else { 456 echo '<object type="application/x-shockwave-flash" width="150" height="170" '; 457 //echo 'data="'.podPress_url().'players/xspf_player.swf?playlist_url='.get_settings('siteurl').'/playlist.xspf">'."\n"; 458 echo 'data="'.podPress_url().'players/xspf_player.swf?playlist_url='.get_feed_link('playlist.xspf').'">'."\n"; 459 //echo ' <param name="movie" value="'.podPress_url().'players/xspf_player.swf?playlist_url='.get_settings('siteurl').'/playlist.xspf" />'."\n"; 460 echo ' <param name="movie" value="'.podPress_url().'players/xspf_player.swf?playlist_url='.get_feed_link('playlist.xspf').'" />'."\n"; 501 $data_string = PODPRESS_URL.'/players/xspf_jukebox/xspf_jukebox.swf?playlist_url='.get_feed_link('playlist.xspf').'&skin_url='.PODPRESS_URL.'/players/xspf_jukebox/dynamic/skin.xml&autoload=true&autoplay=false&loaded=true'; 502 echo '<object type="application/x-shockwave-flash" width="'.$options['PlayerWidth'].'" height="'.$options['PlayerHeight'].'" id="podpress_xspf_player" data="'.$data_string.'">'."\n"; 503 echo ' <param name="movie" value="'.$data_string.'" />'."\n"; 504 echo ' <param name="bgcolor" value="#ffddee" />'."\n"; 461 505 echo '</object>'."\n"; 462 506 } 463 507 echo $after_widget; 464 508 } 465 509 510 //~ add_action('init', 'podpress_enqueue_xspf_script'); 511 //~ function podpress_enqueue_xspf_script() { 512 //~ wp_enqueue_script('swfobject'); 513 //~ } 514 515 function podpress_xspf_jukebox_skin_xml($width = 230, $height = 210) { 516 if (600 < $width) { 517 $width = 600; 518 } elseif (170 > $width) { 519 $width = 170; 520 } 521 if (1000 < $height) { 522 $height = 1000; 523 } elseif (210 > $height) { 524 $height = 210; 525 } 526 $top_row_h = 18; 527 $bottom_row_w = $width; 528 $bottom_row_h = 19; 529 $scrollbar_w = 10; 530 $middle_row_h = ($height - ($top_row_h+$bottom_row_h)); 531 $volume_display_w=14; 532 $td_lb_tb_x = 59; 533 $timedisplay_w = 26; 534 $space_w = 3; 535 $space_h = 3; 536 $timebar_h = 13; 537 $loadBar_h = 3; 538 539 $player_buttons_h = $top_row_h-$space_h-1-$space_h-1; 540 541 // colors 542 $bgcolor = 'CCCCCC'; 543 $rowsandbars_bgcolor = 'EAEAEA'; 544 $buttons_color = '999999'; 545 $playlist_text_color = $button_text_color = '333333'; 546 $playlist_selectedtext_color = 'aa3333'; 547 $infodisplay_text_color = '000000'; 548 549 // misc. 550 if ( TRUE === defined( 'PODPRESS_XSPF_SHOW_PREVIEW_IMAGE' ) AND TRUE === PODPRESS_XSPF_SHOW_PREVIEW_IMAGE ) { 551 $show_episode_image = TRUE; 552 } else { 553 $show_episode_image = FALSE; 554 } 555 556 $output = '<?xml version="1.0" encoding="UTF-8"?>'."\n"; 557 $output .= '<skin version="0" xmlns="http://xsml.org/ns/0/">'."\n"; 558 $output .= ' <width>'.$width.'</width>'."\n"; 559 $output .= ' <height>'.$height.'</height>'."\n"; 560 $output .= ' <name>SlimOriginal</name>'."\n"; 561 $output .= ' <author>Lacy Morrow</author>'."\n"; 562 $output .= ' <email>gojukebox@gmail.com</email>'."\n"; 563 $output .= ' <website>http://www.lacymorrow.com</website>'."\n"; 564 $output .= ' <comment>DYNAMIC SlimOriginal Skin for XSPF Jukebox (This is a derivate of the SlimOriginal skin.) - THIS FILE WILL BE OVERWRITTEN BY THE PODPRESS XSPF WIDGET! You can prevent this by defining the constant PODPRESS_XSPF_PLAYER_USE_CUSTOM_SKINFILE in the podpress.php file.</comment>'."\n"; 565 $output .= ' <objects>'."\n"; 566 $output .= ' <background color="'.$bgcolor.'" />'."\n"; 567 568 // playlist 569 $output .= ' <playlist x="'.$space_w.'" y="'.($top_row_h+$space_h).'" width="'.($width-$space_w-$scrollbar_w-$space_w).'" height="'.$middle_row_h.'" size="10" font="Arial" color="'.$playlist_text_color.'" selectedColor="'.$playlist_selectedtext_color.'" />'."\n"; 570 // top row background 571 $output .= ' <shape shape="rectangle" x="0" y="0" width="'.$width.'" height="'.$top_row_h.'" color="'.$rowsandbars_bgcolor.'" />'."\n"; 572 // scroll bar background 573 $output .= ' <shape shape="rectangle" x="'.($width-$scrollbar_w).'" y="'.$top_row_h.'" width="'.$scrollbar_w.'" height="'.$middle_row_h.'" color="'.$rowsandbars_bgcolor.'" />'."\n"; 574 // bottom row background 575 $output .= ' <shape shape="rectangle" x="0" y="'.($height-($bottom_row_h)).'" width="'.$bottom_row_w.'" height="'.$bottom_row_h.'" color="'.$rowsandbars_bgcolor.'" />'."\n"; 576 // "About" - button element 577 $output .= ' <text x="'.($width-33).'" y="'.($height-$bottom_row_h).'" size="10" text="'.__('About', 'podpress').'" font="Arial" bold="0" color="'.$button_text_color.'" hoverMessage="'.__('About XSPF Jukebox player', 'podpress').'" url="http://blog.lacymorrow.com" />'."\n"; 578 // player as Popup player - button element 579 // $output .= ' <text x="'.($width-85).'" y="'.($height-$bottom_row_h+2).'" size="10" text="'.__('Popup', 'podpress').'" font="Arial" bold="0" color="'.$button_text_color.'" hoverMessage="'.__('Popup', 'podpress').'" url="../static/object-flash-xspf-popup.php" />'."\n"; 580 581 $output .= ' <object label="prevButton" x="2" y="'.$space_h.'" width="11" height="'.$player_buttons_h.'" color="'.$buttons_color.'" />'."\n"; 582 $output .= ' <object label="playButton" x="19" y="'.$space_h.'" width="10" height="'.$player_buttons_h.'" color="'.$buttons_color.'" />'."\n"; 583 $output .= ' <object label="stopButton" x="32" y="'.$space_h.'" width="9" height="'.$player_buttons_h.'" color="'.$buttons_color.'" />'."\n"; 584 $output .= ' <object label="fwdButton" x="46" y="'.$space_h.'" width="11" height="'.$player_buttons_h.'" color="'.$buttons_color.'" />'."\n"; 585 586 $output .= ' <object label="trackDisplay" x="'.$td_lb_tb_x.'" y="0" width="'.($width-$td_lb_tb_x-$volume_display_w-4-26).'" size="10" font="Arial" color="'.$infodisplay_text_color.'" align="left" />'."\n"; 587 $output .= ' <object label="timeBar" x="'.$td_lb_tb_x.'" y="1" width="'.($width-$td_lb_tb_x-$volume_display_w-4).'" height="'.$timebar_h.'" alpha="60" color="cc9999" />'."\n"; 588 $output .= ' <object label="loadBar" x="'.$td_lb_tb_x.'" y="'.(1+$timebar_h).'" width="'.($width-$td_lb_tb_x-$volume_display_w-4).'" height="'.$loadBar_h.'" alpha="60" color="BBdddd" />'."\n"; 589 $output .= ' <object label="timeDisplay" x="'.($width-$volume_display_w-3-26).'" y="0" width="26" size="10" font="Arial" color="'.$infodisplay_text_color.'" />'."\n"; 590 $output .= ' <object label="volumeDisplay" x="'.($width-$volume_display_w-2).'" y="'.$space_h.'" width="'.$volume_display_w.'" height="'.$player_buttons_h.'" color="444444" />'."\n"; 591 592 if (TRUE == $show_episode_image) { 593 $output .= ' <object label="imageDisplay" x="20" y="'.($height-$bottom_row_h-110).'" width="130" height="100" />'."\n"; 594 } 595 //~ $output .= ' <object label="videoDisplay" x="20" y="20" width="130" height="100" />'."\n"; 596 597 $output .= ' <object label="scrollupButton" x="'.($width-6-$space_w).'" y="'.($top_row_h+2).'" width="6" height="6" color="'.$buttons_color.'" />'."\n"; 598 $output .= ' <object label="scrolldownButton" x="'.($width-6-$space_w).'" y="'.($top_row_h+13).'" width="6" height="6" color="'.$buttons_color.'" />'."\n"; 599 $output .= ' <object label="scrollButton" x="'.($width-6-$space_w).'" y="'.($top_row_h+25).'" width="6" height="'.($middle_row_h-25).'" color="'.$buttons_color.'" bgAlpha="0" />'."\n"; 600 601 $output .= ' <object label="shuffleButton" x="4" y="'.($height-$bottom_row_h+$space_h).'" width="20.7" height="11.7" color="'.$button_text_color.'" hoverMessage="'.__('Shuffle', 'podpress').'" />'."\n"; 602 $output .= ' <object label="repeatButton" x="27" y="'.($height-$bottom_row_h+$space_h).'" width="15.7" height="11.7" color="'.$button_text_color.'" hoverMessage="'.__('Repeat', 'podpress').'" />'."\n"; 603 604 //~ $output .= ' <object label="infoButton" x="79" y="'.($height-$bottom_row_h-20).'" size="+10" color="'.$button_text_color.'" text="'.__('Info', 'podpress').'" font="Arial" hoverMessage="'.__('Track Info', 'podpress').'" />'."\n"; 605 //~ $output .= ' <object label="purchaseButton" x="52" y="'.($height-($bottom_row_h)).'" size="+10" color="'.$button_text_color.'" text="'.__('purchase', 'podpress').'" font="Arial" hoverMessage="'.__('Purchase', 'podpress').'" />'."\n"; 606 //~ $output .= ' <object label="downloadButton" x="101" y="'.($height-($bottom_row_h)).'" size="+10" color="'.$button_text_color.'" text="'.__('Save', 'podpress').'" font="Arial" bold="0" hoverMessage="'.__('Download Track', 'podpress').'" />'."\n"; 607 608 $output .= ' </objects>'."\n"; 609 $output .= '</skin>'."\n"; 610 611 // write the out put to the skin file 612 podPress_write_XSPF_skin_file(PODPRESS_DIR.'/players/xspf_jukebox/dynamic/skin.xml', $output); 613 } 614 615 function podpress_xspf_jukebox_slim_skin_xml($width = 170, $height = 30) { 616 if (600 < $width) { 617 $width = 600; 618 } elseif (170 > $width) { 619 $width = 170; 620 } 621 if (100 < $height) { 622 $height = 100; 623 } elseif (30 > $height) { 624 $height = 30; 625 } 626 $top_row_h = 18; 627 $bottom_row_w = $width; 628 $bottom_row_h = 12; 629 $middle_row_h = ($height - ($top_row_h+$bottom_row_h)); 630 $volume_display_w=14; 631 $td_lb_tb_x = 59; 632 $timedisplay_w = 26; 633 $space_w = 3; 634 $space_h = 3; 635 $timebar_h = 13; 636 $loadBar_h = 3; 637 638 $player_buttons_h = $top_row_h-$space_h-1-$space_h-1; 639 640 // colors 641 $bgcolor = 'CCCCCC'; 642 $rowsandbars_bgcolor = 'EAEAEA'; 643 $buttons_color = '999999'; 644 $playlist_text_color = $button_text_color = '333333'; 645 $playlist_selectedtext_color = 'aa3333'; 646 $infodisplay_text_color = '000000'; 647 648 // misc. 649 $show_episode_image = TRUE; 650 651 $output = '<?xml version="1.0" encoding="UTF-8"?>'."\n"; 652 $output .= '<skin version="0" xmlns="http://xsml.org/ns/0/">'."\n"; 653 $output .= ' <width>'.$width.'</width>'."\n"; 654 $output .= ' <height>'.$height.'</height>'."\n"; 655 $output .= ' <name>SlimOriginal</name>'."\n"; 656 $output .= ' <author>Lacy Morrow</author>'."\n"; 657 $output .= ' <email>gojukebox@gmail.com</email>'."\n"; 658 $output .= ' <website>http://www.lacymorrow.com</website>'."\n"; 659 $output .= ' <comment>DYNAMIC SlimOriginal Skin for XSPF Jukebox (This is a derivate of the SlimOriginal skin for the slim player.) - THIS FILE WILL BE OVERWRITTEN BY THE PODPRESS XSPF WIDGET! You can prevent this by defining the constant PODPRESS_XSPF_PLAYER_USE_CUSTOM_SKINFILE in the podpress.php file.</comment>'."\n"; 660 $output .= ' <objects>'."\n"; 661 $output .= ' <background color="'.$bgcolor.'" />'."\n"; 662 663 // top row background 664 $output .= ' <shape shape="rectangle" x="0" y="0" width="'.$width.'" height="'.$top_row_h.'" color="'.$rowsandbars_bgcolor.'" />'."\n"; 665 // bottom row background 666 $output .= ' <shape shape="rectangle" x="0" y="'.($height-($bottom_row_h)).'" width="'.$bottom_row_w.'" height="'.$bottom_row_h.'" color="'.$rowsandbars_bgcolor.'" />'."\n"; 667 // "About" - button element 668 $output .= ' <text x="'.($width-33).'" y="'.($height-$bottom_row_h-$space_h).'" size="10" text="'.__('About', 'podpress').'" font="Arial" bold="0" color="'.$button_text_color.'" hoverMessage="'.__('About XSPF Jukebox player', 'podpress').'" url="http://blog.lacymorrow.com" />'."\n"; 669 // player as Popup player - button element 670 // $output .= ' <text x="'.($width-85).'" y="'.($height-$bottom_row_h+2).'" size="10" text="'.__('Popup', 'podpress').'" font="Arial" bold="0" color="'.$button_text_color.'" hoverMessage="'.__('Popup', 'podpress').'" url="../static/object-flash-xspf-popup.php" />'."\n"; 671 672 $output .= ' <object label="prevButton" x="2" y="'.$space_h.'" width="11" height="'.$player_buttons_h.'" color="'.$buttons_color.'" />'."\n"; 673 $output .= ' <object label="playButton" x="19" y="'.$space_h.'" width="10" height="'.$player_buttons_h.'" color="'.$buttons_color.'" />'."\n"; 674 $output .= ' <object label="stopButton" x="32" y="'.$space_h.'" width="9" height="'.$player_buttons_h.'" color="'.$buttons_color.'" />'."\n"; 675 $output .= ' <object label="fwdButton" x="46" y="'.$space_h.'" width="11" height="'.$player_buttons_h.'" color="'.$buttons_color.'" />'."\n"; 676 677 $output .= ' <object label="trackDisplay" x="'.$td_lb_tb_x.'" y="0" width="'.($width-$td_lb_tb_x-$volume_display_w-4-26).'" size="10" font="Arial" color="'.$infodisplay_text_color.'" align="left" />'."\n"; 678 $output .= ' <object label="timeBar" x="'.$td_lb_tb_x.'" y="1" width="'.($width-$td_lb_tb_x-$volume_display_w-4).'" height="'.$timebar_h.'" alpha="60" color="cc9999" />'."\n"; 679 $output .= ' <object label="loadBar" x="'.$td_lb_tb_x.'" y="'.(1+$timebar_h).'" width="'.($width-$td_lb_tb_x-$volume_display_w-4).'" height="'.$loadBar_h.'" alpha="60" color="BBdddd" />'."\n"; 680 $output .= ' <object label="timeDisplay" x="'.($width-$volume_display_w-3-26).'" y="0" width="26" size="10" font="Arial" color="'.$infodisplay_text_color.'" />'."\n"; 681 $output .= ' <object label="volumeDisplay" x="'.($width-$volume_display_w-2).'" y="'.$space_h.'" width="'.$volume_display_w.'" height="'.$player_buttons_h.'" color="444444" />'."\n"; 682 683 $output .= ' <object label="shuffleButton" x="4" y="'.($height-$bottom_row_h).'" width="17.1" height="10" color="'.$button_text_color.'" hoverMessage="'.__('Shuffle', 'podpress').'" />'."\n"; 684 $output .= ' <object label="repeatButton" x="27" y="'.($height-$bottom_row_h).'" width="12.1" height="10" color="'.$button_text_color.'" hoverMessage="'.__('Repeat', 'podpress').'" />'."\n"; 685 // $output .= ' <object label="infoButton" x="79" y="'.($height-$bottom_row_h+2).'" size="+10" color="'.$button_text_color.'" text="'.__('Info', 'podpress').'" font="Arial" hoverMessage="'.__('Track Info', 'podpress').'" />'."\n"; 686 687 $output .= ' </objects>'."\n"; 688 $output .= '</skin>'."\n"; 689 690 // write the out put to the skin file 691 podPress_write_XSPF_skin_file(PODPRESS_DIR.'/players/xspf_jukebox/dynamic/skin_slim.xml', $output); 692 } 693 694 function podPress_write_XSPF_skin_file($filename='', $output='') { 695 if (FALSE == is_dir(dirname($filename))) { 696 echo '<p class="error" style="padding:2px;">'.sprintf(__('The folder %1$s does not exists. Unable to write the skin file.', 'podpress'), dirname($filename)).'</p>'; 697 return; 698 } 699 if (is_file($filename) AND FALSE == is_writable($filename)) { 700 chmod ($filename, 0777); 701 } 702 $handle = fopen($filename, "w"); 703 fputs($handle, $output); 704 $status = fclose($handle); 705 if (is_file($filename)) {chmod ($filename, 0644);} 706 } 707 708 466 709 /**************************************************************/ 467 710 /* Functions for supporting the downloader */ 468 711 /**************************************************************/ … … 474 717 case 'feed': 475 718 case 'web': 476 719 case 'play': 477 $sqlI = "INSERT INTO ".$wpdb->prefix."podpress_statcounts (postID, media, $method) VALUES ($postID, '$media', 1)"; 478 $sqlU = "UPDATE ".$wpdb->prefix."podpress_statcounts SET $method = $method+1, total = total+1 WHERE postID = '$postID' AND media = '$media'"; 479 $wpdb->hide_errors(); 480 $result = $wpdb->query($sqlI); 481 if(!$result) { 482 $wpdb->query($sqlU); 483 } 484 $wpdb->show_errors(); 720 $sqlIoU = "INSERT INTO ".$wpdb->prefix."podpress_statcounts (postID, media, $method) VALUES ($postID, '$media', 1) ON DUPLICATE KEY UPDATE $method = $method+1, total = total+1"; 721 $result = $wpdb->query($sqlIoU); 485 722 break; 486 723 default: 487 724 return; … … 980 1217 podPress_add_option($option_name, $option_value); 981 1218 return true; 982 1219 } 983 1220 ?> -
readme.txt
3 3 Contributors: seek3r, macx, iscifi 4 4 Donate link: http://www.mightyseek.com/podpress_donate.php 5 5 Requires at least: 1.5 6 Tested up to: 2.9. 16 Tested up to: 2.9.2 7 7 Stable Tag: 8.8.4 8 8 9 9 A dream plugin for Podcasters using WordPress.. … … 36 36 37 37 == Changelog == 38 38 39 = v0.8.5 beta 3 = 40 * [Ticket #1089](http://plugins.trac.wordpress.org/ticket/1089) - props: a new customizable XSPF player 41 * [Ticket #1085](http://plugins.trac.wordpress.org/ticket/1085) - enhancement for loading time of the podpress pages 42 * [Ticket #1083](http://plugins.trac.wordpress.org/ticket/1083) - a reworked player preview 43 * [Ticket #1080](http://plugins.trac.wordpress.org/ticket/1080) - fix for podPress_downloadlinks container 44 * [Ticket #1079](http://plugins.trac.wordpress.org/ticket/1079) - fix for the "Before <!- More -> tag:"-functionality 45 * [Ticket #1074](http://plugins.trac.wordpress.org/ticket/1074) - better handling of invalid input data in the feed generating functions 46 * [Ticket #1073](http://plugins.trac.wordpress.org/ticket/1073) - additional descriptions for the feed settings pages of podPress 47 * [Ticket #1068](http://plugins.trac.wordpress.org/ticket/1068) - patch for an error free stats counter (Thanks to [avatarworf](http://wordpress.org/support/profile/17483)) 48 * [Ticket #1066](http://plugins.trac.wordpress.org/ticket/1066) - Podango message at the general settings page of podPress 49 * [Ticket #1061](http://plugins.trac.wordpress.org/ticket/1061) - update to 1PixelOut player a.k.a Audio Player 2.0 50 39 51 = v0.8.5 beta 2 = 40 52 * [Ticket #1064](http://plugins.trac.wordpress.org/ticket/1064) - multiple fixes on the feed feed/iTunes settings page and feed functions 41 53 * [Ticket #1062](http://plugins.trac.wordpress.org/ticket/1062) - Fix for the Video Player Preview and the Listen Wrapper (contains the [Ticket #1060](http://plugins.trac.wordpress.org/ticket/1060) - little enhancement for the variables tempFileSystemPath and tempFileURLPath) 42 * [Ticket #1061](http://plugins.trac.wordpress.org/ticket/1061) - update to 1PixelOut player a.k.a Audio Player 2.043 54 44 55 = v0.8.5 beta = 45 56 * [Ticket #1059](http://plugins.trac.wordpress.org/ticket/1059) - fixed color picker (on the player settings page) … … 90 101 91 102 Go to the new podPress menu and start configuring podPress and your Feed settings. 92 103 104 = use a different skin for the XSPF player = 105 Since v8.8.5 podPress uses the [XSPF player created by Lacy Morrow](http://blog.lacymorrow.com/projects/xspf-jukebox/) which has the possibility to use customized player skins. These skin files are XML files and situated in a sub folder of podPress (e.g. /podpress/players/xspf_jukebox/dynamic/skin.xml). The file name should be skin.xml and skin_slim.xml for the slim player. podPress overwrites these files to updated the width (and height) of the widget every time the widgets settings are saved. Later versions of podPress might have more customization options for the player. 106 But if you want to use you own skin files then you can prevent the overwriting of the skin files by defining the constant PODPRESS_XSPF_PLAYER_USE_CUSTOM_SKINFILE (to do that uncomment the line at the beginning of the podpress.php file). 107 The "[XSPF Jukebox skin.xml Specification](http://lacymorrow.com/projects/jukebox/skindoc.html)" documents how-to make such a file. Or you can eventually use one of the [existing skins](http://blog.lacymorrow.com/projects/xspf-jukebox/). podPress uses a derivate of the SlimOriginal skin by default. If you are using a different skin it might be necessary to adjust the heights too. In order to do that define the constants: PODPRESS_XSPF_PLAYER_HEIGHT and PODPRESS_XSPF_SLIM_PLAYER_HEIGHT. (There are prepared lines in the podpress.php file.) 93 108 94 109 == Frequently Asked Questions == 95 110 … … 104 119 105 120 In general this just requires that you replace the existing files with the new ones. Sometimes its a good idea to delete all the files in wp-content/plugins/podpress/ and re-upload them fresh. 106 121 122 107 123 == Screenshots == 108 124 109 125 1. Write a page and at the end of your Post add your mp3 filename or full URL.
