From 0ebaaf336b9493e1708debc17f8e3dfc81e7a277 Mon Sep 17 00:00:00 2001 From: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com> Date: Thu, 31 Oct 2024 10:48:23 +1300 Subject: [PATCH] ENH Update code to reflect changes in template layer (#1833) --- .../GridFieldDetailFormPreviewExtension.php | 3 +-- code/LeftAndMain.php | 25 +++++++++---------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/code/Forms/GridFieldDetailFormPreviewExtension.php b/code/Forms/GridFieldDetailFormPreviewExtension.php index 68d87c346..1ae028bd0 100644 --- a/code/Forms/GridFieldDetailFormPreviewExtension.php +++ b/code/Forms/GridFieldDetailFormPreviewExtension.php @@ -35,7 +35,6 @@ private function getSilverStripeNavigator(): DBHTMLText { $navigator = SilverStripeNavigator::create($this->owner->getRecord()); $templates = SSViewer::get_templates_by_class(LeftAndMain::class, '_SilverStripeNavigator', LeftAndMain::class); - $renderWith = SSViewer::chooseTemplate($templates); - return $navigator->renderWith($renderWith); + return $navigator->renderWith($templates); } } diff --git a/code/LeftAndMain.php b/code/LeftAndMain.php index 19a97d3fc..d502509fe 100644 --- a/code/LeftAndMain.php +++ b/code/LeftAndMain.php @@ -901,16 +901,12 @@ public function MenuCurrentItem() } /** - * Return appropriate template(s) for this class, with the given suffix using + * Return appropriate template candidates for this class, with the given suffix using * {@link SSViewer::get_templates_by_class()} - * - * @param string $suffix - * @return string|array */ - public function getTemplatesWithSuffix($suffix) + public function getTemplatesWithSuffix(string $suffix): array { - $templates = SSViewer::get_templates_by_class(get_class($this), $suffix, __CLASS__); - return SSViewer::chooseTemplate($templates); + return SSViewer::get_templates_by_class(get_class($this), $suffix, __CLASS__); } public function Content() @@ -927,7 +923,8 @@ public function PreviewPanel() { $template = $this->getTemplatesWithSuffix('_PreviewPanel'); // Only render sections with preview panel - if ($template) { + $engine = $this->getTemplateEngine(); + if ($engine->hasTemplate($template)) { return $this->renderWith($template); } return null; @@ -1286,7 +1283,7 @@ public function Modals() /** * Renders a panel containing tools which apply to all displayed * "content" (mostly through {@link EditForm()}), for example a tree navigation or a filter panel. - * Auto-detects applicable templates by naming convention: "_Tools.ss", + * Auto-detects applicable templates by naming convention: "_Tools", * and takes the most specific template (see {@link getTemplatesWithSuffix()}). * To explicitly disable the panel in the subclass, simply create a more specific, empty template. * @@ -1295,8 +1292,9 @@ public function Modals() public function Tools() { $templates = $this->getTemplatesWithSuffix('_Tools'); - if ($templates) { - $viewer = SSViewer::create($templates); + $engine = $this->getTemplateEngine(); + if ($engine->hasTemplate($templates)) { + $viewer = SSViewer::create($templates, $this->getTemplateEngine()); return $viewer->process($this); } else { return false; @@ -1317,8 +1315,9 @@ public function Tools() public function EditFormTools() { $templates = $this->getTemplatesWithSuffix('_EditFormTools'); - if ($templates) { - $viewer = SSViewer::create($templates); + $engine = $this->getTemplateEngine(); + if ($engine->hasTemplate($templates)) { + $viewer = SSViewer::create($templates, $this->getTemplateEngine()); return $viewer->process($this); } else { return false;