Журнал изменений
Document the full performance audit covering frontend and admin paths, measured with Playwright and PHP-side profiling across warm and cold request scenarios.
Core changes:
- Docs (docs/PERFORMANCE_AUDIT_REPORT.md):
- Full audit report with measured ms timings per function
- Frontend findings: getBlocks, setHead, GeoIP, getConfig
- Admin findings: admininfo, getAdminPanelBlocks, news admin page
- Prioritized fix targets and bottom-line summary
- Docs (docs/PERFORMANCE_AUDIT_2026-05-18.md):
- Browser TTFB measurements (Playwright v1.60)
- v6.2 vs v6.3 comparison table
- 50 categorized findings: 17 KRITISCH, 20 MITTEL, 13 GERING
- Cold-start analysis and top-10 fix priorities
- Docs (docs/PERFORMANCE_TEMPLATE_IO.md):
- Template I/O findings from the audit session
Benefits:
- Traceable baseline for optimization work
- Concrete measured numbers per hotspot
- Prioritized fix list with expected ms savings
Rotate the sitekey value and regenerate the base_fingerprint to match the current config state after local testing.
Core changes:
- Config (config/global.php):
- Update sitekey to current value
- Config (config/local.php):
- Regenerate base_fingerprint
Add npm package with browser-audit scripts and an informational PHPUnit test that scans admin CSS class definitions against template HTML usage.
Core changes:
- Browser audit tooling (tools/browser-audit.mjs, package.json):
- Node.js script using chrome-remote-interface / Playwright
- npm scripts: browser:audit, browser:inspect, browser:attach
- CSS class audit test (tests/Unit/AdminCssClassUsageTest.php):
- Scans templates/admin/assets/css/.css for sl- class definitions
- Cross-references usage in admin fragment/layout/page/partial HTML
- Informational only — does not fail CI
Benefits:
- Enables quick browser-driven audits from the command line
- CSS audit test surfaces unused sl-* classes for future cleanup
Technical notes:
- Test is informational (assertTrue(true)) — safe to add to CI
- browser-audit.mjs requires Node.js and Chrome/Playwright to be available
Move [quote], [hide], and Markdown blockquote/callout output from inline strings in Parser to per-theme blockquote fragment templates, enabling markup customization without touching PHP.
Core changes:
- Parser blockquote rendering (core/classes/parser.php):
[quote] and [hide] tags call tpl->getHtmlFrag('blockquote', [...])
- is_quote / is_hide / is_callout / is_plain variants
- Markdown blockquote blocks and GitHub callouts use the same fragment
- Hardcoded HTML fallback preserved when $tpl is unavailable
- Blockquote fragment templates (templates/*/fragments/blockquote.html):
- Added to admin, default, lite, simple themes (identical content)
- callout_type passed through for sl-callout-{type} CSS class
- Link template refactor (templates/admin/fragments/link.html, core/admin.php):
- Replaced hardcoded class='sl-admin-language-link' with is_admin_language_link flag
- CSS class assignment stays in the template layer
- Language cleanup (lang/*.php — 6 files):
- Removed unused constants: _EIMG, _MEML, _PLOAD, _RATE3
- Docs and housekeeping:
docs/TEMPLATES.md: document and/or/not operators, dot-path lookups, and no equality/comparison operators in {% if %} expressions
- templates/admin/partials/basic-monitor.html: BOM character removed
Benefits:
- Blockquote markup is now per-theme customizable
- Dead lang constants removed from all 6 language files
- Admin link CSS class logic fully in template layer
Technical notes:
- blockquote fragment is identical across all 4 themes
- Fallback HTML matches previous hardcoded output exactly
- config/local.php fingerprint updated automatically
Wire icon_name into the block-sidebar partial and top-menu link
fragment so every admin sidebar panel and toolbar entry carries a
contextual Bootstrap Icon. Add --sl-color-primary-hover-soft token
and a dedicated .sl-admin-shell sidebar skin with tight spacing,
rounded tiles, and per-block-id header colour overrides.
Core changes:
- Template (block-sidebar.html):
- Render
<i class="bi bi-{{ icon_name }}">in h3 when icon_name is set - Icon wiring — PHP (admin/index.php, core/admin.php, core/system.php):
- Pass icon_name to all eight block-sidebar calls (shield-lock, puzzle, stars, hourglass-split, pencil-square, eye)
- Add icon key to every top-menu item array; forward as icon_name to getHtmlFrag('link')
- CSS tokens (base.css):
- Add
--sl-color-primary-hover-soft: #58a0c8 - Link :hover uses soft token and drops underline
- CSS sidebar skin (theme.css):
.sl-wrapper.sl-admin-shell .sl-admin-sidebar: tight CSS variables, rounded headers, icon sizing, per-block colour overrides- Menu grid: border/shadow moved from link to item wrapper; link reset to transparent/no-shadow
- Toolbar links: gap + padding added,
.biicon sizing rules, padding removed from innerb .sl-wrapper a:hoverscoped soft-colour override- Sidebar block base: gradient bg, lighter border (border not border-strong)
Benefits:
- Sidebar blocks are visually identifiable by icon without reading the title
- Top-menu entries gain icon context for faster scanning
- Tight-shell skin aligns sidebar spacing with the updated layout
Technical notes:
- icon_name is optional — partial renders nothing when absent (backward-compatible)
- No database or API changes
Introduce a dedicated --sl-color-primary-center (#174372) token for the
login header gradient midpoint and narrow the separator side offsets from
10 px to 5 px for a crisper edge. Replace two statistic demo pages with
the admin left-blocks layout demo.
Core changes:
- Login header separator (base.css, theme.css):
Add
--sl-color-primary-center: #174372CSS variable- Replaces
--sl-color-primaryat the 47.5–52.5 % gradient stops
- Replaces
- Tighten
right/leftfrom 10 px to 5 px - Demo docs (docs/):
- Remove statistic-browser-analysis-demo.html and statistic-monitor-dashboard.html
- Add admin-left-blocks-demo.html
- Config (config/local.php):
- Routine base_fingerprint update
Benefits:
- Separator midpoint color is independently tunable without affecting primary usages elsewhere
- Narrower margins align separator precisely with the login form card edges
Technical notes:
- Purely presentational — no functional or API changes
Removes the fixed width from .sl-block-sidebar, trims padding and background gradient from .sl-admin-sidebar, removes margin/padding from .sl-admin-content, and adjusts .sl-admin-content-inner and .sl-toolbar spacing for a cleaner fluid layout.
Core changes:
- Admin sidebar block (theme.css — .sl-block-sidebar):
- Removed width: 275px; block now sizes via its flex/grid parent
- Admin sidebar column (theme.css — .sl-admin-sidebar):
- padding: 13px 11px 15px 11px → 8px 0px
- Removed multi-stop background gradient (now inherits parent bg)
- Admin content area (theme.css — .sl-admin-content):
- Removed margin: 8px 6px 15px 0
- Removed padding: 0 0 15px 0
- Admin content inner (theme.css — .sl-admin-content-inner):
- padding: 0 var(--sl-space-lg) 15px → 0px 0px 0px 8px
- Toolbar (theme.css — .sl-toolbar):
- margin: 0 10px 0 5px → 0 0 0 12px
Benefits:
- Sidebar width adapts to container; no overflow on narrow viewports
- Content area padding controlled at inner level, not duplicated on outer
Technical notes:
- No new CSS classes; all changes are targeted property updates
- No HTML structure changes required