Журнал изменений
Convert legacy float layouts to flex/grid across templates/lite (footer, comments/forum-post media objects, rating, cards, slider, moderation menu, header nav, article meta). Remaining floats are intentional text-wrap/text-flow utilities only.
- Footer: .sl-fmenu/.sl-partners to flex; reorder menu before ad-link
- Comments/forum posts: media-object to flex with order/min-width
- Header: #topmenu and search to flex, split scoped to >=901px
- Drop 14 table-column !important via td./th. specificity bump
- Consolidate 11 duplicate list-reset rules into one
- Remove vestigial floats on absolutely-positioned dropdowns
- Drop now-redundant sl-clrfix classes on flex/grid containers
Self-prompt describing the unfinished float to flex/grid migration, the !important specificity refactor and duplicate-block consolidation.
Core changes:
- Handoff doc (docs/CSS-MODERNIZATION-TODO.md):
- Remaining float batches, gotchas, verification recipe, machine notes
Replace the float-based content/sidebar shell with CSS grid, removing the clearfix and negative-margin hacks.
Core changes:
- Page shell (templates/lite/assets/css/theme.css):
- #container -> CSS grid (minmax(0,1fr) var(--sl-sidebar), column-gap)
- Drop clearfix hack height:1% and sidebar padding-right reservation
- #content/#sidebar lose float/width/negative-margin, gain min-width:0
- Mobile: #container collapses to one column; dead float resets removed
- Layout markup (templates/lite/layouts/home.html, app.html):
- Remove class="sl-clrfix" from #container (grid self-clears)
Benefits:
- Pixel-identical desktop layout, cleaner stacked mobile
- Removes the legacy float/clearfix layer from the main shell
Technical notes:
- Also strips 12 redundant !important and merges the split #content rule
- Breakpoints unchanged; no behavior change for valid layouts
ashowcom() rendered an empty page and threw on bot-supplied or out-of-range com values; harden the comment view and clamp the page.
Core changes:
- Comment view (core/system.php):
- Initialize $cmassiv before the row loop so foreach never gets null
- Pass $mod (not the loop-set $com_modul) to getPageNumbers()
- Clamp com to [1, numpages] after counting rows
Benefits:
- Removes Undefined variable, foreach-null and getPageNumbers TypeError
- Out-of-range com now shows the last page instead of an empty list
Technical notes:
- Behavior preserved for valid pages; defensive init kept as a safety net
Replace legacy float grids and the absolute-positioned pager with modern CSS Grid and flexbox, and tidy the forum foot, breadcrumbs and list info.
Core changes:
- Grid system (theme.css):
- sl-grid-1-2/1-3/1-4 use CSS Grid (repeat(N, minmax(0, 1fr))) with responsive 2/1 column fallbacks; drop float and clearfix :after
- Pager (theme.css):
- sl-pager is now flex (compact "< numbers >"), wraps cleanly; remove absolute arrows, fixed height and the mobile/forum-foot overrides
- Forum foot (theme.css):
- One flex row: pager left, buttons right; info line with separator; grouped the top/foot pull-right button spacing
- Header breadcrumbs (theme.css):
- Vertically centered, adopt the Magistral title font
- Forum list info (theme.css):
- Three equal-height columns; permissions right-aligned to the edge; green/red can/cannot colors via tokens
Benefits:
- Less CSS, no legacy float/clearfix hacks
- Responsive grids and pager out of the box
- Consistent forum and pager presentation across modules
Technical notes:
- Lite theme styles only; admin theme untouched
- Card .sl-grid system left as-is
Align the lite template fragments with the consolidated PHP helpers: header breadcrumbs, forum topic list, permissions legend, favorite button and the block title bar.
Core changes:
- Header banner (lite-head-banner.html):
- Show breadcrumbs in the title slot, fall back to module name
- Forum topic list (forum-category-row.html, forum-category-table.html):
- Single title link with the status icon inline; drop the separate icon column and the matching header colspan for topic lists
- Forum info/foot (forum-list-info.html, forum-topic-view.html):
- Restore the access permissions block (was commented out)
- Drop legacy sl-grid-1-* and the clearfix wrapper on flex containers
- Reusable fragments (span.html, block-all.html):
- span supports an id (inline htmx target for the favorite button)
- block-all accepts optional icon_name/href for the title bar
Benefits:
- Consistent forum heading and breadcrumbs
- No phantom clearfix box inside flex containers
- Inline favorite target avoids heading shift
Technical notes:
- Escaping boundary preserved; PHP passes data, templates own markup
- Backward compatible (new keys are optional)
Consolidate duplicated logic behind shared core helpers, add item-level breadcrumb resolution, and fix forum topic-list pager and the inline favorite button across the lite theme and forum module.
Core changes:
- Entity decode helper (core/system.php, 16 files):
- Add getDecodedText() and replace 25 inline html_entity_decode(..., ENT_QUOTES | ENT_HTML5, 'UTF-8') call sites
- Decode forum topic titles in the list so quotes render, not "
- Forum topic state helper (core/system.php, modules/forum/index.php, blocks/center_forum.php):
- Add getForumTopicState() as the single source for the is_topic_* status flag; drop the duplicated if/elseif chains
- Item breadcrumbs (core/helpers.php, templates/lite/index.php):
- Add getItemCrumb() guarded via information_schema (cid + title)
- getThemeHeadVars() resolves the category trail for op=view items and appends the current item title as the last crumb
- Forum list fixes (modules/forum/index.php):
- Stop the topic loop from clobbering the page category; use $catid so the pager and the moderator move form get the correct id
- Merge the status icon into the single topic title link
- Inline favorite button (core/user.php):
- Wrap the favorite toggle in an inline span instead of a block div so it no longer shifts headings
- Block title bar (core/system.php):
- render_blocks() forwards optional icon_name/href to the block-all wrapper; center_forum block supplies them
Benefits:
- Single source of truth for decode and topic-state logic
- Correct forum pagination and clean heading layout
- Uniform item breadcrumbs across category modules
Technical notes:
- Behavior preserved; shop/content without cid are safely skipped
- No backward-incompatible changes
Prevent the generated PHP CS Fixer cache from being tracked, keeping the working tree clean after running the style fixer.
Core changes:
- Ignore rule (.gitignore):
- Add .php-cs-fixer.cache under a dedicated PHP CS Fixer section
Benefits:
- No accidental commits of tool-generated cache
- Cleaner status output
Technical notes:
- Tooling-only change, no runtime impact
- Replace PERFORMANCE_AUDIT_* notes with consolidated PERFORMANCE.md and new ARCHITECTURE.md
- Update README/CONTRIBUTING/SECURITY/UPGRADING and docs guides
- table.html: single-call rows_html contract (drop open/close two-pass and dead footer_html)
- table-row.html: is_truncate, is_forum_user cell flags
- Sort-indicator CSS, sl-cell-ellipsis truncation, tokenized icon sizes
- Footer forum teaser: clickable user icon, fix list overflow and even column distribution