From 1a83597ba5f418b199a16d84b18deb85af8a6fa3 Mon Sep 17 00:00:00 2001 From: John Bintz Date: Tue, 27 Oct 2009 07:03:22 -0400 Subject: [PATCH] add support for 2 digit years, fixes FS#53 --- comicpress_manager_library.php | 22 ++++++++++++---------- test_comicpress_manager.php | 1 + 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/comicpress_manager_library.php b/comicpress_manager_library.php index 2575c9c..55e8202 100644 --- a/comicpress_manager_library.php +++ b/comicpress_manager_library.php @@ -176,20 +176,22 @@ function cpm_breakdown_comic_filename($filename, $allow_override = false) { if (isset($_POST['upload-date-format']) && !empty($_POST['upload-date-format'])) { $pattern = $_POST['upload-date-format']; } } - $pattern = cpm_transform_date_string($pattern, array("Y" => '[0-9]{4,4}', - "m" => '[0-9]{2,2}', - "d" => '[0-9]{2,2}')); + foreach (array('[0-9]{4}', '[0-9]{2}') as $year_pattern) { + $new_pattern = cpm_transform_date_string($pattern, array("Y" => $year_pattern, + "m" => '[0-9]{2}', + "d" => '[0-9]{2}')); - if (@preg_match("#^(${pattern})(.*)\.[^\.]+$#", $filename, $matches) > 0) { - list($all, $date, $title) = $matches; + if (@preg_match("#^(${new_pattern})(.*)\.[^\.]+$#", $filename, $matches) > 0) { + list($all, $date, $title) = $matches; - if (strtotime($date) === false) { return false; } - $converted_title = ucwords(trim(preg_replace('/[\-\_]/', ' ', $title))); + if (strtotime($date) === false) { return false; } + $converted_title = ucwords(trim(preg_replace('/[\-\_]/', ' ', $title))); + $date = date($pattern, strtotime($date)); - return compact('date', 'title', 'converted_title'); - } else { - return false; + return compact('date', 'title', 'converted_title'); + } } + return false; } /** diff --git a/test_comicpress_manager.php b/test_comicpress_manager.php index 90b73f6..40ccc37 100644 --- a/test_comicpress_manager.php +++ b/test_comicpress_manager.php @@ -55,6 +55,7 @@ class TestComicPressManagerLibrary extends UnitTestCase { array("${test_date}-Test.jpg", array("title" => "-Test", "date" => $test_date, "converted_title" => "Test")), array("${test_date}-test.jpg", array("title" => "-test", "date" => $test_date, "converted_title" => "Test")), array("1900-01-01.jpg", false), + array("08-01-01.jpg", array("title" => "", "date" => $test_date, "converted_title" => "")), ) as $test) { list($filename, $expected_value) = $test; $this->assertEqual($expected_value, cpm_breakdown_comic_filename($filename, true));