Последнии сообщения форума
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
Replace per-purpose fragment names with generic consolidated fragments across all 21 modules, consistent with the new flat fragment API introduced in the core layer.
Core changes:
- hit-badge → inline-badge (modules/auto_links, files, links, media, news, recommend, rss, search, shop, users, whois):
- Added is_hits, is_download flags for CSS class variants
- Renamed title → title_text, text → label
- form-option → select-option (modules/account, contact, faq, files, help, jokes, links, money, news, pages, rss, search, shop, users):
- Renamed value → value_attr, label → label_text, selected → is_selected (bool)
- action-link → link (modules/clients, content, files, forum, links, media, money, pages, search, shop, users):
- Added is_button_blue, is_comment, is_read flags for CSS class variants
- Misc fragment renames per module:
- clients-list-basic/open → table open/close with cells array
- users-stats/top/rules basic/open → table open/close with cells array
- shop-order/partner/client rows/tables → table open/close with cells array
- navi-lower fragment → navi-lower partial (getHtmlPart)
- auto-links-code-table → code-table
- reads-badge → inline-badge with is_download flag
- media-link-item → link with is_media_ed2k/is_media_http flags
- back-button → span with is_back flag
- category-image → link with is_card_image flag
Benefits: - Completes fragment consolidation across all PHP layers - Single source of truth per HTML pattern (link, span, table, etc.) - Boolean flags replace per-purpose fragment files
Technical notes: - No behavior change; output HTML is functionally identical - navi-lower moved from getHtmlFrag to getHtmlPart (partials directory)
Replace per-purpose fragment names with generic consolidated fragments (select, input, link, span, table-row, table, post-div, meta-value) to match the new flat fragment API where each fragment handles multiple variants via boolean flags.
Core changes:
- Fragment renames (core/helpers.php):
- refresh-select-time → select (name_attr, options_html)
- multi-select → select (added is_multiple, is_name_array flags)
- user-search → input (added is_user_search, endpoint_attr flags)
- Fragment renames (core/system.php):
- span with class → span (is_highlight, is_geo_flag flags)
- navi-tab-content → post-div
- geo-ip-flag → span (is_geo_flag flag)
- comment-num-link → link (is_num_anchor flag)
- comment-meta-color → meta-value
- comment-text → post-div
- shop-cart-table open/close pattern consolidated into single call
- Fragment renames (core/user.php):
- account-mail-link → link (label_html, is_blank flags)
- account-user-button → link (is_account_button, is_blank flags)
- account-pm-list-row → table-row (cells array)
- account-pm-list-table → table open/close pattern
- account-favorites-row → table-row (cells array)
- account-favorites-table → table open/close pattern
- comment-meta-color → meta-value
- form-option → select-option (value_attr, label_text, is_selected)
Benefits: - Reduces fragment count from ~80 to ~30 consolidated fragments - All rendering variants controlled by boolean flags in PHP - Consistent API across all call sites
Technical notes: - No behavior change; output HTML is functionally identical - table open/close pattern: getHtmlFrag('table', ['open'=>true,...]) ... getHtmlFrag('table', [])
Реструктуризация шаблонов: крупные фрагменты (form-add, view, liste) вынесены из fragments/ в partials/. Добавлены новые фрагменты для head-ссылок, скриптов, сессий и превью изображений.
Core changes:
- Удалены fragments (default, lite, simple):
- form-add.html, media-form-add.html → partials/form-add.html
- view.html → partials/view.html
- table-row-liste.html → inline в table-row.html (единый фрагмент)
- whois-add-form.html, whois-status.html → инлайн в модуле
- account-privat-tab-pane.html → заменён post-div фрагментом
- Новые fragments (default, lite, simple):
- head-link.html, head-script-src.html, head-script-inline.html
- image-preview.html, session-row.html, session-summary.html
- action-delete.html, action-menu-item.html
- editor-action-insert.html, editor-action-menu.html
- forum-reply-form.html, forum-topic-icon.html
- Новые fragments (admin):
- img-preview.html, editor-action-insert.html, span-raw.html
- Обновлённые fragments:
- table-row.html: объединяет старый table-row-liste в единый условный шаблон
- alert.html: поддержка messages-массива вместо text-строки
- media-link-row.html: переход с table-разметки на div.sl-form-row
- textarea.html: добавлен placeholder_text
- partials/preview-content.html: title_html → title_text (безопасный вывод)
- category-row.html: обновлены переменные разметки
- CSS (new.css, все темы):
- Добавлены стили для session-table, image-preview-toggle, image-preview-mini
Benefits: - Чёткое разграничение: fragments — атомарные UI-элементы, partials — страничные блоки - Новые фрагменты устраняют inline-HTML в PHP-коде - preview-content.html не допускает XSS через title ({{ вместо {{{)
Technical notes: - Новые partials/view.html, form-add.html, liste.html добавлены во все темы - table-row.html обратно совместим через условие cells_html
Компоненты вне core/ и modules/ переведены с устаревших хелперов на прямые вызовы $tpl->getHtmlFrag(). Устранены зависимости от удалённых функций getTplImageSelect, getTplCategoryPreview, getMailLink и др.
Core changes:
- admin/modules/categories.php:
- Локальная функция getAdminCategoryImageSelect() заменяет getTplImageSelect()
- getTplCategoryPreview() → getHtmlFrag('img-preview', ...)
- admin/modules/admins.php:
- getMailLink() → getHtmlFrag('link', ['href' => 'mailto:...'])
- alert messages передаётся как массив через 'messages'
- admin/modules/config.php, monitor.php, referers.php:
- getTplExternalAction() → getHtmlFrag('comment-action-link', ...)
- getTplSpan() → getHtmlFrag('span-raw', ...)
- setPageNumbers() → getPageNumbers()
- blocks/block-login.php, block-user_info.php:
- getTplTextInput / getTplHiddenInput → прямые getHtmlFrag-вызовы
- plugins/editors/*:
- getHtmlScriptSrc / getHtmlCssLink → head-script-src / head-link фрагменты
- config/local.php:
- Обновлён base_fingerprint
Benefits: - Все PHP-компоненты проекта унифицированы на одном механизме рендера - Удалены последние явные зависимости от helpers-old.php
Technical notes: - getAdminCategoryImageSelect() определена локально в categories.php - fingerprint обновлён после реструктуризации шаблонов
Все фронтенд-модули переведены с устаревших обёрток (getTplMetaRefresh, getTplGenderSelect, getTplSelectOption, getTplRadioForm, getTplFieldsOut и др.) на прямые вызовы $tpl->getHtmlFrag() с явными именами фрагментов.
Core changes:
- account (modules/account/index.php, admin/index.php):
- getTplMetaRefresh() → getHtmlFrag('meta-refresh', ...)
- getTplGenderSelect() → getHtmlFrag('select', ...) с inline-опциями
- getTplRadioForm() → getTplRadioGroup() с явными опциями
- account-privat-tab-pane → post-div
- alert 'text' → 'messages' для массивов ошибок
- forum (modules/forum/index.php):
- getTplForumIcon / getTplForumReplyForm → прямые getHtmlFrag-вызовы
- Пагинация и фрагменты обновлены
- media, links, files, help, faq, pages (modules/*/index.php):
- Замена getTplSearchResultTitle, getTplMoneyCalcForm, getTplViewFieldRows
- Миграция form/view/liste на новые partials
- news, search, shop, whois, users, voting и другие модули:
- getStopText() заменён передачей массива messages напрямую
- Все getHtmlFrag-вызовы унифицированы
Benefits: - Устранены десятки тонких обёрток, код модулей стал однообразным - alert-фрагмент получает messages-массив вместо pre-joined строки - Удалены зависимости от helpers-old.php во всех модулях
Technical notes: - getTplFieldsOut() переименован в getTplViewFieldRows() (уже в предыдущем commit) - setPageNumbers() вызывается как getPageNumbers() там где применимо
Удалён устаревший helpers-old.php со старыми обёртками. Все вызовы getHtmlScriptSrc(), getHtmlHeadLink(), getTplHiddenInput() и прочих функций-обёрток заменены на прямые вызовы $tpl->getHtmlFrag().
Core changes:
- helpers-old.php (core/helpers-old.php):
Файл удалён полностью * Все функции перенесены или заменены inline-вызовами $tpl->getHtmlFrag()
- helpers.php (core/helpers.php):
- Удалены мёртвые обёртки: getTplRefreshTimeSelect(), getTplMoneyCalcForm(), getTplSearchResultTitle()
- getTplAddDateTime() и getTplBbEditor() мигрированы на getHtmlFrag('hidden', ...)
- getTplPreviewContent() передаёт title_text вместо title_html
- getTplFieldsIn() инлайнит input-рендер напрямую
- system.php (core/system.php):
- getHtmlScriptSrc/Inline/CssLink заменены на head-script-src/head-script-inline/head-link фрагменты
- filterTextHighlight() использует span/span-raw фрагменты через preg_replace_callback
- getNaviTabs() инлайнит рендер через navi-tab-link/content/wrap фрагменты
- access.php / security.php (core/):
- getTplFragmentName('head-link-css') заменён на прямой вызов head-link фрагмента
- favicon и CSS-ссылки рендерятся через head-link фрагмент
- user.php (core/user.php):
- getTplHiddenInput / getTplTextInput заменены на getHtmlFrag('hidden'/'input')
- getPrivateMessageView() принимает string|array $stop
Benefits: - Устранён слой обёрток-посредников, снижена цикломатическая сложность - Рендер HTML унифицирован через единственный механизм $tpl->getHtmlFrag() - Удалён мёртвый файл helpers-old.php
Technical notes: - getTplFragmentName() больше не нужна, вызовы заменены литеральными именами - preg_replace заменён на preg_replace_callback для доступа к $tpl в замыкании
Финальный шаг консолидации: все frontend-фрагменты приведены к структуре templates/{default,lite,simple}/fragments/*.html без поддиректорий. new/ поддиректория удалена. Добавлены фрагменты для форм, рейтинга, навигации, аккаунта и личных сообщений. Устаревшие дубликаты удалены.
Core changes:
- Renamed from new/ to root (per theme: default, lite, simple):
assoc-item, card, code-block, code-hljs, code-row, code-table, form-add, form-field-row, graphic, grid, hidden, input, msg-center, pager, related, related-item, select, shop-basic, shop-cart-item-row, shop-cart-table, span, table, table-row, table-row-content, table-row-liste, textarea, tip, view, view-field, voting-widget
- New fragments added (per theme):
- category-icon, category-title (icon/title with optional link)
- edit-tip, editor-file-row (editor UI helpers)
- inline-badge, link (generic UI elements)
- radio, radio-group (form radio controls)
- rating-bar-live (HTMX 5-star voting)
- title-tip-item (sub-item for title-tip pre-render)
- Modified fragments:
- assoc-wrap, checkbox-input, forum-view-change: contract updates
- breadcrumb-link: removed (merged into link contract)
- CSS new.css: add .sl-radio-group flex layout
- Deleted old root fragments (replaced by contracts above):
- login, login-logged, login-without (→ login/login-* contracts in system.php)
comment, comment-action-ajax/link, comment-avatar, comment-bulk-actions, comment-date, comment-list-form, comment-meta-color, comment-num-link, comment-rank-image, comment-signature, comment-text
account-comment-section/form, account-message-admin-note, account-nav, account-nav-item, account-pm-icon-link, account-pm-list-row, account-pm-list-table, account-privat-message-form, account-user-button
- account-favorite-add/off/on, account-favorites-row/table
- messagebox, privat-message
- alpha-nav-link, alpha-nav-text, navi-tab-link, navi-tab-content, navi-tabs-wrap
- categories, category-row, category-select, category-sub-item
- rating-like, rating-like-live, rating-bar, rating-wrap, file-input
- kasse-basic, kasse-wrap, meta-refresh
- Various block-, action-, basic-* legacy fragments no longer referenced
Benefits: - Fragment namespace flat and consistent: no subdirectory lookup - ~130+ obsolete fragments removed per theme - PHP helpers/modules resolve fragments without path manipulation
Technical notes: - templates/*/fragments/new/ directories fully removed - All login, comment, account, PM, rating, form fragments now at root - sl-radio-group CSS added to all three theme new.css files





