work on sidebar

This commit is contained in:
John Bintz 2009-06-15 20:52:57 -04:00
parent d44bd6f775
commit 95414a4049
4 changed files with 252 additions and 140 deletions

View File

@ -0,0 +1,63 @@
<?php
class ComicPressSidebarStandard extends ComicPressView {
function ComicPressSidebarStandard() {
global $comicpress_manager;
$this->all_comic_dates_ok = true;
$this->all_comic_dates = array();
foreach ($comicpress_manager->comic_files as $comic_file) {
if (($result = $comicpress_manager->breakdown_comic_filename(pathinfo($comic_file, PATHINFO_BASENAME))) !== false) {
if (isset($this->all_comic_dates[$result['date']])) { $this->all_comic_dates_ok = false; break; }
$this->all_comic_dates[$result['date']] = true;
}
}
$this->too_many_comics_message = "";
if ($this->all_comic_dates_ok) {
$this->too_many_comics_message = ", <em>" . __("multiple files on the same date!", 'comicpress-manager') . "</em>";
}
$this->subdir_path = '';
if (($subdir = $comicpress_manager->get_subcomic_directory()) !== false) {
$this->subdir_path .= '/' . $subdir;
}
}
function render() {
global $comicpress_manager;
import($this->_partial_path("sidebar"));
}
function _get_thumbnail_generation_info() {
global $comicpress_manager;
$this->thumbnail_generation = array();
foreach (array('archive', 'rss') as $type) {
if (
($comicpress_manager->scale_method !== false) &&
($comicpress_manager->get_cpm_option("cpm-${type}-generate-thumbnails") == 1) &&
($comicpress_manager->separate_thumbs_folder_defined[$type]) &&
($comicpress_manager->thumbs_folder_writable[$type])
) {
$this->thumbnail_generation[$type] = true;
} else {
$reasons = array();
if ($comicpress_manager->scale_method == false) { $reasons[] = __("No scaling software", 'comicpress-manager'); }
if ($comicpress_manager->get_cpm_option("cpm-${type}-generate-thumbnails") == 0) {
$reasons[] = __("Generation disabled", 'comicpress-manager');
} else {
if (!$comicpress_manager->separate_thumbs_folder_defined[$type]) { $reasons[] = __("Same as comics folder", 'comicpress-manager'); }
if (!$comicpress_manager->thumbs_folder_writable[$type]) { $reasons[] = __("Not writable", 'comicpress-manager'); }
}
$this->thumbnail_generation = $reasons;
}
}
}
}
?>

View File

@ -0,0 +1,110 @@
<!-- ComicPress details -->
<div id="comicpress-details">
<h2 style="padding-right: 0"><?php _e('ComicPress Details', 'comicpress-manager') ?></h2>
<ul style="padding-left: 30px; margin: 0">
<?php if (function_exists('get_site_option')) { ?>
<li><strong><?php _e("Available disk space:", 'comicpress-manager') ?></strong>
<?php printf(__("%0.2f MB"), cpm_wpmu_get_available_disk_space() / 1048576) ?>
<?php } ?>
<li>
<strong><?php _e('Comics folder:', 'comicpress-manager') ?></strong>
<?php
echo $comicpress_manager->properties['comic_folder'] . $subdir_path;
printf(
__ngettext(
' (%d comic in folder%s)',
' (%d comics in folder%s)',
count($comicpress_manager->comic_files),
'comicpress-manager'
),
count($comicpress_manager->comic_files),
$this->too_many_comics_message
);
?>
</li>
<?php foreach (array('archive' => __('Archive folder:', 'comicpress-manager'),
'rss' => __('RSS feed folder:', 'comicpress-manager'))
as $type => $title) { ?>
<li><strong><?php echo $title ?></strong> <?php echo $comicpress_manager->properties["${type}_comic_folder"] . $subdir_path; ?>
<?php if (
($comicpress_manager->scale_method !== false) &&
($comicpress_manager->get_cpm_option("cpm-${type}-generate-thumbnails") == 1) &&
($comicpress_manager->separate_thumbs_folder_defined[$type]) &&
($comicpress_manager->thumbs_folder_writable[$type])
) { ?>
(<em><?php _e('generating', 'comicpress-manager') ?></em>)
<?php } else {
$reasons = array();
if ($comicpress_manager->scale_method == false) { $reasons[] = __("No scaling software", 'comicpress-manager'); }
if ($comicpress_manager->get_cpm_option("cpm-${type}-generate-thumbnails") == 0) {
$reasons[] = __("Generation disabled", 'comicpress-manager');
} else {
if (!$comicpress_manager->separate_thumbs_folder_defined[$type]) { $reasons[] = __("Same as comics folder", 'comicpress-manager'); }
if (!$comicpress_manager->thumbs_folder_writable[$type]) { $reasons[] = __("Not writable", 'comicpress-manager'); }
}
?>
(<em style="cursor: help; text-decoration: underline" title="<?php echo implode(", ", $reasons) ?>">not generating</em>)
<?php } ?>
</li>
<?php } ?>
<li><strong>
<?php
if (is_array($comicpress_manager->properties['comiccat']) && count($comicpress_manager->properties['comiccat']) != 1) {
_e("Comic categories:", 'comicpress-manager');
} else {
_e("Comic category:", 'comicpress-manager');
}
?></strong>
<?php if (is_array($comicpress_manager->properties['comiccat'])) { ?>
<ul>
<?php foreach ($comicpress_manager->properties['comiccat'] as $cat_id) { ?>
<li><a href="<?php echo get_category_link($cat_id) ?>"><?php echo get_cat_name($cat_id) ?></a>
<?php printf(__('(ID %s)', 'comicpress-manager'), $cat_id) ?></li>
<?php } ?>
</ul>
<?php } else { ?>
<a href="<?php echo get_category_link($comicpress_manager->properties['comiccat']) ?>"><?php echo $comicpress_manager->category_info['comiccat']['name'] ?></a>
<?php printf(__('(ID %s)', 'comicpress-manager'), $comicpress_manager->properties['comiccat']) ?>
<?php } ?>
</li>
<li><strong><?php _e('Blog category:', 'comicpress-manager') ?></strong> <a href="<?php echo get_category_link($comicpress_manager->properties['blogcat']) ?>" ?>
<?php echo $comicpress_manager->category_info['blogcat']['name'] ?></a> <?php printf(__('(ID %s)', 'comicpress-manager'), $comicpress_manager->properties['blogcat']) ?></li>
<?php if (!function_exists('get_site_option')) { ?>
<li><strong><?php _e("PHP Version:", 'comicpress-manager') ?></strong> <?php echo phpversion() ?>
<?php if (substr(phpversion(), 0, 3) < 5.2) { ?>
(<a href="http://gophp5.org/hosts"><?php _e("upgrade strongly recommended", 'comicpress-manager') ?></a>)
<?php } ?>
</li>
<li>
<strong><?php _e('Theme folder:', 'comicpress-manager') ?></strong>
<?php $theme_info = get_theme(get_current_theme());
if (!empty($theme_info['Template'])) {
echo $theme_info['Template'];
} else {
echo __("<em>Something's misconfigured with your theme...</em>", 'comicpress-manager');
} ?>
</li>
<?php if (count($comicpress_manager->detailed_warnings) != 0) { ?>
<li>
<strong><?php _e('Additional, non-fatal warnings:', 'comicpress-manager') ?></strong>
<ul>
<?php foreach ($comicpress_manager->detailed_warnings as $warning) { ?>
<li><?php echo $warning ?></li>
<?php } ?>
</ul>
</li>
<?php } ?>
<li>
<strong><a href="#" onclick="Element.show('debug-info'); $('cpm-right-column').style.minHeight = $('cpm-left-column').offsetHeight + 'px'; return false"><?php _e('Show debug info', 'comicpress-manager') ?></a></strong> (<em><?php _e("this data is sanitized to protect your server's configuration", 'comicpress-manager') ?></em>)
<?php echo cpm_show_debug_info() ?>
</li>
<?php } ?>
</ul>
</div>

View File

@ -361,146 +361,6 @@ function cpm_available_backup_files_sort($a, $b) {
return ($a[1] > $b[1]) ? -1 : 1;
}
/**
* Show the details of the current setup in the Sidebar.
*/
function cpm_show_comicpress_details() {
global $comicpress_manager;
$all_comic_dates_ok = true;
$all_comic_dates = array();
foreach ($comicpress_manager->comic_files as $comic_file) {
if (($result = $comicpress_manager->breakdown_comic_filename(pathinfo($comic_file, PATHINFO_BASENAME))) !== false) {
if (isset($all_comic_dates[$result['date']])) { $all_comic_dates_ok = false; break; }
$all_comic_dates[$result['date']] = true;
}
}
$subdir_path = '';
if (($subdir = $comicpress_manager->get_subcomic_directory()) !== false) {
$subdir_path .= '/' . $subdir;
}
?>
<!-- ComicPress details -->
<div id="comicpress-details">
<h2 style="padding-right: 0"><?php _e('ComicPress Details', 'comicpress-manager') ?></h2>
<ul style="padding-left: 30px; margin: 0">
<li><strong><?php _e("Configuration method:", 'comicpress-manager') ?></strong>
<?php if ($comicpress_manager->config_method == "comicpress-config.php") { ?>
<a href="?page=<?php echo plugin_basename(__FILE__) ?>-config"><?php echo $comicpress_manager->config_method ?></a>
<?php if ($comicpress_manager->can_write_config) { ?>
<?php _e('(click to edit)', 'comicpress-manager') ?>
<?php } else { ?>
<?php _e('(click to edit, cannot update automatically)', 'comicpress-manager') ?>
<?php } ?>
<?php } else { ?>
<?php echo $comicpress_manager->config_method ?>
<?php } ?>
</li>
<?php if (function_exists('get_site_option')) { ?>
<li><strong><?php _e("Available disk space:", 'comicpress-manager') ?></strong>
<?php printf(__("%0.2f MB"), cpm_wpmu_get_available_disk_space() / 1048576) ?>
<?php } ?>
<li><strong><?php _e('Comics folder:', 'comicpress-manager') ?></strong>
<?php
echo $comicpress_manager->properties['comic_folder'] . $subdir_path;
?><br />
<?php
$too_many_comics_message = "";
if (!$all_comic_dates_ok) {
ob_start(); ?>
, <a href="?page=<?php echo plugin_basename(__FILE__) ?>-status"><em><?php _e("multiple files on the same date!", 'comicpress-manager') ?></em></a>
<?php $too_many_comics_message = trim(ob_get_clean());
} ?>
<?php printf(__ngettext('(%d comic in folder%s)', '(%d comics in folder%s)', count($comicpress_manager->comic_files), 'comicpress-manager'), count($comicpress_manager->comic_files), $too_many_comics_message) ?>
</li>
<?php foreach (array('archive' => __('Archive folder:', 'comicpress-manager'),
'rss' => __('RSS feed folder:', 'comicpress-manager'))
as $type => $title) { ?>
<li><strong><?php echo $title ?></strong> <?php echo $comicpress_manager->properties["${type}_comic_folder"] . $subdir_path; ?>
<?php if (
($comicpress_manager->scale_method !== false) &&
($comicpress_manager->get_cpm_option("cpm-${type}-generate-thumbnails") == 1) &&
($comicpress_manager->separate_thumbs_folder_defined[$type]) &&
($comicpress_manager->thumbs_folder_writable[$type])
) { ?>
(<em><?php _e('generating', 'comicpress-manager') ?></em>)
<?php } else {
$reasons = array();
if ($comicpress_manager->scale_method == false) { $reasons[] = __("No scaling software", 'comicpress-manager'); }
if ($comicpress_manager->get_cpm_option("cpm-${type}-generate-thumbnails") == 0) {
$reasons[] = __("Generation disabled", 'comicpress-manager');
} else {
if (!$comicpress_manager->separate_thumbs_folder_defined[$type]) { $reasons[] = __("Same as comics folder", 'comicpress-manager'); }
if (!$comicpress_manager->thumbs_folder_writable[$type]) { $reasons[] = __("Not writable", 'comicpress-manager'); }
}
?>
(<em style="cursor: help; text-decoration: underline" title="<?php echo implode(", ", $reasons) ?>">not generating</em>)
<?php } ?>
</li>
<?php } ?>
<li><strong>
<?php
if (is_array($comicpress_manager->properties['comiccat']) && count($comicpress_manager->properties['comiccat']) != 1) {
_e("Comic categories:", 'comicpress-manager');
} else {
_e("Comic category:", 'comicpress-manager');
}
?></strong>
<?php if (is_array($comicpress_manager->properties['comiccat'])) { ?>
<ul>
<?php foreach ($comicpress_manager->properties['comiccat'] as $cat_id) { ?>
<li><a href="<?php echo get_category_link($cat_id) ?>"><?php echo get_cat_name($cat_id) ?></a>
<?php printf(__('(ID %s)', 'comicpress-manager'), $cat_id) ?></li>
<?php } ?>
</ul>
<?php } else { ?>
<a href="<?php echo get_category_link($comicpress_manager->properties['comiccat']) ?>"><?php echo $comicpress_manager->category_info['comiccat']['name'] ?></a>
<?php printf(__('(ID %s)', 'comicpress-manager'), $comicpress_manager->properties['comiccat']) ?>
<?php } ?>
</li>
<li><strong><?php _e('Blog category:', 'comicpress-manager') ?></strong> <a href="<?php echo get_category_link($comicpress_manager->properties['blogcat']) ?>" ?>
<?php echo $comicpress_manager->category_info['blogcat']['name'] ?></a> <?php printf(__('(ID %s)', 'comicpress-manager'), $comicpress_manager->properties['blogcat']) ?></li>
<?php if (!function_exists('get_site_option')) { ?>
<li><strong><?php _e("PHP Version:", 'comicpress-manager') ?></strong> <?php echo phpversion() ?>
<?php if (substr(phpversion(), 0, 3) < 5.2) { ?>
(<a href="http://gophp5.org/hosts"><?php _e("upgrade strongly recommended", 'comicpress-manager') ?></a>)
<?php } ?>
</li>
<li>
<strong><?php _e('Theme folder:', 'comicpress-manager') ?></strong>
<?php $theme_info = get_theme(get_current_theme());
if (!empty($theme_info['Template'])) {
echo $theme_info['Template'];
} else {
echo __("<em>Something's misconfigured with your theme...</em>", 'comicpress-manager');
} ?>
</li>
<?php if (count($comicpress_manager->detailed_warnings) != 0) { ?>
<li>
<strong><?php _e('Additional, non-fatal warnings:', 'comicpress-manager') ?></strong>
<ul>
<?php foreach ($comicpress_manager->detailed_warnings as $warning) { ?>
<li><?php echo $warning ?></li>
<?php } ?>
</ul>
</li>
<?php } ?>
<li>
<strong><a href="#" onclick="Element.show('debug-info'); $('cpm-right-column').style.minHeight = $('cpm-left-column').offsetHeight + 'px'; return false"><?php _e('Show debug info', 'comicpress-manager') ?></a></strong> (<em><?php _e("this data is sanitized to protect your server's configuration", 'comicpress-manager') ?></em>)
<?php echo cpm_show_debug_info() ?>
</li>
<?php } ?>
</ul>
</div>
<?php
}
/**
* Show the Latest Posts in the Sidebar.

View File

@ -0,0 +1,79 @@
<?php
require_once('PHPUnit/Framework.php');
require_once(realpath(dirname(__FILE__) . '/../classes/ComicPressView.php'));
require_once(realpath(dirname(__FILE__) . '/../classes/views/ComicPressSidebarStandard.php'));
require_once(realpath(dirname(__FILE__) . '/../../mockpress/mockpress.php'));
class ComicPressSidebarStandardTest extends PHPUnit_Framework_TestCase {
function testInitialize() {
global $comicpress_manager;
}
function providerTestThumbnailGenerationInfo() {
return array(
array(
'option-archive' => 1, 'option-rss' => 1,
'scale_method' => true,
'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true),
'thumbs_folder_writable' => array('rss' => true, 'archive' => true),
'result' => array('rss' => true, 'archive' => true)
),
array(
'option-archive' => 1, 'option-rss' => 1,
'scale_method' => false,
'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true),
'thumbs_folder_writable' => array('rss' => true, 'archive' => true),
'result' => array('rss' => array("No scaling software"), 'archive' => array("No scaling software"))
),
array(
'option-archive' => 0, 'option-rss' => 1,
'scale_method' => true,
'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true),
'thumbs_folder_writable' => array('rss' => true, 'archive' => true),
'result' => array('rss' => true, 'archive' => array("Generation disabled"))
),
array(
'option-archive' => 1, 'option-rss' => 1,
'scale_method' => true,
'separate_thumbs_folder_defined' => array('rss' => false, 'archive' => true),
'thumbs_folder_writable' => array('rss' => true, 'archive' => true),
'result' => array('rss' => array("Same as comics folder"), 'archive' => true)
),
array(
'option-archive' => 1, 'option-rss' => 1,
'scale_method' => true,
'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true),
'thumbs_folder_writable' => array('rss' => true, 'archive' => false),
'result' => array('rss' => true, 'archive' => array("Not writable"))
),
);
}
/**
* @dataProvider providerTestThumbnailGenerationInfo
*/
function testThumbnailGenerationInfo($info) {
global $comicpress_manager;
$comicpress_manager = $this->getMock('ComicPressManager', array('breakdown_comic_filename', 'get_subcomic_directory', 'get_cpm_option'));
$comicpress_manager->expects($this->at(2))
->method('get_cpm_option')
->with('cpm-archive-generate-thumbnails')
->will($this->returnValue($info['option-archive']));
$comicpress_manager->expects($this->at(3))
->method('get_cpm_option')
->with('cpm-rss-generate-thumbnails')
->will($this->returnValue($info['option-archive']));
foreach (array('scale_method', 'separate_thumbs_folder_defined', 'thumbs_folder_writable') as $field) {
$comicpress_manager->{$field} = $info['field'];
}
$comicpress_manager->comic_files = array();
$s = new ComicPressSidebarStandard();
$this->assertEquals($info['result'], $s->_get_thumbnail_generation_info());
}
}
?>