mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-11-22 20:56:55 +08:00
Added base template convenience partials for theme system users
Included test to cover usage and paths. Closes #894
This commit is contained in:
parent
0d9b5a9d90
commit
8d8da31fdd
|
@ -33,6 +33,7 @@
|
||||||
</head>
|
</head>
|
||||||
<body class="@yield('body-class')">
|
<body class="@yield('body-class')">
|
||||||
|
|
||||||
|
@include('layouts.parts.base-body-start')
|
||||||
@include('common.skip-to-content')
|
@include('common.skip-to-content')
|
||||||
@include('common.notifications')
|
@include('common.notifications')
|
||||||
@include('common.header')
|
@include('common.header')
|
||||||
|
@ -53,5 +54,6 @@
|
||||||
<script src="{{ versioned_asset('dist/app.js') }}" nonce="{{ $cspNonce }}"></script>
|
<script src="{{ versioned_asset('dist/app.js') }}" nonce="{{ $cspNonce }}"></script>
|
||||||
@yield('scripts')
|
@yield('scripts')
|
||||||
|
|
||||||
|
@include('layouts.parts.base-body-end')
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
2
resources/views/layouts/parts/base-body-end.blade.php
Normal file
2
resources/views/layouts/parts/base-body-end.blade.php
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
{{-- This is a placeholder template file provided as a --}}
|
||||||
|
{{-- convenience to users of the visual theme system. --}}
|
2
resources/views/layouts/parts/base-body-start.blade.php
Normal file
2
resources/views/layouts/parts/base-body-start.blade.php
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
{{-- This is a placeholder template file provided as a --}}
|
||||||
|
{{-- convenience to users of the visual theme system. --}}
|
|
@ -17,6 +17,7 @@ use Illuminate\Http\Response;
|
||||||
use Illuminate\Support\Facades\Artisan;
|
use Illuminate\Support\Facades\Artisan;
|
||||||
use Illuminate\Support\Facades\File;
|
use Illuminate\Support\Facades\File;
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use League\CommonMark\ConfigurableEnvironmentInterface;
|
use League\CommonMark\ConfigurableEnvironmentInterface;
|
||||||
|
|
||||||
class ThemeTest extends TestCase
|
class ThemeTest extends TestCase
|
||||||
|
@ -254,6 +255,23 @@ class ThemeTest extends TestCase
|
||||||
$this->assertStringContainsString('Command ran!', $output);
|
$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)
|
protected function usingThemeFolder(callable $callback)
|
||||||
{
|
{
|
||||||
// Create a folder and configure a theme
|
// Create a folder and configure a theme
|
||||||
|
@ -262,7 +280,10 @@ class ThemeTest extends TestCase
|
||||||
$themeFolderPath = theme_path('');
|
$themeFolderPath = theme_path('');
|
||||||
File::makeDirectory($themeFolderPath);
|
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
|
// Cleanup the custom theme folder we created
|
||||||
File::deleteDirectory($themeFolderPath);
|
File::deleteDirectory($themeFolderPath);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user