Последнии сообщения форума
Auto-generated base_fingerprint reflects the new template file set introduced by the new/ fragment layer across all three themes.
Core changes:
- config/local.php:
- Updated: base_fingerprint to current codebase state
Benefits: - Config stays in sync with deployed template files
Technical notes: - Fingerprint is computed automatically on template structure changes
Replaces legacy content-card/content-view/liste-wrap/liste-basic fragments with new/ layer equivalents. Fixes admin URLs. Adds CSRF token to frontend delete links. Adds refer=2 support to admin actions() so frontend-initiated deletes redirect back to the frontend.
Core changes:
- Card grid view (modules/news/index.php — news()):
- Card: getTplContentCard → $tpl->getHtmlFrag('new/card', ...)
- Fixed: edit URL op=news_add → name=news&op=add
- Fixed: delete URL op=news_admin&typ=d → name=news&op=actions&typ=d
- Added: refer=2 and CSRF token on frontend delete link
- Alert: alert → new/alert
- Liste view (modules/news/index.php — liste()):
- Table: liste-wrap → new/table (5 cols: id/title/cat/poster/date)
- Rows: liste-basic → new/table-row-liste
- Letter nav: extracted from liste-wrap param to standalone output
- Alert: alert → new/alert
- Full view (modules/news/index.php — view()):
- Renderer: getTplContentView → $tpl->getHtmlFrag('new/view', ...)
Removed HTML from PHP: <br><br> separators between hometext, bodytext and fields replaced with direct concatenation
- Fixed: edit URL op=news_add → name=news&op=add
- Fixed: delete URL op=news_admin → name=news&op=actions with token
- Admin actions handler (modules/news/admin/index.php):
- Added: $refer_val to distinguish refer=1 (admin tab) vs refer=2
- refer=1 → admin panel status=1 tab (pending news, unchanged)
- refer=2 → index.php?name=news (frontend list page)
Benefits: - No HTML strings in PHP — all markup in fragments - Admin URLs follow consistent name=MODULE&op=ACTION pattern - Frontend delete secured with CSRF token and refer redirect
Technical notes: - news/view() fields appended to rawtext (no separate fields param) - new/card.html reuses all sl-* classes defined in new.css - new/table-row-liste.html covers 5-column liste layout
Replaces legacy content-list and title fragments with new/ layer equivalents. Fixes admin URLs to match the name=content&op=action pattern. Adds CSRF token to frontend delete links. Fixes refer redirect in the admin delete handler so frontend-initiated deletes return to the frontend, not the admin panel.
Core changes:
- Frontend list view (modules/content/index.php — content()):
- Table: content-list-open → new/table (sortable, col_id/title/func)
- Rows: content-list-basic → new/table-row-content with new/tip
- Pager: setArticleNumbers → getTplPager with prefix new/
- Alert: alert → new/alert
- Removed: body from SELECT (unused in list)
- Fixed: duplicate ?? fallback in config reads
- Frontend view (modules/content/index.php — view()):
- Renderer: title+filterDoc echo → new/view fragment
- Removed HTML from PHP: fields separator moved to template
- Fixed: rss_read result stored in $rss, not $conf['content']
- Added: CSRF token on delete link, is_moder edit/delete nav
- Admin delete handler (modules/content/admin/index.php):
- Added: $refer flag (GET refer=1)
Redirect: refer=1 → index.php?name=content (frontend) otherwise → admin.php?name=content
Benefits: - No HTML strings in PHP — all markup in fragments - Admin URLs follow consistent name=MODULE&op=ACTION pattern - Frontend delete secured with CSRF token
Technical notes: - new/view.html handles fields via {% if fields %}<br><br>{{{ fields }}} - Admin refer flag mirrors pattern used in news module (refer=2)
Frontend modules using the new/ template layer need to call pager-link, pager-dots, and pager fragments from the new/ subdirectory. The prefix option allows callers to pass 'new/' and get new-layer fragments without duplicating pager logic.
Core changes:
- getTplPager (core/helpers.php):
- Added: $prefix = (string)($opt['prefix'] ?? '')
- Changed: pager-link, pager-dots, pager fragment calls now use $prefix
- Closure captures $prefix via use() for link rendering
- Added missing space after current page number for consistent spacing
Benefits: - No duplicate pager code for new/ vs legacy fragment paths - modules/content/index.php and future modules pass prefix: 'new/' - Legacy callers unaffected (prefix defaults to empty string)
Technical notes: - Fragment path: $prefix.'pager-link' resolves to 'new/pager-link' - Space after current page item aligns with non-current item spacing
The sl-fullview article in new/view.html already renders a <hr> element before the footer buttons, making the CSS border-bottom on .fullview produce a visible double line.
Core changes:
- theme.css — .fullview (templates/default/assets/css/theme.css):
- Removed: border-bottom: 1px solid #ebebee
- Kept: padding-bottom: 25px
- theme.css — .fullview (templates/lite/assets/css/theme.css):
- Same change applied
Benefits: - Single visual separator (the <hr>) in full article view - Eliminates visible double-line regression in default and lite themes
Technical notes: - Legacy .fullview class still used by old content-view.html fragments - new/view.html uses sl-fullview — border handled by <hr> in markup
Introduces a unified new/ fragment namespace for all frontend modules. All fragments use sl-* CSS class naming (hyphen), defined in new.css alongside the sl_* legacy classes in system.css/theme.css.
Core changes:
- New fragment set (templates/*/fragments/new/):
- alert.html — inline alert block (warn/info variants)
- card.html — article card for grid layouts (sl-post sl-card)
- navi.html — frontend navigation menu (sl-navi-menu)
- pager.html, pager-link.html, pager-dots.html — paginator
- table.html — sortable table wrapper with optional columns
- table-row.html — generic table row wrapper
- table-row-content.html — standard 3-column article row
- table-row-liste.html — 5-column liste row (title/cat/poster/date)
- tip.html — hover tooltip with date and read-count
- view.html — full-page article view (sl-post sl-fullview)
- New CSS layer (templates/*/assets/css/new.css):
- sl-post, sl-card, sl-fullview, sl-title, sl-meta, sl-meta-foot
- sl-entry-content, sl-rate-box, sl-pull-right
- sl-table, sl-table-head, sl-table-body, sl-table-cell, sl-table-col-num
- sl-pager and all pager sub-elements
- sl-navi-menu
- Applied identically to default, lite, and simple themes
Benefits: - Single source of truth for new-layer class naming across all themes - No HTML in PHP — all presentation moved to fragments - Clear separation: sl- (new.css) vs sl_ (legacy)
Technical notes: - Fragments deployed identically to all three themes (default, lite, simple) - new.css comments follow admin new.css style (simple slash-star groups) - Backward compatible: legacy fragments untouched
Adds two new architecture reference documents for subsystems introduced in the editor system migration. These files are referenced in the README documentation table and describe the stable contracts that contributors should follow when extending or integrating editors and the content parser.
Core changes:
- docs/EDITORS.md:
- Describe the pluggable Editor class architecture and manifest.json format
- Document ContentDriver and CodeDriver interfaces
- List bundled drivers and their intended roles
- docs/PARSER.md:
- Describe Parser class and filterContent() API
- Document filterMarkdown() legacy shim and migration path
- Clarify safe vs. unsafe parsing contexts
Benefits: - New contributors have a single reference for editor and parser integration - Eliminates undocumented API surface for two actively used subsystems
Technical notes: - Documents describe current repository state only; no forward-looking promises
Updates the active editor driver implementations for CKEditor, TinyMCE, ToastUI, and plain editors to align with the pluggable Editor class contract. Adds the BBCode driver as a new bundled content editor option. Updates TinyMCE and ToastUI to include current asset bundles.
Core changes:
- Editor drivers (plugins/editors/):
ckeditor: update driver.php and manifest.json for current CKEditor 5 * Add bundled CSS asset (ckeditor.bundle.css)
- tinymce: update driver.php and manifest.json; add current theme/model assets
- toastui: update driver.php and assets; add i18n support and full JS bundle
- plain: update driver.php for current Editor class interface
- bbcode: add new bbcode driver (driver.php, manifest.json, assets)
- Database schema (setup/sql/table.sql):
- Apply pending schema updates matching current runtime expectations
Benefits: - All active editor drivers implement the ContentDriver interface correctly - BBCode editor available as a bundled option for user-facing content - ToastUI i18n bundle enables locale-aware Markdown editing
Technical notes: - Driver interface: getAssets(profile) + getWidget(id, name, value, profile, data) - manifest.json format unchanged; new drivers follow existing schema
Both standalone directories are superseded by the pluggable editor system. The TinyMCE 4.5 driver is now bundled in plugins/editors/tinymce/ with a current version and manifest. The filemanager plugin had no active callers after the textarea() editor dispatch migration and was confirmed unused.
Core changes:
- Legacy file manager (plugins/filemanager/):
Remove entire ResponsiveFilemanager bundle (PHP backend + JS + assets) * No active references remain in core, admin, or module code after migration * File upload paths now go through the module-level upload handlers
- Legacy TinyMCE standalone (plugins/tinymce/):
Remove TinyMCE 4.5.6 standalone bundle * Active TinyMCE driver is in plugins/editors/tinymce/ with current version * Old bundle used Flash (ZeroClipboard) and Flash-era plugins
Benefits: - Removes Flash-era dependencies (ZeroClipboard.swf, Jplayer.swf, jPlayer) - Eliminates ~300 dead files from the repository - No remaining references to either directory
Technical notes: - plugins/editors/tinymce/ and its manifest.json are unaffected - plugins/editors/ckeditor/ uses the current CKEditor 5, not the removed 4.x bundle
Updates all root-level and docs/ documentation to reflect changes made since the March 2026 snapshot: highlight.js integration, editor system migration, removal of legacy plugins, and the pluggable Editor architecture. Dates updated to April 2026.
Core changes:
- README.md:
- Remove Migration: 90% Complete badge (static metric)
- Update Tech Stack: Editor class and pluggable plugins/editors/ system
- Update Content Parsing: Parser class (not bare filterMarkdown)
- Update project structure: add editor.php, parser.php entries
- Remove docs/TEMPLATE_STATUS.md reference (file deleted)
- Update plugins/ description to reflect current directory contents
- CONTRIBUTING.md:
- Add Content Parsers and Editors section with Parser and Editor API guidance
- Remove MySQL/MariaDB version TODO (resolved by badge in README)
- UPGRADING.md:
- Add Content Editors section: Editor::getContent() / Editor::getCode() migration
- Add Content Parsing section: Parser::filterContent() replaces filterMarkdown()
- Fix storage/sitemap path reference
- SECURITY.md:
- Update storage paths for sitemap data
- docs/TESTS.md:
- Add ParserFixturesTest.php to Unit test list
- docs/TEMPLATES.md:
- Minor alignment with current runtime state
Benefits: - Documentation accurately reflects the active plugin stack and editor API - Contributors no longer see references to deleted functions or plugins - Parser and Editor migration paths are explicitly documented
Technical notes: - docs/TEMPLATE_STATUS.md was removed in the plugin cleanup commit - No new documentation files created; existing files updated in place





