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

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

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

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

Всего: 1165 Доступных коммитов | Отфильтровано: 1165 Коммиты | Страница: 1 из 117
Вчера (10.09.2026)
Feature: the main module becomes the presentation module, and the etalon reads its site cards, galleries and rail from one standard
Автор: Eduard Laas | Дата: 14:27 10.09.2026

The old main module with its slider and carousel gives way to a presentation module whose material lives under uploads/presentation/; the lite theme drops the slider assets. The etalon face of the stand gets real site names and categories, ratings from the thumbnail weight, an autoplaying shuffled strip, one veil treatment for every picture, a rail that follows the page, and radii, spacing and icon sizes snapped onto the theme ladders.

Core changes:

  1. Presentation module (modules/presentation/index.php, config/modules.php, lang/*.php, blocks/img.php):
  2. main is renamed to presentation in the module registry and the six language files (_PRESENTATION)
  3. the screenshot block reads uploads/presentation/sites/thumb instead of uploads/screens/thumb
  4. uploads/screens/* move to uploads/presentation/sites/*; brand materials and DNA bands join them under uploads/presentation/brand and uploads/presentation/dna

  5. Lite theme (templates/lite/, tests/, tools/ui-*):
  6. the main slider, carousel and their fragments, lib.js, the season and slide images are removed
  7. the LCP preload keeps only the head-content case; the menu, footer and link fragments follow the new module name
  8. the slider tests go, the template test points at menu.html; audit baseline, contract and contrast files are refreshed
  9. Etalon block 12, sites (demo/22-dashboard-layout-etalon.html, demo/assets/twentytwo.css, demo/assets/twentytwo.js):
  10. 71 cards carry the site name and a category read from the screenshot instead of the address
  11. the rating is the thumbnail weight in twenty-byte steps, as the old main module counted it
  12. no viewer on site cards; the strip autoplays, pauses under the pointer or focus, shuffles on every load, hides its own scrollbar and resets after the shuffle so scroll anchoring cannot drag it away

  13. Etalon block 11, brand archive:
  14. pictures fill the tile; logotypes and partner badges stay contain; caption on the image, open and download tools on top
  15. the same veil and lifting filter as block 12; the veil also serves the DNA principles of block 10
  16. Etalon page order and rail (demo/22-dashboard-layout-etalon.html, demo/assets/twentytwo.css):
  17. voices and pulse move to the end, the numbers and the road rail follow
  18. the rail loses its label and its search; short uppercase labels at 14 px spread from edge to edge with the track under them
  19. the fill ends inside the current label, the rail scrolls the current label into view, anchors land below the sticky rail
  20. the security log is born full so the section keeps one height and anchors below it do not drift
  21. Etalon standard (demo/22-dashboard-layout-etalon.html, demo/assets/twentytwo.css, demo/assets/demo.js):
  22. 192 radii and 481 spacing declarations snap onto --sl-radius-* and --sl-space-*
  23. section number and icon share one 34 px height; card title icons and icon boxes grow to the control size
  24. --sl-font-micro is 11 px inside the etalon; nothing on the page renders below that
  25. the shared DEMO_SITES list carries the same names and categories for the other eighteen faces

Benefits:

  • one module name and one upload path for the presentation material across the CMS, the theme and the stand
  • the etalon reads as one system: one veil, one caption, one rail behaviour, one ladder for radii and spacing
  • the strip and the rail behave deterministically instead of relying on browser scroll anchoring

Technical notes:

  • uploads/screens/* are renamed, not re-added; uploads/presentation/brand/* are new binaries (34 files)
  • three demo assets are normalised to LF as .gitattributes requires
  • no schema, route or API change; index.php?name=main no longer exists, the module is presentation
Эта неделя (09.09.2026)
Feature: the stand grows a laboratory face and an etalon that drops both left rails
Автор: Eduard Laas | Дата: 17:04 09.09.2026

The presentation stand gains three new faces of the main page and rebuilds the nineteenth. Nineteen becomes Phoenix Laboratory with its own workbench, twenty and twenty-one develop it, and twenty-two is the etalon prepared for the real page: one column, a sticky rail of departments and a cockpit over the headline.

Core changes:

  1. Phoenix Laboratory (19-phoenix-laboratory.html, lab.css, lab.js, nineteen.css, nineteen.js):
  2. The nineteenth face is rebuilt as an interactive laboratory

    • A workbench of four cards: the performance explorer, the vitals orb, the module registry and the note
    • A command dialog, a settings panel and a demo chart that keeps one shape per span
  3. The twentieth and twenty-first faces carry the same scenes under other skeletons
  4. The etalon (22-dashboard-layout-etalon.html, twentytwo.css, twentytwo.js):
  5. Both left rails are gone and the page is one column

    • The SYSTEM MAP column leaves the hero, the road panel and the state panel leave the stage
    • The road comes back as a horizontal rail that sticks to the top and marks the department in view
  6. The hero carries the cockpit of five gauges with the scanning beam over the headline

    • The gauges are drawn on canvas from the page palette, so both modes repaint without a second engine
  7. The laboratory chart and the vitals orb become department 01, and every department after it moves up
  8. A pointer light follows the cursor across every surface of the page
  9. The gallery (index.html, demo.js):
  10. The manifest lists the etalon and the hero line names it

Benefits:

  • The etalon answers what the main page becomes before a line of it reaches the CMS
  • One rail replaces two columns, so the content of every department is full width
  • The ported chart and gauges carry no second stylesheet or chart engine into the face

Technical notes:

  • Faces twenty-one and twenty-two hold separate stylesheets, so the etalon can move without touching its source
  • overflow-x on the leader is clip rather than hidden: hidden makes a scroll container and kills every sticky inside
  • The filtered rail hides its links with an important rule, because outline-road sets display on its links the same way
Эта неделя (08.09.2026)
Feature: the stand shows eighteen faces of the main page on one engine, each with its own skeleton
Автор: Eduard Laas | Дата: 22:46 08.09.2026

The Phoenix collection of 2026-09-08 is removed whole and replaced by eighteen presentations of index.php?name=main that share one engine, deck.css and deck.js, and differ in page skeleton, first screen, chart mix and palette rather than in a preset. Six faces develop the leader 00-dashboard-layout.html; twelve reinterpret the dashboard references. A nineteenth face puts the leader into the chrome of the system.

Core changes:

  1. Presentation engine (demo/assets/deck.css, demo/assets/deck.js):
  2. One palette contract on .p-page, every token in both schemes through light-dark()

    • grid, cards, KPI tiles, tables, rings, bars, heat, logs, ticker, nav, rail, topbar, road, timeline,
calendar, showcase, voices, scenes
  • One body of figures, DECK_DATA, and every moving part read from data attributes

    • canvas charts: area, line, spark, bars, hbars, donut, gauge, radar, candles, heat, with periods
and hover tips
  • module registry table with search, header sort and section filters
  • event streams, flicker figures, CSS bars, heat cells, calendar, written lists
  • guard and cache switches, the guard court, the cache route, the PDO bus, walkers, scroll spy
  • the real site header and footer fetched around a face unless the gallery opens it bare
  1. Faces (demo/01-command-deck.html … demo/18-aeros-horizon.html):
  2. 01-06 keep the leader's DNA in six compositions: command deck, observatory wall, ledger with a right column, cockpit with three gauges, one-column flow, module studio

  3. 07-18 follow the references: RecehTok neon and exchange, Calltimes rhythm, Vaulto carbon and editorial, Hynex vital, Fobework campus, odds analytics, cyber sentinel, Rinesk lime, Aeros atmosphere and horizon

  4. real facts stay fixed, illustrative figures are declared on every page
  5. Laboratory face (demo/19-phoenix-laboratory.html, demo/assets/nineteen.css, demo/assets/nineteen.js):
  6. the leader shown inside the chrome of the system
  7. Stand chrome (demo/assets/demo.js, demo/index.html, demo/README.md):
  8. the manifest names the scheme a face was designed in and the gallery opens it in that scheme
  9. the README describes the engine, its attributes and the nineteen faces
  10. Documentation (docs/CABINET-CONSOLIDATION-2026.md):
  11. the finished consolidation plan is removed from the tree

Benefits:

  • a new face is markup, a palette and v-* rules, never a script of its own
  • eighteen pages cannot disagree about a figure
  • both schemes are held by one declaration per token

Technical notes:

  • nothing here ships: demo/ is the development stand
  • no external resources; icons, photos and screenshots are local
  • screenshots keep the two laws of the stand: 260 wide, never taller than natural
Feature: the stand shows eighteen presentation faces of the main page beside the original, and the mailbox reads fifteen per page
Автор: Eduard Laas | Дата: 17:39 08.09.2026

The first series of the demo stand is rebuilt: the twenty-three variants of the main page are replaced by the original dashboard layout as the reference and eighteen presentations of SLAED CMS 8, each a standalone dashboard composition on the lite tokens with a local palette and the shared presentation shell. The private-message config takes a shorter page.

Core changes:

  1. Demo stand (demo/00-dashboard-layout.html, demo/01-phoenix-command.html ... demo/18-aeros-horizon.html, demo/assets/presentation.css, presentation.js, presentation-shell.js, demo/index.html, demo/assets/demo.js, demo/README.md):

  2. the old variants 01-23 are removed; the gallery has four sections and lists the reference 00 with the new presentations

  3. the presentations share presentation.css and presentation.js and keep their palette local
  4. Private messages (config/privat.php):
  5. num 25 to 15 and nump 10 to 5: fifteen messages and five page numbers per mailbox page

Benefits:

  • the stand compares dashboard compositions of the product, not texts

Technical notes:

  • config/privat.php is a shipped default; a compiled config/local.php on a stand keeps its own values until it is rebuilt

Refactor: the cabinet keeps one head, one row, one fold, one icon map and one notice slot
Автор: Eduard Laas | Дата: 17:39 08.09.2026

The six batches of docs/CABINET-CONSOLIDATION-2026.md land together. Every panel, tile, feed, hub and shelf of the cabinet opens with the same head fragment, every list row is the cabinet row, every fold runs through the toggle mechanic of slaed.js, every icon name PHP writes comes from one map, and the notices of the private-message and favourites pages stand in one slot. Nothing a reader does on these pages changes; what changes is that there is one way to build them.

Core changes:

  1. One head (templates/lite/fragments/panel-head.html, theme.css, tools/ui-contract.php):
  2. the fragment takes icon, title or title_html, title_id, hint, fold, chips, total_html and live_title and renders div.sl-profile-hub-head > h3 + span.sl-profile-hub-total

    • nineteen heads of three forms are replaced: the settings tile head, the hub head of the
profile and the favourites tiles, and the bare h3 headings of the cabinet home, the
profile panels and the activity feed
  • .sl-opt-tile-head, .sl-cab-head and .sl-profile-head leave the CSS; the margin under a
head is contextual to the panel, the feed and the deck
  • the shelf head carries fold, hint and its count chip; the profile head carries the
action dial and the share dial as total_html
  1. One row (theme.css, fragments/privat-row.html, partials/account-profile*.html):
  2. .sl-cab-row is the base; .sl-profile-entry is the modifier that opens the leading track for a date or a count chip; .sl-pmf-item is the modifier of the message row with its own tracks, padding and states

  3. .sl-profile-info-row stays a component of its own, a label beside a value
  4. .sl-cab-row.sl-profile-hub-row takes the hub-row height the shadowed rule never reached
  5. One fold (fragments/privat-focus.html, core/user.php, theme.css):
  6. the focus deck folds through data-sl-toggle under the shared head, with the chevron pair and a remembered state; the deck reopens as flex through data-sl-toggle-display

  7. the seven summary rules of the details are gone and no <details> is left in the theme
  8. One icon map (core/system.php, core/user.php, core/admin.php, modules/account/index.php, admin/modules/modules.php, tests/Support/contract_probe.php):

  9. getIconName() beside getModuleName() maps module keys and concept keys to Bootstrap Icons glyphs, falls back to the module config and then to puzzle

  10. eighty-two 'icon' => literals in core, modules and admin read the map; getFavoriteIcon() is removed; the glyphs of eleven pages are the same before and after

  11. Small safe ones (fragments/opt-lamps.html, fragments/cabinet-notes.html, core/user.php, modules/account/index.php, partials/account-*.html, theme.css):

  12. the lamp row of the settings and favourites pages is one fragment; a non-meter lamp carries its value in title

  13. the rail chip is the ordinary flex chip again with its label in a span that ellipsises; the block variant and its hand-set icon margin are gone

  14. addPrivateMessage() passes one error as a string, an array is for several messages
  15. the notice slot is #cabnotes through getCabinetNotes(); the favourites page prints it under the nav, and an emptied list answers the slot out of band instead of an alert in the list

  16. Clean-up (core/helpers.php, fragments/pager.html, lang/.php, admin/info//ru.md, tools/ui-audit-baseline.json):

  17. the pager summary reads "Страница P из M. Всего: N" through _PAGE, _NUMOF and _OVERALL on every lite pager; _BY and _PAGE_S leave the six locales

  18. three duplicate allowances of the contract that named removed rules are dropped
  19. the help of private messages and favourites describes the pages as they are
  20. the audit baseline is stored: scoped 92 to 89, nothing grew

Benefits:

  • a new cabinet panel is a head include and cabinet rows, not a third markup
  • theme.css is 62 lines shorter and the head, row and fold rules live in one place each
  • an icon is renamed in one line for the whole site and the panel

Technical notes:

  • the settings tile head is an h3 now, with the same id for aria-labelledby
  • every head has a 34 px floor, so tile and panel heads grew by 8 px; the hub head takes the panel margin and the hub row is 46 px, as its token always said

  • the pager data no longer carries by, page_s, perpage or pages; page_label and page_of replace them

Feature: the favourites page becomes shelves, the private-message page gets one notice slot, and every count in the cabinet speaks one language
Автор: Eduard Laas | Дата: 11:32 08.09.2026

The favourites page is rebuilt after the "shelves" stand: one shelf per module with a remembered fold, a lamp row, and a search field with module chips that filter over htmx without a reload. The private-message page gains a notice slot under the focus deck, a confirm dialog that holds the htmx request until the answer, a filter bar of one standard for every mailbox, and a pager whose setting names what the reader counts. Counts, chip gaps, alert lists and icon names are unified across the system.

Core changes:

  1. Favourites (core/user.php, templates/lite/partials/account-favorites*.html):
  2. getFavoriteList() reads every favourite of the member in one pass and renders the shelves partial

    • lamps: quota with the free count, module count, module with the most, latest bookmark with its date
    • search field and module chips call go=1&op=getFavoriteList&part=shelves and swap #favshelves, the tally and the chips arrive out of band
    • matches are highlighted through filterTextHighlight(); q is read with getVar(..., 'word') so Cyrillic and phrases search
    • shelves fold through the data-sl-toggle mechanic with a remembered state and swapped chevrons
  3. getFavoriteIcon() is shared with the cabinet home
  4. _favorites gains a nullable time column (setup/sql/table.sql, table_update6_3.sql); addFavorite() writes NOW()
  5. Private messages (core/user.php, index.php, plugins/system/slaed.js, templates/lite/partials/privat-*.html, fragments/privat-notes.html):
  6. every notice stands in #prnotes under the focus deck: getPrivateMessageView() wraps getPrivateMessagePane() and appends the slot out of band; refusals and the mailbox quota use the error tone
  7. data-sl-confirm on an htmx element goes through htmx:confirm and issueRequest(); the dial's delete no longer fires before the dialog nor follows a token-less address after it
  8. one filter bar for every mailbox: all, unread, read, week, older than a month, a reset chip and the shown range or the found count in #prshown
  9. the bulk bar loses its label and is centred; the letter chips read Прочитано, Профиль, Сайт; the interval chip stands in the recipient card in the warning tone with a grade glyph per mailbox state
  10. the right column takes the 12 px inset of a tile; the list row no longer overflows its column; the reply form reaches the frame
  11. the AJAX debug panel runs through getTimedHtml(), so the SLDBG marker is replaced
  12. Shared (core/helpers.php, lang/.php, templates//assets/css/theme.css, tools/ui-contract.php):
  13. getTplPagerView() keeps a window of exactly maxpg numbers with the first and last page as anchors
  14. one global _NUMOF for "N of M" replaces _EDITOR_QUOTA and _PRQUOTA; FAVOR* constants for the new page in six locales
  15. the chip icon gap is 4 px everywhere; alert lists carry no marker; lamps keep to one line
  16. bi-person-badge becomes bi-person-vcard throughout
  17. Docs and tooling (docs/, admin/info/favorites/ru.md, tools/ui-shots.json, demo/):
  18. docs/CABINET-CONSOLIDATION-2026.md plans the consolidation of the cabinet templates and styles in six batches
  19. the screenshot manifest gains the favourites page; the favourites help doc describes the page without a pager
  20. the node docs and the favourites stand receive the author's working notes

Benefits:

  • the favourites page answers what a bookmark is and where it lives, and searches without leaving the page
  • a private-message action cannot leave before its confirmation, and its errors land in one visible place
  • the cabinet reads one way: one count wording, one chip gap, one pager semantics

Technical notes:

  • schema: _favorites.time DATETIME DEFAULT NULL; older rows keep NULL and the lamp names the module instead of a date
  • the config setting favorites.num is no longer read by the cabinet page
  • no new theme tokens; the duplicate allowlist in tools/ui-contract.php drops .sl-author from the author/meta/oauth group
Эта неделя (07.09.2026)
Feature: the cabinet becomes one standard, the settings page reaches the bridge, and the rig learns to walk two modes at once
Автор: Eduard Laas | Дата: 13:40 07.09.2026

The settings page is brought to the bridge variant of the stand with the mechanics the theme already carries, and what the page taught is folded back into the cabinet: one box, one head, one form row and one file window for every page under the account. The screenshot rig, which was the slowest gate of the work, walks its two modes side by side and stops waiting for a page that could never settle.

Core changes:

  1. Settings page (modules/account/index.php, partials/account-settings.html):
  2. the lamps, the rail, the tiles, the save bar and the gallery follow set-10-bridge

    • the rail marks stand at even fractions of the width, the first flush left and
the last flush right, and the road walked is a width the script writes
  • the lamps paint their figure in the tone of a category, warning through the new
--sl-warning-strong step, because the base step fails AA for large bold type
  • a preset picked in the gallery saves itself over htmx through setavatar() and the toast confirms it; the form bar does not rise for a control that saved itself

  • the journal tile and the profile ring are gone, the password tile takes the width
  • getFieldsInRows() gives the extra fields as data, and getTplFieldsIn() is that list folded into form rows for its five other callers

  • sixteen constants came and six went again: the hints under the questions and the heads of the tiles stay, the short rail captions did not

  • Form rows (theme.css, base.css):
  • the caption column of a form is one column per form: .sl-form and .sl-opt-tile lay fit-content(--sl-form-label-width) and minmax(0, 1fr), and a row standing directly in them takes subgrid, so the captions line up on one edge and the fields on another; a browser without subgrid keeps the quarter

  • a row holding an editor folds on the mount point and no longer only after the script arrives, and a hint asks for no width of its own, so the caption column is not sized by either for the moments the parser stands on the editor scripts

  • the track of an editor row has a floor of zero: a bare 1fr could not shrink below the toolbar and made every page with a comment form scroll sideways at 768

  • Cabinet and profile (partials/account-home.html, account-profile.html, account-profile-feed.html, fragments/account-nav.html, theme.css):

  • the panel of the cabinet and of the profile is the settings tile, and every heading is the tile head with the chip of tone, joined by selector list

  • the inner pages carry the full-size cabinet tiles, each with its subtitle
  • the activity feed's tabs wear the chip, the cabinet rows share the entry's metrics, and the hub of the profile is a scrolling feed of entries

  • the spinning indicator freezes with any hovered feed, and the scroll walks translateY(-50%) of the doubled feed instead of a distance measured before the avatars had loaded

  • the card and the deck wear the tile's box, the RSS field is the field, the empty badge is hidden, and a button carries a gap between its icon and its label

  • Layout (layouts/app.html, home.html, theme.css):
  • the layout names the sides it rendered on #container as sl-has-left and sl-has-right, and the CSS reads them instead of :has(#sidebar): the aside stands after the content, and a first frame painted before the parser reached it laid the content over the full width and then pulled it back

  • File manager window (partials/file-manager.html in both themes):
  • the window opened for a form field carries data-sl-window like the one opened from an editor: it drags, expands and stacks the same way; the two copies stay identical

  • Screenshot rig (tools/ui-shots.mjs, tools/ui-shots.json, docs/TEMPLATES.md):
  • the two modes of the manifest walk side by side in contexts of their own, a full capture takes about five minutes instead of ten

  • --only takes a comma list, so a change is re-compared on the pages it touched
  • the ticking counter of a live box is masked; it was why the article page never settled

  • Stand (demo/fav-01..04, demo/assets/demo.js, demo/README.md):
  • a fourth series proposes four faces for the favourites page out of the parts the cabinet already has: shelves, tabs, bays and the table told what it lacked

  • Node plan (docs/node/*):
  • the working list and the review of the package, and the plan documents adjusted after the review

Benefits:

  • One box, one head and one form row across settings, cabinet and profile, and the two file windows become one

  • Every cabinet page arrives without a layout shift; measured zero on messages, settings and favourites

  • The rig costs half the wall clock and reports a page that moved instead of one that never settled

Technical notes:

  • Two tokens join the API: --sl-warning-strong and --sl-form-label-width; the template-written --sl-d-at, --sl-d-of and --sl-d-spy are registered under data and --sl-d-distance leaves it

  • tools/ui-contrast.json is regenerated from the walk after the palette changed
  • The constants _ACCOUNT_LOG, _ACCOUNT_FILLNOTE, _ACCOUNT_LINKED, _ACCOUNT_SIGNIN and _ACCOUNT_GALLERY are removed; a theme or a language file that named them will not find them

Эта неделя (06.09.2026)
Test: the upload route walk stops leaving a minted secret in the tree
Автор: Eduard Laas | Дата: 16:09 06.09.2026

The walk drops the compiled configuration between rows, and on a checkout that is what makes the server mint a new master secret and persist it into the tracked config/security.php. The walk now guards that file, and prevents the mint rather than only cleaning up after it.

Core changes:

  1. Guarding the shipped security file (tools/upload-route-check.php):
  2. setConfigGuard() takes a snapshot before the sessions are opened and gives the file back through register_shutdown_function(), so an interrupted run leaves nothing behind either

  3. the shipped secret is seeded with the live one for the length of the walk

    • a token is derived before the request that carries it, and that request is the
one that rebuilds and mints, so cleaning up afterwards cannot save the answer
  • measured: without the seed the isolated editor mode fails 21 rows
  • the merge is warmed by one request before the file goes back, because the walk leaves it deleted and the next visitor to the stand would otherwise mint the master minutes after the run reported a clean tree

  • one row asserts the restore and names the change in its detail; it never asserts the absence of a change, since both the seed and the mint are expected

Benefits:

  • A generated master secret can no longer reach a commit through this tool, which no gate in the tree would have caught

  • The editor and full modes are stable instead of depending on whether the shipped secret happened to be empty when the run started

Technical notes:

  • With no compiled configuration to read the live secret from there is nothing to seed with, and the walk then behaves as it did before

  • A process killed without running its shutdown handlers can still leave the seeded secret in place

Docs: the node plan stops being a frame and becomes a decided one
Автор: Eduard Laas | Дата: 16:08 06.09.2026

Every document of the node design moves from a frame to an approved state. The status table of the directory turns from a list of open questions into a list with nothing left blocking approval, and the fifteen documents behind it are filled in to match.

Core changes:

  1. Directory status (docs/node/README.md):
  2. the plan reads "planning finished, implementation not started"
  3. every one of the fifteen documents is marked approved, with no blocker left
  4. document 12 is renamed to the boundary of the old data rather than its transfer
  5. Contracts filled in:
  6. 05-core-api.md: the public contracts and their signatures
  7. 06-types.md: the type, field and capability model
  8. 03-database.md: the extension tables and the remaining lifecycle transitions
  9. 02-naming.md: the names of the remaining classes, methods and lang constants
  10. 13-testing.md: what each layer is held by
  11. 15-decisions.md: the log grows with the decisions the rest of the pass took
  12. The remaining documents follow the same pass:
  13. goals, code structure, routing, rendering, integrations, extensions, security and performance, migration boundary and roadmap

Benefits:

  • The plan can be executed without reopening the questions it was written to close
  • The decision log carries why each answer was chosen, not only what it is

Technical notes:

  • Documentation only; no code of the subsystem exists yet
  • Written in Russian, as the rest of this directory is
Feature: a profile becomes a comment target of its own
Автор: Eduard Laas | Дата: 16:08 06.09.2026

Profile discussions come back as an ordinary comment target rather than a mechanism of their own: account joins the map the Comment class already drives, so writing, moderation, censoring and the points award reach a profile through the same path every other target uses.

Core changes:

  1. Comment targets (core/classes/comment.php):
  2. account enters the MODULES map with _users and the points slot 3
  3. the target is excluded from the denormalised counter, because _users carries no comments column of its own

    • setTargetCount() and addTargetCount() refuse it
    • the drift report skips it, so no repair is attempted on a column that is absent
  4. getTargetMode() answers for a profile on its own branch: the row must exist, and $conf['users']['prof'] closes it to anyone who is not signed in

  5. the site snapshot carries prof beside the censor settings
  6. Profile view (modules/account/index.php):
  7. view() renders the comment block for the profile it has just drawn
  8. Rating slots (core/system.php):
  9. the account rating reads the points slot 2 instead of 0
  10. Probes and tests (tests/):
  11. the comment write probe walks the new target beside the other eight
  12. both counter expectations answer zero for account, and the probe does not set acomm on a table that has no such column

Benefits:

  • One write path for every comment target: a profile discussion is moderated, censored and credited exactly as a news discussion is

  • No second counter to keep honest, because the profile target has none

Technical notes:

  • _users has no comments column and no acomm column; both are handled by excluding the target rather than by adding columns

  • Guest access to a profile discussion follows $conf['users']['prof']

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

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

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

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