button Add a features section with icons and descriptions Include a stats section with live data Add a responsive design with modern CSS features
55 lines
2.1 KiB
PHP
55 lines
2.1 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="<?= htmlspecialchars($currentLang ?? 'en') ?>">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title><?= htmlspecialchars($pageTitle ?? 'FolderWeb') ?></title>
|
|
<?php if (!empty($metaDescription)): ?>
|
|
<meta name="description" content="<?= htmlspecialchars($metaDescription) ?>">
|
|
<?php endif; ?>
|
|
<?php if (!empty($socialImageUrl)): ?>
|
|
<meta property="og:image" content="<?= htmlspecialchars($socialImageUrl) ?>">
|
|
<?php endif; ?>
|
|
<link rel="stylesheet" href="/app/default/styles/styles.css">
|
|
<?php if (!empty($pageCssUrl)): ?>
|
|
<link rel="stylesheet" href="<?= htmlspecialchars($pageCssUrl) ?>?v=<?= htmlspecialchars($pageCssHash ?? '') ?>">
|
|
<?php endif; ?>
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<nav>
|
|
<a href="<?= htmlspecialchars($langPrefix ?? '') ?>/"><?= htmlspecialchars($homeLabel ?? ($translations['home'] ?? 'Home')) ?></a>
|
|
<?php if (!empty($navigation)): ?>
|
|
<?php foreach ($navigation as $item): ?>
|
|
<a href="<?= htmlspecialchars($item['url']) ?>"><?= htmlspecialchars($item['title']) ?></a>
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
</nav>
|
|
<?php if (!empty($languageUrls) && count($languageUrls) > 1): ?>
|
|
<nav class="language-switcher" aria-label="Language">
|
|
<?php foreach ($languageUrls as $lang => $url): ?>
|
|
<a href="<?= htmlspecialchars($url) ?>" <?= ($lang === $currentLang) ? 'aria-current="true"' : '' ?>><?= htmlspecialchars(strtoupper($lang)) ?></a>
|
|
<?php endforeach; ?>
|
|
</nav>
|
|
<?php endif; ?>
|
|
</header>
|
|
|
|
<main>
|
|
<?= $content ?>
|
|
</main>
|
|
|
|
<footer>
|
|
<nav>
|
|
<a href="https://mastodon.social/@example" rel="me">Mastodon</a>
|
|
<a href="https://bsky.app/profile/example.bsky.social">Bluesky</a>
|
|
</nav>
|
|
<p>
|
|
<?php if (!empty($translations['footer_handcoded'])): ?>
|
|
<?= htmlspecialchars($translations['footer_handcoded']) ?> <?= number_format((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2) ?><?= htmlspecialchars($translations['footer_page_time'] ?? 'ms') ?>
|
|
<?php else: ?>
|
|
Generated in <?= number_format((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2) ?>ms
|
|
<?php endif; ?>
|
|
</p>
|
|
</footer>
|
|
</body>
|
|
</html>
|