diff --git a/resources/views/layouts/base.blade.php b/resources/views/layouts/base.blade.php index 1f28e354c..c465c5f7e 100644 --- a/resources/views/layouts/base.blade.php +++ b/resources/views/layouts/base.blade.php @@ -33,6 +33,7 @@ + @include('layouts.parts.base-body-start') @include('common.skip-to-content') @include('common.notifications') @include('common.header') @@ -53,5 +54,6 @@ @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 000000000..471198979 --- /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 000000000..471198979 --- /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 cad2369f8..551f8350f 100644 --- a/tests/ThemeTest.php +++ b/tests/ThemeTest.php @@ -17,6 +17,7 @@ use Illuminate\Http\Response; 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 @@ class ThemeTest extends TestCase $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 @@ class ThemeTest extends TestCase $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);