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

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

Всего: 923 Доступных коммитов | Отфильтровано: 923 Коммиты | Страница: 1 / 93
Сегодня (24.06.2026)
Style: brand error page title and drop redirect wording
Автор: Eduard Laas | Дата: 11:10 24.06.2026

Align the error page presentation with the removed auto-redirect.

Core changes:

  1. Error page (templates/lite/pages/message.html):
  2. Render "<title> - <sitename>" when a page title is set
  3. Localization (lang/*.php):
  4. _ERROR_PAGE now invites returning home or using search instead of announcing a redirect (de/en/fr/pl/ru/uk)
Feature: return SEO-correct HTTP 404/403 instead of soft 200/302
Автор: Eduard Laas | Дата: 11:10 24.06.2026

Missing content, out-of-range list pagination and access-restricted pages now emit proper 404/403 instead of redirecting or returning 200, so crawlers stop indexing soft-error pages. Error rendering is consolidated into one setError() helper.

Core changes:

  1. Error helper (core/security.php):
  2. Add setError(int $code): status via http_response_code(), conditional logging, standard error page
  3. Drop the meta-refresh auto-redirect from setExit() (soft-404 / WCAG 2.2.1 anti-pattern)
  4. Route the bootstrap $_GET['error'] handler through setError(), removing the 40-line $http status map
  5. Frontend modules (modules/*/index.php):
  6. view(): 404 when the item does not exist
  7. list/liste(): 404 when a page beyond the first yields no rows
  8. forum: 404 for out-of-range topic pages and unpublished topics, 403 when category read is denied
  9. broken()/loading(): 404 on invalid requests
  10. Module gates (index.php):
  11. view=1 / view=2 access denials now send 403

Technical notes:

  • http_response_code() is HTTP/2-safe; error responses keep Cache-Control: no-store
  • Backward compatible; php -l and phpstan clean
Вчера (23.06.2026)
Fix: news block content init and fieldset top margin
Автор: Eduard Laas | Дата: 15:43 23.06.2026

Core changes:

  1. News block (blocks/news.php):
  2. Initialize $content before the result loop to avoid an undefined variable
  3. Base styles (templates/lite/assets/css/base.css):
  4. Fieldset uses margin-top instead of an all-sides margin
Fix: associate user-info block login inputs with labels (a11y)
Автор: Eduard Laas | Дата: 15:43 23.06.2026

Wrap the nickname/password inputs of the user-info block login form in <label> for implicit association, matching the block-login-form fix.

Core changes:

  1. block-user-info.html:
  2. Wrap nickname and password inputs in <label>
Fix: mobile and desktop horizontal overflow in lite theme
Автор: Eduard Laas | Дата: 15:41 23.06.2026

Remove horizontal scroll across phone, tablet and laptop widths in the lite theme and tidy the touched comments to the project style.

Core changes:

  1. Footer grid (theme.css):
  2. Mobile grid tracks use minmax(0, 1fr) and grid items get min-width:0 so content wraps instead of forcing the column wider than the viewport
  3. Header and side elements (theme.css):
  4. Login dropdown closed state is position:fixed on mobile so its off-screen box no longer widens the page; the JS-opened state still positions in view
  5. Demo-line version pane wraps on narrow screens; header version pane is hidden on mobile (duplicate of the demo-line and footer CTA)
  6. Remove the -30px bleed margins on the logo and header pane that pushed them past both viewport edges on laptops (<=1352px)
  7. Hide the fixed left-edge idea/feedback tabs on mobile (they overlapped the menu and blocked taps)
  8. Comments (theme.css):
  9. Single-line, no trailing period, ASCII per .rules/global.md

Benefits:

  • scrollWidth == clientWidth from 320px to 1680px
  • No clipped logo, button or footer text; no tap-blocking overlays on mobile
Fix: explicit image dimensions and form labels in lite theme
Автор: Eduard Laas | Дата: 15:41 23.06.2026

Reserve layout space for the logo, footer wordmark and footer flag, and give the block login/search inputs accessible names, cutting CLS and fixing the Lighthouse "image elements lack width/height" and "form elements must have labels" audits.

Core changes:

  1. Image dimensions (core/system.php, lite layouts):
  2. Add getImageBox() to resolve intrinsic [w,h] from an SVG viewBox or via getimagesize
  3. setHead() passes logo_w/logo_h so the configurable header logo gets a correct width/height
  4. home.html/app.html: width/height on the header logo, footer wordmark (355x110) and de flag (60x40)
  5. Form labels (lite fragments):
  6. block-login-form: wrap nickname/password inputs in <label> for implicit association
  7. block-search-form: add aria-label to the search input

Benefits:

  • Lower CLS from dimensioned images
  • Accessible names for login and search controls

Technical notes:

  • Logo dimensions are computed server-side so any configured logo stays correct
Docs: server-side static caching and compression guide
Автор: Eduard Laas | Дата: 13:43 23.06.2026

Document the portable caching strategy for distributors on different servers, splitting the PHP-served bundle from server-served static files and giving ready Apache and nginx configurations.

Core changes:

  1. Performance reference (docs/PERFORMANCE.md):
  2. New section on static asset caching and compression
  3. nginx gzip/expires snippet and font-versioning caveat
  4. Admin editor help (admin/info/editor/ru.md):
  5. Caching/compression snippet for the .htaccess tab plus nginx note

Benefits:

  • Clear per-server guidance for varied SLAED installations
Perf: enable static cache and compression fallback in .htaccess
Автор: Eduard Laas | Дата: 13:43 23.06.2026

Re-enable and extend the Apache caching/compression rules so Apache and LiteSpeed installs get sane defaults out of the box; nginx installs use the server-config snippet documented separately.

Core changes:

  1. Apache fallback (.htaccess):
  2. Enable mod_deflate for js/css/svg/xml/json/txt (woff2/woff excluded)
  3. Enable mod_expires with per-type TTLs

    • images/css/js 30 days, fonts 1 year
  4. Replace the old flat FilesMatch that missed woff2 and svg

Benefits:

  • Cached and compressed static assets on Apache/LiteSpeed by default

Technical notes:

  • nginx ignores .htaccess; see docs for the equivalent server config
  • Font 1-year TTL is safe once font URLs are versioned
Perf: LCP preload, image dimensions and search label (lite)
Автор: Eduard Laas | Дата: 13:43 23.06.2026

Improve LCP and CLS on the lite theme by preloading the actual hero image of each page, reserving space for static images, and giving the search field an accessible name.

Core changes:

  1. Conditional LCP preload (templates/lite/index.php, layouts):
  2. getTemplateLcpPreload() emits one preload from an explicit render flag

    • main-module slider -> <season>.jpg
    • head-content pages -> <season>-cat.jpg
    • verified with is_file(); at most one resource per page
  3. Add {{{ preload }}} slot to home.html and app.html heads
  4. Layout shift and a11y (layouts, partials/main-slider.html):
  5. width/height on slider images (1920x440) and footer tech icons (74x74)
  6. aria-label on the header search input

Benefits:

  • Earlier LCP discovery for the season hero background
  • Reduced CLS from dimensioned images
  • Named search control for assistive tech

Technical notes:

  • Preload chosen by page flag at render time, never by HTML regex
  • No markup churn to the bi bi-* icon API
Perf: content-aware asset fingerprint and immutable bundle caching
Автор: Eduard Laas | Дата: 13:42 23.06.2026

Make the CSS/JS bundle URL change on any real content change and let browsers cache it for a year, so repeat visits skip re-downloading unchanged bundles while deploys never serve stale assets.

Core changes:

  1. Asset fingerprint (core/system.php):
  2. Add ASSETS_VER constant as an in-code, release-bumped cache key
  3. Include filesize() alongside filemtime() in doCss()/doScript() bits

    • invalidates the bundle even if a deploy preserves file mtimes
  4. Asset response headers (core/classes/cache.php, index.php):
  5. Add optional immutable flag to Cache::setHeaders()
  6. Serve the go=asset bundle with max-age=31536000, immutable

Benefits:

  • Year-long bundle caching without risk of stale assets
  • Portable: works on any server, no web-server config required

Technical notes:

  • ASSETS_VER must be bumped on releases that ship changed CSS/JS/fonts
  • Backward compatible: setHeaders immutable defaults to false

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

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

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