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
28 lines
1004 B
JavaScript
28 lines
1004 B
JavaScript
document.addEventListener('DOMContentLoaded', function () {
|
|
// Sidebar Toggle (Mobile)
|
|
var toggle = document.getElementById('sidebarToggle');
|
|
var sidebar = document.querySelector('.admin-sidebar');
|
|
if (toggle && sidebar) {
|
|
toggle.addEventListener('click', function () {
|
|
sidebar.classList.toggle('open');
|
|
});
|
|
// Sidebar schließen bei Klick außerhalb
|
|
document.addEventListener('click', function (e) {
|
|
if (sidebar.classList.contains('open') &&
|
|
!sidebar.contains(e.target) &&
|
|
e.target !== toggle) {
|
|
sidebar.classList.remove('open');
|
|
}
|
|
});
|
|
}
|
|
|
|
// Flash-Nachrichten automatisch ausblenden
|
|
document.querySelectorAll('.flash').forEach(function (el) {
|
|
setTimeout(function () {
|
|
el.style.transition = 'opacity 0.5s';
|
|
el.style.opacity = '0';
|
|
setTimeout(function () { el.remove(); }, 500);
|
|
}, 5000);
|
|
});
|
|
});
|