Журнал изменений
Всего: 1347 Доступных коммитов |
Отфильтровано: 1347 Коммиты |
Страница: 133 из 135
27.11.2025
Modernize: Replace FILTER_REQUIRE_ARRAY with getVar() bracket notation
- admins.php: 2 occurrences (admins_add, admins_save)
- comments.php: 1 occurrence (comm_del)
- blocks.php: 2 occurrences (blocks_add_save, blocks_change) Changed pattern: filter_input(INPUT_POST, 'field', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY) ?? [] → getVar('post', 'field[]', 'num') ?: [] Simplified array processing: is_array($arr) ? implode(',', array_map('intval', $arr)) : '' → $arr ? implode(',', $arr) : '' (getVar with 'num' type already returns filtered integers) Consistent with modern getVar() API across entire admin module
Modernize: sitemap_save() & users_save() - Compact inline pattern
- sitemap_save(): filter_input() → getVar('post', 'mod[]', 'num')
- users_save(): Restructured to compact inline style
- Eliminated 25 intermediate variables
- Removed redundant validation block
- getVar() calls directly in $cont array
- Elvis operator for defaults
- Inline processing (strtolower, strtr) Reduces users_save() from 60+ lines to 33 lines Consistent with modern getVar() bracket notation pattern
Optimize: users_save() Validation - Redundancies removed
Validationsblock simplified (Lines 586-601):
- Redundant intval() checks removed (getVar 'num' already returns int)
- Elvis-Operator (?:) instead of ternary operator with !intval()
- stripslashes() removed (PHP 8 compatible - Magic Quotes deprecated)
- Logical code grouping: String-Defaults, Numeric-Defaults, processed strings
- String-Interpolation instead of concatenation in Heredoc Advantages: ✓ Reduced code complexity without behavior change ✓ Moderne PHP-Syntax (Elvis-Operator, String-Interpolation) ✓ Better readability with clear structure ✓ PHP 8+ compatible
Security: Complete modernization users.php - CRITICAL SQL injection fixed
SICHERHEIT (KRITISCH!):
- ALLE SQL-Injection-Schwachstellen behoben
- All SQL queries → PDO Prepared Statements mit Parameter-Binding
- users_show(): Parametrisierte LIKE-Suche (:search, :group, :points)
- users_add(): PDO mit :id, :extra
- users_add_save(): Alle UPDATE/INSERT mit PDO (24 Parameter!)
- users_new(), users_null_save(): PDO mit :offset, :limit, :zero, :empty
- users_new_del(), users_del(): Neue separate Funktionen mit PDO
- $_POST → getVar() with security filters MODERNIZATIONS:
- Copyright 2017 → 2026
- PHP 8 Type Hints for all functions (int, string, void)
- array() → [] (Short Array Syntax)
- tpl_eval()/tpl_warn() → setTemplateBasic()/setTemplateWarning()
- navi_gen() + func_get_args() → getAdminTabs() mit Parametern
- include() → require_once CONFIG_DIR
- save_conf() → setConfigFile()
- checkConfigFile() statt end_chmod() CODE-STRUKTUR:
- Switch-Case bereinigt: Inline-Queries extrahiert
- users_null_save() als eigene Funktion (Line 329)
- users_new_del() als eigene Funktion (Line 441)
- users_del() als eigene Funktion (Line 450)
- Alle DELETE-Operationen jetzt mit PDO-Schutz ZEILEN: 440 → 512 (+72)
Refactor: Complete modernization groups.php
MODERNIZATIONS:
- Copyright 2018 → 2026
- PHP 8 Type Hints for all functions (int, string, void)
- array() → [] (Short Array Syntax)
- $_POST/$_GET/$_REQUEST → getVar() with security filters
- tpl_eval()/tpl_warn() → setTemplateBasic()/setTemplateWarning()
- navi_gen() → getAdminTabs()
- func_get_args() → named parameters
- Manual file operations → setConfigFile() SQL SECURITY:
- All SQL queries → PDO Prepared Statements
- Parameter binding with :param placeholders
- SQL injection protection FUNCTIONAL CHANGES:
- groups_del() extracted as separate function
- Error handling in groups_save() corrected
- Code formatting standardized
Refactor: Code-Bereinigung und Modernisierung
Core-Änderungen (core/core.php):
- fields_in() und fields_out(): include → require_once
- Hardcoded Pfad → CONFIG_DIR Konstante
- config_fields.php → fields.php (korrekte Datei) Changelog-Modul (admin/modules/changelog.php):
- Removed unnecessary default case in switch statement
Optimize: getVar() mit Bracket-Notation und Code-Optimierung
Core-Änderungen (core/security.php):
- Bracket-Notation implementiert: field[0] für Index, field[] für ganzes Array
- Parameters reduced from 5 to 4 (index parameter removed)
- Code duplication removed: $filters Array only defined once
- Variablen auf snake_case umgestellt: $array_index, $is_array_all
- Array-Element-Filterung added für bessere Sicherheit Module aktualisiert:
- admin/modules/fields.php: Verwendet Bracket-Notation field1X[i]
- admin/modules/comments.php: Verwendet Bracket-Notation id[] mit num-Filter Advantages:
- Sauberere API without zusätzlichen Index-Parameter
- ~26 Zeilen weniger Code durch Entfernung von Duplikaten
- Konsistente Namenskonvention (snake_case)
- Sicherer durch Element-Filterung bei Arrays
Extend: getVar() now supports type 'array' for entire arrays
- core/security.php: Neuer Typ 'array' für getVar()
- Gibt ganzes Array zurück: $_POST['id'] = [1,2,3]
- Verwendung: getVar('post', 'id', 'array')
- Ersetzt filter_input(..., FILTER_REQUIRE_ARRAY)
- PHPDoc aktualisiert mit neuem Typ
- admin/modules/comments.php: Modernisiert mit neuem Array-Typ
- Vorher: filter_input(INPUT_POST, 'id', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY)
- Nachher: getVar('post', 'id', 'array')
- Konsistente API, sauberer Code getVar() unterstützt jetzt 3 Array-Modi:
- Einzelwerte: getVar('post', 'name', 'text')
- Array-Index: getVar('post', 'field10', '', '', 0) → $_POST['field10'][0]
- Ganzes Array: getVar('post', 'id', 'array') → $_POST['id'] als Array
Optimize: getVar() mit Array-Index-Support + fields.php modernisiert
- core/security.php: getVar() um 5. Parameter $index erweitert
- Unterstützt jetzt mehrdimensionale Arrays: $_POST['field10'][0]
- filter_input() funktioniert nicht mit mehrdimensionalen Arrays
- Bei $index !== null: Direkter Zugriff auf $_POST/$_GET
- admin/modules/fields.php: Komplett modernisiert
- Nutzt neue getVar() mit Index-Parameter
- Void return type, moderne Array-Syntax
- Removed all commented code blocks
- Saubere, wartbare Implementierung
- config/fields.php: Ersetzt config_config_fields.php
- Vereinfachter Pfad without "config_" Präfix
- Konsistent mit anderen Config-Dateien
Refactor: Changelog Module UI Improvements
Export-Funktionalität als Tabs integriert:
- Export-Optionen jetzt als echte Tabs im Navigation-System
- Filter-Feld-Breiten optimiert für bessere UX
- Switch cases für changelog_export_txt und changelog_export_md added Änderungen:
- Filter-Felder: Breiten angepasst (200px/180px/150px)
- Export-Tabs: In $ops und $lang Arrays integriert
- Tab-Labels: "Export TXT" und "Export Markdown"
- Export nur sichtbar wenn export_enabled aktiviert ist
- Cleaner Code: Export-Logik in Tab-System statt separate Sektion