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

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

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

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

Всего: 1207 Доступных коммитов | Отфильтровано: 1207 Коммиты | Страница: 1 из 121
Сегодня (01.10.2026)
Chore: The old installer is kept as setup_old/ and two references follow the move of the installer
Автор: Eduard Laas | Дата: 17:56 01.10.2026

The installer of 6.3 stays in the tree as setup_old/ for reference while the new setup.php is written; it is the setup/ directory of e28d3639 byte for byte. Two texts that still named setup/ after the move now say where the code lives.

Core changes:

  1. Old installer (setup_old/):
  2. index.php, lang/, templates/ and the guards of setup/ as they were before the move

    • its .sql files stay out of git, .gitignore keeps *.sql out; the schema lives in storage/update/sql
  3. References (core/admin.php, docs/SETUP-2026.md):
  4. the comment of getSqlbatch() names update.php as the third caller instead of setup/index.php
  5. the plan points at e28d3639 for the removed setup/ and records that setup_old/ is tracked

Benefits:

  • The old validation and texts stay at hand for the new installer

Technical notes:

  • setup_old/index.php dies without SETUP_FILE, so the copy runs nothing on its own
  • No behaviour changes
Docs: The plans of the new installer and of the closed file delivery are written down
Автор: Eduard Laas | Дата: 17:45 01.10.2026

Two work plans join docs: SETUP-2026 carries the installer of 8.0 in eight batches, of which the schema move, the 6.3 update in update.php and the texts have landed; FILES-2026 plans the closed delivery of forum and message files.

Core changes:

  1. Installer plan (docs/SETUP-2026.md):
  2. decisions, traps found before the plan, batches with their checks and what each landed batch taught
  3. File plan (docs/FILES-2026.md):
  4. the closed delivery of forum and private message files, archive links turned into attachments

Benefits:

  • Every next run of the installer work starts from the table of batches

Technical notes:

  • Both files are deleted by the last batch of their plan
Feature: The demo stand shows thirteen faces of the new installer
Автор: Eduard Laas | Дата: 17:45 01.10.2026

The seventh series of the stand lets the owner pick the look of setup.php before it is built: every face plays the same seven stops, the server checks and the run from one list of rows.

Core changes:

  1. Faces (demo/setup-01-door.html ... demo/setup-13-lite.html):
  2. the login card of the admin theme, a wizard, a scroll, a console, a panel, a dialog and later variants

    • 09 Motion is the chosen leader: the login card with seven segments and a motion layer
  3. Stand engine (demo/assets/demo.js, demo/README.md):
  4. the manifest DEMO_SETUP and the rows DEMO_SETUP_RUN feed every face
  5. data-demo-run plays checks and the run, data-dir gives the step direction

Benefits:

  • The installer is chosen on the stand, not rebuilt in the code

Technical notes:

  • Demo files only; no template, style or code of the site changes
Feature: The texts of the new installer stand in the admin dictionaries of all six languages
Автор: Eduard Laas | Дата: 17:44 01.10.2026

The coming setup.php speaks through 57 constants of the scope SETUP in admin/lang and reuses the globals that already name its words, so the installer and a later update module share one dictionary.

Core changes:

  1. Installer texts (admin/lang/*.php):
  2. titles, step counter, leads, field labels and hints of the seven stops

    • the Russian wording comes from the stand face demo/setup-09-motion.html and its run rows
  3. check and run notes, the refusals of a wrong prefix, panel name, old server, taken prefix, pending journal and an installed site

  4. _DELSETUP now names a setup.php that should have deleted itself

Benefits:

  • No word of the installer is defined twice: language, site, administrator, password and the buttons reuse globals

Technical notes:

  • The constants follow _SESS_T, the six files stay parallel line for line
  • They are unused until setup.php is written
Refactor: The schema moves to storage/update/sql and the 6.3 update of the old installer moves into update.php
Автор: Eduard Laas | Дата: 17:44 01.10.2026

The installer directory setup/ is gone: its schema files now live in storage/update/sql, which the web never serves, and its update branch for a 6.2 site runs as the first stage of update.php, an internal tool of the owner that is not shipped. The release keeps a new installation only, which the coming setup.php carries.

Core changes:

  1. Schema (storage/update/sql/):
  2. table.sql, insert.sql and table_update6_3.sql move out of setup/sql

    • the update files 4.1 to 6.2 are dropped
    • .gitignore lets storage/update/sql/.sql back in instead of setup/sql/.sql
  3. every reader follows: the validation tests, the probes, tools/node-profile.php
  4. Update (update.php):
  5. a first stage runs before the core under SETUP_FILE, without a key and without a login

    • it opens while points, ratings and fields have not all left their marks, and always for op=update
    • the connection comes from config/db.php in the 6.2 or 6.3 shape, so there is no form
  6. the units of the old installer move over under names the core does not declare

    • setUpdateFile, getUpdateSource, getUpdateCred, setUpdateSql, deleteUpdateTypes, setUpdateRun
    • a unit answers its report rows as data, the page renders them with the fragments of the admin theme
  7. with the three marks the core boots and isAdmin(true) guards the Node migration as before
  8. Database facade (core/classes/pdo.php):
  9. a refused connection under SETUP_FILE throws a RuntimeException instead of calling setExit()

Benefits:

  • No function of the update collides with the core, so one file carries both stages
  • The schema is no longer reachable over the web

Technical notes:

  • setup.php still requires setup/index.php and stays broken until the new installer lands
  • The preflight of a clean installation (free prefix) left checkUpdateBase(); the installer carries it next
  • NodeProfileTest and PointOwnersTest stay red until the installer and its tests land
Fix: The migration leaves one copy of every file and every image shows, and a comment of a Node material shows its attachments through the route of the material
Автор: Eduard Laas | Дата: 10:23 01.10.2026

A rehearsal of update.php on a copy of the production site found that migrated images rendered as #, that every directly linked file sat twice in the upload folders, that links from the forum and private messages pointed into folders Node closes, and that an attachment in a comment of a Node material answered 403. The migration and the attachment route are fixed, and the stand configuration follows the migrated production data.

Core changes:

  1. The migration (update.php):
  2. A file has one place: the type folder holds what materials and their comments use, the archive what the site links to directly; a file that is both is copied, a file nothing uses stays outside the site in the working directory

    • getMigrateKeep() lists the attachments of texts, help replies and comments and the local file of every resource
    • setMigrateFile() moves or copies one file, deleteMigrateTree() removes the emptied working folders
  3. setMigrateOuter() points the direct addresses of the forum, comments, private messages, newsletters, blocks, signatures and polls at the archive, once, before any file leaves the working directory

  4. getMigrateLocal() gives a bare relative [img] or [url] target ./, the local form the safe parser accepts; a rewritten archive address is written as ./uploads/archive/... unless it is absolute or rooted

  5. Entity-quoted attributes of old HTML are decoded before conversion; [img alt=...] is recognised
  6. Only release guard files stay in a stashed folder, so an old empty placeholder no longer blocks the new type
  7. Attachments of comments and help replies keep their tag under the managed name, so a private help request keeps its files private

  8. Attachments of comments (core/user.php, core/system.php, core/classes/comment.php, core/classes/node/service.php, modules/node/index.php):

  9. A comment of a Node type renders with the id of its material, in the list and in the answer of an edit
  10. NodeService::getNodeFile(..., Comment $com) grants the names the published comments of the material carry, every comment not deleted for a moderator, once the material itself is readable

  11. Comment::getAttachTexts() reads those bodies, so the comment table stays behind its class
  12. The preview of a fresh upload is open to whoever the upload rule of the type lets upload; ownership is checked as before

  13. Theme links (templates/lite/partials/menu.html, site-footer.html):
  14. The menu and the footer link to docs instead of the removed pages
  15. Tests and reference (tests/Support/node_probe.php, tests/Unit/NodeServiceTest.php, docs/NODE.md, docs/VERSIONS.md):
  16. Published, pending, deleted and closed comments, and a name asked through another material or type
  17. The migration steps, the attach route and the versions of 2026-10-01
  18. Stand configuration (config/fields.php, modules.php, node.php, ratings.php, uploads.php):
  19. The types, field definitions and upload and rating rules of the migrated production data

Benefits:

  • Migrated texts show their images and links on a site of any root
  • One copy of each file; private help files stay behind the rights of their request
  • A user can attach a picture to a comment of a material again

Technical notes:

  • getNodeFile() takes the comment service as a new required argument
  • The shipped config stays the stand configuration, as in the previous configuration commit
  • config/security.php is not part of this commit: its only change is the secret of the stand
Вчера (30.09.2026)
Chore: The configuration and upload guards of the stand after the Node migration are stored
Автор: Eduard Laas | Дата: 15:39 30.09.2026

The stand ran update.php on 2026-09-30: its Node types, fields, rating rules and upload rules are now the configuration the migrated content needs, and the upload folders of the removed modules carry the guards the migration left behind. The secret of config/security.php is stored empty, as the repository requires.

Core changes:

  1. Configuration (config/*.php):
  2. node.php, fields.php, ratings.php and uploads.php hold the migrated types and their rules
  3. security.php and global.php carry the test bans and the debug switch of the stand; the secret is empty
  4. contact.php is written in the format the settings save produces
  5. Upload guards (uploads/*):
  6. A deny-all .htaccess in the folders of news, faq, files, help and links, and an index.html in the thumbnail folder of docs

Benefits:

  • A clone of the repository shows the stand the migrated content was checked on

Technical notes:

  • A site that deploys this tree keeps its own configuration; the secret is generated on first use
Docs: The versions of 2026-09-30 are written down, and a plan gives the site one quick edit for every text
Автор: Eduard Laas | Дата: 15:39 30.09.2026

Two inline edits exist - the forum post and the comment - each with its own route, both losing the typed text on a refusal and letting the last write win, while Node has none at all. The plan replaces both with one protocol that Node joins; its batch 0, the forum rights, has landed.

Core changes:

  1. Versions (docs/VERSIONS.md):
  2. 2026-09-30: the migration of the removed modules into Node with its 301 addresses and the look of the old modules, the escaped code blocks, the forum rights, the thumb burst and the category descriptions

  3. The quick edit plan (docs/QUICK-EDIT-2026.md):
  4. One QuickEdit protocol over three kinds - node, forum, comment - with an adapter per kind for the source, the write and the view, all read from the stored row

  5. A stamp for optimistic locking without a schema change: the version of a node, a hash of the text and its edit time for a post and a comment

  6. Two strict routes, getQuickEdit on GET and updateQuickEdit on POST, one status per refusal
  7. One fragment and one script: cancel without a request, the typed text kept on a refusal, a conflict window
  8. NodeService::updateNodeText() for moderators at any time and for the author within the window of the type
  9. Batches 0 to 5; batch 0 is done, the forum trust mode stays an open decision

Benefits:

  • The history of the day is readable without the diff
  • The next step of the quick edit has a written contract to be measured against

Technical notes:

  • The plan file is removed by its last batch, which moves what lasts into docs/ARCHITECTURE.md
Feature: A thumb vote bursts the thumb it pressed, and the category tiles of a Node list show their descriptions
Автор: Eduard Laas | Дата: 15:38 30.09.2026

The thumbs of the shared rating answered a vote with nothing but a new number, while the favourite star and the rating stars already burst. The category tiles of a Node list showed no description, which the old modules did.

Core changes:

  1. The burst reaches the thumbs (plugins/system/slaed.js):
  2. A vote remembers whether a star or a thumb was pressed; once the counted rating is swapped in, a thumb vote bursts the thumb, a star vote the stars up to the choice, both through setBurst()

  3. Every thumb of the site is one fragment, rating-like: the forum post, the profile, the rating under an avatar in the forum and the comments, and the user list

  4. The thumb in its tone (templates/lite/assets/css/theme.css):
  5. A bursting thumb takes the round the ring wave needs, as a star does
  6. The up thumb bursts green in the rule of the copy feedback, the down thumb red, the tones their hover promised
  7. Category descriptions (core/system.php, modules/node/index.php):
  8. setCategories(string $mod, string $id = '') always passes the description; an empty one is not rendered
  9. The two switches $sub and $desc go: their one caller set them the same way every time

Benefits:

  • One gesture answers every vote of the site, from one mechanism
  • A reader sees what a category holds before opening it

Technical notes:

  • No new class, token or template; the ui-audit dup count stays at zero
  • The screenshot pair differs only on node-list, whose tiles grew by the description line
Fix: A forum post is acted on under the rights of the category it is stored in, not of the category the request names
Автор: Eduard Laas | Дата: 15:38 30.09.2026

The quick edit, the full edit, the reply, the deletion and the moderator actions of the forum read their rights from the category the request named. The moderator of one category could therefore edit, delete, close or move the posts of every other one, which a live request against the stand confirmed before this change.

Core changes:

  1. Two rules every handler takes (core/user.php):
  2. getForumPlace(int $id) reads the category, the topic with its status and the author of a post from its rows
  3. checkForumRight(bool $mod, bool $may, int $uid, int $stat = 3) is the one right over a post: the moderator of its category, or its signed-in author with the category right while the topic is open

    • a guest never matches a post written without an account, which a category open to guests allowed
  4. updatePost() takes both, ignores the category of the address, and echoes its refusals instead of returning them into a route that discards them, which left an empty body on the page

  5. The handlers of the module (modules/forum/index.php):
  6. add(), send() and delete() take the category and the topic of a named post from its row; only a new topic takes the category of the form

  7. A reply always answers the topic of the post it names and needs the reply right; the topic right alone used to insert one

  8. move() acts only on the topics stored in the moderated category; delete() loses its category argument
  9. The edit and delete buttons of view() ask checkForumRight(), so the view never offers what the handler refuses
  10. Tests (tests/Unit/ForumRightTest.php, tests/Support/contract_probe.php):
  11. The probe forumright compares the place with live rows and asks the right as a guest and as an account
  12. The handlers are pinned to getForumPlace() and checkForumRight()

Benefits:

  • A category moderator is a moderator of that category and nothing else
  • One rule decides both the buttons and the writes

Technical notes:

  • Behaviour change: guests no longer edit or delete anonymous posts, authors see no edit button in a closed topic, and a reply without the reply right is refused

  • The addresses keep their cat parameter; it no longer decides a right
  • Batch 0 of docs/QUICK-EDIT-2026.md

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

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

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

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