Publiczna aplikacja fdmtech.pl: renderer CMS, formularz audytu, szablony i logotypy

This commit is contained in:
FDMTech
2026-10-09 15:22:48 +02:00
commit 48b544c6b3
32 changed files with 1914 additions and 0 deletions
+86
View File
@@ -0,0 +1,86 @@
<?php
declare(strict_types=1);
// FDMTech layout — własność projektanta. Pełny dokument, nawigacja i kontakt z $site.
// Wszystkie teksty, atrybuty, meta i URL przez $e. Surowe: wyłącznie $content i $cmsStyleTag.
$nav = is_array($site['navigation'] ?? null) ? $site['navigation'] : [];
$currentPath = ($page['slug'] ?? '') === 'home' || ($page['slug'] ?? '') === '' ? '/' : '/' . ($page['slug'] ?? '');
$isError = ($statusCode ?? 200) >= 400;
?><!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?= $e($meta['title'] ?? 'FDMTech') ?></title>
<meta name="description" content="<?= $e($meta['description'] ?? '') ?>">
<meta name="robots" content="<?= $e($meta['robots'] ?? 'noindex, nofollow') ?>">
<?php if (($meta['canonical'] ?? '') !== '') : ?>
<link rel="canonical" href="<?= $e($meta['canonical']) ?>">
<?php endif; ?>
<link rel="stylesheet" href="/assets/css/site.css">
<?= $cmsStyleTag ?>
<link rel="icon" type="image/svg+xml" href="/assets/img/logo-pulse.svg">
</head>
<body class="<?= $isError ? 'is-error' : 'is-ok' ?>"<?= !empty($isDemo) ? ' data-demo="true"' : '' ?>>
<a class="skip-link" href="#cms-content">Przejdź do treści</a>
<header class="site-header on-dark">
<div class="header-inner">
<a class="brand" href="/" aria-label="FDMTech — strona główna">
<svg width="40" height="40" viewBox="0 0 56 56" role="img" aria-hidden="true" focusable="false">
<rect x="2" y="2" width="52" height="52" rx="10" fill="#0B2025" stroke="#D7F171" stroke-width="2"/>
<path d="M10 34 H22 L27 18 L33 44 L38 28 H46" fill="none" stroke="#D7F171" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="46" cy="34" r="2.6" fill="#D7F171"/>
</svg>
<span class="brand-name"><?= $e($site['name'] ?? 'FDMTech') ?></span>
</a>
<button class="nav-toggle" type="button" data-nav-toggle aria-expanded="false" aria-controls="site-nav">Menu</button>
<nav class="site-nav" id="site-nav" data-open="false" aria-label="Nawigacja główna">
<ul>
<?php foreach ($nav as $item) : ?>
<?php
$label = (string) ($item['label'] ?? '');
$url = (string) ($item['url'] ?? '');
if ($label === '' || $url === '') continue;
$active = $url === $currentPath ? ' aria-current="page"' : '';
?>
<li><a href="<?= $e($url) ?>"<?= $active ?>><?= $e($label) ?></a></li>
<?php endforeach; ?>
</ul>
</nav>
</div>
</header>
<div class="nav-scrim" data-nav-scrim hidden></div>
<?= $content ?>
<footer class="site-footer on-dark">
<div class="footer-inner">
<div>
<h2><?= $e($site['name'] ?? 'FDMTech') ?></h2>
<address>
FDMTech Bartosz Pulchny<br>
Krakowska 67/1, 71-017 Szczecin<br>
NIP 852-251-80-36<br>
tel. <a href="tel:+48533873555">533 873 555</a><?php if (($site['contact_phone'] ?? '') !== '') : ?><br>Kontakt z serwisu: <?= $e($site['contact_phone']) ?><?php endif; ?><?php if (($site['contact_email'] ?? '') !== '') : ?><br>E-mail z serwisu: <a href="mailto:<?= $e($site['contact_email']) ?>"><?= $e($site['contact_email']) ?></a><?php endif; ?>
</address>
</div>
<nav aria-label="Nawigacja w stopce">
<ul>
<?php foreach ($nav as $item) : ?>
<?php
$label = (string) ($item['label'] ?? '');
$url = (string) ($item['url'] ?? '');
if ($label === '' || $url === '') continue;
?>
<li><a href="<?= $e($url) ?>"><?= $e($label) ?></a></li>
<?php endforeach; ?>
</ul>
</nav>
</div>
<div class="footer-base">
<span>© <span data-year>2026</span> <?= $e($site['name'] ?? 'FDMTech') ?>. Właściciel serwisu: FDMTech Bartosz Pulchny.</span>
<span>BlackBox Sensory to nazwa produktu FDMTech.</span>
</div>
</footer>
<script src="/assets/js/site.js" nonce="<?= $e($nonce ?? '') ?>" defer></script>
</body>
</html>