Журнал изменений
The legacy window.HideShow() function is removed in favour of a data-attribute-driven toggle API that keeps behaviour and animation effects fully declarative. Callers set data-sl-toggle-effect and data-sl-toggle-duration on the trigger element; the JS reads these on every event instead of relying on positional arguments baked into HTML.
Core changes:
- setToggleBlockState / setToggleBlock (slaed.js):
- Accept effect and duration as parameters instead of ignoring animation
- 'slide' delegates to setSlideMotion(); 'puff' to setFadeScale()
- plain toggle falls back to hidden/display as before
- event.preventDefault() now called on non-checkbox click triggers
- Toggle block initialisation (slaed.js):
- Read data-sl-toggle-default attribute ('open'/'closed') for initial state when no saved state is present
- window.HideShow removal (slaed.js):
- Global shim deleted; all call sites migrated to data-sl-toggle-control
- htmx afterSwap hook (slaed.js):
- setToggleBlocks() called after every HTMX content swap so dynamically injected toggle blocks are wired automatically
Benefits:
- No inline JS in HTML required for animated toggles
- Animation type is declarative and visible in markup, not hidden in PHP
- Eliminates the last globally-scoped legacy function from slaed.js
Technical notes:
- Backward compatibility: window.HideShow no longer exists; all call sites must be updated to data-sl-toggle-* attributes
- No changes to the public toggle-state API (getToggleState/setToggleState)
Visual updates to admin theme styles and a new template fragment for the debug stats panel.
base.css
- Soften default input/textarea/select look: lighter background (#fcfeff), softer border (#d6e2ea), updated text color (#59697a). Add transition for background, border and box-shadow on focus/hover
theme.css
- Add .sl-debug-stats grid styling with .sl-debug-value tone variants (success/warn/danger) for the new debug-stats fragment
- Restyle .sl-warn / .sl-info callouts: larger icon area (32px, vertically centered via transform), wider left padding (60px), min-height 40px
- Replace the single 2px progress bar in .sl-alert-flash-bar with a top+bottom hairline pattern using currentColor; warn flash uses orange (#d68a2d), default success uses green (#37a957)
- Add gradient hairline under the admin login header (was a flat #e3edf3 line)
templates/admin/fragments/debug-stats.html
- New fragment that renders the system debug summary as a definition list (CPU load, memory use, timestamp), replacing the previous ad-hoc inline markup. Driven by tone flags (cpu_is_/mem_is_) consistent with the rest of the admin template vocabulary
Routine config update reflecting changed site settings and a refreshed base fingerprint after template and asset changes in this sprint.
Core changes:
- config/global.php:
- Updated sitekey to new value
- Updated variables bitmask
- config/local.php:
- Updated base_fingerprint hash
Benefits:
- Config state reflects current codebase revision
- Fingerprint ensures cache invalidation for changed assets
Technical notes:
- base_fingerprint is auto-derived from asset checksums
- variables bitmask controls enabled site feature flags
Strip the hardcoded padding, margin and border from the fieldset base rule. These values conflicted with component-level overrides and are no longer needed now that admin forms use sl-div-* grid layout.
Core changes:
- Admin base CSS (templates/admin/assets/css/base.css):
- Removed: padding: 3px, margin: 0 0 3px 0, border: 1px solid #dee0e2 from the fieldset base rule
- Retained: overflow: auto, border-radius: 3px
Benefits:
- Eliminates style conflicts for fieldsets inside sl-div-* containers
- Reduces specificity fights between base and component CSS layers
Technical notes:
- border-radius retained for visual consistency where fieldset is still used
- overflow: auto retained to contain floated children if any remain
Move the robots-template button logic from an inline <script> fragment to a standalone JS file loaded with defer. Improves separation of concerns and allows browser caching of the script.
Core changes:
- Editor module (admin/modules/editor.php):
- getRobotsButton() now prepends a head-script-src fragment that loads editor-robots.js with the defer attribute
- Removed inline JS fragment (editor-robots-button.js):
- Deleted the template fragment that embedded script content inline
- New standalone file (templates/admin/assets/js/editor-robots.js):
- Self-contained script with applyRobotsTemplate logic
- Registers a DOMContentLoaded listener for safe deferred execution
Benefits:
- Script is browser-cacheable as a static asset
- Inline JS eliminated from HTML response
- Cleaner separation between markup and behaviour
Technical notes:
- Script uses defer; DOMContentLoaded listener retained for safety
- No changes to the button markup or data attributes
Delete the remaining legacy PNG/GIF images that were part of the old image-based admin layout (borders, backgrounds, separators, tab chrome). The modern admin theme uses pure CSS and no longer references these files.
Core changes:
- Deleted admin sprite and layout images (24 files):
- Layout backgrounds: bchead, pagebg, wraptop, wrapmid, wrapfoot, wrapenter, wrapmidenter
- Navigation chrome: tabmenu, tabsubmenu, toolbar, topmenu
- Separators: hsep, vseptop, vsepmid, vsepfoot
- Decorators: leftblocktop, leftbdbtm, footer, footer_ent, entersubmit
- Sort arrows: misc/asc.gif, misc/desc.gif, misc/bg.gif
- Scroll: uppage.png
Benefits:
- Eliminates unreferenced binary assets from the repository
- Reduces admin theme asset footprint
- Completes the migration from sprite-based to CSS-based admin layout
Technical notes:
- No CSS or template references to these files remain in the codebase
- Sort arrows replaced by CSS ::after pseudo-elements (sl-sort-* classes)
Remove the .sl_loading sprite-based indicator in favour of a pure-CSS three-dot animation. Eliminates the binary gif dependency across all themes and the admin area.
Core changes:
- Frontend CSS (default/new.css, lite/new.css, simple/new.css):
- .sl-loading rewritten: flexbox container with ::before pseudo-element producing an animated three-dot loader using box-shadow and keyframes
- Frontend CSS (default/system.css, lite/system.css):
- Removed legacy .sl_loading rule that referenced loading.gif
- Deleted gif files:
- templates/admin/images/misc/loading.gif
- templates/default/images/misc/loading.gif
- templates/lite/images/misc/loading.gif
- templates/simple/images/misc/loading.gif
Benefits:
- No binary image dependency for loading indicator
- CSS animation scales to any DPI and respects prefers-reduced-motion
- Reduces total asset count across all themes
Technical notes:
- Animation uses three dots at 0.8s linear cycle via box-shadow offsets
- Colors match existing brand palette (#207fb6, #8fc5d9)
Extend the sl-* naming convention to the BBCode parser output and all frontend themes. Parser.php generates these class names dynamically, so all consuming CSS files must be updated in the same change.
Core changes:
- Parser (core/classes/parser.php):
- [code]...[/code] handler: class="code" -> class="sl-code"
handler: class="hide" -> class="sl-hide"Скрытый текст виден только зарегистрированным пользователям, пожалуйста войдите или зарегистрируйтесь.
- Frontend templates (default, lite, simple — div.html):
- is_code path: class="code" -> class="sl-code"
- Frontend CSS (default/theme.css, lite/theme.css):
- .hide/.code selectors renamed to .sl-hide/.sl-code
Benefits:
- Parser output class names now consistent with sl-* convention
- All themes (admin, default, lite, simple) use identical class names
- No divergence between parser output and CSS selectors
Technical notes:
- simple/theme.css had no .hide/.code rules; div.html still updated so the generated markup is consistent across all themes
- admin/theme.css was updated in the preceding commit
Migrate all non-prefixed own class names in the admin theme to the canonical sl-* naming convention. Removes obsolete CodeMirror 5 rules since the project now uses CodeMirror 6 (cm-editor).
Core changes:
- Admin CSS (theme.css):
- Renamed 19 class groups: wrapper, header, footer, toolbar, language, reset, thide, copyright, wraptop/mid/foot and traffic chart classes
- Renamed .code/.hide to .sl-code/.sl-hide
- Removed dead CodeMirror 5 selectors (.CodeMirror, .CodeMirror-hints, and two .CodeMirror layout sub-selectors)
- Admin HTML templates (admin.html, basic-monitor.html, link.html, div.html):
- Updated all class attributes to match renamed CSS selectors
Benefits:
- Admin CSS fully compliant with sl-* naming convention
- No dead rules for removed library version (CM5 replaced by CM6)
- Consistent selector prefix across all admin CSS
Technical notes:
- .wrapper/.header/.footer were legacy layout names alongside sl-admin-*
- CodeMirror 5 used .CodeMirror; version 6 (cm6.bundle.js) uses .cm-editor
- .code/.hide also renamed to match sl-* convention applied in this sprint