From 65c1ed1fbbff9bdd9280d8225c59aa1fa438a7b9 Mon Sep 17 00:00:00 2001 From: John Bintz Date: Thu, 18 Jun 2009 07:26:27 -0400 Subject: [PATCH] work on cleaning up sidebar rendering --- classes/views/ComicPressSidebarStandard.php | 32 +++++++- .../ComicPressSidebarStandard/sidebar.inc | 79 +++++++++---------- test/ComicPressSidebarStandardTest.php | 48 ++++++++++- 3 files changed, 110 insertions(+), 49 deletions(-) diff --git a/classes/views/ComicPressSidebarStandard.php b/classes/views/ComicPressSidebarStandard.php index 56214ab..74a3e2c 100644 --- a/classes/views/ComicPressSidebarStandard.php +++ b/classes/views/ComicPressSidebarStandard.php @@ -31,14 +31,38 @@ class ComicPressSidebarStandard extends ComicPressView { } } - function render() { - global $comicpress_manager; - + function init() { $this->_get_subdir_path(); $this->_all_comic_dates_ok(); $this->_get_thumbnail_generation_info(); + } + + function render() { + global $comicpress_manager, $comicpress_manager_admin; - import($this->_partial_path("sidebar")); + foreach (array( + 'comiccat' => 'comic_category', + 'blogcat' => 'blog_category' + ) as $param => $field) { + $result = false; + if (isset($comicpress_manager->properties[$param])) { + $check = $comicpress_manager->properties[$param]; + if (!is_array($check)) { $check = array($check); } + + $result = array(); + foreach ($check as $cat_id) { + $category = get_category($cat_id); + if (!is_wp_error($category)) { + $result[] = $category; + } else { + $result = false; break; + } + } + } + $this->{$field} = $result; + } + + include($this->_partial_path("sidebar")); } function _get_thumbnail_generation_info() { diff --git a/classes/views/ComicPressSidebarStandard/sidebar.inc b/classes/views/ComicPressSidebarStandard/sidebar.inc index 4c61630..e0448e0 100644 --- a/classes/views/ComicPressSidebarStandard/sidebar.inc +++ b/classes/views/ComicPressSidebarStandard/sidebar.inc @@ -29,53 +29,48 @@ __('Archive folder:', 'comicpress-manager'), 'rss' => __('RSS feed folder:', 'comicpress-manager')) as $type => $title) { ?> -
  • properties["${type}_comic_folder"] . $subdir_path; ?> - 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]) - ) { ?> - () - 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'); +
  • + + properties["${type}_comic_folder"] . $subdir_path; ?> + (thumbnail_generation[$type] === true) { + echo ""; + _e('generating', 'comicpress-manager'); + echo ""; } 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'); } + echo 'thumbnail_generation[$type]) . '">'; + _e('not generating', 'comicpress-manager'); + echo ""; } - ?> - (">not generating) - + ?>)
  • -
  • - properties['comiccat']) && count($comicpress_manager->properties['comiccat']) != 1) { - _e("Comic categories:", 'comicpress-manager'); - } else { - _e("Comic category:", 'comicpress-manager'); - } - ?> - properties['comiccat'])) { ?> - - - category_info['comiccat']['name'] ?> - properties['comiccat']) ?> - -
  • -
  • - category_info['blogcat']['name'] ?> properties['blogcat']) ?>
  • + __("Comic categories:", 'comicpress-manager'), + 'blog_category' => __("Blog categories:", 'comicpress-manager')) + as $type => $title) { ?> +
  • + + {$type} === false) { ?> + Not defined! + + + properties['comiccat'])) { ?> + + + category_info['comiccat']['name'] ?> + properties['comiccat']) ?> + + +
  • + +
  • @@ -103,7 +98,7 @@
  • () - + show_debug_info() ?>
  • diff --git a/test/ComicPressSidebarStandardTest.php b/test/ComicPressSidebarStandardTest.php index 388c27f..5327c03 100644 --- a/test/ComicPressSidebarStandardTest.php +++ b/test/ComicPressSidebarStandardTest.php @@ -113,10 +113,52 @@ class ComicPressSidebarStandardTest extends PHPUnit_Framework_TestCase { $this->assertEquals($info['result'], $result); } - function testRender() { - global $comicpress_manager; + function testRenderCategoryIssues() { + global $comicpress_manager, $comicpress_manager_admin; - // + $s = new ComicPressSidebarStandard(); + $s->thumbnail_generation = array('rss' => true, 'archive' => array("test")); + + $comicpress_manager_admin = $this->getMock('ComicPressManagerAdmin', array('show_debug_info')); + + ob_start(); + $s->render(); + $source = ob_get_clean(); + + $this->assertTrue(($xml = _to_xml($source, true)) !== false); + $this->assertFalse($s->comic_category); + $this->assertFalse($s->blog_category); + + foreach (array( + '//em[text()="Not defined!"]/../strong[text()="Comic categories:"]' => true, + '//em[text()="Not defined!"]/../strong[text()="Blog categories:"]' => true, + ) as $xpath => $value) { + $this->assertTrue(_xpath_test($xml, $xpath, $value), $xpath); + } + } + + function testRenderGenerationStates() { + global $comicpress_manager, $comicpress_manager_admin; + + add_category(1, (object)array('name' => 'Comics')); + add_category(2, (object)array('name' => 'Blog')); + + $s = new ComicPressSidebarStandard(); + $s->thumbnail_generation = array('rss' => true, 'archive' => array("test")); + + $comicpress_manager_admin = $this->getMock('ComicPressManagerAdmin', array('show_debug_info')); + + ob_start(); + $s->render(); + $source = ob_get_clean(); + + $this->assertTrue(($xml = _to_xml($source, true)) !== false); + foreach (array( + ) as $xpath => $value) { + $this->assertTrue(_xpath_test($xml, $xpath, $value), $xpath); + } + + $this->markTestIncomplete(); } }