From 8d8da31fdd926aab7dc5084e62a96af447a9930a Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Wed, 22 Jun 2022 12:47:31 +0100 Subject: [PATCH] Added base template convenience partials for theme system users Included test to cover usage and paths. Closes #894 --- resources/views/layouts/base.blade.php | 2 ++ .../layouts/parts/base-body-end.blade.php | 2 ++ .../layouts/parts/base-body-start.blade.php | 2 ++ tests/ThemeTest.php | 23 ++++++++++++++++++- 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 resources/views/layouts/parts/base-body-end.blade.php create mode 100644 resources/views/layouts/parts/base-body-start.blade.php diff --git a/resources/views/layouts/base.blade.php b/resources/views/layouts/base.blade.php index 1f28e354ce8..c465c5f7ef5 100644 --- a/resources/views/layouts/base.blade.php +++ b/resources/views/layouts/base.blade.php @@ -33,6 +33,7 @@ class="{{ setting()->getForCurrentUser('dark-mode-enabled') ? 'dark-mode ' : '' + @include('layouts.parts.base-body-start') @include('common.skip-to-content') @include('common.notifications') @include('common.header') @@ -53,5 +54,6 @@ class="{{ setting()->getForCurrentUser('dark-mode-enabled') ? 'dark-mode ' : '' @yield('scripts') + @include('layouts.parts.base-body-end') diff --git a/resources/views/layouts/parts/base-body-end.blade.php b/resources/views/layouts/parts/base-body-end.blade.php new file mode 100644 index 00000000000..47119897960 --- /dev/null +++ b/resources/views/layouts/parts/base-body-end.blade.php @@ -0,0 +1,2 @@ +{{-- This is a placeholder template file provided as a --}} +{{-- convenience to users of the visual theme system. --}} \ No newline at end of file diff --git a/resources/views/layouts/parts/base-body-start.blade.php b/resources/views/layouts/parts/base-body-start.blade.php new file mode 100644 index 00000000000..47119897960 --- /dev/null +++ b/resources/views/layouts/parts/base-body-start.blade.php @@ -0,0 +1,2 @@ +{{-- This is a placeholder template file provided as a --}} +{{-- convenience to users of the visual theme system. --}} \ No newline at end of file diff --git a/tests/ThemeTest.php b/tests/ThemeTest.php index cad2369f8be..551f8350f33 100644 --- a/tests/ThemeTest.php +++ b/tests/ThemeTest.php @@ -17,6 +17,7 @@ use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Http; +use Illuminate\Support\Str; use League\CommonMark\ConfigurableEnvironmentInterface; class ThemeTest extends TestCase @@ -254,6 +255,23 @@ public function test_register_command_allows_provided_command_to_be_usable_via_a $this->assertStringContainsString('Command ran!', $output); } + public function test_body_start_and_end_template_files_can_be_used() + { + $bodyStartStr = 'barry-fought-against-the-panther'; + $bodyEndStr = 'barry-lost-his-fight-with-grace'; + + $this->usingThemeFolder(function(string $folder) use ($bodyStartStr, $bodyEndStr) { + $viewDir = theme_path('layouts/parts'); + mkdir($viewDir, 0777, true); + file_put_contents($viewDir . '/base-body-start.blade.php', $bodyStartStr); + file_put_contents($viewDir . '/base-body-end.blade.php', $bodyEndStr); + + $resp = $this->asEditor()->get('/'); + $resp->assertSee($bodyStartStr); + $resp->assertSee($bodyEndStr); + }); + } + protected function usingThemeFolder(callable $callback) { // Create a folder and configure a theme @@ -262,7 +280,10 @@ protected function usingThemeFolder(callable $callback) $themeFolderPath = theme_path(''); File::makeDirectory($themeFolderPath); - call_user_func($callback, $themeFolderName); + // Run provided callback with theme env option set + $this->runWithEnv('APP_THEME', $themeFolderName, function() use ($callback, $themeFolderName) { + call_user_func($callback, $themeFolderName); + }); // Cleanup the custom theme folder we created File::deleteDirectory($themeFolderPath);