コード例 #1
0
function powerpress_admin_init()
{
    global $wp_rewrite;
    add_thickbox();
    // we use the thckbox for some settings
    wp_enqueue_script('jquery');
    wp_enqueue_script('jquery-ui-core');
    // Now including the library at Google
    wp_enqueue_script('jquery-ui-tabs');
    // Powerpress page
    if (isset($_GET['page']) && strstr($_GET['page'], 'powerpress') !== false) {
        //wp_enqueue_script('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js');
        if (preg_match('/powerpressadmin_(mobile|audio|video)player/', $_GET['page'])) {
            wp_enqueue_style('wp-color-picker');
        }
        if (preg_match('/powerpressadmin_migrate/', $_GET['page'])) {
            wp_enqueue_script('media-upload');
            // For the readjustment of the thickbox only
        }
    }
    if (function_exists('powerpress_admin_jquery_init')) {
        powerpress_admin_jquery_init();
    }
    if (!current_user_can(POWERPRESS_CAPABILITY_MANAGE_OPTIONS)) {
        powerpress_page_message_add_error(__('You do not have sufficient permission to manage options.', 'powerpress'));
        return;
    }
    // Check for other podcasting plugin
    if (defined('PODPRESS_VERSION') || isset($GLOBALS['podcasting_player_id']) || isset($GLOBALS['podcast_channel_active']) || defined('PODCASTING_VERSION')) {
        powerpress_page_message_add_error(__('Another podcasting plugin has been detected, PowerPress is currently disabled.', 'powerpress'));
    }
    global $wp_version;
    $VersionDiff = version_compare($wp_version, 3.6);
    if ($VersionDiff < 0) {
        powerpress_page_message_add_error(__('Blubrry PowerPress requires Wordpress version 3.6 or greater.', 'powerpress'));
    }
    // Check for incompatible plugins:
    if (isset($GLOBALS['objWPOSFLV']) && is_object($GLOBALS['objWPOSFLV'])) {
        powerpress_page_message_add_error(__('The WP OS FLV plugin is not compatible with Blubrry PowerPress.', 'powerpress'));
    }
    // Security step, we must be in a powerpress/* page...
    if (isset($_GET['page']) && strstr($_GET['page'], 'powerpress/') !== false) {
        // Save settings here
        if (isset($_POST['Feed']) || isset($_POST['General'])) {
            check_admin_referer('powerpress-edit');
            $upload_path = false;
            $upload_url = false;
            $UploadArray = wp_upload_dir();
            if (false === $UploadArray['error']) {
                $upload_path = $UploadArray['basedir'] . '/powerpress/';
                $upload_url = $UploadArray['baseurl'] . '/powerpress/';
            }
            // Save the posted value in the database
            $Feed = isset($_POST['Feed']) ? $_POST['Feed'] : false;
            $General = isset($_POST['General']) ? $_POST['General'] : false;
            $FeedSlug = isset($_POST['feed_slug']) ? esc_attr($_POST['feed_slug']) : false;
            $Category = isset($_POST['cat']) ? intval($_POST['cat']) : false;
            $term_taxonomy_id = isset($_POST['ttid']) ? intval($_POST['ttid']) : false;
            $podcast_post_type = isset($_POST['podcast_post_type']) ? esc_attr($_POST['podcast_post_type']) : false;
            // New iTunes image
            if (!empty($_POST['itunes_image_checkbox'])) {
                $filename = str_replace(" ", "_", basename($_FILES['itunes_image_file']['name']));
                $temp = $_FILES['itunes_image_file']['tmp_name'];
                if (file_exists($upload_path . $filename)) {
                    $filenameParts = pathinfo($filename);
                    if (!empty($filenameParts['extension'])) {
                        do {
                            $filename_no_ext = substr($filenameParts['basename'], 0, (strlen($filenameParts['extension']) + 1) * -1);
                            $filename = sprintf('%s-%03d.%s', $filename_no_ext, rand(0, 999), $filenameParts['extension']);
                        } while (file_exists($upload_path . $filename));
                    }
                }
                // Check the image...
                if (file_exists($temp)) {
                    $ImageData = @getimagesize($temp);
                    $rgb = true;
                    // We assume it is RGB
                    if (defined('POWERPRESS_IMAGICK') && POWERPRESS_IMAGICK) {
                        if ($ImageData[2] == IMAGETYPE_PNG && extension_loaded('imagick')) {
                            $image = new Imagick($temp);
                            if ($image->getImageColorspace() != imagick::COLORSPACE_RGB) {
                                $rgb = false;
                            }
                        }
                    }
                    if (empty($ImageData['channels'])) {
                        $ImageData['channels'] = 3;
                    }
                    // Assume it's ok if we cannot detect it.
                    if ($ImageData) {
                        if ($rgb && ($ImageData[2] == IMAGETYPE_JPEG || $ImageData[2] == IMAGETYPE_PNG) && $ImageData[0] == $ImageData[1] && $ImageData[0] >= 1400 && $ImageData[0] <= 3000 && $ImageData['channels'] == 3) {
                            if (!move_uploaded_file($temp, $upload_path . $filename)) {
                                powerpress_page_message_add_error(__('Error saving iTunes image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('An error occurred saving the iTunes image on the server.', 'powerprss') . ' ' . sprintf(__('Local folder: %s; File name: %s', 'powerpress'), $upload_path, $filename));
                            } else {
                                $Feed['itunes_image'] = $upload_url . $filename;
                                if (!empty($_POST['itunes_image_checkbox_as_rss'])) {
                                    $Feed['rss2_image'] = $upload_url . $filename;
                                }
                                //if( $ImageData[0] < 1400 || $ImageData[1] < 1400 )
                                //{
                                //	powerpress_page_message_add_error( __('iTunes image warning', 'powerpress')  .':	'. htmlspecialchars($_FILES['itunes_image_file']['name']) . __(' is', 'powerpress') .' '. $ImageData[0] .' x '.$ImageData[0]   .' - '. __('Image must be square 1400 x 1400 pixels or larger.', 'powerprss') );
                                //}
                            }
                        } else {
                            if ($ImageData['channels'] != 3 || $rgb == false) {
                                powerpress_page_message_add_error(__('Invalid iTunes image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image must be in RGB color space (CMYK is not supported).', 'powerprss'));
                            } else {
                                if ($ImageData[0] != $ImageData[1]) {
                                    powerpress_page_message_add_error(__('Invalid iTunes image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image must be square, 1400 x 1400 is the required minimum size.', 'powerprss'));
                                } else {
                                    if ($ImageData[0] != $ImageData[1] || $ImageData[0] < 1400) {
                                        powerpress_page_message_add_error(__('Invalid iTunes image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image is too small, 1400 x 1400 is the required minimum size.', 'powerprss'));
                                    } else {
                                        if ($ImageData[0] != $ImageData[1] || $ImageData[0] > 3000) {
                                            powerpress_page_message_add_error(__('Invalid iTunes image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('Image is too large, 3000 x 3000 is the maximum size allowed.', 'powerprss'));
                                        } else {
                                            powerpress_page_message_add_error(__('Invalid iTunes image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']));
                                        }
                                    }
                                }
                            }
                        }
                    } else {
                        powerpress_page_message_add_error(__('Invalid iTunes image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']));
                    }
                }
            }
            // New RSS2 image
            if (!empty($_POST['rss2_image_checkbox'])) {
                $filename = str_replace(" ", "_", basename($_FILES['rss2_image_file']['name']));
                $temp = $_FILES['rss2_image_file']['tmp_name'];
                if (file_exists($upload_path . $filename)) {
                    $filenameParts = pathinfo($filename);
                    if (!empty($filenameParts['basename']) && !empty($filenameParts['extension'])) {
                        do {
                            $filename_no_ext = substr($filenameParts['basename'], 0, (strlen($filenameParts['extension']) + 1) * -1);
                            $filename = sprintf('%s-%03d.%s', $filename_no_ext, rand(0, 999), $filenameParts['extension']);
                        } while (file_exists($upload_path . $filename));
                    }
                }
                if (@getimagesize($temp)) {
                    if (!move_uploaded_file($temp, $upload_path . $filename)) {
                        powerpress_page_message_add_error(__('Error saving RSS image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('An error occurred saving the RSS image on the server.', 'powerprss') . ' ' . sprintf(__('Local folder: %s; File name: %s', 'powerpress'), $upload_path, $filename));
                    } else {
                        $Feed['rss2_image'] = $upload_url . $filename;
                    }
                } else {
                    powerpress_page_message_add_error(__('Invalid RSS image', 'powerpress') . ': ' . htmlspecialchars($_FILES['rss2_image_file']['name']));
                }
            }
            // New mp3 coverart image
            if (!empty($_POST['coverart_image_checkbox'])) {
                $filename = str_replace(" ", "_", basename($_FILES['coverart_image_file']['name']));
                $temp = $_FILES['coverart_image_file']['tmp_name'];
                if (file_exists($upload_path . $filename)) {
                    $filenameParts = pathinfo($filename);
                    do {
                        $filename_no_ext = substr($filenameParts['basename'], 0, (strlen($filenameParts['extension']) + 1) * -1);
                        $filename = sprintf('%s-%03d.%s', $filename_no_ext, rand(0, 999), $filenameParts['extension']);
                    } while (file_exists($upload_path . $filename));
                }
                if (@getimagesize($temp)) {
                    if (!move_uploaded_file($temp, $upload_path . $filename)) {
                        powerpress_page_message_add_error(__('Error saving Coverart image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('An error occurred saving the coverart image on the server.', 'powerprss') . ' ' . sprintf(__('Local folder: %s; File name: %s', 'powerpress'), $upload_path, $filename));
                    } else {
                        $_POST['TagValues']['tag_coverart'] = $upload_url . $filename;
                        $General['tag_coverart'] = $upload_url . $filename;
                    }
                } else {
                    powerpress_page_message_add_error(__('Invalid Coverat image', 'powerpress') . ': ' . htmlspecialchars($_FILES['coverart_image_file']['name']));
                }
            }
            // New poster image
            if (!empty($_POST['poster_image_checkbox'])) {
                $filename = str_replace(" ", "_", basename($_FILES['poster_image_file']['name']));
                $temp = $_FILES['poster_image_file']['tmp_name'];
                if (file_exists($upload_path . $filename)) {
                    $filenameParts = pathinfo($filename);
                    do {
                        $filename_no_ext = substr($filenameParts['basename'], 0, (strlen($filenameParts['extension']) + 1) * -1);
                        $filename = sprintf('%s-%03d.%s', $filename_no_ext, rand(0, 999), $filenameParts['extension']);
                    } while (file_exists($upload_path . $filename));
                }
                if (@getimagesize($temp)) {
                    if (!move_uploaded_file($temp, $upload_path . $filename)) {
                        powerpress_page_message_add_error(__('Error saving Poster image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('An error occurred saving the poster image on the server.', 'powerprss') . ' ' . sprintf(__('Local folder: %s; File name: %s', 'powerpress'), $upload_path, $filename));
                    } else {
                        $General['poster_image'] = $upload_url . $filename;
                    }
                } else {
                    powerpress_page_message_add_error(__('Invalid poster image', 'powerpress') . ': ' . htmlspecialchars($_FILES['poster_image_file']['name']));
                }
            }
            // New audio play icon image
            if (!empty($_POST['audio_custom_play_button_checkbox'])) {
                $filename = str_replace(" ", "_", basename($_FILES['audio_custom_play_button_file']['name']));
                $temp = $_FILES['audio_custom_play_button_file']['tmp_name'];
                if (file_exists($upload_path . $filename)) {
                    $filenameParts = pathinfo($filename);
                    do {
                        $filename_no_ext = substr($filenameParts['basename'], 0, (strlen($filenameParts['extension']) + 1) * -1);
                        $filename = sprintf('%s-%03d.%s', $filename_no_ext, rand(0, 999), $filenameParts['extension']);
                    } while (file_exists($upload_path . $filename));
                }
                if (@getimagesize($temp)) {
                    if (!move_uploaded_file($temp, $upload_path . $filename)) {
                        powerpress_page_message_add_error(__('Error saving Play image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('An error occurred saving the play image on the server.', 'powerprss') . ' ' . sprintf(__('Local folder: %s; File name: %s', 'powerpress'), $upload_path, $filename));
                    } else {
                        $General['audio_custom_play_button'] = $upload_url . $filename;
                    }
                } else {
                    powerpress_page_message_add_error(__('Invalid play icon image', 'powerpress') . ': ' . htmlspecialchars($_FILES['audio_custom_play_button_file']['name']));
                }
            }
            // New video play icon image
            if (!empty($_POST['video_custom_play_button_checkbox'])) {
                $filename = str_replace(" ", "_", basename($_FILES['video_custom_play_button_file']['name']));
                $temp = $_FILES['video_custom_play_button_file']['tmp_name'];
                if (file_exists($upload_path . $filename)) {
                    $filenameParts = pathinfo($filename);
                    do {
                        $filename_no_ext = substr($filenameParts['basename'], 0, (strlen($filenameParts['extension']) + 1) * -1);
                        $filename = sprintf('%s-%03d.%s', $filename_no_ext, rand(0, 999), $filenameParts['extension']);
                    } while (file_exists($upload_path . $filename));
                }
                $imageInfo = @getimagesize($temp);
                if ($imageInfo && $imageInfo[0] == $imageInfo[1] && $imageInfo[0] == 60) {
                    if (!move_uploaded_file($temp, $upload_path . $filename)) {
                        powerpress_page_message_add_error(__('Error saving Video Play icon image', 'powerpress') . ':	' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('An error occurred saving the Video Play icon image on the server.', 'powerprss') . ' ' . sprintf(__('Local folder: %s; File name: %s', 'powerpress'), $upload_path, $filename));
                    } else {
                        $General['video_custom_play_button'] = $upload_url . $filename;
                    }
                } else {
                    if ($imageInfo) {
                        powerpress_page_message_add_error(__('Invalid play icon image size', 'powerpress') . ': ' . htmlspecialchars($_FILES['video_custom_play_button_file']['name']));
                    } else {
                        powerpress_page_message_add_error(__('Invalid play icon image', 'powerpress') . ': ' . htmlspecialchars($_FILES['video_custom_play_button_file']['name']));
                    }
                }
            }
            if (isset($_POST['UpdateDisablePlayer'])) {
                $player_feed_slug = $_POST['UpdateDisablePlayer'];
                $General['disable_player'] = array();
                $GeneralPrev = get_option('powerpress_general');
                if (isset($GeneralPrev['disable_player'])) {
                    $General['disable_player'] = $GeneralPrev['disable_player'];
                }
                if (isset($_POST['DisablePlayerFor'])) {
                    $General['disable_player'][$player_feed_slug] = 1;
                } else {
                    unset($General['disable_player'][$player_feed_slug]);
                }
            }
            // Check to see if we need to update the feed title
            if ($FeedSlug && !$podcast_post_type) {
                $GeneralSettingsTemp = powerpress_get_settings('powerpress_general', false);
                if (!isset($GeneralSettingsTemp['custom_feeds'][$FeedSlug]) || $GeneralSettingsTemp['custom_feeds'][$FeedSlug] != $Feed['title']) {
                    if (!$General) {
                        $General = array();
                    }
                    if (!empty($GeneralSettingsTemp['custom_feeds'])) {
                        $General['custom_feeds'] = $GeneralSettingsTemp['custom_feeds'];
                    } else {
                        $General['custom_feeds'] = array();
                    }
                    $General['custom_feeds'][$FeedSlug] = $Feed['title'];
                }
            }
            // Update the settings in the database:
            if ($General) {
                if (!empty($_POST['action']) && $_POST['action'] == 'powerpress-save-settings') {
                    if (!isset($General['display_player_excerpt'])) {
                        // If we are modifying appearance settings but this option was not checked...
                        $General['display_player_excerpt'] = 0;
                    }
                    // Set it to zero.
                    //if( !isset($General['display_player_disable_mobile']) )
                    //	$General['display_player_disable_mobile'] = 0;
                    $General['disable_dashboard_stats'] = 0;
                    if (!empty($_POST['DisableStatsInDashboard'])) {
                        $General['disable_dashboard_stats'] = 1;
                    }
                    if (!isset($General['disable_dashboard_news'])) {
                        $General['disable_dashboard_news'] = 0;
                    }
                    if (!isset($General['episode_box_mode'])) {
                        // Default not set, 1 = no duration/file size, 2 = yes duration/file size (default if not set)
                        $General['episode_box_mode'] = 1;
                    }
                    // 1 = no duration/file size (unchecked)
                    if (!isset($General['episode_box_embed'])) {
                        $General['episode_box_embed'] = 0;
                    }
                    if (!isset($General['embed_replace_player'])) {
                        $General['embed_replace_player'] = 0;
                    }
                    if (!isset($General['episode_box_no_player'])) {
                        $General['episode_box_no_player'] = 0;
                    }
                    if (!isset($General['episode_box_no_links'])) {
                        $General['episode_box_no_links'] = 0;
                    }
                    if (!isset($General['episode_box_no_player_and_links'])) {
                        $General['episode_box_no_player_and_links'] = 0;
                    }
                    if (!isset($General['episode_box_cover_image'])) {
                        $General['episode_box_cover_image'] = 0;
                    }
                    if (!isset($General['episode_box_player_size'])) {
                        $General['episode_box_player_size'] = 0;
                    }
                    if (!isset($General['episode_box_subtitle'])) {
                        $General['episode_box_subtitle'] = 0;
                    }
                    if (!isset($General['episode_box_summary'])) {
                        $General['episode_box_summary'] = 0;
                    }
                    if (!isset($General['episode_box_author'])) {
                        $General['episode_box_author'] = 0;
                    }
                    if (!isset($General['episode_box_explicit'])) {
                        $General['episode_box_explicit'] = 0;
                    }
                    if (!isset($General['episode_box_closed_captioned'])) {
                        $General['episode_box_closed_captioned'] = 0;
                    }
                    if (!isset($General['episode_box_itunes_image'])) {
                        $General['episode_box_itunes_image'] = 0;
                    }
                    if (!isset($General['episode_box_order'])) {
                        $General['episode_box_order'] = 0;
                    }
                    if (!isset($General['episode_box_feature_in_itunes'])) {
                        $General['episode_box_feature_in_itunes'] = 0;
                    } else {
                        $General['episode_box_order'] = 0;
                    }
                    if (!isset($General['allow_feed_comments'])) {
                        $General['allow_feed_comments'] = 0;
                    }
                    if (!isset($General['feed_links'])) {
                        $General['feed_links'] = 0;
                    }
                    // Advanced Features
                    if (!isset($General['player_options'])) {
                        $General['player_options'] = 0;
                    }
                    if (!isset($General['cat_casting'])) {
                        $General['cat_casting'] = 0;
                    }
                    if (!isset($General['channels'])) {
                        $General['channels'] = 0;
                    }
                    if (!isset($General['taxonomy_podcasting'])) {
                        $General['taxonomy_podcasting'] = 0;
                    }
                    if (!isset($General['posttype_podcasting'])) {
                        $General['posttype_podcasting'] = 0;
                    }
                    if (!isset($General['playlist_player'])) {
                        $General['playlist_player'] = 0;
                    }
                    if (!isset($General['metamarks'])) {
                        $General['metamarks'] = 0;
                    }
                    // Media Presentation Settings
                    $PlayerSettings = array();
                    if (!empty($_POST['PlayerSettings'])) {
                        $PlayerSettings = $_POST['PlayerSettings'];
                    }
                    if (empty($PlayerSettings['display_pinw'])) {
                        $PlayerSettings['display_pinw'] = 0;
                    }
                    if (empty($PlayerSettings['display_media_player'])) {
                        $PlayerSettings['display_media_player'] = 0;
                    }
                    if (empty($PlayerSettings['display_pinw'])) {
                        $PlayerSettings['display_pinw'] = 0;
                    }
                    if (empty($PlayerSettings['display_media_player'])) {
                        $PlayerSettings['display_media_player'] = 0;
                    }
                    $General['player_function'] = abs($PlayerSettings['display_pinw'] - $PlayerSettings['display_media_player']);
                    $General['podcast_link'] = 0;
                    if (!empty($PlayerSettings['display_download'])) {
                        $General['podcast_link'] = 1;
                        if (!empty($PlayerSettings['display_download_size'])) {
                            $General['podcast_link'] = 2;
                            if (!empty($PlayerSettings['display_download_duration'])) {
                                $General['podcast_link'] = 3;
                            }
                        }
                    }
                    if (!isset($General['podcast_embed'])) {
                        $General['podcast_embed'] = 0;
                    }
                    if (!isset($General['podcast_embed_in_feed'])) {
                        $General['podcast_embed_in_feed'] = 0;
                    }
                    if (!isset($General['m4a'])) {
                        $General['m4a'] = '';
                    }
                    if (!isset($General['new_window_nofactor'])) {
                        $General['new_window_nofactor'] = '';
                    }
                    if (!isset($General['subscribe_links'])) {
                        $General['subscribe_links'] = false;
                    }
                    if (!isset($General['subscribe_feature_email'])) {
                        $General['subscribe_feature_email'] = false;
                    }
                } else {
                    if (!empty($_POST['action']) && $_POST['action'] == 'powerpress-save-defaults') {
                        if (!isset($General['display_player_excerpt'])) {
                            // If we are modifying appearance settings but this option was not checked...
                            $General['display_player_excerpt'] = 0;
                        }
                        // Set it to zero.
                        $General['disable_dashboard_stats'] = 0;
                        if (!empty($_POST['DisableStatsInDashboard'])) {
                            $General['disable_dashboard_stats'] = 1;
                        }
                        // Advanced Mode options
                        if (!isset($General['cat_casting'])) {
                            $General['cat_casting'] = 0;
                        }
                        if (!isset($General['channels'])) {
                            $General['channels'] = 0;
                        }
                        if (!isset($General['taxonomy_podcasting'])) {
                            $General['taxonomy_podcasting'] = 0;
                        }
                        if (!isset($General['posttype_podcasting'])) {
                            $General['posttype_podcasting'] = 0;
                        }
                        if (!isset($General['metamarks'])) {
                            $General['metamarks'] = 0;
                        }
                    }
                }
                if (!empty($_POST['action']) && $_POST['action'] == 'powerpress-save-search') {
                    //$PowerPressSearch = $_POST['PowerPressSearch'];
                    $PowerPressSearchToggle = $_POST['PowerPressSearchToggle'];
                    if (empty($PowerPressSearchToggle['seo_feed_title'])) {
                        $General['seo_feed_title'] = 0;
                    }
                }
                if (!empty($_POST['action']) && $_POST['action'] == 'powerpress-save-tags') {
                    if (!isset($General['write_tags'])) {
                        // If we are modifying appearance settings but this option was not checked...
                        $General['write_tags'] = 0;
                    }
                    // Set it to zero.
                    $TagValues = $_POST['TagValues'];
                    $GeneralPosted = $_POST['General'];
                    if (!empty($_POST['PowerPressTrackNumber'])) {
                        update_option('powerpress_track_number', $_POST['PowerPressTrackNumber']);
                    }
                    // Set all the tag values...
                    while (list($key, $value) = each($GeneralPosted)) {
                        if (substr($key, 0, 4) == 'tag_') {
                            // Special case, we are uploading new coverart image
                            if (!empty($_POST['coverart_image_checkbox']) && $key == 'tag_coverart') {
                                continue;
                            }
                            // Specail case, the track is saved in a separate column in the database.
                            if ($key == 'tag_track') {
                                continue;
                            }
                            if (!empty($value)) {
                                $General[$key] = $TagValues[$key];
                            } else {
                                $General[$key] = '';
                            }
                        }
                    }
                    if (!empty($General['tag_coverart'])) {
                        $GeneralSettingsTemp = powerpress_get_settings('powerpress_general', false);
                        if (!empty($GeneralSettingsTemp['blubrry_hosting']) && $GeneralSettingsTemp['blubrry_hosting'] !== 'false') {
                            $json_data = false;
                            $api_url_array = powerpress_get_api_array();
                            while (list($index, $api_url) = each($api_url_array)) {
                                $req_url = sprintf('%s/media/%s/coverart.json?url=%s', rtrim($api_url, '/'), $GeneralSettingsTemp['blubrry_program_keyword'], urlencode($TagValues['tag_coverart']));
                                $req_url .= defined('POWERPRESS_BLUBRRY_API_QSA') ? '&' . POWERPRESS_BLUBRRY_API_QSA : '';
                                $json_data = powerpress_remote_fopen($req_url, $GeneralSettingsTemp['blubrry_auth']);
                                if ($json_data != false) {
                                    break;
                                }
                            }
                            // Lets try to cache the image onto Blubrry's Server...
                            $results = powerpress_json_decode($json_data);
                            if (is_array($results) && !isset($results['error'])) {
                                // Good!
                                powerpress_page_message_add_notice(__('Coverart image updated successfully.', 'powerpress'));
                            } else {
                                if (isset($results['error'])) {
                                    $error = __('Blubrry Hosting Error (updating coverart)', 'powerpress') . ': ' . $results['error'];
                                    powerpress_page_message_add_error($error);
                                } else {
                                    $error = __('An error occurred updating the coverart with your Blubrry Services Account.', 'powerpress');
                                    powerpress_page_message_add_error($error);
                                }
                            }
                        } else {
                            powerpress_page_message_add_error(__('Coverart Image was not uploaded to your Blubrry Services Account. It will NOT be added to your mp3s.', 'powerpress'));
                        }
                    }
                }
                if (!empty($_POST['action']) && $_POST['action'] == 'powerpress-save-videocommon') {
                    if (!isset($General['poster_play_image'])) {
                        $General['poster_play_image'] = 0;
                    }
                    if (!isset($General['poster_image_audio'])) {
                        $General['poster_image_audio'] = 0;
                    }
                }
                // Wordpress adds slashes to everything, but since we're storing everything serialized, lets remove them...
                $General = powerpress_stripslashes($General);
                powerpress_save_settings($General);
            }
            if ($Feed) {
                if (!isset($_POST['ProtectContent']) && isset($Feed['premium'])) {
                    $Feed['premium'] = false;
                }
                if (!isset($Feed['enhance_itunes_summary'])) {
                    $Feed['enhance_itunes_summary'] = false;
                }
                if (!isset($Feed['itunes_author_post'])) {
                    $Feed['itunes_author_post'] = false;
                }
                if (!isset($Feed['itunes_block'])) {
                    $Feed['itunes_block'] = false;
                }
                if (!isset($Feed['itunes_complete'])) {
                    $Feed['itunes_complete'] = false;
                }
                if (!isset($Feed['maximize_feed'])) {
                    $Feed['maximize_feed'] = false;
                }
                if (!isset($Feed['episode_itunes_image'])) {
                    $Feed['episode_itunes_image'] = false;
                }
                $Feed = powerpress_stripslashes($Feed);
                if ($Category) {
                    powerpress_save_settings($Feed, 'powerpress_cat_feed_' . $Category);
                } else {
                    if ($term_taxonomy_id) {
                        powerpress_save_settings($Feed, 'powerpress_taxonomy_' . $term_taxonomy_id);
                    } else {
                        if ($podcast_post_type) {
                            $PostTypeSettings = array();
                            $PostTypeSettings[$FeedSlug] = $Feed;
                            powerpress_save_settings($PostTypeSettings, 'powerpress_posttype_' . $podcast_post_type);
                            powerpress_rebuild_posttype_podcasting();
                        } else {
                            if ($FeedSlug == false && get_option('powerpress_feed_podcast')) {
                                // If the settings were moved to the podcast channels feature...
                                powerpress_save_settings($Feed, 'powerpress_feed_podcast');
                            }
                            // save a copy here if that is the case.
                            powerpress_save_settings($Feed, 'powerpress_feed' . ($FeedSlug ? '_' . $FeedSlug : ''));
                        }
                    }
                }
            }
            if (isset($_POST['EpisodeBoxBGColor'])) {
                $GeneralSettingsTemp = get_option('powerpress_general');
                $SaveEpisdoeBoxBGColor['episode_box_background_color'] = array();
                if (isset($GeneralSettingsTemp['episode_box_background_color'])) {
                    $SaveEpisdoeBoxBGColor['episode_box_background_color'] = $GeneralSettingsTemp['episode_box_background_color'];
                }
                //  copy previous settings
                list($feed_slug_temp, $background_color) = each($_POST['EpisodeBoxBGColor']);
                $SaveEpisdoeBoxBGColor['episode_box_background_color'][$feed_slug_temp] = $background_color;
                powerpress_save_settings($SaveEpisdoeBoxBGColor);
            }
            // Anytime settings are saved lets flush the rewrite rules
            $wp_rewrite->flush_rules();
            // Settings saved successfully
            if (!empty($_POST['action'])) {
                switch ($_POST['action']) {
                    case 'powerpress-save-settings':
                    case 'powerpress-save-defaults':
                        powerpress_page_message_add_notice(__('Blubrry PowerPress settings saved.', 'powerpress'));
                        break;
                    case 'powerpress-save-channel':
                        powerpress_page_message_add_notice(__('Blubrry PowerPress Channel settings saved.', 'powerpress'));
                        break;
                    case 'powerpress-save-category':
                        powerpress_page_message_add_notice(__('Blubrry PowerPress Category Podcasting  settings saved.', 'powerpress'));
                        break;
                    case 'powerpress-save-ttid':
                        powerpress_page_message_add_notice(__('Blubrry PowerPress Taxonomy Podcasting settings saved.', 'powerpress'));
                        break;
                    case 'powerpress-save-post_type':
                        powerpress_page_message_add_notice(__('Blubrry PowerPress Post Type Podcasting settings saved.', 'powerpress'));
                        break;
                    case 'powerpress-save-tags':
                        $General = get_option('powerpress_general');
                        if (empty($General['blubrry_hosting']) || $General['blubrry_hosting'] === 'false') {
                            powerpress_page_message_add_notice(__('ATTENTION: You must configure your Blubrry Services in the Blubrry PowerPress &gt; Basic Settings page in order to utilize this feature.', 'powerpress'));
                        } else {
                            powerpress_page_message_add_notice(__('Blubrry PowerPress MP3 Tag settings saved.', 'powerpress'));
                        }
                        break;
                    default:
                        powerpress_page_message_add_notice(__('Blubrry PowerPress settings saved.', 'powerpress'));
                        break;
                }
            }
        }
        // Handle POST actions...
        if (isset($_POST['action'])) {
            switch ($_POST['action']) {
                case 'powerpress-addfeed':
                    check_admin_referer('powerpress-add-feed');
                    $Settings = get_option('powerpress_general');
                    $key = sanitize_title($_POST['feed_slug']);
                    $value = $_POST['feed_name'];
                    $value = powerpress_stripslashes($value);
                    /*
                    					if( isset($Settings['custom_feeds'][ $key ]) && empty($_POST['overwrite']) )
                    					{
                    						powerpress_page_message_add_error( sprintf(__('Feed slug "%s" already exists.'), $key) );
                    					} else */
                    if ($key == '') {
                        powerpress_page_message_add_error(sprintf(__('Feed slug "%s" is not valid.', 'powerpress'), esc_html($_POST['feed_slug'])));
                    } else {
                        if (in_array($key, $wp_rewrite->feeds) && !isset($Settings['custom_feeds'][$key])) {
                            powerpress_page_message_add_error(sprintf(__('Feed slug "%s" is not available.', 'powerpress'), esc_html($key)));
                        } else {
                            $Settings['custom_feeds'][$key] = $value;
                            powerpress_save_settings($Settings);
                            add_feed($key, 'powerpress_do_podcast_feed');
                            // Before we flush the rewrite rules we need to add the new custom feed...
                            $wp_rewrite->flush_rules();
                            powerpress_page_message_add_notice(sprintf(__('Podcast Feed "%s" added, please configure your new feed now.', 'powerpress'), esc_html($value)));
                            $_GET['action'] = 'powerpress-editfeed';
                            $_GET['feed_slug'] = $key;
                        }
                    }
                    break;
                case 'powerpress-addtaxonomyfeed':
                    if (!empty($_POST['cancel'])) {
                        unset($_POST['taxonomy']);
                    }
                    if (empty($_POST['add_podcasting'])) {
                        break;
                    }
                    // We do not handle this situation
                case 'powerpress-addcategoryfeed':
                    check_admin_referer('powerpress-add-taxonomy-feed');
                    $taxonomy_type = isset($_POST['taxonomy']) ? $_POST['taxonomy'] : $_GET['taxonomy'];
                    $term_ID = intval(isset($_POST['term']) ? $_POST['term'] : $_GET['term']);
                    $term_object = get_term($term_ID, $taxonomy_type, OBJECT, 'edit');
                    if (empty($term_ID)) {
                        if ($taxonomy_type == 'category') {
                            powerpress_page_message_add_error(__('You must select a category to continue.', 'powerpress'));
                        } else {
                            powerpress_page_message_add_error(__('You must select a term to continue.', 'powerpress'));
                        }
                    } else {
                        if ($term_object == false) {
                            powerpress_page_message_add_error(__('Error obtaining term information.', 'powerpress'));
                        } else {
                            if ($taxonomy_type == 'category') {
                                $Settings = get_option('powerpress_general');
                                if (empty($Settings['custom_cat_feeds'])) {
                                    $Settings['custom_cat_feeds'] = array();
                                }
                                if (!in_array($term_ID, $Settings['custom_cat_feeds'])) {
                                    $Settings['custom_cat_feeds'][] = $term_ID;
                                    powerpress_save_settings($Settings);
                                }
                                powerpress_page_message_add_notice(__('Please configure your category podcast feed now.', 'powerpress'));
                                $_GET['action'] = 'powerpress-editcategoryfeed';
                                $_GET['cat'] = $term_ID;
                            } else {
                                //$term_info = term_exists($term_ID, $taxonomy_type);
                                $tt_id = $term_object->term_taxonomy_id;
                                if (!$tt_id) {
                                } else {
                                    $Settings = get_option('powerpress_taxonomy_podcasting');
                                    if (!isset($Settings[$tt_id])) {
                                        $Settings[$tt_id] = true;
                                        powerpress_save_settings($Settings, 'powerpress_taxonomy_podcasting');
                                        // add the feed to the taxonomy podcasting list
                                    }
                                    powerpress_page_message_add_notice(__('Please configure your taxonomy podcast now.', 'powerpress'));
                                    $_GET['action'] = 'powerpress-edittaxonomyfeed';
                                    $_GET['term'] = $term_ID;
                                    $_GET['ttid'] = $tt_id;
                                }
                            }
                        }
                    }
                    break;
                case 'powerpress-addposttypefeed':
                    check_admin_referer('powerpress-add-posttype-feed');
                    //die('ok 2');
                    $Settings = get_option('powerpress_general');
                    $feed_slug = sanitize_title($_POST['feed_slug']);
                    $post_type = $_POST['podcast_post_type'];
                    $post_type = powerpress_stripslashes($post_type);
                    $feed_title = $_POST['feed_title'];
                    $feed_title = powerpress_stripslashes($feed_title);
                    /*
                    					if( isset($Settings['custom_feeds'][ $key ]) && empty($_POST['overwrite']) )
                    					{
                    						powerpress_page_message_add_error( sprintf(__('Feed slug "%s" already exists.'), $key) );
                    					} else */
                    if (empty($feed_slug)) {
                        powerpress_page_message_add_error(sprintf(__('Feed slug "%s" is not valid.', 'powerpress'), esc_html($_POST['feed_slug'])));
                    } else {
                        if (empty($post_type)) {
                            powerpress_page_message_add_error(__('Post Type is invalid.', 'powerpress'));
                        } else {
                            $ExistingSettings = powerpress_get_settings('powerpress_posttype_' . $post_type);
                            if (!empty($ExistingSettings[$feed_slug])) {
                                powerpress_page_message_add_error(sprintf(__('Feed slug "%s" already exists.', 'powerpress'), $_POST['feed_slug']));
                            } else {
                                $NewSettings = array();
                                $NewSettings[$feed_slug]['title'] = $feed_title;
                                powerpress_save_settings($NewSettings, 'powerpress_posttype_' . $post_type);
                                add_feed($feed_slug, 'powerpress_do_podcast_feed');
                                // Before we flush the rewrite rules we need to add the new custom feed...
                                $wp_rewrite->flush_rules();
                                powerpress_page_message_add_notice(sprintf(__('Podcast "%s" added, please configure your new podcast.', 'powerpress'), $feed_title));
                                $_GET['action'] = 'powerpress-editposttypefeed';
                                $_GET['feed_slug'] = $feed_slug;
                                $_GET['podcast_post_type'] = $post_type;
                            }
                        }
                    }
                    break;
                case 'powerpress-ping-sites':
                    check_admin_referer('powerpress-ping-sites');
                    require_once POWERPRESS_ABSPATH . '/powerpressadmin-ping-sites.php';
                    powerpressadmin_ping_sites_process();
                    $_GET['action'] = 'powerpress-ping-sites';
                    break;
                case 'powerpress-find-replace':
                    check_admin_referer('powerpress-find-replace');
                    require_once POWERPRESS_ABSPATH . '/powerpressadmin-find-replace.php';
                    powerpressadmin_find_replace_process();
                    $_GET['action'] = 'powerpress-find-replace';
                    break;
                case 'powerpress-importpodpress':
                    check_admin_referer('powerpress-import-podpress');
                    require_once POWERPRESS_ABSPATH . '/powerpressadmin-podpress.php';
                    powerpressadmin_podpress_do_import();
                    $_GET['action'] = 'powerpress-podpress-epiosdes';
                    break;
                case 'powerpress-importmt':
                    check_admin_referer('powerpress-import-mt');
                    require_once POWERPRESS_ABSPATH . '/powerpressadmin-mt.php';
                    powerpressadmin_mt_do_import();
                    $_GET['action'] = 'powerpress-mt-epiosdes';
                    break;
                case 'deletepodpressdata':
                    check_admin_referer('powerpress-delete-podpress-data');
                    require_once POWERPRESS_ABSPATH . '/powerpressadmin-podpress.php';
                    powerpressadmin_podpress_delete_data();
                    break;
                case 'powerpress-save-mode':
                    //if( !isset($_POST['General']['advanced_mode']) )
                    //	powerpress_page_message_add_notice( __('You must select a Mode to continue.', 'powerpress') );
                    break;
            }
        }
        // Handle GET actions...
        if (isset($_GET['action'])) {
            switch ($_GET['action']) {
                case 'powerpress-enable-categorypodcasting':
                    check_admin_referer('powerpress-enable-categorypodcasting');
                    $Settings = get_option('powerpress_general');
                    $Settings['cat_casting'] = 1;
                    powerpress_save_settings($Settings);
                    wp_redirect('edit-tags.php?taxonomy=category&message=3');
                    exit;
                    break;
                case 'powerpress-addcategoryfeed':
                    check_admin_referer('powerpress-add-taxonomy-feed');
                    $cat_ID = intval($_GET['cat']);
                    $Settings = get_option('powerpress_general');
                    $category = get_category($cat_ID);
                    if ($category == false) {
                        powerpress_page_message_add_error(__('Error obtaining category information.', 'powerpress'));
                    } else {
                        if (empty($Settings['custom_cat_feeds']) || !is_array($Settings['custom_cat_feeds'])) {
                            $Settings['custom_cat_feeds'] = array();
                        }
                        if (!in_array($cat_ID, $Settings['custom_cat_feeds'])) {
                            $Settings['custom_cat_feeds'][] = $cat_ID;
                            powerpress_save_settings($Settings);
                        }
                        powerpress_page_message_add_notice(__('Please configure your category podcast feed now.', 'powerpress'));
                        $_GET['action'] = 'powerpress-editcategoryfeed';
                        $_GET['cat'] = $cat_ID;
                    }
                    break;
                case 'powerpress-delete-feed':
                    $delete_slug = $_GET['feed_slug'];
                    $force_deletion = !empty($_GET['force']);
                    check_admin_referer('powerpress-delete-feed-' . $delete_slug);
                    $Episodes = powerpress_admin_episodes_per_feed($delete_slug);
                    if (false && $delete_slug == 'podcast' && $force_deletion == false) {
                        powerpress_page_message_add_error(__('Cannot delete default podcast feed.', 'powerpress'));
                    } else {
                        if ($delete_slug != 'podcast' && $Episodes > 0 && $force_deletion == false) {
                            powerpress_page_message_add_error(sprintf(__('Cannot delete feed. Feed contains %d episode(s).', 'powerpress'), $Episodes));
                        } else {
                            $Settings = get_option('powerpress_general');
                            unset($Settings['custom_feeds'][$delete_slug]);
                            powerpress_save_settings($Settings);
                            // Delete the feed from the general settings
                            delete_option('powerpress_feed_' . $delete_slug);
                            // Delete the actual feed settings
                            // Now we need to update the rewrite cso the cached rules are up to date
                            if (in_array($delete_slug, $wp_rewrite->feeds)) {
                                $index = array_search($delete_slug, $wp_rewrite->feeds);
                                if ($index !== false) {
                                    unset($wp_rewrite->feeds[$index]);
                                }
                                // Remove the old feed
                            }
                            // Remove feed function hook
                            $hook = 'do_feed_' . $delete_slug;
                            remove_action($hook, $hook, 10, 1);
                            // This may not be necessary
                            $wp_rewrite->flush_rules();
                            // This is definitely necessary
                            powerpress_page_message_add_notice(__('Feed deleted successfully.', 'powerpress'));
                        }
                    }
                    break;
                case 'powerpress-delete-category-feed':
                    $cat_ID = intval($_GET['cat']);
                    check_admin_referer('powerpress-delete-category-feed-' . $cat_ID);
                    $Settings = get_option('powerpress_general');
                    $key = array_search($cat_ID, $Settings['custom_cat_feeds']);
                    if ($key !== false) {
                        unset($Settings['custom_cat_feeds'][$key]);
                        powerpress_save_settings($Settings);
                        // Delete the feed from the general settings
                    }
                    delete_option('powerpress_cat_feed_' . $cat_ID);
                    // Delete the actual feed settings
                    powerpress_page_message_add_notice(__('Removed podcast settings for category feed successfully.', 'powerpress'));
                    break;
                case 'powerpress-delete-taxonomy-feed':
                    $tt_ID = intval($_GET['ttid']);
                    check_admin_referer('powerpress-delete-taxonomy-feed-' . $tt_ID);
                    $Settings = get_option('powerpress_taxonomy_podcasting');
                    if (!empty($Settings[$tt_ID])) {
                        unset($Settings[$tt_ID]);
                        powerpress_save_settings($Settings, 'powerpress_taxonomy_podcasting');
                        // Delete the feed from the general settings
                    }
                    delete_option('powerpress_taxonomy_' . $tt_ID);
                    // Delete the actual feed settings
                    powerpress_page_message_add_notice(__('Removed podcast settings for term successfully.', 'powerpress'));
                    break;
                case 'powerpress-delete-posttype-feed':
                    // check admin referer prevents xss
                    $feed_slug = esc_attr($_GET['feed_slug']);
                    $post_type = esc_attr($_GET['podcast_post_type']);
                    check_admin_referer('powerpress-delete-posttype-feed-' . $post_type . '_' . $feed_slug);
                    $Settings = get_option('powerpress_posttype_' . $post_type);
                    if (!empty($Settings[$feed_slug])) {
                        unset($Settings[$feed_slug]);
                        update_option('powerpress_posttype_' . $post_type, $Settings);
                        //powerpress_save_settings($Settings, 'powerpress_posttype_'.$post_type); // Delete the feed from the general settings
                    }
                    powerpress_page_message_add_notice(__('Removed podcast settings for post type successfully.', 'powerpress'));
                    break;
                case 'powerpress-podpress-settings':
                    check_admin_referer('powerpress-podpress-settings');
                    // Import settings here..
                    if (powerpress_admin_import_podpress_settings()) {
                        powerpress_page_message_add_notice(__('Podpress settings imported successfully.', 'powerpress'));
                    } else {
                        powerpress_page_message_add_error(__('No Podpress settings found.', 'powerpress'));
                    }
                    break;
                case 'powerpress-podcasting-settings':
                    check_admin_referer('powerpress-podcasting-settings');
                    // Import settings here..
                    if (powerpress_admin_import_podcasting_settings()) {
                        powerpress_page_message_add_notice(__('Settings imported from the plugin "Podcasting" successfully.', 'powerpress'));
                    } else {
                        powerpress_page_message_add_error(__('No settings found for the plugin "Podcasting".', 'powerpress'));
                    }
                    break;
                case 'powerpress-add-caps':
                    check_admin_referer('powerpress-add-caps');
                    $users = array('administrator', 'editor', 'author');
                    // , 'contributor', 'subscriber');
                    while (list($null, $user) = each($users)) {
                        $role = get_role($user);
                        if (!empty($role)) {
                            if (!$role->has_cap('edit_podcast')) {
                                $role->add_cap('edit_podcast');
                            }
                            if ($user == 'administrator' && !$role->has_cap('view_podcast_stats')) {
                                $role->add_cap('view_podcast_stats');
                            }
                        }
                    }
                    $General = array('use_caps' => true);
                    powerpress_save_settings($General);
                    powerpress_page_message_add_notice(__('PowerPress Roles and Capabilities added to WordPress Blog.', 'powerpress'));
                    break;
                case 'powerpress-remove-caps':
                    check_admin_referer('powerpress-remove-caps');
                    $users = array('administrator', 'editor', 'author', 'contributor', 'subscriber');
                    while (list($null, $user) = each($users)) {
                        $role = get_role($user);
                        if (!empty($role)) {
                            if ($role->has_cap('edit_podcast')) {
                                $role->remove_cap('edit_podcast');
                            }
                            if ($role->has_cap('view_podcast_stats')) {
                                $role->remove_cap('view_podcast_stats');
                            }
                        }
                    }
                    $General = array('use_caps' => false);
                    powerpress_save_settings($General);
                    powerpress_page_message_add_notice(__('PowerPress Roles and Capabilities removed from WordPress Blog', 'powerpress'));
                    break;
                case 'powerpress-add-feed-caps':
                    check_admin_referer('powerpress-add-feed-caps');
                    $ps_role = get_role('premium_subscriber');
                    if (empty($ps_role)) {
                        add_role('premium_subscriber', __('Premium Subscriber', 'powerpress'));
                        $ps_role = get_role('premium_subscriber');
                        $ps_role->add_cap('read');
                        $ps_role->add_cap('premium_content');
                    }
                    $users = array('administrator', 'editor', 'author');
                    // , 'contributor', 'subscriber');
                    while (list($null, $user) = each($users)) {
                        $role = get_role($user);
                        if (!empty($role)) {
                            if (!$role->has_cap('premium_content')) {
                                $role->add_cap('premium_content');
                            }
                        }
                    }
                    $General = array('premium_caps' => true);
                    powerpress_save_settings($General);
                    powerpress_page_message_add_notice(__('Podcast Password Protection Capabilities for Custom Channel Feeds added successfully.', 'powerpress'));
                    break;
                case 'powerpress-remove-feed-caps':
                    check_admin_referer('powerpress-remove-feed-caps');
                    $users = array('administrator', 'editor', 'author', 'contributor', 'subscriber', 'premium_subscriber', 'powerpress');
                    while (list($null, $user) = each($users)) {
                        $role = get_role($user);
                        if (!empty($role)) {
                            if ($role->has_cap('premium_content')) {
                                $role->remove_cap('premium_content');
                            }
                        }
                    }
                    remove_role('premium_subscriber');
                    $General = array('premium_caps' => false);
                    powerpress_save_settings($General);
                    powerpress_page_message_add_notice(__('Podcast Password Protection Capabilities for Custom Channel Feeds removed successfully.', 'powerpress'));
                    break;
                case 'powerpress-clear-update_plugins':
                    check_admin_referer('powerpress-clear-update_plugins');
                    delete_option('update_plugins');
                    // OLD method
                    delete_option('_site_transient_update_plugins');
                    // New method
                    powerpress_page_message_add_notice(sprintf(__('Plugins Update Cache cleared successfully. You may now to go the %s page to see the latest plugin versions.', 'powerpress'), '<a href="' . admin_url() . 'plugins.php" title="' . __('Manage Plugins', 'powerpress') . '">' . __('Manage Plugins', 'powerpress') . '</a>'));
                    break;
            }
        }
        if (isset($_REQUEST['action'])) {
            switch ($_REQUEST['action']) {
                case 'powerpress-migrate-media':
                    require_once POWERPRESS_ABSPATH . '/powerpressadmin-migrate.php';
                    powerpress_admin_migrate_request();
                    break;
            }
        }
    }
    // Handle edit from category page
    if (isset($_POST['from_categories'])) {
        wp_redirect('edit-tags.php?taxonomy=category&message=3');
        exit;
    }
    // Hnadle player settings
    require_once POWERPRESS_ABSPATH . '/powerpressadmin-player.php';
    powerpress_admin_players_init();
}
コード例 #2
0
function powerpress_admin_defaults()
{
    $FeedAttribs = array('type' => 'general', 'feed_slug' => '', 'category_id' => 0, 'term_taxonomy_id' => 0, 'term_id' => 0, 'taxonomy_type' => '', 'post_type' => '');
    $General = powerpress_get_settings('powerpress_general');
    $General = powerpress_default_settings($General, 'basic');
    $FeedSettings = powerpress_get_settings('powerpress_feed');
    $FeedSettings = powerpress_default_settings($FeedSettings, 'editfeed');
    // Make sure variables are set
    if (empty($FeedSettings['title'])) {
        $FeedSettings['title'] = '';
    }
    $Step = 0;
    if (!empty($FeedSettings['itunes_cat_1']) && !empty($FeedSettings['email']) && !empty($FeedSettings['itunes_image'])) {
        $Step = 1;
    }
    $episode_total = 0;
    if ($Step == 1) {
        $episode_total = powerpress_admin_episodes_per_feed('podcast');
        if ($episode_total > 0) {
            $Step = 2;
        }
    }
    if ($Step == 2 && !empty($FeedSettings['itunes_url'])) {
        $Step = 3;
    }
    $MultiSiteServiceSettings = false;
    if (is_multisite()) {
        $MultiSiteSettings = get_site_option('powerpress_multisite');
        if (!empty($MultiSiteSettings['services_multisite_only'])) {
            $MultiSiteServiceSettings = true;
        }
    }
    ?>
<script type="text/javascript"><!--


jQuery(document).ready(function($) {
	jQuery('#powerpress_advanced_mode_button').click( function(event) {
		event.preventDefault();
		jQuery('#powerpress_advanced_mode').val('1');
		jQuery(this).closest("form").submit();
	} );
} );
//-->
</script>
<input type="hidden" name="action" value="powerpress-save-defaults" />
<input type="hidden" id="powerpress_advanced_mode" name="General[advanced_mode_2]" value="0" />

<div id="powerpress_admin_header">
<h2><?php 
    echo __('Blubrry PowerPress Settings', 'powerpress');
    ?>
</h2> 
<span class="powerpress-mode"><?php 
    echo __('Simple Mode', 'powerpress');
    ?>
	&nbsp; <a href="<?php 
    echo admin_url("admin.php?page=powerpress/powerpressadmin_basic.php&amp;mode=advanced");
    ?>
" id="powerpress_advanced_mode_button" class="button-primary"><?php 
    echo __('Switch to Advanced Mode', 'powerpress');
    ?>
</a>
</span>
</div>

<?php 
    powerpressadmin_default_steps($FeedSettings, $General, $Step);
    if ($MultiSiteServiceSettings && defined('POWERPRESS_MULTISITE_VERSION')) {
        PowerPressMultiSitePlugin::edit_blubrry_services($General);
    } else {
        powerpressadmin_edit_blubrry_services($General);
    }
    ?>
<h3><?php 
    echo __('Podcast Settings', 'powerpress');
    ?>
</h3>
<table class="form-table">
<tr valign="top">
<th scope="row">
<?php 
    echo __('Program Title', 'powerpress');
    ?>
</th>
<td>
<input type="text" name="Feed[title]" style="width: 60%;"  value="<?php 
    echo esc_attr($FeedSettings['title']);
    ?>
" maxlength="255" />
(<?php 
    echo __('leave blank to use blog title', 'powerpress');
    ?>
)
<p><?php 
    echo __('Blog title:', 'powerpress') . ' ' . get_bloginfo_rss('name');
    ?>
</p>
</td>
</tr>
</table>
<?php 
    if ($Step > 1) {
        // Only display if we have episdoes in the feed!
        powerpressadmin_edit_itunes_general($FeedSettings, $General, $FeedAttribs);
    }
    // iTunes settings (in simple mode of course)
    powerpressadmin_edit_itunes_feed($FeedSettings, $General, $FeedAttribs);
    powerpressadmin_edit_artwork($FeedSettings, $General);
    powerpressadmin_appearance($General, $FeedSettings);
    powerpressadmin_advanced_options($General);
}
コード例 #3
0
function powerpress_admin_customfeeds()
{
    $General = powerpress_get_settings('powerpress_general');
    ?>
<h2><?php 
    echo __('Custom Podcast Channels', 'powerpress');
    ?>
</h2>
<p>
	<?php 
    echo __('Custom podcast Channels allow you to associate multiple media files and/or formats to one blog post.', 'powerpress');
    ?>
</p>
<p>
	<?php 
    echo sprintf(__('If you are looking to organize episodes by topic, please use %s.', 'powerpress'), '<a href="' . admin_url('admin.php?page=powerpress/powerpressadmin_categoryfeeds.php') . '" title="' . __('Category Podcast Feeds', 'powerpress') . '">' . __('Category Podcast Feeds', 'powerpress') . '</a>');
    ?>
</p>

<style type="text/css">

.column-url {
	width: 40%;
}
.column-name {
	width: 30%;
}
.column-feed-slug {
	width: 15%;
}
.column-episode-count {
	width: 15%;
}
</style>
<div id="col-container">

<div id="col-right">
<table class="widefat fixed" cellspacing="0">
	<thead>
	<tr>
<?php 
    print_column_headers('powerpressadmin_customfeeds');
    ?>
	</tr>
	</thead>

	<tfoot>
	<tr>
<?php 
    print_column_headers('powerpressadmin_customfeeds', false);
    ?>
	</tr>
	</tfoot>
	<tbody>
<?php 
    $Feeds = array('podcast' => __('Podcast', 'powerpress'));
    if (isset($General['custom_feeds']['podcast'])) {
        $Feeds = $General['custom_feeds'];
    } else {
        if (is_array($General['custom_feeds'])) {
            $Feeds += $General['custom_feeds'];
        }
    }
    asort($Feeds, SORT_STRING);
    // Sort feeds
    $count = 0;
    while (list($feed_slug, $feed_title) = each($Feeds)) {
        $feed_slug = esc_attr($feed_slug);
        // Precaution
        $episode_total = powerpress_admin_episodes_per_feed($feed_slug);
        $columns = powerpress_admin_customfeeds_columns();
        $hidden = array();
        if ($feed_slug == 'podcast') {
            $feed_title = __('Podcast', 'powerpress');
        }
        if ($count % 2 == 0) {
            echo '<tr valign="middle" class="alternate">';
        } else {
            echo '<tr valign="middle">';
        }
        foreach ($columns as $column_name => $column_display_name) {
            $class = "class=\"column-{$column_name}\"";
            $edit_link = admin_url('admin.php?page=powerpress/powerpressadmin_customfeeds.php&amp;action=powerpress-editfeed&amp;feed_slug=') . $feed_slug;
            $url = get_feed_link($feed_slug);
            $short_url = str_replace('http://', '', $url);
            $short_url = str_replace('www.', '', $short_url);
            //if ('/' == substr($short_url, -1))
            //	$short_url = substr($short_url, 0, -1);
            if (strlen($short_url) > 35) {
                $short_url = substr($short_url, 0, 32) . '...';
            }
            //$short_url = '';
            switch ($column_name) {
                case 'feed-slug':
                    echo "<td {$class}>{$feed_slug}";
                    echo "</td>";
                    break;
                case 'name':
                    echo '<td ' . $class . '><strong><a class="row-title" href="' . $edit_link . '" title="' . esc_attr(sprintf(__('Edit "%s"', 'powerpress'), $feed_title)) . '">' . esc_html($feed_title) . '</a></strong>' . ($feed_slug == 'podcast' ? ' (' . __('default channel', 'powerpress') . ')' : '') . '<br />';
                    $actions = array();
                    $actions['edit'] = '<a href="' . $edit_link . '">' . __('Edit', 'powerpress') . '</a>';
                    $actions['delete'] = "<a class='submitdelete' href='" . admin_url() . wp_nonce_url("admin.php?page=powerpress/powerpressadmin_customfeeds.php&amp;action=powerpress-delete-feed&amp;feed_slug={$feed_slug}", 'powerpress-delete-feed-' . $feed_slug) . "' onclick=\"if ( confirm('" . esc_js(sprintf(__("You are about to delete feed '%s'\n  'Cancel' to stop, 'OK' to delete.", 'powerpress'), esc_attr($feed_title))) . "') ) { return true;}return false;\">" . __('Delete', 'powerpress') . "</a>";
                    if (!isset($General['custom_feeds'][$feed_slug])) {
                        unset($actions['delete']);
                    }
                    $action_count = count($actions);
                    $i = 0;
                    echo '<div class="row-actions">';
                    foreach ($actions as $action => $linkaction) {
                        ++$i;
                        $i == $action_count ? $sep = '' : ($sep = ' | ');
                        echo '<span class="' . $action . '">' . $linkaction . $sep . '</span>';
                    }
                    echo '</div>';
                    echo '</td>';
                    break;
                case 'url':
                    echo "<td {$class}><a href='{$url}' title='" . esc_attr(sprintf(__('Visit %s', 'powerpress'), $feed_title)) . "' target=\"_blank\">" . esc_html($short_url) . "</a>";
                    echo '<div class="row-actions">';
                    if (defined('POWERPRESS_FEEDVALIDATOR_URL')) {
                        echo '<span class="' . $action . '"><a href="' . POWERPRESS_FEEDVALIDATOR_URL . urlencode($url) . '" target="_blank">' . __('Validate Feed', 'powerpress') . '</a></span>';
                    }
                    echo '</div>';
                    echo "</td>";
                    break;
                case 'episode-count':
                    echo "<td {$class}>{$episode_total}";
                    echo "</td>";
                    break;
                default:
                    break;
            }
        }
        echo "\n    </tr>\n";
        $count++;
    }
    ?>
	</tbody>
</table>
<?php 
    if (!isset($General['custom_feeds'][$feed_slug])) {
        ?>
<p><?php 
        echo sprintf(__('Note: The default channel "Podcast" is currently using global PowerPress settings. Click %s to customize the default "Podcast" channel.', 'powerpress'), '<a href="' . admin_url('admin.php?page=powerpress/powerpressadmin_customfeeds.php&amp;action=powerpress-editfeed&amp;feed_slug=podcast') . '">' . __('Edit', 'powerpress') . '</a>');
        ?>
</p>
<?php 
    }
    ?>
</div> <!-- col-right -->

<div id="col-left">
<div class="col-wrap">
<div class="form-wrap">
<h3><?php 
    echo __('Add Podcast Channel', 'powerpress');
    ?>
</h3>
<div id="ajax-response"></div>
<input type="hidden" name="action" value="powerpress-addfeed" />
<?php 
    //wp_original_referer_field(true, 'previous');
    //wp_nonce_field('powerpress-add-feed');
    ?>

<div class="form-field form-required">
	<label for="feed_name"><?php 
    echo __('Feed Name', 'powerpress');
    ?>
</label>
	<input name="feed_name" id="feed_name" type="text" value="" size="40" />
    <p><?php 
    echo __('The name is used for use within the administration area only.', 'powerpress');
    ?>
</p>
</div>

<div class="form-field">
	<label for="feed_slug"><?php 
    echo __('Feed Slug', 'powerpress');
    ?>
</label>
	<input name="feed_slug" id="feed_slug" type="text" value="" size="40" />
    <p><?php 
    echo __('The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.', 'powerpress');
    ?>
</p>
</div>

<p class="submit"><input type="submit" class="button" name="submit" value="<?php 
    echo __('Add Podcast Channel', 'powerpress');
    ?>
" /></p>

</div>
</div>

</div> <!-- col-left -->

</div> <!-- col-container -->

<h3><?php 
    echo __('Example Usage', 'powerpress');
    ?>
</h3>
<p>
	<?php 
    echo __('Example 1: You want to distribute both an mp3 and an ogg version of your podcast. Use the default podcast channel for your mp3 media and create a custom channel for your ogg media.', 'powerpress');
    ?>
</p>
<p>
	<?php 
    echo __('Example 2: You have a video podcast with multiple file formats. Use the default podcast channel for the main media that you want to appear on your blog (e.g. m4v). Create additional channels for the remaining formats (e.g. wmv, mov, mpeg).', 'powerpress');
    ?>
</p>
<p>
	<?php 
    echo __('Example 3: You create two versions of your podcast, a 20 minute summary and a full 2 hour episode. Use the default channel for your 20 minute summary episodes and create a new custom channel for your full length episodes.', 'powerpress');
    ?>
</p>

<?php 
}