Чтение RSS каналов

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

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

Всего: 500 Доступных коммитов | Отфильтровано: 500 Коммиты | Страница: 1 / 50
Вчера (24.04.2026)
Refactor: Core cleanup — function rename, column markers, admin link styling
Автор: Eduard Laas | Дата: 12:01 24.04.2026

Rename renderFootControls to getFootControls, add is_col_status markers and language link CSS class to admin list builders, apply column class_name in newsletter and account modules, and update config fingerprint.

Core changes:

  1. Footer function rename (core/system.php):
  2. renderFootControls() renamed to getFootControls() with shorter param names
  3. Both call sites in setFoot() updated
  4. Admin list builders (core/admin.php):
  5. Add class 'sl-admin-language-link' and is_menu_list_image to language switcher
  6. Mark status cells with is_col_status => true in category, block, private lists
  7. Fix is_last flag in block list tip items (was incorrectly bound to $lang check)
  8. Column classes (admin/modules/newsletter.php):
  9. Add class_name 'sl-col-sent' to newsletter sent-count column (head + body)
  10. Account admin (modules/account/admin/index.php):
  11. Add class_name 'sl-col-ip' to IP column (head + body rows)
  12. Add autofocus => true to signature textarea in add form
  13. Config (config/local.php):
  14. Update base_fingerprint to reflect current template asset state

Benefits: - getFootControls follows project naming convention (get* prefix for renderers) - is_col_status enables template-side alignment without hardcoded selectors - Column class_name allows CSS targeting of specific data columns

Technical notes: - getFootControls is a non-breaking rename; no callers outside setFoot() - Fingerprint update required after CSS and JS asset changes in this batch

Feature: Autofocus support in textarea helper and ToastUI editor
Автор: Eduard Laas | Дата: 12:01 24.04.2026

Add autofocus parameter to getTplTextarea() and implement editor-level focus in the ToastUI driver, enabling modules to declare which field receives keyboard focus on page load. Also fix category select indent encoding and improve editor height calculation.

Core changes:

  1. Textarea helper (core/helpers.php):
  2. Add 'autofocus' key forwarded to template via getTplTextarea()
  3. Fix category-select indent: replace raw HTML entity string with html_entity_decode() to avoid double-encoding in templates

  4. ToastUI editor driver (plugins/editors/toastui/driver.php):
  5. Honor autofocus data key: emit JS setTimeout focus on editable surface
  6. Replace fixed rowsСмайл - 24 height formula with tiered defaults (250/300/500px)
  7. Support explicit 'height' override via data key

Benefits: - Modules can declare autofocus declaratively without custom JS overrides - ToastUI focus targets contenteditable, ProseMirror, or textarea fallback - Height tiers produce better visual defaults for short vs. full editor profiles

Technical notes: - Focus fires after 300ms delay to allow ToastUI initialization to complete - Category indent precomputes the nbsp string once per query for efficiency - Minimum height clamped to 250px regardless of rows or override value

Feature: News admin — optgroup batch selector and textarea autofocus
Автор: Eduard Laas | Дата: 12:01 24.04.2026

Restructure the bulk-action <select> into labeled <optgroup> sections (actions vs. move-to-category) and add autofocus to the body textarea on the add-news form for faster keyboard-driven entry.

Core changes:

  1. Bulk action selector (modules/news/admin/index.php):
  2. Split $actopts into $modopts (action options) and category opts
  3. Wrap each group in <optgroup> via new select-optgroup fragment
  4. Remove "Move to: " prefix from category option labels (now in group label)
  5. New fragment (templates/admin/fragments/select-optgroup.html):
  6. Renders <optgroup label="..."> with inner options_html
  7. Add form autofocus (modules/news/admin/index.php):
  8. Pass autofocus => true to hometext getTplTextarea call

Benefits: - Batch selector is visually grouped and easier to scan at a glance - autofocus moves keyboard focus directly to body on add-news page

Technical notes: - select-optgroup.html is a shared admin fragment reusable in other modules - Placeholder option (_OPMOD) remains as the default unselected item

Style: Admin UI — migrate icons from sprite.png to Bootstrap Icons
Автор: Eduard Laas | Дата: 12:01 24.04.2026

Replace all sprite.png-based icons in admin UI components (tooltips, move controls, status badges) with Bootstrap Icons SVG font, enabling vector rendering, keyboard accessibility, and theme-aware coloring across all template variants.

Core changes:

  1. Tooltip styles (new.css × 4 templates, system.css):
  2. Replace sprite background-image with inline Bootstrap Icon (bi-info-circle-fill)
  3. Add tabindex="0" and focus-visible outline for keyboard accessibility
  4. Replace <br>-separated items with <dl>/<dt>/<dd> grid layout
  5. Remove legacy .sl_tip definition from system.css (merged into new.css)
  6. Move controls (new.css, move-controls.html):
  7. Replace sprite arrows with Bootstrap Icons (\f139 up, \f118 down)
  8. Add .sl-move-controls flex wrapper for alignment
  9. Add hover/focus scale and color transitions
  10. Status icons (new.css, inline-badge.html):
  11. Add .sl-status-active and .sl-status-inactive icon classes
  12. Wire is_status_active / is_status_inactive flags in inline-badge fragment
  13. Floating panel engine (floating.js):
  14. New JS module: viewport-aware positioning for .sl-tip and .sl-menu dropdowns
  15. Handles edge overflow, above/below flip, arrow alignment
  16. Binds to DOMContentLoaded and htmx:load for HTMX fragment reloads
  17. Admin CSS tweaks (system.css, theme.css):
  18. Add .sl-col-check column alignment rules
  19. Add .sl-admin-language-link hover styles
  20. Unify hover background-color to #f7fbfd across all table components
  21. Remove font-weight:bold from inline button rule

Benefits: - Scalable vector icons replace fixed-size 16x16 sprite fragments - Tooltips and menus are now keyboard-navigable (tabindex, focus-within) - Consistent hover token (#f7fbfd) across all list and table components

Technical notes: - Bootstrap Icons font already present in admin layout - floating.js replaces CSS :hover positioning with JS viewport-aware placement - .sl_tip legacy alias preserved in new.css for modules not yet migrated

Эта неделя (23.04.2026)
Chore: Language flags — rename to country-based scheme and refresh visuals
Автор: Eduard Laas | Дата: 23:22 23.04.2026

Refresh the language flag set across all four themes, dropping legacy short-code and _mini filenames in favor of consistent country-based naming matched by getLanguageFlagSrc(), and re-export the remaining flags with a unified visual style.

Core changes:

  1. New country-named flags (templates/{admin,default,lite,simple}/images/lang/):
  2. Add usa.png, russia.png, iran.png, syria.png, moldova.png, south_korea.png, north_korea.png, faeroe_islands.png

  3. Names align with getLanguageFlagSrc() mapping and with the common ISO short-code <-> country pairing used by the admin switcher

  4. Legacy short-code removal (templates/{admin,default,lite,simple}/images/lang/):
  5. Remove de.png, en.png, fr.png, pl.png, ru.png, uk.png
  6. Remove all _mini variants (de_mini.png, en_mini.png, fr_mini.png, pl_mini.png, ru_mini.png, uk_mini.png)

  7. Admin no longer ships _mini files; the frontend no longer ships short-code duplicates

  8. Long-form name removal (templates/{admin,default,lite,simple}/images/lang/):
  9. Remove russian_federation.png, islamic_republic_of_iran.png, syrian_arab_republic.png, republic_of_korea.png, democratic_peoples_republic_of_korea.png, republic_of_moldova.png, united_states_of_america.png, europe.png, islands.png

  10. Superseded by the shorter country-named equivalents
  11. Visual refresh (templates/{admin,default,lite,simple}/images/lang/):
  12. Re-export the remaining country flags with a consistent style; binary content changes across the full set in every theme

Benefits: - Filenames align with the runtime flag resolver, eliminating the previous dependency on short-code and _mini lookups - Unified visual style across admin and frontend themes - Smaller, cleaner flag inventory with one canonical filename per country

Technical notes: - Binary-only change; no code is touched in this commit - Depends on the previous commit that introduces getLanguageFlagSrc() and maps short codes to the new country-named files - Admin and frontend themes now share the same filename conventions

Refactor: Languages — centralized flag resolver and form-wrap migration
Автор: Eduard Laas | Дата: 23:22 23.04.2026

Centralize language flag image resolution behind a single helper, read the installed-language directory via BASE_DIR instead of a relative path, and migrate the languages block form markup to the shared form-wrap partial.

Core changes:

  1. Flag resolver helper (core/system.php):
  2. Add getLanguageFlagSrc() mapping short ISO codes (de/en/fr/pl/ru/uk) to country-named flag files (germany/england/france/poland/russia/ukraine) * Falls back to lang/white.png when the resolved image is missing * Uses img_find() to keep theme fallback behavior intact

  3. Admin language switcher (core/admin.php):
  4. getAdminLanguageLinks() now resolves the flag src via getLanguageFlagSrc() instead of a hardcoded "lang/<code>_mini.png"

  5. Languages block (blocks/languages.php):
  6. Resolve flag image through getLanguageFlagSrc()
  7. Read the installed-language directory from BASE_DIR.'/lang' instead of the relative "lang" path

  8. Render the selector form through the shared form-wrap partial using the new is_block_languages flag, replacing an inline <form> tag

  9. Normalize indentation to 4 spaces per project style
  10. Template helper (core/helpers.php):
  11. getTplLanguageOptions() reads BASE_DIR.'/lang' instead of a relative "lang" path so it behaves consistently regardless of CWD

  12. Shared form partial (templates/{default,lite,simple}/partials/form-wrap.html):
  13. Add an is_block_languages branch that attaches class="block-languages" to the rendered <form>, composable with an optional form_class

  14. Config (config/local.php):
  15. Bump _meta.base_fingerprint to reflect the core baseline change

Benefits: - Single source of truth for language flag resolution across admin and frontend blocks - Removes dependency on short-code and _mini flag filenames in code - Eliminates CWD-dependent reads of the language directory

Technical notes: - Requires country-named flag files (germany.png, england.png, ...) to exist in every theme's images/lang/ directory; delivered in a follow-up commit that refreshes the flag set - Admin no longer consumes _mini flag variants - form-wrap change is additive: existing callers without the new flag render the same markup as before

Docs: Update editor docs, theme hook API, admin info texts, add demo files
Автор: Eduard Laas | Дата: 18:17 23.04.2026

Bring documentation in sync with the removal of the BB editor, the addition of Toast UI as the primary content editor, and the new theme hook architecture. Update admin info texts to remove outdated BB editor references.

Core changes:

  1. docs/EDITORS.md:
  2. Remove bbcode/ from the plugin directory tree
  3. Update manifest.json example to reflect Toast UI (id, label, driver, formats)
  4. Extend formats field description to include markdown as a valid value
  5. docs/TEMPLATES.md:
  6. Remove outdated note about legacy rendering and removed runtime files
  7. Add templates/<theme>/index.php to the theme directory structure listing
  8. Add full Theme Hooks section: purpose, loading mechanism, hook function contracts (getThemeHeadVars, getThemeFootVars, getAdminHeadVars), usage rules, and standard implementation direction

  9. admin/info/config/ (de.html, ru.md, uk.html):
  10. Replace BB editor editor list with current editors (ToastUI, TinyMCE, CKEditor)
  11. Update _CLICABLEINFO hint to describe hyperlink conversion as editor-neutral
  12. admin/info/uploads/ (de.html, ru.md, uk.html):
  13. Replace references to BB Editor with editor-neutral wording in all three locales
  14. admin/info/messages/ru.md, admin/info/newsletter/ru.md:
  15. Replace «BB-редактор» references with neutral «редактор» wording
  16. README.md:
  17. Remove bbcode from the list of bundled editor drivers
  18. New docs files:
  19. docs/TODO.md: current open task list for the project
  20. docs/admin-layout-demo.html: static HTML prototype of the admin layout
  21. docs/admin-layout-demo-2.html: alternate admin layout prototype variant

Benefits: - Docs accurately reflect the active plugin set and theme hook contract - Admin info texts no longer reference the removed BB editor - Theme hook documentation provides a stable reference for custom theme authors

Technical notes: - admin/info files use locale-specific markup (BB-style for .html, Markdown for .md) - TEMPLATES.md hook rules section covers both do and do-not patterns

Style: Admin theme — logo update, toolbar layout, footer brand link
Автор: Eduard Laas | Дата: 18:17 23.04.2026

Update the admin theme visuals: a larger logo image replaces the old one, the toolbar becomes a flex row, and the admin footer gains a SLAED home link rendered through the standard link fragment.

Core changes:

  1. templates/admin/images/slaedcms.png:
  2. Replace 169×51 logo with a 256×73 higher-resolution version
  3. templates/admin/images/000slaedcms.png:
  4. Add the previous 169×51 logo as a preserved alternate (original dimensions)
  5. templates/admin/assets/css/new.css:
  6. Update .sl-admin-login-header height to 104px (was 82px) at all breakpoints
  7. Update .sl-admin-login-header h1 a to 256×73 with background-size
  8. Update .sl-admin-login-shell .sl-admin-brand height to match
  9. templates/admin/assets/css/theme.css:
  10. Update .header h1 a to 256×73 logo with background-size
  11. Update .sl-admin-brand and .sl-admin-toolbar height to 90px (was 72px)
  12. Set .sl-admin-toolbar to display:flex + align-items:center
  13. Add .footer span a.sl-slaed-home { right: 62px } positioning rule
  14. Add .footer span a.sl-slaed-home:before { content: "\f588" } icon
  15. templates/admin/fragments/link.html:
  16. Add is_top_hidden flag support: appends thide CSS class when set
  17. templates/admin/partials/foot-controls.html:
  18. Render brand_link via the link fragment when present (before the top link)
  19. core/system.php:
  20. renderFootControls(): add $withSlaedLink = false parameter; when true, inject a brand_link array with href=//slaed.net and class=sl-slaed-home

  21. setFoot() admin path: pass true to renderFootControls() to show the link
  22. Remove the legacy preview() compatibility wrapper (was unused after getTplBbEditor removal; getTplPreviewContent() is the direct call target)

Benefits: - Admin logo is crisp on high-DPI screens - Footer brand link uses the existing link fragment — no custom HTML - thide class is now driven by template data, not hardcoded conditionals

Technical notes: - is_top_hidden in link.html appends thide alongside any other class values - The brand link uses is_top_hidden: true so it renders as an icon-only link - preview() removal is safe: getTplPreviewContent() is the direct API

Refactor: Parser — theme-aware fallback image resolution and no-image assets
Автор: Eduard Laas | Дата: 18:16 23.04.2026

Rewrite getFallbackImage() to resolve the placeholder image using the active theme name instead of iterating a static list of hard-coded candidate paths. Add missing no-image.png assets for the default and simple themes.

Core changes:

  1. core/classes/parser.php — getFallbackImage():
  2. Use getTheme() or $conf['theme'] to determine the active theme at runtime
  3. Build a deduplicated list of candidate themes (active → default → lite → admin)
  4. Look for templates/<theme>/images/misc/no-image.png in each candidate
  5. Use BASE_DIR for absolute path checks instead of $this->getRootPath()
  6. Fall back to an embedded 1×1 transparent GIF if no file is found
  7. New image assets:
  8. templates/default/images/misc/no-image.png (951 bytes)
  9. templates/simple/images/misc/no-image.png (951 bytes)

Benefits: - Fallback image resolution honours the active theme without a fixed path list - New themes are resolved automatically without editing the candidate array - BASE_DIR usage aligns with the rest of the codebase path handling

Technical notes: - Static cache ($fallback) preserved: resolution runs once per request - Embedded GIF fallback remains as last resort when no file exists on disk - templates/admin and templates/lite already had no-image.png; only default and simple were missing the asset

Feature: Toast UI editor — file upload API, custom assets, upload panel
Автор: Eduard Laas | Дата: 18:16 23.04.2026

Implement the server-side file upload API for the Toast UI editor and wire it into the editor frontend. The new API handles file upload and file listing as dedicated endpoints in index.php, backed by focused helper functions in core/system.php. Custom JS and CSS assets extend the editor with emoji, icon styles, tag shortcuts, and upload panel integration.

Core changes:

  1. core/system.php — editor JSON API helpers:
  2. getEditorJson(array): emit JSON response and exit
  3. getEditorUploadData(string): validate and return upload config for a module
  4. checkEditorUploadAccess(string, array): check visitor upload permission
  5. getEditorImageData(string, string, int, int): validate image dimensions
  6. getEditorFileData(string, string): build file metadata row for JSON output
  7. addEditorUpload(): handle POST file upload and return JSON result
  8. getEditorFileJson(): return stored editor files as JSON for the file panel
  9. index.php:
  10. Route go=4 op=editorUpload to addEditorUpload()
  11. Route go=4 op=editorFiles to getEditorFileJson()
  12. Fix routing bug: switch($go) corrected to switch($op)
  13. plugins/editors/toastui/driver.php:
  14. Add getEmojiLabels(): inline locale-mapped emoji panel labels (de/en/fr/pl/ru/uk)
  15. Load slaed-icons.css, slaed-tags.js, slaed-emoji.js, slaed-upload.js
  16. Pass upload panel and JSON options (token, endpoints, labels) to JS via SlaedToastUi.register()
  17. Render toastui-upload-panel partial when module upload is permitted
  18. New Toast UI assets (plugins/editors/toastui/assets/):
  19. slaed-emoji.js: emoji picker plugin with categorised emoji sets
  20. slaed-icons.css: custom toolbar icon overrides using Bootstrap Icons
  21. slaed-tags.js: tag shortcut extension for common BB-style tags
  22. slaed-upload.js: upload panel logic (drag-drop, file list, attachment insert)
  23. Upload panel partials (templates/*/partials/toastui-upload-panel.html):
  24. Added for admin, default, lite, simple templates
  25. Bootstrap Icons vendor (templates/default|lite/assets/vendor/bootstrap/):
  26. bootstrap-icons.min.css and woff2 font file for the icon set

Benefits: - Toast UI now supports full file upload with the same access rules as the BB editor - Upload API is editor-agnostic: clean helper functions with no HTML coupling - Emoji, tags, and upload are modular JS extensions loaded only when needed

Technical notes: - Upload endpoints use the existing SLAED token system (getSiteToken/checkSiteToken) - addEditorUpload() handles multi-file upload arrays and returns per-file results - getEditorFileJson() respects user ownership and moderator scope limits - Bootstrap Icons font is vendored; no CDN dependency at runtime

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

Хотите опробовать SLAED CMS в действии?

Технологии

PHPMySQLHTML 5CSS 3jQueryjQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь