From 4522830ef89e0bcf918ad59ab95f72739f7a2260 Mon Sep 17 00:00:00 2001 From: John Clarke Date: Thu, 5 May 2011 10:59:10 +0200 Subject: [PATCH] Support for legacy installations for the date based blog entry listing --- code/BlogTree.php | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/code/BlogTree.php b/code/BlogTree.php index 30d2ce4..f8e0d03 100644 --- a/code/BlogTree.php +++ b/code/BlogTree.php @@ -162,9 +162,27 @@ class BlogTree extends Page { } if($date) { - if(strpos($date, '-')) { - $year = (int) substr($date, 0, strpos($date, '-')); - $month = (int) substr($date, strpos($date, '-') + 1); + /** + * Some systems still use the / seperator for date presentation + * In order to cater for them, I have implemented this quick way of using either one based on scenario + * @author JA Clarke + * @since 2011/05/05 SAST + */ + if( strpos($date, '-') ) $seperator = '-'; + elseif( strpos($date, '/') ) $seperator = '/'; + + if(isset($seperator) && !empty($seperator)) { + /** + * This is a better implementation of getting the $year and $month fields + * substr() is fine, but it is major overhead + * The 2 in the explode argument will tell it to only create 2 elements + * i.e. in this instance the $year and $month fields respectively + * @author JA Clarke + * @since 2011/05/05 SAST + */ + list($year,$month) = explode( $seperator, $date, 2); + $year = (int)$year; + $month = (int)$month; if($year && $month) { if(method_exists(DB::getConn(), 'formattedDatetimeClause')) {