mirror of
https://github.com/jonom/silverstripe-betternavigator.git
synced 2024-10-22 14:05:51 +02:00
parent
7c78a7e2ed
commit
a050d926de
@ -23,11 +23,13 @@ class BetterNavigator extends DataExtension {
|
||||
* @return string
|
||||
*/
|
||||
public function BetterNavigator() {
|
||||
// Make sure this is a page
|
||||
if (!($this->owner && $this->owner->dataRecord && $this->owner->dataRecord instanceof SiteTree && $this->owner->dataRecord->ID > 0)) return false;
|
||||
|
||||
// Only show navigator to appropriate users
|
||||
$isDev = Director::isDev();
|
||||
|
||||
if($isDev || Permission::check('CMS_ACCESS_CMSMain') || Permission::check('VIEW_DRAFT_CONTENT')) {
|
||||
if($this->owner && $this->owner->dataRecord && $this->owner->dataRecord instanceof SiteTree) {
|
||||
|
||||
$canViewDraft = (Permission::check('VIEW_DRAFT_CONTENT') || Permission::check('CMS_ACCESS_CMSMain'));
|
||||
if($isDev || $canViewDraft) {
|
||||
// Get SilverStripeNavigator links & stage info (CMS/Stage/Live/Archive)
|
||||
$nav = array();
|
||||
$viewing = '';
|
||||
@ -46,6 +48,8 @@ class BetterNavigator extends DataExtension {
|
||||
if ($name == 'ArchiveLink') $viewing = 'Archived';
|
||||
}
|
||||
}
|
||||
// Only show edit link if user has permission to edit this page
|
||||
$editLink = (($this->owner->dataRecord->canEdit() && Permission::check('CMS_ACCESS_CMSMain')) || $isDev) ? $nav['CMSLink']['Link'] : false;
|
||||
|
||||
// Is the logged in member nominated as a developer?
|
||||
$member = Member::currentUser();
|
||||
@ -60,6 +64,7 @@ class BetterNavigator extends DataExtension {
|
||||
'Viewing' => $viewing, // What we're viewing doesn't necessarily align with the active Stage
|
||||
'LoginLink' => Config::inst()->get('Security', 'login_url') . $backURL,
|
||||
'LogoutLink' => 'Security/logout' . $backURL,
|
||||
'EditLink' => $editLink,
|
||||
'Mode' => Director::get_environment_type(),
|
||||
'IsDeveloper' => $isDeveloper
|
||||
));
|
||||
@ -69,7 +74,6 @@ class BetterNavigator extends DataExtension {
|
||||
$page = $this->owner->customise(array('BetterNavigator' => $bNData));
|
||||
return $page->renderWith('BetterNavigator');
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,3 @@
|
||||
<% if $ID > 0 %><%-- Only show on 'real' pages --%>
|
||||
|
||||
<% require javascript("betternavigator/javascript/betternavigator.js") %>
|
||||
<% require css("betternavigator/css/betternavigator.css") %>
|
||||
|
||||
@ -19,7 +17,7 @@
|
||||
|
||||
<% with $BetterNavigator %>
|
||||
<% if $ArchiveLink.Active %>
|
||||
<a href="$CMSLink.Link" target="_blank"><span class="bn-icon-edit"></span>Restore</a>
|
||||
<% if $EditLink %><a href="$EditLink" target="_blank"><span class="bn-icon-edit"></span>Restore</a><% end_if %>
|
||||
<% else %>
|
||||
<% if not $LiveLink.Active %>
|
||||
<% if $LiveLink.Link %>
|
||||
@ -35,7 +33,7 @@
|
||||
<span class="bn-disabled"><span class="bn-icon-view"></span>Deleted from draft site</span>
|
||||
<% end_if %>
|
||||
<% end_if %>
|
||||
<a href="$CMSLink.Link" target="_blank"><span class="bn-icon-edit"></span>Edit in CMS</a>
|
||||
<% if $EditLink %><a href="$EditLink" target="_blank"><span class="bn-icon-edit"></span>Edit in CMS</a><% end_if %>
|
||||
<% end_if %>
|
||||
|
||||
<% if $Member %>
|
||||
@ -90,4 +88,3 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<% end_if %>
|
||||
|
Loading…
Reference in New Issue
Block a user