Журнал изменений

Журнал изменений

Фильтр и поиск

Всего: 1045 Доступных коммитов | Отфильтровано: 1045 Коммиты | Страница: 37 / 105
23.04.2026
Feature: Toast UI editor — file upload API, custom assets, upload panel
Автор: Eduard Laas | Дата: 18:16 23.04.2026

Implement the server-side file upload API for the Toast UI editor and wire it into the editor frontend. The new API handles file upload and file listing as dedicated endpoints in index.php, backed by focused helper functions in core/system.php. Custom JS and CSS assets extend the editor with emoji, icon styles, tag shortcuts, and upload panel integration.

Core changes:

  1. core/system.php — editor JSON API helpers:
  2. getEditorJson(array): emit JSON response and exit
  3. getEditorUploadData(string): validate and return upload config for a module
  4. checkEditorUploadAccess(string, array): check visitor upload permission
  5. getEditorImageData(string, string, int, int): validate image dimensions
  6. getEditorFileData(string, string): build file metadata row for JSON output
  7. addEditorUpload(): handle POST file upload and return JSON result
  8. getEditorFileJson(): return stored editor files as JSON for the file panel
  9. index.php:
  10. Route go=4 op=editorUpload to addEditorUpload()
  11. Route go=4 op=editorFiles to getEditorFileJson()
  12. Fix routing bug: switch($go) corrected to switch($op)
  13. plugins/editors/toastui/driver.php:
  14. Add getEmojiLabels(): inline locale-mapped emoji panel labels (de/en/fr/pl/ru/uk)
  15. Load slaed-icons.css, slaed-tags.js, slaed-emoji.js, slaed-upload.js
  16. Pass upload panel and JSON options (token, endpoints, labels) to JS via SlaedToastUi.register()
  17. Render toastui-upload-panel partial when module upload is permitted
  18. New Toast UI assets (plugins/editors/toastui/assets/):
  19. slaed-emoji.js: emoji picker plugin with categorised emoji sets
  20. slaed-icons.css: custom toolbar icon overrides using Bootstrap Icons
  21. slaed-tags.js: tag shortcut extension for common BB-style tags
  22. slaed-upload.js: upload panel logic (drag-drop, file list, attachment insert)
  23. Upload panel partials (templates/*/partials/toastui-upload-panel.html):
  24. Added for admin, default, lite, simple templates
  25. Bootstrap Icons vendor (templates/default|lite/assets/vendor/bootstrap/):
  26. bootstrap-icons.min.css and woff2 font file for the icon set

Benefits:

  • Toast UI now supports full file upload with the same access rules as the BB editor
  • Upload API is editor-agnostic: clean helper functions with no HTML coupling
  • Emoji, tags, and upload are modular JS extensions loaded only when needed

Technical notes:

  • Upload endpoints use the existing SLAED token system (getSiteToken/checkSiteToken)
  • addEditorUpload() handles multi-file upload arrays and returns per-file results
  • getEditorFileJson() respects user ownership and moderator scope limits
  • Bootstrap Icons font is vendored; no CDN dependency at runtime
Refactor: Move admin layout functions from theme hook to core/admin.php
Автор: Eduard Laas | Дата: 18:15 23.04.2026

The admin layout rendering functions (language switcher, top menu, layout variable assembly) were scattered across a theme-local hook file. They are now defined in core/admin.php, making them available to any admin theme without coupling logic to a specific theme directory.

Core changes:

  1. core/admin.php — new layout helpers:
  2. getAdminLanguageLinks(): renders the language switcher for the admin toolbar
  3. getAdminTopMenu(): renders the admin top navigation for admin and moderator
  4. getAdminLayoutVars(): returns the complete set of variables needed by any admin layout (menu, lang links, sidebar blocks, or login prompt)

  5. templates/admin/index.php — deleted:
  6. getAdminHeadVars() and getThemeFootVars() moved out of the theme hook
  7. admin theme no longer requires PHP logic in templates/admin/index.php
  8. core/system.php — theme hook integration:
  9. Add getThemeHookVars(string $hook): array — safely calls optional theme hook functions and normalises the return value to an array

  10. setHead(): use getAdminLayoutVars() + getThemeHookVars('getAdminHeadVars') instead of directly calling the removed theme hook function

  11. setHead(): use getThemeHookVars('getThemeHeadVars') for frontend
  12. setFoot(): use getThemeHookVars('getThemeFootVars') for frontend

Benefits:

  • Admin layout logic is now co-located with admin helpers in core/admin.php
  • Theme hook contract is narrowed: theme index.php is optional and additive
  • getThemeHookVars() eliminates function_exists guards at every call site
  • Cleaner separation between core rendering and per-theme customisation

Technical notes:

  • Templates/admin/index.php is now deleted; custom admin themes may still define getAdminHeadVars() in their own index.php if override is needed

  • getAdminLayoutVars() is safe to call unconditionally; it checks isAdmin() internally and returns only login text when the user is not authenticated

  • No change to the rendered output for default admin theme installations
Chore: Remove BB editor plugin, assets, CSS, and lang constants
Автор: Eduard Laas | Дата: 18:10 23.04.2026

Remove the BBcode editor plugin and all related artifacts from the codebase. The BB editor has been fully replaced by Toast UI and is no longer active. All CSS, images, upload panels, and lang constants tied to the BB editor are deleted to eliminate dead code and reduce maintenance surface.

Core changes:

  1. BB editor plugin (plugins/editors/bbcode/):
  2. Remove driver.php and manifest.json
  3. BB editor assets (templates//images/editor/, /partials/):
  4. Delete bb-editor.png sprite and index.html from admin, default, lite, simple
  5. Delete editor-upload-panel.html from default, lite, simple
  6. Delete deprecated forum banner images from templates/lite/images/banners/
  7. BB editor CSS (templates/admin|default|lite/assets/css/system.css):
  8. Remove .sl_bb-editor, .sl_bb-panel, .sl_bb_*, .sl_bbup-panel, .sl_bb_trans and related rules from all three themes

  9. Lang constants (lang/.php, modules/jokes/lang/.php, admin/lang/*.php):
  10. Remove 20 BB editor toolbar constants (_EBOLD, _EBREAK, _ECENTER, _ECOLOR, _EEMAIL, _EHR, _EITALIC, _ELAT, _ELEFT, _ELI, _EMINUS, _EPLUS, _ERIGHT, _ERUS, _ESIZE, _ESMILIE, _ESTRIKET, _EUNDERLINE, _EURL, _EYUSTIFY)

  11. Remove 7 auxiliary editor constants (_FONT, _JERROR, _JINFO, _JQUOTE, _JTYPE, _UPLOADINFO, _UPLOADFINISHJ) from all 6 locales

  12. Update _CLICABLEINFO in admin/lang/*.php to remove BB editor reference
  13. getTplBbEditor helper (core/helpers.php):
  14. Remove the 193-line BB editor rendering function
  15. Config (config/local.php):
  16. Update base_fingerprint after asset removal

Benefits:

  • Eliminates ~700 lines of dead code and sprites
  • Removes 20+ unused lang constants from 6 locale files
  • Cleans BB editor CSS rules from all active theme stylesheets
  • Reduces cognitive overhead when working with the editor subsystem

Technical notes:

  • No runtime behavior change; BB editor was already superseded by Toast UI
  • All BB editor constants verified unused across PHP, HTML, JS, and template files
  • _CLICABLEINFO updated to be editor-neutral (applies to any content editor)
Refactor: frontend — erweiterte Fragmente, block-content statt content-block
Автор: Eduard Laas | Дата: 00:12 23.04.2026

Frontend-Fragmente (default/lite/simple) bekommen zusätzliche semantische Flags — span, button, input, link, table, title, code-row. Das Fragment content-block wurde in block-content umbenannt und leicht erweitert. Neu ist ein minimales partials/div.html. Das Partial block-user-info.html trennt Begrüßung in zwei separate Felder (greeting_label + greeting_name) statt eines vorformatierten HTML- Strings. Alle Aufrufer in blocks/, core/, modules/*/index.php wurden konsequent umgestellt.

Core changes:

  1. Fragment-Rename (alle 3 Themes):
  2. content-block.html gelöscht, block-content.html neu angelegt
  3. Selbe Logik + neue Flags (z.B. is_signature, is_center, is_radio_group), synchron mit Admin-Theme für einheitliche Fragmentnamen

  4. span.html (default/lite/simple):
  5. +is_form_value, is_views, is_line_stack_item, is_cat_image, is_cat_name, is_new_today, is_new_days, is_new_week

  6. Ersetzt inline class="sl_n_day" etc. durch semantische Flags
  7. button.html:
  8. +is_reload_query-Trigger mit htmx-Swap, is_legacy_green, is_back, is_navi_lower, is_login_submit

  9. Button-/Input-Varianten konsolidiert
  10. input.html:
  11. +is_form_control, is_user_search, is_search_filter
  12. Default-Klasse sl-field nur bei Abwesenheit anderer Klassenflags
  13. link.html:
  14. +is_shop_add (sl-shop-add), is_bold_label Bold-Linklabel, suffix_html für nachgestellte Badges/Icons (z.B. NewGraphic)

  15. code-row.html:
  16. row_class optional — is_odd → sl-code-row-odd / sl-code-row-even
  17. table.html / table-row.html:
  18. is_col_half im Header, is_hidden und is_forum_stat auf Row-Level
  19. fl-col-stat Spalte für Foren-Statistiken
  20. title.html:
  21. +is_plain für class="title" statt sl-title (ältere Themes)
  22. partials/block-user-info.html:
  23. greeting (HTML-String) → greeting_label + greeting_name (zwei Felder). Begrüßung wird jetzt im Template zusammengesetzt, nicht in PHP

  24. partials/div.html (neu, default/lite/simple):
  25. Minimaler generischer Div-Wrapper für einheitliche Semantik zwischen Themes

  26. partials/form-add.html:
  27. +is_calculator (sl-calculator-form)
  28. Blocks (blocks/*.php):
  29. auto_links, center, center_forum, center_media, center_plus, forum, img, languages, links, login, modules, user_info: alle Aufrufe von getHtmlFrag('content-block', ...)getHtmlFrag('block-content', ...)

  30. user_info.php: greetinggreeting_label/greeting_name, passend zum neuen block-user-info-Partial

  31. Semantische Flags ersetzen hardkodierte class-Werte (z.B. 'class' => 'sl-shop-add''is_shop_add' => true)

  32. Core (core/helpers.php, core/system.php, core/user.php):
  33. getTplRadioGroup(), getTplNewGraphic(), Footer-/Nav-Helper: content-blockblock-content, Flag-basierte Klassen

  34. getTplFieldsIn(): leerer input_class entfernt (unnötig)
  35. getTplPager(): prefix als hartkodierter Leerstring (ungenutzte Option entfernt)

  36. Module (modules/*/index.php — account, changelog, clients, contact,
content, faq, files, forum, help, jokes, links, main, media, money,
news, order, pages, rss, search, shop, voting, whois):
  • getHtmlFrag('content-block', ...)getHtmlFrag('block-content', ...)
  • 'class' => 'sl-shop-add' / 'sl-section' / 'sl_n_day' → Flag-Form
  • modules/shop/index.php: title_text nicht mehr per cutstr() beschnitten — Truncation erfolgt jetzt CSS-seitig

Benefits:

  • Einheitlicher Fragmentname block-content im Frontend und Admin
  • Keine hardkodierten Klassennamen mehr in PHP für wiederkehrende Varianten (is_new_today, is_shop_add, is_section, ...)

  • block-user-info-Partial kann Begrüßung lokalisierungsfreundlich ohne HTML-Verkettung in PHP aufbauen

  • Fragmente in allen 3 Themes synchron — leichter zu warten

Technical notes:

  • content-block.html in default/lite/simple in diesem Commit gelöscht; alle Aufrufer sind bereits auf block-content umgestellt

  • Frontend-Fragmente syntaktisch 1:1 identisch zwischen den 3 Themes (Theme-spezifisches Styling über CSS, nicht Template-Variation)

  • Rückwärtskompatibilität: keine — Template-/Parameter-Namen ändern sich, nur innerhalb des neuen Refactor-Strangs verwendet

Refactor: admin — semantische Spalten-Flags, block-content statt content-block
Автор: Eduard Laas | Дата: 00:10 23.04.2026

Admin-Tabellen werden jetzt über semantische Spalten-Flags (is_col_id, is_col_check, is_col_author, is_col_status, is_col_actions, is_col_date, is_col_count) gestylt — hardkodierte class_name-Werte in PHP entfallen. Die Fragmente button, inline-badge, input, select, textarea, label bekommen zusätzliche Varianten-Flags (is_green/is_blue/is_plain, is_note/is_dimmed/is_success, is_inline_gap/is_search_filter etc.). Das Fragment content-block wurde in block-content umbenannt und um is_section und is_sidebar_count_list erweitert.

Core changes:

  1. Fragment-Templates (admin/fragments):
  2. block-content.html: ersetzt content-block.html + neue Flags is_section (→ sl-section), is_sidebar_count_list

  3. table-cells.html + th.html: neue Spalten-Flags is_col_id (sl-col-id), is_col_check (sl-col-check), is_col_author (sl-col-author), is_col_status (sl-col-status), is_col_actions (sl-col-actions), is_col_date (sl-col-date), is_col_count (sl-col-count)

  4. table-row.html + div-row.html: is_lang_edit, is_ratings_inner, is_hidden für Row-State-Klassen

  5. button.html: is_green/is_blue/is_plain lösen veraltete is_chlog_primary/is_chlog_secondary für Button-Varianten ab

  6. inline-badge.html: +is_note/is_dimmed/is_success/is_danger/ is_action_label/is_muted/is_green/is_red/is_category/ is_views/is_post_icon/is_date + color_attr für Inline-Style

  7. input.html: +is_config/is_ratings_days/is_form_control/ is_inline_gap/is_search_filter/translate_target

  8. select.html: +is_inline_gap/is_search_sort/is_search_order/ is_search_filter

  9. textarea.html: +is_config
  10. label.html: +is_associated_option
  11. Partials (admin/partials):
  12. div.html: +is_search_line, is_rate_box (für Ratings-Tab-Layout)
  13. form.html: +is_inline_filter (Such-Filter-Formulare)
  14. basic-monitor.html: Prüfstatus-Styling auf semantische Badges umgestellt

  15. Layout (admin/layouts):
  16. admin.html: <main class="sl-admin-content"> bekommt inneres <div class="sl-admin-content-inner"> für Grid/Flex-Container

  17. Styles (admin/assets/css):
  18. new.css: neue .sl-col-*-Regeln (Breite + Alignment für ID/Check/Author/Status/Actions/Date/Count-Spalten), .sl-section, .sl-inline-gap, .sl-search-filter-field, .sl-lang-edit-row, .sl-ratings-inner-row, .sl-associated-option

  19. theme.css: minimale Layout-Anpassung für sl-admin-content-inner
  20. Core + Module (core/admin.php, admin/modules/, modules//admin/):
  21. Alle Aufrufe von getHtmlFrag('content-block', ...) auf getHtmlFrag('block-content', ...) umgestellt

  22. class_name => 'sl-col-id' und ähnliche auf Flag-Form ('is_col_id' => true) migriert — gilt für alle Admin-Tabellen in admins, comments, config, database, favorites, groups, lang, messages, modules, monitor, newsletter, ratings, scheduler, statistic sowie alle modules/*/admin/index.php

Benefits:

  • Spaltenbreiten/-Ausrichtung deklarativ in CSS statt verstreut in PHP
  • Konsistente Button-/Badge-Varianten ohne Zeichenketten-Klassennamen
  • Ein einziger Fragmentname (block-content) statt gemischter content-block-Nutzung

  • Klarere Trennung von Admin-Spalten-Semantik und freien Klassen

Technical notes:

  • content-block.html im admin-Theme wird in diesem Commit gelöscht; alle Aufrufer sind bereits auf block-content umgestellt

  • is_*-Flags sind additiv kombinierbar; Reihenfolge im Template bestimmt die CSS-Klassen-Reihenfolge

  • color_attr in inline-badge ersetzt Inline-<span style="color:..."> und erlaubt beliebige Hex/CSS-Color-Werte

Style: frontend blocks — sl-block-Wrapper und block-*-Klassen (default/lite/simple)
Автор: Eduard Laas | Дата: 00:07 23.04.2026

Nach dem Block-Refactor (Commit 2ff47e47) nutzten die neuen atomaren Fragmente bereits die Klassen sl-block, block-modules, block-flags, block-menu, block-login etc., doch die zugehörigen CSS-Regeln waren in den Themes nicht vorhanden. Ohne diese Styles fielen Sidebar-Blöcke wie modules.php in rohen Inline-Fluss und «verschluckten» visuell die nachfolgenden Blöcke — auf einer frischen Installation war faktisch nur der Inhalt des languages.php-Blocks sichtbar.

Core changes:

  1. Block-Wrapper (sl-block, sl-block-content):
  2. sl-block: Hintergrund #f6f8fa, padding 15px, border-radius 8px, margin-bottom 25px (Visuelles Äquivalent zur alten .block-Regel in blocks.css, aber für das neue <aside class="sl-block">-Markup)

  3. sl-block-content: line-height 1.4 für lesbare Block-Inhalte
  4. #sidebar .sl-block:last-child: kein margin-bottom (letzter Block)
  5. modules.php (block-modules, block-mod-section):
  6. .block-modules: flex-column mit 4px gap — Navigation als saubere vertikale Liste statt Inline-Fluss

  7. .block-modules .sl-module: display:block + padding 4px 2px für klickbare Zeilen

  8. .block-mod-section: Separator + kleinere Schrift für Moderator- Unterabschnitte (invisible/inactive Modules, Admin-Bereich)

  9. languages.php (block-flags):
  10. .block-flags: flex-wrap mit 6px gap, align-items center — Flaggen flüssig nebeneinander mit sauberen Abständen

  11. .block-flags a: display inline-flex für konsistente Vertikalzentrierung
  12. login.php / user_info.php (block-login):
  13. .block-login p: margin 6px 0 — Zeilenabstände im Login-Formular
  14. .block-login input: margin 3px 0 — vertikaler Breathing Space
  15. menu.php (block-menu):
  16. .block-menu ul: list-style none, padding 0, margin 0 — DB-Menü ohne Standard-Listendarstellung

  17. .block-menu li: margin 4px 0 — Abstand zwischen Menüpunkten

Benefits:

  • Frisch installierte Sidebar-Blöcke rendern sichtbar und nicht mehr als zerfließender Inline-Text

  • Visuelle Parität zur alten .block-Regel ohne Markup-Rückportierung
  • Konsistente Klassen in default/lite/simple — ein einziger Styleset für alle drei Frontend-Themes

Technical notes:

  • Rein additiv: keine bestehenden Regeln geändert oder entfernt
  • Legacy-Regel .block in blocks.css bleibt unberührt für evtl. noch nicht migrierte Templates

  • TODO aus Commit 2ff47e47 erledigt: "Neue sl-*-Klassen (block-login, block-flags, block-menu) in new.css zu ergänzen"

22.04.2026
Chore: config/local.php — base_fingerprint nach Template-Refactor aktualisiert
Автор: Eduard Laas | Дата: 22:22 22.04.2026

Fingerprint spiegelt den aktuellen Stand nach Einführung der Table- Fragment-API (is_truncate/is_fixed) und der Admin-Login-Auth-Form- Vereinheitlichung wider.

Feature: admin tables — is_truncate/is_fixed API statt inline cutstr()
Автор: Eduard Laas | Дата: 22:22 22.04.2026

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:

  1. Fragment-Templates (table.html, table-cells.html, th.html):
  2. table.html: rendert .sl-table-fixed-Klasse wenn is_fixed gesetzt ist
  3. table-cells.html: unterstützt pro Zelle class_name, is_truncate, title_text; kombiniert Klassen und fügt sl-cell-ellipsis hinzu

  4. th.html: analoge Logik für Header-Zellen mit is_truncate
  5. Styles (new.css):
  6. .sl-table-fixed mit table-layout: fixed
  7. .sl-cell-ellipsis: max-width:0 + overflow:hidden + white-space:nowrap

    • text-overflow:ellipsis — funktioniert im fixed-Layout als Begrenzung
  8. Spaltenbreiten-Regeln via tr:has(> th:nth-child(N):last-child) für 5er/6er Heads und für rechte Aktions-Spalte (.sl-th-center)

  9. Core (core/admin.php):
  10. getAdminCategoryList / getAdminBlockList / getAdminFavoriteList / getAdminPrivateList: cutstr($title, N) in label_text entfernt — Ellipsis erfolgt jetzt rein visuell in der Tabellenzelle

  11. Admin-Module (admin/modules/*.php):
  12. admins, groups, lang, messages, modules, newsletter, referers, scheduler, security: Titel/Name/Modul-Spalten auf is_truncate + title_text umgestellt; Tabellen mit is_fixed markiert

  13. Modul-Admins (modules/**/admin/index.php):
  14. 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

  15. shop, auto_links, links: zusätzlich domain()/cutstr()-Längen entfernt
  16. search: komplette Searchaudit- und Toplist-Heads mit is_truncate
  17. 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

Refactor: admin login — unified auth-form partial, sl-admin-login-* styles
Автор: Eduard Laas | Дата: 22:21 22.04.2026

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:

  1. Templates (auth-form.html, layouts/bare.html):
  2. Neues partials/auth-form.html: rendert beliebige Formular-Zeilen über ein rows[]-Array (label, field_html, has_colon)

  3. Alte partials/login.html und partials/registration.html entfernt
  4. layouts/bare.html: Klassen `wrapper/slaenter/wraptop/wrapmid/wrapfoot/ entercont/header/footer/sl-admin-header/sl-admin-toolbar` durch neue sl-admin-login-*-Familie ersetzt; Toolbar-Block entfernt

  5. Admin-Entry (admin/index.php):
  6. login()-Funktion: beide Zweige (Erst-Registrierung + Standard-Login) nutzen jetzt getHtmlPart('auth-form', ...) mit rows-Array

  7. Feldaufbau inline via getHtmlFrag('input'|'radio', ...)
  8. Captcha wird als zusätzliche Zeile ohne Label in rows angehängt
  9. Styles (new.css, theme.css):
  10. 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)

  11. theme.css: Selektoren .slaenter / .wrapper:not(.slaenter).sl-admin-login-shell / .wrapper:not(.sl-admin-login-shell)

  12. 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

Style: admin CSS — Toolbar-Redesign, Button-Vereinheitlichung, Modul-Head-Grid
Автор: Eduard Laas | Дата: 15:35 22.04.2026

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.

Всего: 1045 на 105 страницах по 10 на каждой странице

1 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 105
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код