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

     
     1XSPF JUKEBOX 
     2Copyright (c) 2009, Lacy Morrow 
     3All rights reserved. 
     4 
     5Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 
     6 
     7Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
     8Redistributions 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. 
     9Neither 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. 
     10THIS 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

     
    11<?php 
    22define('PODPRESS_VERSION', '8.8'); 
    3 define('PODPRESS_MAINTENANCE_VERSION', '8.8.5 beta 2'); 
     3define('PODPRESS_MAINTENANCE_VERSION', '8.8.5 beta 3'); 
    44/* 
    55 Info for WordPress: 
    66 ============================================================================== 
    77 Plugin Name: podPress 
    8  Version: 8.8.5-beta_2 
     8 Version: 8.8.5-beta_3 
    99 Plugin URI: http://www.mightyseek.com/podpress/ 
    1010 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. 
    1111 Author: Dan Kuykendall (Seek3r) 
     
    3737 
    3838 Contributors: 
    3939 ============================================================================== 
    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/ 
     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/ 
    4343 
    44  Audio player           Martin Laine        http://www.1pixelout.net 
    45  WP-iPodCatter          Garrick Van Buren   http://garrickvanburen.com/ 
     44 Audio player                   Martin Laine            http://www.1pixelout.net 
     45 WP-iPodCatter          Garrick Van Buren       http://garrickvanburen.com/ 
    4646 
    4747 Thanks to all contributors and bug reporters! :) 
    4848 
     
    9191if (!defined('PLUGINDIR')) { define('PLUGINDIR', 'wp-content/plugins'); } 
    9292if (!defined('PODPRESSPLUGINDIR')) { define('PODPRESSPLUGINDIR', ABSPATH.PLUGINDIR); } 
    9393 
     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 
    94107if(!function_exists('memory_get_usage')) { 
    95108        unset($_GET['podpress_showmem']); 
    96109        function memory_get_usage() { return 0; } 
     
    154167        podPress_checkmem('podPress base class included'); 
    155168        require_once(ABSPATH.PLUGINDIR.'/podpress/podpress_functions.php'); 
    156169        podPress_checkmem('podPress functions loaded'); 
    157  
     170         
    158171        if($podPress_x = @parse_url($_SERVER['REQUEST_URI'])) { 
    159172                $podPress_x = $podPress_x['path']; 
    160173                if (strpos($podPress_x, 'crossdomain.xml')) { 
     
    781794        $podPress->post_form_wp25plus('page'); 
    782795        echo "\n<!-- podPress dbx for modern WP versions - page -->\n"; 
    783796} 
     797?> 
  • podpress_functions.php

     
    8282                        } 
    8383                        return PODPRESSURL; 
    8484                } 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.'/'; 
    9091                } 
    9192        } 
    9293 
     
    296297        /* Functions for supporting the widgets */ 
    297298        /**************************************************************/ 
    298299        function podPress_loadWidgets () { 
     300                global $wp_version; 
     301                 
    299302                if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') ) { 
    300303                        return; 
    301304                } 
    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                } 
    305335 
    306                 // Tell Dynamic Sidebar about our new widget and its control 
    307                 register_sidebar_widget(array('XSPF Player', 'widgets'), 'podPress_xspfPlayer'); 
    308                 register_widget_control(array('XSPF Player', 'widgets'), 'podPress_xspfPlayer_control', 300, 200); 
    309336        } 
    310337 
    311338        function podPress_feedButtons_control() { 
     
    347374                } 
    348375                $title = htmlspecialchars($options['title'], ENT_QUOTES); 
    349376                ?> 
    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> 
    352379                <?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                 <?php 
     380                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 
    357384                } 
    358385                ?> 
    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> 
    363389                <input type="hidden" id="podPressFeedButtons-submit" name="podPressFeedButtons-submit" value="1" /> 
    364390                <?php 
    365391        } 
     
    408434        } 
    409435 
    410436        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                        } 
    418462                        update_option('widget_podPressXspfPlayer', $options); 
     463                        $updated = true; // So that we don't go through this more than once 
    419464                } 
    420465                $useSlimPlayer = $options['useSlimPlayer'] ? 'checked="checked"' : ''; 
    421466                if(!isset($options['title'])) { 
     
    423468                } 
    424469                $title = htmlspecialchars($options['title'], ENT_QUOTES); 
    425470                ?> 
    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> 
    429475                <input type="hidden" id="podPressXspfPlayer-submit" name="podPressXspfPlayer-submit" value="1" /> 
    430476                <?php 
    431477        } 
     
    433479        function podPress_xspfPlayer ($args = '##NOTSET##') { 
    434480                GLOBAL $podPress; 
    435481                extract($args); 
     482                if ( ! defined( 'PODPRESS_XSPF_SLIM_PLAYER_HEIGHT' ) ) { define( 'PODPRESS_XSPF_SLIM_PLAYER_HEIGHT', 30 ); } 
    436483                $options = get_option('widget_podPressXspfPlayer'); 
    437484                if(!isset($options['title'])) { 
    438485                        $options['title'] = __('Podcast Player'); 
     
    444491                         
    445492                echo $before_widget; 
    446493                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"; 
    454499                        echo '</object>'."\n"; 
    455500                } 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"; 
    461505                        echo '</object>'."\n"; 
    462506                } 
    463507                echo $after_widget; 
    464508        } 
    465509 
     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         
    466709        /**************************************************************/ 
    467710        /* Functions for supporting the downloader */ 
    468711        /**************************************************************/ 
     
    474717                        case 'feed': 
    475718                        case 'web': 
    476719                        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); 
    485722                                break; 
    486723                        default: 
    487724                                return; 
     
    9801217                podPress_add_option($option_name, $option_value); 
    9811218                return true; 
    9821219        } 
    983  
     1220?> 
  • readme.txt

     
    33Contributors: seek3r, macx, iscifi 
    44Donate link: http://www.mightyseek.com/podpress_donate.php 
    55Requires at least: 1.5 
    6 Tested up to: 2.9.1 
     6Tested up to: 2.9.2 
    77Stable Tag: 8.8.4 
    88 
    99A dream plugin for Podcasters using WordPress.. 
     
    3636 
    3737== Changelog == 
    3838 
     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 
    3951= v0.8.5 beta 2 = 
    4052* [Ticket #1064](http://plugins.trac.wordpress.org/ticket/1064) - multiple fixes on the feed feed/iTunes settings page and feed functions 
    4153* [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.0 
    4354 
    4455= v0.8.5 beta = 
    4556* [Ticket #1059](http://plugins.trac.wordpress.org/ticket/1059) - fixed color picker (on the player settings page) 
     
    90101 
    91102Go to the new podPress menu and start configuring podPress and your Feed settings. 
    92103 
     104= use a different skin for the XSPF player = 
     105Since 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. 
     106But 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). 
     107The "[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.) 
    93108 
    94109== Frequently Asked Questions == 
    95110 
     
    104119 
    105120In 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. 
    106121 
     122 
    107123== Screenshots == 
    108124 
    1091251. Write a page and at the end of your Post add your mp3 filename or full URL.