From 3e8754e50df000d03b9bed1b9012db2a69407cd8 Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Wed, 10 Dec 2008 06:58:28 +0000 Subject: [PATCH] MINOR Tidy up of ArchiveWidget ENHANCEMENT Use of instanceof instead of is_a() so BlogHolder and BlogEntry subclasses still work properly --- code/ArchiveWidget.php | 68 ++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/code/ArchiveWidget.php b/code/ArchiveWidget.php index 4c77715..be17cac 100644 --- a/code/ArchiveWidget.php +++ b/code/ArchiveWidget.php @@ -1,78 +1,88 @@ "Varchar" + 'DisplayMode' => 'Varchar' ); static $defaults = array( - "DisplayMode" => "month" + 'DisplayMode' => 'month' ); - static $title = "Browse by Date"; - static $cmsTitle = "Blog Archive"; - static $description = "Show a list of months or years in which there are blog posts, and provide links to them."; + static $title = 'Browse by Date'; + + static $cmsTitle = 'Blog Archive'; + + static $description = 'Show a list of months or years in which there are blog posts, and provide links to them.'; function getBlogHolder() { $page = Director::currentPage(); - if($page->is_a("BlogHolder")) { + if($page instanceof BlogHolder) { return $page; - } else if($page->is_a("BlogEntry") && $page->getParent()->is_a("BlogHolder")) { + } elseif(($page instanceof BlogEntry) && ($page->getParent() instanceof BlogHolder)) { return $page->getParent(); } else { - return DataObject::get_one("BlogHolder"); + return DataObject::get_one('BlogHolder'); } } - function getCMSFields() { + function getCMSFields() { return new FieldSet( - new OptionsetField("DisplayMode",_t('ArchiveWidget.DispBY', "Display by"),array("month"=>_t('ArchiveWidget.MONTH',"month"),"year"=>_t('ArchiveWidget.YEAR', "year"))) + new OptionsetField( + 'DisplayMode', + _t('ArchiveWidget.DispBY', 'Display by'), + array( + 'month' => _t('ArchiveWidget.MONTH', 'month'), + 'year' => _t('ArchiveWidget.YEAR', 'year') + ) + ) ); } function Dates() { - Requirements::css("blog/css/archivewidget.css"); + Requirements::themedCSS('archivewidget'); + $results = new DataObjectSet(); $blogHolder = $this->getBlogHolder(); $id = $blogHolder->ID; - if($this->DisplayMode == "month"){ + if($this->DisplayMode == 'month') { $sqlResults = DB::query("SELECT DISTINCT MONTH(`Date`) AS `Month`, YEAR(`Date`) AS `Year` FROM `SiteTree` NATURAL JOIN `BlogEntry` WHERE `ParentID` = $id ORDER BY `Date` DESC"); - }else{ + } else { $sqlResults = DB::query("SELECT DISTINCT YEAR(`Date`) AS `Year` FROM `SiteTree` NATURAL JOIN `BlogEntry` WHERE `ParentID` = $id ORDER BY `Date` DESC"); } - + if(!$sqlResults) return new DataObjectSet(); foreach($sqlResults as $sqlResult) { - $date = new Date("Date"); - - - - $month = ($this->DisplayMode == "month") ? (int)$sqlResult['Month'] : 1; + $date = new Date('Date'); + $month = ($this->DisplayMode == 'month') ? (int)$sqlResult['Month'] : 1; $date->setValue(array( - "Day" => 1, - "Month" => $month, - "Year" => (int)$sqlResult['Year'] + 'Day' => 1, + 'Month' => $month, + 'Year' => (int) $sqlResult['Year'] )); - if($this->DisplayMode == "month"){ + if($this->DisplayMode == 'month') { $link = $blogHolder->Link() . $sqlResult['Year']. '/' . sprintf("%'02d", $sqlResult['Month']); - } - else{ + } else { $link = $blogHolder->Link() . $sqlResult['Year']; } $results->push(new ArrayData(array( - "Date" => $date, - "Link" => $link + 'Date' => $date, + 'Link' => $link ))); } return $results; } } - ?> \ No newline at end of file