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

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

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

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

Всего: 1028 Доступных коммитов | Отфильтровано: 1028 Коммиты | Страница: 1 / 103
Сегодня (13.07.2026)
Refactor: unify action menus and editor formats
Автор: Eduard Laas | Дата: 22:47 13.07.2026

Migrate frontend and admin actions to the shared speed-dial and HTMX contracts, align multilingual labels and documentation, and make content persistence aware of plain, Markdown, and HTML editor formats.

Core changes:

  1. Action menus and requests (core, modules, templates):
  2. Replace legacy popover and comment-action fragments with structured dial and link items

    • Use the gear trigger for moderator actions and the three-dot trigger for user actions
    • Add CSRF tokens to state-changing inline requests
  3. Consolidate frontend action rendering across comments, forum, voting, account, shop, and content modules
  4. Editor storage pipeline (core/classes/editor.php, core/security.php, core/helpers.php):
  5. Resolve storage formats from editor manifests

    • Keep Plain line-break compatibility
    • Preserve Markdown source line endings
    • Retain trusted HTML for admin HTML editors
  6. Remove duplicate forum filtering and safely restore legacy content for editing
  7. Start Toast UI in Markdown mode to preserve SLAED source tags
  8. UI, languages, and documentation (templates, lang, docs):
  9. Add the reusable lite dial fragment and update shared link contracts
  10. Align action labels and category/block sorting guidance across all languages
  11. Update frontend dial architecture documentation and related theme styles

Benefits:

  • Consistent compact action controls across modules
  • Reliable editor round trips without duplicated break tags
  • Safer state-changing actions and textarea output escaping

Technical notes:

  • No database schema or route contract changes
  • Legacy stored content remains readable through the existing parser pipeline
  • Removed superseded popover and comment-action fragments
Docs: Audit and plan for frontend dial actions
Автор: Eduard Laas | Дата: 16:24 13.07.2026

Documents the audit of the moderator edit menus on the lite frontend (liste tables, cards, view pages, votings) where the hover popover covers neighbouring rows, and the six-step migration plan to the sl-dial fan: getTplEditMenu() as the single data source, a lite dial fragment and styles, and the fan click toggle moved into the shared slaed.js.

Technical notes:

  • plan only, no runtime changes; see docs/FRONTEND-DIAL.md
Docs: Interactive demo labs for the admin list redesign
Автор: Eduard Laas | Дата: 16:24 13.07.2026

Adds the live HTML labs used to choose the final admin list UI: they load the real admin theme CSS and demonstrate every considered variant with working drag-and-drop, collapsing and dial interactions.

Core changes:

  1. Blocks ordering labs (demo/admin-blocks-dnd-lab.html, demo/admin-blocks-infly-lab.html, demo/admin-blocks-final.html):

  2. five drag-and-drop variants plus six free-block marking variants
  3. the approved combination as the final target view
  4. Row actions and categories labs (demo/admin-row-actions-lab.html, demo/admin-categories-dnd-lab.html, demo/admin-categories-final.html):

  5. six row action patterns including the chosen sl-dial overlay fan
  6. four category tree ordering variants and the approved final view with collapsible module groups

Technical notes:

  • self-contained pages under demo/, not linked from the runtime
Feature: Dial actions, drag ordering and free block revival
Автор: Eduard Laas | Дата: 16:24 13.07.2026

Implements the forum wishlist batch for 6.3: admin lists get grouped drag-and-drop ordering and sl-dial action fans, free (infly) blocks become usable again through content and template tags, and publications gain an intro visibility setting with noindex for letter lists.

Core changes:

  1. Blocks admin list (core/admin.php, admin/modules/blocks.php):
  2. getAdminBlockList() rewritten: rows grouped by position with collapsible sl-panel-toggle headers, drag handle plus order number in one column

    • free (infly/flyfix) blocks form a trailing group with accent chips
    • legacy prev/next self-join query replaced by a single plain select
  3. updateAdminBlockOrder() now persists a full group order from one POST (ids list) with a CSRF token check the old swap endpoint lacked

  4. RSS feed select in the add form used value "0" for the custom option, which filterUrl() turned into http://0 and wiped the block content

  5. Categories admin list (core/admin.php, admin/modules/categories.php):
  6. getAdminCategoryList() rewritten as an indented tree (tree-node fragment) grouped by module with collapsible headers and drag ordering among siblings; subtrees travel with their parent

  7. publication counters consolidated into one GROUP BY query per module (page dropped from 92 to 14 queries), child counts computed in memory

  8. new change() handler toggles category status from the action fan
  9. module filter defaults to the new "All modules" option (_ALLMODULES)
  10. Free block revival (core/classes/parser.php, core/classes/template.php):
  11. Parser::filterFreeBlocks() resolves [block=id] tags in trusted content only ($safe === false), guarded against nesting, block content recursion (Parser::$freeoff during the getBlocks() cache build) and admin context

  12. Template::filterFree()/getFree() compile {% freeblock id %} in theme templates through the same getBlocks() engine and guards

  13. both entry points honour status, expiry, language, view rights and flyfix module rules; unavailable blocks render as empty output

  14. Dial action fans replace hover popover menus in every admin list (30 files across admin/modules and modules/*/admin):

  15. dial.html gains link_attr (htmx) and onclick_attr (confirm) support
  16. consistent icon vocabulary: power, pencil, trash, eye, check2 and context icons (play-fill, unlock, eraser, database-add/dash/up, ...)

  17. actions cell anchors the absolute fan via td.sl-col-actions position so checkbox-trailing tables (news, comments, shop) work too

  18. broken delete confirm in the groups list fixed (bare onclick value)
  19. Publications intro setting and liste noindex:
  20. news/pages full view honours new intro config flag (default on) to hide the teaser text when a body text exists (_C_INTRO admin label)

  21. getSeoRoute() marks op=liste as noindex, follow without canonical
  22. Shared infrastructure (templates/admin, plugins-free):
  23. generic drag attributes (data-sl-drag-id/group/scope/parent, drag-url, drag-target) unify the admin-ui.js engine for blocks and categories

  24. collapsible group rows persist per key in localStorage
  25. getTplMoveControls(), move-controls.html and _BLOCKUP/_BLOCKDOWN constants removed with the last arrow consumers

Benefits:

  • reordering is one gesture instead of repeated full page reloads
  • action menus no longer cover neighbouring rows
  • free blocks work again and are safe by construction
  • categories page is 6x lighter on the database

Technical notes:

  • new language constants (_C_INTRO, _INFLYINFO, _DRAGSORT, _CATDRAGSORT, _ALLMODULES) added to all six admin locales

  • module help files (admin/info/blocks, admin/info/categories) rewritten for the new UI; TEMPLATES.md and ARCHITECTURE.md document the tags

  • backward compatibility: legacy blocks()/{%BLOCKS%} call styles remain unsupported; [block=id] and {% freeblock id %} replace them

Эта неделя (10.07.2026)
Docs: Document independent themes, audits, and SEO pipeline
Автор: Eduard Laas | Дата: 11:49 10.07.2026

Updates the documentation to match the implemented theme consolidation, hardened validation suite, and SEO semantics work.

Core changes:

  1. Templates guide (docs/TEMPLATES.md):
  2. Independent theme packages: no cross-theme includes, assets, fallback, or shared files; matching filenames stay theme-local

  3. div variant contract: is_searchbox, is_menu_grid, branch order, and the untouched generic content/rows modes

  4. Theme-local asset URLs via the explicitly passed theme variable
  5. Test guide (docs/TESTS.md):
  6. Theme independence audits, non-zero reference counters, and the mixed-separator regression cases

  7. Theme-aware CSS usage audit and its informational unused report
  8. CSS token-stream verification and browser route matrices
  9. SEO HTTP audit workflow
  10. Reference docs (docs/ARCHITECTURE.md, docs/PARSER.md, docs/EDITORS.md, docs/VERSIONS.md):

  11. Aligned with the SEO pipeline helpers and current template flow

Benefits:

  • Documentation matches the shipped code and test suite
  • Future theme work has explicit contracts to follow

Technical notes:

  • Documentation only; no runtime changes
Feature: Route-level SEO semantics with structured data pipeline
Автор: Eduard Laas | Дата: 11:49 10.07.2026

Adds a safe server-side SEO pipeline that builds titles, meta, Open Graph, JSON-LD structured data, and breadcrumb trails from explicit page facts across all frontend modules.

Core changes:

  1. SEO core (core/system.php, core/helpers.php, core/security.php, core/user.php, core/classes/parser.php):

  2. filterSeoText, getSeoTitle, getSeoJson/getSeoJsonItems, setSeoJsonVars, getSeoGraph, getSeoSchema, and getSeoBreadcrumbSchema build normalized, safely encoded head data

  3. Structured data is re-encoded from decoded values, never rendered as raw template strings

  4. Module coverage (modules/*, admin/modules/config.php, index.php, config/global.php):

  5. Frontend modules pass explicit titles, descriptions, and schema facts through setHead

  6. Legacy hardcoded JSON-LD template blocks removed from the default config; stale social profile link dropped

  7. Templates (templates/lite fragments and partials, templates/admin/fragments/head-title.html, templates/lite/fragments/head-title.html):

  8. Dedicated head-title fragment and semantic markup adjustments for cards, tables, titles, navigation, and category views

  9. Language constants (lang/.php, admin/lang/.php):
  10. SEO-related constants synchronized across all six languages
  11. Verification (tests/SeoSemanticsValidationTest.php, tools/seo-audit.php, tests/Unit/ParserFixturesTest.php, tests/Unit/ViewBridgeSmokeTest.php, tests/Unit/PasswordHashTest.php, phpstan.neon, setup/index.php):

  12. New semantics validation suite and a curl-based CLI audit for route-level schema types and indexability

  13. Minor code style cleanup applied by php-cs-fixer

Benefits:

  • Search engines receive consistent, escaped structured data built from one pipeline instead of per-template JSON strings

  • Route matrix is auditable via tools/seo-audit.php

Technical notes:

  • JSON-LD encoding strips HTML-significant characters to keep script contexts safe

  • Backward compatible: no routes, database, or module APIs changed
Style: Normalize and consolidate lite theme CSS
Автор: Eduard Laas | Дата: 11:49 10.07.2026

Applies the shared formatting conventions to the lite stylesheets and merges proven duplicate adjacent rules, keeping computed styles and cascade order intact.

Core changes:

  1. Formatting (templates/lite/assets/css/base.css, theme.css):
  2. 2-space indentation, one property per line, normalized section comments

  3. Data URI lines kept atomic; no reordering of sections or responsive blocks

  4. Consolidation:
  5. Adjacent equivalent rules merged within one at-rule context
  6. Six classes (sl-b-i-1..4, sl-b-icon, sl-big-sl-icons) removed together with their sl-advantage markup; zero source references remain

Benefits:

  • Consistent stylesheet layout aligned with the admin theme process
  • Dead advantage-section styles no longer ship to every page

Technical notes:

  • Theme-aware usage audit reports 441 defined classes for lite
  • Seasonal, parser, gallery, and JS state classes preserved
  • No custom property values synchronized with the admin theme
Refactor: Reuse lite link and list-item fragments in blocks
Автор: Eduard Laas | Дата: 11:49 10.07.2026

Replaces the block-list-item fragment with a composition of the existing link and list-item fragments and removes the unused lite searchbox partial.

BREAKING: templates/lite/partials/searchbox.html is removed. External modules that rendered this partial by name must ship their own template. Removal confirmed by the project owner.

Core changes:

  1. Block emitters (blocks/pages.php, news.php, faq.php, jokes.php, auto_links.php, files.php):

  2. Build the anchor via getHtmlFrag('link') with escaped href, title, and label

  3. Wrap it as trusted content_html in getHtmlFrag('list-item')
  4. auto_links uses the semantic is_blank flag instead of a raw target_attr string, which also adds rel="noopener noreferrer"

  5. Fragment removal (templates/lite/fragments/block-list-item.html):
  6. Deleted after zero-reference search across PHP and HTML

Benefits:

  • One fragment contract for links instead of a parallel copy
  • Stronger target security for external auto_links entries

Technical notes:

  • List markup of all six blocks verified; escaping boundaries unchanged

  • No admin files touched by this change
Fix: Pass active theme to lite main slider asset paths
Автор: Eduard Laas | Дата: 11:49 10.07.2026

Removes the hardcoded templates/lite image paths from the main slider so a replacement frontend theme resolves its own slide assets.

Core changes:

  1. Slider partial (templates/lite/partials/main-slider.html):
  2. Four slide image URLs now use templates/{{ theme }}/images/slide/
  3. Filenames, alt texts, and dimensions unchanged
  4. Emitter (modules/main/index.php):
  5. Pass 'theme' => getTheme() and is_home explicitly to the partial

    • getHtmlPart() only receives the passed data array and does not
inject page-level variables

Benefits:

  • Theme replacement no longer breaks slider image URLs
  • Runtime HTML no longer hardcodes its own theme directory

Technical notes:

  • All four slide URLs verified HTTP 200 on the live page
  • Guarded by the new hardcoded-theme-path test assertion
Style: Normalize and consolidate admin theme CSS
Автор: Eduard Laas | Дата: 11:49 10.07.2026

Reformats the admin theme stylesheets to the shared conventions and merges proven duplicate adjacent rules without changing any computed style.

Core changes:

  1. Formatting (templates/admin/assets/css/base.css, theme.css):
  2. 2-space indentation, one property per line, one blank line between blocks

  3. Section comments normalized to the / Name: scope / shape
  4. No rule reordering, no selector or value changes
  5. Consolidation:
  6. Adjacent rules with identical declaration sets merged within the same at-rule context only

  7. No moves between base.css and theme.css, no cross-media merges

Benefits:

  • Consistent, diff-friendly stylesheet layout
  • Fewer duplicate declarations with cascade behavior preserved

Technical notes:

  • Theme-aware usage audit reports 361 defined classes, 8 static-only unknowns kept as informational

  • No property values or selectors removed without emitter evidence

Всего: 1028 на 103 страницах по 10 на каждой странице

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