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

Официальный сайт SLAED CMS

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

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

Всего: 1195 Доступных коммитов | Отфильтровано: 1195 Коммиты | Страница: 1 из 120
Сегодня (29.09.2026)
Docs: The stand gains a sixth series - eight faces of the save confirmation, from which the ring was chosen
Автор: Eduard Laas | Дата: 15:54 29.09.2026

The confirmation an admin screen shows after a save was compared in eight faces before one went into the theme. The series stays on the stand beside the others, so the choice can be seen against what it was chosen from.

Core changes:

  1. The series (demo/flash-01-stamp.html ... demo/flash-08-orbit.html):
  2. One stage in all eight: the head of the blocks module, the flash where module-head.html prints it, the info alert of the live page under it, a desk that replays the flash, and the four tones side by side

  3. Each face changes the arrival, the countdown, the exit and the success tick, and nothing else
  4. The faces stand on the bar the theme had before the ring, which their shared styles restore
  5. Stand behaviours (demo/assets/demo.js, demo/assets/demo.css):
  6. DEMO_FLASH manifest and its place in DEMO_SERIES, so the gallery shows the series by itself
  7. data-demo-flash replays a template into data-demo-flash-host and lets the theme's htmx:afterSwap hook arm the autohide; data-demo-flash-loop plays it again after the exit

  8. data-demo-about fills the card of a face from its manifest entry
  9. Reference (demo/README.md):
  10. The sixth series, its table of faces, and the note that 03 Ring lives in the admin theme

Benefits:

  • The countdown and the exit on the stand are those of slaed.js, not an imitation

Technical notes:

  • The stand does not ship; nothing outside demo/ changes
Feature: A star vote bursts the stars up to the choice, and a repeated vote is told when it may come back, on a toast that stays dark
Автор: Eduard Laas | Дата: 15:53 29.09.2026

The favourite star already had a burst - a pop, a ring wave and sparks. The rating stars now share it: once the counted rating is swapped in, the stars up to the chosen one burst in a row. The toast a refused vote raises turned white in the dark scheme, and the repeated-vote message ended in a bare number of days.

Core changes:

  1. One burst for two owners (plugins/system/slaed.js):
  2. setBurst(node, turn) pops one node and staggers it by --sl-d-turn; the favourite star calls it as before
  3. A star vote is remembered in htmx:configRequest with its target and value; htmx:afterSwap of that target bursts the stars up to the value, and a refused vote forgets it

  4. Burst and toast styles (templates/lite/assets/css/theme.css):
  5. .sl-is-burst is no longer bound to .sl-fav; a rating star takes the round the ring needs only while it bursts
  6. The sparks stay hidden until their star's turn; keyframes renamed sl-burst-pop, -ring and -spark
  7. The toast is an inverse band, as the top bar is: --sl-bg-inverse with --sl-band-text in both schemes
  8. The repeated-vote message (core/system.php, lang/*.php, docs/RATINGS.md):
  9. _RATINGS_WAIT names the date the next vote opens, in _DATESTRING, in all six locales

    • a date reads without plural forms, which a bare count of days could not

Benefits:

  • The rating answers a vote with the same gesture the favourite star does, from one mechanism
  • The toast reads on either page, and the message says when rather than a number of what

Technical notes:

  • The --sl-fav-* tokens keep their names: the API is frozen, so the rating stars read them as they are
  • Retry-After still carries seconds; only the text changed
  • tools/ui-audit-baseline.json and tools/ui-contrast.json are stored for the whole series of three commits
Feature: A save is confirmed in green on a ring that counts its five seconds, and every alert tone moves its own way
Автор: Eduard Laas | Дата: 15:52 29.09.2026

The flash an admin screen prints after an action was an info alert that counted down with two hair lines, and the success tick and the accent megaphone pulsed exactly as the info letter did. A confirmation is now a success alert, the flash springs in and counts down on a ring round its tick, and the success and accent glyphs have motion of their own in both themes.

Core changes:

  1. The flash is a success (core/system.php, core/helpers.php):
  2. getFlashHtml() passes type success, or warn for a refusal, instead of is_warn
  3. The saved-help notice of a module passes type success as well
  4. The ring countdown (templates/admin/fragments/alert.html, templates/admin/assets/css/theme.css):
  5. sl-alert-flash-bar holds an SVG circle with pathLength 100; stroke-dashoffset runs it out over --sl-flash-dur

    • the ring is centred on the tick, its track an inset shadow of --sl-flash-mix of the tone
  6. The flash springs in with sl-alert-pop and leaves scaled down; the two hair lines and sl-alert-flash-frame are gone
  7. Tone glyphs (templates/admin and templates/lite, assets/css/theme.css):
  8. Success: sl-alert-land, a turn in, then sl-alert-glow
  9. Accent: the megaphone tips up from its grip (sl-alert-announce) and two arcs of voice leave its bell (sl-alert-voice)
  10. Info keeps its pulse, warn its shake, error its beat
  11. Tokens and contract (base.css of both themes, tools/ui-contract.php):
  12. --sl-alert-ease in both themes, --sl-flash-ring and --sl-flash-mix in admin
  13. The divergence reasons of .sl-alert-flash and .sl-alert-flash-bar describe the ring

Benefits:

  • A confirmation reads as a success at a glance, and no two tones share a motion
  • The countdown uses no registered property, so it animates the same in every browser

Technical notes:

  • The fragment markup of a flash gains one SVG; the autohide of slaed.js is unchanged
  • Motion stands under prefers-reduced-motion; the reduce rules also stop the arc and the ring
  • This commit also restores four lines of the previous one that its hunk-wise staging put a few lines off, among them the text colour of a toolbar item in hand

Style: The dark panel stops glaring - heads, toolbar, footer and toned buttons are one deep solid bar, with a beam and a pointer light
Автор: Eduard Laas | Дата: 15:49 29.09.2026

In the dark scheme the tone tokens turn into light tints: right for a glyph, glaring as the fill of a whole bar. Every solid surface of the admin theme now reads its own --sl-solid-* tokens, which hold the light scheme's tone in light and that tone under a seventy per cent shade in dark, so the bars read the same in both and in every browser.

Core changes:

  1. Solid bar tokens (templates/admin/assets/css/base.css):
  2. --sl-solid-bg, -border, -text and -shadow for the primary bar

    • -good-, -warn- and -bad- variants carry the success, warning and danger fills and borders
    • -link-text is the glyph of a link on a solid band in hand
  3. --sl-footer-border, and the footer stripe gradient reads the shaded tone in dark
  4. --sl-beam-width, -dur, -bg and --sl-pointer-width for the motion layer
  5. Solid surfaces (templates/admin/assets/css/theme.css):
  6. Panel heads, sidebar block heads in all their tones, the toolbar item in hand, the footer band and the login footer
  7. The toned buttons sl-but-blue, -green and -red, and the mini buttons in hand, pressed or leading, with the dial toggle

    • the four mini rules shared one body and are one selector list
    • the muted and disabled mini hover set the whole background, so the gradient never shows through
  8. A beam crosses each head once a cycle, staggered by --sl-d-turn, and at once under the hand
  9. A soft light follows the pointer over the page, as on the presentation page
  10. Behaviour (templates/admin/assets/js/admin-ui.js):
  11. setBeamTurns() writes each head's place in the beam order
  12. The pointer is written once a frame; touch and reduced motion get no light
  13. Contract (tools/ui-contract.php):
  14. Components pointer, solid, solid-bad, solid-good, solid-link, solid-warn
  15. --sl-d-turn registered; --sl-d-pointer-x/-y also written by admin-ui.js

Benefits:

  • One colour principle for every solid surface of the panel, light and dark from one token
  • No @property or color-scheme pinning, so Firefox renders the dark bars exactly as Chromium does

Technical notes:

  • The light scheme is unchanged: each token's light half reads the semantic tone it replaced
  • All motion stands under prefers-reduced-motion: no-preference
  • The audit baseline and the contrast registry are stored with the rating commit that closes this series
Refactor: The shop, order and service modules leave the package - shop, clients, order, money, auto_links and whois go with every hook the core kept for them
Автор: Eduard Laas | Дата: 08:54 29.09.2026

Release 8.0 no longer ships these six modules. Removing their directories alone would have left the core answering for them: a cart route, a shop scope in three shared subsystems, a points action, an extra-field area, feeds, sitemap and search sources, admin counters and eight tables in the installation schema. All of it goes, and the 6.3 update leaves the tables of these modules on an old site untouched.

Core changes:

  1. Removed files:
  2. modules/{auto_links,clients,money,order,shop,whois}, blocks/auto_links.php, their config files and uploads/{auto_links,clients,shop}

  3. templates/lite/fragments/shop-invoice.html, templates/lite/partials/money-calc-scripts.html
  4. Core hooks (core/system.php, core/user.php, core/admin.php, core/helpers.php, index.php, core/security.php):
  5. The cart helpers and the go=2 route; the shop feed, sitemap section, letter index, rating map and alphabet query; the newsletter audiences of the three client lists; the admin counters of new clients, partners and whois requests; the cabinet links to clients and partners; shop favorites

  6. getCategoryCounts(), which counted shop products only, and catmids(), whose last caller was the shop branch of Comment; getMailAudience() reads accounts only

  7. The module and icon names of the removed modules; the editor stores of their columns
  8. The referer log no longer links a visitor to an auto_links entry and writes no lid
  9. Shared subsystems (core/classes/comment.php, rating.php, point.php, node/service.php):
  10. Comment targets are account and voting; rating scopes are account, forum and node.<name>
  11. Point::ACTIONS loses order (fourteen actions); a Node category may not take a forum category in use
  12. Favorites keep forum and Node types
  13. Administration (admin/modules/*.php, modules/search, modules/voting, modules/account, modules/presentation):
  14. The setting amod is gone: nothing read it and three of its four options were removed modules
  15. Extra fields serve account and forum; ratings list account, forum and the Node types
  16. Search, newsletter, voting and the profile favorites lose their shop branches
  17. Schema and update (setup/sql/table.sql, setup/sql/table_update6_3.sql, setup/index.php):
  18. table.sql drops auto_links, clients, clients_down, money, order, partners, products, whois and _referer.lid; the update file no longer touches those tables and drops lid

  19. The update preflight, the ratings unit and the fields unit forget order, clients, products and shop; a 6.2 shop rule counts as dropped, shop votes as foreign, and order fields stay positional

  20. The update drops amod from the site configuration and expects fourteen points actions
  21. Shipped configuration, language and themes:
  22. config/modules, uploads, search, ratings, points, fields and global lose the removed modules
  23. 46 language constants that only the removed code read leave all six locales
  24. The lite theme loses the cart and shop hooks of its fragments, their CSS, the product, WebMoney and domain check menu items; the invoice tokens leave the frozen API roster by decision

  25. Tests, tools and documentation:
  26. Tests that used the shop as a sample target move to voting, forum or a Node type; tests of the removed features are deleted; skipped tests fall from 28 to 4

  27. Label and theme baselines, upload route check, SEO audit and comment recount follow the tree
  28. UPGRADING.md gains a section on the removed modules; NODE, POINTS, RATINGS, TESTS and VERSIONS describe the current system

Benefits:

  • The core carries no code for modules it does not ship
  • An update from 6.2 no longer fails on a missing shop, order or whois table

Technical notes:

  • Breaking: a site that needs these modules stays on its current release; the core has no hooks for them
  • Breaking: the lite tokens --sl-invoice-width and --sl-invoice-logo-width are gone from the API
  • Breaking: _referer.lid and the global setting amod are dropped; the tables of the removed modules stay on an updated site and are never read

Fix: The label crawl reports nothing - the ban forms keep their ids apart and the avatar gallery hint has its row
Автор: Eduard Laas | Дата: 08:53 29.09.2026

The label baseline still carried three defects after the last store. Two were one bug on the ban list page, the third was a hint the crawl could not place. All three are gone, and the baseline holds no violation, so any new label defect turns ui:label red.

Core changes:

  1. Ban list forms (admin/modules/security.php):
  2. The account ban form named its time and reason fields f-time and f-info, the ids of the address ban form on the same page

    • Its fields are f-utime and f-uinfo, so every label points at the field beside it
  3. Label crawl rows (tools/label-audit.mjs):
  4. .sl-opt-tile is the fourth row shape: a tile holding one group, the avatar gallery, carries the group's description as its text, so the tile is the row its hint belongs to

  5. Label baseline (tools/label-audit-baseline.json):
  6. The three recorded violations are removed; coverage is unchanged

Benefits:

  • A click on a ban form label focuses the field it names
  • ui:label starts from zero violations

Technical notes:

  • No stored data, route or interface changes
Вчера (28.09.2026)
Fix: Form controls carry their names again - the site select keeps its id, Node hints are tied to their fields, and every code editor is named
Автор: Eduard Laas | Дата: 15:06 28.09.2026

The label crawl had been red since before Node: its baseline predated every Node page, so no new label defect could be told apart from the old ones. Three defects behind it are fixed and the baseline is taken again over the routes that exist today.

Core changes:

  1. One id key for the select fragment (templates/lite/fragments/select.html, callers):
  2. The lite fragment read input_id while the admin one reads selectid, so a caller naming selectid left the site select without an id and its label pointing nowhere

    • Node categories, extra fields of Field and getTplCatSelect() on the site were affected
  3. Both fragments read selectid; account, contact, rss, Node and the category select pass it
  4. TemplateValidationTest holds both fragments and refuses input_id at any select caller
  5. Hints of the Node admin forms (modules/node/admin/index.php):
  6. The poll, publish date, type name, extension and view mode hints carry an id, and their field names it in aria-describedby, as every other admin form already does

  7. Accessible name of the code editor (core/classes/editor.php, plugins/editors/codemirror/driver.php):
  8. Editor::getCode() takes a label and falls back to _TEXT, as the content editors do
  9. CodeDriver::getWidget() receives it; CodeMirror writes it as aria-label of its content through EditorView.contentAttributes, JSON-encoded so a file path cannot close the inline script

  10. All nine code editors of the panel name their file, template, block, query or log
  11. EditorFormatTest drives the driver and refuses a caller without a label
  12. Label baseline (tools/label-audit-baseline.json):
  13. Taken again as a first store: the routes of the removed modules no longer exist, which the crawl counts as fallen coverage and refuses to overwrite; 20 entries become 3

    • Kept: two duplicate ids of the security ban list, and the avatar hint of the settings tile,
which is referenced by its radio group but sits outside the rows the crawl knows

Benefits:

  • A click on a label focuses its select, and a screen reader announces field names and hints
  • ui:label is green and can report the next regression

Technical notes:

  • Breaking: CodeDriver::getWidget() takes a sixth argument string $label; a code editor driver of a third party must add it (UPGRADING.md, docs/EDITORS.md)

  • The select fragment of the site no longer reads input_id
Fix: The shipped field definitions keep the account and forum areas, so a 6.2 site updates again
Автор: Eduard Laas | Дата: 14:45 28.09.2026

65ce7687 shipped config/fields.php without its account and forum sections. The fields unit of the 6.3 update reads a named file as the 6.3 format and requires each of its three areas to be a definition list, so a 6.2 site without a field configuration of its own stopped with a refusal before its schema ran.

Core changes:

  1. Shipped field definitions (config/fields.php):
  2. account and forum ship as empty definition lists instead of being absent

    • The demo fields stay removed; order keeps its example with field1 not required

Benefits:

  • The 6.2 update finishes on the first run again (UpdateSiteTest)
  • A clean installation carries no demo profile or forum fields

Technical notes:

  • Configuration only; setUpdateFields() in setup/index.php is unchanged
  • The stand keeps its own config/fields.php, only the shipped copy changes
Docs: The Node findings plan is retired - every batch landed, the permanent references carry what stays
Автор: Eduard Laas | Дата: 01:38 28.09.2026

docs/NODE-FINDINGS-2026.md planned the records the Node plan left open. All ten batches are in the previous commit, so the plan document goes; what outlives it is already in docs/NODE.md, docs/POINTS.md, docs/RATINGS.md, docs/TEMPLATES.md and in the tests that hold each fix.

Core changes:

  1. Plan document (docs/NODE-FINDINGS-2026.md):
  2. Removed after its last batch

Benefits:

  • No plan document describes work that is already done

Technical notes:

  • Documentation only, no code or behaviour change
Fix: Node findings close - shipped configuration, admin security, shop and order correctness, core writes, Node lists and settings, the 6.3 update, code rules and the gate tooling
Автор: Eduard Laas | Дата: 01:22 28.09.2026

The Node plan left open records outside its acceptance: defects of shop, order, forum, account, the core and the installer that its windows met and were not allowed to fix. This commit closes all of them in ten batches, each with a test that fails without its fix, and widens the gates so the code rules and the tooling hold.

Core changes:

  1. Shipped configuration and admin security (config/, admin/modules/.php, modules//admin/index.php):
  2. The debug panel ships closed (var_view 0) and getVariables() escapes every value
  3. The test bans of the stand leave config/security.php; the demo fields of account and forum leave config/fields.php
  4. Every state-changing admin handler checks checkAdminPost() with its module scope; row actions post

    • GET, header and query tokens are refused, AdminGuardTest scans every admin file
  5. The admin file rename accepts a plain name only and reports a failed rename
  6. Form fields named name are renamed, category parents refuse cycles, setForumLast() ends on a stored cycle
  7. Shop, order, forum and contact (modules/shop, order, forum, money, contact):
  8. The checkout reads the cart through getCartCookie() and clears it with setCookiesDelete()
  9. getTplPager() takes a known count; the product list qualifies p.status; mass actions split categories and modes
  10. Point compensations roll the owner back on false, as docs/POINTS.md now describes
  11. The CSV import leaves votes and comments alone, opens only files of its own directory, and stops repeating the id
  12. Settings texts of shop, order, money and contact use the editor field and the breaks format, so a save is stable
  13. Core writes, cache and templates (core/classes/template.php, pdo.php, cache.php, comment.php, core/system.php):
  14. Compiled templates and scheduler state files are written through a temporary file and a rename under a lock
  15. The panel bumps the page cache on its first write and once more at shutdown; _session writes no longer bump
  16. Comment::updateBody() and the deferred recount run under the write guard; silent failures log their reason
  17. Cache::setDirPath() creates every cache directory and tolerates a lost mkdir race
  18. Node (core/classes/node/*.php, modules/node/):
  19. getTreeRows() limits replies per root in one light walk; batch sizes follow NodeQuery::getTargetSize()
  20. Comment::getThread() reads a support thread at once; stored types normalise a late rule on read
  21. view.mode is a closed list, the report switch follows the mode, categories and sitemap follow the language
  22. A non-moderator without pre-moderation gets no external address field; import failures answer their reason
  23. Installer and the 6.3 update (setup/index.php, setup/sql/table_update6_3.sql):
  24. Duplicate rating rows are removed before the unique key, the 6.2 loader is replaced by the shipped panel
  25. checkSetupCode() counts failures under a lock and removes the key after the fifth
  26. The update carries an early 6.2 schema, NULL addresses, negative balances and MySQL 8 zero dates

    • New fixture tests/Fixtures/update62early; the fixtures' site.sql is kept by .gitignore
  27. Interface and language (templates/, lang/, plugins/system/slaed.js):
  28. Favourite buttons post without an href, POST-only ops answer 405, the admin pager shows its total
  29. _BACK means back in Polish and Ukrainian; the rating widget reads the checked rule and answers blocked scopes
  30. The forum repair of counters is a POST button; auto_links reads banners of the site theme
  31. Code rules sweep (whole tree, tests/PhpFileFormatTest.php, .php-cs-fixer.dist.php):
  32. Comments leave function bodies, one line above a class, no period, no Cyrillic, 180 characters per line
  33. list_syntax and indentation_type join the fixer; shop and whois are indented with spaces
  34. Gate tooling (tools/ui-shots.mjs, tests/Support/tree_walk.php, tests/bootstrap.php, tools/upload-route-check.php):
  35. ui-shots signs the modes in one after another with one retry; --before --only keeps the rest of the pair
  36. Every source gate walks the tree through getTreeFiles(), which never enters storage or a scratch theme
  37. In-process tests log into a directory of their run instead of the site log of the stand
  38. setFailTrigger() is defined again; PointTest and RatingTest fail on a broken probe instead of skipping

Benefits:

  • A clean installation no longer exposes cookies and sessions or carries test bans
  • Admin state changes need a POST of their own scope
  • The full suite and ui:gates can run side by side without false failures

Technical notes:

  • Schema: table_update6_3.sql removes duplicate _rating rows and aligns the early 6.2 column shapes
  • API: getTplPager() accepts count, NodeQuery::getTargetSize(), NodeQuery::MODES, Comment::getThread(), Rating::getRule() and the blocked code 503, Point::$active readable, checkCatRight() replaces checkCatRead()

  • Breaking: admin handlers refuse tokens outside a POST of their scope; a stored forum or category cycle is refused on save; view.mode support requires the support extension

Страница 1 из 120. Всего: 1195

1 2 3 4 5 6 7 8 9 10 … 120
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

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

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