Files
breadcrumb-the-shire/templates/default.phtml

100 lines
4.1 KiB
PHTML
Raw Normal View History

2026-02-04 23:31:53 +01:00
<?php
use MintyPHP\Buffer;
2026-03-06 00:44:52 +01:00
use MintyPHP\Http\RequestContext;
use MintyPHP\Service\Settings\SettingsSessionGateway;
2026-03-06 00:44:52 +01:00
use MintyPHP\Session;
2026-02-04 23:31:53 +01:00
$defaultTitle = appTitle();
$user = $_SESSION['user'] ?? [];
2026-02-11 19:28:12 +01:00
$theme = currentTheme();
2026-02-04 23:31:53 +01:00
$primaryVars = appPrimaryCssVars();
2026-03-06 00:44:52 +01:00
$csrfKey = Session::$csrfSessionKey;
$csrfToken = (string) ($_SESSION[$csrfKey] ?? '');
$isLoggedIn = !empty($user['id']);
$sessionIdleSeconds = 0;
if ($isLoggedIn) {
$sessionIdleSeconds = app(SettingsSessionGateway::class)->getSessionIdleTimeoutSeconds();
}
2026-03-06 00:44:52 +01:00
$telemetryEnabled = frontendTelemetryEnabled();
$telemetrySampleRate = frontendTelemetrySampleRate();
$telemetryAllowedEvents = implode(',', frontendTelemetryAllowedEvents());
$telemetryUrl = lurl('admin/frontend-telemetry/ingest');
$pageRequestId = RequestContext::id();
2026-03-04 15:56:58 +01:00
$viewAuth = is_array($viewAuth ?? null) ? $viewAuth : [];
$viewAuth['layout'] = is_array($viewAuth['layout'] ?? null) ? $viewAuth['layout'] : [];
2026-02-11 19:28:12 +01:00
$pageTitle = $defaultTitle;
ob_start();
Buffer::get('title');
$bufferTitle = trim((string) ob_get_clean());
if ($bufferTitle !== '') {
$pageTitle = $bufferTitle . ' - ' . $defaultTitle;
2026-02-04 23:31:53 +01:00
}
?>
<!DOCTYPE html>
2026-03-06 00:44:52 +01:00
<html
data-theme="<?php e($theme); ?>"
data-contrast="normal"
data-asset-base="<?php e(asset('')); ?>"
data-request-id="<?php e($pageRequestId); ?>"
data-telemetry-url="<?php e($telemetryUrl); ?>"
data-telemetry-enabled="<?php e($telemetryEnabled ? '1' : '0'); ?>"
data-telemetry-sample-rate="<?php e((string) $telemetrySampleRate); ?>"
data-telemetry-allowed-events="<?php e($telemetryAllowedEvents); ?>"
data-telemetry-csrf-key="<?php e($csrfKey); ?>"
data-telemetry-csrf-token="<?php e($csrfToken); ?>"
<?php if ($isLoggedIn && $sessionIdleSeconds > 0): ?>
data-session-idle-seconds="<?php e((string) $sessionIdleSeconds); ?>"
data-session-ping-url="<?php e(lurl('admin/session-ping/data')); ?>"
data-session-logout-url="<?php e(lurl('logout')); ?>"
data-session-csrf-key="<?php e($csrfKey); ?>"
data-session-csrf-token="<?php e($csrfToken); ?>"
<?php endif; ?>
2026-03-06 00:44:52 +01:00
class="no-js"
<?php if ($primaryVars !== ''): ?>style="<?php e($primaryVars); ?>" <?php endif; ?>
>
2026-02-04 23:31:53 +01:00
<head>
2026-03-05 08:26:51 +01:00
<script src="<?php e(assetVersion('js/app-boot.js')); ?>"></script>
2026-02-04 23:31:53 +01:00
<base href="<?php e(localeBase()); ?>">
2026-02-11 19:28:12 +01:00
<title><?php e($pageTitle); ?></title>
2026-02-04 23:31:53 +01:00
<meta property="og:site_name" content="<?php e($defaultTitle); ?>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" sizes="32x32" href="<?php e(appFaviconUrl('favicon-32x32.png')); ?>">
<link rel="icon" type="image/png" sizes="16x16" href="<?php e(appFaviconUrl('favicon-16x16.png')); ?>">
<link rel="apple-touch-icon" href="<?php e(appFaviconUrl('apple-touch-icon.png')); ?>">
<link rel="manifest" href="<?php e(asset('favicon/site.webmanifest')); ?>">
<?php renderTemplateStyles('default'); ?>
<?php renderPageStyles(); ?>
2026-02-04 23:31:53 +01:00
</head>
<body>
2026-03-05 12:51:53 +01:00
<a class="app-skip-link" href="#app-main-content"><?php e(t('Skip to main content')); ?></a>
2026-02-04 23:31:53 +01:00
<div class="app-container">
<?php require __DIR__ . '/partials/app-main-aside-icon-bar.phtml'; ?>
<?php require __DIR__ . '/partials/app-main-aside.phtml'; ?>
2026-02-04 23:31:53 +01:00
<div class="app-main">
<main>
<?php require __DIR__ . '/partials/app-topbar.phtml'; ?>
2026-03-05 12:51:53 +01:00
<div id="app-main-content" class="app-main-content" tabindex="-1">
2026-02-04 23:31:53 +01:00
<?php require __DIR__ . '/partials/app-flash.phtml'; ?>
<?php Buffer::get('html'); ?>
</div>
</main>
<?php require __DIR__ . '/partials/app-footer.phtml'; ?>
</div>
</div>
2026-03-05 08:26:51 +01:00
<script src="<?php e(assetVersion('vendor/fslightbox/fslightbox.js')); ?>"></script>
2026-03-06 00:44:52 +01:00
<?php require __DIR__ . '/partials/app-confirm-dialog.phtml'; ?>
<?php if ($isLoggedIn && $sessionIdleSeconds > 0): ?>
<?php require __DIR__ . '/partials/app-session-warning-dialog.phtml'; ?>
<script type="module" src="<?php e(assetVersion('js/components/app-session-warning.js')); ?>"></script>
<?php endif; ?>
2026-02-11 19:28:12 +01:00
<script type="module" src="<?php e(assetVersion('js/app-init.js')); ?>"></script>
2026-02-04 23:31:53 +01:00
</body>
2026-03-04 15:56:58 +01:00
</html>