From 4f727869ac7d431c9deeaee4380007c9d9d831ac Mon Sep 17 00:00:00 2001 From: Guy Sartorelli Date: Thu, 17 Oct 2024 13:13:17 +1300 Subject: [PATCH] API Update code to reflect changes to LeftAndMain --- _config/extensions.yml | 4 ---- src/Extensions/LeftAndMainSubsites.php | 12 ++++++------ tests/php/SiteTreeSubsitesTest.php | 4 ++-- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/_config/extensions.yml b/_config/extensions.yml index 8d4b0a5..36ece43 100644 --- a/_config/extensions.yml +++ b/_config/extensions.yml @@ -51,10 +51,6 @@ SilverStripe\CMS\Controllers\CMSMain: - SilverStripe\Subsites\Extensions\HintsCacheKeyExtension - SilverStripe\Subsites\Extensions\SubsiteMenuExtension -SilverStripe\CMS\Controllers\CMSPagesController: - extensions: - - SilverStripe\Subsites\Extensions\SubsiteMenuExtension - SilverStripe\Subsites\Admin\SubsiteAdmin: extensions: - SilverStripe\Subsites\Extensions\SubsiteMenuExtension diff --git a/src/Extensions/LeftAndMainSubsites.php b/src/Extensions/LeftAndMainSubsites.php index c6a1b74..8e2b860 100644 --- a/src/Extensions/LeftAndMainSubsites.php +++ b/src/Extensions/LeftAndMainSubsites.php @@ -6,7 +6,7 @@ use SilverStripe\Admin\AdminRootController; use SilverStripe\Admin\CMSMenu; use SilverStripe\Admin\CMSProfileController; use SilverStripe\Admin\LeftAndMain; -use SilverStripe\CMS\Controllers\CMSPagesController; +use SilverStripe\CMS\Controllers\CMSMain; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\CMS\Controllers\CMSPageEditController; use SilverStripe\Control\Controller; @@ -280,7 +280,7 @@ class LeftAndMainSubsites extends Extension // sessionNamespace() is protected - see for info $override = $this->owner->config()->get('session_namespace'); $sessionNamespace = $override ? $override : get_class($this->owner); - $session->clear($sessionNamespace . '.currentPage'); + $session->clear($sessionNamespace . '.currentRecord'); } // Context: Subsite ID has already been set to the state via InitStateMiddleware @@ -293,13 +293,13 @@ class LeftAndMainSubsites extends Extension $currentController = Controller::curr(); if ($currentController instanceof CMSPageEditController) { /** @var SiteTree $page */ - $page = $currentController->currentPage(); + $page = $currentController->currentRecord(); // If the page exists but doesn't belong to the requested subsite, redirect to admin/pages which // will show a list of the requested subsite's pages $currentSubsiteId = $request->getVar('SubsiteID'); if ($page && (int) $page->SubsiteID !== (int) $currentSubsiteId) { - return $this->owner->redirect(CMSPagesController::singleton()->Link()); + return $this->owner->redirect(CMSMain::singleton()->Link()); } // Page does belong to the current subsite, so remove the query string parameter and refresh the page @@ -314,7 +314,7 @@ class LeftAndMainSubsites extends Extension // Automatically redirect the session to appropriate subsite when requesting a record. // This is needed to properly initialise the session in situations where someone opens the CMS via a link. - $record = $this->owner->currentPage(); + $record = $this->owner->currentRecord(); if ($record && isset($record->SubsiteID, $this->owner->urlParams['ID']) && is_numeric($record->SubsiteID) @@ -379,7 +379,7 @@ class LeftAndMainSubsites extends Extension return; } - protected function augmentNewSiteTreeItem(&$item) + protected function updateNewItem(&$item) { $request = Controller::curr()->getRequest(); $item->SubsiteID = $request->postVar('SubsiteID') ?: SubsiteState::singleton()->getSubsiteId(); diff --git a/tests/php/SiteTreeSubsitesTest.php b/tests/php/SiteTreeSubsitesTest.php index adb6511..b0adca5 100644 --- a/tests/php/SiteTreeSubsitesTest.php +++ b/tests/php/SiteTreeSubsitesTest.php @@ -287,7 +287,7 @@ class SiteTreeSubsitesTest extends BaseSubsiteTest Subsite::changeSubsite($s1); $cmsmain = CMSMain::create(); - $hints = json_decode($cmsmain->SiteTreeHints() ?? '', true); + $hints = json_decode($cmsmain->TreeHints() ?? '', true); $classes = $hints['Root']['disallowedChildren']; $this->assertContains(ErrorPage::class, $classes); $this->assertContains(TestClassA::class, $classes); @@ -298,7 +298,7 @@ class SiteTreeSubsitesTest extends BaseSubsiteTest if ($cmsmain->hasMethod('getHintsCache')) { $cmsmain->getHintsCache()->clear(); } - $hints = json_decode($cmsmain->SiteTreeHints() ?? '', true); + $hints = json_decode($cmsmain->TreeHints() ?? '', true); $classes = $hints['Root']['disallowedChildren']; $this->assertNotContains(ErrorPage::class, $classes);