2020-08-18 16:31:28 +00:00
|
|
|
<?= helper('page') ?>
|
2020-06-05 13:54:40 +00:00
|
|
|
<!DOCTYPE html>
|
2021-09-08 15:51:33 +00:00
|
|
|
<html lang="<?= service('request')
|
|
|
|
->getLocale() ?>">
|
2020-06-05 13:54:40 +00:00
|
|
|
|
|
|
|
<head>
|
2020-08-04 11:25:22 +00:00
|
|
|
<meta charset="UTF-8"/>
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
2023-04-13 11:45:03 +00:00
|
|
|
<link rel="icon" type="image/x-icon" href="<?= get_site_icon_url('ico') ?>" />
|
|
|
|
<link rel="apple-touch-icon" href="<?= get_site_icon_url('180') ?>">
|
2021-10-26 15:54:56 +00:00
|
|
|
<link rel="manifest" href="<?= route_to('webmanifest') ?>">
|
2021-11-23 11:54:34 +00:00
|
|
|
<meta name="theme-color" content="<?= \App\Controllers\WebmanifestController::THEME_COLORS[service('settings')->get('App.theme')]['theme'] ?>">
|
|
|
|
<script>
|
|
|
|
// Check that service workers are supported
|
|
|
|
if ('serviceWorker' in navigator) {
|
|
|
|
// Use the window load event to keep the page load performant
|
|
|
|
window.addEventListener('load', () => {
|
|
|
|
navigator.serviceWorker.register('/sw.js');
|
|
|
|
});
|
|
|
|
}
|
|
|
|
</script>
|
2021-10-26 15:54:56 +00:00
|
|
|
|
2021-11-12 16:31:35 +00:00
|
|
|
<?= $metatags ?>
|
2021-08-09 10:28:16 +00:00
|
|
|
|
2022-01-20 11:26:18 +00:00
|
|
|
<link rel='stylesheet' type='text/css' href='<?= route_to('themes-colors-css') ?>' />
|
2021-09-08 15:51:33 +00:00
|
|
|
<?= service('vite')
|
|
|
|
->asset('styles/index.css', 'css') ?>
|
2021-10-13 15:43:40 +00:00
|
|
|
<?= service('vite')
|
|
|
|
->asset('js/app.ts', 'js') ?>
|
2021-09-08 15:51:33 +00:00
|
|
|
<?= service('vite')
|
|
|
|
->asset('js/audio-player.ts', 'js') ?>
|
2020-06-05 13:54:40 +00:00
|
|
|
</head>
|
|
|
|
|
2021-11-08 16:52:20 +00:00
|
|
|
<body class="flex flex-col min-h-screen mx-auto bg-base theme-<?= service('settings')
|
|
|
|
->get('App.theme') ?>">
|
2022-10-15 11:22:08 +00:00
|
|
|
<?php if (auth()->loggedIn()): ?>
|
2021-10-04 15:56:43 +00:00
|
|
|
<?= $this->include('_admin_navbar') ?>
|
|
|
|
<?php endif; ?>
|
|
|
|
|
2021-11-08 16:52:20 +00:00
|
|
|
<header class="py-8 border-b bg-elevated border-subtle">
|
2021-10-21 13:12:38 +00:00
|
|
|
<div class="container flex flex-col items-start px-2 py-4 mx-auto">
|
2021-09-17 15:50:55 +00:00
|
|
|
<a href="<?= route_to('home') ?>"
|
2024-05-09 17:55:41 +00:00
|
|
|
class="inline-flex items-center mb-2 text-sm"><?= icon(
|
2024-04-26 17:57:25 +00:00
|
|
|
'arrow-left-line',
|
2024-07-02 21:49:59 +01:00
|
|
|
[
|
|
|
|
'class' => 'mr-2',
|
|
|
|
],
|
2023-02-22 16:29:45 +00:00
|
|
|
) . lang('Page.back_to_home') ?></a>
|
2024-05-09 17:55:41 +00:00
|
|
|
<x-Heading tagName="h1" size="large"><?= esc($page->title) ?></x-Heading>
|
2020-08-04 11:25:22 +00:00
|
|
|
</div>
|
|
|
|
</header>
|
2021-11-05 14:36:34 +00:00
|
|
|
<main class="container flex-1 px-4 py-6 mx-auto">
|
2020-08-04 11:25:22 +00:00
|
|
|
<?= $this->renderSection('content') ?>
|
|
|
|
</main>
|
2021-11-05 14:36:34 +00:00
|
|
|
<footer class="container flex justify-between px-2 py-4 mx-auto text-sm text-right border-t border-subtle">
|
2023-07-31 09:35:16 +00:00
|
|
|
<?= render_page_links() ?>
|
2021-09-17 15:50:55 +00:00
|
|
|
<small><?= lang('Common.powered_by', [
|
2024-05-09 17:55:41 +00:00
|
|
|
'castopod' => '<a class="underline hover:no-underline" href="https://castopod.org/" target="_blank" rel="noreferrer noopener">Castopod</a>',
|
2023-02-22 16:29:45 +00:00
|
|
|
], null, false) ?></small>
|
2021-09-17 15:50:55 +00:00
|
|
|
</footer>
|
2020-07-10 12:20:25 +00:00
|
|
|
</body>
|