<?php /* License: ============================================================================== Copyright 2006 Dan Kuykendall (email : dan@kuykendall.org) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-107 USA */ if (!defined('PLUGINDIR')) { $pos = strpos($_SERVER['REQUEST_URI'], 'wp-content'); header('Location: ' . substr($_SERVER['REQUEST_URI'], 0, $pos) . 'wp-admin/admin.php?page=podpress/podpress_general.php'); exit; } require_once ABSPATH . PLUGINDIR . '/podpress/podpress.php'; podPress_isAuthorized(); $podPress->settings_general_edit();
echo trim(podPress_getDuration(stripslashes($_POST['filename']))); } else { die('Error: Security check failed.'); } break; case 'id3tags': if (isset($_POST['_ajax_nonce']) and TRUE == function_exists('wp_verify_nonce') and TRUE == wp_verify_nonce($_POST['_ajax_nonce'], $nonce_key)) { podPress_isAuthorized('edit_posts'); echo podPress_showID3tags(stripslashes($_POST['filename'])); } else { die('Error: Security check failed.'); } break; case 'id3image': if (isset($_GET['_ajax_nonce']) and TRUE == function_exists('wp_verify_nonce') and TRUE == wp_verify_nonce($_GET['_ajax_nonce'], $nonce_key)) { podPress_isAuthorized('edit_posts'); if (isset($_GET['tmpdownloadexists']) and 'yes' === $_GET['tmpdownloadexists']) { podPress_getCoverArt(stripslashes($_GET['filename']), TRUE); } else { podPress_getCoverArt(stripslashes($_GET['filename']), FALSE); } } else { die('Error: Security check failed.'); } break; case 'streamfile': //~ podPress_isAuthorized(); //~ Header("Content-Type: ".$podPress->contentType."; charset=".$podPress->encoding."; filename=".basename($filename)); //~ Header("Content-Disposition: inline; filename=".basename($filename)); //~ break; //~ podPress_isAuthorized();
function settings_general_edit() { global $wpdb, $wp_rewrite, $wp_version; podPress_isAuthorized(); if (isset($_GET['updated']) && $_GET['updated'] == 'true') { echo '<div id="message" class="updated fade"><p>' . __('Settings Saved', 'podpress') . '</p></div>'; } elseif (isset($_GET['updated']) && $_GET['updated'] != 'true') { echo '<div id="message" class="error fade"><p>' . __('<strong>Error:</strong> Unable to save the settings', 'podpress') . '</p></div>'; } // ntm: where is the check? some times this message appears despite the fact that the theme has the necessary functions and hooks // Because it is not a hundred percent reliable I deactivate it for now //~ if(!$this->settings['compatibilityChecks']['wp_head'] || !$this->settings['compatibilityChecks']['wp_footer']) { //~ echo '<div class="wrap">'."\n"; //~ if($this->settings['compatibilityChecks']['themeTested']) { //~ echo ' <h2>'.__('Theme Compatibility Problem', 'podpress').'</h2>'."\n"; //~ } else { //~ echo ' <h2>'.__('Theme Compatibility Check Required', 'podpress').'</h2>'."\n"; //~ } //~ echo ' <fieldset class="options">'."\n"; //~ if($this->settings['compatibilityChecks']['themeTested']) { //~ echo ' <legend>'.__('Current Theme is not compliant', 'podpress').'</legend>'."\n"; //~ } else { //~ echo ' <legend>'.__('Current Theme needs to be tested', 'podpress').'</legend>'."\n"; //~ } //~ echo ' <table width="100%" cellspacing="2" cellpadding="5" class="editform">'."\n"; //~ echo ' <tr>'."\n"; //~ echo ' <td>'."\n"; //~ if($this->settings['compatibilityChecks']['themeTested']) { //~ echo ' podPress has found the "'.get_current_theme().'" theme fails to meet important requirements.<br /><br />'."\n"; //~ } else { //~ echo ' podPress has not yet detected the "'.get_current_theme().'" theme to be compliant. Please visit your <a href="'.podPress_siteurl().'">main blog page</a> for podPress to re-check.<br /><br />'."\n"; //~ } //~ if(!$this->settings['compatibilityChecks']['wp_head']) { //~ echo ' The header.php in your theme needs to be calling wp_head(); before the closing head tag.<br />'."\n"; //~ echo ' Change this:<br />'."\n"; //~ echo ' <code><head></code><br />'."\n"; //~ echo ' To this:<br />'."\n"; //~ echo ' <code><?php wp_head(); ?>'."<br />\n".'<head></code><br />'."\n"; //~ echo ' <br />'."\n"; //~ } //~ if(!$this->settings['compatibilityChecks']['wp_footer']) { //~ echo ' The footer.php in your theme needs to be calling wp_footer(); before the closing body tag.<br />'."\n"; //~ echo ' Change this:<br />'."\n"; //~ echo ' <code></body></code><br />'."\n"; //~ echo ' To this:<br />'."\n"; //~ echo ' <code><?php wp_footer(); ?>'."<br />\n".'</body></code><br />'."\n"; //~ } //~ echo ' Look at the default theme files for example.<br />'."\n"; //~ echo ' </td>'."\n"; //~ echo ' </tr> '."\n"; //~ echo ' </table>'."\n"; //~ echo ' </fieldset>'."\n"; //~ echo '</div>'."\n"; //~ } echo '<div class="wrap">' . "\n"; if (TRUE == version_compare($wp_version, '2.7', '>=')) { echo '<div id="podpress-icon" class="icon32"><br /></div>'; } if (TRUE == version_compare($wp_version, '2.8', '>=')) { echo ' <h2>' . __('General Settings', 'podpress') . '</h2>' . "\n"; // get the plugins version information via the WP plugins version check if (TRUE == version_compare($wp_version, '2.9', '>=')) { $versioninfo = get_site_transient('update_plugins'); } else { $versioninfo = get_transient('update_plugins'); } // If there is a new version then there is a 'response'. This is the method from the plugins page. if (FALSE !== isset($versioninfo->response[plugin_basename(dirname(__FILE__) . '/podpress.php')]->new_version)) { echo '<div class="podpress_notice"><p><a href="http://wordpress.org/extend/plugins/podpress/" target="_blank">' . __('a new podPress version is available', 'podpress') . '</a></p></div>'; } } else { echo ' <h2>' . __('General Settings', 'podpress') . ' <a href="http://www.mightyseek.com/podpress/#download" target="_new"><img src="http://www.mightyseek.com/podpress_downloads/versioncheck.php?current=' . PODPRESS_VERSION . '" alt="' . __('Checking for updates... Failed.', 'podpress') . '" border="0" /></a></h2>' . "\n"; } echo ' <form method="post">' . "\n"; if (function_exists('wp_nonce_field')) { // since WP 2.0.4 wp_nonce_field('podPress_general_options_nonce'); } echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Location of the Media Files', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="mediaWebPath">' . __('URL of the media files directory', 'podpress') . '</label> <a href="javascript:void(null);" onclick="javascript: podPressShowHideRow(\'mediaWebPathHelp\');">(?)</a>:</th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="text" id="mediaWebPath" name="mediaWebPath" class="podpress_wide_text_field" size="40" value="' . attribute_escape(stripslashes($this->settings['mediaWebPath'])) . '" /><br />' . "\n"; if (!isset($this->settings['mediaWebPath']) || empty($this->settings['mediaWebPath'])) { echo "<br />\n"; echo __('Suggested', 'podpress') . ': <code>' . $this->uploadurl . '</code>' . "\n"; } echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr id="mediaWebPathHelp" style="display: none;">' . "\n"; echo ' <th> </th>' . "\n"; echo ' <td>'; echo ' ' . sprintf(__('Point this to the full URL where you put your media files. It can be an URL to a local or remote location. The default value is the URL of the upload folder of this blog for example: <code>%1$s</code>', 'podpress'), $this->uploadurl) . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="mediaFilePath">' . __('Absolute path of the media files directory (optional)', 'podpress') . '</label> <a href="javascript:void(null);" onclick="javascript: podPressShowHideRow(\'mediaFilePathHelp\');">(?)</a>:</th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="text" id="mediaFilePath" name="mediaFilePath" class="podpress_wide_text_field" size="40" value="' . attribute_escape(stripslashes($this->settings['mediaFilePath'])) . '" /><br />' . "\n"; $this->checkLocalPathToMediaFiles(); if (!empty($this->settings['autoDetectedMediaFilePath']) and !empty($this->settings['mediaFilePath'])) { echo __('This directory is not valid or not accessible.', 'podpress') . '<br /> ' . __('Suggested', 'podpress') . ': <code>' . $this->settings['autoDetectedMediaFilePath'] . '</code>' . "\n"; } elseif (empty($this->settings['mediaFilePath'])) { echo __('e.g.', 'podpress') . ': <code>' . $this->settings['autoDetectedMediaFilePath'] . '</code>' . "\n"; } echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="mediaFilePathHelp" style="display: none;">' . "\n"; echo ' <th> </th>' . "\n"; echo ' <td>'; echo ' ' . sprintf(__('This is an optional feature which is used to speed up the time/duration detection process, and is only possible if you host the media files on the same server as your website. Instead of having to go download a file, it can read e.g. the ID3 information of a media file directly.<br />Insert the full path name of the folder which includes the media files. The URL and this path needs to point to the same directory. This path name could look like <code>/home/yoursite/http/wp-content/files/</code> or can be the path of the upload folder of this blog: <code>%1$s</code>.', 'podpress'), $this->uploadpath) . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; $home_path = get_home_path(); $trac_folder_exists = is_dir(ABSPATH . 'podpress_trac'); $trac_htaccess_exists = file_exists(ABSPATH . 'podpress_trac/.htaccess'); $trac_index_exists = file_exists(ABSPATH . 'podpress_trac/index.php'); if (TRUE == $trac_htaccess_exists and TRUE == $trac_htaccess_exists and TRUE == $trac_htaccess_exists) { $podpress_trac_in_place = TRUE; $podpress_trac_str = '<input type="hidden" id="podpress_trac_folder_in_place" value="true" />'; } else { $podpress_trac_in_place = FALSE; $podpress_trac_str = '<input type="hidden" id="podpress_trac_folder_in_place" value="false" />' . "\n"; $podpress_trac_str .= "\t\t\t\t\t" . '<input type="hidden" id="podpress_trac_folder_exists" value="' . var_export($trac_folder_exists, TRUE) . '" />' . "\n"; $podpress_trac_str .= "\t\t\t\t\t" . '<input type="hidden" id="podpress_trac_index_exists" value="' . var_export($trac_index_exists, TRUE) . '" />' . "\n"; $podpress_trac_str .= "\t\t\t\t\t" . '<input type="hidden" id="podpress_trac_htaccess_exists" value="' . var_export($trac_htaccess_exists, TRUE) . '" />'; } if (FALSE === $podpress_trac_in_place and $this->settings['statMethod'] == 'podpress_trac_dir') { $showpodpress_tracWarning = 'style="display: block;"'; } else { $showpodpress_tracWarning = 'style="display: none;"'; } $permalink_structure = get_option('permalink_structure'); if (FALSE === empty($permalink_structure)) { $usingpi = TRUE; $usingpi_str = '<input type="hidden" id="podpress_usingpermalinks" value="true" />'; } else { $usingpi = FALSE; $usingpi_str = '<input type="hidden" id="podpress_usingpermalinks" value="false" />'; } //if (!$usingpi && !$hasHtaccess && $this->settings['statMethod'] == 'permalinks') { if (!$usingpi && $this->settings['statMethod'] == 'permalinks') { $showPermalinksWarning = 'style="display: block;"'; } else { $showPermalinksWarning = 'style="display: none;"'; } if (function_exists('get_admin_url')) { $adminurl = get_admin_url(); // since WP 3.0 } elseif (function_exists('admin_url')) { $adminurl = admin_url(); // since WP 2.6 } else { $adminurl = get_option('siteurl') . '/wp-admin'; } $permalinksettingsurl = trailingslashit($adminurl) . 'options-permalink.php'; if (!$this->settings['enableStats']) { $showStatsOptions = 'style="display: none;"'; } if (TRUE == defined('MULTISITE') and TRUE === constant('MULTISITE') and function_exists('get_blog_count')) { // get_blog_count exists only if it is a multi site installation $multisite_permalink_msg = '<p class="podpress_notice">' . sprintf(__('<strong>Notice:</strong> This blog is part of a multi site blog installation. It might be possible that the method "Use WP Permalinks" works without changing the permalink setting of this particular blog to something other than the default setting. Use the stats method test and control whether it is possible to download and play the media files in your posts. If those tests are not successful then adjust the <a href="%1$s">Permalink Settings of this blog</a>.', 'podpress'), $permalinksettingsurl) . '</p>'; $podpress_trac_msg = '<p class="podpress_notice">' . __('<strong>Notice:</strong> This blog is part of a multi site blog installation. It might be possible that the method "Optional Files podpress_trac directory" works without copying the podpress_trac folder and its files. Use the stats method test and control whether it is possible to download and play the media files in your posts. If those tests are not successful then follow the explanation of this method (see below).', 'podpress') . '</p>'; } else { $multisite_permalink_msg = ''; $podpress_trac_msg = ''; } echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Download Statistics', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="enableStats">' . __('Enable Statistics', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_settings_narrow_col">' . "\n"; echo ' <input type="checkbox" name="enableStats" id="enableStats" '; if ($this->settings['enableStats']) { echo 'checked="checked"'; } echo " onclick=\"javascript: podPressShowHideRow('statWarning'); podPressShowHideRow('statMethodWrapper'); podPressShowHideRow('statMethodHelp'); podPressShowHideRow('statsmethodtest'); podPressShowHideRow('statsmethodtesthelp'); podPressShowHideRow('statLoggingWrapper'); podPressShowHideRow('statLoggingHelp'); podPressShowHideRow('3rdpartyinfo'); podPressShowHideRow('podtracrow'); podPressShowHideRow('blubrryrow'); podPressShowHideRow('statBluBrryWrapper'); podPressShowHideRow('3rdpartystatsrow'); podPressShowHideRow('3rdpartystatsnoticerow'); podPressShowHideRow('disabledashboardwidgetrow'); \"/>\n"; echo ' ' . $usingpi_str . "\n"; echo ' ' . $podpress_trac_str . "\n"; echo ' </td>' . "\n"; echo ' <td>' . __('This will enable the podPress statistics features.', 'podpress') . ' ' . $perm . '</td>' . "\n"; //echo ' <td>'.__('This will enable the podPress statistics features and give possibility to use the statistics from <a href="http://www.blubrry.com/podpress/" target="_blank">blubrry</a> or <a href="http://www.podtrac.com/" target="_blank">Podtrac</a> the included stats support in podPress.', 'podpress').' '.$perm.'</td>'."\n"; echo ' </tr> ' . "\n"; echo ' <tr id="statWarning" ' . $showStatsOptions . '>' . "\n"; echo ' <th></th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <div id="permalinksWarning" ' . $showPermalinksWarning . '>' . "\n"; echo ' <p class="podpress_error">' . sprintf(__('<strong>Warning:</strong> It appears you are not using WordPress permalinks or at least not a non-default permalink setting. If you want to use this statistic method, you need to choose a permalink structure which is different to the default setting. Go to the <a href="%1$s">Permalink Settings of your blog</a> and change that first. Otherwise enabling this statistics feature will most likely cause downloads of media files which were added with podPress to fail.', 'podpress'), $permalinksettingsurl) . '</p>' . "\n"; echo ' ' . $multisite_permalink_msg . "\n"; echo ' </div>' . "\n"; echo ' <div id="podpress_trac_dirWarning" ' . $showpodpress_tracWarning . '>' . "\n"; echo ' <p class="podpress_error">' . __('<strong>Warning:</strong> The "Optional Files podpress_trac directory" statistic method will not work. Because the podpress_trac folder or the files are not in the right place:', 'podpress'); echo ' <br />' . __('- podpress_trac folder exists at the right place:', 'podpress'); if (TRUE === $trac_folder_exists) { echo ' ' . __('true', 'podpress') . "\n"; } else { echo ' <strong>' . __('false', 'podpress') . '</strong>' . "\n"; } echo ' <br />' . __('- the .htacces file in the podpress_trac folder exists:', 'podpress'); if (TRUE === $trac_htaccess_exists) { echo ' ' . __('true', 'podpress') . "\n"; } else { echo ' <strong>' . __('false', 'podpress') . '</strong>' . "\n"; } echo ' <br />' . __('- the index.php file in the podpress_trac folder exists:', 'podpress'); if (TRUE === $trac_index_exists) { echo ' ' . __('true', 'podpress') . "\n"; } else { echo ' <strong>' . __('false', 'podpress') . '</strong>' . "\n"; } echo ' </p>' . "\n"; echo ' ' . $podpress_trac_msg . "\n"; echo ' </div>' . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="statMethodWrapper" ' . $showStatsOptions . '>' . "\n"; echo ' <th><label for="statMethod">' . __('Stat Method', 'podpress') . ':</label></th>' . "\n"; echo ' <td colspan="2">'; echo ' <select name="statMethod" id="statMethod" onchange="podpress_check_method_requirements(this.value);">' . "\n"; echo ' <option value="permalinks" '; if ($this->settings['statMethod'] == 'permalinks') { echo 'selected="selected"'; } echo '>' . __('Use WP Permalinks (recommended)', 'podpress') . '</option>' . "\n"; echo ' <option value="podpress_trac_dir" '; if ($this->settings['statMethod'] == 'podpress_trac_dir') { echo 'selected="selected"'; } echo '>' . __('Optional Files podpress_trac directory', 'podpress') . '</option>' . "\n"; echo ' <option value="download.mp3" '; if ($this->settings['statMethod'] == 'download.mp3') { echo 'selected="selected"'; } echo '>' . __('Use download.mp3', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="statMethodHelp" ' . $showStatsOptions . '>' . "\n"; echo ' <th></th>' . "\n"; echo ' <td colspan="2" class="podpress_settings_description_cell">'; echo ' <ul>' . "\n"; echo ' <li>' . sprintf(__('"Use WP Permalinks" (recommended) - Requires a non-default permalink structure (go to <a href="%1$s">Settings > Permalinks</a>). Activating any non-default permalink setting in Wordpress will create an <a href="http://en.wikipedia.org/wiki/.htaccess" target="_blank" title="en.Wikipedia: .htaccess">.htaccess</a> file (or <a href="http://en.wikipedia.org/wiki/Web.config" target="_blank" title="en.Wikipedia: Web.config">web.config</a> file on some web-servers) in the base directory of your blog which podpress needs to support tracking statistics. If enabling permalinks in Wordpress breaks your download links or results in a "File not found" error when using the media player, then you should look into using one of the other methods for tracking statistics.', 'podpress'), $permalinksettingsurl) . '</li>'; echo ' <li>' . __('"Optional Files podpress_trac directory" - If you cannot use WP permalinks and you run <a href="http://en.wikipedia.org/wiki/Apache_HTTP_Server" target="_blank" title="en.Wikipedia: Apache HTTP Server">Apache</a>, this option may work (depending on the webserver configuration - see details below*). If you choose this option then you need to copy the folder podpress_trac/ including the two files (index.php and .htaccess) to the root folder of your blog. After copying these files the root folder should contain wp-config.php and four subdirectories; wp-admin, wp-content, wp-includes and podpress_trac. The podpress_trac folder contains an .htaccess file and an index.php file which enable podpress to resolve URLs of the media files which will be tracked by the statistics features in podPress. The copied folder and the files should be given the same filesystem permissions as the other folders and files in your WordPress install.<br />*If this method fails after copying the required files and setting the permissions it could be that your server is configured to ignore directory-level .htaccess files. Shared hosting users may need to contact their support to allow these files. If you are configuring your own Apache server the podpress_trac folder needs to have <code>AllowOverride FileInfo Options</code> or <code>AllowOverride All</code>. You can find the necessary configuration details here: <a href="http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride" target="_blank">http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride</a>.', 'podpress') . '</li>'; echo ' <li>' . __('"Use download.mp3" - This is an alternative to using an .htaccess file. This is provided for sites which run webservers that do not use the .htaccess file for configuration, such as Microsoft Internet Information Server (IIS).<br />To use this option, you will need to configure your web server to process .mp3 files the same way it does .php files. This is only necessary for the podPress directory, so that the download.mp3 file will be processed as a .php file.<br />If you do not know the type or version of the webserver you are using you can retrieve the information by using WP plugins like <a href="http://wordpress.org/extend/plugins/wp-system-health/" target="_blank">WP System Health</a> or <a href="http://wordpress.org/extend/plugins/system-information/" target="_blank">System information</a>.', 'podpress') . '</li>'; echo ' <ul>' . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="statsmethodtest" ' . $showStatsOptions . '>' . "\n"; echo ' <th><label for="statsmethodtest">' . __('Test the stat method', 'podpress') . ':</label></th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <input type="button" name="statTest" value="' . __('start the test', 'podpress') . '" onclick="podPressTestStats(\'' . get_bloginfo('home') . '/podpress_trac/web/0/0/podPressStatTest.txt\')"/>' . "\n"; // WP 3.0 compatible echo ' <input type="text" name="statTestResult" id="statTestResult" size="30" value="" readonly="readonly" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="statsmethodtesthelp" ' . $showStatsOptions . '>' . "\n"; echo ' <th></th>' . "\n"; echo ' <td colspan="2" class="podpress_settings_description_cell">'; echo ' ' . __('This test can help you to determine whether your podPress statistics method setting will work under the current circumstances or not.', 'podpress') . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="statLoggingWrapper" ' . $showStatsOptions . '>' . "\n"; echo ' <th><label for="statLogging">' . __('Stat Logging', 'podpress') . ':</label></th>' . "\n"; echo ' <td colspan="2">'; echo ' <select name="statLogging" id="statLogging">' . "\n"; echo ' <option value="Counts" '; if ($this->settings['statLogging'] == 'Counts') { echo 'selected="selected"'; } echo '>' . __('Counts Only (recommended)', 'podpress') . '</option>' . "\n"; echo ' <option value="Full" '; if ($this->settings['statLogging'] == 'Full') { echo 'selected="selected"'; } echo '>' . __('Full', 'podpress') . '</option>' . "\n"; echo ' <option value="FullPlus" '; if ($this->settings['statLogging'] == 'FullPlus') { echo 'selected="selected"'; } echo '>' . __('Full+', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; unset($x); echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="statLoggingHelp" ' . $showStatsOptions . '>' . "\n"; echo ' <th></th>' . "\n"; echo ' <td colspan="2" class="podpress_settings_description_cell">'; echo ' <ul>' . "\n"; echo ' <li>' . __('"Counts Only" (recommended) - podPress counts only how many times a media was downloaded from the website, the feeds and how often the player of this file was started. Your media files should have unique file names. (The db table name is e.g. wp_podpress_statcounts.)', 'podpress') . '</li>'; echo ' <li>' . __('"Full" - With this option podPress will log how many times a media was downloaded from the website, the feeds and how often the player of this file was started. It will also log on each download the ID of the post (or page), the IP address, the referrer, the browser type (User Agent) and the time of the download. Furthermore podPress parses the referer and user agent information and store the information in separate columns in the database.<br />Full includes also the posssibility to mark downloads on the basis of user agent names and IP addresses as downloads of <a href="http://en.wikipedia.org/wiki/Internet_bot" target="_blank" title="en.Wikipedia: Internet bot">Internets bots</a> and filter the statistic tables and graphs. (The db table name is e.g. wp_podpress_stats.) If you add more than one media file to a post (with podPress) then these files should have different file names.', 'podpress') . '</li>'; echo ' <li>' . __('"Full+" (experimental) - If you would like to know all the information "Full" gives you and additionally whether a download has been completed or not. podPress can only try to find out whether a file transfer was complete, if the file is on the same server as your blog (if it is a local file for the script). If you add more than one media file to a post (with podPress) then these files should have different file names. In order to get the information whetehr a download was complete or not podPress (or at least a PHP script of podPress) needs to run during the whole download. But this may lead to problems if the file is relative big or the maximum execution time for PHP scripts is relative short on the server of your blog. If the time limit is reached the download stops. So if you are not allowed to change the max_execution_time setting of the PHP configuration on the server of your blog or if you are unsure what this all means then please use the "Full" method (as recommended).', 'podpress') . '</li>'; echo ' <ul>' . "\n"; echo ' ' . __('Note that if you enable the statistics, the Counts Only counter counts always even if you choose Full or Full+ but not vice versa.', 'podpress') . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; if (TRUE == version_compare($wp_version, '2.5', '>=') and TRUE == version_compare($wp_version, '2.7', '<')) { $this->settings['disabledashboardwidget'] = TRUE; $descwidget_disabled = ' disabled = "disabled"'; $descwidget_notice = __('podPress offers no Dashboard Widget for WP 2.5.x and WP 2.6.x.', 'podpress'); } else { $descwidget_disabled = ''; $descwidget_notice = ''; } echo ' <tr id="disabledashboardwidgetrow" ' . $showStatsOptions . '>' . "\n"; echo ' <th><label for="disabledashboardwidget">' . __('Disable the dashboard widget', 'podpress') . ':</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="checkbox" name="disabledashboardwidget" id="disabledashboardwidget" value="yes"'; if (isset($this->settings['disabledashboardwidget']) and TRUE === $this->settings['disabledashboardwidget']) { echo 'checked="checked"'; } echo $descwidget_disabled . ' />' . "\n"; echo ' </td>' . "\n"; echo ' <td>' . $descwidget_notice . '</td>' . "\n"; echo ' </tr> ' . "\n"; // ntm: reactivate this feature with the constant PODPRESS_ACTIVATE_3RD_PARTY_STATS in the podpress.php files if (TRUE == defined('PODPRESS_ACTIVATE_3RD_PARTY_STATS') and TRUE === constant('PODPRESS_ACTIVATE_3RD_PARTY_STATS')) { switch ($this->settings['enable3rdPartyStats']) { case 'PodTrac': $podtrac_checked = ' checked="checked"'; $blubrry_checked = ''; $disable3rdparty_checked = ''; break; case 'Blubrry': $podtrac_checked = ''; $blubrry_checked = ' checked="checked"'; $disable3rdparty_checked = ''; break; default: $podtrac_checked = ''; $blubrry_checked = ''; $disable3rdparty_checked = ' checked="checked"'; break; } $podtrac_disabled = ''; $blubrry_disabled = ''; $blubrry_readonly = ''; } else { $podtrac_disabled = ' disabled = "disabled"'; $blubrry_disabled = ' disabled = "disabled"'; $blubrry_readonly = 'readonly = "readonly"'; $podtrac_checked = ''; $blubrry_checked = ''; $disable3rdparty_checked = ' checked="checked"'; } // ntm: reactivate this feature with the constant PODPRESS_ACTIVATE_3RD_PARTY_STATS in the podpress.php files if (TRUE == defined('PODPRESS_ACTIVATE_3RD_PARTY_STATS') and TRUE === constant('PODPRESS_ACTIVATE_3RD_PARTY_STATS')) { echo ' <tr id="3rdpartyinfo" class="podpress_settings_headerrow" ' . $showStatsOptions . '>' . "\n"; echo ' <th colspan="3"' . $thirdpartystats_class . '>' . __('In addition to the podPress own counter mechanisms, you can use one from a company:', 'podpress') . '</th>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="podtracrow" ' . $showStatsOptions . '>' . "\n"; echo ' <th><label for="enablePodTracStats">' . __('Enable Podtrac Statistics', 'podpress') . ':</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="radio" name="enable3rdPartyStats" id="enablePodTracStats" value="PodTrac"' . $podtrac_checked . $podtrac_disabled . ' />' . "\n"; echo ' </td>' . "\n"; echo ' <td>' . __('This will use the Podtrac service. <a href="http://www.podtrac.com/" target="_new">More info ...</a>', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="blubrryrow" ' . $showStatsOptions . '>' . "\n"; echo ' <th><label for="enableBlubrryStats">' . __('Enable blubrry Statistics', 'podpress') . ':</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="radio" name="enable3rdPartyStats" id="enableBlubrryStats" value="Blubrry"' . $blubrry_checked . $blubrry_disabled . ' />' . "\n"; echo ' </td>' . "\n"; echo ' <td>' . __('This will use the blubrry service. (You need use a non-default Permalink scheme.) <a href="http://www.blubrry.com/podpress/" target="_new">More info ...</a>', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="statBluBrryWrapper" ' . $showStatsOptions . '>' . "\n"; echo ' <th></th>' . "\n"; echo ' <td></td>' . "\n"; echo ' <td>'; echo ' <label for="statBluBrryProgramKeyword">' . __('Program Keyword', 'podpress') . '</label>:'; echo ' <input type="input" name="statBluBrryProgramKeyword" id="statBluBrryProgramKeyword" ' . $blubrry_readonly . ' value="' . $this->settings['statBluBrryProgramKeyword'] . '"/>'; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; } echo ' <tr id="3rdpartystatsrow" ' . $showStatsOptions . '>' . "\n"; echo ' <th><label for="disable3rdPartyStats">' . __('Disable 3rd Party Statistics', 'podpress') . ':</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="radio" name="enable3rdPartyStats" id="disable3rdPartyStats" value="No"' . $disable3rdparty_checked . ' />' . "\n"; echo ' </td>' . "\n"; echo ' <td></td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="3rdpartystatsnoticerow" ' . $showStatsOptions . '>' . "\n"; echo ' <th></th>' . "\n"; echo ' <td colspan="2">' . "\n"; // ntm: reactivate this feature with the constant PODPRESS_ACTIVATE_3RD_PARTY_STATS in the podpress.php files if (TRUE == defined('PODPRESS_ACTIVATE_3RD_PARTY_STATS') and TRUE === constant('PODPRESS_ACTIVATE_3RD_PARTY_STATS')) { echo ' ' . __('You can use only one of these services together with the podPress statistics at the same time. If you want to have more or different statistics then you could use the service of e.g. Feedburner or eventually Libsyn.', 'podpress') . "\n"; } else { echo ' <span class="nonessential">' . __('This feature is deactivated and will maybe be removed in one of a future versions. If you want to activate this feature then ask for help in <a href="http://wordpress.org/tags/podpress?forum_id=10" target="_blank">this WP.org Forum</a>.', 'podpress') . '</span>' . "\n"; } echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Post Editing', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="maxMediaFiles">' . __('max. number of media files', 'podpress') . ':</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="text" maxlength="3" size="3" name="maxMediaFiles" id="maxMediaFiles" value="' . $this->settings['maxMediaFiles'] . '"' . " />\n"; echo ' </td>' . "\n"; echo ' <td>' . __('which you want to add to single posts (or pages). The higher the number, the bigger the performance impact when loading the Posts editor. (default: 10)', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; if (TRUE == version_compare($wp_version, '2.9', '>=')) { $selected_types = $this->settings['metaboxforcustomposttypes']; if (FALSE === is_array($selected_types)) { $selected_types = array(); } $args = array('public' => true, '_builtin' => false); $output = 'objects'; // names or objects $post_types = get_post_types($args, $output); echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' ' . __('podPress meta box for custom post types', 'podpress'); echo ' </th>' . "\n"; echo ' <td>' . "\n"; if (TRUE == is_array($post_types) and FALSE == empty($post_types)) { echo ' <select name="metaboxforcustomposttypes[]" size="4" multiple="multiple" class="podpress_customposttype_select">' . "\n"; echo ' <optgroup label="' . esc_attr(__('public custom post types:', 'podpress')) . '">' . "\n"; foreach ($post_types as $post_type) { if (TRUE == in_array($post_type->name, $selected_types)) { $selected = ' selected="selected"'; } else { $selected = ''; } echo ' <option value="' . $post_type->name . '"' . $selected . '>' . $post_type->label . ' (' . $post_type->name . ')</option>'; } echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; } else { echo ' <em class="nonessential">(' . __('Currently are no custom post types defined.', 'podpress') . ')</em>' . "\n"; } echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . "\n"; echo ' ' . __('Show a podPress meta box below or at the side of the editor of post of a custom post type. This makes it possbile to add podcasts with podPress to posts of a custom post type.', 'podpress'); echo ' <br /><span class="podpress_description">' . __('Hold the key [SHIFT] or [CTRL] and use the left mouse button to select more than one value.<br />Hold [CTRL] and use the left mouse button to deselect values.', 'podpress') . '</span>'; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; } echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Blog Search', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="activate_podpressmedia_search">' . __('expand the search to podPress media files', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_settings_narrow_col">' . "\n"; if (TRUE == isset($this->settings['activate_podpressmedia_search']) and TRUE === $this->settings['activate_podpressmedia_search']) { echo ' <input type="checkbox" name="activate_podpressmedia_search" id="activate_podpressmedia_search" value="true" checked="checked" />' . "\n"; } else { echo ' <input type="checkbox" name="activate_podpressmedia_search" id="activate_podpressmedia_search" value="true" />' . "\n"; } echo ' </td>' . "\n"; echo ' <td>' . __('Expand the blog search (which searches by default only through titles and content of posts, pages and attachments) to the titles and URLs (location) of the media files which have been attached with podPress.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; // ntm: reactivate this feature with the constant PODPRESS_ACTIVATE_PODANGO_INTEGRATION in the podpress.php files if (TRUE == defined('PODPRESS_ACTIVATE_PODANGO_INTEGRATION') and TRUE === constant('PODPRESS_ACTIVATE_PODANGO_INTEGRATION')) { echo ' <fieldset class="options">' . "\n"; } else { echo ' <fieldset class="options nonessential">' . "\n"; } echo ' <legend>' . __('Podango Integration', 'podpress') . '</legend>' . "\n"; echo ' <p class="podpress_error">' . __('Podango Integration does not work anymore and causes probably long page loading times e.g. on the post/page editor pages of this blog. Since 2008/2009 Podango <a href="http://sites.google.com/site/podangohibernate/">is currently on vacation</a> and the API which podPress tries to use is unavailable. That is why it is most likely that you will experience a lot of warning and error messages if you activate this feature.', 'podpress') . '</p>'; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="enablePodangoIntegration">' . __('Enable Podango Integration', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_settings_narrow_col">' . "\n"; // ntm: reactivate this feature with the constant PODPRESS_ACTIVATE_PODANGO_INTEGRATION in the podpress.php files if (TRUE == defined('PODPRESS_ACTIVATE_PODANGO_INTEGRATION') and TRUE === constant('PODPRESS_ACTIVATE_PODANGO_INTEGRATION')) { echo ' <input type="checkbox" name="enablePodangoIntegration" id="enablePodangoIntegration" '; if ($this->settings['enablePodangoIntegration']) { echo 'checked="checked"'; } echo " />\n"; } else { echo ' <input type="checkbox" name="enablePodangoIntegration" id="enablePodangoIntegration" disabled="disabled" />' . "\n"; } echo ' </td>' . "\n"; echo ' <td>'; if (TRUE == defined('PODPRESS_ACTIVATE_PODANGO_INTEGRATION') and TRUE === constant('PODPRESS_ACTIVATE_PODANGO_INTEGRATION')) { echo ' ' . __('podPress users can gain additional functionality when used in combination with Podango hosting.', 'podpress') . '<br />' . "\n"; } else { echo ' <span class="nonessential">' . __('This feature is deactivated and will maybe be removed in one of a future versions. If you want to activate this feature despite the absence of the Podango platform then ask for help in <a href="http://wordpress.org/tags/podpress?forum_id=10" target="_blank">this WP.org Forum</a>.', 'podpress') . '</span><br />' . "\n"; } echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; if (FALSE == defined('PODPRESS_DEACTIVATE_PREMIUM') or FALSE === constant('PODPRESS_DEACTIVATE_PREMIUM')) { echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Premium Content', 'podpress') . '</legend>' . "\n"; if (!$this->settings['enablePremiumContent']) { $showPremiumOptions = 'style="display: none;"'; } $premiumcontenthelp = ' <tr id="premiumPodcastingHelp" ' . $showPremiumOptions . '>' . "\n"; $premiumcontenthelp .= ' <th> </th>' . "\n"; $premiumcontenthelp .= ' <td colspan="2">'; $premiumcontenthelp .= ' ' . sprintf(__('<p>If you want use this part of the plugin then you should <a href="http://codex.wordpress.org/Roles_and_Capabilities" target="_blank">read more about roles and capabilities</a> and you need to get and install a roles and capabilities management plugin like <a href="http://wordpress.org/extend/plugins/members/" target="_blank">Members</a> or <a href="http://wordpress.org/extend/plugins/capsman/" target="_blank">Capability Manager</a> (The former recommendation was the <a href="http://redalt.com/wiki/Role+Manager" target="_blank">Role Manager</a> plugin. But it is unclear whether it works with current WP version or not.)</p><p>Anyone that should have access to the premium podcasting files need to have the Premium Content role, which can be done by making them Premium Subscribers.<br />Then just in each post set the media file as premium content and normal visitors will not be able to see the content via the web or from the feed.</p><p>If you are using a WordPress version which is newer than v2.1, then users can just use <a href="%1$s">%1$s</a> for their premium content needs. User will be asked for their user/pass before giving the RSS feed. For instance Juice and iTunes support this fine.</p><p>Keep in mind, that this does NOT protect your content if someone discovers the URLs, it only hides the location from showing up on the site or in the feed. To fully protect your files you can use this feature in combination with an external service like the one from <a href="http://www.amember.com/" target="_blank">aMemberPro</a> which should work with podPress. aMemberPro will protect the files from being downloaded at all, unless authorized. It also handles monthly subscription issues through <a href="http://en.wikipedia.org/wiki/Paypal" target="_blank" title="en.Wikipedia: PayPal">PayPal</a> and such. If you combine such a service with WordPress and podPress you can have your own premium content podcasting service.</p>', 'podpress'), get_feed_link('premium')) . "\n"; // ntm: Parts of this text are obviously aut dated and I took the chance to modify it //$premiumcontenthelp .= ' '.__('Full documentation is still under development on <a href="http://podcasterswiki.com/index.php?title=PodPress_Documentation#Premium_Podcasting">the wiki</a><br /><br />This is the short of it is that you need to get and install the <a href="http://redalt.com/wiki/Role+Manager">Role Manager plugin</a><br />Anyone that should have access to the premium podcasting files need to have the Premium Content role, which can be done by making them Premium Subscribers<br /><br />Then just in each post set the media file as premium content and normal visitors will not be able to see the content via the web or from the feed.<br />If your using Wordpress 2.1, then users can just use http://www.yoursite.com/?feed=premium for their premium content needs.<br />If your using WP 1.5 or 2.0.x, then you need to put premiumcast.php in your main wordpress dir and then have your subscribers use this file as their rss feed.<br />These will cause the site to ask for their user/pass before giving the RSS feed. Juice and iTunes supports this fine.<br /><br />Keep in mine, that this does NOT protect your content if someone discovers the URLS, it only hides the location from showing up on the site or in the feed. To fully protect your files I have also been able to get this working with <a href="http://www.amember.com/">aMemberPro</a><br />aMemberPro will protect the files from being downloaded at all, unless authorized. It also handles monthly subscription issues thru paypal and such. Its a great tool, and combines with WordPress and podPress you can have a full blown premium content podcasting service.', 'podpress')."\n"; $premiumcontenthelp .= ' </td>' . "\n"; $premiumcontenthelp .= ' </tr> ' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="enablePremiumContent">' . __('Enable Premium Content:', 'podpress') . '</label></th>' . "\n"; if (!podPress_WPVersionCheck('2.0.0')) { echo ' <td> </td>' . "\n"; echo ' <td>' . __('Only available in WordPress 2.0.0 or greater', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo $premiumcontenthelp; } else { echo ' <td colspan="2">' . "\n"; echo ' <input type="checkbox" name="enablePremiumContent" id="enablePremiumContent" '; if ($this->settings['enablePremiumContent']) { echo 'checked="checked"'; } echo " onclick=\"javascript: podPressShowHideRow('premiumPodcastingHelp'); podPressShowHideRow('premiumMethodWrapper'); podPressShowHideRow('premiumContentFakeEnclosureWrapper');\" />\n"; //ntm: with the podPressShowHideRow('protectedMediaFilePathWrapper'); podPressShowHideRow('protectedMediaFilePathHelp'); //~ echo ' <input type="checkbox" name="enablePremiumContent" id="enablePremiumContent" '; if($this->settings['enablePremiumContent']) { echo 'checked="checked"'; } echo " onclick=\"javascript: podPressShowHideRow('premiumPodcastingHelp'); podPressShowHideRow('protectedMediaFilePathWrapper'); podPressShowHideRow('protectedMediaFilePathHelp'); podPressShowHideRow('premiumMethodWrapper'); podPressShowHideRow('premiumContentFakeEnclosureWrapper');\" />\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo $premiumcontenthelp; // ntm: there is nothing behind this input that is why is deactivated //~ echo ' <tr id="protectedMediaFilePathWrapper" '.$showPremiumOptions.'>'."\n"; //~ echo ' <th><label for="protectedMediaFilePath">'.__('Absolute path to protected media', 'podpress').':</label></th>'."\n"; //~ echo ' <td colspan="2">'."\n"; //~ echo ' <input type="text" id="protectedMediaFilePath" name="protectedMediaFilePath" class="podpress_wide_text_field" size="40" value="'.attribute_escape($this->settings['protectedMediaFilePath']).'" />'."\n"; //~ echo ' </td>'."\n"; //~ echo ' </tr>'."\n"; //~ echo ' <tr id="protectedMediaFilePathHelp" '.$showPremiumOptions.'>'."\n"; //~ echo ' <th> </th>'."\n"; //~ echo ' <td colspan="2">'; //~ echo ' '.sprintf(__('Insert here the complete path name of the folder which contains the premium meda files. This folder needs to be on the same server as your blog. But it should NOT be in a dir under your web root. It should be a dir outside of the web root so that users cannot simply browse to the dir and get access to the files. For example this could be <code>%1$s/premium_mp3s/</code> or maybe with random number as folder name: <code>%1$s/%2$s/premium_mp3s/</code>. Create this folder before you start to use this feature.', 'podpress'), $this->uploadpath, rand(10000, 99999))."\n"; //~ echo ' </td>'."\n"; //~ echo ' </tr> '."\n"; echo ' <tr id="premiumMethodWrapper" ' . $showPremiumOptions . '>' . "\n"; echo ' <th><label for="premiumMethod">' . __('Method', 'podpress') . ':</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="premiumMethod" id="premiumMethod">' . "\n"; echo ' <option value="Digest" '; if ($this->settings['premiumMethod'] != 'Basic') { echo 'selected="selected"'; } echo '>' . __('Digest', 'podpress') . '</option>' . "\n"; echo ' <option value="Basic" '; if ($this->settings['premiumMethod'] == 'Basic') { echo 'selected="selected"'; } echo '>' . __('Basic', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td>' . __('Digest auth is MUCH better than Basic, which is easily unencrypted.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="premiumContentFakeEnclosureWrapper" ' . $showPremiumOptions . '>' . "\n"; echo ' <th><label for="premiumContentFakeEnclosure">' . __('Use fake enclosure', 'podpress') . ':</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="checkbox" name="premiumContentFakeEnclosure" id="premiumContentFakeEnclosure" '; if ($this->settings['premiumContentFakeEnclosure']) { echo 'checked="checked"'; } echo "/>\n"; echo ' </td>' . "\n"; echo ' <td>' . __('If you want the <a href="http://en.wikipedia.org/wiki/RSS_enclosure" target="_blank" title="en.Wikipedia: RSS enclosures">enclosures</a> (elements of the news feeds which contain usually links to the media files) to always exist (so the feed will show up in iTunes) then check this. A fake enclosure contains a place holder URL and not the real one.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; } echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; } echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Post Content', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentLocation">' . __('Location:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="contentLocation" id="contentLocation">' . "\n"; echo ' <option value="start" '; if ($this->settings['contentLocation'] == 'start') { echo 'selected="selected"'; } echo '>' . __('Start', 'podpress') . '</option>' . "\n"; echo ' <option value="end" '; if ($this->settings['contentLocation'] != 'start') { echo 'selected="selected"'; } echo '>' . __('End', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('Part of the Post where the podPress content (Player, and links) will go. Default is at the end.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentPlayer">' . __('Player:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="contentPlayer" id="contentPlayer">' . "\n"; echo ' <option value="both" '; if ($this->settings['contentPlayer'] == 'both') { echo 'selected="selected"'; } echo '>' . __('Enabled', 'podpress') . '</option>' . "\n"; echo ' <option value="inline" '; if ($this->settings['contentPlayer'] == 'inline') { echo 'selected="selected"'; } echo '>' . __('Inline Only', 'podpress') . '</option>' . "\n"; echo ' <option value="popup" '; if ($this->settings['contentPlayer'] == 'popup') { echo 'selected="selected"'; } echo '>' . __('Popup Only', 'podpress') . '</option>' . "\n"; echo ' <option value="disabled" '; if ($this->settings['contentPlayer'] == 'disabled') { echo 'selected="selected"'; } echo '>' . __('Disabled', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('Allow users to make use of the web players for your content / Popup Only - Only the Popup Player is available and it is not possible to use the player in the posts. / Inline Only - The Popup player is not available and it is only possible to use the player in the posts.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentImage">' . __('Image:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="contentImage" id="contentImage">' . "\n"; echo ' <option value="button" '; if ($this->settings['contentImage'] == 'button') { echo 'selected="selected"'; } echo '>' . __('Button', 'podpress') . '</option>' . "\n"; echo ' <option value="icon" '; if ($this->settings['contentImage'] == 'icon') { echo 'selected="selected"'; } echo '>' . __('Icon', 'podpress') . '</option>' . "\n"; echo ' <option value="none" '; if ($this->settings['contentImage'] == 'none') { echo 'selected="selected"'; } echo '>' . __('None', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('The image that shows up before links for the media file.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentHidePlayerPlayNow">' . __('Hide Player/Play Now:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="contentHidePlayerPlayNow" id="contentHidePlayerPlayNow">' . "\n"; echo ' <option value="enabled" '; if ($this->settings['contentHidePlayerPlayNow'] == 'enabled') { echo 'selected="selected"'; } echo '>' . __('Show', 'podpress') . '</option>' . "\n"; echo ' <option value="disabled" '; if ($this->settings['contentHidePlayerPlayNow'] == 'disabled') { echo 'selected="selected"'; } echo '>' . __('Hide', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('Show the Hide Player/Play Now link', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentDownload">' . __('Download:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="contentDownload" id="contentDownload">' . "\n"; echo ' <option value="enabled" '; if ($this->settings['contentDownload'] == 'enabled') { echo 'selected="selected"'; } echo '>' . __('Enabled', 'podpress') . '</option>' . "\n"; echo ' <option value="disabled" '; if ($this->settings['contentDownload'] == 'disabled') { echo 'selected="selected"'; } echo '>' . __('Disabled', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('Allow users to download the media files directly from the website.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentDownloadText">' . __('Show Download Text:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="contentDownloadText" id="contentDownloadText">' . "\n"; echo ' <option value="enabled" '; if ($this->settings['contentDownloadText'] == 'enabled') { echo 'selected="selected"'; } echo '>' . __('Enabled', 'podpress') . '</option>' . "\n"; echo ' <option value="disabled" '; if ($this->settings['contentDownloadText'] == 'disabled') { echo 'selected="selected"'; } echo '>' . __('Disabled', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('If disabled, users can still download using the icon link.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentDownloadStats">' . __('Show Download Stats:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="contentDownloadStats" id="contentDownloadStats">' . "\n"; echo ' <option value="enabled" '; if ($this->settings['contentDownloadStats'] == 'enabled') { echo 'selected="selected"'; } echo '>' . __('Enabled', 'podpress') . '</option>' . "\n"; echo ' <option value="disabled" '; if ($this->settings['contentDownloadStats'] == 'disabled') { echo 'selected="selected"'; } echo '>' . __('Disabled', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('Display download stats for each media file for everyone to see at the end of the podPress line. This will cause a performance hit of 2 extra SQL queries per post being displayed. Disable this feature if your site is slowing down when podpress is enabled.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentDuration">' . __('Show Duration:', 'podpress') . '</label></th>' . "\n"; echo ' <td colspan="2" class="podpress_settings_description_cell">' . "\n"; echo ' <select name="contentDuration" id="contentDuration">' . "\n"; if ($this->settings['contentDuration'] == 'enabled') { $this->settings['contentDuration'] = 'h:m:s'; } $duration_schemes = array('h:m:s' => __('1:23:45 (h:m:s)', 'podpress'), 'm:s' => __('83:45 (m:s)', 'podpress'), 'h:m:s:ms' => __('1:23:45:30 (h:m:s:ms)', 'podpress'), 'm:s:ms' => __('83:45:30 (m:s:ms)', 'podpress'), 's:ms' => __('5025:30 (s:ms)', 'podpress'), 'h' => __('1.40 (h)', 'podpress'), 'm' => __('83.75 (m)', 'podpress'), 's' => __('5025.03 (s)', 'podpress'), 'ms' => __('5025030 (ms)', 'podpress')); foreach ($duration_schemes as $duration_scheme => $scheme_name) { if ($this->settings['contentDuration'] == $duration_scheme) { echo ' <option value="' . $duration_scheme . '" selected="selected">' . $scheme_name . '</option>' . "\n"; } else { echo ' <option value="' . $duration_scheme . '">' . $scheme_name . '</option>' . "\n"; } } echo ' <option value="disabled" '; if ($this->settings['contentDuration'] == 'disabled') { echo 'selected="selected"'; } echo '>' . __('Disabled', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' ' . __('Display the duration for each media file. (The milliseconds value will only be visible if it is bigger than zero.)', 'podpress'); echo ' <br /><label for="contentDurationdivider">' . __('Choose a duration format:', 'podpress') . '</label> <select name="contentDurationdivider" id="contentDurationdivider">' . "\n"; if (version_compare($wp_version, '2.8', '<')) { $duration_dividers = array('colon' => '1:23:45:30', 'hminsms' => '1 ' . __('h', 'podpress') . ' 23 ' . __('min', 'podpress') . ' 45 ' . __('s', 'podpress') . ' 30 ' . __('ms', 'podpress'), 'hrminsecmsec' => '1 ' . __('hr.', 'podpress') . ' 23 ' . __('min.', 'podpress') . ' 45 ' . __('sec.', 'podpress') . ' 30 ' . __('msec.', 'podpress'), 'hoursminutessecondsmilliseconds' => '1 ' . __ngettext('hour', 'hours', 1, 'podpress') . ' 23 ' . __ngettext('minute', 'minutes', 23, 'podpress') . ' 45 ' . __ngettext('second', 'seconds', 45, 'podpress') . ' 30 ' . __ngettext('millisecond', 'milliseconds', 30, 'podpress')); } else { $duration_dividers = array('colon' => '1:23:45:30', 'hminsms' => '1 ' . __('h', 'podpress') . ' 23 ' . __('min', 'podpress') . ' 45 ' . __('s', 'podpress') . ' 30 ' . __('ms', 'podpress'), 'hrminsecmsec' => '1 ' . __('hr.', 'podpress') . ' 23 ' . __('min.', 'podpress') . ' 45 ' . __('sec.', 'podpress') . ' 30 ' . __('msec.', 'podpress'), 'hoursminutessecondsmilliseconds' => '1 ' . _n('hour', 'hours', 1, 'podpress') . ' 23 ' . _n('minute', 'minutes', 23, 'podpress') . ' 45 ' . _n('second', 'seconds', 45, 'podpress') . ' 30 ' . _n('millisecond', 'milliseconds', 30, 'podpress')); } // $duration_dividers = Array('colon' => '1:23:45:30', 'hminsms' => __('1 h 23 min 45 s 30 ms', 'podpress'), 'hrminsecmsec' => __('1 hr 23 min 45 sec 30 msec', 'podpress'), 'hoursminutessecondsmilliseconds' => __('1 hour 23 minutes 45 seconds 30 milliseconds', 'podpress')); if (FALSE == isset($this->settings['contentDurationdivider'])) { $this->settings['contentDurationdivider'] = 'colon'; } foreach ($duration_dividers as $duration_divider => $divider_name) { if ($this->settings['contentDurationdivider'] == $duration_divider) { echo ' <option value="' . $duration_divider . '" selected="selected">' . $divider_name . '</option>' . "\n"; } else { echo ' <option value="' . $duration_divider . '">' . $divider_name . '</option>' . "\n"; } } echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentfilesize">' . __('Show File Size:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="contentfilesize" id="contentfilesize">' . "\n"; echo ' <option value="enabled" '; if ($this->settings['contentfilesize'] == 'enabled') { echo 'selected="selected"'; } echo '>' . __('Enabled', 'podpress') . '</option>' . "\n"; echo ' <option value="disabled" '; if (FALSE == isset($this->settings['contentfilesize']) or $this->settings['contentfilesize'] == 'disabled') { echo 'selected="selected"'; } echo '>' . __('Disabled', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('Display the file size (in MB) for each media file.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentBeforeMore">' . __('Always before the <!- More -> tag:', 'podpress') . '</label></th>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . "\n"; echo ' <select name="contentBeforeMore" id="contentBeforeMore">' . "\n"; echo ' <option value="yes" '; if ($this->settings['contentBeforeMore'] == 'yes') { echo 'selected="selected"'; } echo '>' . __('Yes', 'podpress') . '</option>' . "\n"; echo ' <option value="no" '; if ($this->settings['contentBeforeMore'] != 'yes') { echo 'selected="selected"'; } echo '>' . __('No', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('This defines that the player and the download links will always be visible on the short version of a post.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; $incontentandexcerpt_vals = array('in_content_and_excerpt' => __('in content sections and excerpts', 'podpress'), 'in_content_only' => __('in content sections only', 'podpress'), 'in_excerpt_only' => __('in excerpts only', 'podpress')); echo ' <tr>' . "\n"; echo ' <th><label for="incontentandexcerpt">' . __('Show the podPress elements in the content sections and the excerpts?', 'podpress') . '</label></th>' . "\n"; echo ' <td colspan="2" class="podpress_settings_description_cell">' . "\n"; echo ' <select name="incontentandexcerpt" id="incontentandexcerpt">' . "\n"; foreach ($incontentandexcerpt_vals as $value => $optiontext) { if ($this->settings['incontentandexcerpt'] == $value) { echo ' <option value="' . $value . '" selected="selected">' . $optiontext . '</option>' . "\n"; } else { echo ' <option value="' . $value . '">' . $optiontext . '</option>' . "\n"; } } echo ' </select>' . "\n"; echo ' ' . sprintf(__('Determine whether the podPress elements (player or player preview, download link, icon, etc.) should be visible in the content sections and the excerpts of posts and pages. (default: %1$s)', 'podpress'), __('in content sections and excerpts', 'podpress')) . '</td>' . "\n"; echo ' </tr> ' . "\n"; if (TRUE == isset($this->settings['do_not_use_the_target_attribute']) and TRUE === $this->settings['do_not_use_the_target_attribute']) { $checked = ' checked="checked"'; } else { $checked = ''; } echo ' <tr>' . "\n"; echo ' <th><label for="do_not_use_the_target_attribute">' . __('do not use the <code>target="new"</code> attribute in links of podPress', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="checkbox" name="do_not_use_the_target_attribute" id="do_not_use_the_target_attribute" value="yes"' . $checked . ' />' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('If your theme uses a <a href="http://en.wikipedia.org/wiki/Document_Type_Declaration" target="_blank" title="en.Wikipedia: Document Type Declaration">DOCTYPE</a> which does not allow "target" attributes in hyper links (e.g. XHTML 1.0 Strict) then you can use this option to prompt podPress to create valid code for your theme. (default: not checked)', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; /* echo ' <fieldset class="options">'."\n"; echo ' <legend>'.__('TorrentCasting', 'podpress').'</legend>'."\n"; echo ' <table class="editform podpress_settings_table">'."\n"; echo ' <tr>'."\n"; echo ' <th><label for="enableTorrentCasting">'.__('Enable TorrentCasting', 'podpress').':</label></th>'."\n"; echo ' <td>'."\n"; echo ' <input type="checkbox" name="enableTorrentCasting" id="enableTorrentCasting" '; if($this->settings['enableTorrentCasting']) { echo 'checked="checked"'; } echo "/>\n"; echo ' </td>'."\n"; echo ' </tr> '."\n"; echo ' <tr>'."\n"; echo ' <td colspan="2">This just allows for you to define a location to the .torrent file for you content. If you enable this you should copy the torrentcast.php file from plugins/podpress/optional_files and into your main wordpress directory.</td>'."\n"; echo ' </tr> '."\n"; echo ' </table>'."\n"; echo ' </fieldset>'."\n"; */ echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('System Information', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' ' . __('Feed Caching', 'podpress'); echo ' </th>' . "\n"; echo ' <td>' . "\n"; echo ' ' . __('Feedcache files will be stored in the follow directory:', 'podpress') . '<br /><code>' . $this->tempfilesystempath . '</code> ' . $this->checkWritableTempFileDir(TRUE); echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th></th>' . "\n"; echo ' <td>' . __('If you are using the index.php from optional_files in your main WordPress directory then you should set this value to match the $podPressFeedCacheDir value.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th>PODPRESS_DEBUG_LOG</th>' . "\n"; if (defined('PODPRESS_DEBUG_LOG') and TRUE === constant('PODPRESS_DEBUG_LOG')) { $result = ''; $result = podPress_var_dump('podPress - general settings - permissions test'); if (!empty($result)) { $errormsg = '<p class="podpress_error">' . $result . '</p>'; } else { $errormsg = ''; } echo ' <td><p>' . sprintf(__('is defined and set to: %1$s.', 'podpress'), 'TRUE'); } elseif (defined('PODPRESS_DEBUG_LOG') and FALSE === constant('PODPRESS_DEBUG_LOG')) { echo ' <td><p>' . sprintf(__('is defined and set to: %1$s.', 'podpress'), 'FALSE'); } else { echo ' <td><p>' . sprintf(__('is not defined or set to something other than %1$s or %2$s.', 'podpress'), 'TRUE', 'FALSE'); } echo ' ' . sprintf(__('By default this constant is set to %2$s and is defined in the podpress.php file. If it is defined as %1$s then podPress logs its activities during the process of the detection of the file size, duration and ID3 tag information to a file with the name podpress_log.dat in the podPress folder.', 'podpress'), 'TRUE', 'FALSE') . '</p>' . $errormsg . '</td>' . "\n"; echo ' </tr> ' . "\n"; $version_from_db = get_option('podPress_version'); if (TRUE == version_compare($version_from_db, constant('PODPRESS_VERSION'), '>')) { $set_version_back_to = '8.8.9'; echo ' <tr>' . "\n"; echo ' <th><span class="podpress_error">' . __('Version Conflict', 'podpress') . '</span></th>' . "\n"; echo ' <td>' . sprintf(__('The current podPress version is smaller than the version number which has been stored previously in the db: %1$s < %2$s. You have had probably installed a podPress version with a higher version number. (Maybe you have tested a Development Version.) The difference between these two version numbers indicates that maybe some db entries are not up to date or settings are not right because the update procedure has not been started. This may cause various problems with the Feeds and the appearance of the podcast episodes in the posts.', 'podpress'), constant('PODPRESS_VERSION'), $version_from_db) . '<br /><label for="version_set_back_to">' . sprintf(__('Set the version number in the db back to %1$s (to start possibly necessary upgrade actions):', 'podpress'), $set_version_back_to) . '</label> <input type="checkbox" id="version_set_back_to" name="podpress_version_set_back_to" value="' . $set_version_back_to . '" /></td>' . "\n"; echo ' </tr> ' . "\n"; } elseif (TRUE == version_compare($version_from_db, constant('PODPRESS_VERSION'), '<')) { echo ' <tr>' . "\n"; echo ' <th><span class="podpress_error">' . __('Version Conflict', 'podpress') . '</span></th>' . "\n"; echo ' <td>' . sprintf(__('The version number in the db is smaller than the current podPress version: %1$s < %2$s. That means most likely that the upgrade process is uncomplete. Because of that, it is possible that you experience problems with the Feeds and the appearance of the podcast episode in the posts. You may ask in the <a href="http://wordpress.org/tags/podpress" target="_blank">WordPress.org Forum</a> for help (Please, use "podpress" as a tag).', 'podpress'), $version_from_db, constant('PODPRESS_VERSION')) . '</td>' . "\n"; echo ' </tr> ' . "\n"; } else { echo ' <tr>' . "\n"; echo ' <th>' . __('current podPress version', 'podpress') . '</th>' . "\n"; echo ' <td>' . constant('PODPRESS_VERSION') . '</td>' . "\n"; echo ' </tr> ' . "\n"; } $all_plugins = get_plugins(); $podpress_version = $all_plugins[plugin_basename(dirname(__FILE__) . '/podpress.php')]['Version']; if (TRUE == version_compare($podpress_version, '8.8.10', '>=')) { $nr_old_meta_keys_podPressMedia = intval($wpdb->get_var($wpdb->prepare("SELECT COUNT(*) as old_meta_keys FROM " . $wpdb->prefix . "postmeta WHERE meta_key = 'podPressMedia'"))); $nr_old_meta_keys_podPressPostSpecific = intval($wpdb->get_var($wpdb->prepare("SELECT COUNT(*) as old_meta_keys FROM " . $wpdb->prefix . "postmeta WHERE meta_key = 'podPressPostSpecific'"))); if ($nr_old_meta_keys_podPressMedia + $nr_old_meta_keys_podPressPostSpecific > 0) { echo ' <tr>' . "\n"; echo ' <th><span class="podpress_error">' . __('old meta_key names detected', 'podpress') . '</span></th>' . "\n"; echo ' <td><p>podPressMedia: ' . $nr_old_meta_keys_podPressMedia . '<br />podPressPostSpecific: ' . $nr_old_meta_keys_podPressPostSpecific . '</p><input type="checkbox" id="add_underscore_to_old_meta_keys" name="podpress_add_underscore_to_old_meta_keys" value="yes" /> <label for="add_underscore_to_old_meta_keys">' . sprintf(__('Rename all meta_keys with the values podPressMedia to _podPressMedia and podPressPostSpecific to _podPressPostSpecific', 'podpress'), $set_version_back_to) . '</label></td>' . "\n"; echo ' </tr> ' . "\n"; } } if (TRUE == version_compare($podpress_version, constant('PODPRESS_VERSION'), '!=')) { echo ' <tr>' . "\n"; echo ' <th><span class="podpress_error">' . __('Version Conflict', 'podpress') . '</span></th>' . "\n"; echo ' <td><p>' . sprintf(__('podPress version: %1$s', 'podpress'), $podpress_version) . '<br />PODPRESS_VERSION: ' . constant('PODPRESS_VERSION') . '<br />' . sprintf(__('version number from the db: %1$s', 'podpress'), $version_from_db) . '</p></td>' . "\n"; echo ' </tr> ' . "\n"; } echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' <input type="hidden" name="podPress_submitted" value="general" />' . "\n"; echo ' <p class="submit"> ' . "\n"; echo ' <input class="button-primary" type="submit" name="Submit" value="' . __('Update Options', 'podpress') . ' »" /> ' . "\n"; echo ' </p> ' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Credit', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="enableFooter">' . __('Show podPress footer:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="checkbox" name="enableFooter" id="enableFooter" '; if ($this->settings['enableFooter']) { echo 'checked="checked"'; } echo '/>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('Enabling this allows you to give us credit for making this plugin, and lets other podcasters find out what your using to publish your podcasts. If this feature makes your site look bad, please add in podPress with all the other credits, such as the ones in place for WordPress.', 'podpress') . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="enableVersionInFeeds">' . __('Add podPress version information to the feeds:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="checkbox" name="enableVersionInFeeds" id="enableVersionInFeeds" '; if ($this->settings['enableVersionInFeeds']) { echo 'checked="checked"'; } echo '/>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('Enabling this will add a comment with the name of this plugin and maybe the current version number to all Feeds of this blog. This comment is usually only visible if you look into the source code of the Feeds and may e.g. help to debug problems.', 'podpress') . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="disableVersionNumber">' . __('Do not show the version number:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="checkbox" name="disableVersionNumber" id="disableVersionNumber" '; if ($this->settings['disableVersionNumber']) { echo 'checked="checked"'; } echo '/>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('Do not show the current version number in the footer nor in the Feeds of this blog.', 'podpress') . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="donation_button">' . __('Donations Appreciated:', 'podpress') . '</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <a id="donation_button" href="http://www.mightyseek.com/podpress_donate.php" title="' . __('Donation button of the original author of this project Dan Kuykendall (seek3r)', 'podpress') . '" target="_blank"><img alt="' . __('Donation button of the original author of this project Dan Kuykendall (seek3r)', 'podpress') . '" border="0" src="' . PODPRESS_URL . '/images/x-click-but04.gif" /></a>' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_settings_description_cell">' . __('This project is a labor of love, feel no obligation what-so-ever to donate. For those that want to, here ya go.', 'podpress') . ' <span class="nonessential">(' . __('Donation button of the original author of this project Dan Kuykendall (seek3r)', 'podpress') . ')</span></td>' . "\n"; echo ' </tr> ' . "\n"; echo ' </table>' . "\n"; //~ ntm: Frappr.com seems to be down since 01/2010 //~ echo ' <table class="editform podpress_settings_table">'."\n"; //~ echo ' <tr>'."\n"; //~ echo ' <th><label for="frapprmaplink">'.__('Frapper Map:', 'podpress').'</label></th>'."\n"; //~ echo ' <td>'."\n"; //~ echo ' <a id="frapprmaplink" href="http://www.frappr.com/mightyseek"><img src="http://www.frappr.com/i/frapper_sticker.gif" alt="Check out our Frappr!" title="Check out our Frappr!" border="0"></a>'."\n"; //~ echo ' </td>'."\n"; //~ echo ' </tr> '."\n"; //~ echo ' <tr>'."\n"; //~ echo ' <td colspan="2">Let us know where you are!</td>'."\n"; //~ echo ' </tr> '."\n"; //~ echo ' </table>'."\n"; echo ' </fieldset>' . "\n"; echo ' </form> ' . "\n"; $sql = "SELECT * FROM " . $wpdb->prefix . "postmeta WHERE meta_key IN('podPress_podcastStandardAudio',\n\t\t\t 'podPress_podcastStandardAudioSize',\n\t\t\t 'podPress_podcastStandardAudioDuration',\n\t\t\t 'podPress_podcastEnhancedAudio',\n\t\t\t 'podPress_podcastEnhancedAudioSize',\n\t\t\t 'podPress_podcastEnhancedAudioDuration',\n\t\t\t 'podPress_podcastVideo',\n\t\t\t 'podPress_podcastVideoSize',\n\t\t\t 'podPress_podcastVideoDuration',\n\t\t\t 'podPress_podcastVideoDimension',\n\t\t\t 'podPress_webVideo',\n\t\t\t 'podPress_webVideoSize',\n\t\t\t 'podPress_webVideoDuration',\n\t\t\t 'podPress_webVideoDimension',\n\t\t\t 'podPress_podcastEbook',\n\t\t\t 'podPress_podcastEbookSize',\n\t\t\t 'itunes:duration')"; $stats = $wpdb->get_results($sql); if ($stats) { echo ' <form method="post">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Complete Upgrade Process', 'podpress') . '</legend>' . "\n"; echo ' <table width="100%" cellspacing="2" cellpadding="5" class="editform">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="cleanupOldMetaKeys">' . __('Remove Pre v.40 database clutter.', 'podpress') . ':</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="checkbox" name="cleanupOldMetaKeys" id="cleanupOldMetaKeys" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' <input type="hidden" name="podPress_submitted" value="general" />' . "\n"; echo ' <p class="submit"> ' . "\n"; echo ' <input class="button-primary" type="submit" name="Submit" value="' . __('Update Options', 'podpress') . ' »" /> ' . "\n"; echo ' </p> ' . "\n"; echo ' </form> ' . "\n"; } echo '</div>' . "\n"; }
function settings_podango_edit() { global $wpdb, $wp_rewrite; podPress_isAuthorized(); if (isset($_GET['updated']) && $_GET['updated'] == 'true') { echo '<div id="message" class="updated fade"><p>' . __('Settings Saved', 'podpress') . '</p></div>'; } echo '<div class="wrap">' . "\n"; echo ' <h2>' . __('Podango Options', 'podpress') . ' <a href="http://www.mightyseek.com/podpress/#download" target="_new"><img src="http://www.mightyseek.com/podpress_downloads/versioncheck.php?current=' . PODPRESS_VERSION . '" alt="' . __('Checking for updates... Failed.', 'podpress') . '" border="0" /></a></h2>' . "\n"; echo ' <form method="post">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Podango Integration', 'podpress') . ' <a href="javascript:void(null);" onclick="javascript: podPressShowHideRow(\'podangoIntegrationHelp\');">(?)</a></legend>' . "\n"; echo ' <table width="100%" cellspacing="2" cellpadding="5" class="editform">' . "\n"; echo ' <tr>' . "\n"; echo ' <th width="33%" valign="top"><label for="enablePodangoIntegration">' . __('Enable Podango Integration', 'podpress') . ':</label></th>' . "\n"; if (!$this->settings['enablePodangoIntegration']) { $showPodangoOptions = 'style="display: none;"'; } echo ' <td>' . "\n"; echo ' <input type="checkbox" name="enablePodangoIntegration" id="enablePodangoIntegration" '; if ($this->settings['enablePodangoIntegration']) { echo 'checked="checked"'; } echo " onclick=\"javascript: podPressShowHideRow('podangoUserKeyWrapper'); podPressShowHideRow('podangoPassKeyWrapper'); podPressShowHideRow('podangoDefaultPodcastWrapper'); podPressShowHideRow('podangoTranscribeWrapper');\" />\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="podangoUserKeyWrapper" ' . $showPodangoOptions . '>' . "\n"; echo ' <th width="33%" valign="top"><label for="podangoUserKey">' . __('User Access Key', 'podpress') . ':</label></th>' . "\n"; echo ' <td><input name="podangoUserKey" id="podangoUserKey" size="30" type="text" value="' . htmlentities($this->settings['podangoUserKey']) . '"> <a href="http://www.podango.com/podcasts/api_setup.php">Can be found here</a></td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="podangoPassKeyWrapper" ' . $showPodangoOptions . '>' . "\n"; echo ' <th width="33%" valign="top"><label for="podangoPassKey">' . __('Pass Key', 'podpress') . ':</label></th>' . "\n"; echo ' <td><input name="podangoPassKey" id="podangoPassKey" size="30" type="text" value="' . htmlentities($this->settings['podangoPassKey']) . '"> <a href="http://www.podango.com/podcasts/api_setup.php">Can be found here</a></td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="podangoDefaultPodcastWrapper" ' . $showPodangoOptions . '>' . "\n"; echo ' <th width="33%" valign="top"><label for="podangoDefaultPodcast">' . __('Default Podcast', 'podpress') . ':</label></th>' . "\n"; echo ' <td>' . "\n"; $podangoPodcastList = array(0 => array('title' => 'Save Options to update this list')); if ($this->settings['enablePodangoIntegration']) { $podangoPodcastList = $this->podangoAPI->GetPodcasts(true); if (count($podangoPodcastList) == 0) { $podangoPodcastList = array(0 => array('title' => 'Could not find your Podcast/Channel')); } } echo ' <select name="podangoDefaultPodcast" id="podangoDefaultPodcast">' . "\n"; echo ' <option value="##ALL##" '; if ($this->settings['podangoDefaultPodcast'] == '##ALL##') { echo 'selected="selected"'; } echo '>Enable them all on this site</option>' . "\n"; foreach ($podangoPodcastList as $k => $v) { echo ' <option value="' . $k . '" '; if ($this->settings['podangoDefaultPodcast'] == $k) { echo 'selected="selected"'; } echo '>' . $v['Title'] . '</option>' . "\n"; } echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="podangoTranscribeWrapper" ' . $showPodangoOptions . '>' . "\n"; echo ' <th width="33%" valign="top"><label for="podangoDefaultTranscribe">' . __('Transcribe', 'podpress') . ':</label></th>' . "\n"; echo ' <td>' . "\n"; echo ' <input type="checkbox" name="podangoDefaultTranscribe" id="podangoDefaultTranscribe" '; if ($this->settings['podangoDefaultTranscribe']) { echo 'checked="checked"'; } echo "/> Transcriptions cost \$1.00/minute, and currently are deducted from your ad earnings.\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr id="podangoIntegrationHelp" style="display: none;">' . "\n"; echo ' <td colspan="2">'; echo ' podPress users can gain additional functionality when used in combination with Podango hosting.<br/>' . "\n"; echo ' Letm e count the ways<br/>' . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' <input type="hidden" name="podPress_submitted" value="podango" />' . "\n"; echo ' <p class="submit"> ' . "\n"; echo ' <input type="submit" name="Submit" value="' . __('Update Options', 'podpress') . ' »" /> ' . "\n"; echo ' </p> ' . "\n"; echo ' </form> ' . "\n"; if (true) { echo ' <form method="post">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Migration Process', 'podpress') . '</legend>' . "\n"; echo ' <table width="100%" cellspacing="2" cellpadding="5" class="editform">' . "\n"; echo ' <tr>' . "\n"; echo ' <th width="33%" valign="top"><label for="podangdoMigration">' . __('Re-reference all media files to the podango hosted version.', 'podpress') . ':</label></th>' . "\n"; echo ' <td valign="top">' . "\n"; echo ' <input type="checkbox" name="podangdoMigration" id="podangdoMigration"/>' . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th width="33%" valign="top"><label for="podangoUnMigration">' . __('Remove Podango references from all media files to local URL.', 'podpress') . ':</label></th>' . "\n"; echo ' <td valign="top">' . "\n"; echo ' <input type="checkbox" name="podangoUnMigration" id="podangoUnMigration"/>' . "\n"; echo ' </td>' . "\n"; echo ' </tr> ' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' <input type="hidden" name="podPress_submitted" value="podango" />' . "\n"; echo ' <p class="submit"> ' . "\n"; echo ' <input type="submit" name="Submit" value="' . __('Update Options', 'podpress') . ' »" /> ' . "\n"; echo ' </p> ' . "\n"; echo ' </form> ' . "\n"; } echo '</div>' . "\n"; }
function settings_players_edit() { global $wp_version; podPress_isAuthorized(); if (isset($_GET['updated']) && $_GET['updated'] == 'true') { echo '<div id="message" class="updated fade"><p>' . __('Settings Saved', 'podpress') . '</p></div>'; } elseif (isset($_GET['updated']) && $_GET['updated'] != 'true') { echo '<div id="message" class="error fade"><p>' . __('<strong>Error:</strong> Unable to save the settings', 'podpress') . '</p></div>'; } if ($this->settings['player']['bg'] == '') { $this->resetPlayerSettings(); } echo '<div class="wrap">' . "\n"; if (TRUE == version_compare($wp_version, '2.7', '>=')) { echo '<div id="podpress-icon" class="icon32"><br /></div>'; } if (TRUE == version_compare($wp_version, '2.8', '>=')) { echo ' <h2>' . __('Player Settings', 'podpress') . '</h2>' . "\n"; // get the plugins version information via the WP plugins version check if (TRUE == version_compare($wp_version, '2.9', '>=')) { $versioninfo = get_site_transient('update_plugins'); } else { $versioninfo = get_transient('update_plugins'); } // If there is a new version then there is a 'response'. This is the method from the plugins page. if (FALSE !== isset($versioninfo->response[plugin_basename(dirname(__FILE__) . '/podpress.php')]->new_version)) { echo '<div class="message updated"><p><a href="http://wordpress.org/extend/plugins/podpress/" target="_blank">' . __('a new podPress version is available', 'podpress') . '</a></p></div>'; } } else { echo ' <h2>' . __('Player Settings', 'podpress') . ' <a href="http://www.mightyseek.com/podpress/#download" target="_new"><img src="http://www.mightyseek.com/podpress_downloads/versioncheck.php?current=' . PODPRESS_VERSION . '" alt="' . __('Checking for updates... Failed.', 'podpress') . '" border="0" /></a></h2>' . "\n"; } echo ' <form method="post">' . "\n"; if (function_exists('wp_nonce_field')) { // since WP 2.0.4 wp_nonce_field('podPress_player_settings_nonce'); } if (TRUE == version_compare($wp_version, '2.7', '>=') and TRUE == version_compare($wp_version, '2.8', '<')) { // for WP 2.7.x (because the plugins_url() worked differently in WP 2.7.x) $plugins_url = plugins_url('podpress', __FILE__); } else { $plugins_url = plugins_url('', __FILE__); } echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('MP3 Player', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . __('Player', 'podpress') . ':</th>' . "\n"; echo ' <td colspan="2"><select name="mp3Player"><option value="1pixelout"'; if ($this->settings['mp3Player'] == '1pixelout') { echo ' selected="selected"'; } echo '>' . __('1PixelOut', 'podpress') . '</option><option value="podango"'; if ($this->settings['mp3Player'] == 'podango') { echo ' selected="selected"'; } echo '>' . __('Podango', 'podpress') . '</option></select></td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . __('Colour map', 'podpress') . ':</th>' . "\n"; if ($this->settings['mp3Player'] == '1pixelout') { echo ' <td colspan="2"><img src="' . $plugins_url . '/images/colormap_1pixelout_numbers.png" alt="' . __('1PixelOut Player Color Map', 'podpress') . '" /></td>' . "\n"; } else { echo ' <td colspan="2"><img src="' . $plugins_url . '/images/colormap_podango_numbers.png" alt="' . __('Podango Player Color Map', 'podpress') . '" /></td>' . "\n"; } echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_lefticon_">' . __('Left icon', 'podpress') . ' (1):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_lefticon_" name="playerSettings[lefticon]" size="40" value="' . $this->settings['player']['lefticon'] . '" style="background-color: ' . $this->settings['player']['lefticon'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" />' . "\n"; echo ' </td>' . "\n"; echo ' <td rowspan="16" class="podpress_player_color_cell_right_col">' . "\n"; echo ' <br/> ' . __('Pick the field you want to change the color for. Then mouse over the color selector, and you will see the color change for the field you chose. Click on the color selector to lock in your selection.', 'podpress') . '<br/><br/> <div id="podpress_color_picker_box"><!-- color picker box begin --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#000000"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#000000\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#000033"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#000033\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#000066"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#000066\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#000099"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#000099\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#0000cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#0000cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#0000ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#0000ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#006600"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#006600\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#006633"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#006633\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#006666"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#006666\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#006699"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#006699\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#0066cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#0066cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#0066ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#0066ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00cc00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00cc00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00cc33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00cc33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00cc66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00cc66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00cc99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00cc99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00cccc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00cccc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00ccff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00ccff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#003300"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#003300\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#003333"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#003333\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#003366"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#003366\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#003399"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#003399\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#0033cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#0033cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#0033ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#0033ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#009900"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#009900\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#009933"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#009933\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#009966"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#009966\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#009999"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#009999\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#0099cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#0099cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#0099ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#0099ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00ff00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00ff00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00ff33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00ff33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00ff66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00ff66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00ff99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00ff99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00ffcc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00ffcc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#00ffff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#00ffff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#330000"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#330000\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#330033"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#330033\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#330066"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#330066\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#330099"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#330099\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#3300cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#3300cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#3300ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#3300ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#336600"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#336600\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#336633"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#336633\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#336666"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#336666\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#336699"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#336699\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#3366cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#3366cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#3366ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#3366ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33cc00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33cc00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33cc33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33cc33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33cc66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33cc66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33cc99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33cc99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33cccc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33cccc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33ccff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33ccff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#333300"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#333300\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#333333"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#333333\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#333366"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#333366\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#333399"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#333399\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#3333cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#3333cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#3333ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#3333ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#339900"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#339900\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#339933"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#339933\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#339966"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#339966\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#339999"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#339999\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#3399cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#3399cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#3399ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#3399ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33ff00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33ff00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33ff33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33ff33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33ff66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33ff66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33ff99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33ff99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33ffcc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33ffcc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#33ffff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#33ffff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#660000"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#660000\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#660033"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#660033\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#660066"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#660066\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#660099"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#660099\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#6600cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#6600cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#6600ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#6600ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#666600"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#666600\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#666633"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#666633\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#666666"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#666666\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#666699"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#666699\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#6666cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#6666cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#6666ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#6666ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66cc00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66cc00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66cc33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66cc33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66cc66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66cc66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66cc99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66cc99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66cccc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66cccc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66ccff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66ccff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#663300"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#663300\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#663333"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#663333\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#663366"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#663366\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#663399"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#663399\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#6633cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#6633cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#6633ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#6633ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#669900"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#669900\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#669933"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#669933\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#669966"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#669966\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#669999"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#669999\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#6699cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#6699cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#6699ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#6699ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66ff00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66ff00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66ff33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66ff33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66ff66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66ff66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66ff99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66ff99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66ffcc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66ffcc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#66ffff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#66ffff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#990000"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#990000\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#990033"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#990033\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#990066"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#990066\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#990099"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#990099\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#9900cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#9900cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#9900ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#9900ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#996600"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#996600\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#996633"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#996633\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#996666"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#996666\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#996699"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#996699\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#9966cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#9966cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#9966ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#9966ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99cc00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99cc00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99cc33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99cc33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99cc66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99cc66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99cc99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99cc99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99cccc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99cccc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99ccff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99ccff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#993300"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#993300\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#993333"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#993333\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#993366"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#993366\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#993399"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#993399\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#9933cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#9933cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#9933ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#9933ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#999900"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#999900\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#999933"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#999933\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#999966"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#999966\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#999999"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#999999\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#9999cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#9999cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#9999ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#9999ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99ff00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99ff00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99ff33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99ff33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99ff66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99ff66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99ff99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99ff99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99ffcc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99ffcc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#99ffff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#99ffff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#cc0000"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc0000\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc0033"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc0033\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc0066"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc0066\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc0099"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc0099\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc00cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc00cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc00ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc00ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc6600"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc6600\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc6633"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc6633\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc6666"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc6666\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc6699"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc6699\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc66cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc66cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc66ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc66ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cccc00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cccc00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cccc33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cccc33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cccc66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cccc66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cccc99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cccc99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cccccc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cccccc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ccccff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ccccff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#cc3300"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc3300\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc3333"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc3333\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc3366"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc3366\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc3399"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc3399\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc33cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc33cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc33ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc33ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc9900"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc9900\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc9933"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc9933\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc9966"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc9966\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc9999"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc9999\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc99cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc99cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#cc99ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#cc99ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ccff00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ccff00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ccff33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ccff33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ccff66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ccff66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ccff99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ccff99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ccffcc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ccffcc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ccffff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ccffff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#ff0000"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff0000\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff0033"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff0033\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff0066"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff0066\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff0099"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff0099\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff00cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff00cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff00ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff00ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff6600"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff6600\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff6633"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff6633\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff6666"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff6666\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff6699"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff6699\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff66cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff66cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff66ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff66ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffcc00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffcc00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffcc33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffcc33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffcc66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffcc66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffcc99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffcc99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffcccc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffcccc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffccff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffccff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> <div class="podpress_color_picker_row"> <span class="podpress_color_picker_field" style="background-color:#ff3300"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff3300\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff3333"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff3333\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff3366"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff3366\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff3399"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff3399\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff33cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff33cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff33ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff33ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff9900"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff9900\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff9933"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff9933\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff9966"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff9966\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff9999"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff9999\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff99cc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff99cc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ff99ff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ff99ff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffff00"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffff00\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffff33"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffff33\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffff66"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffff66\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffff99"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffff99\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffffcc"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffffcc\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> <span class="podpress_color_picker_field" style="background-color:#ffffff"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#ffffff\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span> </div><!-- color picker row end --> ' . "\n"; $hex = array(0 => '0', 1 => '1', 2 => '2', 3 => '3', 4 => '4', 5 => '5', 6 => '6', 7 => '7', 8 => '8', 9 => '9', 10 => 'A', 11 => 'B', 12 => 'C', 13 => 'D', 14 => 'E', 15 => 'F'); // gray scale echo '<div class="podpress_color_picker_row">' . "\n"; for ($i = 0; $i < 16; $i++) { echo ' <span class="podpress_color_picker_field" style="background-color:#' . $hex[$i] . $hex[$i] . $hex[$i] . $hex[$i] . $hex[$i] . $hex[$i] . '"><a href="javascript: podPress_colorLock()" onmouseover="javascript: podPress_colorSet(\'#' . $hex[$i] . $hex[$i] . $hex[$i] . $hex[$i] . $hex[$i] . $hex[$i] . '\'); return true"><img src="' . $plugins_url . '/images/podpress_spacer.gif" alt="." /></a></span>' . "\n"; } echo '</div>' . "\n"; echo '</div><!-- color picker box end -->' . "\n"; echo '<br/>' . "\n"; echo '<input type="button" name="ResetColors" value="' . __('Reset Colors to Defaults', 'podpress') . '" onclick="javascript: podPress_colorReset();" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_leftbg_">' . __('Left background', 'podpress') . ' (2):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_leftbg_" name="playerSettings[leftbg]" size="40" value="' . $this->settings['player']['leftbg'] . '" style="background-color: ' . $this->settings['player']['leftbg'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_volslider_">' . __('Volume control slider', 'podpress') . ' (3):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_volslider_" name="playerSettings[volslider]" size="40" value="' . $this->settings['player']['volslider'] . '" style="background-color: ' . $this->settings['player']['volslider'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_voltrack_">' . __('Volume control track', 'podpress') . ' (4):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_voltrack_" name="playerSettings[voltrack]" size="40" value="' . $this->settings['player']['voltrack'] . '" style="background-color: ' . $this->settings['player']['voltrack'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_text_">' . __('Text', 'podpress') . ' (5):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_text_" name="playerSettings[text]" size="40" value="' . $this->settings['player']['text'] . '" style="background-color: ' . $this->settings['player']['text'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_tracker_">' . __('Progress bar', 'podpress') . ' (6):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_tracker_" name="playerSettings[tracker]" size="40" value="' . $this->settings['player']['tracker'] . '" style="background-color: ' . $this->settings['player']['tracker'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_slider_">' . __('Podango Progress bar track', 'podpress') . ' (6p):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_slider_" name="playerSettings[slider]" size="40" value="' . $this->settings['player']['slider'] . '" style="background-color: ' . $this->settings['player']['slider'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" /> (*)' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_loader_">' . __('Loading bar', 'podpress') . ' (7):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_loader_" name="playerSettings[loader]" size="40" value="' . $this->settings['player']['loader'] . '" style="background-color: ' . $this->settings['player']['loader'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" /> (*)' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_track_">' . __('Progress bar track', 'podpress') . ' (8):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_track_" name="playerSettings[track]" size="40" value="' . $this->settings['player']['track'] . '" style="background-color: ' . $this->settings['player']['track'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_border_">' . __('Progress bar border', 'podpress') . ' (9):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_border_" name="playerSettings[border]" size="40" value="' . $this->settings['player']['border'] . '" style="background-color: ' . $this->settings['player']['border'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" /> (*)' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_bg_">' . __('Background', 'podpress') . ' (10):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_bg_" name="playerSettings[bg]" size="40" value="' . $this->settings['player']['bg'] . '" style="background-color: ' . $this->settings['player']['bg'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" /> (*)<br />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_skip_">' . __('Next / Previous buttons', 'podpress') . ' (11):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_skip_" name="playerSettings[skip]" size="40" value="' . $this->settings['player']['skip'] . '" style="background-color: ' . $this->settings['player']['skip'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_righticon_">' . __('Right icon', 'podpress') . ' (12):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_righticon_" name="playerSettings[righticon]" size="40" value="' . $this->settings['player']['righticon'] . '" style="background-color: ' . $this->settings['player']['righticon'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" /> (*)' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_righticonhover_">' . __('Right icon (hover)', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_righticonhover_" name="playerSettings[righticonhover]" size="40" value="' . $this->settings['player']['righticonhover'] . '" style="background-color: ' . $this->settings['player']['righticonhover'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" /> (*)' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_rightbg_">' . __('Right background', 'podpress') . ' (13):</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_rightbg_" name="playerSettings[rightbg]" size="40" value="' . $this->settings['player']['rightbg'] . '" style="background-color: ' . $this->settings['player']['rightbg'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" /> (*)' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_rightbghover_">' . __('Right background (hover)', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_color_cell">' . "\n"; echo ' <input type="text" id="playerSettings_rightbghover_" name="playerSettings[rightbghover]" size="40" value="' . $this->settings['player']['rightbghover'] . '" style="background-color: ' . $this->settings['player']['rightbghover'] . ';" onfocus="javascript: podPress_switchColorInputs(this.id);" onchange="javascript: this.style.background=this.value;" /> (*)' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th> </th>' . "\n"; echo ' <td> </td>' . "\n"; echo ' <td class="podpress_player_color_cell_right_col">' . "\n"; echo ' ' . __('(*) is also a Podango Player option (all other options are for the 1PixelOut player only)', 'podpress') . "<br />\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_listenWrapper">' . __('Enable Listen Wrapper', 'podpress') . ':</label></th>' . "\n"; echo ' <td colspan="2">' . "\n"; if (FALSE == $this->settings['enablePodangoIntegration'] and TRUE == isset($this->settings['mp3Player']) and '1pixelout' == $this->settings['mp3Player']) { echo ' <input type="checkbox" name="playerSettings[listenWrapper]" id="playerSettings_listenWrapper" '; if ($this->settings['player']['listenWrapper']) { echo 'checked="checked"'; } echo ' onclick="javascript: if (this.checked == true) { document.getElementById(\'podpress_lwc_1\').style.backgroundImage = \'url(' . $plugins_url . '/images/listen_wrapper.gif)\';} else { document.getElementById(\'podpress_lwc_1\').style.backgroundImage = \'\'; }" />' . "\n"; } else { echo ' <input type="checkbox" name="playerSettings[listenWrapper]" id="playerSettings_listenWrapper" '; if ($this->settings['player']['listenWrapper']) { echo 'checked="checked"'; } echo " onclick=\"javascript: podPressShowHideWrapper('podPressPlayerSpace_1', '" . $plugins_url . '/images/listen_wrapper.gif' . "');\"/>\n"; } echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th> </th>' . "\n"; echo ' <td colspan="2">' . "\n"; if (FALSE == $this->settings['enablePodangoIntegration'] and TRUE == isset($this->settings['mp3Player']) and '1pixelout' == $this->settings['mp3Player']) { if (TRUE == isset($this->settings['player']['listenWrapper']) and TRUE == $this->settings['player']['listenWrapper']) { echo ' <div class="podpress_listenwrapper_container" id="podpress_lwc_1" style="background-image:url(' . $plugins_url . '/images/listen_wrapper.gif);"><div class="podpress_mp3_borderleft"></div><div class="podpress_1pixelout_container"><div id="podPressPlayerSpace_1"></div></div></div>' . "\n"; } else { echo ' <div class="podpress_listenwrapper_container" id="podpress_lwc_1"><div class="podpress_mp3_borderleft"></div><div class="podpress_1pixelout_container"><div id="podPressPlayerSpace_1"></div></div></div>' . "\n"; } } else { echo ' <div id="podPressPlayerSpace_1"></div>' . "\n"; } echo ' <div id = "podPressPlayerSpace_1_PlayLink"></div>' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset><br />' . "\n"; if (FALSE == $this->settings['enablePodangoIntegration'] and TRUE == isset($this->settings['mp3Player']) and '1pixelout' == $this->settings['mp3Player']) { echo ' <script type="text/javascript"><!--' . "\n"; echo ' podpressAudioPlayer.embed("podPressPlayerSpace_1", { soundFile: "sample.mp3", width: 290, height: 24, autostart: "no" });' . "\n"; // titles: "'.js_escape($val['artist']).'", artists: "'.js_escape($val['title']).'", echo ' --></script>' . "\n"; } else { echo '<script type="text/javascript"><!--' . "\n"; if (!$this->settings['player']['listenWrapper']) { echo ' podPressMP3PlayerWrapper = false;' . "\n"; } else { echo ' podPressMP3PlayerWrapper = true;' . "\n"; } echo "\tdocument.getElementById('podPressPlayerSpace_1').innerHTML = podPressGeneratePlayer(1, 'sample.mp3', '', '');\n"; echo "--></script>\n"; } echo ' <fieldset class="options">' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_initialvolume_">' . __('Initial Volume Level', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col">' . "\n"; echo ' <select name="playerSettings[initialvolume]">' . "\n"; if (FALSE == isset($this->settings['player']['initialvolume'])) { $initialvolume = 70; } else { $initialvolume = intval($this->settings['player']['initialvolume']); } for ($i = 100; $i >= 0; $i--) { if ($i == $initialvolume) { $selected = ' selected="selected"'; } else { $selected = ''; } echo ' <option value="' . $i . '"' . $selected . '>' . $i . '</option>' . "\n"; } echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td>' . __('(default: 70)', 'podpress') . '</td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_buffer_">' . __('Buffering Time', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col">' . "\n"; echo ' <select name="playerSettings[buffer]">' . "\n"; if (FALSE == isset($this->settings['player']['buffer'])) { $buffer = 5; } else { $buffer = intval($this->settings['player']['buffer']); } for ($i = 5; $i <= 60; $i++) { if ($i == $buffer) { $selected = ' selected="selected"'; } else { $selected = ''; } echo ' <option value="' . $i . '"' . $selected . '>' . $i . '</option>' . "\n"; } echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td>' . __('It is the time span in seconds (default: 5) which the player uses to load a part of the mp3 before it starts to play the mp3 file.', 'podpress') . '</td>' . "\n"; echo ' </tr>' . "\n"; if (TRUE == isset($this->settings['player']['checkpolicy']) and 'yes' == $this->settings['player']['checkpolicy'] and (FALSE == isset($this->settings['player']['overwriteTitleandArtist']) or 'yes' !== $this->settings['player']['overwriteTitleandArtist'])) { $checked = ' checked="checked"'; } else { $checked = ''; } echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_checkpolicy_">' . __('Use a cross-domain policy file', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col">' . "\n"; echo ' <input type="checkbox" name="playerSettings[checkpolicy]" id="playerSettings_checkpolicy_"' . $checked . ' value="yes" onclick="podpress_checkonlyone( \'playerSettings_overwriteTitleandArtist_\', this.id );" />' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_player_description_cell">' . __('By default, the 1PixelOut player gets the track information from the <a href="http://en.wikipedia.org/wiki/Id3" target="_blank" title="en.Wikipedia: ID3 tags">ID3 tags</a> of a mp3 file. These tags are usually set by (resp. with the help of) the software which you use to create the file. If they are set correctly, you should see the artist and title in the player. But if your mp3 files are not located in one of the sub folders of your blog then the player won\'t be able to read the ID3 tags even if the file is located on a subdomain (e.g. your blog url is yourdomain.com and your files are on www.yourdomain.com). This is a security feature of the <a href="http://en.wikipedia.org/wiki/Adobe_Flash_Player" title="en.Wikipedia: Adobe Flash Player">Adobe Flash Player</a> of your web browser. The 1PixelOut player shows in such situations e.g. "<strong>Track #1</strong>" instead of the ID3 information.<br />But you can allow the player from certain domains the access to the ID3 tags with the help of a crossdomain policy file. A policy file is a simple <a href="http://en.wikipedia.org/wiki/XML" title="en.Wikipedia: XML">XML</a> file that you place in the root of the server where you host your mp3 files. Here is the syntax:', 'podpress'); echo ' <br /><code style="display:block;">'; echo ' <?xml version="1.0"?>' . "<br />\n"; echo ' <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">' . "<br />\n"; echo ' <cross-domain-policy>' . "<br />\n"; echo ' <allow-access-from domain="www.yourdomain.com"/>' . "<br />\n"; echo ' </cross-domain-policy>'; echo ' </code>'; echo ' ' . __('Replace yourdomain.com with the domain on which your blog and the player is hosted. You can also use wildcards to allow access from any subdomain (*.yourdomain.com). But it is recommended to be as restrictive as possible. More information, read Adobe\'s full <a href="http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html" target="_blank">cross-domain policy file specification</a>. Name the policy file <em>crossdomain.xml</em>.<br />Enable this option only if all your mp3 files are located on a server with a policy file.<br />This option works only if you are not using the statistic features of podPress.', 'podpress') . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; if (TRUE == isset($this->settings['player']['overwriteTitleandArtist']) and 'yes' == $this->settings['player']['overwriteTitleandArtist'] and (FALSE == isset($this->settings['player']['checkpolicy']) or 'yes' !== $this->settings['player']['checkpolicy'])) { $checked = ' checked="checked"'; } else { $checked = ''; } echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_overwriteTitleandArtist_">' . __('Use custom values for titles and artists instead of the ID3 data', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col">' . "\n"; echo ' <input type="checkbox" name="playerSettings[overwriteTitleandArtist]" id="playerSettings_overwriteTitleandArtist_"' . $checked . ' value="yes" onclick="podpress_checkonlyone( \'playerSettings_checkpolicy_\', this.id );" />' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_player_description_cell">' . sprintf(__('With this option the displayed title and artist of a mp3 file will be overwritten by the custom title which you can insert for each file at the editor page and the post specific value of iTunes:Author. This helps in cases when the "%1$s" option is not helping e.g. if your media files are on a server or domain and you can not use a cross-domain policy file or if you are using the statistic features of podPress.', 'podpress'), __('Use a cross-domain policy file', 'podpress')) . '</td>' . "\n"; echo ' </tr>' . "\n"; if (TRUE == isset($this->settings['player']['animation']) and 'no' == $this->settings['player']['animation']) { $checked = ' checked="checked"'; } else { $checked = ''; } echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_animation_">' . __('1Pixelout Player always open', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col">' . "\n"; echo ' <input type="checkbox" name="playerSettings[animation]" id="playerSettings_animation_"' . $checked . ' value="yes" />' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_player_description_cell">' . __('The player is always open.', 'podpress') . '</td>' . "\n"; echo ' </tr>' . "\n"; if (TRUE == isset($this->settings['player']['remaining']) and 'yes' == $this->settings['player']['remaining']) { $checked = ' checked="checked"'; } else { $checked = ''; } echo ' <tr>' . "\n"; echo ' <th><label for="playerSettings_remaining_">' . __('1Pixelout Player shows remaining time', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col">' . "\n"; echo ' <input type="checkbox" name="playerSettings[remaining]" id="playerSettings_remaining_"' . $checked . ' value="yes" />' . "\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_player_description_cell">' . __('The player shows the remaining track time rather than the ellapsed time.', 'podpress') . '</td>' . "\n"; echo ' </tr>' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('OGG/OGV Player Settings', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . __('choose a player:', 'podpress') . '</th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col" style="width:15%;">' . "\n"; if (!isset($this->settings['cortado_version']) or 'cortado_default' === $this->settings['cortado_version']) { $cortado_default = ' checked="checked"'; $cortado_signed = ''; } else { $cortado_default = ''; $cortado_signed = ' checked="checked"'; } echo ' <input type="radio" name="cortado_version" id="cortado_default" value="cortado_default"' . $cortado_default . ' /> <label for="cortado_default">' . __('default version', 'podpress') . '</label><br />' . "\n"; echo ' <input type="radio" name="cortado_version" id="cortado_signed" value="cortado_signed"' . $cortado_signed . ' /> <label for="cortado_signed">' . __('signed version', 'podpress') . '</label>' . "\n"; echo ' </td>' . "\n"; echo ' <td>' . __('If your media files are stored not under the same domain as your blog and the default player then use the signed version of the <a href="http://www.theora.org/cortado/" target="_blank" title="theora.org: more details about this player">Cortado player</a>. But users will be asked to approve the certificate.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Video Player', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="disableVideoPreview">' . __('Disable Video Preview', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col">' . "\n"; echo ' <input type="checkbox" name="disableVideoPreview" id="disableVideoPreview" '; if ($this->settings['disableVideoPreview']) { echo 'checked="checked"'; } echo " onclick=\"javascript: podPressShowHideRow('videoPreviewImageWrapper'); podPressShowHideRow('videoPreviewPlayerWrapper');\"/>\n"; echo ' </td>' . "\n"; echo ' <td>' . __('When checked there will be no previews of the video players in all posts (and pages).', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; if ($this->settings['disableVideoPreview']) { $showVideoPreviewOptions = 'style="display: none;"'; } echo ' <tr id="videoPreviewImageWrapper" ' . $showVideoPreviewOptions . '>' . "\n"; echo ' <th><label for="videoPreviewImage">' . __('Preview Image URL', 'podpress') . ':</label></th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <input type="text" id="videoPreviewImage" name="videoPreviewImage" class="podpress_wide_text_field" size="40" value="' . attribute_escape($this->settings['videoPreviewImage']) . '" onchange="javascript: document.getElementById(\'podPress_previewImageIMG_2\').src = this.value.replace(/http:/gi, window.location.protocol);" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr id="videoPreviewPlayerWrapper" ' . $showVideoPreviewOptions . '>' . "\n"; echo ' <th><label for="videoPreview">' . __('Preview Image', 'podpress') . ':</label></th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <div id="podPressPlayerSpace_2"></div>' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr id="videoDefaultPlayerSizeWrapper" ' . $showVideoPreviewOptions . '>' . "\n"; echo ' <th><label for="videoDefaultPlayerSize">' . __('Default (preview) player size', 'podpress') . ':</label></th>' . "\n"; echo ' <td colspan="2">' . "\n"; if (FALSE == isset($this->settings['videoDefaultPlayerSize_x'])) { $this->settings['videoDefaultPlayerSize_x'] = 320; } if (FALSE == isset($this->settings['videoDefaultPlayerSize_y'])) { $this->settings['videoDefaultPlayerSize_y'] = 240; } echo "\t\t\t\t\t" . sprintf(__('width %1$s px (default: 320 px)', 'podpress'), '<input type="text" id="videoDefaultPlayerSize_x" name="videoDefaultPlayerSize_x" size="5" value="' . attribute_escape($this->settings['videoDefaultPlayerSize_x']) . '" />') . "<br />\n"; echo "\t\t\t\t\t" . sprintf(__('height %1$s px (default: 240 px)', 'podpress'), '<input type="text" id="videoDefaultPlayerSize_y" name="videoDefaultPlayerSize_y" size="5" value="' . attribute_escape($this->settings['videoDefaultPlayerSize_y']) . '" />') . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' </table>' . "\n"; echo '<script type="text/javascript"><!--' . "\n"; echo "\tdocument.getElementById('podPressPlayerSpace_2').innerHTML = podPressGenerateVideoPreview(2, '', 320, 240, '" . podpress_siteurl_is_ssl($this->settings['videoPreviewImage']) . "', true);\n"; echo "--></script>\n"; echo ' </fieldset>' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('All Players', 'podpress') . '</legend>' . "\n"; echo ' <table class="editform podpress_settings_table">' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="contentAutoDisplayPlayer">' . __('Display Player/Preview', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col">' . "\n"; echo ' <input type="checkbox" name="contentAutoDisplayPlayer" id="contentAutoDisplayPlayer" '; if ($this->settings['contentAutoDisplayPlayer']) { echo 'checked="checked"'; } echo "/>\n"; echo ' </td>' . "\n"; echo ' <td class="podpress_player_description_cell">' . __('When checked the player/preview will be visible by default.', 'podpress') . '</td>' . "\n"; echo ' </tr> ' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="use_html5_media_tags">' . __('Use HTML5 tags', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col">' . "\n"; $showhtml5playeralways_disabled = ' disabled="disabled"'; if (TRUE == isset($this->settings['use_html5_media_tags']) and FALSE === $this->settings['use_html5_media_tags']) { echo ' <input type="checkbox" name="use_html5_media_tags" id="use_html5_media_tags" value="yes" onclick="podPress_show_HTML5_player_always(this.id, \'showhtml5playersonpageload\')" />' . "\n"; $this->settings['showhtml5playersonpageload'] = FALSE; } else { echo ' <input type="checkbox" name="use_html5_media_tags" id="use_html5_media_tags" checked="checked" value="yes" onclick="podPress_show_HTML5_player_always(this.id, \'showhtml5playersonpageload\')" />' . "\n"; $showhtml5playeralways_disabled = ''; } echo ' </td>' . "\n"; echo ' <td class="podpress_player_description_cell">' . __('If this option is active (recommended) then podPress will embed MP3, OGG and OGV media files by using HTML5 elements, but only if the visitor of your blog uses a web browser which supports this. Otherwise podPress will embed the files as before with Flash-based players (e.g. the 1PixelOut player) or as objects which require other browser plugins.<br />The Listen Wrapper background image for the MP3 players works only in combination with the Flash-based players.<br /><a href="http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28HTML5_Media%29#Audio_format_support" title="en.Wikipedia: Comparison of layout engines HTML5 (audio)">Some web browsers support the HTML5 <audio></a> and <a href="http://en.wikipedia.org/wiki/HTML5_video#Browser_support" title="en.Wikipedia: HTML5 (video)"><video></a> elements. These browsers show their native players instead of <a href="http://en.wikipedia.org/wiki/Adobe_Flash" title="en.Wikipedia: Adobe Flash">Flash</a>-based or other plugin players. Currently (03/2011) the browsers with the <a href="http://en.wikipedia.org/wiki/WebKit" title="en.Wikipedia: WebKit">WebKit</a> (>= 525) engine like Safari and Chrome or the Internet Explorer since version 9 support HTML5 <audio> and MP3. (The Safari browser on iPhones, iPads and iPod Touch supports especially the HTML5 <audio> and <video> elements but not Flash-based players.) Browsers with the <a href="http://en.wikipedia.org/wiki/Gecko_%28layout_engine%29" title="en.Wikipedia: Gecko layout engine">Gecko</a> (>= 1.9.1) or <a href="http://en.wikipedia.org/wiki/Presto_%28layout_engine%29" title="en.Wikipedia: Presto layout engine">Presto</a> (>= 2.5) engine like FireFox and Opera support HTML5 <audio>/<video> elements and OGG/OGV.', 'podpress') . '</p>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th><label for="showhtml5playersonpageload">' . __('show HTML5 players always on page load', 'podpress') . ':</label></th>' . "\n"; echo ' <td class="podpress_player_narrowmiddle_col">' . "\n"; if (TRUE == isset($this->settings['showhtml5playersonpageload']) and TRUE === $this->settings['showhtml5playersonpageload']) { echo ' <input type="checkbox" name="showhtml5playersonpageload" id="showhtml5playersonpageload" checked="checked" value="yes"' . $showhtml5playeralways_disabled . ' />' . "\n"; } else { echo ' <input type="checkbox" name="showhtml5playersonpageload" id="showhtml5playersonpageload" value="yes"' . $showhtml5playeralways_disabled . ' />' . "\n"; } echo ' </td>' . "\n"; echo ' <td class="podpress_player_description_cell">' . sprintf(__('Some of the web browsers (e.g. Safari and Chrome except Safari on iPhones, iPads, iPods) which support HTML5 <audio> (and <video>) elements start to download (to buffer) all media files which are embedded with HTML5 elements after the blog page is loaded. This may cause a lot of <a href="http://en.wikipedia.org/wiki/Web_traffic" title="en.Wikipedia: web traffic">traffic</a> which could lead to higher costs. Because of these possible consequences podPress shows by default a Play button and only a click on such a button activates the HTML5 player in those browsers. But if you activate this option then podPress will always show the HTML5 players directly. This option works only in combination with "%1$s". (default: not checked)', 'podpress'), __('Use HTML5 tags', 'podpress')) . '</p>' . "\n"; echo ' </tr>' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' <input type="hidden" name="podPress_submitted" value="players" />' . "\n"; echo ' <p class="submit"> ' . "\n"; echo ' <input class="button-primary" type="submit" name="Submit" value="' . __('Update Options', 'podpress') . ' »" /> ' . "\n"; echo ' </p> ' . "\n"; echo ' </form> ' . "\n"; echo '</div>' . "\n"; }
function settings_feed_edit() { global $wp_version; podPress_isAuthorized(); if (isset($_GET['updated']) && $_GET['updated'] == 'true') { echo '<div id="message" class="updated fade"><p>' . __('Settings Saved', 'podpress') . '</p></div>'; } elseif (isset($_GET['updated']) && $_GET['updated'] != 'true') { echo '<div id="message" class="error fade"><p>' . __('<strong>Error:</strong> Unable to save the settings', 'podpress') . '</p></div>'; } $blog_charset = get_bloginfo('charset'); echo '<div class="wrap">' . "\n"; if (TRUE == version_compare($wp_version, '2.7', '>=')) { echo '<div id="podpress-icon" class="icon32"><br /></div>'; } if (TRUE == version_compare($wp_version, '2.8', '>=')) { echo ' <h2>' . __('Feed/iTunes Settings', 'podpress') . '</h2>' . "\n"; // get the plugins version information via the WP plugins version check if (TRUE == version_compare($wp_version, '2.9', '>=')) { $versioninfo = get_site_transient('update_plugins'); } else { $versioninfo = get_transient('update_plugins'); } // If there is a new version then there is a 'response'. This is the method from the plugins page. if (FALSE !== isset($versioninfo->response[plugin_basename(dirname(__FILE__) . '/podpress.php')]->new_version)) { echo '<div class="message updated"><p><a href="http://wordpress.org/extend/plugins/podpress/" target="_blank">' . __('a new podPress version is available', 'podpress') . '</a></p></div>'; } } else { echo ' <h2>' . __('Feed/iTunes Settings', 'podpress') . ' <a href="http://www.mightyseek.com/podpress/#download" target="_new"><img src="http://www.mightyseek.com/podpress_downloads/versioncheck.php?current=' . PODPRESS_VERSION . '" alt="' . __('Checking for updates... Failed.', 'podpress') . '" border="0" /></a></h2>' . "\n"; } echo ' <form method="post">' . "\n"; if (function_exists('wp_nonce_field')) { // since WP 2.0.4 wp_nonce_field('podPress_feed_settings_nonce'); } podPress_DirectoriesPreview('feed_edit'); echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Settings for the default Feeds', 'podpress') . '</legend>' . "\n"; echo ' <p>' . sprintf(__('podPress adds automatically additional elements (e.g. <a href="http://www.apple.com/itunes/podcasts/specs.html#rss" target="_blank">iTunes RSS tags</a>) to the default RSS Feeds of your weblog. But it uses the RSS image, the copyright name, the license URL and the News Feed language also for the ATOM Feeds. You can configure these elements in the following section. But podPress adds also new Feeds to your weblog (see <a href="#podpressfeeds">%1$s</a> below).', 'podpress'), __('podPress Feeds', 'podpress')) . '</p>' . "\n"; echo ' <h3>' . __('iTunes Settings', 'podpress') . '</h3>' . "\n"; echo ' <p>' . __('These settings are for the <a href="http://www.apple.com/itunes/podcasts/specs.html#rss" target="_blank">iTunes RSS tags</a>.', 'podpress') . '</p>' . "\n"; echo ' <table class="podpress_feed_gensettings">' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="iTunesSubtitle">' . __('iTunes:Subtitle', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <textarea name="iTunes[subtitle]" id="iTunesSubtitle" class="podpress_wide_text_field" rows="2" cols="40">' . stripslashes($this->settings['iTunes']['subtitle']) . '</textarea>'; echo ' <br/>' . __('A few words which describe the feed title a little bit more (max. 255 characters).', 'podpress') . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="iTunesSummary">' . __('iTunes:Summary', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <textarea id="iTunesSummary" name="iTunes[summary]" class="podpress_wide_text_field" rows="6" cols="40" onchange="podPress_updateFeedSettings();">' . stripslashes($this->settings['iTunes']['summary']) . '</textarea>'; echo ' <br />' . __('The description of the podcast.', 'podpress') . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="iTunesImage">' . __('iTunes:Image', 'podpress') . '</label>'; echo ' </th>' . "\n"; $itunes_image_url = $this->settings['iTunes']['image']; echo ' <td colspan="2">' . "\n"; echo ' ' . __('The iTunes image should be a square image with <a href="http://www.apple.com/itunes/podcasts/specs.html#image" target="_blank">at least 1400 x 1400 pixels</a> as Apple writes in "<a href="http://www.apple.com/itunes/podcasts/specs.html" target="_blank">Making a Podcast</a>" of their own Podcasting Resources. iTunes supports JPEG and PNG images (the file name extensions should ".jpg" or ".png").', 'podpress') . "\n"; echo ' <br/>'; echo ' <input type="text" id="iTunesImage" name="iTunes[image]" class="podpress_wide_text_field" value="' . attribute_escape($itunes_image_url) . '" size="40" onchange="podPress_updateFeedSettings();"/>' . "\n"; echo ' <br />'; echo ' <img id="iTunesImagePreview" style="width:300px; height:300px;" alt="' . __('Podcast Image - Big (If you can not see an image then the URL is wrong.)', 'podpress') . '" src="" />' . "<br />\n"; echo ' <em>' . __('(This image is only a preview which is limited to 300 x 300 pixels.) ', 'podpress') . '</em>'; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="iTunesAuthor">' . __('iTunes:Author/Owner', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <input type="text" name="iTunes[author]" id="iTunesAuthor" class="podpress_wide_text_field" value="' . attribute_escape(stripslashes($this->settings['iTunes']['author'])) . '" size="40" onchange="podPress_updateFeedSettings();"/>'; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="iTunesKeywords">' . __('iTunes:Keywords', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <textarea name="iTunes[keywords]" id="iTunesKeywords" class="podpress_wide_text_field" rows="4" cols="40">' . stripslashes($this->settings['iTunes']['keywords']) . '</textarea>'; echo ' <br/>(' . __('a list of max. 12 comma separated words', 'podpress') . ')'; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="iTunesCategory_0">' . __('iTunes:Categories', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <select id="iTunesCategory_0" name="iTunes[category][0]" onchange="podPress_updateFeedSettings();">' . "\n"; echo ' <optgroup label="' . __('Select Primary', 'podpress') . '">' . "\n"; podPress_itunesCategoryOptions(stripslashes($this->settings['iTunes']['category'][0])); echo ' </optgroup>' . "\n"; echo ' </select><br />' . "\n"; echo ' <select name="iTunes[category][1]">' . "\n"; echo ' <optgroup label="' . __('Select Second', 'podpress') . '">' . "\n"; podPress_itunesCategoryOptions(stripslashes($this->settings['iTunes']['category'][1])); echo ' </optgroup>' . "\n"; echo ' </select><br />' . "\n"; echo ' <select name="iTunes[category][2]">' . "\n"; echo ' <optgroup label="' . __('Select Third', 'podpress') . '">' . "\n"; podPress_itunesCategoryOptions(stripslashes($this->settings['iTunes']['category'][2])); echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="iTunesExplicit">' . __('iTunes:Explicit', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="iTunes[explicit]" id="iTunesExplicit">' . "\n"; echo ' <option value="No" '; if ($this->settings['iTunes']['explicit'] == 'No') { echo 'selected="selected"'; } echo '>' . __('No', 'podpress') . '</option>' . "\n"; echo ' <option value="Yes" '; if ($this->settings['iTunes']['explicit'] == 'Yes') { echo 'selected="selected"'; } echo '>' . __('Yes', 'podpress') . '</option>' . "\n"; echo ' <option value="Clean" '; if ($this->settings['iTunes']['explicit'] == 'Clean') { echo 'selected="selected"'; } echo '>' . __('Clean', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td>' . "\n"; echo ' ' . __('Setting to indicate (in iTunes) whether or not your podcast contains explicit language or content which is not suitable for non-adult persons.', 'podpress') . "\n"; echo ' <br/>' . __('"No" (default) - no indicator will show up', 'podpress') . "\n"; echo ' <br/>' . __('"Yes" - an "EXPLICIT" parental advisory graphic will appear next to your podcast artwork or name in iTunes', 'podpress') . "\n"; echo ' <br/>' . __('"Clean" - means that you are sure that no explicit language or adult content is included any of the episodes, and a "CLEAN" graphic will appear', 'podpress') . "\n"; echo ' <p>' . __('You have also the possibility to adjust this option for each post or page with at least one podcast episode (in the post/page editor).', 'podpress') . '</p>' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="iTunesBlock">' . __('iTunes:Block', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="iTunes[block]" id="iTunesBlock">' . "\n"; echo ' <option value="No" '; if ($this->settings['iTunes']['block'] != 'Yes') { echo 'selected="selected"'; } echo '>' . __('No', 'podpress') . '</option>' . "\n"; echo ' <option value="Yes" '; if ($this->settings['iTunes']['block'] == 'Yes') { echo 'selected="selected"'; } echo '>' . __('Yes', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td>' . "\n"; echo ' ' . __('Use this if you are no longer creating a podcast and you want it removed from iTunes.', 'podpress') . "\n"; echo ' <br/>' . __('"No" (default) - the podcast appears in the iTunes Podcast directory', 'podpress') . "\n"; echo ' <br/>' . __('"Yes" - prevent the entire podcast from appearing in the iTunes Podcast directory', 'podpress') . "\n"; echo ' <p>' . __('You can also use such an option for each of your podcast episodes (in the post/page editor).', 'podpress') . '</p>' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="iTunesFeedID">' . __('iTunes:FeedID', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td>' . "\n"; echo ' <input name="iTunes[FeedID]" id="iTunesFeedID" type="text" value="' . $this->settings['iTunes']['FeedID'] . '" size="10" />'; echo ' </td>' . "\n"; echo ' <td>' . "\n"; echo ' ' . __('(Only relevant for the podPress Feed Buttons widget)', 'podpress'); echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="iTunesNewFeedURL">' . __('iTunes:New-Feed-Url', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td>' . "\n"; echo ' <select name="iTunes[new-feed-url]" id="iTunesNewFeedURL">' . "\n"; echo ' <option value="Disable" '; if ($this->settings['iTunes']['new-feed-url'] != 'Enable') { echo 'selected="selected"'; } echo '>' . __('Disable', 'podpress') . '</option>' . "\n"; echo ' <option value="Enable" '; if ($this->settings['iTunes']['new-feed-url'] == 'Enable') { echo 'selected="selected"'; } echo '>' . __('Enable', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </td>' . "\n"; echo ' <td>' . "\n"; echo ' ' . __('If you want to change the URL of your podcast feed which you have used in the iTunes Store then change the "Podcast Feed URL" and set this option to "Enable" until the iTunes Store recognizes the new URL. This may take several days. "Enable" will add the <code><itunes:new-feed-url></code> tag to the RSS feeds and set the "Podcast Feed URL" as the new URL. For further information about "<a href="http://www.apple.com/itunes/podcasts/specs.html#changing" title="iTunes Podcasting Resources: Changing Your Feed URL" target="_blank">Changing Your Feed URL</a>" read on in the <a href="http://www.apple.com/itunes/podcasts/specs.html" target="_blank" title="iTunes Podcasting Resources: Making a Podcast">iTunes Podcasting Resources</a>.', 'podpress'); echo ' <p><label for="podcastFeedURL"><strong>' . __('the new Feed URL', 'podpress') . '</strong></label>'; echo ' <br/>'; echo ' <input type="text" id="podcastFeedURL" class="podpress_wide_text_field" name="podcastFeedURL" size="40" value="' . attribute_escape($this->settings['podcastFeedURL']) . '" onchange="podPress_updateFeedSettings();" /><br />' . __('The URL of your Podcast Feed. If you want to register your podcast at the iTunes Store or if your podcast is already listed there then this input field should contain the same URL as in the iTunes Store settings. If you want change the URL at the iTunes Store then please read first the help text of the iTunes:New-Feed-Url option.', 'podpress'); echo ' <br /><input type="button" value="' . __('Validate your Feed', 'podpress') . '" onclick="javascript: if(document.getElementById(\'podcastFeedURL\').value != \'\') { window.open(\'http://www.feedvalidator.org/check.cgi?url=\'+document.getElementById(\'podcastFeedURL\').value); }"/>' . "\n"; echo ' </p>'; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' </table>' . "\n"; if (function_exists('get_admin_url')) { $adminurl = get_admin_url(); // since WP 3.0 } elseif (function_exists('admin_url')) { $adminurl = admin_url(); // since WP 2.6 } else { $adminurl = site_url() . '/wp-admin'; } echo ' <h3>' . __('General Feed Settings', 'podpress') . '</h3>' . "\n"; echo ' <p>' . __('These settings are blog settings.', 'podpress') . '</p>' . "\n"; echo ' <table class="podpress_feed_gensettings">' . "\n"; echo ' <tr>' . "\n"; echo ' <td class="podpress_th_full_width" colspan="3">' . "\n"; echo ' ' . sprintf(__('You can modify the following %2$s options on the %1$s page of this blog.', 'podpress'), '<a href="' . trailingslashit($adminurl) . 'options-general.php' . '">' . __('General Settings') . '</a>', __('three', 'podpress')); echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="blogname">' . __('Blog/Podcast title', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <em class="podpress_static_feed_settings" id="blogname">' . stripslashes(get_option('blogname')) . '</em><br />' . __('Used as the Feed title', 'podpress'); echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="blogdescription">' . __('Blog Tagline', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <em class="podpress_static_feed_settings" id="blogdescription">' . stripslashes(get_option('blogdescription')) . '</em><br />' . __('used as the Feed description', 'podpress') . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="admin_email">' . __('Owner E-mail address', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <em class="podpress_static_feed_settings">' . stripslashes(get_option('admin_email')) . '</em><br />' . __('used besides the itunes:author value in the <managingEditor> and the <webMaster> elements of the RSS Feeds', 'podpress'); echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <td class="podpress_th_full_width" colspan="3">' . "\n"; echo ' ' . sprintf(__('You can modify the following %2$s options on the %1$s page of this blog.', 'podpress'), '<a href="' . trailingslashit($adminurl) . 'options-reading.php' . '">' . __('Reading Settings') . '</a>', __('two', 'podpress')); echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="posts_per_rss">' . __('Syndication feeds show the most recent', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <em class="podpress_static_feed_settings">' . get_option('posts_per_rss') . '</em> ' . __('posts', 'podpress'); echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="blog_charset">' . __('Encoding for pages and feeds') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <em class="podpress_static_feed_settings">' . $blog_charset . '</em><br />' . __('The <a href="http://codex.wordpress.org/Glossary#Character_set">character encoding</a> of your site (UTF-8 is <a href="http://www.apple.com/itunes/podcasts/specs.html#encoding" target="_blank" title="iTunes Podcast Resources - Making a Podcast">recommended</a>)', 'podpress'); echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="rss_ttl">' . __('TTL', 'podpress') . ' (' . __('time-to-live', 'podpress') . ')</label>'; echo ' </th>' . "\n"; echo ' <td>' . "\n"; $data['rss_ttl'] = get_option('rss_ttl'); if (!empty($data['rss_ttl']) && $data['rss_ttl'] < 1440) { $data['rss_ttl'] = 1440; } echo ' <input name="rss_ttl" id="rss_ttl" type="text" value="'; if ($data['rss_ttl']) { echo $data['rss_ttl']; } else { echo '1440'; } echo '" size="4" />'; echo ' </td>' . "\n"; echo ' <td>' . "\n"; echo ' ' . __('minutes', 'podpress') . ' - ' . __('Minimum is 24 hours which is 1440 minutes.', 'podpress') . ' <a href="http://cyber.law.harvard.edu/rss/rss.html#ltttlgtSubelementOfLtchannelgt" title="RSS 2.0 Specification - TTL">' . __('More about TTL ...', 'podpress') . '</a>' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="rss_image">' . __('Blog/RSS Image (144 x 144 pixels)', 'podpress') . '</label>' . "\n"; echo ' </th>' . "\n"; $rss_image = get_option('rss_image'); echo ' <td colspan="2">' . "\n"; echo ' <input type="text" id="rss_image" name="rss_image" class="podpress_wide_text_field" value="' . attribute_escape($rss_image) . '" size="40" onchange="podPress_updateFeedSettings();"/>' . "\n"; echo ' <br />'; echo ' <img id="rss_imagePreview" style="width:144px; height:144px;" alt="' . __('Podcast Image - Small (If you can not see an image then the URL is wrong.)', 'podpress') . '" src="" />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="rss_language">' . __('Language of the News Feed content', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; $rss_language = get_option('rss_language'); echo ' <select id="rss_language" name="rss_language" onchange="podPress_updateFeedSettings();">' . "\n"; echo ' <optgroup label="' . __('Select Language', 'podpress') . '">' . "\n"; podPress_itunesLanguageOptions($rss_language); echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; //~ echo '<br /><em class="podpress_error">'.sprintf(__('Changes here will affect %1$s!', 'podpress'),__('the language of the main feeds of this blog', 'podpress')).'</em> <em>'.__('(This select box is not the only but probably the most comfortable way to change this option. So change it back if you do not want to use this plugin anymore.)', 'podpress').'</em>'; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' </table>' . "\n"; echo ' <h3>' . __('Further Feed Settings', 'podpress') . '</h3>' . "\n"; echo ' <table class="podpress_feed_gensettings">' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="rss_category">' . __('RSS Category', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <input type="text" name="rss_category" id="rss_category" class="podpress_wide_text_field" value="' . attribute_escape(stripslashes($this->settings['rss_category'])) . '" size="45" />' . "\n"; echo ' <br />' . __('A category for your RSS feeds. (This is for everyone except iTunes).', 'podpress') . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="rss_copyright">' . __('Feed Copyright / license name', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <input type="text" name="rss_copyright" id="rss_copyright" class="podpress_wide_text_field" value="' . attribute_escape(stripslashes($this->settings['rss_copyright'])) . '" size="65" />' . "\n"; echo ' <br />' . __('Enter the copyright string or license name. For example: Copyright © by Jon Doe, 2009 OR <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" target="_blank">CreativeCommons Attribution-Noncommercial-Share Alike 2.5</a>', 'podpress') . "\n"; echo ' <br /><br />' . "\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="rss_license_url">' . __('URL to the full Copyright / license text', 'podpress') . '</label>'; echo ' </th>' . "\n"; echo ' <td colspan="2">' . "\n"; echo ' <input type="text" name="rss_license_url" id="rss_license_url" class="podpress_wide_text_field podpress_wide_text_input_field" value="' . attribute_escape($this->settings['rss_license_url']) . '" size="65" />' . "\n"; echo ' <br />' . __('If you use a special license like a <a href="http://creativecommons.org/licenses" target="_blank" title="Creative Commons">Creative Commons</a> License for your news feeds then enter the complete URL (e.g. <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" target="_blank">http://creativecommons.org/licenses/by-nc-sa/2.5/</a>) to the full text of this particular license here.', 'podpress') . "<br />\n"; echo ' <p>' . __('Notice: You can set post specific license URLs and names by defining two custom fields per post. One with the name <strong>podcast_episode_license_name</strong> and one custom field with the name <strong>podcast_episode_license_url</strong>. If you want to set post specific values then it is necessary to define at least the custom field with the URL. If the license name is not defined then the name will be the URL.', 'podpress') . '</p>'; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th>' . "\n"; echo ' <label for="print_podpress_in_contentencoded">' . sprintf(__('Print podPress elements into the %1$s tags', 'podpress'), '<code><content:encoded></code>') . '</label>'; echo ' </th>' . "\n"; echo ' <td class="pp_2ndcol">' . "\n"; if (TRUE === isset($this->settings['print_podpress_in_contentencoded']) and TRUE == $this->settings['print_podpress_in_contentencoded']) { echo ' <input type="radio" name="print_podpress_in_contentencoded" id="print_podpress_in_contentencoded_yes" value="yes" checked="checked" /><label for="print_podpress_in_contentencoded_yes">' . __('yes', 'podpress') . '</label><br />' . "\n"; echo ' <input type="radio" name="print_podpress_in_contentencoded" id="print_podpress_in_contentencoded_no" value="no" /><label for="print_podpress_in_contentencoded_no">' . __('no', 'podpress') . '</label>' . "\n"; } else { echo ' <input type="radio" name="print_podpress_in_contentencoded" id="print_podpress_in_contentencoded_yes" value="yes" /><label for="print_podpress_in_contentencoded_yes">' . __('yes', 'podpress') . '</label><br />' . "\n"; echo ' <input type="radio" name="print_podpress_in_contentencoded" id="print_podpress_in_contentencoded_no" value="no" checked="checked" /><label for="print_podpress_in_contentencoded_no">' . __('no', 'podpress') . '</label>' . "\n"; } echo ' </td>' . "\n"; echo ' <td>' . "\n"; echo ' ' . sprintf(__('Print the podPress elements to the %1$s section of the %2$s of the RSS feeds. BETA version: This option inlfuences all feeds of the blog and not only the default feeds. (later version of podPress will probably contain such an option for each podPress Feed and the default feeds.)', 'podpress'), '<code><content:encoded></code>', '<code><item></code>') . "<br />\n"; echo ' </td>' . "\n"; echo ' </tr>' . "\n"; //~ echo ' <tr>'."\n"; //~ echo ' <th>'."\n"; //~ echo ' <label for="protectFeed">'.__('Aggressively Protect the news feeds', 'podpress').'</label>'; //~ echo ' </th>'."\n"; //~ echo ' <td>'."\n"; //~ echo ' <select name="protectFeed" id="protectFeed">'."\n"; //~ echo ' <option value="No" '; if($this->settings['protectFeed'] != 'Yes') { echo 'selected="selected"'; } echo '>'.__('No', 'podpress').'</option>'."\n"; //~ echo ' <option value="Yes" '; if($this->settings['protectFeed'] == 'Yes') { echo 'selected="selected"'; } echo '>'.__('Yes', 'podpress').'</option>'."\n"; //~ echo ' </select>'."\n"; //~ echo ' </td>'."\n"; //~ echo ' <td>'."\n"; //~ echo ' '.__('"No" (default) will convert only ampersand, less-than, greater-than, apostrophe and quotation signs to their numeric character references.', 'podpress')."\n"; //~ echo ' <br/>'.__('"Yes" will convert any invalid characters to their numeric character references in the feeds.', 'podpress')."\n"; //~ echo ' </td>'."\n"; //~ echo ' </tr>'."\n"; // this section is deactivated since 8.8.5 and since 8.8.10.8 the upgrade_class will remove the value during the upgrade process. (the only encoded content section is the <description> on <item> level and podPress does touch this value) //~ echo ' <tr>'."\n"; //~ echo ' <th>'."\n"; //~ echo ' <label for="rss_showlinks">'.__('Show Download Links in RSS Encoded Content', 'podpress').'</label>'; //~ echo ' </th>'."\n"; //~ echo ' <td>'."\n"; //~ echo ' <select name="rss_showlinks" id="rss_showlinks">'."\n"; //~ echo ' <option value="yes" '; if($this->settings['rss_showlinks'] == 'yes') { echo 'selected="selected"'; } echo '>'.__('Yes', 'podpress').'</option>'."\n"; //~ echo ' <option value="no" '; if($this->settings['rss_showlinks'] != 'yes') { echo 'selected="selected"'; } echo '>'.__('No', 'podpress').'</option>'."\n"; //~ echo ' </select>'."\n"; //~ echo ' </td>'."\n"; //~ echo ' <td>'."\n"; //~ echo ' '.__('Yes will put download links in the RSS encoded content. That means users can download from any site displaying the link.', 'podpress')."\n"; //~ echo ' </td>'."\n"; //~ echo ' </tr>'."\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <a name="podpressfeeds" id="podpressfeeds"></a><legend>' . __('podPress Feeds', 'podpress') . '</legend>' . "\n"; $permalinksettingsurl = trailingslashit($adminurl) . 'options-permalink.php'; $widgetsettingsurl = trailingslashit($adminurl) . 'widgets.php'; $generalsettingspodpressurl = trailingslashit($adminurl) . 'admin.php?page=podpress/podpress_general.php'; echo ' <p>' . sprintf(__('podPress is capable of creating additional Feeds for your blog. These Feeds are RSS or ATOM Feeds. The content of such a Feed may consist of all posts, posts with podPress attachment, posts of one more categories or posts with podPress attachments of certain file types. For instance you can create a Feed which contains only posts with audio files and one which contains only posts with video files. Furthermore the following section contains diverse options to customize these additional Feeds.<br />It is also possible to activate or deactivate these Feeds separately.<br /><strong>It is necessary to update the podPress Feed Buttons <a href="%1$s">widget settings</a> after the slug name of one of these Feeds has been modified.</strong>', 'podpress'), $widgetsettingsurl) . '</p>' . "\n"; //~ echo ' <p class="podpress_notice">'.__('<strong>Notice:</strong> After an upgrade from podPress v8.8.6.3 or older version to the current version, you need to control the following forms (and fill out empty fields eventually) of the Feeds you like to keep on using. You may copy and paste the meta information from the input fields above. But you could also use the new section below to customize these information for each Feed. The additional Feeds like the one with the slug name "podcast" do not automatically share those meta information any longer with the default Feeds of the blog.', 'podpress').'</p>'."\n"; echo ' <div id="podpress_accordion">' . "\n"; $filetypes = podPress_filetypes(); $allcategories = get_categories(array('orderby' => 'name', 'order' => 'ASC')); $i = 0; $posts_per_feed_default = get_option('posts_per_rss', 10); if (is_array($this->settings['podpress_feeds'])) { foreach ($this->settings['podpress_feeds'] as $feed) { $selected_filetypes = $feed['FileTypes']; if (FALSE === is_array($feed['FileTypes'])) { $selected_filetypes = array(); } $selected_categories = $feed['inclCategories']; if (FALSE === is_array($selected_categories)) { $selected_categories = array(); } if (FALSE == empty($feed['slug'])) { $ftitle = $feed['slug']; } else { $ftitle = $i; } echo ' <h4><a href="">' . __('Feed', 'podpress') . ' ' . $ftitle . '</a></h4>' . "\n"; echo ' <div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; if (TRUE === $feed['use']) { echo ' <input type="checkbox" name="podpress_feeds[' . $i . '][use]" id="podpress_feed_' . $i . '_use" value="yes" checked="checked" /> <label for="podpress_feed_' . $i . '_use">' . __('Activate Feed', 'podpress') . '</label>' . "\n"; } else { echo ' <input type="checkbox" name="podpress_feeds[' . $i . '][use]" id="podpress_feed_' . $i . '_use" value="yes" /> <label for="podpress_feed_' . $i . '_use">' . __('Activate Feed', 'podpress') . '</label>' . "\n"; } echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; if (FALSE == defined('PODPRESS_DEACTIVATE_PREMIUM') or FALSE === constant('PODPRESS_DEACTIVATE_PREMIUM')) { if (TRUE === $feed['premium']) { echo ' <input type="checkbox" name="podpress_feeds[' . $i . '][premium]" id="podpress_feed_' . $i . '_premium" value="yes" checked="checked" /> <label for="podpress_feed_' . $i . '_premium">' . __('Premium Feed', 'podpress') . '</label>' . "\n"; } else { echo ' <input type="checkbox" name="podpress_feeds[' . $i . '][premium]" id="podpress_feed_' . $i . '_premium" value="yes" /> <label for="podpress_feed_' . $i . '_premium">' . __('Premium Feed', 'podpress') . '</label>' . "\n"; } if (FALSE == isset($this->settings['enablePremiumContent']) or TRUE !== $this->settings['enablePremiumContent']) { echo ' <br /><span class="podpress_description">' . sprintf(__('If this Feed should be a Premium Feed then you need to activate the Premium Content feature at the <a href="%1$s">general settings page of podPress</a>.', 'podpress'), $generalsettingspodpressurl) . '</span>'; } } echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_name">' . __('Feed Name', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][name]" id="podpress_feed_' . $i . '_name" class="podpress_feeds_text_field" value="' . attribute_escape(stripslashes($feed['name'])) . '" /><br /><span class="podpress_description">' . __('(Leave the Feed Name field empty to delete this Feeds settings.)', 'podpress') . '</span><br />' . "\n"; switch ($feed['feedtitle']) { default: case 'append': $selected_append = ' selected="selected"'; $selected_blognameastitle = ''; $selected_feednameastitle = ''; break; case 'blognameastitle': $selected_append = ''; $selected_blognameastitle = ' selected="selected"'; $selected_feednameastitle = ''; break; case 'feednameastitle': $selected_append = ''; $selected_blognameastitle = ''; $selected_feednameastitle = ' selected="selected"'; break; } echo ' <label for="podpress_feed_' . $i . '_feedtitle">' . __('How-to build the Feed title:', 'podpress') . '</label> '; echo ' <select id="podpress_feed_' . $i . '_feedtitle" name="podpress_feeds[' . $i . '][feedtitle]">' . "\n"; echo ' <option value="append"' . $selected_append . '>' . __('use the blog name and append the Feed Name', 'podpress') . '</option>' . "\n"; echo ' <option value="blognameastitle"' . $selected_blognameastitle . '>' . __('use only the blog name as the title', 'podpress') . '</option>' . "\n"; echo ' <option value="feednameastitle"' . $selected_feednameastitle . '>' . __('use the Feed Name as the title', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_slug">' . __('Slug Name', 'podpress') . '</label> <span class="podpress_description">' . __('- the name for this Feed in the URL', 'podpress') . '</span><br /><input type="text" name="podpress_feeds[' . $i . '][slug]" id="podpress_feed_' . $i . '_slug" class="podpress_feeds_text_field" value="' . attribute_escape(stripslashes($feed['slug'])) . '" /><br /><span class="podpress_description">' . __('Please, use only these characters: a-z, 0-9, underscore and hiphen.', 'podpress') . '</span>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_fullwidth_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_feedurl">' . __('current Feed URL', 'podpress') . '</label><br /><span id="podpress_feed_' . $i . '_feedurl">' . get_feed_link($feed['slug']) . '</span>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_subtitle">' . __('iTunes:Subtitle', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][subtitle]" id="podpress_feed_' . $i . '_subtitle" class="podpress_feeds_text_field" value="' . attribute_escape(stripslashes($feed['subtitle'])) . '" />' . "\n"; echo ' <br /><br />' . "\n"; echo ' <label for="podpress_feed_' . $i . '_rss_category">' . __('RSS Category', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][rss_category]" id="podpress_feed_' . $i . '_rss_category" class="podpress_feeds_text_field" value="' . attribute_escape(stripslashes($feed['rss_category'])) . '" size="40" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_descr">' . __('Description (RSS) / Subtitle (ATOM) / iTunes:Summary', 'podpress') . '</label><br /><textarea name="podpress_feeds[' . $i . '][descr]" id="podpress_feed_' . $i . '_descr" class="podpress_feeds_text_field" rows="4" cols="40">' . stripslashes(stripslashes($feed['descr'])) . '</textarea>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_iTunesCategory_0">' . __('iTunes:Categories', 'podpress') . '</label><br />' . "\n"; echo ' <select id="podpress_feed_' . $i . '_iTunesCategory_0" name="podpress_feeds[' . $i . '][itunes-category][0]">' . "\n"; echo ' <optgroup label="' . __('Select Primary', 'podpress') . '">' . "\n"; podPress_itunesCategoryOptions(stripslashes($feed['itunes-category'][0])); echo ' </optgroup>' . "\n"; echo ' </select><br />' . "\n"; echo ' <select name="podpress_feeds[' . $i . '][itunes-category][1]">' . "\n"; echo ' <optgroup label="' . __('Select Second', 'podpress') . '">' . "\n"; podPress_itunesCategoryOptions(stripslashes($feed['itunes-category'][1])); echo ' </optgroup>' . "\n"; echo ' </select><br />' . "\n"; echo ' <select name="podpress_feeds[' . $i . '][itunes-category][2]">' . "\n"; echo ' <optgroup label="' . __('Select Third', 'podpress') . '">' . "\n"; podPress_itunesCategoryOptions(stripslashes($feed['itunes-category'][2])); echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_iTunesKeywords">' . __('iTunes:Keywords', 'podpress') . '</label><br /><textarea name="podpress_feeds[' . $i . '][itunes-keywords]" id="podpress_feed_' . $i . '_iTunesKeywords" class="podpress_feeds_text_field" rows="4" cols="40">' . stripslashes(stripslashes($feed['itunes-keywords'])) . '</textarea><br /><span class="podpress_description">' . __('a list of max. 12 comma separated words', 'podpress') . '</span>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_iTunesAuthor">' . __('iTunes:Author/Owner', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][itunes-author]" id="podpress_feed_' . $i . '_iTunesAuthor" class="podpress_feeds_text_field" value="' . attribute_escape(stripslashes($feed['itunes-author'])) . '" size="40" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_email">' . __('Owner E-mail address', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][email]" id="podpress_feed_' . $i . '_email" class="podpress_feeds_text_field" value="' . attribute_escape(stripslashes($feed['email'])) . '" size="40" />' . "\n"; echo ' </div>' . "\n"; if (FALSE == isset($feed['itunes-image']) or empty($feed['itunes-image'])) { $feed['itunes-image'] = $this->settings['iTunes']['image']; } echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_iTunesImage">' . __('iTunes:Image', 'podpress') . '</label> <a href="" class="podpress_image_preview_link" title="' . __('Feed', 'podpress') . ' ' . $feed['slug'] . ' - ' . __('iTunes:Image', 'podpress') . '" onclick="podPress_jQuery(\'#podpress-itunesimage-preview-' . $i . '\').dialog(\'open\'); return false;">' . __('Preview', 'podpress') . '</a><br /><input type="text" name="podpress_feeds[' . $i . '][itunes-image]" id="podpress_feed_' . $i . '_iTunesImage" class="podpress_feeds_text_field" value="' . attribute_escape($feed['itunes-image']) . '" size="40" />' . "\n"; echo ' <div id="podpress-itunesimage-preview-' . $i . '" title="' . attribute_escape(__('Feed', 'podpress') . ' ' . $feed['slug'] . ' - ' . __('iTunes:Image', 'podpress')) . '" class="podpress_itunesimage_preview">' . "\n"; echo ' <img src="' . podpress_siteurl_is_ssl($feed['itunes-image']) . '" />' . "\n"; echo ' </div>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_copyright">' . __('Feed Copyright / license name', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][copyright]" id="podpress_feed_' . $i . '_copyright" class="podpress_feeds_text_field" value="' . attribute_escape(stripslashes($feed['copyright'])) . '" size="40" />' . "\n"; echo ' </div>' . "\n"; if (FALSE == isset($feed['rss_image']) or empty($feed['rss_image'])) { $feed['rss_image'] = $rss_image; } echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_rss_image">' . __('RSS Image (144 x 144 pixels)', 'podpress') . '</label> <a href="" class="podpress_image_preview_link" title="' . __('Feed', 'podpress') . ' ' . $feed['slug'] . ' - ' . __('RSS Image', 'podpress') . '" onclick="podPress_jQuery(\'#podpress-rssimage-preview-' . $i . '\').dialog(\'open\'); return false;">' . __('Preview', 'podpress') . '</a><br /><input type="text" name="podpress_feeds[' . $i . '][rss_image]" id="podpress_feed_' . $i . '_rss_image" class="podpress_feeds_text_field" value="' . attribute_escape($feed['rss_image']) . '" size="40" />' . "\n"; echo ' <div id="podpress-rssimage-preview-' . $i . '" title="' . attribute_escape(__('Feed', 'podpress') . ' ' . $feed['slug'] . ' - ' . __('RSS Image', 'podpress')) . '" class="podpress_rssimage_preview">' . "\n"; echo ' <img src="' . podpress_siteurl_is_ssl($feed['rss_image']) . '" />' . "\n"; echo ' </div>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_license_url">' . __('URL to the full Copyright / license text', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][license_url]" id="podpress_feed_' . $i . '_license_url" class="podpress_feeds_text_field" value="' . attribute_escape($feed['license_url']) . '" size="40" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_language">' . __('Language of this Feed', 'podpress') . '</label><br />' . "\n"; if (FALSE == isset($feed['language']) or empty($feed['language'])) { $feed['language'] = $rss_language; } echo ' <select id="podpress_feed_' . $i . '_language" name="podpress_feeds[' . $i . '][language]">' . "\n"; echo ' <optgroup label="' . __('Select a language', 'podpress') . '">' . "\n"; podPress_itunesLanguageOptions($feed['language']); echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' <br />' . "\n"; echo ' <br />' . "\n"; if (FALSE == isset($feed['charset']) or empty($feed['charset'])) { $feed['charset'] = $blog_charset; } echo ' <label for="podpress_feed_' . $i . '_blog_charset">' . __('Encoding for this Feed') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][charset]" id="podpress_feed_' . $i . '_blog_charset" size="20" value="' . attribute_escape($feed['charset']) . '" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">'; echo ' <label for="podpress_feed_' . $i . '_posttypefilter">' . __('Post Type Filter', 'podpress') . '</label><br />' . "\n"; if (TRUE == version_compare($wp_version, '2.9', '>=')) { $selected_posttypes = $feed['PostTypes']; if (FALSE === is_array($selected_posttypes)) { $selected_posttypes = array(); } $args = array('public' => true, '_builtin' => false); $output = 'objects'; // names or objects $post_types = get_post_types($args, $output); if (TRUE == is_array($post_types) and FALSE == empty($post_types)) { echo ' <select id="podpress_feed_' . $i . '_posttypefilter" name="podpress_feeds[' . $i . '][PostTypes][]" size="5" multiple="multiple" class="podpress_posttypefilter_select">' . "\n"; echo ' <optgroup label="' . attribute_escape(__('Select post types', 'podpress')) . '">' . "\n"; if (TRUE == in_array('post', $selected_posttypes)) { $selected = ' selected="selected"'; } else { $selected = ''; } echo ' <option value="post"' . $selected . '>' . __('Standard Posts', '') . ' (post)</option>'; foreach ($post_types as $post_type) { if (TRUE == in_array($post_type->name, $selected_posttypes)) { $selected = ' selected="selected"'; } else { $selected = ''; } echo ' <option value="' . $post_type->name . '"' . $selected . '>' . $post_type->label . ' (' . $post_type->name . ')</option>'; } echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' <span class="podpress_description">' . __('Select one or more custom post types if this Feed should contain only posts of these post types. If the Feed should contain only posts of no custom type then do not select a type.', 'podpress') . '</span>'; echo ' <br /><span class="podpress_description">' . __('Hold the key [SHIFT] or [CTRL] and use the left mouse button to select more than one value.<br />Hold [CTRL] and use the left mouse button to deselect values.', 'podpress') . '</span>'; } else { echo ' <em class="nonessential">(' . __('Currently are no custom post types defined.', 'podpress') . ')</em>' . "\n"; } } else { echo ' <em class="nonessential">(' . sprintf(__('This feature is only available if you use WP %1$s or newer.', 'podpress'), '2.9') . ')</em>' . "\n"; } echo ' </div>' . "\n"; switch ($feed['itunes-explicit']) { default: case 'No': $selected_no = ' selected="selected"'; $selected_yes = ''; $selected_clean = ''; break; case 'Yes': $selected_no = ''; $selected_yes = ' selected="selected"'; $selected_clean = ''; break; case 'Clean': $selected_no = ''; $selected_yes = ''; $selected_clean = ' selected="selected"'; break; } echo ' <div class="podpress_feed_settings_left_col">'; echo ' <label for="podpress_feed_' . $i . '_iTunesExplicit">' . __('iTunes:Explicit', 'podpress') . '</label><br/>'; echo ' <select id="podpress_feed_' . $i . '_iTunesExplicit" name="podpress_feeds[' . $i . '][itunes-explicit]">' . "\n"; echo ' <option value="No"' . $selected_no . '>' . __('No', 'podpress') . '</option>' . "\n"; echo ' <option value="Yes"' . $selected_yes . '>' . __('Yes', 'podpress') . '</option>' . "\n"; echo ' <option value="Clean"' . $selected_clean . '>' . __('Clean', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' <br />' . "\n"; echo ' <br />' . "\n"; echo ' <label for="podpress_feed_' . $i . '_iTunesBlock">' . __('iTunes:Block', 'podpress') . '</label><br />' . "\n"; if ('Yes' == $feed['itunes-block']) { $no_selected = ''; $yes_selected = ' selected="selected"'; } else { $no_selected = ' selected="selected"'; $yes_selected = ''; } echo ' <select name="podpress_feeds[' . $i . '][itunes-block]" id="podpress_feed_' . $i . '_iTunesBlock">' . "\n"; echo ' <option value="No"' . $no_selected . '>' . __('No', 'podpress') . '</option>' . "\n"; echo ' <option value="Yes"' . $yes_selected . '>' . __('Yes', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_filetypefilter">' . __('File Type Filter', 'podpress') . '</label><br />' . "\n"; echo ' <select id="podpress_feed_' . $i . '_filetypefilter" name="podpress_feeds[' . $i . '][FileTypes][]" size="5" multiple="multiple" class="podpress_filetypefilter_select">' . "\n"; echo ' <optgroup label="' . attribute_escape(__('Select file types', 'podpress')) . '">' . "\n"; foreach ($filetypes as $key => $value) { if (TRUE == in_array($key, $selected_filetypes)) { $selected = ' selected="selected"'; } else { $selected = ''; } if ($key !== 'audio_mp4') { echo ' <option value="' . $key . '"' . $selected . '>' . $value . '</option>' . "\n"; } } echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' <span class="podpress_description">' . __('Select one or more file types to include in this Feed only posts which have attached media files of these file types. (This filter bypasses the "Included in:" selection.)', 'podpress') . '</span>'; echo ' <br /><span class="podpress_description">' . __('Hold the key [SHIFT] or [CTRL] and use the left mouse button to select more than one value.<br />Hold [CTRL] and use the left mouse button to deselect values.', 'podpress') . '</span>'; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">'; echo ' <label for="podpress_feed_' . $i . '_iTunesNewFeedURL">' . __('iTunes:New-Feed-Url', 'podpress') . '</label><br/>' . "\n"; if ('Enable' == $feed['itunes-newfeedurl']) { $disable_selected = ''; $enable_selected = ' selected="selected"'; } else { $disable_selected = ' selected="selected"'; $enable_selected = ''; } echo ' <select name="podpress_feeds[' . $i . '][itunes-newfeedurl]" id="podpress_feed_' . $i . '_iTunesNewFeedURL">' . "\n"; echo ' <option value="Disable"' . $disable_selected . '>' . __('Disable', 'podpress') . '</option>' . "\n"; echo ' <option value="Enable"' . $enable_selected . '>' . __('Enable', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' <br />' . "\n"; echo ' <br />' . "\n"; echo ' <label for="podpress_feed_' . $i . '_newfeedurl">' . __('iTunes:New-Feed-Url', 'podpress') . ' - ' . __('the new Feed URL', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][newfeedurl]" id="podpress_feed_' . $i . '_newfeedurl" class="podpress_feeds_text_field" value="' . attribute_escape($feed['newfeedurl']) . '" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">'; echo ' <label for="podpress_feed_' . $i . '_categoryfilter">' . __('Category Filter', 'podpress') . '</label><br />' . "\n"; echo ' <select id="podpress_feed_' . $i . '_categoryfilter" name="podpress_feeds[' . $i . '][inclCategories][]" size="5" multiple="multiple" class="podpress_categoryfilter_select">' . "\n"; echo ' <optgroup label="' . attribute_escape(__('Select categories', 'podpress')) . '">' . "\n"; foreach ($allcategories as $category) { if (TRUE == in_array($category->term_id, $selected_categories)) { $selected = ' selected="selected"'; } else { $selected = ''; } echo ' <option value="' . $category->term_id . '"' . $selected . '>' . $category->name . '</option>' . "\n"; } echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' <span class="podpress_description">' . __('Select one or more categories if this Feed should contain only posts of these categories. If the Feed should contain posts of all categories select none.', 'podpress') . '</span>'; echo ' <br /><span class="podpress_description">' . __('Hold the key [SHIFT] or [CTRL] and use the left mouse button to select more than one value.<br />Hold [CTRL] and use the left mouse button to deselect values.', 'podpress') . '</span>'; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $i . '_iTunesFeedID">' . __('iTunes:FeedID', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][itunes-feedid]" id="podpress_feed_' . $i . '_iTunesFeedID" value="' . $feed['itunes-feedid'] . '" size="10" />' . "\n"; echo ' <br />' . "\n"; echo ' <br />' . "\n"; //~ echo ' <div class="podpress_feed_settings_left_col">'.__('Feed Type:', 'podpress').'<br />'."\n"; echo ' ' . __('Feed Type:', 'podpress') . '<br />' . "\n"; if ('atom' === $feed['feedtype']) { echo ' <input type="radio" name="podpress_feeds[' . $i . '][feedtype]" id="podpress_feed_' . $i . '_feedtype_rss" value="rss" /> <label for="podpress_feed_' . $i . '_feedtype_rss">' . __('RSS', 'podpress') . '</label><br />' . "\n"; echo ' <input type="radio" name="podpress_feeds[' . $i . '][feedtype]" id="podpress_feed_' . $i . '_feedtype_atom" value="atom" checked="checked" /> <label for="podpress_feed_' . $i . '_feedtype_atom">' . __('ATOM', 'podpress') . '</label>' . "\n"; } else { echo ' <input type="radio" name="podpress_feeds[' . $i . '][feedtype]" id="podpress_feed_' . $i . '_feedtype_rss" value="rss" checked="checked" /> <label for="podpress_feed_' . $i . '_feedtype_rss">' . __('RSS', 'podpress') . '</label><br />' . "\n"; echo ' <input type="radio" name="podpress_feeds[' . $i . '][feedtype]" id="podpress_feed_' . $i . '_feedtype_atom" value="atom" /> <label for="podpress_feed_' . $i . '_feedtype_atom">' . __('ATOM', 'podpress') . '</label>' . "\n"; } if (FALSE == isset($feed['ttl']) or !empty($feed['ttl']) and $feed['ttl'] < 1440) { $feed['ttl'] = 1440; } echo ' <br />' . "\n"; echo ' <br />' . "\n"; echo ' <label for="podpress_feed_' . $i . '_rss_ttl">' . __('TTL (time-to-live)', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][ttl]" id="podpress_feed_' . $i . '_rss_ttl" value="' . $feed['ttl'] . '" size="4" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; if (TRUE == isset($feed['show_only_podPress_podcasts']) and FALSE === $feed['show_only_podPress_podcasts']) { echo ' <input type="checkbox" name="podpress_feeds[' . $i . '][show_only_podPress_podcasts]" id="podpress_feed_' . $i . '_show_only_podPress_podcasts" value="yes" /> <label for="podpress_feed_' . $i . '_show_only_podPress_podcasts">' . __('Include only posts with podPress attachments in this Feed', 'podpress') . '</label> <span class="podpress_description">' . __('- while the File Type and Category Filters are not in use.', 'podpress') . '</span>' . "\n"; } else { echo ' <input type="checkbox" name="podpress_feeds[' . $i . '][show_only_podPress_podcasts]" id="podpress_feed_' . $i . '_show_only_podPress_podcasts" value="yes" checked="checked" /> <label for="podpress_feed_' . $i . '_show_only_podPress_podcasts">' . __('Include only posts with podPress attachments in this Feed', 'podpress') . '</label> <span class="podpress_description">' . __('- while the File Type and Category Filters are not in use.', 'podpress') . '</span>' . "\n"; } echo ' <br />' . "\n"; echo ' <br />' . "\n"; if (TRUE == isset($feed['bypass_incl_selection']) and TRUE === $feed['bypass_incl_selection']) { echo ' <input type="checkbox" name="podpress_feeds[' . $i . '][bypass_incl_selection]" id="podpress_feed_' . $i . '_bypass_incl_selection" value="yes" checked="checked" /> <label for="podpress_feed_' . $i . '_bypass_incl_selection">' . __('Bypass the "Included in:" selection for this Feed', 'podpress') . '</label> <span class="podpress_description">' . __('- If this option is selected then the first media file of the right file type will be the enclosure of a post in this Feed - if it is a RSS Feed. Posts in ATOM Feeds will contain all of their media files as enclosures (and not the ones you have marked while editing a post).', 'podpress') . '</span>' . "\n"; } else { echo ' <input type="checkbox" name="podpress_feeds[' . $i . '][bypass_incl_selection]" id="podpress_feed_' . $i . '_bypass_incl_selection" value="yes" /> <label for="podpress_feed_' . $i . '_bypass_incl_selection">' . __('Bypass the "Included in:" selection for this Feed', 'podpress') . '</label> <span class="podpress_description">' . __('- If this option is selected then the first media file of the right file type will be the enclosure of a post in this Feed - if it is a RSS Feed. Posts in ATOM Feeds will contain all of their media files as enclosures (and not the ones you have marked while editing a post).', 'podpress') . '</span>' . "\n"; } echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; if (FALSE === isset($feed['posts_per_feed']) or TRUE === empty($feed['posts_per_feed'])) { $feed['posts_per_feed'] = $posts_per_feed_default; } echo ' <label for="podpress_feed_' . $i . '_posts_per_feed">' . __('max. amount of posts per feed: ', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $i . '][posts_per_feed]" id="podpress_feed_' . $i . '_posts_per_feed" value="' . $feed['posts_per_feed'] . '" size="4" /> <span class="podpress_description">' . sprintf(__('default: %1$s', 'podpress'), $posts_per_feed_default) . '</span>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_fullwidth_col">' . "\n"; if (TRUE === $feed['use_headerlink']) { echo ' <input type="checkbox" name="podpress_feeds[' . $i . '][use_headerlink]" id="podpress_feed_' . $i . '_use_headerlink" value="yes" checked="checked" /> <label for="podpress_feed_' . $i . '_use_headerlink">' . __('add Feed link to the blog header', 'podpress') . '</label> <span class="podpress_description">' . __('(into <head>)', 'podpress') . '</span>' . "\n"; } else { echo ' <input type="checkbox" name="podpress_feeds[' . $i . '][use_headerlink]" id="podpress_feed_' . $i . '_use_headerlink" value="yes" /> <label for="podpress_feed_' . $i . '_use_headerlink">' . __('add Feed link to the blog header', 'podpress') . '</label> <span class="podpress_description">' . __('(into <head>)', 'podpress') . '</span>' . "\n"; } echo ' </div>' . "\n"; echo ' </div><!-- end accordion element -->' . "\n"; $i++; } } if ($i < PODPRESS_FEEDS_MAX_NUMBER) { for ($j = $i; $j < PODPRESS_FEEDS_MAX_NUMBER; $j++) { echo ' <h4><a href="">' . __('Feed', 'podpress') . ' ...</a></h4>' . "\n"; echo ' <div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <input type="checkbox" name="podpress_feeds[' . $j . '][use]" id="podpress_feed_' . $j . '_use" value="yes" /> <label for="podpress_feed_' . $j . '_use">' . __('Activate Feed', 'podpress') . '</label>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; if (FALSE == defined('PODPRESS_DEACTIVATE_PREMIUM') or FALSE === constant('PODPRESS_DEACTIVATE_PREMIUM')) { echo ' <input type="checkbox" name="podpress_feeds[' . $j . '][premium]" id="podpress_feed_' . $j . '_premium" value="yes" /> <label for="podpress_feed_' . $j . '_premium">' . __('Premium Feed', 'podpress') . '</label>' . "\n"; if (FALSE == isset($this->settings['enablePremiumContent']) or TRUE !== $this->settings['enablePremiumContent']) { echo ' <br /><span class="podpress_description">' . sprintf(__('If this Feed should be a Premium Feed then you need to activate the Premium Content feature at the <a href="%1$s">general settings page of podPress</a>.', 'podpress'), $generalsettingspodpressurl) . '</span>'; } } echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_name">' . __('Feed Name', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][name]" id="podpress_feed_' . $j . '_name" class="podpress_feeds_text_field" value="" />' . "\n"; echo ' <br/><label for="podpress_feed_' . $j . '_feedtitle">' . __('How-to build the Feed title:', 'podpress') . '</label> '; echo ' <select id="podpress_feed_' . $j . '_feedtitle" name="podpress_feeds[' . $j . '][feedtitle]">' . "\n"; echo ' <option value="No" selected="selected">' . __('use the blog name and append the Feed Name', 'podpress') . '</option>' . "\n"; echo ' <option value="Yes">' . __('use only the blog name as the title', 'podpress') . '</option>' . "\n"; echo ' <option value="Clean">' . __('use the Feed Name as the title', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_slug">' . __('Slug Name', 'podpress') . '</label> <span class="podpress_description">' . __('- the name for this Feed in the URL', 'podpress') . '</span><br /><input type="text" name="podpress_feeds[' . $j . '][slug]" id="podpress_feed_' . $j . '_slug" class="podpress_feeds_text_field" value="" /><br /><span class="podpress_description">' . __('Please, use only these characters: a-z, 0-9, underscore and hiphen.', 'podpress') . '</span>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_fullwidth_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_feedurl">' . __('Feed URL', 'podpress') . '</label><br /><span id="podpress_feed_' . $j . '_feedurl">' . __('http://', 'podpress') . '</span>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_subtitle">' . __('iTunes:Subtitle', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][subtitle]" id="podpress_feed_' . $j . '_subtitle" class="podpress_feeds_text_field" value="" />' . "\n"; echo ' <br /><br />' . "\n"; echo ' <label for="podpress_feed_' . $j . '_rss_category">' . __('RSS Category', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][rss_category]" id="podpress_feed_' . $j . '_rss_category" class="podpress_feeds_text_field" value="" size="40" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_descr">' . __('Description (RSS) / Subtitle (ATOM) / iTunes:Summary', 'podpress') . '</label><br /><textarea name="podpress_feeds[' . $j . '][descr]" id="podpress_feed_' . $j . '_descr" class="podpress_feeds_text_field" rows="4" cols="40"></textarea>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">'; echo ' <label for="podpress_feed_' . $j . '_iTunesCategory_0">' . __('iTunes:Categories', 'podpress') . '</label><br/>' . "\n"; echo ' <select id="podpress_feed_' . $j . '_iTunesCategory_0" name="podpress_feeds[' . $j . '][itunes-category][0]">' . "\n"; echo ' <optgroup label="' . __('Select Primary', 'podpress') . '">' . "\n"; podPress_itunesCategoryOptions(); echo ' </optgroup>' . "\n"; echo ' </select><br />' . "\n"; echo ' <select name="podpress_feeds[' . $j . '][itunes-category][1]">' . "\n"; echo ' <optgroup label="' . __('Select Second', 'podpress') . '">' . "\n"; podPress_itunesCategoryOptions(); echo ' </optgroup>' . "\n"; echo ' </select><br />' . "\n"; echo ' <select name="podpress_feeds[' . $j . '][itunes-category][2]">' . "\n"; echo ' <optgroup label="' . __('Select Third', 'podpress') . '">' . "\n"; podPress_itunesCategoryOptions(); echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_iTunesKeywords">' . __('iTunes:Keywords', 'podpress') . '</label><br /><textarea name="podpress_feeds[' . $j . '][itunes-keywords]" id="podpress_feed_' . $j . '_iTunesKeywords" class="podpress_feeds_text_field" rows="4" cols="40"></textarea><br /><span class="podpress_description">' . __('a list of max. 12 comma separated words', 'podpress') . '</span>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_iTunesAuthor">' . __('iTunes:Author/Owner', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][itunes-author]" id="podpress_feed_' . $j . '_iTunesAuthor" class="podpress_feeds_text_field" value="" size="40" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_email">' . __('Owner E-mail address', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][email]" id="podpress_feed_' . $j . '_email" class="podpress_feeds_text_field" value="" size="40" />' . "\n"; echo ' </div>' . "\n"; $itunesimageurl = attribute_escape($itunes_image_url); echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_iTunesImage">' . __('iTunes:Image', 'podpress') . '</label> <a href="" class="podpress_image_preview_link" title="' . __('Feed', 'podpress') . ' ' . $j . ' - ' . __('iTunes:Image', 'podpress') . '" onclick="podPress_jQuery(\'#podpress-itunesimage-preview-' . $j . '\').dialog(\'open\'); return false;">' . __('Preview', 'podpress') . '</a><br /><input type="text" name="podpress_feeds[' . $j . '][itunes-image]" id="podpress_feed_' . $j . '_iTunesImage" class="podpress_feeds_text_field" value="' . $itunesimageurl . '" size="40" />' . "\n"; echo ' <div id="podpress-itunesimage-preview-' . $j . '" title="' . attribute_escape(__('iTunes:Image', 'podpress')) . '" class="podpress_itunesimage_preview">' . "\n"; echo ' <img src="' . podpress_siteurl_is_ssl($itunesimageurl) . '" />' . "\n"; echo ' </div>' . "\n"; echo ' </div>' . "\n"; $rssimageurl = attribute_escape($rss_image); echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_copyright">' . __('Feed Copyright / license name', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][copyright]" id="podpress_feed_' . $j . '_copyright" class="podpress_feeds_text_field" value="" size="40" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_rss_image">' . __('RSS Image (144 x 144 pixels)', 'podpress') . '</label> <a href="" class="podpress_image_preview_link" title="' . __('Feed', 'podpress') . ' ' . $j . ' - ' . __('RSS Image', 'podpress') . '" onclick="podPress_jQuery(\'#podpress-rssimage-preview-' . $j . '\').dialog(\'open\'); return false;">' . __('Preview', 'podpress') . '</a><br /><input type="text" name="podpress_feeds[' . $j . '][rss_image]" id="podpress_feed_' . $j . '_rss_image" class="podpress_feeds_text_field" value="' . $rssimageurl . '" size="40" />' . "\n"; echo ' <div id="podpress-rssimage-preview-' . $j . '" title="' . attribute_escape(__('RSS Image', 'podpress')) . '" class="podpress_rssimage_preview">' . "\n"; echo ' <img src="' . podpress_siteurl_is_ssl($rssimageurl) . '" />' . "\n"; echo ' </div>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_license_url">' . __('URL to the full Copyright / license text', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][license_url]" id="podpress_feed_' . $j . '_license_url" class="podpress_feeds_text_field" value="" size="40" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_language">' . __('Language of this Feed', 'podpress') . '</label><br />'; echo ' <select id="podpress_feed_' . $j . '_language" name="podpress_feeds[' . $j . '][language]">' . "\n"; echo ' <optgroup label="' . __('Select a language', 'podpress') . '">' . "\n"; podPress_itunesLanguageOptions(); echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' <br />' . "\n"; echo ' <br />' . "\n"; echo ' <label for="podpress_feed_' . $j . '_blog_charset">' . __('Encoding for this Feed') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][charset]" id="podpress_feed_' . $j . '_blog_charset" size="20" value="' . attribute_escape($blog_charset) . '" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">'; echo ' <label for="podpress_feed_' . $i . '_posttypefilter">' . __('Post Type Filter', 'podpress') . '</label><br />' . "\n"; if (TRUE == version_compare($wp_version, '2.9', '>=')) { $args = array('public' => true, '_builtin' => false); $output = 'objects'; // names or objects $post_types = get_post_types($args, $output); if (TRUE == is_array($post_types) and FALSE == empty($post_types)) { echo ' <select id="podpress_feed_' . $j . '_posttypefilter" name="podpress_feeds[' . $j . '][PostTypes][]" size="5" multiple="multiple" class="podpress_posttypefilter_select">' . "\n"; echo ' <optgroup label="' . attribute_escape(__('Select post types', 'podpress')) . '">' . "\n"; echo ' <option value="post">' . __('Standard Posts', '') . ' (post)</option>'; foreach ($post_types as $post_type) { echo ' <option value="' . $post_type->name . '">' . $post_type->label . ' (' . $post_type->name . ')</option>'; } echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' <span class="podpress_description">' . __('Select one or more custom post types if this Feed should contain only posts of these post types. If the Feed should contain only posts of no custom type then do not select a type.', 'podpress') . '</span>'; echo ' <br /><span class="podpress_description">' . __('Hold the key [SHIFT] or [CTRL] and use the left mouse button to select more than one value.<br />Hold [CTRL] and use the left mouse button to deselect values.', 'podpress') . '</span>'; } else { echo ' <em class="nonessential">(' . __('Currently are no custom post types defined.', 'podpress') . ')</em>' . "\n"; } } else { echo ' <em class="nonessential">(' . sprintf(__('This feature is only available if you use WP %1$s or newer.', 'podpress'), '2.9') . ')</em>' . "\n"; } echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">'; echo ' <label for="podpress_feed_' . $j . '_iTunesExplicit">' . __('iTunes:Explicit', 'podpress') . '</label><br/>'; echo ' <select id="podpress_feed_' . $j . '_iTunesExplicit" name="podpress_feeds[' . $j . '][itunes-explicit]">' . "\n"; echo ' <option value="No" selected="selected">' . __('No', 'podpress') . '</option>' . "\n"; echo ' <option value="Yes">' . __('Yes', 'podpress') . '</option>' . "\n"; echo ' <option value="Clean">' . __('Clean', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' <br />' . "\n"; echo ' <br />' . "\n"; echo ' <label for="podpress_feed_' . $j . '_iTunesBlock">' . __('iTunes:Block', 'podpress') . '</label><br />' . "\n"; echo ' <select name="podpress_feeds[' . $j . '][itunes-block]" id="podpress_feed_' . $j . '_iTunesBlock">' . "\n"; echo ' <option value="No" selected="selected">' . __('No', 'podpress') . '</option>' . "\n"; echo ' <option value="Yes">' . __('Yes', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_filetypefilter">' . __('File Type Filter', 'podpress') . '</label><br />' . "\n"; echo ' <select id="podpress_feed_' . $j . '_filetypefilter" name="podpress_feeds[' . $j . '][FileTypes][]" size="5" multiple="multiple" class="podpress_filetypefilter_select">' . "\n"; echo ' <optgroup label="' . attribute_escape(__('Select file types', 'podpress')) . '">' . "\n"; foreach ($filetypes as $key => $value) { if ($key !== 'audio_mp4') { echo ' <option value="' . $key . '">' . $value . '</option>' . "\n"; } } echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' <span class="podpress_description">' . __('Select one or more file types to include in this Feed only posts which have attached media files of these file types. (This filter bypasses the "Included in:" selection.)', 'podpress') . '</span>'; echo ' <br /><span class="podpress_description">' . __('Hold the key [SHIFT] or [CTRL] and use the left mouse button to select more than one value.<br />Hold [CTRL] and use the left mouse button to deselect values.', 'podpress') . '</span>'; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_iTunesNewFeedURL">' . __('iTunes:New-Feed-Url', 'podpress') . '</label><br />' . "\n"; echo ' <select name="podpress_feeds[' . $j . '][itunes-newfeedurl]" id="podpress_feed_' . $j . '_iTunesNewFeedURL">' . "\n"; echo ' <option value="Disable" selected="selected">' . __('Disable', 'podpress') . '</option>' . "\n"; echo ' <option value="Enable">' . __('Enable', 'podpress') . '</option>' . "\n"; echo ' </select>' . "\n"; echo ' <br />' . "\n"; echo ' <br />' . "\n"; echo ' <label for="podpress_feed_' . $j . '_newfeedurl">' . __('iTunes:New-Feed-Url - the new Feed URL', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][newfeedurl]" id="podpress_feed_' . $j . '_newfeedurl" class="podpress_feeds_text_field" value="" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">'; echo ' <label for="podpress_feed_' . $j . '_categoryfilter">' . __('Category Filter', 'podpress') . '</label><br />' . "\n"; echo ' <select id="podpress_feed_' . $j . '_categoryfilter" name="podpress_feeds[' . $j . '][inclCategories][]" size="5" multiple="multiple" class="podpress_categoryfilter_select">' . "\n"; echo ' <optgroup label="' . attribute_escape(__('Select categories', 'podpress')) . '">' . "\n"; foreach ($allcategories as $category) { echo ' <option value="' . $category->term_id . '">' . $category->name . '</option>' . "\n"; } echo ' </optgroup>' . "\n"; echo ' </select>' . "\n"; echo ' <span class="podpress_description">' . __('Select one or more categories if this Feed should contain only posts of these categories. If the Feed should contain posts of all categories select none.', 'podpress') . '</span>'; echo ' <span class="podpress_description">' . __('Hold the key [SHIFT] or [CTRL] and use the left mouse button to select more than one value.<br />Hold [CTRL] and use the left mouse button to deselect values.', 'podpress') . '</span>'; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_left_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_iTunesFeedID">' . __('iTunes:FeedID', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][itunes-feedid]" id="podpress_feed_' . $j . '_iTunesFeedID" value="" size="10" />' . "\n"; echo ' <br />' . "\n"; echo ' <br />' . "\n"; echo ' ' . __('Feed Type:', 'podpress') . '<br />' . "\n"; echo ' <input type="radio" name="podpress_feeds[' . $j . '][feedtype]" id="podpress_feed_' . $j . '_feedtype_rss" value="rss" checked="checked" /> <label for="podpress_feed_' . $j . '_feedtype_rss">' . __('RSS', 'podpress') . '</label><br />' . "\n"; echo ' <input type="radio" name="podpress_feeds[' . $j . '][feedtype]" id="podpress_feed_' . $j . '_feedtype_atom" value="atom" /> <label for="podpress_feed_' . $j . '_feedtype_atom">' . __('ATOM', 'podpress') . '</label>' . "\n"; echo ' <br />' . "\n"; echo ' <br />' . "\n"; echo ' <label for="podpress_feed_' . $j . '_rss_ttl">' . __('TTL (time-to-live)', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][ttl]" id="podpress_feed_' . $j . '_rss_ttl" value="1440" size="4" />' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <input type="checkbox" name="podpress_feeds[' . $j . '][show_only_podPress_podcasts]" id="podpress_feed_' . $j . '_show_only_podPress_podcasts" value="yes" checked="checked" /> <label for="podpress_feed_' . $j . '_show_only_podPress_podcasts">' . __('Include only posts with podPress attachments in this Feed', 'podpress') . '</label> <span class="podpress_description">' . __('- while the File Type and Category Filters are not in use.', 'podpress') . '</span>' . "\n"; echo ' <br />' . "\n"; echo ' <br />' . "\n"; echo ' <input type="checkbox" name="podpress_feeds[' . $j . '][bypass_incl_selection]" id="podpress_feed_' . $j . '_bypass_incl_selection" value="yes" /> <label for="podpress_feed_' . $j . '_bypass_incl_selection">' . __('Bypass the "Included in:" selection for this Feed', 'podpress') . '</label> <span class="podpress_description">' . __('- If this option is selected then the first media file of the right file type will be the enclosure of a post in this Feed - if it is a RSS Feed. Posts in ATOM Feeds will contain all of their media files as enclosures (and not the ones you have marked while editing a post).', 'podpress') . '</span>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_right_col">' . "\n"; echo ' <label for="podpress_feed_' . $j . '_posts_per_feed">' . __('max. amount of posts per feed: ', 'podpress') . '</label><br /><input type="text" name="podpress_feeds[' . $j . '][posts_per_feed]" id="podpress_feed_' . $j . '_posts_per_feed" value="' . $posts_per_feed_default . '" size="4" /> <span class="podpress_description">' . sprintf(__('default: %1$s', 'podpress'), $posts_per_feed_default) . '</span>' . "\n"; echo ' </div>' . "\n"; echo ' <div class="podpress_feed_settings_fullwidth_col">' . "\n"; echo ' <input type="checkbox" name="podpress_feeds[' . $j . '][use_headerlink]" id="podpress_feed_' . $j . '_use_headerlink" value="yes" /> <label for="podpress_feed_' . $j . '_use_headerlink">' . __('add Feed link to the blog header', 'podpress') . '</label> <span class="podpress_description">' . __('(into <head>)', 'podpress') . '</span>' . "\n"; echo ' </div>' . "\n"; echo ' </div><!-- end accordion element -->' . "\n"; } } echo ' </div><!-- end accordion -->' . "\n"; echo ' <p class="submit"> ' . "\n"; echo ' <input class="button-primary" type="submit" name="Submit" value="' . __('Update Options', 'podpress') . ' »" /> ' . "\n"; echo ' </p> ' . "\n"; echo ' </fieldset>' . "\n"; echo ' <script type="text/javascript">' . " podPress_updateFeedSettings();</script>"; echo ' <input type="hidden" name="podPress_submitted" value="feed" />' . "\n"; echo ' </form> ' . "\n"; echo '</div>' . "\n"; }
function settings_stats_edit() { global $wpdb, $wp_version; podPress_isAuthorized(); $baseurl = get_option('siteurl') . '/wp-admin/admin.php?page=podpress/podpress_stats.php&display='; echo '<div class="wrap">' . "\n"; if (TRUE == version_compare($wp_version, '2.7', '>=')) { echo '<div id="podpress-icon" class="icon32"><br /></div>'; } if (TRUE == version_compare($wp_version, '2.8', '>=')) { echo ' <h2>' . __('Download Statistics', 'podpress') . '</h2>' . "\n"; // get the plugins version information via the WP plugins version check if (TRUE == version_compare($wp_version, '2.9', '>=')) { $versioninfo = get_site_transient('update_plugins'); } else { $versioninfo = get_transient('update_plugins'); } // If there is a new version then there is a 'response'. This is the method from the plugins page. if (FALSE !== isset($versioninfo->response[plugin_basename(dirname(__FILE__) . '/podpress.php')]->new_version)) { echo '<div class="message updated"><p><a href="http://wordpress.org/extend/plugins/podpress/" target="_blank">' . __('a new podPress version is available', 'podpress') . '</a></p></div>'; } } else { echo ' <h2>' . __('Download Statistics', 'podpress') . ' <a href="http://www.mightyseek.com/podpress/#download" target="_new"><img src="http://www.mightyseek.com/podpress_downloads/versioncheck.php?current=' . PODPRESS_VERSION . '" alt="' . __('Checking for updates... Failed.', 'podpress') . '" border="0" /></a></h2>' . "\n"; } if ($this->settings['statLogging'] == 'Full' || $this->settings['statLogging'] == 'FullPlus') { // Show all statistics which are based on wp_stats [stat logging: Full and Full+] $navi = array('downloads_per_media_file' => __('Downloads Per Media File', 'podpress'), 'downloads_per_post' => __('Downloads Per Post', 'podpress'), 'topips' => __('Downloads Per IP Address', 'podpress'), 'graphbydate' => __('Graph by Date', 'podpress'), 'rawstats' => __('Raw Stats', 'podpress')); echo ' <ul id="podPress_navi">' . "\n"; foreach ($navi as $key => $value) { $active = ($_GET['display'] == $key or !$_GET['display'] and $key == 'downloads_per_media_file') ? ' class="current"' : null; echo ' <li class="podpress_stats_sub_menu_item"><a href="' . $baseurl . $key . '"' . $active . '>' . $value . '</a>'; if ($this->checkGD()) { if ($value == __('Graph by Date', 'podpress')) { echo ' (<a href="' . $baseurl . 'graphbydatealt" title="' . sprintf(__('An alternative view of the %1$s', 'podpress'), __('Graph by Date', 'podpress')) . '">' . __('alt', 'podpress') . '</a>)'; } } echo '</li>' . "\n"; } echo ' </ul>' . "\n"; // bot management menu (since 8.8.5 beta 3) $navi2 = array('botdb_mark_bots' => __('Select / Deselect Bots', 'podpress'), 'botdb_list' => __('List of Bots', 'podpress')); echo ' <ul id="podPress_navi">' . "\n"; foreach ($navi2 as $key => $value) { $active = ($_GET['display'] == $key or !$_GET['display'] and $key == 'quickcounts') ? ' class="current"' : null; echo ' <li class="podpress_stats_sub_menu_item"><a href="' . $baseurl . $key . '"' . $active . '>' . $value . '</a></li>' . "\n"; } echo ' </ul>' . "\n"; } else { // Show all statistics which are based on wp_statcounts [stat logging: Counts Only] // old: $_GET['display'] = 'downloads_per_media_file'; $navi = array('quickcounts' => __('Quick Counts', 'podpress'), 'graphbypost' => __('Graph by Post', 'podpress')); echo ' <ul id="podPress_navi">' . "\n"; foreach ($navi as $key => $value) { $active = ($_GET['display'] == $key or !$_GET['display'] and $key == 'quickcounts') ? ' class="current"' : null; echo ' <li class="podpress_stats_sub_menu_item"><a href="' . $baseurl . $key . '"' . $active . '>' . $value . '</a>'; if ($this->checkGD()) { if ($value == __('Graph by Post', 'podpress')) { echo ' (<a href="' . $baseurl . 'graphbypostalt" title="' . sprintf(__('An alternative view of the %1$s', 'podpress'), __('Graph by Post', 'podpress')) . '">' . __('alt', 'podpress') . '</a>)'; } } echo '</li>' . "\n"; } echo ' </ul>' . "\n"; } // Set Paging-Settings $start = isset($_GET['start']) ? $this->podSafeDigit($_GET['start']) : 0; //~ #################### //~ Limit is limits the number of rows of the statistic tables $limit = 25; //~ #################### // ntm: since 8.8.5 beta 3 there are two different default statistic tables quickcounts and downloads_per_media_file that is why the default value has to be found before that Switch (and not with this Switch) if (FALSE == isset($_GET['display']) or FALSE !== empty($_GET['display'])) { if ($this->settings['statLogging'] == 'Full' || $this->settings['statLogging'] == 'FullPlus') { $show_this_page = 'downloads_per_media_file'; } else { $show_this_page = 'quickcounts'; } } else { $show_this_page = $_GET['display']; } switch ($show_this_page) { case 'botdb_list': // ntm: stat logging: Full and Full+ podPress_isAuthorized(); $botdb = get_option('podpress_botdb'); if ('botdb' == $_POST['podPress_submitted']) { if (function_exists('check_admin_referer')) { check_admin_referer('podPress_botdb_nonce'); } $IPs = $_POST['podpress_remote_ips']; $fullbotnames = stripslashes_deep($_POST['podpress_user_agents']); if (is_array($botdb)) { $something_removed = FALSE; if (is_array($IPs) and is_array($botdb['IP'])) { $botdb['IP'] = array_diff($botdb['IP'], $IPs); sort($botdb['IP']); } if (is_array($fullbotnames) and is_array($botdb['fullbotnames'])) { $botdb['fullbotnames'] = array_diff($botdb['fullbotnames'], $fullbotnames); sort($botdb['fullbotnames']); } } $updated = update_option('podpress_botdb', $botdb); if (isset($updated) and $updated == TRUE) { echo '<div id="message" class="updated fade"><p>' . __('Settings Saved', 'podpress') . '</p></div>'; } } echo ' <div class="wrap">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('The list of IP addresses and names of bots', 'podpress') . '</legend>' . "\n"; echo ' <form method="post">' . "\n"; if (function_exists('wp_nonce_field')) { // since WP 2.0.4 wp_nonce_field('podPress_botdb_nonce'); } echo ' <table class="the-list-x widefat">' . "\n"; echo ' <thead>' . "\n"; echo ' <tr><th rowspan="2">' . __('Nr.', 'podpress') . '</th><th rowspan="2">' . __('Bot IP Address', 'podpress') . '</th><th rowspan="2">' . __('Bot User Agent', 'podpress') . '</th><th colspan="2">' . __('Remove this', 'podpress') . '</th></tr><tr><th>' . __('IP', 'podpress') . '</th><th>' . __('Name', 'podpress') . '</th></tr>' . "\n"; echo ' </thead>' . "\n"; echo ' <tbody>' . "\n"; $nobots = FALSE; if (is_array($botdb) and (is_array($botdb['fullbotnames']) or is_array($botdb['IP']))) { $botnames_len = count($botdb['fullbotnames']); $IPs_len = count($botdb['IP']); $rows_total = max($botnames_len, $IPs_len); if ($rows_total > $start + $limit) { $high = $start + $limit; } else { $high = $rows_total; } $low = $start + 1; for ($i = $low; $i <= $high; $i++) { $style = $i % 2 ? '' : ' class="alternate"'; echo ' <tr' . $style . '>' . "\n"; echo ' <td>' . ($start + $i) . '.</td>' . "\n"; if ($i <= $IPs_len - $start) { $col_ip = ' <td>' . stripslashes($botdb['IP'][$i - 1]) . '</td>' . "\n"; $col_ip_chb = ' <td><input type="checkbox" id="podpress_remote_ip_' . $i . '" name="podpress_remote_ips[]" value="' . $botdb['IP'][$i - 1] . '" ' . $ip_chb_checked . ' /></td>' . "\n"; } else { $col_ip = $col_ip_chb = ' <td></td>' . "\n"; } if ($i <= $botnames_len - $start) { $col_botname = ' <td>' . stripslashes($botdb['fullbotnames'][$i - 1]) . '</td>' . "\n"; $col_botname_chb = ' <td><input type="checkbox" id="podpress_user_agent_' . $i . '" name="podpress_user_agents[]" value="' . attribute_escape($botdb['fullbotnames'][$i - 1]) . '" ' . $name_chb_checked . ' /></td>' . "\n"; } else { $col_botname = $col_botname_chb = ' <td></td>' . "\n"; } echo $col_ip . $col_botname . $col_ip_chb . $col_botname_chb; echo ' </tr>' . "\n"; } if (0 == $botnames_len and 0 == $IPs_len) { $nobots = TRUE; } } else { $nobots = TRUE; } if (TRUE == $nobots) { echo ' <td colspan="5">' . __('Currently are no IP addresses or user agents marked as bots.', 'podpress') . '</td>' . "\n"; } echo ' </tbody>' . "\n"; echo ' <tfood>' . "\n"; echo ' <tr>' . "\n"; echo ' <th colspan="5">' . "\n"; // Show paging echo $this->paging2($start, $limit, $rows_total, __('names and IPs', 'podpress')); echo ' </th>' . "\n"; echo ' </tr>' . "\n"; echo ' </tfood>' . "\n"; echo ' </table>' . "\n"; echo ' <p class="submit"> ' . "\n"; echo ' <input class="button-primary" type="submit" name="Submit" value="' . __('Remove elements', 'podpress') . ' »" /><br />' . "\n"; echo ' </p> ' . "\n"; echo ' <input type="hidden" name="podPress_submitted" value="botdb" />' . "\n"; echo ' </form>' . "\n"; echo ' </fieldset>' . "\n"; echo ' </div>'; break; case 'botdb_mark_bots': // ntm: stat logging: Full and Full+ podPress_isAuthorized(); $blog_charset = get_bloginfo('charset'); $botdb = get_option('podpress_botdb'); if ('botdb' == $_POST['podPress_submitted']) { if (function_exists('check_admin_referer')) { check_admin_referer('podPress_botdb_nonce'); } $IPs = $_POST['podpress_remote_ips']; $fullbotnames = stripslashes_deep($_POST['podpress_user_agents']); if (is_array($botdb)) { $current_IP_set = $_POST['podpress_current_IP_set']; $unique_current_data_IPs = array_unique($_POST['podpress_current_IP_set']); //add new bots if (is_array($IPs)) { $unique_IPs = array_unique($IPs); foreach ($unique_IPs as $IP) { if (is_array($botdb['IP'])) { if (FALSE === array_search($IP, $botdb['IP'])) { $botdb['IP'][] = $IP; } } else { $botdb['IP'][] = $IP; } } // eventually remove bots $unmarked_IPs = array_diff($unique_current_data_IPs, $unique_IPs); $botdb['IP'] = array_diff($botdb['IP'], $unmarked_IPs); sort($botdb['IP']); } else { if (is_array($botdb['IP'])) { $botdb['IP'] = array_diff($botdb['IP'], $unique_current_data_IPs); sort($botdb['IP']); } } $current_user_agent_set = $_POST['podpress_current_user_agent_set']; $unique_current_data_fbnames = array_unique($_POST['podpress_current_user_agent_set']); if (is_array($fullbotnames)) { $unique_fullbotnames = array_unique($fullbotnames); foreach ($unique_fullbotnames as $fullbotname) { if (is_array($botdb['fullbotnames'])) { if (FALSE === array_search($fullbotname, $botdb['fullbotnames'])) { $botdb['fullbotnames'][] = $fullbotname; } } else { $botdb['fullbotnames'][] = $fullbotname; } } // eventually remove bots $unmarked_fullbotnames = array_diff($unique_current_data_fbnames, $unique_fullbotnames); $botdb['fullbotnames'] = array_diff($botdb['fullbotnames'], $unmarked_fullbotnames); sort($botdb['fullbotnames']); } else { // eventually remove bots if (is_array($botdb['fullbotnames'])) { $botdb['fullbotnames'] = array_diff($botdb['fullbotnames'], $unique_current_data_fbnames); sort($botdb['fullbotnames']); } } } else { //add new bots (first time) if (is_array($IPs)) { $unique_IPs = array_unique($IPs); foreach ($unique_IPs as $IP) { $botdb['IP'][] = $IP; } } if (is_array($fullbotnames)) { $unique_fullbotnames = array_unique($fullbotnames); foreach ($unique_fullbotnames as $fullbotname) { $botdb['fullbotnames'][] = $fullbotname; } } } $updated = update_option('podpress_botdb', $botdb); if (isset($updated) and $updated == TRUE) { echo '<div id="message" class="updated fade"><p>' . __('Settings Saved', 'podpress') . '</p></div>'; } } $where = ''; $rows_total = intval($wpdb->get_var('SELECT COUNT(DISTINCT remote_ip, user_agent) AS total FROM ' . $wpdb->prefix . 'podpress_stats ' . $where)); $query_string = 'SELECT DISTINCT remote_ip, user_agent FROM ' . $wpdb->prefix . 'podpress_stats ' . $where . 'ORDER BY dt DESC LIMIT ' . $start . ', ' . $limit; $stats = $wpdb->get_results($query_string); echo ' <div class="wrap">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Which IP address or user agent name is from a web bot?', 'podpress') . '</legend>' . "\n"; echo ' <p>' . __('Probably not every counted download is a download of a real human listener. Some hits are eventually from so called <a href="http://en.wikipedia.org/wiki/Internet_bot" target="_blank" title="en.Wikipedia: Internet Bot">Internet bots</a>. Every downloader has an <a href="http://en.wikipedia.org/wiki/IP_address" target="_blank" title="en.Wikipedia: IP Address">IP address</a> and a <a href="http://en.wikipedia.org/wiki/User_agent" target="_blank" title="en.Wikipedia: User Agent">user agent</a> name. The user agent name indicates often very good whether it is the name of a browser of a real listener or a name of a bot. Whether a IP address is one of a bot or not is more difficult. But there are some websites which can help to find out more about an IP address. (Some bots are using IP addresses only temporarily.)<br />The list below shows all unique combinations of IP addresses and user agent names. It is possible to select (resp. deselect) only the IP address or the user agent name or both. Downloads of the selected IP addresses or user agents do not appear in the statistics.', 'podpress') . '</p>' . "\n"; echo ' <form method="post">' . "\n"; if (function_exists('wp_nonce_field')) { // since WP 2.0.4 wp_nonce_field('podPress_botdb_nonce'); } echo "\n" . ' <table class="the-list-x widefat">' . "\n"; echo ' <thead>' . "\n"; echo ' <tr><th rowspan="2">' . __('Nr.', 'podpress') . '</th><th rowspan="2">' . __('IP Address', 'podpress') . '</th><th rowspan="2">' . __('User Agent', 'podpress') . '</th><th colspan="2">' . __('Is it a bot?', 'podpress') . '</th></tr><tr><th>' . __('IP', 'podpress') . '</th><th>' . __('Name', 'podpress') . '</th></tr>' . "\n"; echo ' </thead>' . "\n"; echo ' <tbody>' . "\n"; if (0 < count($stats)) { $i = 0; foreach ($stats as $stat) { ++$i; $alternate = $i % 2 ? '' : 'alternate'; $bot_style = ''; $ip_chb_checked = ''; $name_chb_checked = ''; if (TRUE == is_array($botdb)) { if (TRUE == is_array($botdb['IP']) and FALSE !== array_search($stat->remote_ip, $botdb['IP'])) { $bot_style = ' podpress_is_bot'; $ip_chb_checked = ' checked="checked"'; } if (TRUE == is_array($botdb['fullbotnames']) and FALSE !== array_search($stat->user_agent, $botdb['fullbotnames'])) { $bot_style = ' podpress_is_bot'; $name_chb_checked = ' checked="checked"'; } } echo ' <tr id ="podpress_ip_user_agent_row_' . $i . '" class="' . $alternate . $bot_style . '">' . "\n"; echo ' <td>' . ($start + $i) . '</td>' . "\n"; echo ' <td>' . $stat->remote_ip . '<input type="hidden" name="podpress_current_IP_set[]" value="' . $stat->remote_ip . '" /></td>' . "\n"; echo ' <td>' . podPress_strlimiter2($stat->user_agent, 80, TRUE) . '<input type="hidden" name="podpress_current_user_agent_set[]" value="' . attribute_escape($stat->user_agent) . '" /></td>' . "\n"; echo ' <td><input type="checkbox" id="podpress_remote_ip_' . $i . '" name="podpress_remote_ips[]" value="' . $stat->remote_ip . '" onclick="podpress_mark_same_all_bots( \'remote_ips\' , ' . $i . ', ' . $start . ' );" ' . $ip_chb_checked . ' /></td>' . "\n"; echo ' <td><input type="checkbox" id="podpress_user_agent_' . $i . '" name="podpress_user_agents[]" value="' . attribute_escape($stat->user_agent) . '" onclick="podpress_mark_same_all_bots( \'user_agent\' , ' . $i . ', ' . $start . ' );" ' . $name_chb_checked . ' /></td>' . "\n"; echo ' </tr>' . "\n"; } } else { echo '<td colspan="5">' . __('No downloads yet.', 'podpress') . "</td>\n"; } echo ' </tbody>' . "\n"; echo ' <tfood>' . "\n"; echo ' <tr>' . "\n"; echo ' <th colspan="5">' . "\n"; // Show paging echo $this->paging2($start, $limit, $rows_total, __('names and IPs', 'podpress')); echo ' </th>' . "\n"; echo ' </tr>' . "\n"; echo ' </tfood>' . "\n"; echo ' </table>' . "\n"; echo ' <p class="submit"> ' . "\n"; echo ' <input class="button-primary" type="submit" name="Submit" value="' . __('Update Options', 'podpress') . ' »" /><br />' . "\n"; echo ' </p> ' . "\n"; echo ' <input type="hidden" name="podPress_submitted" value="botdb" />' . "\n"; echo ' </form>' . "\n"; echo ' </fieldset>' . "\n"; echo ' </div>'; break; case 'downloads_per_media_file': // ntm: stat logging: Full and Full+ $where = $this->wherestr_to_exclude_bots('pod'); $query_string = "SELECT COUNT(DISTINCT pod.media) as total_rows FROM " . $wpdb->prefix . "podpress_stats as pod " . $where; $rows_total = intval($wpdb->get_var($query_string)); $query_string = "SELECT DISTINCT (pod.media) FROM " . $wpdb->prefix . "podpress_stats as pod " . $where . " LIMIT " . $start . ", " . $limit; $posts_with_podpressmedia = $wpdb->get_results($query_string); $nr_postswpm = count($posts_with_podpressmedia); if (0 < $nr_postswpm) { $i = 1; if (FALSE == empty($where)) { $where_posts = "AND pod.media IN ("; } else { $where_posts = "WHERE pod.media IN ("; } foreach ($posts_with_podpressmedia as $post) { if ($i == $nr_postswpm) { $where_posts .= "'" . $wpdb->escape($post->media) . "'"; } else { $where_posts .= "'" . $wpdb->escape($post->media) . "', "; } $i++; } $where_posts .= ") "; } else { $where_posts = ''; } $query_string = "SELECT pod.media, pod.method, COUNT(*) as downloads FROM " . $wpdb->prefix . "podpress_stats as pod " . $where . $where_posts . "GROUP BY pod.method, pod.media ORDER BY pod.media DESC"; $stat_data_sets = $wpdb->get_results($query_string); if (FALSE == empty($where)) { $where_or_and = "AND"; } else { $where_or_and = "WHERE"; } $methods = array('feed', 'web', 'play'); foreach ($methods as $method) { $query_string = "SELECT COUNT(*) as downloads, pod.media FROM " . $wpdb->prefix . "podpress_stats AS pod " . $where . $where_or_and . " pod.method='" . $method . "' GROUP BY pod.media ORDER BY downloads DESC"; $downloads_col = $wpdb->get_col($query_string); switch ($method) { case 'feed': $feed_max = intval($downloads_col[0]); break; case 'web': $web_max = intval($downloads_col[0]); break; case 'play': $play_max = intval($downloads_col[0]); break; } } $query_string = "SELECT COUNT(*) as downloads, pod.media FROM " . $wpdb->prefix . "podpress_stats AS pod " . $where . " GROUP BY pod.media ORDER BY downloads DESC"; $downloads_col = $wpdb->get_col($query_string); $total_max = intval($downloads_col[0]); // prepare the query result for the output: // - if a media file was not downloaded by one or more method then add this method and a int(0) to the media file foreach ($stat_data_sets as $stat_data_set) { $feed = $web = $play = 0; switch ($stat_data_set->method) { case 'feed': $feed = intval($stat_data_set->downloads); break; case 'web': $web = intval($stat_data_set->downloads); break; case 'play': $play = intval($stat_data_set->downloads); break; } $total_sum = $feed + $web + $play; $stats[$stat_data_set->media]['feed'] += $feed; $stats[$stat_data_set->media]['web'] += $web; $stats[$stat_data_set->media]['play'] += $play; $stats[$stat_data_set->media]['total'] += $total_sum; } // sort the media files by their 'total' value if (is_array($stats) and FALSE == empty($stats) and method_exists($this, 'sort_downloads_per_media_desc')) { uasort($stats, array($this, 'sort_downloads_per_media_desc')); } echo ' <div class="wrap">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Downloads Per Media File', 'podpress') . '</legend>' . "\n"; echo ' <table class="the-list-x widefat">' . "\n"; echo ' <thead>'; echo "\t\t\t\t<tr>\n"; echo ' <th rowspan="2">' . __('Nr.', 'podpress') . "</th>\n"; echo ' <th rowspan="2">' . __('Media File', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Feed', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Web', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Play', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" rowspan="2">' . __('Total', 'podpress') . "</th>\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' </tr>' . "\n"; echo ' </thead>'; echo ' <tbody>'; if (0 < count($stat_data_sets)) { $i = 0; foreach ($stats as $media => $downloads_per_method) { $i++; $style = $i % 2 != 0 ? '' : ' class="alternate"'; $highest_feed = ($downloads_per_method['feed'] == $feed_max and 0 < $feed_max) ? ' podpress_stats_highest' : ''; $highest_web = ($downloads_per_method['web'] == $web_max and 0 < $web_max) ? ' podpress_stats_highest' : ''; $highest_play = ($downloads_per_method['play'] == $play_max and 0 < $play_max) ? ' podpress_stats_highest' : ''; $highest_total = ($downloads_per_method['total'] == $total_max and 0 < $total_max) ? ' podpress_stats_highest' : ''; $perc_feed = number_format($downloads_per_method['feed'] * 100 / $downloads_per_method['total'], 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); $perc_web = number_format($downloads_per_method['web'] * 100 / $downloads_per_method['total'], 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); $perc_play = number_format($downloads_per_method['play'] * 100 / $downloads_per_method['total'], 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); echo ' <tr' . $style . '>' . "\n"; echo ' <td>' . ($start + $i) . '.</td>' . "\n"; echo ' <td>' . podPress_strlimiter2(urldecode($media), 50, TRUE) . '</td>' . "\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_feed . '">' . number_format($downloads_per_method['feed'], 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_feed . '">' . $perc_feed . "</td>\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_web . '" >' . number_format($downloads_per_method['web'], 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_web . '">' . $perc_web . "</td>\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_play . '">' . number_format($downloads_per_method['play'], 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_play . '">' . $perc_play . "</td>\n"; echo ' <td class="podpress_stats_numbers_total' . $highest_total . '">' . number_format($downloads_per_method['total'], 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' </tr>' . "\n"; } } else { if (FALSE == empty($where)) { echo '<td colspan="9">' . __('No downloads yet. (Bots have been filtered.)', 'podpress') . "</td>\n"; } else { echo '<td colspan="9">' . __('No downloads yet.', 'podpress') . "</td>\n"; } } echo ' </tbody>'; echo ' <tfood>' . "\n"; echo ' <tr>' . "\n"; echo ' <th colspan="9">' . "\n"; // Show paging echo $this->paging2($start, $limit, $rows_total, __('Ranks', 'podpress')); echo ' </th>' . "\n"; echo ' </tr>' . "\n"; echo ' </tfood>' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' </div>'; break; case 'rawstats': // ntm: stat logging: Full and Full+ $date_format = get_option('date_format'); $time_format = get_option('time_format'); $botdb = get_option('podpress_botdb'); $where = ''; $rows_total = $wpdb->get_var('SELECT COUNT(*) FROM ' . $wpdb->prefix . 'podpress_stats ' . $where); $stats = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'podpress_stats ' . $where . 'ORDER BY id DESC LIMIT ' . $start . ', ' . $limit); echo ' <div class="wrap">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('The raw list', 'podpress') . '</legend>' . "\n"; echo ' <table class="the-list-x widefat">' . "\n"; //width="100%" cellpadding="1" cellspacing="1" echo ' <thead>'; echo ' <tr><th>' . __('Hit', 'podpress') . '</th><th>' . __('Media File', 'podpress') . '</th><th>' . __('Method', 'podpress') . '</th><th>' . __('IP', 'podpress') . '</th><th>' . __('User Agent', 'podpress') . '</th><th>' . __('Timestamp', 'podpress') . '</th></tr>' . "\n"; echo ' </thead>'; echo ' <tbody>'; if (0 < count($stats)) { if (TRUE === is_array($botdb['IP']) or TRUE === is_array($botdb['fullbotnames'])) { $i = 0; foreach ($stats as $stat) { ++$i; $style = $i % 2 ? '' : 'alternate'; if (FALSE !== empty($botdb['fullbotnames']) or FALSE === array_search($stat->user_agent, $botdb['fullbotnames'])) { if (FALSE !== empty($botdb['IP']) or FALSE === array_search($stat->remote_ip, $botdb['IP'])) { $bot_style = ''; } else { $bot_style = ' podpress_is_bot'; } } else { $bot_style = ' podpress_is_bot'; } echo ' <tr class="' . $style . $bot_style . '">' . "\n"; echo ' <td>' . ($start + $i) . '.</td>' . "\n"; echo ' <td>' . podPress_strlimiter2(urldecode($stat->media), 20, TRUE) . '</td>' . "\n"; echo ' <td>' . $stat->method . '</td>' . "\n"; // iscifi : mod of stats output to create a link to domaintools.com whois lookup // domaintools seems faster and provides more concise infomation, url can not have trailing / echo ' <td><a href="http://whois.domaintools.com/' . $stat->remote_ip . '" target="_blank" title="' . __('Look for more details about this IP at whois.domaintools.com', 'podpress') . '">' . $stat->remote_ip . '</a></td>' . "\n"; // OLD code where this .echo ' <td>'.$stat->remote_ip.'</td>'."\n"; echo ' <td>' . podPress_strlimiter2($stat->user_agent, 50, TRUE) . '</td>' . "\n"; echo ' <td>' . date($date_format . ' - ' . $time_format, intval($stat->dt)) . '</td>' . "\n"; echo ' </tr>' . "\n"; } } else { $i = 0; foreach ($stats as $stat) { ++$i; $style = $i % 2 ? '' : 'alternate'; echo ' <tr class="' . $style . '">' . "\n"; echo ' <td>' . ($start + $i) . '.</td>' . "\n"; echo ' <td>' . podPress_strlimiter2(urldecode($stat->media), 20, TRUE) . '</td>' . "\n"; echo ' <td>' . $stat->method . '</td>' . "\n"; // iscifi : mod of stats output to create a link to domaintools.com whois lookup // domaintools seems faster and provides more concise infomation, url can not have trailing / echo ' <td><a href="http://whois.domaintools.com/' . $stat->remote_ip . '" target="_blank">' . $stat->remote_ip . '</a></td>' . "\n"; // OLD code where this .echo ' <td>'.$stat->remote_ip.'</td>'."\n"; echo ' <td>' . podPress_strlimiter2($stat->user_agent, 50, TRUE) . '</td>' . "\n"; echo ' <td>' . date($date_format . ' - ' . $time_format, intval($stat->dt)) . '</td>' . "\n"; echo ' </tr>' . "\n"; } } } else { echo '<td colspan="6">' . __('No downloads yet.', 'podpress') . '</td>' . "\n"; } echo ' </tbody>'; echo ' <tfood>' . "\n"; echo ' <tr>' . "\n"; echo ' <th colspan="6">' . "\n"; // Show paging echo $this->paging2($start, $limit, $rows_total, __('Hit', 'podpress')); echo ' </th>' . "\n"; echo ' </tr>' . "\n"; echo ' </tfood>' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' </div>'; break; case 'topips': // ntm: stat logging: Full and Full+ $where = $this->wherestr_to_exclude_bots(); $rows_total = $wpdb->get_var('SELECT COUNT(DISTINCT remote_ip) as uniq FROM ' . $wpdb->prefix . 'podpress_stats ' . $where); $sql = 'SELECT remote_ip AS IPAddress, COUNT(DISTINCT remote_ip, media) as uniq, COUNT( * ) AS total FROM ' . $wpdb->prefix . 'podpress_stats ' . $where . 'GROUP BY remote_ip ORDER BY total DESC LIMIT ' . $start . ', ' . $limit; $stats = $wpdb->get_results($sql); echo ' <div class="wrap">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Top IP Addresses', 'podpress') . '</legend>' . "\n"; echo ' <table class="the-list-x widefat">' . "\n"; echo ' <thead>'; echo ' <tr><th>' . __('Nr.', 'podpress') . '</th><th>' . __('IP Address', 'podpress') . '</th><th><abbr class="podpress_abbr" title="' . __('Only one download per file from this IP address has been counted. In other words: It is the number of different files which were downloaded from this IP address.', 'podpress') . '">' . __('Unique Files', 'podpress') . '</abbr></th><th>' . __('Total', 'podpress') . '</th></tr>' . "\n"; echo ' </thead>'; echo ' <tbody>'; if (0 < count($stats)) { $i = 0; foreach ($stats as $stat) { ++$i; $style = $i % 2 ? '' : ' class="alternate"'; echo ' <tr' . $style . '>' . "\n"; echo ' <td>' . ($start + $i) . '.</td>' . "\n"; echo ' <td>' . $stat->IPAddress . '</td>' . "\n"; echo ' <td>' . $stat->uniq . '</td>' . "\n"; echo ' <td>' . $stat->total . '</td>' . "\n"; echo ' </tr>' . "\n"; } } else { if (FALSE == empty($where)) { echo '<td colspan="4">' . __('No downloads yet. (Bots have been filtered.)', 'podpress') . "</td>\n"; } else { echo '<td colspan="4">' . __('No downloads yet.', 'podpress') . "</td>\n"; } } echo ' </tbody>'; echo ' <tfood>' . "\n"; echo ' <tr>' . "\n"; echo ' <th colspan="4">' . "\n"; // Show paging echo $this->paging2($start, $limit, $rows_total, __('IP Address', 'podpress')); echo ' </th>' . "\n"; echo ' </tr>' . "\n"; echo ' </tfood>' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' </div>'; break; case 'graphbydate': // ntm: stat logging: Full and Full+ if ($this->checkGD()) { //&& ($this->settings['statLogging'] == 'Full' || $this->settings['statLogging'] == 'FullPlus') $this->graphByDate(); } else { $this->graphByDateAlt('With <a href="http://us2.php.net/manual/en/ref.image.php">gdlib-support</a> you\'ll have access to more detailed graphicals stats. Please ask your provider.'); } break; case 'graphbydatealt': // ntm: stat logging: Full and Full+ $this->graphByDateAlt(); break; case 'graphbypost': // ntm: stat logging: Counts Only echo '<p>' . __('<strong>Notice:</strong> This graph is only faultless if your podcast posts contain only one media file per post, each file has a unique name and if you change the media file name on a re-post (deleting a post and publishing the content in a new post)!', 'podpress') . '</p>'; if ($this->checkGD()) { $this->graphByPost(); } else { $this->graphByPostAlt('With <a href="http://us2.php.net/manual/en/ref.image.php">gdlib-support</a> you\'ll have access to more detailed graphicals stats. Please ask your provider.'); } break; case 'graphbypostalt': // ntm: stat logging: Counts Only echo '<p>' . __('<strong>Notice:</strong> This graph is only faultless if your podcast posts contain only one media file per post, each file has a unique name and if you change the media file name on a re-post (deleting a post and publishing the content in a new post)!', 'podpress') . '</p>'; $this->graphByPostAlt(); break; case 'downloads_per_post': // ntm: stat logging: Full and Full+ $where = $this->wherestr_to_exclude_bots('pod'); // get the number of all post with podPress podcasts //~ $query_string = "SELECT COUNT(DISTINCT postID) as posts FROM ".$wpdb->prefix."podpress_stats ".$where; // take only posts which are still in the wp_posts table. It is possible that the stats table contains stats of file which were only in posts which are deleted. if (TRUE == empty($where)) { $where_ID .= " WHERE p.ID = pod.postID"; } else { $where_ID .= " AND p.ID = pod.postID"; } // get all post with podPress podcasts $query_string = "SELECT DISTINCT(pod.postID), p.post_title FROM " . $wpdb->prefix . "podpress_stats AS pod LEFT JOIN " . $wpdb->prefix . "posts AS p ON pod.postID = p.ID " . $where . $where_ID . " ORDER BY pod.postID DESC"; $posts_with_podpressmedia = $wpdb->get_results($query_string); echo ' <div class="wrap">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Downloads Per Post', 'podpress') . '</legend>' . "\n"; echo ' <form method="post">' . "\n"; if (function_exists('wp_nonce_field')) { // since WP 2.0.4 wp_nonce_field('podPress_downloads_per_post_nonce'); } echo ' <label>' . __('Select a post with a media file (attached with podPress):', 'podpress') . '</label><br />' . "\n"; echo ' <select id="post_with_podpressmedia" name="post_with_podpressmedia" size="5">' . "\n"; foreach ($posts_with_podpressmedia as $post) { if ($post->postID == $_POST['post_with_podpressmedia']) { $selected = ' selected="selected"'; } else { $selected = ''; } echo ' <option value="' . $post->postID . '"' . $selected . '>' . $post->post_title . '</option>' . "\n"; $post_titles[$post->postID] = $post->post_title; } echo ' </select>' . "\n"; echo ' <p class="submit"> ' . "\n"; echo ' <input type="submit" name="Submit" value="' . __('Show the stats for this post', 'podpress') . ' »" /><br />' . "\n"; echo ' </p> ' . "\n"; echo ' <input type="hidden" name="podPress_submitted" value="downloadsperpost" />' . "\n"; echo ' </form>' . "\n"; echo ' </fieldset>' . "\n"; echo ' </div><!-- .wrap -->' . "\n"; // show the statistics of the media files of the submitted post if ('downloadsperpost' == $_POST['podPress_submitted']) { if (function_exists('check_admin_referer')) { check_admin_referer('podPress_downloads_per_post_nonce'); } if (FALSE == empty($where)) { $where_postID = "AND pod.postID = '" . $_POST['post_with_podpressmedia'] . "' "; } else { $where_postID = "WHERE pod.postID = '" . $_POST['post_with_podpressmedia'] . "' "; } $query_string = "SELECT pod.media, pod.method, COUNT(*) as downloads FROM " . $wpdb->prefix . "podpress_stats as pod " . $where . $where_postID . "GROUP BY pod.method, pod.media ORDER BY media DESC"; $stat_data_sets = $wpdb->get_results($query_string); // prepare the query result for the output: // - find the maximal downloads value for each download method // - if a media file was not downloaded by one or more method then add this method and a int(0) to the media file $feed_max = 0; $web_max = 0; $play_max = 0; $total_max = 0; foreach ($stat_data_sets as $stat_data_set) { $feed = 0; $web = 0; $play = 0; switch ($stat_data_set->method) { case 'feed': $feed = intval($stat_data_set->downloads); $feed_max = max($feed_max, $feed); break; case 'web': $web = intval($stat_data_set->downloads); $web_max = max($web_max, $web); break; case 'play': $play = intval($stat_data_set->downloads); $play_max = max($play_max, $play); break; } $stats[$stat_data_set->media]['feed'] += $feed; $stats[$stat_data_set->media]['web'] += $web; $stats[$stat_data_set->media]['play'] += $play; $stats[$stat_data_set->media]['total'] += $feed + $web + $play; $total_max = max($total_max, $stats[$stat_data_set->media]['total']); } // sort the media files by their 'total' value if (is_array($stats) and FALSE == empty($stats) and method_exists($this, 'sort_downloads_per_media_desc')) { uasort($stats, array($this, 'sort_downloads_per_media_desc')); } echo ' <div class="wrap">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Post:', 'podpress') . " " . $post_titles[$_POST['post_with_podpressmedia']] . " - " . __('Downloads Per Media File', 'podpress') . '</legend>' . "\n"; echo ' <table class="the-list-x widefat">' . "\n"; echo ' <thead>'; echo "\t\t\t\t<tr>\n"; echo ' <th rowspan="2">' . __('Nr.', 'podpress') . "</th>\n"; echo ' <th rowspan="2">' . __('Media File', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Feed', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Web', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Play', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" rowspan="2">' . __('Total', 'podpress') . "</th>\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' </tr>' . "\n"; echo ' </thead>'; echo ' <tbody>'; $mark_highest = FALSE; $nr_stat_data_sets = count($stat_data_sets); if (0 < $nr_stat_data_sets) { if (1 < $nr_stat_data_sets) { $mark_highest = TRUE; } $i = 0; foreach ($stats as $media => $downloads_per_method) { $i++; $style = $i % 2 != 0 ? '' : ' class="alternate"'; if (TRUE === $mark_highest) { $highest_feed = ($downloads_per_method['feed'] == $feed_max and 0 < $feed_max) ? ' podpress_stats_highest' : ''; $highest_web = ($downloads_per_method['web'] == $web_max and 0 < $web_max) ? ' podpress_stats_highest' : ''; $highest_play = ($downloads_per_method['play'] == $play_max and 0 < $play_max) ? ' podpress_stats_highest' : ''; $highest_total = ($downloads_per_method['total'] == $total_max and 0 < $total_max) ? ' podpress_stats_highest' : ''; } $perc_feed = number_format($downloads_per_method['feed'] * 100 / $downloads_per_method['total'], 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); $perc_web = number_format($downloads_per_method['web'] * 100 / $downloads_per_method['total'], 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); $perc_play = number_format($downloads_per_method['play'] * 100 / $downloads_per_method['total'], 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); echo ' <tr' . $style . '>' . "\n"; echo ' <td>' . ($start + $i) . '.</td>' . "\n"; echo ' <td>' . podPress_strlimiter2(urldecode($media), 50, TRUE) . '</td>' . "\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_feed . '">' . number_format($downloads_per_method['feed'], 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_feed . '">' . $perc_feed . "</td>\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_web . '" >' . number_format($downloads_per_method['web'], 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_web . '">' . $perc_web . "</td>\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_play . '">' . number_format($downloads_per_method['play'], 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_play . '">' . $perc_play . "</td>\n"; echo ' <td class="podpress_stats_numbers_total' . $highest_total . '">' . number_format($downloads_per_method['total'], 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' </tr>' . "\n"; } } else { if (FALSE == empty($where)) { echo '<td colspan="9">' . __('No downloads yet. (Bots have been filtered.)', 'podpress') . "</td>\n"; } else { echo '<td colspan="9">' . __('No downloads yet.', 'podpress') . "</td>\n"; } } echo ' </tbody>'; echo ' <tfood>' . "\n"; echo ' <tr>' . "\n"; echo ' <th colspan="9">' . "\n"; echo ' </th>' . "\n"; echo ' </tr>' . "\n"; echo ' </tfood>' . "\n"; echo ' </table>' . "\n"; echo ' </fieldset>' . "\n"; echo ' </div><!-- .wrap -->' . "\n"; } break; case 'quickcounts': // ntm: stat logging: Counts Only // ntm: 'quickcounts' takes the data from the wp_podpress_statcounts table. $total = $wpdb->get_var('SELECT COUNT(postID) FROM ' . $wpdb->prefix . 'podpress_statcounts WHERE postID != 0;'); if ($total > 0) { // Load highest values $sql = "SELECT 'blah' AS topic, MAX(total) AS total, MAX(feed) AS feed, MAX(web) AS web, MAX(play) AS play FROM " . $wpdb->prefix . 'podpress_statcounts GROUP BY topic'; $highest = $wpdb->get_results($sql); $highest = $highest[0]; //~ $sql = 'SELECT sc.postID, sc.media, sc.total, sc.feed, sc.web, sc.play, p.post_title, p.post_date, UNIX_TIMESTAMP(p.post_date) AS pdate ' //~ . 'FROM '.$wpdb->prefix.'podpress_statcounts AS sc, '.$wpdb->prefix.'posts AS p ' //~ . 'WHERE (sc.postID = p.ID) ORDER BY p.post_date DESC LIMIT '.$start.', '.$limit.''; $sql = 'SELECT sc.media, sc.total, sc.feed, sc.web, sc.play ' . 'FROM ' . $wpdb->prefix . 'podpress_statcounts AS sc ' . 'ORDER BY sc.media DESC LIMIT ' . $start . ', ' . $limit . ''; $stats = $wpdb->get_results($sql); $cnt_stats = count($stats); if (isset($_POST['podPress_submitted']) and 'sortquickcountsbypost' == $_POST['podPress_submitted']) { foreach ($stats as $stat) { $where_instr_ar[] = 'INSTR(pm.meta_value, "' . $stat->media . '")'; } if ($cnt_stats > 1) { $where_instr = implode(' OR ', $where_instr_ar); } else { $where_instr = $where_instr_ar[0]; } $where = 'pm.meta_key="_podPressMedia" AND (' . $where_instr . ')'; $sql = 'SELECT pm.post_id, pm.meta_key, pm.meta_value, p.post_title FROM ' . $wpdb->prefix . 'postmeta AS pm LEFT JOIN ' . $wpdb->prefix . 'posts AS p ON pm.post_id = p.ID WHERE ' . $where . ' ORDER BY pm.post_id DESC'; $postmeta_data = $wpdb->get_results($sql); // get the highest post_id of posts which have a certain media file attached with podPress // in other words get the last post which has a certain media file attached foreach ($postmeta_data as $postmeta) { $postmeta->post_id = intval($postmeta->post_id); foreach ($stats as $stat) { if (FALSE !== stristr($postmeta->meta_value, $stat->media)) { //echo $postmeta->post_id.': '.$stat->media."\n"; $max_post_ids[$stat->media]['ID'] = max($max_post_ids[$stat->media]['ID'], $postmeta->post_id); if ($max_post_ids[$stat->media]['ID'] == $postmeta->post_id) { $max_post_ids[$stat->media]['title'] = $postmeta->post_title; } } } } foreach ($max_post_ids as $media => $last_published_in_post) { foreach ($stats as $stat) { if ($stat->media == $media) { $stat->postID = $last_published_in_post['ID']; $stat->post_title = $last_published_in_post['title']; $stats_new[] = $stat; } } } $stats = $stats_new; unset($stats_new); echo ' <div class="wrap">' . "\n"; echo ' <fieldset class="options">' . "\n"; echo ' <legend>' . __('Downloads Per Media File', 'podpress') . '</legend>' . "\n"; echo ' <p>' . __('sorted by the IDs of the posts in which the media files were last published (descending)', 'podpress') . '</p>'; echo ' <table class="the-list-x widefat">' . "\n"; echo ' <thead>'; echo "\t\t\t\t<tr>\n"; echo ' <th rowspan="2">' . __('Nr.', 'podpress') . "</th>\n"; echo ' <th rowspan="2">' . __('Media File', 'podpress') . "</th>\n"; echo ' <th rowspan="2">' . __('last published in post', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Feed', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Download', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Play', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" rowspan="2">' . __('Total', 'podpress') . "</th>\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' </tr>' . "\n"; echo ' </thead>'; echo ' <tbody>'; $date_format = get_option('date_format'); $time_format = get_option('time_format'); if ($cnt_stats > 0) { $i = 0; foreach ($stats as $stat) { $i++; $style = $i % 2 != 0 ? '' : ' class="alternate"'; $highest_feed = ($stat->feed == $highest->feed and 0 < $highest->feed) ? ' podpress_stats_highest' : ''; $highest_web = ($stat->web == $highest->web and 0 < $highest->web) ? ' podpress_stats_highest' : ''; $highest_play = ($stat->play == $highest->play and 0 < $highest->play) ? ' podpress_stats_highest' : ''; $highest_total = $stat->total == $highest->total ? ' podpress_stats_highest' : ''; $perc_feed = number_format($stat->feed * 100 / $stat->total, 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); $perc_web = number_format($stat->web * 100 / $stat->total, 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); $perc_play = number_format($stat->play * 100 / $stat->total, 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); echo ' <tr' . $style . '>' . "\n"; echo ' <td>' . ($start + $i) . '.</td>' . "\n"; echo ' <td>' . podPress_strlimiter2(urldecode($stat->media), 30, TRUE) . '</td>' . "\n"; if (TRUE == version_compare($wp_version, '2.3', '<')) { echo ' <td><a href="' . get_option('siteurl') . '/wp-admin/post.php?action=edit&post=' . $stat->postID . '" title="' . __('Edit this post', 'podpress') . '">' . podPress_strlimiter2($stat->post_title, 30, TRUE) . '</a></td>' . "\n"; } else { echo ' <td><a href="' . get_edit_post_link($stat->postID) . '" title="' . __('Edit this post', 'podpress') . '">' . podPress_strlimiter2($stat->post_title, 30, TRUE) . '</a></td>' . "\n"; } echo ' <td class="podpress_stats_numbers_abs' . $highest_feed . '">' . number_format($stat->feed, 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_feed . '">' . $perc_feed . "</td>\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_web . '" >' . number_format($stat->web, 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_web . '">' . $perc_web . "</td>\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_play . '">' . number_format($stat->play, 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_play . '">' . $perc_play . "</td>\n"; echo ' <td class="podpress_stats_numbers_total' . $highest_total . '">' . number_format($stat->total, 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' </tr>' . "\n"; } } echo ' </tbody>' . "\n"; echo ' <tfood>' . "\n"; echo ' <tr>' . "\n"; echo ' <th colspan="10">' . "\n"; } else { echo ' <div class="wrap">' . "\n"; echo ' <fieldset class="options">' . "\n"; //echo ' <legend>'.__('The counts', 'podpress').'</legend>'."\n"; echo ' <legend>' . __('Downloads Per Media File', 'podpress') . '</legend>' . "\n"; echo ' <p>' . __('sorted by the names of the media files (descending)', 'podpress') . '</p>'; echo ' <table class="the-list-x widefat">' . "\n"; echo ' <thead>'; echo "\t\t\t\t<tr>\n"; echo ' <th rowspan="2">' . __('Nr.', 'podpress') . "</th>\n"; //~ echo ' <th rowspan="2">'.__('Post', 'podpress')."</th>\n"; //~ echo ' <th rowspan="2">'.__('Publication Date', 'podpress')."</th>\n"; echo ' <th rowspan="2">' . __('Media File', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Feed', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Download', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" colspan="2">' . __('Play', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head" rowspan="2">' . __('Total', 'podpress') . "</th>\n"; echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('Files', 'podpress') . "</th>\n"; echo ' <th class="podpress_stats_nr_head">' . __('%', 'podpress') . "</th>\n"; echo ' </tr>' . "\n"; echo ' </thead>'; echo ' <tbody>'; $date_format = get_option('date_format'); $time_format = get_option('time_format'); if ($cnt_stats > 0) { $i = 0; foreach ($stats as $stat) { $i++; $style = $i % 2 != 0 ? '' : ' class="alternate"'; $highest_feed = ($stat->feed == $highest->feed and 0 < $highest->feed) ? ' podpress_stats_highest' : ''; $highest_web = ($stat->web == $highest->web and 0 < $highest->web) ? ' podpress_stats_highest' : ''; $highest_play = ($stat->play == $highest->play and 0 < $highest->play) ? ' podpress_stats_highest' : ''; $highest_total = $stat->total == $highest->total ? ' podpress_stats_highest' : ''; $perc_feed = number_format($stat->feed * 100 / $stat->total, 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); $perc_web = number_format($stat->web * 100 / $stat->total, 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); $perc_play = number_format($stat->play * 100 / $stat->total, 1, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]); echo ' <tr' . $style . '>' . "\n"; echo ' <td>' . ($start + $i) . '.</td>' . "\n"; //~ if ( TRUE == version_compare($wp_version, '2.3', '<') ) { //~ echo ' <td><a href="'.get_option('siteurl').'/wp-admin/post.php?action=edit&post='.$stat->postID.'" title="'.__('Edit this post','podpress').'">'.podPress_strlimiter2($stat->post_title, 30, TRUE).'</a></td>'."\n"; //~ } else { //~ echo ' <td><a href="'.get_edit_post_link($stat->postID).'" title="'.__('Edit this post','podpress').'">'.podPress_strlimiter2($stat->post_title, 30, TRUE).'</a></td>'."\n"; //~ } //~ echo ' <td>'.date($date_format.' - '.$time_format, $stat->pdate).'</td>'."\n"; echo ' <td>' . podPress_strlimiter2(urldecode($stat->media), 30, TRUE) . '</td>' . "\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_feed . '">' . number_format($stat->feed, 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_feed . '">' . $perc_feed . "</td>\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_web . '" >' . number_format($stat->web, 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_web . '">' . $perc_web . "</td>\n"; echo ' <td class="podpress_stats_numbers_abs' . $highest_play . '">' . number_format($stat->play, 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' <td class="podpress_stats_numbers_percent' . $highest_play . '">' . $perc_play . "</td>\n"; echo ' <td class="podpress_stats_numbers_total' . $highest_total . '">' . number_format($stat->total, 0, $this->local_settings['numbers'][0], $this->local_settings['numbers'][1]) . "</td>\n"; echo ' </tr>' . "\n"; } } echo ' </tbody>' . "\n"; echo ' <tfood>' . "\n"; echo ' <tr>' . "\n"; //~ echo ' <th colspan="11">'."\n"; echo ' <th colspan="9">' . "\n"; } // Show paging if ($_GET['display'] != 'graphbydate' && $_GET['display'] != 'graphbypost') { echo $this->paging2($start, $limit, $total, __('Nr.', 'podpress')); } echo ' </th>' . "\n"; echo ' </tr>' . "\n"; echo ' </tfood>' . "\n"; echo ' </table>' . "\n"; echo ' <form method="post">' . "\n"; echo ' <p class="submit"> ' . "\n"; if (isset($_POST['podPress_submitted']) and 'sortquickcountsbypost' == $_POST['podPress_submitted']) { echo ' <input type="submit" name="Submit" value="' . __('sort the media files by their names', 'podpress') . ' »" /><br />' . "\n"; } else { echo ' <input type="submit" name="Submit" value="' . __('sort the media files by the IDs of the posts in which they were last published', 'podpress') . ' »" /><br />' . "\n"; echo ' <input type="hidden" name="podPress_submitted" value="sortquickcountsbypost" />' . "\n"; } echo ' </p> ' . "\n"; echo ' </form>' . "\n"; echo ' </fieldset>' . "\n"; echo ' </div>'; } else { echo '<p>' . __('We\'re sorry. At the moment we don\'t have enough data collected to display the graph.', 'podpress') . "</p>\n"; } break; default: return; } echo '<div style="clear: both;"></div>' . "\n"; echo '</div>'; }
<th colspan="2"><?php _e('Action'); ?> </th> </tr> <?php cat_rows(); ?> </table> <div id="ajax-response"></div> </div> <?php if (podPress_isAuthorized('manage_categories', true)) { ?> <div class="wrap"> <p><?php printf(__('<strong>Note:</strong><br />Deleting a category does not delete posts from that category, it will just set them back to the default category <strong>%s</strong>.'), get_catname(get_option('default_category'))); ?> </p> </div> <div class="wrap"> <h2><?php _e('Add New Category'); ?> </h2> <form name="addcat" id="addcat" action="categories.php" method="post"> <?php