mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-02 22:28:31 +02:00
Merge pull request #1934 from open-sausages/pulls/4.0/better-pages-breadcrumbs
BUG Fix inconsistent breadcrumbs in CMS section
This commit is contained in:
commit
af0176d0f4
@ -920,18 +920,54 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
|
|||||||
return $this->getsubtree($this->getRequest());
|
return $this->getsubtree($this->getRequest());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get "back" url for breadcrumbs
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getBreadcrumbsBackLink()
|
||||||
|
{
|
||||||
|
$breadcrumbs = $this->Breadcrumbs();
|
||||||
|
if ($breadcrumbs->count() < 2) {
|
||||||
|
return $this->LinkPages();
|
||||||
|
}
|
||||||
|
// Get second from end breadcrumb
|
||||||
|
return $breadcrumbs
|
||||||
|
->offsetGet($breadcrumbs->count() - 2)
|
||||||
|
->Link;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param bool $unlinked
|
* @param bool $unlinked
|
||||||
* @return ArrayList
|
* @return ArrayList
|
||||||
*/
|
*/
|
||||||
public function Breadcrumbs($unlinked = false)
|
public function Breadcrumbs($unlinked = false)
|
||||||
{
|
{
|
||||||
$items = parent::Breadcrumbs($unlinked);
|
$items = new ArrayList();
|
||||||
|
|
||||||
if ($items->count() > 1) {
|
// Check if we are editing a page
|
||||||
// Specific to the SiteTree admin section, we never show the cms section and current
|
/** @var SiteTree $record */
|
||||||
// page in the same breadcrumbs block.
|
$record = $this->currentPage();
|
||||||
$items->shift();
|
if (!$record) {
|
||||||
|
$items->push(new ArrayData(array(
|
||||||
|
'Title' => CMSPagesController::menu_title(),
|
||||||
|
'Link' => ($unlinked) ? false : $this->LinkPages()
|
||||||
|
)));
|
||||||
|
return $items;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add all ancestors
|
||||||
|
$ancestors = $record->getAncestors();
|
||||||
|
$ancestors = new ArrayList(array_reverse($ancestors->toArray()));
|
||||||
|
$ancestors->push($record);
|
||||||
|
/** @var SiteTree $ancestor */
|
||||||
|
foreach ($ancestors as $ancestor) {
|
||||||
|
$items->push(new ArrayData(array(
|
||||||
|
'Title' => $ancestor->getMenuTitle(),
|
||||||
|
'Link' => ($unlinked)
|
||||||
|
? false
|
||||||
|
: $ancestor->CMSEditLink()
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $items;
|
return $items;
|
||||||
|
@ -418,13 +418,6 @@ class CMSPageHistoryController extends CMSMain
|
|||||||
return $form;
|
return $form;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function Breadcrumbs($unlinked = false)
|
|
||||||
{
|
|
||||||
$crumbs = parent::Breadcrumbs($unlinked);
|
|
||||||
$crumbs[0]->Title = _t('SilverStripe\\CMS\\Controllers\\CMSPagesController.MENUTITLE', 'Pages');
|
|
||||||
return $crumbs;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Replace all data fields with HTML readonly fields to display diff
|
* Replace all data fields with HTML readonly fields to display diff
|
||||||
*
|
*
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace SilverStripe\CMS\Controllers;
|
namespace SilverStripe\CMS\Controllers;
|
||||||
|
|
||||||
|
use SilverStripe\View\ArrayData;
|
||||||
|
|
||||||
class CMSPageSettingsController extends CMSMain
|
class CMSPageSettingsController extends CMSMain
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -20,13 +22,6 @@ class CMSPageSettingsController extends CMSMain
|
|||||||
return parent::getEditForm($id, ($record) ? $record->getSettingsFields() : null);
|
return parent::getEditForm($id, ($record) ? $record->getSettingsFields() : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function Breadcrumbs($unlinked = false)
|
|
||||||
{
|
|
||||||
$crumbs = parent::Breadcrumbs($unlinked);
|
|
||||||
$crumbs[0]->Title = _t('SilverStripe\\CMS\\Controllers\\CMSPagesController.MENUTITLE', 'Pages');
|
|
||||||
return $crumbs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getTabIdentifier()
|
public function getTabIdentifier()
|
||||||
{
|
{
|
||||||
return 'settings';
|
return 'settings';
|
||||||
|
@ -5,24 +5,24 @@
|
|||||||
<div class="fill-height flexbox-area-grow">
|
<div class="fill-height flexbox-area-grow">
|
||||||
<div class="cms-content-header north">
|
<div class="cms-content-header north">
|
||||||
<div class="cms-content-header-nav fill-width">
|
<div class="cms-content-header-nav fill-width">
|
||||||
<a href="/admin/pages" class="btn btn-secondary btn--no-text font-icon-left-open-big hidden-lg-up toolbar__back-button"></a>
|
<a href="$BreadcrumbsBackLink" class="btn btn-secondary btn--no-text font-icon-left-open-big hidden-lg-up toolbar__back-button"></a>
|
||||||
<% include SilverStripe\\Admin\\CMSBreadcrumbs %>
|
<% include SilverStripe\\Admin\\CMSBreadcrumbs %>
|
||||||
|
|
||||||
<div class="cms-content-header-tabs cms-tabset">
|
<div class="cms-content-header-tabs cms-tabset">
|
||||||
<ul class="cms-tabset-nav-primary nav nav-tabs">
|
<ul class="cms-tabset-nav-primary nav nav-tabs">
|
||||||
<li class="nav-item content-treeview<% if $TabIdentifier == 'edit' %> ui-tabs-active<% end_if %>">
|
<li class="nav-item content-treeview<% if $TabIdentifier == 'edit' %> ui-tabs-active<% end_if %>">
|
||||||
<a href="$LinkPageEdit" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageEdit">
|
<a href="$LinkPageEdit" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageEdit">
|
||||||
<%t SilverStripe\CMS\Controllers\CMSMain.TabContent 'Content' %>
|
<%t SilverStripe\\CMS\\Controllers\\CMSMain.TabContent 'Content' %>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item content-listview<% if $TabIdentifier == 'settings' %> ui-tabs-active<% end_if %>">
|
<li class="nav-item content-listview<% if $TabIdentifier == 'settings' %> ui-tabs-active<% end_if %>">
|
||||||
<a href="$LinkPageSettings" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageSettings">
|
<a href="$LinkPageSettings" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageSettings">
|
||||||
<%t SilverStripe\CMS\Controllers\CMSMain.TabSettings 'Settings' %>
|
<%t SilverStripe\\CMS\\Controllers\\CMSMain.TabSettings 'Settings' %>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item content-listview<% if $TabIdentifier == 'history' %> ui-tabs-active<% end_if %>">
|
<li class="nav-item content-listview<% if $TabIdentifier == 'history' %> ui-tabs-active<% end_if %>">
|
||||||
<a href="$LinkPageHistory" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageHistory">
|
<a href="$LinkPageHistory" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageHistory">
|
||||||
<%t SilverStripe\CMS\Controllers\CMSMain.TabHistory 'History' %>
|
<%t SilverStripe\\CMS\\Controllers\\CMSMain.TabHistory 'History' %>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
Loading…
Reference in New Issue
Block a user