Compare commits

...

2 Commits

Author SHA1 Message Date
Chris Penny f9304b3441 Move templates into JonoM namespaces 2023-02-27 20:44:46 -08:00
Chris Penny 71a3ce1327 Add support for Silverstripe 5 2023-02-27 20:44:46 -08:00
7 changed files with 26 additions and 13 deletions

View File

@ -17,13 +17,17 @@ This module is intended to replicate and expand upon the functionality provided
## Requirements
Silverstripe 4.0 (3.1+ through previous releases)
Silverstripe 5.0 (4.0+ and 3.1+ through previous releases)
## Installation
**Composer / Packagist ([best practice](http://doc.silverstripe.org/framework/en/trunk/installation/composer))**
Add "jonom/silverstripe-betternavigator" to your requirements.
```
composer require jonom/silverstripe-betternavigator
```
**Manually**
Download, place the folder in your project root, rename it to 'betternavigator' (if applicable) and run a dev/build?flush=1.

View File

@ -16,7 +16,7 @@
}
],
"require": {
"silverstripe/framework": "^4.0"
"silverstripe/framework": "^5"
},
"extra": {
"installer-name": "betternavigator",

View File

@ -2,7 +2,7 @@
namespace JonoM\BetterNavigator\Extension;
use SilverStripe\CMS\Controllers\SilverStripeNavigator;
use SilverStripe\Admin\Navigator\SilverStripeNavigator;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Control\Controller;
use SilverStripe\Control\Director;
@ -23,6 +23,11 @@ class BetterNavigatorExtension extends DataExtension
private static $better_navigator_edit_permission = 'CMS_ACCESS_CMSMain';
private static $better_navigator_edit_permission_mode = 'any';
/**
* Extensions are singleton, so any cached results need to use a unique key
*/
private $shouldDisplay = [];
/**
* @param $request
* @param $action
@ -152,7 +157,7 @@ class BetterNavigatorExtension extends DataExtension
// Merge with page data, send to template and render
$navigator = new ArrayData($bNData);
return $this->owner->customise($navigator)->renderWith('BetterNavigator\\BetterNavigator');
return $this->owner->customise($navigator)->renderWith('JonoM\\BetterNavigator\\BetterNavigator');
}
/**
@ -161,13 +166,16 @@ class BetterNavigatorExtension extends DataExtension
*/
private function shouldDisplay()
{
if ($this->owner->getField('_betterNavigatorShouldDisplay') !== null) {
return $this->owner->getField('_betterNavigatorShouldDisplay');
$key = $this->owner->getUniqueKey();
if (array_key_exists($key, $this->shouldDisplay)) {
return $this->shouldDisplay[$key];
}
// Make sure this is a page
if (!$this->owner->showBetterNavigator()) {
$this->owner->setField('_betterNavigatorShouldDisplay', false);
$this->shouldDisplay[$key] = false;
return false;
}
@ -176,7 +184,8 @@ class BetterNavigatorExtension extends DataExtension
$canViewDraft = (Permission::check('VIEW_DRAFT_CONTENT') || Permission::check('CMS_ACCESS_CMSMain'));
$result = ($isDev || $canViewDraft);
$this->owner->setField('_betterNavigatorShouldDisplay', $result);
$this->shouldDisplay[$key] = $result;
return $result;
}

View File

@ -39,7 +39,7 @@
</div>
<% include BetterNavigator\BetterNavigatorExtraContent %>
<% include JonoM\BetterNavigator\BetterNavigatorExtraContent %>
<% if $Mode == 'dev' || $IsDeveloper %>
@ -62,18 +62,18 @@
<span class="bn-icon-flush"></span>
<%t JonoM\BetterNavigator.FLUSH_CACHE_LABEL 'Flush caches' %>
</a>
<a href="{$AbsoluteBaseURL}dev/build/?flush=1"
<a href="/dev/build/?flush=1"
target="_blank"
title="<%t JonoM\BetterNavigator.BUILD_DATABASE_TITLE 'Build database and flush caches (excludes template caches pre SS-3.1.7)' %>"
>
<span class="bn-icon-db"></span>
<%t JonoM\BetterNavigator.BUILD_DATABASE_LABEL 'Build database' %>
</a>
<a href="{$AbsoluteBaseURL}dev/" target="_blank"><span class="bn-icon-tools"></span><%t JonoM\BetterNavigator.DEV_MENU_LABEL 'Dev menu' %></a>
<a href="/dev/" target="_blank"><span class="bn-icon-tools"></span><%t JonoM\BetterNavigator.DEV_MENU_LABEL 'Dev menu' %></a>
</div>
<% include BetterNavigator\BetterNavigatorExtraDevTools %>
<% include JonoM\BetterNavigator\BetterNavigatorExtraDevTools %>
<% end_if %>
@ -128,7 +128,7 @@
</div>
<% include BetterNavigator\BetterNavigatorExtraDebugging %>
<% include JonoM\BetterNavigator\BetterNavigatorExtraDebugging %>
<% end_if %>