BUG SilverStripeNavigator shows wrong message.

The message was always 'Published Site'.
Also there were no 'active' class on links.
This commit is contained in:
uniun 2013-03-18 15:57:20 +02:00
parent 0f8d7a0aa4
commit 5c933b40e5

View File

@ -82,7 +82,7 @@ class SilverStripeNavigator extends ViewableData {
$text = $item->getHTML(); $text = $item->getHTML();
if($text) $html .= $text; if($text) $html .= $text;
$newMessage = $item->getMessage(); $newMessage = $item->getMessage();
if($newMessage) $message = $newMessage; if($newMessage && $item->isActive()) $message = $newMessage;
} }
return array( return array(
@ -217,7 +217,7 @@ class SilverStripeNavigatorItem_StageLink extends SilverStripeNavigatorItem {
$draftPage = $this->getDraftPage(); $draftPage = $this->getDraftPage();
if($draftPage) { if($draftPage) {
$this->recordLink = Controller::join_links($draftPage->AbsoluteLink(), "?stage=Stage"); $this->recordLink = Controller::join_links($draftPage->AbsoluteLink(), "?stage=Stage");
return "<a href=\"$this->recordLink\">". _t('ContentController.DRAFTSITE', 'Draft Site') ."</a>"; return "<a ". ($this->isActive() ? 'class="current" ' : '') ."href=\"$this->recordLink\">". _t('ContentController.DRAFTSITE', 'Draft Site') ."</a>";
} }
} }
@ -265,7 +265,7 @@ class SilverStripeNavigatorItem_LiveLink extends SilverStripeNavigatorItem {
$livePage = $this->getLivePage(); $livePage = $this->getLivePage();
if($livePage) { if($livePage) {
$this->recordLink = Controller::join_links($livePage->AbsoluteLink(), "?stage=Live"); $this->recordLink = Controller::join_links($livePage->AbsoluteLink(), "?stage=Live");
return "<a href=\"$this->recordLink\">". _t('ContentController.PUBLISHEDSITE', 'Published Site') ."</a>"; return "<a ". ($this->isActive() ? 'class="current" ' : '') ."href=\"$this->recordLink\">". _t('ContentController.PUBLISHEDSITE', 'Published Site') ."</a>";
} }
} }
@ -286,7 +286,7 @@ class SilverStripeNavigatorItem_LiveLink extends SilverStripeNavigatorItem {
} }
public function isActive() { public function isActive() {
return (!Versioned::current_stage() || Versioned::current_stage() == 'Live'); return ((!Versioned::current_stage() || Versioned::current_stage() == 'Live') && !Versioned::current_archived_date());
} }
protected function getLivePage() { protected function getLivePage() {
@ -308,13 +308,12 @@ class SilverStripeNavigatorItem_ArchiveLink extends SilverStripeNavigatorItem {
public function getHTML() { public function getHTML() {
$this->recordLink = $this->record->AbsoluteLink(); $this->recordLink = $this->record->AbsoluteLink();
return "<a class=\"ss-ui-button\" href=\"$this->recordLink?archiveDate={$this->record->LastEdited}\" target=\"_blank\">". _t('ContentController.ARCHIVEDSITE', 'Preview version') ."</a>"; return "<a class=\"ss-ui-button". ($this->isActive() ? ' current' : '') ."\" href=\"$this->recordLink?archiveDate={$this->record->LastEdited}\" target=\"_blank\">". _t('ContentController.ARCHIVEDSITE', 'Preview version') ."</a>";
} }
public function getMessage() { public function getMessage() {
if($date = Versioned::current_archived_date()) { if($date = Versioned::current_archived_date()) {
$dateObj = Datetime::create(); $dateObj = DBField::create_field('Datetime', $date);
$dateObj->setValue($date);
return "<div id=\"SilverStripeNavigatorMessage\" title=\"". _t('ContentControl.NOTEWONTBESHOWN', 'Note: this message will not be shown to your visitors') ."\">". _t('ContentController.ARCHIVEDSITEFROM', 'Archived site from') ."<br>" . $dateObj->Nice() . "</div>"; return "<div id=\"SilverStripeNavigatorMessage\" title=\"". _t('ContentControl.NOTEWONTBESHOWN', 'Note: this message will not be shown to your visitors') ."\">". _t('ContentController.ARCHIVEDSITEFROM', 'Archived site from') ."<br>" . $dateObj->Nice() . "</div>";
} }
} }