Журнал изменений
Updated all module handlers (admin and public) to use canonical fragment names, pass the required button_type to form-submit, replace the renamed partials, and align account/forum/shop callers with new partial names.
Core changes:
- Fragment renames in all callers:
- post-div → content-block (account, forum, files, links, news, pages, media, faq, shop, sitemap, voting, users, money, main, auto_links, clients, contact, content, help, jokes, order, recommend, rss, whois)
- title-tip → info-tooltip (admin modules: account, content, files, forum, links, media, news, order, pages, shop, voting)
- forum-cat-wrap → forum-category-table
- forum-cat-basic → forum-category-row
-
form-submit: added button_type: 'submit' to all occurrences in public module handlers where previously omitted (account, files, links, etc.)
-
Partial renames in callers:
- liste → content-list (account: last(), edithome())
- account-view → account-profile (account: view())
- fieldset-block → fieldset-panel (forum: forum(), view())
-
account/view(): added editor-action-menu fragment for admin actions (replaces inline has_admin_actions HTML in account-view/account-profile)
- admin_actions_html passed as rendered HTML to account-profile partial
-
auto_links/index.php:
- cat-navi → category-nav
- shop/index.php:
- shop-rech → shop-invoice
Benefits:
- All module callers use canonical fragment names consistently
- form-submit button_type requirement fulfilled sitewide
Technical notes:
- No logic changes; substitution and contract alignment only
Removed the admin/public rendering split in changelog/common.php so both contexts now use the same fragment-based templates. Extended changelog/index.php with nested field sub-objects for the new partial contract. Fixed the billing template CSS reference.
Core changes:
- modules/changelog/common.php:
- chlogRenderCommitStats: removed ADMIN_FILE branch; both contexts now call getHtmlFrag('changelog-stats', ...) with a files array for dot-path rendering
- chlogRenderCommits: removed all ADMIN_FILE branches; all contexts now use
getHtmlFrag('changelog-commit', ...) and getHtmlFrag('changelog-date-header', ...)
- body_html passed as pre-filtered content string (no wrapper fragment)
- basic-changelog-commit and changelog-commit-body fragments retired
- modules/changelog/index.php:
- Added nested field sub-objects to getHtmlPart('changelog', ...):
- hidden, search_field, author_field, file_field, datefrom_field, dateto_field
- filter_button, reset_button (full button sub-objects with class overrides)
- modules/money/templates/billing.html:
- CSS link: templates/$theme/styles.css → templates/$theme/assets/css/new.css
Benefits:
- Single rendering path for changelog reduces maintenance surface
- Billing HTML now loads the correct CSS bundle
Technical notes:
- changelog-stats fragment now receives a files[] array for dot-path item rendering
- Callers passing body as raw string; changelog-commit wraps it if non-empty
Updated admin/index.php and all admin/modules/*.php handlers to use the new canonical fragment names, switch getHtmlFrag to getHtmlPart for promoted partials, and replace the legacy sl_hidden CSS class with sl-dimmed.
Core changes:
- admin/index.php:
- sl_hidden → sl-dimmed for inactive module items (3 occurrences)
- getHtmlFrag('sidebar-block', ...) → getHtmlPart(...)
- getHtmlFrag('dashboard-panel', ...) → getHtmlPart(...)
- getHtmlFrag('menu-grid', ...) → getHtmlPart(...)
- admin/modules/*.php (25 files — admins, blocks, categories, comments, config, database, editor, favorites, fields, groups, lang, messages, modules, monitor, newsletter, privat, ratings, referers, replace, scheduler, security, statistic, template, uploads):
- title-tip → info-tooltip in all label_html / tip contexts
- getHtmlFrag('div', ...) → getHtmlPart('div', ...) for radio-group wrappers
- getHtmlFrag('form', ...) → getHtmlPart('form', ...) remaining occurrences
- getHtmlFrag('sidebar-block', ...) → getHtmlPart(...)
Benefits:
- admin/ layer fully aligned with renamed template atoms
- sl-dimmed replaces sl_hidden; behavior is now opacity-based rather than display:none
Technical notes:
- sl-dimmed style is defined in templates/admin/assets/css/new.css
Updated all call sites in the core layer to use the new canonical fragment names following the public template restructuring, and renamed legacy sl_ CSS class references to the sl- convention.
Core changes:
- core/classes/parser.php:
- CSS class on generated <img> tags: sl_img → sl-img (4 occurrences)
- core/helpers.php:
- getTplRadioGroup: post-div → content-block
- getTplTitleTip: title-tip → info-tooltip
- core/system.php:
- setCategories: post-div (subcategory wrapper) → content-block
- getNaviTabs: post-div (tab content panels) → content-block
- encode_php: code-hljs → code-highlight
- render_blocks: post-div (error placeholders) → content-block (2 occurrences)
- ashowcom: comment signature post-div → content-block; title-tip → info-tooltip
- core/user.php:
- getPrivateMessageView: post-div signature → content-block (already using is_signature)
- core/admin.php: no further changes beyond previous commit
Benefits:
- All core callers use canonical fragment names
- CSS class convention unified: sl_* removed from generated HTML
Technical notes:
- sl_img → sl-img affects all parser-rendered image tags sitewide
Renamed all fragments and partials that had ambiguous or legacy names to their canonical equivalents across all three public themes (default, lite, simple). Added new changelog and forum fragments, new account/list/fieldset partials, and updated the CSS convention from sl_ to sl- throughout layouts.
Core changes:
- Fragment renames (all three themes):
- post-div.html → content-block.html
- code-hljs.html → code-highlight.html
- title-tip.html → info-tooltip.html
- cat-navi.html → category-nav.html
- edit-tip.html: deleted, replaced by edit-actions.html
- shop-rech.html → shop-invoice.html
- forum-cat-wrap.html → forum-category-table.html
- forum-cat-basic.html → forum-category-row.html
- forum-view-wrap.html → forum-topic-view.html
- forum-view-basic.html → forum-post.html
- New fragments (all three themes):
- block-all.html, category-nav.html, changelog-commit.html, changelog-date-header.html, changelog-stats.html, code-highlight.html, content-block.html, edit-actions.html, forum-category-row.html, forum-category-table.html, forum-post.html, forum-topic-view.html, info-tooltip.html, shop-invoice.html
- lite-only: forum-teaser-item.html, lite-faq-random-link.html, lite-head-banner.html
- Partial renames (all three themes):
- account-view.html → account-profile.html
- liste.html → content-list.html
- fieldset-block.html → fieldset-panel.html
- line-list.html → compact-list.html
- New partials (all three themes):
- account-profile.html, changelog-body.html, compact-list.html, content-list.html, fieldset-panel.html, foot-controls.html
- Modified fragments — extended contracts:
- button.html: id, class, reload_query, reset_url, update_label support
- form-submit.html: button_type param required by callers
- editor-action-menu.html, inline-badge.html, textarea.html, voting-view.html, form-field-row.html
- Modified partials:
- view.html: editor menu rendered via fragment include
- changelog.html: extended nested field sub-objects
- editor-upload-panel.html, preview.html, voting-widget.html
- Layouts/CSS:
- app.html, home.html, index.html: sl_but/sl_but_blue → sl-but/sl-but-blue
- CSS: added new utility classes across all theme CSS files
Benefits:
- Fragment and partial names are now consistently descriptive and canonical
- All three themes in sync; no theme-specific divergence
Technical notes:
- All PHP callers must use the new canonical fragment/partial names
- form-submit callers must now pass button_type: 'submit'
Renamed two ambiguous admin fragments to their canonical names, added new atomic fragments for changelog rendering and UI atoms, added the changelog-body partial, and extended the admin CSS with new utility classes and the sl-dimmed state class.
Core changes:
- Fragment renames (templates/admin/fragments/):
- code-hljs.html → code-highlight.html
- title-tip.html → info-tooltip.html
- edit-tip.html: deleted (functionality moved to edit-actions.html)
- New fragments (templates/admin/fragments/):
- bootstrap-icon.html — SVG icon atom using Bootstrap Icons
- changelog-commit.html — single commit card (subject, hash, author, stats)
- changelog-date-header.html — date group separator for changelog list
- changelog-stats.html — diff stats row (added/deleted/file count)
- content-block.html — generic content wrapper (replaces post-div)
- edit-actions.html — editor action dropdown menu atom
- label.html — form label atom (shared with public themes)
- info-tooltip.html — tooltip metadata display atom
- New partial (templates/admin/partials/):
- changelog-body.html — full changelog list with filter form
- Modified partials:
- changelog.html: extended contract for nested field sub-objects
- foot-controls.html, form.html, preview.html, basic-monitor.html: contract updates
- CSS (templates/admin/assets/css/new.css, theme.css):
- Added .sl-dimmed utility for inactive/disabled state
- Added layout utilities: .sl-table-block, .sl-inline-gap, .sl-inline-filter-form, .sl-associated-option, filter field width helpers, .sl-right/left/center, .sl-text-danger/success, .sl-muted and many more new utility classes
- Fixed @media rule indentation (moved braces to column 0)
Benefits:
- Canonical fragment names remove ambiguity between hljs/code and tooltip/tip
- Changelog now rendered via fragments in both admin and public contexts
- New CSS utilities cover recurring layout needs without ad-hoc inline styles
Technical notes:
- All admin callers must use info-tooltip and code-highlight as new names
- edit-actions replaces the old edit-tip inline pattern
Regenerated the base_fingerprint in config/local.php to reflect the current template file set following the consolidation of fragments into partials and the dot-path engine upgrade.
Core changes:
- Config (config/local.php):
- base_fingerprint: f005dfd5acda9f455681e75d1976bf6c15b89e63 → 9bac3d7739a31f67a5d1f459dec1ae23f316a997
Benefits:
- Fingerprint matches actual project state; stale cache warnings suppressed
Technical notes:
- Value is auto-generated from current file set hash
Aligned block naming validation with the runtime convention (snake_case.php), updated required frontend file list, relaxed the cross-theme fragment sync threshold, and adapted unit tests for admin login/registration and the view bridge smoke tests to match the new partial contracts and admin template context.
Core changes:
- BlockValidationTest (tests/BlockValidationTest.php):
- Block file naming rule changed: block-*.php → snake_case.php
- Matches how the runtime loads the bfile value from blocks/
- fileBlocks extraction: block- prefix stripping removed
- TemplateValidationTest (tests/TemplateValidationTest.php):
- Required frontend files updated: fragments/basic.html removed; partials/liste.html, partials/view.html, pages/module.html, layouts/app.html added
- Shared fragment sync allowlist cleared (no hard-coded fragment names)
- Cross-theme common fragment threshold lowered: 100 → 60
- Reflects reduced shared fragment count after consolidation
- AdminLoginBridgeFlowTest (tests/Unit/AdminLoginBridgeFlowTest.php):
- Login test: template switched 'default' → 'admin'; flat keys replaced by name_field/pwd_field/hidden/submit sub-object contract
- Registration test: template switched 'default' → 'admin'; flat keys replaced by field sub-objects (aname_field, aemail_field, apwd_field, etc.)
- ViewBridgeSmokeTest (tests/Unit/ViewBridgeSmokeTest.php):
- viewRendersLoginWithoutPartial → viewRendersLoginNavPartial
- Tests login-nav partial with full nested field contract
- viewRendersLoginLoggedPartial → viewRendersMessageBlockPartial
- Tests message-block partial (login-logged partial removed)
Benefits:
- Tests reflect actual runtime conventions; no stale fragment name allowlists
- Unit tests exercise the real admin template context
Technical notes:
- No test infrastructure changes; only contract and assertion updates
Updated all public module handlers to use restructured template API: navi-lower now expects nested sub-objects; related blocks use getHtmlPart() with extended nested image_link/title_link/date_badge contracts; removed fragment names that no longer exist and replaced them with surviving equivalents.
Core changes:
- navi-lower callers (modules/files, links, search, users, news, pages, media, faq, shop, sitemap, voting, money, main, account, forum):
- Flat keys back_title/back_label/home_href removed
- Replaced with nested sub-objects:
- back_button: {button_type, title, label, is_back, is_navi_lower}
- home_link: {href, title, label, is_navi_lower}
- top_link: {href, title, label, is_navi_lower}
- Related section callers (modules/files, links, media, faq, news, pages, shop):
- getHtmlFrag('related', ...) → getHtmlPart('related', ...)
- related-item extended: added image_link, title_link, date_badge sub-objects
- href extracted to $href variable to avoid repeated getSeoUrl() calls
- Forum module fragment renames (modules/forum/index.php):
- forum-list-wrap → forum-view-wrap
- forum-list-basic-wrap → forum-cat-wrap (with is_topic_list flag)
- forum-list-basic → forum-cat-basic (with is_topic_list flag)
- forum-cat-info → forum-list-info (with is_category_info flag)
- forum-all-open → title (with is_forum_heading flag)
- forum-view-change → getHtmlPart('fieldset-block', ...) / form-wrap
- Other promotions and renames:
- main-carousel: getHtmlFrag → getHtmlPart
- money-calc-scripts: getHtmlFrag → getHtmlPart
- main-grid fragment → post-div with is_main_grid flag
- main-section/main-content-item: extended with more_link/image_link/etc.
- account-privat-tab-title → span with is_htmx flag
- comment-signature → post-div with is_signature flag
Benefits:
- navi-lower callers consistent with the composed fragment include contract
- related-item sub-objects enable template-level link and badge rendering
- Forum template rename disambiguates category list from topic list views
Technical notes:
- Legacy flat keys removed from navi-lower callers; templates require nested form
- date_badge sub-object uses ISO 8601 datetime for <time> element
Replaced all occurrences of getHtmlFrag('form', ...) and getHtmlFrag('div', ...) with getHtmlPart() across every admin module handler, following the promotion of those templates from templates/admin/fragments/ to templates/admin/partials/.
Core changes:
- Admin module handlers (modules/*/admin/index.php — 23 files):
- getHtmlFrag('form', [...]) → getHtmlPart('form', [...])
- Covers all form wrappers used in list, add, edit, config, and search views
- getHtmlFrag('div', [...]) → getHtmlPart('div', [...])
- Covers collapsible div containers (e.g. mail template block in account)
- Files: account, auto_links, changelog, clients, contact, content, faq, files, forum, help, jokes, links, media, money, news, order, pages, rss, search, shop, sitemap, voting, whois
Benefits:
- Admin module callers consistent with promoted partial paths
- getHtmlFrag() reserved for true inline atoms across the entire admin layer
Technical notes:
- No logic changes; substitution is structural only