Пример #1
0
function powerpress_admin_jquery_init()
{
    $Settings = false;
    // Important, never remove this
    $Settings = get_option('powerpress_general');
    $Error = false;
    $Programs = false;
    $Step = 1;
    $action = isset($_GET['action']) ? $_GET['action'] : (isset($_POST['action']) ? $_POST['action'] : false);
    if (!$action) {
        return;
    }
    $DeleteFile = false;
    switch ($action) {
        case 'powerpress-jquery-stats':
            // Make sure users have permission to access this
            if (!empty($Settings['use_caps']) && !current_user_can('view_podcast_stats')) {
                powerpress_admin_jquery_header(__('Blubrry Media Statistics', 'powerpress'));
                ?>
<h2><?php 
                echo __('Blubrry Media Statistics', 'powerpress');
                ?>
</h2>
<p><?php 
                echo __('You do not have sufficient permission to manage options.', 'powerpress');
                ?>
</p>
<p style="text-align: center;"><a href="#" onclick="self.parent.tb_remove();"><?php 
                echo __('Close', 'powerpress');
                ?>
</a></p>
<?php 
                powerpress_admin_jquery_footer();
                exit;
            } else {
                if (!current_user_can('edit_posts')) {
                    powerpress_admin_jquery_header(__('Blubrry Media Statistics', 'powerpress'));
                    powerpress_page_message_add_notice(__('You do not have sufficient permission to view media statistics.', 'powerpress'));
                    powerpress_page_message_print();
                    powerpress_admin_jquery_footer();
                    exit;
                }
            }
            $StatsCached = get_option('powerpress_stats');
            powerpress_admin_jquery_header(__('Blubrry Media Statistics', 'powerpress'));
            ?>
<h2><?php 
            echo __('Blubrry Media Statistics', 'powerpress');
            ?>
</h2>
<?php 
            echo $StatsCached['content'];
            powerpress_admin_jquery_footer();
            exit;
            break;
        case 'powerpress-jquery-media-disable':
            if (!current_user_can('edit_posts')) {
                powerpress_admin_jquery_header('Uploader');
                powerpress_page_message_add_notice(__('You do not have sufficient permission to disable this option.', 'powerpress'));
                powerpress_page_message_print();
                powerpress_admin_jquery_footer();
                exit;
            }
            check_admin_referer('powerpress-jquery-media-disable');
            $DisableSetting = array();
            $DisableSetting['no_media_url_folder'] = 1;
            powerpress_save_settings($DisableSetting);
            powerpress_admin_jquery_header(__('Select Media', 'powerpress'));
            ?>
<h2><?php 
            echo __('Select Media', 'powerpress');
            ?>
</h2>
<p><?php 
            echo __('Blubrry Media Hosting icon will no longer be displayed when editing posts and pages.', 'powerpress');
            ?>
</p>
<p style="text-align: center;"><a href="#" onclick="self.parent.tb_remove();"><?php 
            echo __('Close', 'powerpress');
            ?>
</a></p>
<?php 
            powerpress_admin_jquery_footer();
            exit;
            // No break here, let this fall thru..
        // No break here, let this fall thru..
        case 'powerpress-jquery-media-delete':
            if (!current_user_can('edit_posts')) {
                powerpress_admin_jquery_header('Uploader');
                powerpress_page_message_add_notice(__('You do not have sufficient permission to upload media.', 'powerpress'));
                powerpress_page_message_print();
                powerpress_admin_jquery_footer();
                exit;
            }
            check_admin_referer('powerpress-jquery-media-delete');
            $DeleteFile = $_GET['delete'];
            // No break here, let this fall thru..
        // No break here, let this fall thru..
        case 'powerpress-jquery-media':
            if (!current_user_can('edit_posts')) {
                powerpress_admin_jquery_header(__('Select Media', 'powerpress'));
                ?>
<h2><?php 
                echo __('Select Media', 'powerpress');
                ?>
</h2>
<p><?php 
                echo __('You do not have sufficient permission to manage options.', 'powerpress');
                ?>
</p>
<p style="text-align: center;"><a href="#" onclick="self.parent.tb_remove();"><?php 
                echo __('Close', 'powerpress');
                ?>
</a></p>
<?php 
                powerpress_admin_jquery_footer();
                exit;
            }
            if (empty($Settings['blubrry_auth']) || empty($Settings['blubrry_hosting']) || $Settings['blubrry_hosting'] === 'false') {
                powerpress_admin_jquery_header(__('Select Media', 'powerpress'));
                ?>
<h2><?php 
                echo __('Select Media', 'powerpress');
                ?>
</h2>
<p><?php 
                echo __('Wait a sec! This feature is only available to Blubrry Media Podcast Hosting customers.', 'powerpress');
                if (!isset($Settings['blubrry_auth'])) {
                    echo ' ' . sprintf(__('Join our community to get free podcast statistics and access to other valuable %s.', 'powerpress'), '<a href="http://create.blubrry.com/resources/" target="_blank">' . __('services', 'powerpress') . '</a>');
                }
                ?>
</p>
<p><?php 
                echo sprintf(__('Our %s integrated with PowerPress making podcast publishing simple. Check out the %s on our exciting three-step publishing system!', 'powerpress'), '<a href="http://create.blubrry.com/resources/podcast-media-hosting/" target="_blank">' . __('Podcast Media Hosting', 'powerpress') . '</a>', '<a href="http://create.blubrry.com/resources/podcast-media-hosting/blubrry-on-site-podcast-hosting-demo/" target="_blank">' . __('video', 'powerpress') . '</a>');
                ?>
   </p>
	 <p><a href="<?php 
                echo wp_nonce_url("admin.php?action=powerpress-jquery-media-disable", 'powerpress-jquery-media-disable');
                ?>
&amp;KeepThis=true&amp;TB_iframe=true&amp;modal=true" onclick="return confirm('<?php 
                echo __('Remove the Blubrry Media Hosting icon from the Media URL field?', 'powerpress');
                ?>
');"><?php 
                echo __('Do not show this icon next to the Media URL field', 'powerpress');
                ?>
</a></p>
<p style="text-align: center;"><a href="#" onclick="self.parent.tb_remove();"><?php 
                echo __('Close', 'powerpress');
                ?>
</a></p>
<?php 
                powerpress_admin_jquery_footer();
                exit;
            }
            $Msg = false;
            if ($DeleteFile) {
                $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/%s?format=json', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'], $DeleteFile);
                    $req_url .= defined('POWERPRESS_BLUBRRY_API_QSA') ? '&' . POWERPRESS_BLUBRRY_API_QSA : '';
                    $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 10, 'DELETE');
                    if ($json_data != false) {
                        break;
                    }
                }
                $results = powerpress_json_decode($json_data);
                if (isset($results['text'])) {
                    $Msg = $results['text'];
                } else {
                    if (isset($results['error'])) {
                        $Msg = $results['error'];
                    } else {
                        $Msg = __('An unknown error occurred deleting media file.', 'powerpress');
                    }
                }
            }
            $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/index.json?quota=true&published=true', rtrim($api_url, '/'), $Settings['blubrry_program_keyword']);
                $req_url .= defined('POWERPRESS_BLUBRRY_API_QSA') ? '&' . POWERPRESS_BLUBRRY_API_QSA : '';
                $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth']);
                if ($json_data != false) {
                    break;
                }
            }
            $results = powerpress_json_decode($json_data);
            $FeedSlug = $_GET['podcast-feed'];
            powerpress_admin_jquery_header(__('Select Media', 'powerpress'), true);
            ?>
<script language="JavaScript" type="text/javascript"><!--

function SelectMedia(File)
{
	self.parent.document.getElementById('powerpress_url_<?php 
            echo $FeedSlug;
            ?>
').value=File;
	self.parent.document.getElementById('powerpress_hosting_<?php 
            echo $FeedSlug;
            ?>
').value='1';
	self.parent.document.getElementById('powerpress_url_<?php 
            echo $FeedSlug;
            ?>
').readOnly=true;
	self.parent.document.getElementById('powerpress_hosting_note_<?php 
            echo $FeedSlug;
            ?>
').style.display='block';
	if( self.parent.powerpress_update_for_video )
		self.parent.powerpress_update_for_video(File, '<?php 
            echo $FeedSlug;
            ?>
');
	self.parent.tb_remove();
}
function SelectURL(url)
{
	self.parent.document.getElementById('powerpress_url_<?php 
            echo $FeedSlug;
            ?>
').value=url;
	self.parent.document.getElementById('powerpress_hosting_<?php 
            echo $FeedSlug;
            ?>
').value='0';
	self.parent.document.getElementById('powerpress_url_<?php 
            echo $FeedSlug;
            ?>
').readOnly=false;
	self.parent.document.getElementById('powerpress_hosting_note_<?php 
            echo $FeedSlug;
            ?>
').style.display='none';
	if( self.parent.powerpress_update_for_video )
		self.parent.powerpress_update_for_video(url, '<?php 
            echo $FeedSlug;
            ?>
');
	self.parent.tb_remove();
}
function DeleteMedia(File)
{
	return confirm('<?php 
            echo __('Delete', 'powerpress');
            ?>
: '+File+'\n\n<?php 
            echo __('Are you sure you want to delete this media file?', 'powerpress');
            ?>
');
}
//-->
</script>
		<div id="media-header">
			<h2><?php 
            echo __('Select Media', 'powerpress');
            ?>
</h2>
			<?php 
            if (!empty($results['quota']['expires'])) {
                $message = '';
                if (!empty($results['quota']['expires']['expired'])) {
                    $message = '<p>' . sprintf(__('Media hosting service expired on %s.', 'powerpress'), $results['quota']['expires']['readable_date']) . '</p>';
                } else {
                    $message = '<p>' . sprintf(__('Media hosting service will expire on %s.', 'powerpress'), $results['quota']['expires']['readable_date']) . '</p>';
                }
                $message .= '<p style="text-align: center;"><strong><a href="' . $results['quota']['expires']['renew_link'] . '" target="_blank" style="text-decoration: underline;">' . __('Renew Media Hosting Service', 'powerpress') . '</a></strong></p>';
                powerpress_page_message_add_notice($message);
                powerpress_page_message_print();
            } else {
                if (empty($results)) {
                    // Handle the error here.
                    $message = '<h3>' . __('Error', 'powerpress') . '</h3>';
                    global $g_powerpress_remote_error, $g_powerpress_remote_errorno;
                    if (!empty($g_powerpress_remote_errorno) && $g_powerpress_remote_errorno == 401) {
                        $message .= '<p>' . __('Incorrect sign-in email address or password.', 'powerpress') . '</p><p>' . __('Verify your account entered under Services and Statistics settings then try again.', 'powerpress') . '</p>';
                    } else {
                        if (!empty($g_powerpress_remote_error)) {
                            $message .= '<p>' . $g_powerpress_remote_error . '</p>';
                        } else {
                            $message .= '<p>' . __('Unable to connect to service.', 'powerpress') . '</p>';
                        }
                    }
                    // Print an erro here
                    powerpress_page_message_add_notice($message);
                    powerpress_page_message_print();
                }
            }
            if ($Msg) {
                echo '<p>' . $Msg . '</p>';
            }
            ?>
			<div class="media-upload-link"><a href="<?php 
            echo admin_url() . wp_nonce_url("admin.php?action=powerpress-jquery-upload", 'powerpress-jquery-upload');
            ?>
&podcast-feed=<?php 
            echo $FeedSlug;
            ?>
&keepThis=true&TB_iframe=true&height=350&width=530&modal=true" class="thickbox"><?php 
            echo __('Upload Media File', 'powerpress');
            ?>
</a></div>
			<p><?php 
            echo __('Select from media files uploaded to blubrry.com', 'powerpress');
            ?>
:</p>
		</div>
	<div id="media-items-container">
		<div id="media-items">
<?php 
            $QuotaData = false;
            if (isset($results['error'])) {
                echo $results['error'];
            } else {
                if (is_array($results)) {
                    $PublishedList = false;
                    while (list($index, $data) = each($results)) {
                        if ($index === 'quota') {
                            $QuotaData = $data;
                            continue;
                        }
                        if ($PublishedList == false && !empty($data['published'])) {
                            ?>
<div id="media-published-title">
	<?php 
                            echo __('Media Published within the past 30 days', 'powerpress');
                            ?>
:
</div>
<?php 
                            $PublishedList = true;
                        }
                        ?>
<div class="media-item <?php 
                        echo empty($data['published']) ? 'media-unpublished' : 'media-published';
                        ?>
">
	<strong class="media-name"><?php 
                        echo htmlspecialchars($data['name']);
                        ?>
</strong>
	<cite><?php 
                        echo powerpress_byte_size($data['length']);
                        ?>
</cite>
	<?php 
                        if (!empty($data['published'])) {
                            ?>
	<div class="media-published-date">&middot; <?php 
                            echo __('Published on', 'powerpress');
                            ?>
 <?php 
                            echo date(get_option('date_format'), $data['last_modified']);
                            ?>
</div>
	<?php 
                        }
                        ?>
	<div class="media-item-links">
		<?php 
                        if (!empty($data['published']) && !empty($data['url'])) {
                            ?>
			<a href="#" onclick="SelectURL('<?php 
                            echo $data['url'];
                            ?>
'); return false;"><?php 
                            echo __('Select', 'powerpress');
                            ?>
</a>
		<?php 
                        } else {
                            ?>
			<?php 
                            if (function_exists('curl_init')) {
                                ?>
				<a href="<?php 
                                echo admin_url() . wp_nonce_url("admin.php?action=powerpress-jquery-media-delete", 'powerpress-jquery-media-delete');
                                ?>
&amp;podcast-feed=<?php 
                                echo $FeedSlug;
                                ?>
&amp;delete=<?php 
                                echo urlencode($data['name']);
                                ?>
" onclick="return DeleteMedia('<?php 
                                echo $data['name'];
                                ?>
');"><?php 
                                echo __('Delete', 'powerpress');
                                ?>
</a> | 
			<?php 
                            }
                            ?>
			<a href="#" onclick="SelectMedia('<?php 
                            echo $data['name'];
                            ?>
'); return false;"><?php 
                            echo __('Select', 'powerpress');
                            ?>
</a>
		<?php 
                        }
                        ?>
	</div> 
</div>
<?php 
                    }
                }
            }
            ?>
		</div>
	</div>
	<div id="media-footer">
		<div class="media-upload-link"><a href="<?php 
            echo admin_url() . wp_nonce_url("admin.php?action=powerpress-jquery-upload", 'powerpress-jquery-upload');
            ?>
&podcast-feed=<?php 
            echo $FeedSlug;
            ?>
&keepThis=true&TB_iframe=true&height=350&width=530&modal=true" class="thickbox"><?php 
            echo __('Upload Media File', 'powerpress');
            ?>
</a></div>
		<?php 
            if ($QuotaData) {
                $NextDate = strtotime($QuotaData['published']['next_date']);
                ?>
			<?php 
                if ($QuotaData['unpublished']['available'] != $QuotaData['unpublished']['total']) {
                    //echo '<p>';
                    //echo sprintf( __('You have uploaded %s (%s available) of your %s upload limit.', 'powerpress'),
                    //	'<em>'. powerpress_byte_size($QuotaData['unpublished']['used']) .'</em>',
                    //	'<em>'. powerpress_byte_size($QuotaData['unpublished']['available']) .'</em>',
                    //	'<em>'. powerpress_byte_size($QuotaData['unpublished']['total']) .'</em>' );
                    //echo '</p>';
                }
                if ($QuotaData['published']['status'] == 'OK') {
                    ?>
			<p><?php 
                    if ($QuotaData['published']['available'] > 0) {
                        echo sprintf(__('Publishing space available: %s of (%s %%) of %s/month quota.', 'powerpress'), '<em>' . powerpress_byte_size($QuotaData['published']['available']) . '</em>', '<em>' . round($QuotaData['published']['available'] / $QuotaData['published']['total'] * 100) . '</em>', '<em>' . str_replace('.0', '', powerpress_byte_size($QuotaData['published']['total'])) . '</em>');
                        //echo sprintf( __('You have %s available (%s published in the last 30 days) of your %s publish limit.', 'powerpress'),
                        //	'<em>'. powerpress_byte_size($QuotaData['published']['available']) .'</em>',
                        //	'<em>'. powerpress_byte_size($QuotaData['published']['total']-$QuotaData['published']['available']) .'</em>',
                        //	'<em>'. powerpress_byte_size($QuotaData['published']['total']) .'</em>' );
                    } else {
                        if ($QuotaData['published']['available'] == 0) {
                        } else {
                            echo sprintf(__('You have %s publish space available.', 'powerpress'), '<em>' . powerpress_byte_size($QuotaData['published']['total']) . '</em>');
                        }
                    }
                    ?>
			</p>
			<p>
			<?php 
                    echo sprintf(__('No-Fault Hosting: You may upload a media file up to %s in size and be within the No-Fault maximum (25%% more than your %s quota).', 'powerpress'), powerpress_byte_size($QuotaData['published']['no_fault_maximum']), str_replace('.0', '', powerpress_byte_size($QuotaData['published']['total'])));
                    echo ' ';
                    echo '<a href="http://create.blubrry.com/resources/podcast-media-hosting/no-fault/" target="_blank">' . __('Learn More', 'powerpress') . '</a>';
                    ?>
			</p>
			<p><?php 
                    if ($QuotaData['published']['available'] != $QuotaData['published']['total']) {
                        echo sprintf(__('Your quota will reset on %s.', 'powerpress'), date('m/d/Y', $NextDate));
                    }
                    ?>
			</p>
			<?php 
                } else {
                    if ($QuotaData['published']['status'] == 'UNLIMITED') {
                        echo '<p>';
                        echo __('Publishing Space Available: Unlimited (Professional Hosting)', 'powerpress');
                        echo '<p>';
                    } else {
                        echo '<p>';
                        echo __('Publishing Space Available: Account has expired', 'powerpress');
                        echo '<p>';
                    }
                }
                ?>
		<?php 
            }
            ?>
		<p style="text-align: center;"><a href="#" onclick="self.parent.tb_remove();"><?php 
            echo __('Close', 'powerpress');
            ?>
</a></p>
	</div>
	
<?php 
            powerpress_admin_jquery_footer(true);
            exit;
            break;
        case 'powerpress-jquery-account-save':
            if (!current_user_can(POWERPRESS_CAPABILITY_MANAGE_OPTIONS)) {
                powerpress_admin_jquery_header('Blubrry Services Integration', 'powerpress');
                powerpress_page_message_add_notice(__('You do not have sufficient permission to manage options.', 'powerpress'));
                powerpress_page_message_print();
                powerpress_admin_jquery_footer();
                exit;
            }
            check_admin_referer('powerpress-jquery-account');
            $Password = $_POST['Password'];
            $SaveSettings = $_POST['Settings'];
            $Password = powerpress_stripslashes($Password);
            $SaveSettings = powerpress_stripslashes($SaveSettings);
            $Save = false;
            $Close = false;
            if (!empty($_POST['Remove'])) {
                $SaveSettings['blubrry_username'] = '';
                $SaveSettings['blubrry_auth'] = '';
                $SaveSettings['blubrry_program_keyword'] = '';
                $SaveSettings['blubrry_hosting'] = false;
                $Close = true;
                $Save = true;
            } else {
                $Programs = array();
                $ProgramHosting = array();
                // Anytime we change the password we need to test it...
                $auth = base64_encode($SaveSettings['blubrry_username'] . ':' . $Password);
                $json_data = false;
                $api_url_array = powerpress_get_api_array();
                while (list($index, $api_url) = each($api_url_array)) {
                    $req_url = sprintf('%s/service/index.json', rtrim($api_url, '/'));
                    $req_url .= defined('POWERPRESS_BLUBRRY_API_QSA') ? '?' . POWERPRESS_BLUBRRY_API_QSA : '';
                    $json_data = powerpress_remote_fopen($req_url, $auth);
                    if ($json_data != false) {
                        break;
                    }
                }
                if ($json_data) {
                    $results = powerpress_json_decode($json_data);
                    if (isset($results['error'])) {
                        $Error = $results['error'];
                        if (strstr($Error, __('currently not available', 'powerpress'))) {
                            $Error = __('Unable to find podcasts for this account.', 'powerpress');
                            $Error .= '<br /><span style="font-weight: normal; font-size: 12px;">';
                            $Error .= 'Verify that the email address you enter here matches the email address you used when you listed your podcast on blubrry.com.</span>';
                        } else {
                            if (preg_match('/No programs found.*media hosting/i', $results['error'])) {
                                $Error .= '<br/><span style="font-weight: normal; font-size: 12px;">';
                                $Error .= 'Service may take a few minutes to activate.</span>';
                            }
                        }
                    } else {
                        if (!is_array($results)) {
                            $Error = $json_data;
                        } else {
                            // Get all the programs for this user...
                            while (list($null, $row) = each($results)) {
                                $Programs[$row['program_keyword']] = $row['program_title'];
                                if ($row['hosting'] === true || $row['hosting'] == 'true') {
                                    $ProgramHosting[$row['program_keyword']] = true;
                                } else {
                                    $ProgramHosting[$row['program_keyword']] = false;
                                }
                            }
                            if (count($Programs) > 0) {
                                $SaveSettings['blubrry_auth'] = $auth;
                                if (!empty($SaveSettings['blubrry_program_keyword'])) {
                                    powerpress_add_blubrry_redirect($SaveSettings['blubrry_program_keyword']);
                                    $SaveSettings['blubrry_hosting'] = $ProgramHosting[$SaveSettings['blubrry_program_keyword']];
                                    if (!is_bool($SaveSettings['blubrry_hosting'])) {
                                        if ($SaveSettings['blubrry_hosting'] === 'false' || empty($SaveSettings['blubrry_hosting'])) {
                                            $SaveSettings['blubrry_hosting'] = false;
                                        }
                                    }
                                    $Save = true;
                                    $Close = true;
                                } else {
                                    if (isset($SaveSettings['blubrry_program_keyword'])) {
                                        $Error = __('You must select a program to continue.', 'powerpress');
                                    } else {
                                        if (count($Programs) == 1) {
                                            list($keyword, $title) = each($Programs);
                                            $SaveSettings['blubrry_program_keyword'] = $keyword;
                                            $SaveSettings['blubrry_hosting'] = $ProgramHosting[$keyword];
                                            if (!is_bool($SaveSettings['blubrry_hosting'])) {
                                                if ($SaveSettings['blubrry_hosting'] === 'false' || empty($SaveSettings['blubrry_hosting'])) {
                                                    $SaveSettings['blubrry_hosting'] = false;
                                                }
                                            }
                                            powerpress_add_blubrry_redirect($keyword);
                                            $Close = true;
                                            $Save = true;
                                        } else {
                                            $Error = __('Please select your podcast program to continue.', 'powerpress');
                                            $Step = 2;
                                            $Settings['blubrry_username'] = $SaveSettings['blubrry_username'];
                                        }
                                    }
                                }
                            } else {
                                $Error = __('No podcasts for this account are listed on blubrry.com.', 'powerpress');
                            }
                        }
                    }
                } else {
                    global $g_powerpress_remote_error, $g_powerpress_remote_errorno;
                    //$Error = '<h3>'. __('Error', 'powerpress') .'</h3>';
                    if (!empty($g_powerpress_remote_errorno) && $g_powerpress_remote_errorno == 401) {
                        $Error .= '<p>' . __('Incorrect sign-in email address or password.', 'powerpress') . '</p><p>' . __('Verify your account settings then try again.', 'powerpress') . '</p>';
                    } else {
                        if (!empty($g_powerpress_remote_error)) {
                            $Error .= '<p>' . $g_powerpress_remote_error . '</p>';
                        } else {
                            $Error .= '<p>' . __('Authentication failed.', 'powerpress') . '</p>';
                        }
                    }
                }
                if ($Error) {
                    $Error .= '<p style="text-align: center;"><a href="http://create.blubrry.com/resources/powerpress/powerpress-settings/services-stats/" target="_blank">' . __('Click Here For Help', 'powerpress') . '</a></p>';
                }
            }
            if ($Save) {
                powerpress_save_settings($SaveSettings);
            }
            // Clear cached statistics
            delete_option('powerpress_stats');
            if ($Error) {
                powerpress_page_message_add_notice($Error);
            }
            if ($Close) {
                powerpress_admin_jquery_header(__('Blubrry Services Integration', 'powerpress'));
                powerpress_page_message_print();
                ?>
<p style="text-align: right; position: absolute; top: 5px; right: 5px; margin: 0; padding:0;"><a href="#" onclick="self.parent.tb_remove(); return false;" title="<?php 
                echo __('Close', 'powerpress');
                ?>
"><img src="<?php 
                echo admin_url();
                ?>
/images/no.png" alt="<?php 
                echo __('Close', 'powerpress');
                ?>
" /></a></p>
<h2><?php 
                echo __('Blubrry Services Integration', 'powerpress');
                ?>
</h2>
<p style="text-align: center;"><strong><?php 
                echo __('Settings Saved Successfully!', 'powerpress');
                ?>
</strong></p>
<p style="text-align: center;">
	<a href="<?php 
                echo admin_url("admin.php?page=powerpress/powerpressadmin_basic.php");
                ?>
" onclick="self.parent.tb_remove(); return false;" target="_top"><?php 
                echo __('Close', 'powerpress');
                ?>
</a>
</p>
<script type="text/javascript"><!--

jQuery(document).ready(function($) {
	// Upload loading, check the parent window for #blubrry_stats_settings div
	if( jQuery('#blubrry_stats_settings',parent.document).length )
	{
		jQuery('#blubrry_stats_settings',parent.document).html('');
	}
});

// --></script>
<?php 
                powerpress_admin_jquery_footer();
                exit;
            }
            // no break here, let the next case catch it...
        // no break here, let the next case catch it...
        case 'powerpress-jquery-account':
            if (!current_user_can(POWERPRESS_CAPABILITY_MANAGE_OPTIONS)) {
                powerpress_admin_jquery_header(__('Blubrry Services Integration', 'powerpress'));
                powerpress_page_message_add_notice(__('You do not have sufficient permission to manage options.', 'powerpress'));
                powerpress_page_message_print();
                powerpress_admin_jquery_footer();
                exit;
            }
            if (!ini_get('allow_url_fopen') && !function_exists('curl_init')) {
                powerpress_admin_jquery_header(__('Blubrry Services Integration', 'powerpress'));
                powerpress_page_message_add_notice(__('Your server must either have the php.ini setting \'allow_url_fopen\' enabled or have the PHP cURL library installed in order to continue.', 'powerpress'));
                powerpress_page_message_print();
                powerpress_admin_jquery_footer();
                exit;
            }
            check_admin_referer('powerpress-jquery-account');
            if (!$Settings) {
                $Settings = get_option('powerpress_general');
            }
            if (empty($Settings['blubrry_username'])) {
                $Settings['blubrry_username'] = '';
            }
            if (empty($Settings['blubrry_hosting']) || $Settings['blubrry_hosting'] === 'false') {
                $Settings['blubrry_hosting'] = false;
            }
            if (empty($Settings['blubrry_program_keyword'])) {
                $Settings['blubrry_program_keyword'] = '';
            }
            if ($Programs == false) {
                $Programs = array();
            }
            powerpress_admin_jquery_header(__('Blubrry Services Integration', 'powerpress'));
            powerpress_page_message_print();
            ?>
<form action="<?php 
            echo admin_url('admin.php');
            ?>
" enctype="multipart/form-data" method="post">
<?php 
            wp_nonce_field('powerpress-jquery-account');
            ?>
<input type="hidden" name="action" value="powerpress-jquery-account-save" />
<div id="accountinfo">
	<h2><?php 
            echo __('Blubrry Services Integration', 'powerpress');
            ?>
</h2>
<?php 
            if ($Step == 1) {
                ?>
	<p>
		<label for="blubrry_username"><?php 
                echo __('Blubrry User Name (Email)', 'powerpress');
                ?>
</label>
		<input type="text" id="blubrry_username" name="Settings[blubrry_username]" value="<?php 
                echo $Settings['blubrry_username'];
                ?>
" />
	</p>
	<p id="password_row">
		<label for="password_password"><?php 
                echo __('Blubrry Password', 'powerpress');
                ?>
</label>
		<input type="password" id="password_password" name="Password" value="" />
	</p>
<?php 
            } else {
                ?>
	<input type="hidden" name="Settings[blubrry_username]" value="<?php 
                echo htmlspecialchars($Settings['blubrry_username']);
                ?>
" />
	<input type="hidden" name="Password" value="<?php 
                echo htmlspecialchars($Password);
                ?>
" />
	<!-- <input type="hidden" name="Settings[blubrry_hosting]" value="<?php 
                echo $Settings['blubrry_hosting'];
                ?>
" /> -->
	<p>
		<label for="blubrry_program_keyword"><?php 
                echo __('Select Blubrry Program', 'powerpress');
                ?>
</label>
<select id="blubrry_program_keyword" name="Settings[blubrry_program_keyword]">
<option value=""><?php 
                echo __('Select Program', 'powerpress');
                ?>
</option>
<?php 
                while (list($value, $desc) = each($Programs)) {
                    echo "\t<option value=\"{$value}\"" . ($Settings['blubrry_program_keyword'] == $value ? ' selected' : '') . ">{$desc}</option>\n";
                }
                ?>
</select>
	</p>
<?php 
            }
            ?>
	<p>
		<input type="submit" name="Save" value="<?php 
            echo __('Save', 'powerpress');
            ?>
" />
		<input type="button" name="Cancel" value="<?php 
            echo __('Cancel', 'powerpress');
            ?>
" onclick="self.parent.tb_remove();" />
		<input type="submit" name="Remove" value="Remove" style="float: right;" onclick="return confirm('<?php 
            echo __('Remove Blubrry Services Integration, are you sure?', 'powerpress');
            ?>
');" />
	</p>
</div>
</form>
<?php 
            powerpress_admin_jquery_footer();
            exit;
            break;
        case 'powerpress-jquery-upload':
            if (!current_user_can('edit_posts')) {
                powerpress_admin_jquery_header(__('Uploader', 'powerpress'));
                powerpress_page_message_add_notice(__('You do not have sufficient permission to upload media.', 'powerpress'));
                powerpress_page_message_print();
                powerpress_admin_jquery_footer();
                exit;
            }
            check_admin_referer('powerpress-jquery-upload');
            $RedirectURL = false;
            $Error = false;
            if (!$Settings) {
                $Settings = get_option('powerpress_general');
            }
            if (empty($Settings['blubrry_hosting']) || $Settings['blubrry_hosting'] === 'false') {
                $Settings['blubrry_hosting'] = false;
            }
            if (empty($Settings['blubrry_program_keyword'])) {
                $Settings['blubrry_program_keyword'] = '';
            }
            if (empty($Settings['blubrry_auth'])) {
                $Settings['blubrry_auth'] = '';
            }
            if (empty($Settings['blubrry_hosting'])) {
                $Error = __('This feature is available to Blubrry Hosting users only.', 'powerpress');
            }
            if ($Error == 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/upload_session.json', rtrim($api_url, '/'), $Settings['blubrry_program_keyword']);
                    $req_url .= defined('POWERPRESS_BLUBRRY_API_QSA') ? '?' . POWERPRESS_BLUBRRY_API_QSA : '';
                    $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth']);
                    if ($json_data != false) {
                        break;
                    }
                }
                $results = powerpress_json_decode($json_data);
                // We need to obtain an upload session for this user...
                if (isset($results['error']) && strlen($results['error']) > 1) {
                    $Error = $results['error'];
                    if (strstr($Error, 'currently not available')) {
                        $Error = __('Unable to find podcasts for this account.', 'powerpress');
                    }
                } else {
                    if ($results === $json_data) {
                        $Error = $json_data;
                    } else {
                        if (!is_array($results) || $results == false) {
                            $Error = $json_data;
                        } else {
                            if (isset($results['url']) && !empty($results['url'])) {
                                $RedirectURL = $results['url'];
                            }
                        }
                    }
                }
            }
            if ($Error == false && $RedirectURL) {
                $RedirectURL .= '&ReturnURL=';
                $RedirectURL .= urlencode(admin_url("admin.php?action=powerpress-jquery-upload-complete"));
                header("Location: {$RedirectURL}");
                exit;
            } else {
                if ($Error == false) {
                    global $g_powerpress_remote_error, $g_powerpress_remote_errorno;
                    if (!empty($g_powerpress_remote_errorno) && $g_powerpress_remote_errorno == 401) {
                        $Error = '<p>' . __('Incorrect sign-in email address or password.', 'powerpress') . '</p><p>' . __('Verify your account entered under Services and Statistics settings then try again.', 'powerpress') . '</p>';
                    } else {
                        if (!empty($g_powerpress_remote_error)) {
                            $Error = '<p>' . $g_powerpress_remote_error . '</p>';
                        } else {
                            $Error = '<p>' . __('Unable to obtain upload session.', 'powerpress') . '</p>';
                        }
                    }
                }
            }
            powerpress_admin_jquery_header(__('Uploader', 'powerpress'));
            echo '<h2>' . __('Uploader', 'powerpress') . '</h2>';
            echo '<p>';
            echo $Error;
            echo '</p>';
            ?>
			<p style="text-align: center;"><a href="#" onclick="self.parent.tb_remove();"><?php 
            echo __('Close', 'powerpress');
            ?>
</a></p>
			<?php 
            powerpress_admin_jquery_footer();
            exit;
            break;
        case 'powerpress-jquery-upload-complete':
            if (!current_user_can('edit_posts')) {
                powerpress_admin_jquery_header('Uploader');
                powerpress_page_message_add_notice(__('You do not have sufficient permission to upload media.', 'powerpress'));
                powerpress_page_message_print();
                powerpress_admin_jquery_footer();
                exit;
            }
            $File = isset($_GET['File']) ? $_GET['File'] : false;
            $Message = isset($_GET['Message']) ? $_GET['Message'] : false;
            powerpress_admin_jquery_header(__('Upload Complete', 'powerpress'));
            echo '<h2>' . __('Uploader', 'powerpress') . '</h2>';
            echo '<p>';
            if ($File) {
                echo __('File', 'powerpress') . ': ';
                echo $File;
                echo ' - ';
            }
            echo $Message;
            echo '</p>';
            ?>
			<p style="text-align: center;"><a href="#" onclick="self.parent.tb_remove();"><?php 
            echo __('Close', 'powerpress');
            ?>
</a></p>
			<?php 
            if ($Message == '') {
                ?>
<script language="JavaScript" type="text/javascript"><!--
<?php 
                if ($File != '') {
                    ?>
self.parent.SelectMedia('<?php 
                    echo $File;
                    ?>
'); <?php 
                }
                ?>
self.parent.tb_remove();
//-->
</script>
<?php 
            }
            powerpress_admin_jquery_footer();
            exit;
            break;
    }
}
Пример #2
0
function powerpress_admin_mt()
{
    $results = powerpress_get_mt_episodes();
    $Settings = powerpress_get_settings('powerpress_general', false);
    if (!isset($Settings['custom_feeds']['podcast']) && !empty($Settings['custom_feeds'])) {
        $Settings['custom_feeds'] = array_merge(array('podcast' => __('Podcast Feed (default)', 'powerpress')), $Settings['custom_feeds']);
    } else {
        if (empty($Settings['custom_feeds'])) {
            $Settings['custom_feeds'] = array('podcast' => __('Podcast Feed (default)', 'powerpress'));
        }
    }
    if ($results) {
        if ($results['feeds_required'] > count($Settings['custom_feeds'])) {
            powerpress_page_message_add_error(sprintf(__('We found blog posts that have as many as %d media files. You may need to create %d more Custom Feeds in order to import all of the media.', 'powerpress'), $results['feeds_required'], $results['feeds_required'] - count($Settings['custom_feeds'])));
            powerpress_page_message_print();
        }
    }
    powerpressadmin_mt_import_print_log();
    ?>
<style type="text/css">
.column-exclude {
	width: 80px;
}
.column-post-date {
	width: 80px;
}
.error-mt {
	background-color: #ffebe8;
	border-color: #c00;
	border-width: 1px;
	border-style: solid;
	padding: 0 0.6em;
	margin: 5px 15px 2px;
	-moz-border-radius: 3px;
	-khtml-border-radius: 3px;
	-webkit-border-radius: 3px;
	border-radius: 3px;
}
label {
	float: left;
	width: 160px;
}
</style>
<script language="javascript"><!--

function check_radio_selection(obj, PostID, FileIndex)
{
	if( obj.value == '' ) // Users can select the no feed option as much as they want
		return true;
	
	var Field = obj.id;
	while( Field.charAt( Field.length-1 ) >= "0" &&  Field.charAt( Field.length-1 ) <= "9" ) // ( chr < "0" ) || ( chr > "9" )
	{
		Field = Field.substring(0, Field.length-1);
	}
	
	var Pos = 0;
	var CheckObj = document.getElementsByName( "Import["+PostID+"]["+Pos+"]" );
	while( CheckObj )
	{
		if( CheckObj.length == 0 )
			break;
			
		if( Pos != FileIndex )
		{
			for (var i = 0; i < CheckObj.length; i++)
			{
				if (CheckObj[i].type == 'radio' && CheckObj[i].checked && CheckObj[i].value == obj.value )
				{
					alert("<?php 
    echo __('Sorry, you may only select one media file per post per feed.', 'powerpress');
    ?>
");
					return false;
				}
			}
		}
		Pos++;
		var CheckObj = document.getElementsByName( "Import["+PostID+"]["+Pos+"]" );
	}
	
	return true;
}

function no_import_all()
{
	if( !confirm('<?php 
    echo __('Select "No Import" option for all media files?', 'powerpress');
    ?>
') )
		return;
		
	var Inputs = document.getElementsByTagName('input');
	for (var i = 0; i < Inputs.length; i++)
	{
		var Elem = Inputs[i];
		if( Elem.type == 'radio' && Elem.value == '' )
			Elem.checked = true;
	}
}

function select_all(index,value)
{
	var NoImport = [];
	var Inputs = document.getElementsByTagName('input');
	for (var i = 0; i < Inputs.length; i++)
	{
		var Elem = Inputs[i];
		if( Elem.type == 'radio' && Elem.value == value )
		{
			ElemIndex = Elem.id.substring( Elem.id.lastIndexOf('_')+1);
			if( ElemIndex == index )
				Elem.checked = true;
			else if( Elem.checked && Elem.value != '' )
				NoImport.push( Elem.id );
		}
	}
	for (var i = 0; i < Inputs.length; i++)
	{
		var Elem = Inputs[i];
		if( Elem.type == 'radio' && Elem.value == '' )
		{
			for (var j = 0; j < NoImport.length; j++)
			{
				if( NoImport[j] == Elem.id )
					Elem.checked = true;
			}
		}
	}
}
//-->
</script>
<h2><?php 
    echo __('Import Episodes', 'powerpress');
    ?>
</h2>
<?php 
    if (count($results) == 0 || count($results) == 1) {
        ?>
	
	<p><?php 
        echo __('No episodes found to import.', 'powerpress');
        ?>
</p>
<?php 
    } else {
        ?>
<input type="hidden" name="action" value="powerpress-importmt" />
<p><?php 
        echo __('Select the media file under each feed for each episode you wish to import.', 'powerpress');
        ?>
</p>
<table class="widefat fixed" cellspacing="0">
	<thead>
	<tr>
<?php 
        print_column_headers('powerpressadmin_importmt');
        ?>
	</tr>
	</thead>

	<tfoot>
	<tr>
<?php 
        print_column_headers('powerpressadmin_importmt', false);
        ?>
	</tr>
	</tfoot>
	<tbody>
<?php 
        $StrandedEpisodes = 0;
        $ImportableEpisodes = 0;
        $MaxFileIndex = 1;
        $count = 0;
        while (list($post_id, $import_data) = each($results)) {
            $edit_link = get_edit_post_link($post_id);
            if ($post_id == 'feeds_required') {
                continue;
            }
            $columns = powerpressadmin_importmt_columns();
            $CurrentEnclosures = array();
            if (is_array($Settings['custom_feeds'])) {
                while (list($feed_slug, $value) = each($Settings['custom_feeds'])) {
                    if ($feed_slug == 'podcast') {
                        $enclosure_data = get_post_meta($post_id, 'enclosure', true);
                    } else {
                        $enclosure_data = get_post_meta($post_id, '_' . $feed_slug . ':enclosure', true);
                    }
                    if (!$enclosure_data) {
                        continue;
                    }
                    @(list($EnclosureURL, $EnclosureSize, $EnclosureType, $Serialized) = @explode("\n", $enclosure_data));
                    if ($EnclosureURL) {
                        $CurrentEnclosures[$feed_slug] = array();
                        $CurrentEnclosures[$feed_slug]['url'] = trim($EnclosureURL);
                        $CurrentEnclosures[$feed_slug]['imported'] = false;
                    }
                    $found = false;
                    while (list($episode_index, $episode_data) = each($import_data['enclosures'])) {
                        if ($episode_data['url'] == $CurrentEnclosures[$feed_slug]['url']) {
                            $import_data['enclosures'][$episode_index]['imported'] = true;
                            $CurrentEnclosures[$feed_slug]['imported'] = true;
                            $found = true;
                            break;
                        }
                    }
                    reset($import_data['enclosures']);
                    if ($found == false) {
                        // Add it to the media file list, prepend it...
                        $is_enclosure_data = array();
                        $is_enclosure_data['url'] = $CurrentEnclosures[$feed_slug]['url'];
                        $is_enclosure_data['imported'] = true;
                        array_push($import_data['enclosures'], $is_enclosure_data);
                        $CurrentEnclosures[$feed_slug]['imported'] = true;
                        $CurrentEnclosures[$feed_slug]['present'] = true;
                    }
                }
                reset($Settings['custom_feeds']);
            }
            $feed_title = '';
            if ($feed_slug == 'podcast') {
                $feed_title = __('Podcast Feed (default)', 'powerpress');
            }
            $feed_title = esc_html($feed_title);
            if ($count % 2 == 0) {
                echo '<tr valign="middle" class="alternate">';
            } else {
                echo '<tr valign="middle">';
            }
            $CheckedEpisodes = array();
            // key = file_index, value = feed-slug
            $feed_index = 0;
            foreach ($columns as $column_name => $column_display_name) {
                $class = "class=\"column-{$column_name}\"";
                switch ($column_name) {
                    case 'post-title':
                        echo '<td ' . $class . '><strong>';
                        if (current_user_can('edit_post', $post_id)) {
                            ?>
<a class="row-title" href="<?php 
                            echo $edit_link;
                            ?>
" title="<?php 
                            echo esc_attr(sprintf(__('Edit "%s"', 'powerpress'), $import_data['post_title']));
                            ?>
"><?php 
                            echo esc_attr($import_data['post_title']);
                            ?>
</a><?php 
                        } else {
                            echo $import_data['post_title'];
                        }
                        echo '</strong><br />';
                        echo '<div style="margin-left: 10px;">';
                        $index = 1;
                        while (list($episode_index, $episode_data) = each($import_data['enclosures'])) {
                            if ($index > $MaxFileIndex) {
                                $MaxFileIndex = $index;
                            }
                            $Parts = parse_url($episode_data['url']);
                            $filename = substr($Parts['path'], strrpos($Parts['path'], '/') + 1);
                            if ($filename == '') {
                                $filename = $episode_data['url'];
                            }
                            echo "File&nbsp;{$index}:&nbsp;";
                            echo '<input type="hidden" name="Media[' . $post_id . '][' . $episode_index . ']" value="' . htmlspecialchars($episode_data['url']) . '" />';
                            if (empty($episode_data['imported'])) {
                                echo '<span style="color: #CC0000; font-weight: bold; cursor:pointer;" onclick="alert(\'File: ' . $filename . '\\nURL: ' . $episode_data['url'] . '\')">';
                                $StrandedEpisodes++;
                            } else {
                                echo '<span style="color: green; font-weight: bold; cursor:pointer;" onclick="alert(\'File: ' . $filename . '\\nURL: ' . $episode_data['url'] . '\')">';
                            }
                            if (empty($episode_data['imported'])) {
                                echo '*';
                            }
                            echo $filename;
                            echo '</span>';
                            echo '<br/>';
                            $index++;
                        }
                        if ($index > 1) {
                            // Do we need the post title?
                            echo '<input type="hidden" name="Titles[' . $post_id . ']" value="' . htmlspecialchars($import_data['post_title']) . '" />';
                        }
                        reset($import_data['enclosures']);
                        echo '</div>';
                        echo '</td>';
                        break;
                    case 'post-date':
                        echo "<td {$class}>";
                        $timestamp = strtotime($import_data['post_date']);
                        echo date('Y/m/d', $timestamp);
                        echo "</td>";
                        break;
                    case 'feed-slug':
                        echo "<td {$class}>{$feed_slug}";
                        echo "</td>";
                        break;
                    default:
                        echo "<td {$class}>";
                        $feed_slug = substr($column_name, 5);
                        if ($column_name == 'exclude') {
                            $feed_slug = '';
                        }
                        $enclosure_data = false;
                        $EnclosureURL = '';
                        echo '<div class="">&nbsp;<br />';
                        if (isset($CurrentEnclosures[$feed_slug]) && $CurrentEnclosures[$feed_slug]['imported']) {
                            $index = 1;
                            while (list($episode_index, $episode_data) = each($import_data['enclosures'])) {
                                echo "File {$index}: ";
                                if ($CurrentEnclosures[$feed_slug]['url'] == $episode_data['url']) {
                                    if (!empty($CurrentEnclosures[$feed_slug]['present'])) {
                                        echo '<strong style="color: green;">' . __('present', 'powerpress') . '</strong>';
                                    } else {
                                        echo '<strong style="color: green;">' . __('imported', 'powerpress') . '</strong>';
                                    }
                                } else {
                                    echo 'X';
                                }
                                echo "<br/>\n";
                                $index++;
                            }
                            reset($import_data['enclosures']);
                        } else {
                            $index = 1;
                            while (list($episode_index, $episode_data) = each($import_data['enclosures'])) {
                                echo "File&nbsp;{$index}:&nbsp;";
                                if (!empty($episode_data['imported'])) {
                                    echo '&nbsp;X';
                                } else {
                                    $checked = '';
                                    if (!isset($CheckedEpisodes[$episode_index]) && !in_array($feed_slug, $CheckedEpisodes)) {
                                        $checked = 'checked';
                                        $CheckedEpisodes[$episode_index] = $feed_slug;
                                    }
                                    if (!isset($CheckedEpisodes[$episode_index]) && $feed_slug == '') {
                                        $checked = 'checked';
                                    }
                                    echo '<input type="radio" id="import_' . $post_id . '_' . $episode_index . '" name="Import[' . $post_id . '][' . $episode_index . ']" value="' . $feed_slug . '" ' . $checked . ' onclick="return check_radio_selection(this, ' . $post_id . ', ' . $episode_index . ')" />';
                                }
                                echo '<br/>';
                                $index++;
                            }
                            reset($import_data['enclosures']);
                        }
                        echo '</div>';
                        echo "</td>";
                        $feed_index++;
                        break;
                }
            }
            echo "\n    </tr>\n";
            $count++;
        }
        ?>
	</tbody>
</table>

<p><?php 
        echo sprintf(__('Importable episodes highlighted in %s with asterisks *.', 'powerpress'), '<span style="color: #CC0000; font-weight: bold;">' . __('red', 'powerpress') . '</span>');
        ?>
</p>
<p style="margin-bottom: 0; padding-bottom: 0;"><?php 
        echo __('Select Only:', 'powerpress');
        ?>
</p>
<?php 
        if ($results['feeds_required'] < 1) {
            $results['feeds_required'] = 1;
        }
        for ($number = 0; $number < $MaxFileIndex; $number++) {
            ?>
<p style="margin: 0 0 0 40px; padding: 0;">
 <?php 
            echo __('File', 'powerpress');
            ?>
 <?php 
            echo $number + 1;
            ?>
:
<?php 
            while (list($feed_slug, $feed_title) = each($Settings['custom_feeds'])) {
                echo '<a href="javascript:void()" onclick="select_all(' . $number . ',\'' . $feed_slug . '\');return false;">' . htmlspecialchars($feed_title) . '</a> | ';
            }
            reset($Settings['custom_feeds']);
            ?>
<a href="javascript:void()" onclick="select_all(<?php 
            echo $number;
            ?>
,'');return false;"><?php 
            echo __('No Import', 'powerpress');
            ?>
</a>
</p>
<?php 
        }
        ?>
<p><?php 
        echo __('Types of media found:', 'powerpress');
        ?>
 
<?php 
        $comma = false;
        global $g_import_mt_extensions;
        while (list($ext, $null) = each($g_import_mt_extensions)) {
            if ($comma) {
                echo ', ';
            }
            $comma = true;
            echo $ext;
        }
        ?>
</p>



<?php 
    }
    if ($StrandedEpisodes) {
        reset($results);
        ?>
<p><?php 
        echo sprintf(__('There are %d media files that can be imported with a total of %d blog post podcast episodes.', 'powerpress'), $StrandedEpisodes, count($results) - 1);
        ?>
</p>
<?php 
    }
    ?>
<p class="submit">
<input type="submit" name="Submit" id="powerpress_import_button" class="button-primary" value="Import Episodes" onclick="return confirm('Import selected episodes, are you sure?');" />
 &nbsp; <input type="checkbox" name="DetectDuration" value="1" /> <?php 
    echo __('Detect duration for mp3 media. (expect script to take a while with this option)', 'powerpress');
    ?>
</p>
</p>
</form>
<hr />
<form enctype="enctype" method="get" action="<?php 
    echo admin_url('admin.php');
    ?>
">
<input type="hidden" name="page" value="powerpress/powerpressadmin_tools.php" />
<input type="hidden" name="action" value="powerpress-mt-epiosdes" />
<h2><?php 
    echo __('Filter Results', 'powerpress');
    ?>
</h2>
<p><label><?php 
    echo __('Include Only', 'powerpress');
    ?>
</label><input type="text" name="include_only_ext" value="<?php 
    if (!empty($_GET['include_only_ext'])) {
        echo htmlspecialchars($_GET['include_only_ext']);
    }
    ?>
" style="width: 240px;" />
(<?php 
    echo __('leave blank for all media', 'powerpress');
    ?>
) <br />
<label>&nbsp;</label><?php 
    echo __('Specify the file extensions to include separated by commas (e.g. mp3, m4v).', 'powerpress');
    ?>
</p>
<p class="submit">
<input type="submit" name="Submit" class="button-primary" value="<?php 
    echo __('Filter Episodes', 'powerpress');
    ?>
" />
</p>
	<!-- start footer -->
<?php 
}
function powerpressadmin_diagnostics()
{
    global $powerpress_diags, $powerpress_diag_message;
    $GeneralSettings = get_option('powerpress_general');
    if (empty($powerpress_diags)) {
        powerpressadmin_diagnostics_process();
        powerpress_page_message_print();
    }
    ?>

<h2><?php 
    echo __('Blubrry PowerPress Diagnostics', 'powerpress');
    ?>
</h2>
<p>
	<?php 
    echo __('The Diagnostics page checks to see if your server is configured to support all of the available features in Blubrry PowerPress.', 'powerpress');
    ?>
</p>

<?php 
    if (!empty($powerpress_diag_message)) {
        ?>
<h3 style="margin-bottom: 2px;"><?php 
        echo __('Diagnostics Email Message', 'powerpress');
        ?>
</h3>
<div style="border: 2px inset #000000; padding: 10px; margin-right: 20px; font-size: 85%;">
<?php 
        echo $powerpress_diag_message;
        ?>
</div>
<?php 
    }
    ?>

<h3 style="margin-bottom: 0;"><?php 
    echo __('Detecting Media Information', 'powerpress');
    ?>
</h3>
<p style="margin: 0;">
	<?php 
    echo __('The following test checks to see if your web server can make connections with other web servers to obtain file size and media duration information. The test checks to see if either the PHP cURL library is installed or the php.ini setting \'allow_url_fopen\' enabled.', 'powerpress');
    ?>
</p>
<table class="form-table">
<tr valign="top">
<th scope="row">
	<?php 
    powerpressadmin_diagnostics_status($powerpress_diags['detecting_media']['success'], $powerpress_diags['detecting_media']['warning']);
    ?>
</th> 
<td>
	<p><?php 
    echo htmlspecialchars($powerpress_diags['detecting_media']['message']);
    ?>
</p>
<?php 
    if ($powerpress_diags['detecting_media']['message2']) {
        ?>
	<p><?php 
        echo htmlspecialchars($powerpress_diags['detecting_media']['message2']);
        ?>
</p><?php 
    }
    if ($powerpress_diags['detecting_media']['success']) {
        ?>
	<p><?php 
        echo __('If you are still having problems detecting media information, check with your web hosting provider if there is a firewall blocking your server.', 'powerpress');
        ?>
</p>
<?php 
    } else {
        ?>
	<p><?php 
        echo __('Contact your web hosting provider with the information above.', 'powerpress');
        ?>
</p>
<?php 
    }
    ?>
</td>
</tr>
</table>

<!--
<h3 style="margin-bottom: 0;"><?php 
    echo __('Pinging iTunes', 'powerpress');
    ?>
</h3>
<p style="margin: 0;"><?php 
    echo __('The following test checks to see that your web server can make connections with Apple\'s secure ping server.', 'powerpress');
    ?>
</p>
<table class="form-table">
<tr valign="top">
<th scope="row">
	<?php 
    powerpressadmin_diagnostics_status($powerpress_diags['pinging_itunes']['success']);
    ?>
</th> 
<td>
	<p><?php 
    echo htmlspecialchars($powerpress_diags['pinging_itunes']['message']);
    ?>
</p>
<?php 
    if ($powerpress_diags['pinging_itunes']['success'] == false) {
        ?>
	<p><?php 
        echo __('Contact your web hosting provider with the information above.', 'powerpress');
        ?>
</p>
<?php 
    }
    ?>
</td>
</tr>
</table>
-->

<h3 style="margin-bottom: 0;"><?php 
    echo __('Uploading Artwork', 'powerpress');
    ?>
</h3>
<p style="margin: 0;"><?php 
    echo __('The following test checks to see that you can upload and store files on your web server.', 'powerpress');
    ?>
</p>
<table class="form-table">
<tr valign="top">
<th scope="row">
	<?php 
    powerpressadmin_diagnostics_status($powerpress_diags['uploading_artwork']['success']);
    ?>
</th> 
<td>
	<p><?php 
    echo htmlspecialchars($powerpress_diags['uploading_artwork']['message']);
    ?>
</p>
</td>
</tr>
</table>

<h3 style="margin-bottom: 0;"><?php 
    echo __('System Information', 'powerpress');
    ?>
</h3>
<p style="margin: 0;"><?php 
    echo __('The following test checks your version of PHP, memory usage and temporary directory access.', 'powerpress');
    ?>
</p>
<table class="form-table">
<tr valign="top">
<th scope="row">
	<?php 
    powerpressadmin_diagnostics_status($powerpress_diags['system_info']['success'], $powerpress_diags['system_info']['warning'] || $powerpress_diags['system_info']['php_cgi']);
    ?>
</th> 
<td>
	<p><?php 
    echo htmlspecialchars(sprintf(__('WordPress Version %s'), $GLOBALS['wp_version']));
    ?>
</p>
	<p><?php 
    echo htmlspecialchars($powerpress_diags['system_info']['message']);
    ?>
</p>
	<p><?php 
    echo htmlspecialchars($powerpress_diags['system_info']['message2']);
    ?>
</p>
	<p><?php 
    echo htmlspecialchars($powerpress_diags['system_info']['message3']);
    ?>
</p>
<?php 
    if (!empty($powerpress_diags['system_info']['php_cgi'])) {
        ?>
	<p><?php 
        echo __('Warning:', 'powerpress') . ' ' . __('PHP running in CGI mode.', 'powerpress');
        ?>
</p>
<?php 
    }
    if ($powerpress_diags['system_info']['warning']) {
        ?>
	<p><?php 
        echo __('Contact your web hosting provider to inquire how to increase the PHP memory limit on your web server.', 'powerpress');
        ?>
</p>
<?php 
    }
    ?>

</td>
</tr>
</table>

<form enctype="multipart/form-data" method="get" action="<?php 
    echo admin_url('admin.php');
    ?>
">
<input type="hidden" name="action" value="powerpress-diagnostics" />
<input type="hidden" name="page" value="powerpress/powerpressadmin_tools.php" />
<?php 
    // Print nonce
    wp_nonce_field('powerpress-diagnostics');
    ?>

<h3 style="margin-bottom: 0;"><?php 
    echo __('Email Results', 'powerpress');
    ?>
</h3>
<p style="margin: 0;"><?php 
    echo __('Send the results above to the specified Email address.', 'powerpress');
    ?>
</p>
<table class="form-table">
<tr valign="top">
<th scope="row">
	<?php 
    echo __('Email', 'powerpress');
    ?>
</th> 
<td>
	<div style="margin-top: 5px;">
		<input type="text" name="Email" value="" style="width: 50%;" />
		<input type="submit" name="Submit" id="powerpress_save_button" class="button-primary" value="Send Results" />
	</div>
	<div>
		<input type="checkbox" name="CC" value="1" style="vertical-align: text-top;" checked /> CC: <?php 
    $user_info = wp_get_current_user();
    echo "&quot;{$user_info->user_nicename}&quot; &lt;{$user_info->user_email}&gt;";
    ?>
	</div>
	<div>
		<input type="checkbox" name="ap" value="1" style="vertical-align: text-top;" checked /> <?php 
    echo __('Include list of active plugins in diagnostics results.', 'powerpress');
    ?>
	</div>
</td>
</tr>
</table>
</form>

<p>&nbsp;</p>

	<!-- start footer -->
<?php 
}
Пример #4
0
    public function _admin_ajax_configure_services($blog_id, $Step = 1, $Settings = false, $Programs = false, $Password = '')
    {
        if (!current_user_can(POWERPRESS_CAPABILITY_MANAGE_OPTIONS)) {
            powerpress_page_message_add_notice(__('You do not have sufficient permission to manage options.', 'powerpress-multisite'));
            powerpress_page_message_print();
            return;
        }
        if (!ini_get('allow_url_fopen') && !function_exists('curl_init')) {
            powerpress_page_message_add_notice(__('Your server must either have the php.ini setting \'allow_url_fopen\' enabled or have the PHP cURL library installed in order to continue.', 'powerpress-multisite'));
            powerpress_page_message_print();
            return;
        }
        if (empty($blog_id)) {
            powerpress_page_message_add_notice(__('No site specified.', 'powerpress-multisite'));
            powerpress_page_message_print();
            return;
        }
        if (!$Settings) {
            $Settings = get_blog_option($blog_id, 'powerpress_general');
        }
        if (empty($Settings['blubrry_username'])) {
            $Settings['blubrry_username'] = '';
        }
        if (empty($Settings['blubrry_hosting']) || $Settings['blubrry_hosting'] === 'false') {
            $Settings['blubrry_hosting'] = false;
        }
        if (empty($Settings['blubrry_program_keyword'])) {
            $Settings['blubrry_program_keyword'] = '';
        }
        if (empty($Programs)) {
            $Programs = array();
        }
        powerpress_page_message_print();
        ?>
<form action="<?php 
        echo network_admin_url('sites.php?action=powerpress-multisite');
        ?>
" enctype="multipart/form-data" method="post">
<?php 
        wp_nonce_field('powerpress-multisite-ajax-account');
        ?>
<input type="hidden" name="action" value="powerpress-jquery-account-save" />
<input type="hidden" name="ajax" value="1" />
<input type="hidden" name="blog_id" value="<?php 
        echo $blog_id;
        ?>
" />
<div id="accountinfo">
	<h2><?php 
        echo __('Blubrry Services Integration', 'powerpress');
        ?>
</h2>
<?php 
        if ($Step == 1) {
            ?>
	<p>
		<label for="blubrry_username"><?php 
            echo __('Blubrry User Name (Email)', 'powerpress');
            ?>
</label>
		<input type="text" id="blubrry_username" name="Settings[blubrry_username]" value="<?php 
            echo $Settings['blubrry_username'];
            ?>
" />
	</p>
	<p id="password_row">
		<label for="password_password"><?php 
            echo __('Blubrry Password', 'powerpress');
            ?>
</label>
		<input type="password" id="password_password" name="Password" value="" />
	</p>
<?php 
        } else {
            if ($Step == 3) {
                ?>
<p style="text-align: center;"><strong><?php 
                echo __('Settings Saved Successfully!', 'powerpress');
                ?>
</strong></p>
<p style="text-align: center;">
	<a href="<?php 
                echo network_admin_url("sites.php?page=powerpress-multisite&amp;={$blog_idW}");
                ?>
" onclick="self.parent.tb_remove(); return false;" target="_top"><?php 
                echo __('Close', 'powerpress');
                ?>
</a>
</p>
<script type="text/javascript"><!--

jQuery(document).ready(function($) {
	// Upload loading, check the parent window for #blubrry_stats_settings div
	if( jQuery('#blubrry_stats_settings',parent.document).length )
	{
		jQuery('#blubrry_stats_settings',parent.document).html('');
	}
});

// --></script>
<?php 
            } else {
                ?>
	<input type="hidden" name="Settings[blubrry_username]" value="<?php 
                echo htmlspecialchars($Settings['blubrry_username']);
                ?>
" />
	<input type="hidden" name="Password" value="<?php 
                echo htmlspecialchars($Password);
                ?>
" />
	<!-- <input type="hidden" name="Settings[blubrry_hosting]" value="<?php 
                echo $Settings['blubrry_hosting'];
                ?>
" /> -->
	<p>
		<label for="blubrry_program_keyword"><?php 
                echo __('Select Blubrry Program', 'powerpress');
                ?>
</label>
<select id="blubrry_program_keyword" name="Settings[blubrry_program_keyword]">
<option value=""><?php 
                echo __('Select Program', 'powerpress');
                ?>
</option>
<?php 
                while (list($value, $desc) = each($Programs)) {
                    echo "\t<option value=\"{$value}\"" . ($Settings['blubrry_program_keyword'] == $value ? ' selected' : '') . ">{$desc}</option>\n";
                }
                ?>
</select>
	</p>
<?php 
            }
        }
        if ($Step != 3) {
            ?>
	<p>
		<input type="submit" name="Save" value="<?php 
            echo __('Save', 'powerpress');
            ?>
" />
		<input type="button" name="Cancel" value="<?php 
            echo __('Cancel', 'powerpress');
            ?>
" onclick="self.parent.tb_remove();" />
		<input type="submit" name="Remove" value="Remove" style="float: right;" onclick="return confirm('<?php 
            echo __('Remove Blubrry Services Integration, are you sure?', 'powerpress');
            ?>
');" />
	</p>
<?php 
        }
        ?>
</div>
</form>
<?php 
    }
function powerpress_admin_migrate()
{
    $files = powerpress_admin_migrate_get_files();
    if (!empty($_REQUEST['migrate_step']) && $_REQUEST['migrate_step'] == 1) {
        powerpress_admin_migrate_step1();
        return;
    }
    $Step = 0;
    $RequestedCount = 0;
    $BlubrryQueuedCount = 0;
    $MigratedCount = 0;
    $FailedCount = 0;
    $SkippedCount = 0;
    $QueuedResults = get_option('powerpress_migrate_queued');
    if (is_array($QueuedResults)) {
        $RequestedCount = count($QueuedResults);
        $Step = 1;
    }
    $MigrateStatus = false;
    if ($Step >= 1) {
        $MigrateStatus = get_option('powerpress_migrate_status');
        if (empty($MigrateStatus) || $MigrateStatus['updated_timestamp'] < current_time('timestamp') - 60 * 30 || !empty($_GET['refresh_migrate_status'])) {
            $update_option = true;
            if ($MigrateStatus == false) {
                $update_option = false;
            }
            $MigrateStatus = powerpress_admin_migrate_get_status();
            if (is_array($MigrateStatus)) {
                $MigrateStatus['updated_timestamp'] = current_time('timestamp');
                if ($update_option) {
                    update_option('powerpress_migrate_status', $MigrateStatus);
                } else {
                    add_option('powerpress_migrate_status', $MigrateStatus, '', 'no');
                }
            }
        }
    }
    if (!empty($MigrateStatus['completed'])) {
        $Step = 3;
        $MigratedCount = $MigrateStatus['completed'];
    }
    if (!empty($MigrateStatus['failed'])) {
        $FailedCount = $MigrateStatus['failed'];
    }
    if (!empty($MigrateStatus['skipped'])) {
        $SkippedCount = $MigrateStatus['skipped'];
    }
    if (!empty($MigrateStatus['queued'])) {
        $BlubrryQueuedCount = $MigrateStatus['queued'];
    }
    $CompletedResults = get_option('powerpress_migrate_completed');
    if (!empty($_REQUEST['migrate_step']) && $_REQUEST['migrate_step'] == 2 && $Step > 0) {
        powerpress_admin_migrate_step2($QueuedResults, $MigrateStatus, $CompletedResults);
        return;
    }
    if (!empty($_REQUEST['migrate_step']) && $_REQUEST['migrate_step'] == 3 && $Step == 3) {
        powerpress_admin_migrate_step3($MigrateStatus, $CompletedResults);
        return;
    }
    $CompletedCount = 0;
    if (!empty($CompletedResults['completed_count'])) {
        $CompletedCount = $CompletedResults['completed_count'];
    }
    powerpress_page_message_print();
    if (!empty($GLOBALS['g_powerprss_verify_failed_count'])) {
        echo '<p>';
        echo sprintf(__('%d urls failed verification.', 'powerpress'), $GLOBALS['g_powerprss_verify_failed_count']);
        echo '</p>';
    }
    if (!empty($GLOBALS['g_powerpress_total_files_found'])) {
        echo '<p>';
        echo sprintf(__('%d migrated files found on this site.', 'powerpress'), $GLOBALS['g_powerpress_total_files_found']);
        echo '</p>';
    }
    if (!empty($GLOBALS['g_powerpress_already_migrated'])) {
        echo '<p>';
        echo sprintf(__('%d episodes already updated with new URLs.', 'powerpress'), $GLOBALS['g_powerpress_already_migrated']);
        echo '</p>';
    }
    if (!empty($GLOBALS['g_powerpress_update_errors'])) {
        echo '<p>';
        echo sprintf(__('%d update errors.', 'powerpress'), $GLOBALS['g_powerpress_update_errors']);
        echo '</p>';
    }
    ?>

<h2><?php 
    echo __('Migrate Media to your Blubrry Podcast Media Hosting Account', 'powerpress');
    ?>
</h2>

<p><?php 
    echo __('Migrate all of your media to Blubrry with only a few clicks.', 'powerpress');
    ?>
</p>

<p><a title="<?php 
    echo esc_attr(__('Blubrry Podcast Hosting', 'powerpress'));
    ?>
" href="<?php 
    echo admin_url('admin.php');
    ?>
?action=powerpress-jquery-hosting&amp;KeepThis=true&amp;TB_iframe=true&amp;modal=false&amp;width=800&amp;height=400" target="_blank" class="thickbox"><?php 
    echo __('Don\'t have a blubrry podcast hosting account?', 'powerpress');
    ?>
</a></p>



<div id="powerpress_steps">
	<div class="powerpress-step active-step" id="powerpreess_step_1a">
	<h3><?php 
    echo __('Step 1', 'powerpress');
    ?>
</h3>
	<p>
	<a href="<?php 
    echo admin_url("admin.php?page=powerpress/powerpressadmin_migrate.php&amp;action=powerpress-migrate-media&amp;migrate_step=1");
    ?>
"><?php 
    echo __('Select Media to Migrate', 'powerpress');
    ?>
</a>
	</p>
	<br />
	<p class="normal"><?php 
    echo sprintf(__('%d files requested', 'powerpress'), $RequestedCount);
    ?>
</p>
	<p  class="normal"><a href="<?php 
    echo admin_url("admin.php?page=powerpress/powerpressadmin_migrate.php&amp;action=powerpress-migrate-media&amp;migrate_step=1");
    ?>
">Add media files</a></p>
	<?php 
    ?>
	</div>
	<div class="powerpress-step<?php 
    echo $Step >= 1 ? ' active-step' : '';
    ?>
">
	<h3><?php 
    echo __('Step 2', 'powerpress');
    ?>
</h3>
	<p>
	<?php 
    echo __('Wait for media to migrate', 'powerpress');
    ?>
	</p>
	<br />
	<?php 
    if ($Step >= 1) {
        ?>
	<?php 
        if ($BlubrryQueuedCount) {
            ?>
<p class="normal"><?php 
            echo sprintf(__('%d files in queue', 'powerpress'), $BlubrryQueuedCount);
            ?>
</p> <?php 
        }
        ?>
	<p class="normal"><?php 
        echo sprintf(__('%d files migrated', 'powerpress'), $MigratedCount);
        ?>
</p><?php 
    }
    ?>
	<?php 
    if ($FailedCount) {
        ?>
<p class="normal"><?php 
        echo sprintf(__('%d files failed', 'powerpress'), $FailedCount);
        ?>
</p><?php 
    }
    ?>
	<?php 
    if ($SkippedCount) {
        ?>
<p class="normal"><?php 
        echo sprintf(__('%d files skipped', 'powerpress'), $SkippedCount);
        ?>
</p><?php 
    }
    ?>
	
	<p  class="normal"><a href="<?php 
    echo admin_url("admin.php?page=powerpress/powerpressadmin_migrate.php&amp;action=powerpress-migrate-media&amp;refresh_migrate_status=1");
    ?>
"><?php 
    echo __('Refresh', 'powerprss');
    ?>
</a></p>
	<?php 
    ?>
	</div>
	<div class="powerpress-step<?php 
    echo $Step >= 2 ? ' active-step' : '';
    ?>
">
	<h3><?php 
    echo __('Step 3', 'powerpress');
    ?>
</h3>
	
	<p>
	<a href="<?php 
    echo admin_url("admin.php?page=powerpress/powerpressadmin_migrate.php&amp;action=powerpress-migrate-media&amp;migrate_step=3");
    ?>
"><?php 
    echo __('Update your Episodes', 'powerpress');
    ?>
</a>
	</p>
	<br />
	<?php 
    if ($CompletedCount) {
        ?>
<p class="normal"><?php 
        echo sprintf(__('%d episodes updated', 'powerpress'), $CompletedCount);
        ?>
</p><?php 
    }
    ?>
<!--	<p class="normal">0 episodes updated</p> -->
	<p class="normal"><a href="<?php 
    echo admin_url("admin.php?page=powerpress/powerpressadmin_migrate.php&amp;action=powerpress-migrate-media&amp;migrate_step=3");
    ?>
"><?php 
    echo __('Update Episodes Now', 'powerpress');
    ?>
</a></p>
	<?php 
    ?>
	</div>
	<div class="clear"></div>
</div>
<div class="clear"></div>
<br /><br />
<?php 
    if (!empty($MigrateStatus['updated_timestamp'])) {
        ?>
	<p>
	<strong><?php 
        echo __('Migration status last updated', 'powerpress');
        ?>
</strong><br />
	<?php 
        echo date_i18n(get_option('date_format') . ' - ' . get_option('time_format'), $MigrateStatus['updated_timestamp'], false);
        ?>
	</p>
	<p><a href="<?php 
        echo admin_url("admin.php?page=powerpress/powerpressadmin_migrate.php&amp;action=powerpress-migrate-media&amp;migrate_step=2");
        ?>
"><?php 
        echo __('List of requested media', 'powerpress');
        ?>
</a></p>
<?php 
    }
    if ($SkippedCount > 0 || $FailedCount > 0) {
        // TODO: Print a message letting folks know they can go to blubrry.com to see the migration status of the failed URLs.
        ?>
<p><strong><a href="http://publish.blubrry.com/content/media_migrate2.php" target="_blank"><?php 
        echo __('Please sign into blubrry.com to review media that failed to migrate.', 'powerpress');
        ?>
</a></strong></p>
<?php 
    }
    ?>

<?php 
    if ($Step > 0) {
        ?>
<p>
 <?php 
        echo __('Migration can take a while, please be patient. Please contact support if you do not see results within 48 hours. You may repeat these steps if additional episdoes have been added after to starting migration.', 'powepress');
        ?>
</p>
<p><a href="<?php 
        echo admin_url();
        echo wp_nonce_url("admin.php?page=powerpress/powerpressadmin_migrate.php&amp;migrate_action=reset_migrate_media&amp;action=powerpress-migrate-media", 'powerpress-migrate-media');
        ?>
" onclick="return confirm('<?php 
        echo esc_js(__('Reset migration, are you sure?', 'powerpress'));
        ?>
');"><?php 
        echo __('Reset Migration', 'powerpress');
        ?>
</a> 
<?php 
        ?>
</p>
<br /><br />
<?php 
    }
}
Пример #6
0
function powerpress_admin_page_header($page = false, $nonce_field = 'powerpress-edit', $simple_mode = false)
{
    if (!$page) {
        $page = 'powerpress/powerpressadmin_basic.php';
    }
    ?>
<div class="wrap" id="powerpress_settings">
<?php 
    if ($nonce_field) {
        ?>
<form enctype="multipart/form-data" method="post" action="<?php 
        echo admin_url('admin.php?page=' . $page);
        ?>
">
<?php 
        wp_nonce_field($nonce_field);
    }
    powerpress_page_message_print();
}
Пример #7
0
function powerpress_admin_podpress()
{
    $results = powerpress_get_podpress_episodes(false);
    $Settings = powerpress_get_settings('powerpress_general', false);
    if (!isset($Settings['custom_feeds']['podcast'])) {
        $Settings['custom_feeds']['podcast'] = __('Podcast Feed (default)', 'powerpress');
    }
    $AllowImport = false;
    $AllowCleanup = true;
    if ($results) {
        if ($results['feeds_required'] > count($Settings['custom_feeds'])) {
            powerpress_page_message_add_error(sprintf(__('We found blog posts that have %d media files. You will need to create %d more Custom Feed%s in order to continue.', 'powerpress'), $results['feeds_required'], $results['feeds_required'] - count($Settings['custom_feeds']), $results['feeds_required'] - count($Settings['custom_feeds']) > 1 ? 's' : ''));
        } else {
            $AllowImport = true;
        }
    }
    powerpress_page_message_print();
    powerpressadmin_podpress_import_print_log();
    ?>
<style type="text/css">
.column-exclude {
	width: 80px;
}
.column-post-date {
	width: 80px;
}
label {
	float: left;
	width: 160px;
}
</style>
<script language="javascript"><!--

function check_radio_selection(obj, PostID, FileIndex)
{
	if( obj.value == '' ) // Users can select the no feed option as much as they want
		return true;
	
	var Field = obj.id;
	while( Field.charAt( Field.length-1 ) >= "0" &&  Field.charAt( Field.length-1 ) <= "9" ) // ( chr < "0" ) || ( chr > "9" )
	{
		Field = Field.substring(0, Field.length-1);
	}
	
	var Pos = 0;
	var CheckObj = document.getElementsByName( "Import["+PostID+"]["+Pos+"]" );
	while( CheckObj )
	{
		if( CheckObj.length == 0 )
			break;
			
		if( Pos != FileIndex )
		{
			for (var i = 0; i < CheckObj.length; i++)
			{
				if (CheckObj[i].type == 'radio' && CheckObj[i].checked && CheckObj[i].value == obj.value )
				{
					alert("<?php 
    echo __('Sorry, you may only select one media file per post per feed.', 'powerpress');
    ?>
");
					return false;
				}
			}
		}
		Pos++;
		var CheckObj = document.getElementsByName( "Import["+PostID+"]["+Pos+"]" );
	}
	
	return true;
}

function no_import_all()
{
	if( !confirm('<?php 
    echo __('Select "No Import" option for all media files?', 'powerpress');
    ?>
') )
		return;
		
	var Inputs = document.getElementsByTagName('input');
	for (var i = 0; i < Inputs.length; i++)
	{
		var Elem = Inputs[i];
		if( Elem.type == 'radio' && Elem.value == '' )
			Elem.checked = true;
	}
}

function select_all(index,value)
{
	var NoImport = [];
	var Inputs = document.getElementsByTagName('input');
	for (var i = 0; i < Inputs.length; i++)
	{
		var Elem = Inputs[i];
		if( Elem.type == 'radio' && Elem.value == value )
		{
			ElemIndex = Elem.id.substring( Elem.id.lastIndexOf('_')+1);
			if( ElemIndex == index )
				Elem.checked = true;
			else if( Elem.checked && Elem.value != '' )
				NoImport.push( Elem.id );
		}
	}
	for (var i = 0; i < Inputs.length; i++)
	{
		var Elem = Inputs[i];
		if( Elem.type == 'radio' && Elem.value == '' )
		{
			for (var j = 0; j < NoImport.length; j++)
			{
				if( NoImport[j] == Elem.id )
					Elem.checked = true;
			}
		}
	}
}
//-->
</script>
<h2><?php 
    echo __('Import PodPress Episodes', 'powerpress');
    ?>
</h2>
<?php 
    //echo "<pre id=\"podpress_debug_info\" style=\"display: none;\">";
    //print_r($results);
    //echo "</pre>";
    //echo '<p><a href="#" onclick="javascript:document.getElementById(\'podpress_debug_info\').style.display=\'block\';this.style.display=\'none\';return false;">Show Debug Info</a></p>';
    if (count($results) == 0 || count($results) == 1) {
        ?>
	
	<p><?php 
        echo __('No PodPress episodes found to import.', 'powerpress');
        ?>
</p>
<?php 
    } else {
        ?>
<input type="hidden" name="action" value="powerpress-importpodpress" />
<p><?php 
        echo __('Select the media file under each feed for each episode you wish to import.', 'powerpress');
        ?>
</p>
<table class="widefat fixed" cellspacing="0">
	<thead>
	<tr>
<?php 
        print_column_headers('powerpressadmin_importpodpress');
        ?>
	</tr>
	</thead>

	<tfoot>
	<tr>
<?php 
        print_column_headers('powerpressadmin_importpodpress', false);
        ?>
	</tr>
	</tfoot>
	<tbody>
<?php 
        $StrandedEpisodes = 0;
        $ImportableEpisodes = 0;
        $count = 0;
        while (list($post_id, $import_data) = each($results)) {
            $edit_link = get_edit_post_link($post_id);
            if ($post_id == 'feeds_required') {
                continue;
            }
            $columns = powerpressadmin_importpodpress_columns();
            $CurrentEnclosures = array();
            if (is_array($Settings['custom_feeds'])) {
                while (list($feed_slug, $value) = each($Settings['custom_feeds'])) {
                    if ($feed_slug == 'podcast') {
                        $enclosure_data = get_post_meta($post_id, 'enclosure', true);
                    } else {
                        $enclosure_data = get_post_meta($post_id, '_' . $feed_slug . ':enclosure', true);
                    }
                    if (!$enclosure_data) {
                        continue;
                    }
                    @(list($EnclosureURL, $EnclosureSize, $EnclosureType, $Serialized) = @explode("\n", $enclosure_data));
                    if ($EnclosureURL) {
                        $CurrentEnclosures[$feed_slug] = array();
                        $CurrentEnclosures[$feed_slug]['url'] = trim($EnclosureURL);
                        $CurrentEnclosures[$feed_slug]['imported'] = false;
                    }
                    $found = false;
                    while (list($episode_index, $episode_data) = each($import_data['podpress_data'])) {
                        if ($episode_data['url'] == $CurrentEnclosures[$feed_slug]['url']) {
                            $import_data['podpress_data'][$episode_index]['imported'] = true;
                            $CurrentEnclosures[$feed_slug]['imported'] = true;
                            $found = true;
                            break;
                        }
                    }
                    reset($import_data['podpress_data']);
                    if ($found == false) {
                        // Add it to the media file list, prepend it...
                        $not_podpress_data = array();
                        $not_podpress_data['url'] = $CurrentEnclosures[$feed_slug]['url'];
                        $not_podpress_data['imported'] = true;
                        $not_podpress_data['not_podpress'] = true;
                        array_push($import_data['podpress_data'], $not_podpress_data);
                        $CurrentEnclosures[$feed_slug]['imported'] = true;
                        $CurrentEnclosures[$feed_slug]['present'] = true;
                    }
                }
                reset($Settings['custom_feeds']);
            }
            if ($count % 2 == 0) {
                echo '<tr valign="middle" class="alternate">';
            } else {
                echo '<tr valign="middle">';
            }
            $CheckedEpisodes = array();
            // key = file_index, value = feed-slug
            $feed_index = 0;
            foreach ($columns as $column_name => $column_display_name) {
                $class = "class=\"column-{$column_name}\"";
                switch ($column_name) {
                    case 'post-title':
                        echo '<td ' . $class . '><strong>';
                        if (current_user_can('edit_post', $post_id)) {
                            ?>
<a class="row-title" href="<?php 
                            echo $edit_link;
                            ?>
" title="<?php 
                            echo esc_attr(sprintf(__('Edit "%s"', 'powerpress'), $import_data['post_title']));
                            ?>
"><?php 
                            echo $import_data['post_title'];
                            ?>
</a><?php 
                        } else {
                            echo $import_data['post_title'];
                        }
                        echo '</strong><br />';
                        echo '<div style="margin-left: 10px;">';
                        $index = 1;
                        while (list($episode_index, $episode_data) = each($import_data['podpress_data'])) {
                            $Parts = parse_url($episode_data['url']);
                            $filename = substr($Parts['path'], strrpos($Parts['path'], '/') + 1);
                            echo "File&nbsp;{$index}:&nbsp;";
                            if (empty($episode_data['not_podpress']) && empty($episode_data['imported'])) {
                                echo '<span style="color: #CC0000; font-weight: bold; cursor:pointer;" onclick="alert(\'' . __('File', 'powerpress') . ': ' . $filename . '\\n' . __('URL', 'powerpress') . ': ' . $episode_data['url'] . '\')">';
                                $AllowCleanup = false;
                                $StrandedEpisodes++;
                            } else {
                                if (empty($episode_data['not_podpress']) && $episode_data['imported']) {
                                    echo '<span style="color: green; font-weight: bold; cursor:pointer;" onclick="alert(\'' . __('File', 'powerpress') . ' ' . $filename . '\\n' . __('URL', 'powerpress') . ': ' . $episode_data['url'] . '\')">';
                                }
                            }
                            if (empty($episode_data['not_podpress']) && empty($episode_data['imported'])) {
                                echo '*';
                            }
                            echo $filename;
                            if (empty($episode_data['not_podpress'])) {
                                echo '</span>';
                            }
                            echo '<br/>';
                            $index++;
                        }
                        reset($import_data['podpress_data']);
                        echo '</div>';
                        echo '</td>';
                        break;
                    case 'post-date':
                        echo "<td {$class}>";
                        $timestamp = strtotime($import_data['post_date']);
                        echo date('Y/m/d', $timestamp);
                        echo "</td>";
                        break;
                    case 'feed-slug':
                        echo "<td {$class}>{$feed_slug}";
                        echo "</td>";
                        break;
                    default:
                        echo "<td {$class}>";
                        $feed_slug = substr($column_name, 5);
                        if ($column_name == 'exclude') {
                            $feed_slug = '';
                        }
                        $enclosure_data = false;
                        $EnclosureURL = '';
                        echo '<div class="">&nbsp;<br />';
                        if (isset($CurrentEnclosures[$feed_slug]) && $CurrentEnclosures[$feed_slug]['imported']) {
                            $index = 1;
                            while (list($episode_index, $episode_data) = each($import_data['podpress_data'])) {
                                echo "File {$index}: ";
                                if ($CurrentEnclosures[$feed_slug]['url'] == $episode_data['url']) {
                                    if (!empty($CurrentEnclosures[$feed_slug]['present'])) {
                                        echo '<strong style="color: green;">' . __('present', 'powerpress') . '</strong>';
                                    } else {
                                        echo '<strong style="color: green;">' . __('imported', 'powerpress') . '</strong>';
                                    }
                                } else {
                                    echo 'X';
                                }
                                echo "<br/>\n";
                                $index++;
                            }
                            reset($import_data['podpress_data']);
                        } else {
                            $index = 1;
                            while (list($episode_index, $episode_data) = each($import_data['podpress_data'])) {
                                echo __('File', 'powerpress') . "&nbsp;{$index}:&nbsp;";
                                if (!empty($episode_data['imported'])) {
                                    echo '&nbsp;X';
                                } else {
                                    $checked = '';
                                    if (!isset($CheckedEpisodes[$episode_index]) && !in_array($feed_slug, $CheckedEpisodes)) {
                                        $checked = 'checked';
                                        $CheckedEpisodes[$episode_index] = $feed_slug;
                                    }
                                    if (!isset($CheckedEpisodes[$episode_index]) && $feed_slug == '') {
                                        $checked = 'checked';
                                    }
                                    echo '<input type="radio" id="import_' . $post_id . '_' . $episode_index . '" name="Import[' . $post_id . '][' . $episode_index . ']" value="' . $feed_slug . '" ' . $checked . ' onclick="return check_radio_selection(this, ' . $post_id . ', ' . $episode_index . ')" />';
                                }
                                echo '<br/>';
                                $index++;
                            }
                            reset($import_data['podpress_data']);
                        }
                        echo '</div>';
                        echo "</td>";
                        $feed_index++;
                        break;
                }
            }
            echo "\n    </tr>\n";
            $count++;
        }
        ?>
	</tbody>
</table>
<p><?php 
        echo sprintf(__('Importable episodes highlighted in %s with asterisks *.', 'powerpress'), '<span style="color: #CC0000; font-weight: bold;">' . __('red', 'powerpress') . '</span>');
        ?>
</p>
<p style="margin-bottom: 0; padding-bottom: 0;"><?php 
        echo __('Select Only', 'powerpress');
        ?>
:</p>
<?php 
        if ($results['feeds_required'] < 1) {
            $results['feeds_required'] = 1;
        }
        for ($number = 0; $number < $results['feeds_required']; $number++) {
            ?>
<p style="margin: 0 0 0 40px; padding: 0;">
 File <?php 
            echo $number + 1;
            ?>
:
<?php 
            while (list($feed_slug, $feed_title) = each($Settings['custom_feeds'])) {
                echo '<a href="javascript:void()" onclick="select_all(' . $number . ',\'' . $feed_slug . '\');return false;">' . htmlspecialchars($feed_title) . '</a> | ';
            }
            ?>
<a href="javascript:void()" onclick="select_all(<?php 
            echo $number;
            ?>
,'');return false;"><?php 
            echo __('No Import', 'powerpress');
            ?>
</a>
</p>
<?php 
            break;
        }
    }
    if (!empty($StrandedEpisodes)) {
        ?>
<p><?php 
        echo sprintf(__('There are %d PodPress media files that can be imported.', 'powerpress'), $StrandedEpisodes);
        ?>
</p>
<?php 
    }
    if ($AllowImport) {
        if (count($results) > 1 && $StrandedEpisodes > 0) {
            ?>
<p class="submit">
<input type="submit" name="Submit" id="powerpress_import_button" class="button-primary" value="<?php 
            echo __('Import Episodes', 'powerpress');
            ?>
" />
</p>
<?php 
        } else {
            ?>
<p class="submit">
<input type="button" name="Submit" id="powerpress_import_button" class="button-primary" value="<?php 
            echo __('Import Episodes', 'powerpress');
            ?>
" onclick="alert('<?php 
            echo __('There are no PodPress episodes found to import.', 'powerpress');
            ?>
');" />
</p>
<?php 
        }
        /*
        if( $AllowCleanup )
        {
        ?>
        </form>
        <form enctype="multipart/form-data" method="post" action="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_tools.php') ?>">
        <?php wp_nonce_field('powerpress-delete-podpress-data'); ?>
        <input type="hidden" name="action" value="deletepodpressdata" />
        <p class="submit">
        <input type="submit" name="Submit" id="powerpress_delete_button" class="button-primary" value="Delete PodPress Data from Database" onclick="return confirm('Delete old PodPress data from database, are you sure?\n\nAll PodPress episode data will be permanently deleted.');" />
        <br />  There is no need to delete PodPress data, but if you prefer to clean up your database then please feel free to use this option.
        </p>
        <?php
        }
        else
        {
        ?>
        
        <p class="submit">
        <input type="button" name="Submit" id="powerpress_delete_button" class="button-primary" value="Delete PodPress Data from Database" onclick="alert('This option will be enabled once all PodPress episodes have been imported.');" />
        </p>
        <?php
        }
        */
    } else {
        ?>
<div class="error powerpress-error">
<?php 
        echo sprintf(__('We found blog posts that have %d media files.', 'powerpress'), $results['feeds_required']);
        echo sprintf(__('You will need to create %d Podcast Channels to continue.', 'powerpress'), $results['feeds_required'] - count($Settings['custom_feeds']));
        ?>
</div>
<p>
<?php 
        echo __('Blubrry PowerPress does not allow you to include multiple media files for one feed item (blog post).', 'powerpress');
        echo __('This is because each podcatcher handles multiple enclosures in feeds differently. iTunes will download the first enclosure that it sees in the feed ignoring the rest.', 'powerpress');
        echo __('Other podcatchers and podcasting directories either pick up the first enclosure or the last in each post item.', 'powerpress');
        echo sprintf(__('This inconsistency combined with the fact that Dave Winer does not recommend multiple enclosures (%s) and FeedValidator.org (%s) recommendation against it is why Blubrry PowerPress does not support them.', 'powerpress'), '<a href="http://www.reallysimplesyndication.com/2004/12/21" target="_blank">' . __('Link', 'powerpress') . '</a>', '<a href="http://www.feedvalidator.org/docs/warning/DuplicateEnclosure.html" target="_blank">' . __('Link', 'powerpress') . '</a>');
        ?>
</p>
<p><?php 
        echo sprintf(__('As a alternative, PowerPress allows you to create additional %s to associate additional media files in a blog post to specific feed channels.', 'powerpress'), '<a href="' . admin_url('admin.php?page=powerpress/powerpressadmin_customfeeds.php') . '">' . __('Custom Podcast Channels', 'powerpress') . '</a>');
        ?>


</p>
<p class="submit">
<input type="button" name="Submit" id="powerpress_import_button" class="button-primary" value="<?php 
        echo __('Import Episodes', 'powerpress');
        ?>
" onclick="alert('<?php 
        echo __('We found blog posts that have %d media files.', 'powerpress');
        echo '\\n\\n';
        echo sprintf(__('You will need to create %d additional Podcast Channels in order to continue.', 'powerpress') . $results['feeds_required'], $results['feeds_required'] - count($Settings['custom_feeds']));
        ?>
');" />
</p>

<?php 
    }
    ?>
</form>
<hr />
<form enctype="enctype" method="get" action="<?php 
    echo admin_url('admin.php');
    ?>
">
<input type="hidden" name="page" value="powerpress/powerpressadmin_tools.php" />
<input type="hidden" name="action" value="powerpress-podpress-epiosdes" />
<h2><?php 
    echo __('Filter Results', 'powerpress');
    ?>
</h2>
<p><label><?php 
    echo __('Include Only', 'powerpress');
    ?>
</label><input type="text" name="include_only_ext" value="<?php 
    if (!empty($_GET['include_only_ext'])) {
        echo htmlspecialchars($_GET['include_only_ext']);
    }
    ?>
" style="width: 240px;" /> <?php 
    echo __('(leave blank for all media)', 'powerpress');
    ?>
<br />
<label>&nbsp;</label><?php 
    echo __('specify the file extensions to include separated by commas (e.g. mp3, m4v).', 'powerpress');
    ?>
</p>
<p class="submit">
<input type="submit" name="Submit" class="button-primary" value="Filter Episodes" />
</p>
<!-- start footer -->
<?php 
}
        function import()
        {
            ?>
	
<div class="wrap">
<h3><?php 
            _e('Importing Podcast', 'powerpress');
            ?>
</h3>
<?php 
            $result = false;
            if (empty($_POST['podcast_feed_url'])) {
                ?>
<p><?php 
                _e('From Uploaded file...', 'powerpress');
                ?>
</p><?php 
                $result = $this->_import_handle_upload();
            } else {
                ?>
<p><?php 
                _e('From URL', 'powerpress');
                ?>
 <?php 
                echo esc_html($_POST['podcast_feed_url']);
                ?>
</p><?php 
                $result = $this->_import_handle_url();
            }
            if ($result == false) {
                return;
            }
            $import_strict = !empty($_POST['import_strict']) ? true : false;
            $import_blog_posts = !empty($_POST['import_blog_posts']) ? true : false;
            $import_item_limit = !empty($_POST['import_item_limit']) ? intval($_POST['import_item_limit']) : 0;
            if (preg_match('/^(.*)<item>/is', $this->m_content, $matches)) {
                $overwrite_program_info = !empty($_POST['import_overwrite_program_info']) ? true : false;
                $import_itunes_image = !empty($_POST['import_itunes_image']) ? true : false;
                $this->import_program_info($matches[1], $overwrite_program_info, $import_itunes_image);
            }
            $this->import_episodes($import_strict, $import_blog_posts, $import_item_limit);
            $migrated_to_blubrry = false;
            if (!empty($_POST['migrate_to_blubrry']) && !empty($GLOBALS['pp_migrate_media_urls'])) {
                require_once POWERPRESS_ABSPATH . '/powerpressadmin-migrate.php';
                $migrated_to_blubrry = true;
                $update_option = true;
                $QueuedFiles = get_option('powerpress_migrate_queued');
                if (!is_array($QueuedFiles)) {
                    $QueuedFiles = array();
                    $update_option = false;
                }
                $add_urls = '';
                while (list($meta_id, $url) = each($GLOBALS['pp_migrate_media_urls'])) {
                    if (!empty($add_urls)) {
                        $add_urls .= "\n";
                    }
                    $add_urls .= $url;
                }
                $UpdateResults = powepress_admin_migrate_add_urls($add_urls);
                if (!empty($UpdateResults)) {
                    // Queued ok...
                    if ($update_option) {
                        update_option('powerpress_migrate_queued', $QueuedFiles);
                    } else {
                        add_option('powerpress_migrate_queued', $QueuedFiles, '', 'no');
                    }
                }
            }
            powerpress_page_message_print();
            echo '<h3>';
            echo __('Import Completed!', 'powerpress');
            echo '</h3>';
            echo '<p>' . sprintf(__('Items Skipped: %d', 'powerpress'), $this->m_item_skipped_count) . '</p>';
            echo '<p>' . sprintf(__('Items Inserted: %d', 'powerpress'), $this->m_item_inserted_count) . '</p>';
            echo '';
            if ($migrated_to_blubrry) {
                echo '<p>' . sprintf(__('Visit %s to monitor the migration process.', 'powerpress'), '<strong><a href="' . admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php') . '">' . __('Migrate Media', 'powerpress') . '</a></strong>') . '</p>';
            } else {
                echo '<p>' . sprintf(__('You may now migrate your media manually or use the %s tool.', 'powerpress'), '<strong><a href="' . admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php') . '">' . __('Migrate Media', 'powerpress') . '</a></strong>') . '</p>';
            }
        }