Fingerprint spiegelt den aktuellen Stand nach Einführung der Table- Fragment-API (is_truncate/is_fixed) und der Admin-Login-Auth-Form- Vereinheitlichung wider.
Neues deklaratives Truncation-Modell für Admin-Tabellen: Zellen und
Spaltenköpfe können als is_truncate markiert werden, die Tabelle
selbst als is_fixed. Rendering und Ellipsis übernimmt das Template
via table-layout: fixed + text-overflow: ellipsis; cutstr()-Aufrufe
in PHP entfallen, echter Volltext bleibt im title-Attribut verfügbar.
Core changes:
- Fragment-Templates (table.html, table-cells.html, th.html):
- table.html: rendert
.sl-table-fixed-Klasse wennis_fixedgesetzt ist table-cells.html: unterstützt pro Zelle
class_name,is_truncate,title_text; kombiniert Klassen und fügtsl-cell-ellipsishinzu- th.html: analoge Logik für Header-Zellen mit
is_truncate - Styles (new.css):
.sl-table-fixedmittable-layout: fixed.sl-cell-ellipsis: max-width:0 + overflow:hidden + white-space:nowrap + text-overflow:ellipsis — funktioniert im fixed-Layout als BegrenzungSpaltenbreiten-Regeln via
tr:has(> th:nth-child(N):last-child)für 5er/6er Heads und für rechte Aktions-Spalte (.sl-th-center)- Core (core/admin.php):
getAdminCategoryList / getAdminBlockList / getAdminFavoriteList / getAdminPrivateList:
cutstr($title, N)in label_text entfernt — Ellipsis erfolgt jetzt rein visuell in der Tabellenzelle- Admin-Module (admin/modules/*.php):
admins, groups, lang, messages, modules, newsletter, referers, scheduler, security: Titel/Name/Modul-Spalten auf is_truncate + title_text umgestellt; Tabellen mit is_fixed markiert
- Modul-Admins (modules/**/admin/index.php):
account, auto_links, clients, content, faq, files, forum, help, jokes, links, media, money, news, order, pages, search, shop, voting, whois: gleiche Umstellung für Title/URL/Email-Spalten
- shop, auto_links, links: zusätzlich domain()/cutstr()-Längen entfernt
- search: komplette Searchaudit- und Toplist-Heads mit is_truncate
- whois: 4 Spalten (Site/Host/DC/Poster) auf is_truncate
Benefits:
- Keine hardkodierten Zeichen-Limits mehr im PHP-Code
- Volltext bleibt im title-Attribut für Hover/Screenreader
- Responsiv korrekte Spaltenbreiten über :has()-Selektoren
- Einheitliches Truncation-Verhalten in allen Admin-Tabellen
Technical notes:
- Breitenregeln nutzen CSS :has() — moderne Browser (Chrome 105+,
Firefox 121+, Safari 15.4+) werden vorausgesetzt
- Erst-Spalte (typisch ID) bekommt 42px außer bei is_truncate
- Rechte Toolbar-Spalte (.sl-th-center) bekommt fixe 36px + 102px für
Status und 100px für Author — stabile Layouts bei dynamischen Daten
Login- und Registration-Partials wurden zu einem einzigen auth-form
Partial mit row-basierter API zusammengeführt. Das Shell/Layout der
Login-Seite wurde auf eigene sl-admin-login-* Klassen umgestellt
und die dazugehörigen Styles in ihre eigene Sektion ausgelagert.
Core changes:
- Templates (auth-form.html, layouts/bare.html):
Neues
partials/auth-form.html: rendert beliebige Formular-Zeilen über einrows[]-Array (label, field_html, has_colon)- Alte
partials/login.htmlundpartials/registration.htmlentfernt layouts/bare.html: Klassen `wrapper/slaenter/wraptop/wrapmid/wrapfoot/ entercont/header/footer/sl-admin-header/sl-admin-toolbar` durch neuesl-admin-login-*-Familie ersetzt; Toolbar-Block entfernt- Admin-Entry (admin/index.php):
login()-Funktion: beide Zweige (Erst-Registrierung + Standard-Login) nutzen jetzt
getHtmlPart('auth-form', ...)mitrows-Array- Feldaufbau inline via
getHtmlFrag('input'|'radio', ...) - Captcha wird als zusätzliche Zeile ohne Label in
rowsangehängt - Styles (new.css, theme.css):
new.css: eigener "Admin login"-Abschnitt mit
.sl-admin-login-shell,-card,-header,-content,-list,-form-frame,-field,-submit,-footer,-copyright+ Responsive-Regeln (700px/560px)theme.css: Selektoren
.slaenter/.wrapper:not(.slaenter)→.sl-admin-login-shell/.wrapper:not(.sl-admin-login-shell)theme.css: doppelter
body:has(.slaenter)-Block entfernt (jetzt ausschließlich in new.css)
Benefits:
- Ein einziges Partial für beide Auth-Flows — keine Duplikation
- Flexible Felder-Reihenfolge/-Anzahl über rows[] (z.B. Captcha-Row)
- Trennung von Admin-Login-Layout (new.css) und Grundlayout (theme.css)
- Konsistente sl-admin-*-Namenskonvention auch im Login-Flow
Technical notes:
- Kein Funktionswechsel, reine Template/Style-Konsolidierung
- sl-admin-login-top und -bottom bleiben als leere Slots im Markup
(display:none), um zukünftige Layout-Akzente ohne HTML-Änderung zu erlauben
Toolbar komplett neu gebaut: Flexbox-Layout, dezenter Hintergrund-Verlauf, abgerundete Item-Hover-Effekte ohne Sprite-Images.
Buttons (sl-block-sidebar h3, sl-dashboard-panel-head) vereinheitlicht: einfacher 3-Stop-Verlauf, opacity:.8-Hover statt separater Hover-Verlauf.
Modul-Head-Body auf CSS Grid umgestellt (25/75 Split) für stabiles Title/Searchbox-Layout; Searchbox mit Inline-Flex und fester min-height.
Fingerprint spiegelt den aktuellen Stand nach Logger-Integration, Template-Engine- Fixes, Block-Refactoring und neuen Fragment-Templates wider.
Erstellt fehlende Block-Templates für alle Frontend-Themes (default, lite, simple). Templates sind identisch über alle Themes und eliminieren die block-*-Warnungen im Log.
Core changes:
- Fragments (×3 Themes):
- block-list-item.html: <li>-Wrapper für link.html (news, files, pages, faq, jokes)
- block-center-link.html: zentrierter Link mit sl-center-Klasse (auto_links)
- block-login-form.html: Login-Formular mit CAPTCHA + Netzwerk-Row (login, user_info)
- block-network-row.html: Soziale-Login-Zeile (login, user_info)
- block-search-form.html: Suchformular (search)
- block-menu.html: <nav>-Wrapper für DB-Content (menu)
- admin-block-links.html: Admin/Logout-Links + Block-HTML (adminblock)
- Partials (×3 Themes):
- block-sidebar.html: Sidebar-Block-Wrapper mit Toggle-Control (adminblock)
- block-user-info.html: Konsolidiertes User-Info-Partial (eingeloggt + Gast)
Benefits: - Alle block-*-Warnungen im error_php.log beseitigt - Einheitliche Template-Struktur über alle Frontend-Themes - block-user-info.html vereint 7 frühere Fragment-Aufrufe in einem Partial
Technical notes: - Templates identisch in default/lite/simple — Theme-spezifisches CSS via Klassen - block-user-info.html nutzt is_user-Flag für eingeloggt/Gast-Verzweigung im Template - Neue sl-*-Klassen (block-login, block-flags, block-menu) in new.css zu ergänzen
Alle Block-PHP-Dateien wurden refaktoriert: statt fehlender block-*-Fragment-Templates nutzen sie jetzt vorhandene atomare Fragmente (link, image, table, table-row) oder übergeben strukturierte Datenobjekte an Partials.
Core changes:
Einfache Blöcke → table.html + table-row.html (center, center_forum, center_media, center_plus, forum, links):
- Spalten-Daten über cells[]-Array übergeben, HTML-Strings in PHP entfernt
- head_html/body_html-Strings durch headers[]-Array + table.html ersetzt
- Banner-Blöcke (banner_random, stat):
- banner_random: block-banner-random → link.html mit img_src
- stat: block-stat-banners → image.html (Counter) + link.html ×2 (Banner)
- img.php:
$img_html HTML-Variable entfernt; img_src wird als leerer String übergeben wenn nicht das erste Bild — link.html rendert <img> nur bei gesetztem img_src
- menu.php:
- DB-Inhalt ($content) wird jetzt als Variable an block-menu-Template übergeben
- user_info.php:
Alle separaten block-user-*-Fragment-Aufrufe durch $data-Array + getHtmlPart() für block-user-info Partial ersetzt
Benefits: - Keine fehlenden Template-Warnungen mehr für block-*-Fragmente - Kein HTML/CSS in PHP-Dateien — nur noch Daten-Arrays - Wiederverwendung vorhandener atomarer Fragmente statt Duplizierung
Technical notes: - table-row.html: Stat-Spalten nutzen cell.class='fl-col-stat' (kein is_forum_stat) - Forum-Sidebar: Poster als primary_text/secondary_text (Klartext), kein user_info() HTML - user_info.php: getHtmlPart('block-user-info') statt getHtmlFrag (Partial, nicht Fragment)
Zwei Bugfixes in den Frontend-Theme-Templates (default, lite, simple).
Core changes:
- checkbox.html (alle 3 Themes):
- {% if not is_plain %} war invalide Syntax der Template-Engine
- Korrektur:
not is_plain→!is_plain - Ursprung: Engine erkennt
noterst seit diesem Release; ältere Templates nutzen! - table.html (alle 3 Themes):
- Body-Klassen-Logik vereinfacht:
not is_voting_listdurch expliziten {% if/else %} ersetzt - Vorher:
{% if body_class or not is_voting_list %}(not-Operator noch nicht unterstützt) - Nachher: separate {% if body_class %}...{% else %}{% if is_voting_list %}...{% endif %}
Benefits: - Keine PHP-Syntaxfehler mehr durch unbekannte Template-Conditions - table.html rendert Body-Klasse korrekt für alle Tabellentypen
Technical notes: - Identische Änderung in allen 3 Frontend-Themes (default, lite, simple) - Kein Inhalt oder Ausgabe-Verhalten geändert, nur Template-Syntax korrigiert
Korrektur der Aktionserkennung im SQL-Dump-Modul: Submit-Buttons übergeben jetzt explizite value_attr-Werte (parse/exec), statt Übersetzungs-Konstanten als Aktion zu nutzen. Dadurch ist die Serverlogik locale-unabhängig.
Core changes:
- Dump-Funktion (admin/modules/database.php):
- Aktion 'dump'/'parse' vs. _EXECUTE/_DB_PARSE ersetzt durch 'exec'/'parse'
- Submit-Buttons erhalten value_attr: 'parse' bzw. 'exec'
- Formular-URL auf action_url mit Query-String umgestellt (name/op als URL-Parameter)
- hidden-Inputs für name/op entfernt (jetzt URL-Parameter)
- getSqlsum/getSqltable-Aufrufe in die jeweiligen if/else-Zweige verschoben
- Tabs-Anzeige (database()-Funktion):
- Fehlender else-Zweig für getTplAdminTabs ergänzt (Tabs ohne Content-Block)
Benefits: - Locale-unabhängige Aktionserkennung (kein Vergleich mit übersetzten Labels) - Formular-URL sauberer (GET-Parameter statt POST für name/op) - Korrekte Tabs-Darstellung auch ohne Content-Block
Technical notes: - Bestehende _DB_PARSE/_EXECUTE Konstanten unverändert (nur als Label) - Kein Breaking Change für externe Aufrufer
Umbenennung der Admin-Partial- und Fragment-Dateien zur Vereinheitlichung der Namenskonvention (block-* Präfix). Alle Aufrufer in admin/index.php und core/admin.php wurden entsprechend aktualisiert.
Core changes:
- Partial-Umbenennung (admin/partials/):
- sidebar-block.html → block-sidebar.html
- Aufrufer: admin/index.php, core/system.php (getHtmlPart)
- Fragment-Umbenennung (admin/fragments/):
- sidebar-count-row.html → block-sidebar-count-row.html
- Aufrufer: core/admin.php (getHtmlFrag, alle admininfo-Zeilen)
- Button-Fragment (admin/fragments/button.html):
- value_attr-Unterstützung ergänzt für explizite Submit-Werte
- Admin-CSS (admin/assets/css/new.css + theme.css):
- Anpassungen für block-sidebar Layout
Benefits: - Konsistente block-* Namenskonvention für alle Block-bezogenen Templates - Vorbereitung für Frontend-Themes, die dieselbe block-sidebar Partial nutzen
Technical notes: - Alte Dateien gelöscht; getHtmlPart/getHtmlFrag suchen nach neuem Namen - Kein Inhalt der Templates geändert, nur Dateiname und Aufrufer





