Последнии сообщения форума
Delete frontend fragments whose callers have been migrated in the preceding runtime-migration commit. Every deletion is covered by a generic replacement contract; no productive code path references these files any more.
Core changes:
- Account form fragments (10 files × 3 themes):
- Replaced by partials/form-add with flexible attributes
- activate, edit, login, newuser, passlost, password, privat-message, rss-select, rss-url, comment
- Account view helpers (14 files × 3 themes):
- account-avatar-current, account-avatar-grid-cell, account-avatar-grid, account-avatar-upload
- account-favorite-add, account-favorite-on, account-favorite-off, account-favorites-list
- account-last-row, account-last-wrap
- account-message-admin-note, account-pm-icon-link
- account-avatar-grid-row-open, account-avatar-grid-row-close (merged via open flag)
- Shop summary fragments (4 files × 3 themes):
- shop-cart-item-row, shop-cart-table (replaced by generic table)
- shop-partners-form, shop-partners-summary
- Clients list info (clients-list-info, 3 files):
- Replaced by post-div atom
- Link variant (comment-action-link, 3 files):
- Replaced by the generic link fragment with is_blank flag
Benefits: - Net template count reduced by 90 productive files - Single source of truth per view role (forms, tables, links, avatars) - No orphaned references remain
Technical notes: - All deletions verified via grep before commit - Three themes (default, simple, lite) carry identical deletions
Migrate PHP callers to the new unified contracts introduced in the preceding template commits. Removes every raw <a> HTML string from core/user.php, drops hclass attribute assembly in core/system.php, switches comment-action-link callsites to the generic link atom, and rewrites the shop cart summary onto the generic table/table-row.
Core changes:
- Account module (modules/account/index.php):
- Migrate the avatar-grid row loop onto account-avatar-grid-row with open flag (no per-row tr/close fragments)
- Drop per-cell width math; grid sizing is now CSS-driven
- Migrate account forms to the shared form-add partial with new flags
- User helpers (core/user.php):
- Replace five add_menu raw-HTML calls with comment-action-ajax and link fragment arrays joined by pipe separators
- Favorites toggle inlined via span fragment
- No raw HTML remains in user.php for action menus
- System helpers (core/system.php):
- Drop hclass variable in ashowcom; pass is_closed/closed_title
- Replace comment-action-link with link (including is_blank flag)
- Rewrite getCartSummary onto generic table/table-row/link/ajax fragments (no shop-cart-* fragments)
- Rename checkbox-input callers to checkbox
- Search, voting, admin config (modules/search/index.php, modules/voting/index.php, admin/modules/config.php):
- Switch comment-action-link to link
- Forum module (modules/forum/index.php):
- Open and close mod-form via forum-mod-form with open flag
- Pass is_closed/closed_title to forum-view-basic (no hclass)
- Shop module (modules/shop/index.php):
- Align cart callers with the new table-based summary
- Clients module (modules/clients/index.php):
- Switch clients-list-info to the generic post-div atom
- Help and order modules (modules/help/index.php, modules/help/admin/index.php, modules/order/index.php):
- Adjust getTplFieldsIn call sites to the named-array signature
- Parser (core/classes/parser.php):
- Rename checkbox-input call to checkbox
Benefits: - Removes the last inline <a> HTML from frontend PHP - Single link contract powers every non-htmx action link - Shop cart uses the generic table atom; no bespoke fragments left - Account views are contract-driven, not per-form duplicates
Technical notes: - Link fragment adds rel=noopener noreferrer to former target=_blank callers (security hardening, not behavior change) - Legacy add_menu(string) signature preserved for existing clients/forum callers; arrays joined with pipe separators at callsites
Drop the hclass attribute-string hack in favor of explicit is_closed/closed_title booleans, replace inline-style avatars with proper <img class="sl_avatar">, and rename forum-mod-form-open to forum-mod-form with an open flag (matching the table/cat-wrap pattern).
Core changes:
- Comment post shell (comment.html):
- Replace hclass passthrough with conditional is_closed attributes
- Default avatar branch now uses <img> (not <a style background-image>)
- Avatar fragment (comment-avatar.html):
- Switch from <a class sl_avatar style background-image> to <img>
- Forum list mod-form (forum-mod-form.html, renamed):
- Collapse forum-mod-form-open into single fragment with open flag
- Emit <form> on open and </form> otherwise
- Forum post shell (forum-view-basic.html):
- Replace hclass with is_closed/closed_title
- Switch avatar to <img>
- Private message shell (privat-message.html):
- Switch avatar to <img>
- Account profile view (account-view.html):
- Switch avatar to <img>
Benefits: - Removes every hclass attribute-string hack from the codebase - Eliminates inline style= for dynamic avatar URLs - Fewer fragment files (forum-mod-form-open gone via rename)
Technical notes: - Callers updated in the runtime-migration commit that follows - All three themes (default, simple, lite) kept in sync
Extend the shared form-add partial so callers can override action, method, form name/id, enctype, and append content after submit. Needed to migrate account forms (POST, GET activate, htmx hx-post variants) onto a single reusable contract.
Core changes:
- partials/form-add.html (default/simple/lite):
- Optional action with no_action bypass
- Optional method (default post), form_name (default post), form_id
- Optional enctype with no_enctype bypass; default multipart
- Optional form_attr raw-attribute passthrough
- Optional token (render only when present)
- Optional after_submit content hook
Benefits: - Single partial covers 7+ formerly separate account-*-form fragments - GET, POST and htmx-post flows share the same layout - Preserves defaults: existing callers continue to work unchanged
Technical notes: - All three themes carry identical markup - No PHP changes in this commit; runtime migration in later commits
Add CSS rules that back the inline-style removals in account and avatar grid fragments. Styles live exclusively in new.css per the project rule; no inline styles are reintroduced anywhere.
Core changes:
- new.css (default/simple/lite):
- .sl_table_amount td:first-child widths the date column
- .sl-avatar-grid + .sl-avatar-grid td provide fixed 6-column distribution without per-cell inline style
Benefits: - Removes style="width: X%" from HTML fragments - Consistent avatar grid rendering across themes
Technical notes: - Rules are additive; no existing selectors changed
Add four reusable atomic primitives that replace inline markup in forms and lists. These are the building blocks for the upcoming form-add consolidation and the account-* migration.
Core changes:
- checkbox.html:
- Unified checkbox input with optional label wrapper
- Supports is_checked, is_required, is_disabled, input_id, input_attr
- submit.html:
- Single submit-button contract with default sl-but-blue class
- Supports title, input_id, input_attr passthrough
- image.html:
- Generic <img> fragment with class and arbitrary attribute passthrough
- field-value.html:
- Form-row contract for read-only display (label + rendered value)
Benefits: - Eliminates copy-pasted <input type="submit"> and <img> markup - Enables form-add partial and account forms to share primitives
Technical notes: - All three themes (default, simple, lite) carry identical markup - No callers wired in this commit; migration follows in later commits
Generalize reusable atomic fragments so callers can cover more form and rendering scenarios through parameters rather than per-module copies. This is a backward-compatible extension that prepares the ground for consolidating account, forum and comment view paths.
Core changes:
- Input and textarea (input.html, textarea.html):
- Add is_checked, is_readonly, is_disabled booleans
- Support autocomplete_attr passthrough
- Default itype to text; make name_attr optional for textarea
- Switch textarea value to triple-brace for embedded HTML
- Anchor link (link.html):
- Add rel_attr passthrough, mutually exclusive with is_blank
- Table primitives (table.html, table-row.html):
- Expand header class/is_num handling and cell class overrides
- Support link_class and colspan on cells
- Ajax action link (comment-action-ajax.html):
- Minor refinements aligned with caller needs
- Post content wrapper (post-div.html):
- Normalize id/class/content contract
Benefits: - Fewer per-module variants needed for forms and tables - Consistent attribute surface across themes (default/simple/lite) - Backward-compatible: existing callers work unchanged
Technical notes: - No PHP changes in this commit - All three theme copies (default, simple, lite) kept in sync
Add CSS rules for all new sl-* class names introduced by the fragment consolidation. All new rules follow the sl-* (dash) naming convention. Applied identically to all three themes (default, lite, simple).
Core changes:
- Navigation (new.css):
- sl-navi-lower, sl-navi-lower-action: bottom-of-page action bar
- Utility classes (new.css):
- sl-highlight: search term highlight (red text, yellow bg)
- sl-geo-flag: geo-IP flag image alignment
- sl-calculator-field: narrow number input for calculator form
- Table enhancements (new.css):
- sl-table-num-link: pill-style anchor for numeric ID cells
- sl-table-date: inherit color for date cells
- Related items (new.css):
- sl-related-img-inner: object-fit cover for related item thumbnail
- sl-related-date: inherit color for related item date
- Card grid (new.css):
- sl-card-col-1 through sl-card-col-6: responsive column widths
- sl-grid: flex layout baseline corrections
- sl-card-aside: floating sidebar list within card
- sl-card-comment/reads/post/date/category/id/image/read/admin/menu: named element selectors
- Sprite-based icon rules for card meta elements
- Shop cart (new.css):
- sl-cart-table, sl-cart-head, sl-cart-row, sl-cart-foot
- sl-cart-col-num, sl-cart-col-content, sl-cart-col-stat
- sl-cart-id, sl-cart-plus, sl-cart-minus, sl-cart-checkout, sl-cart-total
Benefits: - All sl-* class names now have corresponding CSS rules - Zero unnamed or orphaned classes remaining in consolidated fragments
Technical notes: - Legacy sl_* classes in new.css are intentionally preserved for existing HTML - Sprite coordinates for card meta icons match existing sprite.png layout
Add two new page-section partials used via getHtmlPart() across all three themes (default, lite, simple). Partials differ from fragments in that they represent larger self-contained UI sections, not inline elements.
Core changes:
- navi-lower.html (templates/*/partials/):
- Navigation bar with back/home/top actions
- Replaces the former navi-lower fragment (getHtmlFrag → getHtmlPart)
- Uses sl-navi-lower / sl-navi-lower-action CSS classes
- calculator-form.html (templates/*/partials/):
- Currency calculator form with from/to fields and convert button
- Uses sl-calculator-form / sl-calculator-field CSS classes
- Callback function name passed via fn_name variable
Benefits: - Partials directory clearly separates section-level HTML from inline fragments - Self-contained layout sections no longer pollute the fragments namespace
Technical notes: - getHtmlPart() loads from templates/*/partials/ directory - Both partials are theme-duplicated (default/lite/simple share identical content)
Remove ~50 per-purpose fragment files replaced by consolidated generic fragments. Update remaining fragments with boolean-flag variant support. Add two new fragments (break, meta-value). Apply changes consistently across all three themes (default, lite, simple) and admin template.
Core changes:
- Removed fragments (per-purpose → consolidated):
- account-favorites-row/table, account-pm-list-row/table (→ table-row/table)
- account-mail-link, account-user-button, action-link, comment-num-link (→ link)
- comment-meta-color, comment-text, navi-tab-content, forum-post-div (→ post-div/meta-value)
- hit-badge, reads-badge (→ inline-badge), back-button, category-image (→ span/link)
- form-option, form-select, radio-option (→ select-option/select)
- grid-table/row/cell, clients-list-, users-top/stats/rules- (→ table/table-row)
- shop-order/partner/client rows/tables, shop-basic (→ table/table-row/card)
- assoc-item/wrap, auto-links-code-table, media-link-item (→ table/link)
- forum-delete-link, forum-group-span, forum-post-anchor, forum-rank-img (→ link/span)
- forum-sig, forum-status-icon (→ comment-signature/inline-badge)
- files-external-link, table-row-content (→ link/table-row)
- Updated consolidated fragments (card, inline-badge, input, link, related-item, select, span, table-row, table, shop-cart-*):
- Boolean flags replace hardcoded CSS class names (sl_ → sl- naming)
- card.html: columns grid support, aside_items, footer_items, title_html override
- inline-badge.html: is_hits, is_download, is_forum_closed, is_forum_last, is_topic_admin flags
- input.html: is_user_search, input_id, list_id, tip_html support
- link.html: is_shop_checkout, is_comment, is_read, is_card_image, is_media_*, is_account_button, is_num_anchor, is_button_blue flags
- select.html: is_multiple, is_name_array flags
- span.html: is_shop_price, is_card_reads, is_back, is_highlight, is_geo_flag flags; img_src support
- table-row.html: cells array iteration replaces per-column flat keys
- table.html: headers array replaces col_* flat keys (backward-compatible)
- New fragments:
- break.html: standalone <br> separator
- meta-value.html: label/value span pair (replaces comment-meta-color)
- Admin template:
- input.html: aligned with frontend (tip_html, input_id, is_user_search, list_id)
Benefits: - Fragment count reduced from ~80 to ~30 per theme - All CSS class variants controlled by flags, no per-purpose HTML files - Consistent naming: sl- (dash) for new rules, sl_ preserved for legacy
Technical notes: - Backward-compatible: old flat keys (col_id etc.) still work in table.html - sl_* legacy class references preserved in fragment HTML where used by existing CSS





