diff --git a/core/control/SilverStripeNavigatorItem.php b/core/control/SilverStripeNavigatorItem.php index 27f8acda3..2ef73a15f 100644 --- a/core/control/SilverStripeNavigatorItem.php +++ b/core/control/SilverStripeNavigatorItem.php @@ -94,8 +94,11 @@ class SilverStripeNavigatorItem_StageLink extends SilverStripeNavigatorItem { if(Versioned::current_stage() == 'Stage' && !(ClassInfo::exists('SiteTreeFutureState') && SiteTreeFutureState::get_future_datetime())) { return "". _t('ContentController.DRAFTSITE', 'Draft Site') .""; } else { - $thisPage = $page->AbsoluteLink(); - return "". _t('ContentController.DRAFTSITE', 'Draft Site') .""; + $draftPage = Versioned::get_one_by_stage('SiteTree', 'Stage', '"SiteTree"."ID" = ' . $page->ID); + if($draftPage) { + $pageLink = $draftPage->AbsoluteLink(); + return "". _t('ContentController.DRAFTSITE', 'Draft Site') .""; + } } } @@ -125,8 +128,8 @@ class SilverStripeNavigatorItem_LiveLink extends SilverStripeNavigatorItem { } else { $livePage = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' . $page->ID); if($livePage) { - $thisPage = $livePage->AbsoluteLink(); - return "". _t('ContentController.PUBLISHEDSITE', 'Published Site') .""; + $pageLink = $livePage->AbsoluteLink(); + return "". _t('ContentController.PUBLISHEDSITE', 'Published Site') .""; } } } @@ -154,13 +157,21 @@ class SilverStripeNavigatorItem_ArchiveLink extends SilverStripeNavigatorItem { function getHTML($page) { if(Versioned::current_archived_date()) { return "". _t('ContentController.ARCHIVEDSITE', 'Archived Site') .""; + } else { + // Display the archive link if the page currently displayed in the CMS is other version than live and draft + $currentDraft = Versioned::get_one_by_stage('SiteTree', 'Draft', '"SiteTree"."ID" = ' . $page->ID); + $currentLive = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' . $page->ID); + if ($currentDraft && $page->Version!=$currentDraft->Version && $page->Version!=$currentLive->Version) { + $pageLink = $page->AbsoluteLink(); + return "LastEdited}\" class=\"newWindow\" target=\"site\" style=\"left : -3px;\">". _t('ContentController.ARCHIVEDSITE', 'Archived Site') .""; + } } } function getMessage($page) { if($date = Versioned::current_archived_date()) { - $dateObj = Object::create('Datetime', $date, null); - + $dateObj = Object::create('Datetime'); + $dateObj->setValue($date); return "
". _t('ContentController.ARCHIVEDSITEFROM', 'Archived site from') ."
" . $dateObj->Nice() . "
"; } }