Konfigurationsanleitung

SLAED CMS verwendet ein modulares Konfigurationssystem, bei dem jeder Aspekt des Systems durch separate Konfigurationsdateien konfiguriert wird.

Konfigurationsstruktur

Die SLAED CMS-Konfigurationsdateien sind im Verzeichnis config/ organisiert:

config/
├── config_db.php          # Datenbankeinstellungen
├── config_global.php      # Globale Einstellungen
├── config_core.php        # Kerneinstellungen
├── config_security.php    # Sicherheitsparameter
├── config_*.php           # Modul-Konfigurationen
├── cache/                 # Zwischengespeicherte Dateien
└── logs/                  # Protokolldateien

Hauptkonfiguration

Die Hauptdatenbank-Konfiguration ist in config/config_db.php gespeichert:

<?php
if (!defined('FUNC_FILE')) die('Illegal file access');

$confdb = array();
$confdb['host'] = "localhost";              // Datenbank-Host
$confdb['uname'] = "benutzername";          // Datenbank-Benutzername
$confdb['pass'] = "passwort";               // Datenbank-Passwort
$confdb['name'] = "datenbank";              // Datenbankname
$confdb['type'] = "mysqli";                 // Datenbanktyp (mysqli)
$confdb['engine'] = "InnoDB";               // Datenbank-Engine
$confdb['charset'] = "utf8mb4";             // Zeichensatz
$confdb['collate'] = "utf8mb4_unicode_ci";  // Kollation
$confdb['prefix'] = "slaed";                // Tabellenpräfix
$confdb['sync'] = "0";                      // Zeit-Synchronisation
$confdb['mode'] = "0";                      // MySQL-Strikter Modus

$prefix = "slaed";                          // Präfix (Duplikat)
$admin_file = "admin";                      // Admin-Dateiname
?>

Kerneinstellungen

Kerneinstellungen werden in config/config_core.php konfiguriert:

<?php
if (!defined('FUNC_FILE')) die('Illegal file access');

$conf = array(
    // Caching
    'cache_b' => '1',                       // Block-Caching
    'cache_d' => '7',                       // Cache-Tage
    'cache_t' => '3600',                    // Cache-Zeit (Sekunden)
    'cache_css' => '1',                     // CSS-Caching
    'cache_script' => '1',                  // JavaScript-Caching
    
    // Komprimierung
    'css_c' => '1',                         // CSS-Komprimierung
    'css_h' => '0',                         // CSS im Header (inline)
    'css_e' => '0',                         // CSS mit base64-Bildern
    'script_c' => '1',                      // JavaScript-Komprimierung
    'script_h' => '0',                      // JavaScript im Header
    'script_a' => '1',                      // Asynchrones JS-Laden
    'html_compress' => '1',                 // HTML-Komprimierung
    
    // Dateiladen
    'css_f' => 'templates/[theme]/css/,plugins/system/',  // CSS-Dateien
    'script_f' => 'plugins/jquery/jquery.min.js,plugins/system/core.js', // JS-Dateien
    
    // Zusätzliche Einstellungen
    'variables' => '0,1,0',                 // Variablen-Anzeige (Debug)
    'foot_time' => '1',                     // Generierungszeit in Footer
    'foot_queries' => '1',                  // Abfrage-Zähler im Footer
);
?>

Sicherheitseinstellungen

Sicherheitsparameter werden in config/config_security.php konfiguriert:

<?php
if (!defined('FUNC_FILE')) die('Illegal file access');

$confs = array(
    // Allgemeiner Schutz
    'protection' => '1',                    // Schutz aktivieren
    'flood_enable' => '1',                  // Flood-Schutz
    'flood_time' => '30',                   // Aktionsintervall (Sekunden)
    'flood_attempts' => '5',                // Anzahl der Versuche
    
    // Authentifizierung
    'login_attempts' => '5',                // Anmeldeversuche
    'login_ban_time' => '3600',             // Sperrzeit (Sekunden)
    'session_lifetime' => '86400',          // Sitzungslebensdauer
    'remember_time' => '2592000',           // "Angemeldet bleiben"-Zeit
    
    // CAPTCHA
    'captcha_enable' => '1',                // CAPTCHA aktivieren
    'captcha_type' => 'recaptcha3',         // CAPTCHA-Typ
    'recaptcha_site_key' => '',             // reCAPTCHA-Site-Schlüssel
    'recaptcha_secret_key' => '',           // reCAPTCHA-Geheimschlüssel
    'recaptcha_score' => '0.5',             // Mindestpunktzahl für v3
    
    // Angriffsschutz
    'csrf_protection' => '1',               // CSRF-Schutz
    'xss_filter' => '1',                    // XSS-Filter
    'sql_injection_filter' => '1',          // SQL-Injection-Filter
    'file_upload_check' => '1',             // Datei-Upload-Prüfung
    
    // IP-Filterung
    'ip_ban_enable' => '1',                 // IP-Sperre
    'ip_whitelist' => '',                   // IP-Whitelist
    'ip_blacklist' => '',                   // IP-Blacklist
    
    // Protokollierung
    'log_failed_logins' => '1',             // Fehlgeschlagene Anmeldungen protokollieren
    'log_admin_actions' => '1',             // Admin-Aktionen protokollieren
    'log_file_uploads' => '1',              // Datei-Uploads protokollieren
    
    // Zusätzlich
    'password_min_length' => '6',           // Mindest-Passwortlänge
    'password_require_special' => '0',      // Sonderzeichen erforderlich
    'password_require_numbers' => '1',      // Zahlen erforderlich
    'max_upload_size' => '10240',           // Max. Upload-Größe (KB)
);
?>

Upload-Konfiguration

Datei-Upload-Einstellungen werden in config/config_uploads.php konfiguriert:

<?php
if (!defined('FUNC_FILE')) die('Illegal file access');

// Format: 'modul' => 'größe_KB|dateitypen|vorschaubild|benutzerordner|aktiv'
$confup = array(
    // Inhaltsmodule
    'news' => '2048|jpg,jpeg,png,gif|1|0|1',           // Nachrichten
    'pages' => '5120|jpg,jpeg,png,gif,pdf|1|0|1',      // Seiten
    'forum' => '1024|jpg,jpeg,png,gif|1|1|1',          // Forum
    'shop' => '5120|jpg,jpeg,png,gif|1|1|1',           // Shop
    
    // Medieninhalte
    'media' => '10240|jpg,jpeg,png,gif,mp4,avi|1|1|1', // Medien
    'files' => '51200|zip,rar,pdf,doc,docx,xls,xlsx|0|1|1', // Dateien
    'links' => '512|jpg,jpeg,png,gif|1|0|1',           // Links
    
    // Benutzer
    'avatars' => '512|jpg,jpeg,png,gif|1|1|1',         // Avatare
    'account' => '2048|jpg,jpeg,png,gif,pdf|1|1|1',    // Konten
    
    // System
    'content' => '5120|jpg,jpeg,png,gif,pdf|1|0|1',    // Inhalt
    'voting' => '1024|jpg,jpeg,png,gif|1|0|1',         // Abstimmung
);

// Bildverarbeitungseinstellungen
$conf_images = array(
    'quality' => '85',                      // JPEG-Qualität (1-100)
    'thumb_width' => '150',                 // Vorschaubild-Breite
    'thumb_height' => '150',                // Vorschaubild-Höhe
    'thumb_crop' => '1',                    // Auf Größe zuschneiden
    'watermark_enable' => '0',              // Wasserzeichen
    'watermark_file' => 'watermark.png',    // Wasserzeichen-Datei
    'watermark_position' => 'bottom-right', // Wasserzeichen-Position
);
?>

Modul-Konfiguration

Jedes Modul hat seine eigene Konfigurationsdatei. Zum Beispiel die Nachrichten-Modul-Konfiguration in config/config_news.php:

<?php
if (!defined('FUNC_FILE')) die('Illegal file access');

$confn = array(
    'storyhome' => '5',                     // Nachrichten auf Startseite
    'storypage' => '10',                    // Nachrichten pro Seite
    'readmore' => '500',                    // Zeichen für "weiterlesen"
    'anonymous' => '1',                     // Anonyme Kommentare
    'moderation' => '0',                    // Kommentar-Moderation
    'rating' => '1',                        // Nachrichten-Bewertung
    'views' => '1',                         // Ansichtszähler
    'social' => '1',                        // Social-Buttons
    'rss' => '1',                           // RSS-Feed
    'sitemap' => '1',                       // In Sitemap einbeziehen
);
?>

Caching-Konfiguration

Datei-Caching-Konfiguration:

// In config_core.php
$conf = array(
    'cache_enable' => '1',                  // Caching aktivieren
    'cache_lifetime' => '3600',             // Lebensdauer (Sekunden)
    'cache_compress' => '1',                // Cache komprimieren
    'cache_prefix' => 'slaed_',             // Cache-Präfix
);

// Cache-Verzeichnisse
define('CACHE_DIR', BASE_DIR.'/config/cache');
define('CACHE_BLOCKS_DIR', CACHE_DIR.'/blocks');
define('CACHE_PAGES_DIR', CACHE_DIR.'/pages');
define('CACHE_QUERIES_DIR', CACHE_DIR.'/queries');