Журнал изменений

Журнал изменений

Фильтр и поиск

Всего: 1347 Доступных коммитов | Отфильтровано: 1347 Коммиты | Страница: 72 из 135
20.04.2026
Refactor: core + modules — migrate callers to liste partial and slim form-add
Автор: Eduard Laas | Дата: 22:01 20.04.2026

Align call sites with two consolidated template contracts:

  • liste partial absorbs table-open/rows/table-close/empty-alert/pager, replacing the old table + table-row + alert branching in callers
  • form-add partial accepts a single fields string; callers now compose token, name, email, title, category, text, site fields from atomic fragments themselves

Core changes:

  1. core/user.php (getPrivateMessageView):
  • Introduce local $messageList helper that emits liste partial
  • Convert inbox/outbox/saved lists to build $rows arrays and hand them to the helper instead of manual table + alert branching
  • Switch row loop to while ($row = ...) pattern used elsewhere
  1. Module callers (modules/*/index.php):
  • form-add contract migration:
    • account, contact, recommend, shop.kasse: inject token via getHtmlFrag('hidden') inside fields instead of token param
    • money, order: drop redundant empty token param
    • whois.add, help.add/addview, auto_links.add: replace lbl_*, emailval, titleval, catselect, hometext, siteval, has_name/is_user with composed fields built from form-field-row fragments
  • liste partial migration (table + alert + pager collapsed to one call):
    • auto_links.send, clients., content, faq, files, jokes, links, media, news, pages, shop.kasse/clients/partners, users., account.last/asetup
  • Consistently switch list loops to while ($row = $db->getSqlRow()) with array destructuring for readability and alignment with existing patterns

Benefits:

  • One template contract for listings; callers stop emitting scaffolding
  • Token injection is visible at the call site, matching how all other form fields are composed
  • Empty-result branches no longer duplicate alert scaffolding
  • Smaller modules files overall (-362 lines vs +405 lines removed)

Technical notes:

  • Pairs with the preceding templates/partials — slim form-add commit
  • No behavioural change in output structure; visible HTML matches the previous table/alert markup (liste is a wrapper around the same table/table-row/alert fragments)
  • getHtmlPart('liste', ...) accepts: rows, table_open, table_close, optional empty_alert, optional pager_html
Refactor: templates/partials — slim form-add to fields-only contract
Автор: Eduard Laas | Дата: 22:01 20.04.2026

Drop all inline field rendering from form-add partials. The partial now only renders the form shell, extrafields, fields and the submit row; per-field scaffolding (token, name, email, title, category, hometext, bodytext, fields_before/after_text, site) is no longer the partial's responsibility.

Core changes:

  1. Form shell partial (templates/default/partials/form-add.html):
  • Remove inline {% if token %} hidden input
  • Remove inline {% if has_name %}/{% if is_user %} username blocks
  • Remove inline {% if emailval %}, {% if lbl_title %}, {% if lbl_cat %}
  • Remove inline {% if hometext %}, {% if bodytext %}, {% if siteval %}
  • Remove {% if fields_before_text %} / {% if fields_after_text %} hooks
  • Keep: form tag, extrafields, fields, submit row
  1. Same change applied to templates/lite/partials/form-add.html
  2. Same change applied to templates/simple/partials/form-add.html

Benefits:

  • Single rendering contract across themes (no divergent inline markup)
  • Callers compose the body from atomic fragments they already own
  • No surprise required fields hidden in the partial; form semantics (required, placeholder, names) live where the data lives

Technical notes:

  • Breaking contract: callers must now inject token, name, email, title, category, text/body, site fields via fields (see accompanying modules refactor commit)
  • Unused params (token, has_name, lbl_*, emailval, hometext, bodytext, siteval, etc.) are simply ignored by the thinner partial
Feature: blocks — normalize filenames by dropping `block-` prefix
Автор: Eduard Laas | Дата: 22:00 20.04.2026

Unify block file naming across storage, admin UI, default data and docs. Block files no longer carry a block- prefix; the admin editor, default dataset, migration and template comments are aligned to the new scheme.

Core changes:

  1. Block files (blocks/):
  • Rename 23 block files: block-<name>.php -> <name>.php
    • Covers navigation, language, user_info, stat, banner_random, forum, login, menu, modules, news, pages, faq, files, jokes, jokes_random, auto_links, center*, img, links, search, voting
  • No code changes inside block files themselves
  1. Admin editor (admin/modules/blocks.php):
  • Update scandir() regex to match ^(.+)\.php$ instead of ^block-(.+)\.php
    • Affects add(), fileedit(), filecode(), edit() scanners
  • Update POST validation for bfile to accept bare filenames
    • addsave(), editsave(), filecode(), filecodesave()
  • Update filecode() path rewrite to drop the block- prefix injection
  • Update title fallback in addsave() to only strip .php
  1. Default dataset & migration (setup/sql/):
  • insert.sql: rewrite default _blocks rows to new filenames
  • table_update6_3.sql: add UPDATE statement to strip block- from bfile for existing installations during upgrade
  1. Template comments (templates/*/assets/css/blocks.css):
  • Update inline doc reference blocks/block-keywords_search_style.php to blocks/keywords_search_style.php in default and lite themes

Benefits:

  • Consistent filename convention across the codebase
  • Shorter, cleaner block filenames in admin and storage
  • Fresh installs and upgrades both land on the new scheme

Technical notes:

  • Upgrade path is handled by a single UPDATE in table_update6_3.sql
  • Admin regex now accepts any <name>.php under blocks/, which is the same trust boundary as before (still scoped to the blocks/ directory)
  • No behavioural change in block rendering; only naming is affected
Refactor: templates — remove obsolete fragments and partials
Автор: Eduard Laas | Дата: 15:22 20.04.2026

Delete all template files that are no longer referenced by any PHP caller after the migration to generic fragments and inlined form-add/form-wrap patterns. Applied uniformly to default, lite, and simple themes.

Core changes:

  1. Fragments replaced by generic fragment flags:
  • submit → form-submit fragment (same rendering, unified contract)
  • graphic → span with class + title
  • line-stack-item → span with sl-line-stack-item + is_line_break flag
  • msg-center → post-div with is_center flag
  • messagebox → post-div with class + title fragment
  • radio-group → post-div with sl-radio-group class
  • category-icon → link with img_src (or span for locked items)
  • category-title → link/span with sl-catname class
  • category-sub-item → post-div
  • div-hr → post-div with has_hr flag
  • tip → post-div with date-badge + span inside
  • basic-search → caller builds search inline
  1. Auto-links fragments replaced:
  • auto-links-embed-link → link fragment
  • auto-links-embed-image → link with img_src
  • auto-links-code-row → table-row + textarea
  1. Code display:
  • code-table → table open/close with is_form flag
  1. Rating/voting:
  • voting-post → checkbox/radio + list-item
  • voting-basic → post-div with class post-vote
  1. Shop fragments:
  • shop-cart-button → link with is_htmx + onclick_attr
  • shop-kasse-content → post-div wrapper
  1. Email/notification fragments:
  • security-mail-message → message-block partial
  • rss-source-title → title (is_level_two) + link (is_blank)
  • recommend-success-text → alert fragment
  • account-comment-section → nested post-div
  1. Media:
  • media-link-row → form-field-row with link label + input
  1. Partials replaced by form-add/form-wrap + inlined fields:
  • contact-form → form-add with form-field-row fields
  • files-download-form → form-wrap with hidden + form-submit
  • forum-reply-form → form-add with form_attr
  • calculator-form → form-add with number/result/button fields
  • mini-post-form → form-add
  • fieldset-post-form → fieldset-block
  • recommend-form, rss-info-form, rss-read-forms → form-add with inlined fields
  • shop-kasse-form → retained as named partial (not deleted)
  • whois-output → inline fieldset-block composition

Benefits:

  • Removes ~108 dead template files from the repository
  • Fragment directory contains only actively used generic components
  • Partial directory retains only true reusable view shells

Technical notes:

  • All deleted files have confirmed zero callers after preceding refactor commits
  • Applied identically to default, lite, and simple themes
Refactor: templates — update existing fragments and partials to new contracts
Автор: Eduard Laas | Дата: 15:21 20.04.2026

Extend generic fragments to support new boolean flags and rendering variants required by the PHP caller migration. Update partials to use fragment includes instead of inline HTML, completing the transition to a fully data-driven template layer. Applied uniformly to default, lite, and simple themes; plus templates/lite/index.php.

Core changes:

  1. link.html: add onclick_attr pass-through for arbitrary onclick without is_delete; is_cart_checkout added to class chain

  2. list.html: add is_unordered flag to render <ul> instead of <ol>

  3. post-div.html: add has_hr flag to render <hr> after the closing </div>

  4. span.html: add is_line_break flag (appends <br>); add content_html slot for raw HTML content alongside existing text slot; is_danger class added to chain

  5. title.html: add title_class parameter to override sl-title on h3; add title_html slot for raw HTML in h2/h3/h4 variants; add is_level_four / h4 rendering variant

  6. checkbox.html: add is_plain flag for plain label-only layout (used in voting polls)

  7. radio.html: updated data binding for inline voting list rendering

  8. form-submit.html: align class/input_attr parameters for form-submit callers

  9. form-field-row.html: minor slot/attribute alignment

  10. date-badge.html: add class parameter for custom date badge styling

  11. login-nav.html: convert inline HTML elements to fragment includes:

    • input/password fields → {% include 'fragments/input.html' with ... %}
    • submit button → {% include 'fragments/button.html' with ... %}
    • lost/register/token/refer/op → fragment includes via data arrays from PHP
  12. form-add.html, form-wrap.html: attribute normalization and slot alignment

  13. fieldset-block.html: field/content slot updates

  14. contact-block.html: minor field alignment

Benefits:

  • login-nav partial is now fully fragment-based — no inline HTML strings
  • title fragment covers h2/h3/h4 with or without raw HTML content
  • span and post-div cover remaining inline layout needs without new fragments

Technical notes:

  • Applied identically to default, lite, and simple themes
  • templates/lite/index.php updated for related partial/fragment API changes
Refactor: modules — migrate callers to new fragment/partial contracts
Автор: Eduard Laas | Дата: 15:21 20.04.2026

Replace obsolete single-purpose fragments and partials with generic alternatives across all affected modules. Forms previously delegated to dedicated partials are now built inline using form-add/form-wrap + form-field-row + form-submit, removing the need for thin wrapper partials that added no reusable logic.

Core changes:

  1. submit → form-submit across all callers (account, files, forum, links, money, news/admin, recommend, rss, search, shop, voting, whois, contact):

    • Replaces the standalone submit input fragment with the standard form-submit which integrates class and extra-attribute support
  2. Partial-to-inline form migration:

    • contact: contact-form partial → form-add with inlined form-field-row fields
    • files/media: files-download-form partial → form-wrap with inline form-submit
    • forum: forum-reply-form partial → form-add with form_attr for sl-forum-reply-form
    • money: calculator-form partial → form-add with inlined number/result/button fields
    • whois: mini-post-form partial → form-add; fieldset-post-form → fieldset-block
  3. Fragment replacements:

    • auto_links: auto-links-code-row + auto-links-embed-link/image → table-row + textarea
    • auto_links/news: code-table → table open/close with is_form flag
    • content/news/links: div-hr → post-div with has_hr flag and id preserved
    • content: tip → post-div with date-badge + span(sl_views) inside
    • media: media-link-row → form-field-row with link label and input
    • voting: voting-basic → post-div with class post-vote
    • shop: shop-cart-button → link with is_htmx; shop-kasse-content → post-div
    • recommend: recommend-success-text → alert or direct text
  4. Email/notification fragments:

    • contact: contact-email-body → message-block partial with lines[]
    • recommend, rss, money: respective email fragments → message-block partial

Benefits:

  • Thin wrapper partials (files-download-form, forum-reply-form, calculator-form, mini-post-form, contact-form) no longer needed; forms built from generic parts
  • submit fragment eliminated as a standalone — form-submit is the canonical form
  • div-hr, tip, auto-links-code-row removed as call sites are updated

Technical notes:

  • No functional behavior changes — structure and HTML output remain equivalent
  • All 17 affected module files updated in this commit
Refactor: core — migrate pdo, helpers, security, system, user to new fragment API
Автор: Eduard Laas | Дата: 15:20 20.04.2026

Continue the contract-driven fragment migration: replace obsolete single-purpose fragments with boolean-flag extensions of existing generic fragments or consolidated partials, removing the last CSS class strings from PHP callers.

Core changes:

  1. Database error display (core/classes/pdo.php):
  • pdo-error-badge → getHtmlFrag('span', ['label', 'content_html', 'is_danger' => true])
  1. Utility helpers (core/helpers.php):
  • getTplRadioGroup(): radio-group → post-div with class sl-radio-group
  • getTplNewGraphic(): graphic → span with icon class and title
  • rss_read(): rss-source-title → title fragment (is_level_two) + link (is_blank)
  • letter(): line-stack-item → span with sl-line-stack-item class and is_line_break flag
  • addFilescanTask(): security-mail-message → getHtmlPart('message-block', ...)
  • encode_php(): code-table → table open/close with is_form flag
  • render_blocks(): msg-center → post-div with is_center flag
  • warnings(): warning-list → list fragment
  1. Security email (core/security.php):
  • addMail(): security-mail-trace → getHtmlPart('message-block', lines[])
  1. System helpers (core/system.php):
  • setHead(): login-nav partial extended with pre-built sub-field data arrays (name_field, password_field, submit_button, lost_link, register_link, token_field, etc.)
  • setCategories(): category-icon → link with img_src (accessible) or span for locked; category-title → link/span with sl-catname class; category-sub-item → post-div
  • getVotingView(): voting-post → checkbox/radio with is_plain + list-item
  1. User/message rendering (core/user.php):
  • setComShow(): account-comment-section → nested post-div with id=comm/repcsave; submit → form-submit fragment
  • setMessageShow(): messagebox → post-div with class message-box + title fragment; introduced $messageBox closure to deduplicate the four view-type branches
  • getPrivateMessageView(): submit → form-submit fragment

Benefits:

  • PHP callers no longer embed CSS class knowledge or HTML structure decisions
  • login-nav partial now fully self-contained: all sub-elements passed as data arrays
  • Voting form uses standard checkbox/radio fragments instead of custom voting-post
  • Security email footers unified through message-block partial

Technical notes:

  • security-mail-trace and security-mail-message fragments no longer referenced
  • category-icon and category-title fragments no longer referenced from PHP
  • voting-post fragment no longer referenced from PHP
  • code-table fragment no longer referenced from PHP
Chore: config — update base fingerprint
Автор: Eduard Laas | Дата: 14:28 20.04.2026

Regenerated base_fingerprint after the template and core refactor wave to reflect the current canonical state of the codebase.

Core changes:

  1. Fingerprint update (config/local.php):
  • base_fingerprint: f005dfd5acda9f455681e75d1976bf6c15b89e63 → 9bac3d7739a31f67a5d1f459dec1ae23f316a997

Benefits:

  • Config fingerprint matches the refactored codebase state
  • Prevents false-positive base-mismatch warnings on next run

Technical notes:

  • Automatic regeneration; no logic changes
Style: templates/css — add sl-fieldset, sl-text, sl-rate, sl-letter rules across all themes
Автор: Eduard Laas | Дата: 14:28 20.04.2026

Add new sl-* CSS rules required by the consolidated partial and updated fragment templates introduced in this refactor wave. Applied uniformly to default, lite, and simple themes.

Core changes:

  1. Fieldset and text utility classes (*/assets/css/new.css):
  • sl-fieldset-form-legend-success, sl-fieldset-form-legend-danger: fieldset legend states
  • sl-fieldset-center: centered fieldset content
  • sl-fieldset-legend-info: info-state legend color
  • sl-text-success, sl-text-danger: inline text state colors
  • sl-text-bold: font-weight shorthand
  • sl-text-justify: text-align helper
  1. Alpha navigation letter badge:
  • sl-letter: styled inline letter box for alpha-nav links (replaces old inline style)
  1. Rating system CSS (sl-rate-*):
  • sl-rate, sl-urating, sl-crating: star rating bar layout and positioning
  • min-rate variants: compact 16px rating bar for content lists
  • sl-rate-like, sl-rate-plus, sl-rate-minus: like/dislike button sprites
  • sl-rate-num, sl-rate-is: score bubble with directional arrow and active state
  • data-sl-rating-width attribute selectors (0–100): replace inline style width for CSP compliance and data-attribute-driven rendering

Benefits:

  • All visual state decisions moved from PHP into CSS and data-attributes
  • data-sl-rating-width eliminates inline style="width:X%" on rating bars
  • New utility classes cover fieldset/form feedback states without custom CSS

Technical notes:

  • sl-rate-* rules migrated from legacy inline CSS; no functional change
  • data-sl-rating-width selectors cover 0–100 integer percent values
  • Applied identically to default, lite, and simple themes
Refactor: templates — remove obsolete fragments replaced by consolidated contracts
Автор: Eduard Laas | Дата: 14:27 20.04.2026

Delete all fragment templates that are no longer referenced by PHP callers after the migration to boolean-flag fragments, unified partials, and merged rating/list/action contracts. Applied uniformly to default, lite, and simple themes.

Core changes:

  1. Fragments replaced by boolean flags in existing fragments:
  • category-link → link with is_category; category-select → select
  • action-delete → link with is_delete; action-menu-item → list-item
  • comment-date → inline-badge with is_comment_date
  • comment-avatar → image with is_avatar; comment-rank-image → image
  • meta-value → span with label; bold-text → span with is_bold
  • br-line, break → removed (handled inline or replaced by list/line-stack-item)
  • view-field → field-value fragment; heading-2 → title fragment
  • alpha-nav-link, alpha-nav-text → removed (caller handles inline)
  • navi-tab-link → link + list-item combination
  1. Fragments replaced by consolidated partials:
  • account-view → partials/account-view; login → partials/login-nav
  • contact-form, contact-email-body → partials/contact-form + message-block
  • ajax-textarea-form → partials/form-wrap
  • forum-reply-form, forum-mod-form, forum-mod-check, forum-mod-checkall → partials/forum-reply-form
  • forum-htmx-edit-link, forum-status-img, forum-status-img-link, forum-topic-icon → partials
  • files-download-form → partials/files-download-form
  • recommend-form, recommend-mail-message → partials/recommend-form + message-block
  • rss-info-form, rss-read-forms → respective partials
  • session-summary → partials/session-summary
  • shop-kasse-form, shop-voting-box → partials/shop-kasse-form
  • voting-widget → partials/voting-widget
  • whois-domain-form, whois-info-button, whois-license-add-button, whois-license-form, whois-output-open/line/close, whois-result → partials/whois-output
  • money-email-confirm, money-email-order, order-email-admin → partials + message-block
  • comment-list-form → partials/mini-post-form; privat-message → forum-view-basic
  • main-slider → partials/main-slider
  1. Rating duplicates removed:
  • rating-bar-live, rating-like-live → merged into rating-bar/rating-like with is_live flag
  1. Misc micro-fragments removed:
  • modul-link, media-link-break, media-post-badge, form-submit-btn
  • faq-quicklinks-open, faq-quicklinks-row, faq-quicklinks-close → table/table-row
  • partials/alerts, partials/login-without, partials/login

Benefits:

  • Removes ~180 dead template files from the repository
  • Fragment directory contains only actively used atomic components
  • Eliminates the possibility of callers using stale/obsolete contracts

Technical notes:

  • All deleted files have confirmed zero callers after previous refactor commits
  • Applied identically to default, lite, and simple themes (~180 files total)
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код

Предварительный просмотр