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

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

Всего: 881 Доступных коммитов | Отфильтровано: 881 Коммиты | Страница: 1 / 89
Вчера (15.06.2026)
Perf: rework final HTML output normalizer for readable, fast view-source
Автор: Eduard Laas | Дата: 16:21 15.06.2026

Replace the cache-only getCompressHtml() with a single getOutputHtml() that normalizes the assembled page in setFoot() before echo and before page-cache write, so users always receive processed HTML even when page-cache is off.

Core changes:

  1. Output normalizer (core/system.php):
  2. Add getOutputHtml(string $html, bool $full = false) replacing getCompressHtml()

    • Protect script/style/pre/code/textarea bodies and comments first, exposing
only the opening tag so multiline <script src> tags get normalized too
  • Squeeze multiline class lists and multiline tags to a single line
  • Keep the template's own indentation; only drop blank lines from false {% if %}
  • full=true keeps the legacy maximal-compression path and strips non-IE comments
  1. Output and cache wiring (core/system.php):
  2. Echo the readable (full=false) output to the user on every request
  3. Compress (full=true) only the copy written to storage/cache/pages/html when cache_c=1, restoring the original cache-only compression contract

Benefits:

  • Heavy parsing runs only on the few multiline matches, not on every tag
  • Real homepage normalization measured at ~0.32 ms vs ~4.3 ms for a tokenizer
  • view-source has no multiline tags, no multiline class, no giant glued lines

Technical notes:

  • storage/cache/templates keeps compiled PHP only; final HTML is never written there
  • Output is idempotent; script/style/pre/code/textarea bodies stay byte-for-byte
  • Behavior change: live echo is now normalized for readability on every request; with cache_c=1 a cache hit still serves compressed HTML while a miss serves readable HTML, matching the previous cache-only compression semantics

Style: Update lite theme controls and spacing
Автор: Eduard Laas | Дата: 15:03 15.06.2026

This commit refines lite theme layout spacing, rating control presentation, and floating feedback links. It removes the separate contact-block partial now that both layouts render the feedback link directly.

Core changes:

  1. Theme spacing and controls (theme.css, base.css):
  2. Add a shared grid gap variable and apply it to card and post grids.

    • Adjust full-view width and metadata alignment rules.
    • Refine rating badges, star hover preview, and mobile metadata stacking.
  3. Update floating idea and feedback tabs to grow from the screen edge.

    • Uses sideways writing mode where supported.
    • Avoids edge gaps during hover and focus states.
  4. Lite layouts (app.html, home.html):
  5. Render the feedback tab directly in both layouts.
  6. Keep the layout output independent of a separate partial payload.
  7. Theme foot variables (index.php, contact-block.html):
  8. Remove contactblock generation from theme foot variables.
  9. Delete the unused contact-block partial.

Benefits:

  • Reduces one template indirection in the lite footer path.
  • Improves consistency of grid spacing and floating controls.
  • Keeps rating UI states clearer for interactive and static displays.

Technical notes:

  • No database or storage changes.
  • Template output changes are limited to the lite theme.
  • Backward compatible for existing theme data except the removed internal contactblock variable.
Refactor: Consolidate rating ajax workflow
Автор: Eduard Laas | Дата: 15:03 15.06.2026

This commit unifies rating rendering and voting request handling so star and like controls share one data contract. It also switches live rating actions to POST requests with CSRF headers.

Core changes:

  1. Rating rendering helper (core/helpers.php):
  2. Collapse duplicate star and like rendering branches into one shared template payload.

    • Builds a common vote query and live-state wrapper.
    • Provides CSRF token data for live HTMX requests.
  3. Rating request handler (core/system.php):
  4. Replace repeated module-specific branches with a table and field map.

    • Keeps duplicate-vote checks by user, ip, and cookie.
    • Persists votes through prepared statements and returns the refreshed rating block.
  5. Rating fragments (rating-bar.html, rating-like.html):
  6. Use the shared vote_query payload for live interactions.

    • Sends votes with hx-post instead of hx-get.
    • Adds CSRF headers to live rating containers.

Benefits:

  • Removes duplicated rating control rendering logic.
  • Makes rating vote handling easier to audit and extend.
  • Aligns state-changing rating actions with POST semantics.

Technical notes:

  • No database schema changes.
  • The template payload for rating controls is updated.
  • Backward compatible for existing persisted rating values.
Fix: Harden runtime edge cases from PHP logs
Автор: Eduard Laas | Дата: 15:02 15.06.2026

This commit prevents malformed requests and concurrent cache writes from generating PHP warnings or TypeErrors. It keeps pagination and cache writes bounded before they reach runtime-sensitive PHP APIs.

Core changes:

  1. Search pagination (modules/search/index.php):
  2. Clamp page size and requested page before calculating the array slice offset.

    • Prevents oversized numeric input from overflowing into a float offset.
    • Passes the normalized page to the pager renderer.
  3. Forum topic view (modules/forum/index.php):
  4. Clamp requested topic pages to the available page range before building the SQL offset.

    • Handles empty result sets before reading the first row.
    • Casts category permission fields before calling is_acess().
  5. Cache writes (core/classes/cache.php):
  6. Use a unique temporary file for atomic cache writes.

    • Avoids rename/unlink warnings from concurrent writers sharing one .tmp path.

Benefits:

  • Reduces noisy PHP log entries from crawler input.
  • Prevents request-level TypeErrors from invalid pagination values.
  • Improves reliability of concurrent cache generation.

Technical notes:

  • No storage format changes.
  • No public API changes.
  • Backward compatible behavior for valid requests.
09.06.2026
Refactor: replace the inline footer feedback form with a contact link
Автор: Eduard Laas | Дата: 17:31 09.06.2026

Drop the dropdown feedback form from the footer and link straight to the contact module, removing the per-request captcha and token work behind it.

Core changes:

  1. Footer block (templates/lite/partials/contact-block.html):
  2. Replace the dropdown form with a plain link to index.php?name=contact
  3. Theme hook (templates/lite/index.php):
  4. Stop building the feedback fields, captcha and token in getThemeFootVars(); pass only the label

Benefits:

  • Less work per page render (no captcha/token for the footer)
  • Smaller markup surface

Technical notes:

  • The contact page keeps its own form, captcha and token, reachable via the link

  • The matching form-only styles are removed in the lite style commit
Style: migrate the lite theme to sl-float and modernise the side tabs
Автор: Eduard Laas | Дата: 17:31 09.06.2026

Bring the frontend theme onto the shared .sl-float / .sl-float-panel contract, give the side tabs a modern vertical-text layout pinned to the left edge, and make the id badge a circle-or-pill.

Core changes:

  1. Floating popovers (templates/lite/assets/css/theme.css):
  2. Map tip/menu/dropdown panels onto .sl-float-panel with the sl-is-open state and viewport-fixed placement

  3. Drive click dropdowns through opacity/visibility so they fade in place
  4. Transition opacity only (not position) so panels no longer slide in or up
  5. Side tabs (#block-idea / #block-feedback):
  6. Pin both tabs to the left edge, stacked symmetrically around the vertical centre with writing-mode vertical text

  7. On hover slide out to the right with the label; a same-colour left shadow keeps the screen edge covered

  8. Id badge (.sl-card-id):
  9. Size to the 24px token; min-width plus a pill radius render a circle for a single digit and widen for more

  10. Footer feedback styles:
  11. Remove the now-unused .sl-block-feedback-form / .sl-bff-* and #block-feedback dropdown rules

Benefits:

  • One floating mechanism shared with the admin theme
  • Side tabs no longer clipped by the right-hand scrollbar
  • Cleaner, token-driven badges and tabs

Technical notes:

  • Frontend (lite) theme only
Style: refine the admin sl-float contract and the Server Status monitor
Автор: Eduard Laas | Дата: 17:30 09.06.2026

Adopt the .sl-float / .sl-float-panel contract in the admin theme and polish the monitor page: fix the gauge percentage colours, drop the unwanted info-block scroll, align the chart tooltip surface and add jump links from the Software panel.

Core changes:

  1. Admin theme (templates/admin/assets/css/theme.css):
  2. Collapse the paired .sl-tip / .sl-menu rules onto .sl-float-panel and the sl-is-open state

  3. Server Status: let the % text inherit the gauge colour by dropping the static colour override

  4. Remove the info-grid overflow-x that forced a vertical scrollbar
  5. Match the chart tooltip surface to the popover tokens
  6. Turn the Software items into smooth-scrolling jump links
  7. Monitor markup (templates/admin/partials/basic-monitor.html):
  8. Add anchor ids to the Server/PHP/MySQL blocks and link the Software rows
  9. Monitor module (admin/modules/monitor.php):
  10. Render the diagnostic cells through the unified popover (icon + value)
  11. Bump the chart tip corner radius to match the panel

Benefits:

  • Consistent floating UI and monitor styling
  • Clearer at-a-glance Server Status colours
  • Quicker navigation inside the monitor page

Technical notes:

  • Admin-only; no behaviour change outside the monitor
Refactor: replace tip/menu/dropdown fragments with a unified popover
Автор: Eduard Laas | Дата: 17:30 09.06.2026

Collapse the separate info-tooltip, row-actions and editor-action-menu templates into a single popover fragment per theme and migrate every call site, so all floating popovers share one markup contract built on the .sl-float / .sl-float-panel primitive.

Core changes:

  1. Unified fragment (templates/{admin,lite}/fragments/popover.html):
  2. Add one popover that renders either a tip (icon + text/dl) or an action menu, selected from the passed keys

  3. Delete info-tooltip.html, row-actions.html and editor-action-menu.html
  4. Call sites (core/.php, admin/modules/.php, modules/*/.php):
  5. Point ~100 getHtmlFrag() calls at the new popover fragment
  6. Repoint the edit-actions.html and view.html includes
  7. Frontend markup (templates/lite/fragments + partials):
  8. Tag tip/menu/dropdown hosts with .sl-float and panels with .sl-float-panel; mark click dropdowns with data-sl-float-event="click"

  9. Drop the now-inert data-sl-toggle-effect attributes from float dropdowns

Benefits:

  • One popover contract instead of three near-duplicate fragments
  • Behaviour and output-escaping boundaries preserved
  • Smaller, easier to reason about template surface

Technical notes:

  • Tip vs menu is inferred from menu-only keys; raw vs escaped output is unchanged

  • No backend or database changes
Refactor: unify the floating popover engine in slaed.js
Автор: Eduard Laas | Дата: 17:29 09.06.2026

Move the admin-only floating.js positioning engine into the shared slaed.js bundle so tooltips, action menus and dropdowns are driven by a single mechanism on both the admin and the lite (frontend) themes.

Core changes:

  1. Floating engine (plugins/system/slaed.js):
  2. Port the positioning engine into slaed.js as setFloating()/placeFloat()

    • Bind hover popovers on DOMContentLoaded and htmx:afterSwap
    • Register resize/scroll refit listeners exactly once
  3. Write the panel position inline for hover and click alike and keep it on close, so panels fade out in place with no positioning jump

  4. Drive click dropdowns through the existing toggle path
  5. Removed module (templates/admin/assets/js/floating.js):
  6. Delete the standalone admin-only engine, now redundant

Benefits:

  • One positioning engine shared by admin and frontend
  • No duplicate resize/scroll listeners
  • Consistent open/close behaviour for every popover

Technical notes:

  • slaed.js already ships on every theme via the script_f bundle, so admin keeps its tooltips and menus without the deleted file

  • No template or API contract changes
05.06.2026
Feature: Changelog GitHub search — in-memory filtering, highlight, clean URLs
Автор: Eduard Laas | Дата: 00:58 05.06.2026

Reworks GitHub-mode changelog search to filter the cached window in memory instead of re-fetching GitHub per query, adds search-term highlighting, canonical filter URLs, and the system-standard word query parameter.

Core changes:

  1. In-memory search/filter (modules/changelog/common.php):
  2. Add chlogFilterCommits() applying search (subject+body), author (name+email) and date-range filters in PHP over the cached window
  3. chlogLoadCommits() now fetches the unfiltered GitHub window once and filters locally — no per-term GitHub requests or per-term cache files
  4. Report the window size as total so "Всего/Отфильтровано" show distinct counts
  5. Search highlighting (modules/changelog/common.php, templates):
  6. Highlight the search term in commit subject and body via filterTextHighlight()
  7. Switch the subject slot to raw output ({{{ }}}) so highlight markup renders; this also fixes prior double-escaping of subjects
  8. Clean filter URLs (modules/changelog/common.php, index.php, admin/index.php):
  9. Add chlogCanonicalRedirect() that strips empty GET params (author=&datefrom=…) only when present, leaving clean links untouched
  10. Rename the search parameter from search to the system-canonical word across form, pagination and redirect
  11. Hide file filter in GitHub mode (templates, controllers):
  12. The GitHub commits list API returns no per-commit files, so the file filter is hidden when source=github
  13. Docs (modules/changelog/admin/info/ru.md):
  14. Document the caching/window model, search scope, filters and edge cases

Benefits:

  • Search costs zero extra GitHub requests and is instant over the window
  • Shareable, bookmarkable filter URLs without empty parameters
  • Correct counters and properly escaped, highlighted output

Technical notes:

  • Internal filter key stays search; only the public query parameter is word
  • Filtering is window-scoped in GitHub mode; git mode keeps server-side git log filtering
  • No CSRF token on the read-only GET search form, matching the search module

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

1 2 3 4 5 6 7 8 9 10 89

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

Идеи и предложения
Обратная связь