Vollständiges, schlankes PHP/SQLite-CMS für IT-, KI- und Gaming-Inhalte: - Core: DB-Singleton, Auth mit Passwort-Hashing, Session-Cookies, CSRF-Schutz, Login-Rate-Limit, Bild-Upload mit serverseitiger Validierung - Admin: Dashboard, Artikel/Seiten-Verwaltung mit Quill WYSIWYG-Editor, Kategorien, Navigation (Drag & Drop), Medienbibliothek, Profil - Frontend: Responsive Dark-Theme, Artikel-Grid, Kategorie-Filter, Archiv, Paginierung, SEO-Meta-Tags - Sicherheit: Prepared Statements, HTML-Sanitizer, .htaccess-Schutz für sensible Verzeichnisse, PHP-Ausführungsschutz im Upload-Ordner - Installation: install.php erstellt DB-Schema und Admin-Account https://claude.ai/code/session_01Xsg4j2t4S9goMuWVpF3ezG
26 lines
802 B
PHP
26 lines
802 B
PHP
<section class="hero">
|
|
<h1><?= e(SITE_TITLE) ?></h1>
|
|
<p class="hero-subtitle"><?= e(SITE_DESCRIPTION) ?></p>
|
|
</section>
|
|
|
|
<?php if (!empty($categories)): ?>
|
|
<div class="category-bar">
|
|
<?php foreach ($categories as $cat): ?>
|
|
<a href="/kategorie/<?= e($cat['slug']) ?>" class="category-tag"><?= e($cat['name']) ?></a>
|
|
<?php endforeach; ?>
|
|
<a href="/archiv" class="category-tag">Archiv</a>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<?php if (empty($articles)): ?>
|
|
<p class="empty-state">Noch keine Artikel veröffentlicht.</p>
|
|
<?php else: ?>
|
|
<div class="article-grid">
|
|
<?php foreach ($articles as $article): ?>
|
|
<?php include __DIR__ . '/_article-card.php'; ?>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
|
|
<?php include __DIR__ . '/_pagination.php'; ?>
|
|
<?php endif; ?>
|