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
23 lines
1.0 KiB
PHP
23 lines
1.0 KiB
PHP
<article class="article-card">
|
|
<?php if (!empty($article['cover_image'])): ?>
|
|
<a href="/artikel/<?= e($article['slug']) ?>" class="card-image">
|
|
<img src="<?= e($article['cover_image']) ?>" alt="<?= e($article['title']) ?>" loading="lazy">
|
|
</a>
|
|
<?php endif; ?>
|
|
<div class="card-body">
|
|
<?php if (!empty($article['category_name'])): ?>
|
|
<a href="/kategorie/<?= e($article['category_slug']) ?>" class="card-category"><?= e($article['category_name']) ?></a>
|
|
<?php endif; ?>
|
|
<h2 class="card-title">
|
|
<a href="/artikel/<?= e($article['slug']) ?>"><?= e($article['title']) ?></a>
|
|
</h2>
|
|
<p class="card-excerpt">
|
|
<?= e($article['excerpt'] ?: excerpt($article['body'])) ?>
|
|
</p>
|
|
<div class="card-meta">
|
|
<time><?= format_date($article['published_at'] ?? $article['created_at']) ?></time>
|
|
<a href="/artikel/<?= e($article['slug']) ?>" class="read-more">Weiterlesen →</a>
|
|
</div>
|
|
</div>
|
|
</article>
|