Последнии сообщения форума
All theme directories now have index.html protection files redirecting to https://slaed.net. The default theme's outdated 212-line demo template is replaced with the same one-line redirect. All existing redirects are updated from http://www.slaed.net to https://slaed.net.
Core changes:
- New protection files:
- Add templates/admin/index.html (redirect to https://slaed.net)
- Add templates/lite/index.html (redirect to https://slaed.net)
- Add templates/simple/index.html (redirect to https://slaed.net)
- Add templates/simple/.htaccess (deny .html direct access)
- Replace outdated demo template (templates/default/index.html):
- Remove 212-line legacy demo HTML
- Replace with standard one-line directory protection redirect
- URL normalization (templates/*/images/index.html):
Update http://www.slaed.net to https://slaed.net * default/images/, lite/images/, simple/images/
Benefits: - Consistent directory protection across all four themes - No stale http:// redirect URLs remain in template directories
Technical notes: - Redirect target: https://slaed.net (no www, HTTPS)
The admin theme already received its favicon.svg in a prior commit. The remaining three themes now get the same file in their images/ dirs so all favicon lookups via is_file() resolve correctly.
Core changes:
- SVG favicon (templates/default/images/favicon.svg):
- Add favicon.svg (8998 bytes)
- SVG favicon (templates/lite/images/favicon.svg):
- Add favicon.svg (8998 bytes)
- SVG favicon (templates/simple/images/favicon.svg):
- Add favicon.svg (8998 bytes)
Benefits: - All four themes now have a valid favicon.svg at the expected path - is_file() guards in core will resolve to true for all themes
Technical notes: - Path convention: templates/{theme}/images/favicon.svg
Legacy PNG and ICO files for favicons, logos, flag images, and misc icons have been superseded by their SVG counterparts in all four themes. All code references were updated in previous commits.
Core changes:
- Favicons (all themes):
Remove favicon.ico and favicon.png from repo root and each theme root * admin, default, lite, simple
- Logo images (all themes):
Remove templates//images/logos/png/.png and logos/*.png SVG equivalents already present in templates//images/logos/
- Flag images (admin, default, lite, simple):
Remove templates//images/lang/.png (948 files total) * SVG flags added in d14104b, PNG resolution removed in c621469
- Misc admin icons:
- Remove templates/admin/images/info.png and warn.png
Benefits: - Repository cleanup: 983 obsolete binary files removed - Eliminates PNG/SVG duplication for all image asset types
Technical notes: - SVG assets are already committed and referenced by all themes - No fallback to PNG remains in any template or core file
PHP_EOL resolves to \r\n on Windows, producing incorrect line endings in HTTP responses. Web output must always use Unix \n regardless of the server OS.
Core changes:
- Error page meta output (core/security.php, core/access.php):
- Replace PHP_EOL with "\n" in
$jumpand$metastring concatenation - Replace
implode(PHP_EOL, ...)withimplode("\n", ...)for$links
Benefits: - Correct Unix line endings in all HTML responses on Windows hosts - Consistent output across platforms
Technical notes: - PHP_EOL is appropriate for file I/O and CLI output, not HTTP responses
All favicon references in the core layer now point to templates/{theme}/images/favicon.svg instead of the deprecated PNG and ICO variants, consistent with the overall SVG asset migration.
Core changes:
- Error page (core/access.php, core/security.php):
- Remove intermediate
$themedir/$basedirvariables Replace PNG/ICO fallback chain with single SVG check via
is_file()*type="image/svg+xml"set explicitly- Page head (core/system.php):
Wrap favicon link in
is_file()guard for SVG path * Previously unconditional PNG reference- OpenSearch descriptor (core/user.php):
Replace dual PNG/ICO
<Image>entries with single conditional SVG entry * Falls back to empty string if SVG absent
Benefits: - Single source of truth for favicon format across all core outputs - No broken link when legacy PNG/ICO files are removed
Technical notes: - SVG path: templates/{theme}/images/favicon.svg - is_file() guards prevent broken links on themes without SVG yet
Fixes a typo in the admin module dispatch switch block where a semicolon was used instead of a colon after the case label, causing check_admin() to never be called correctly.
Core changes:
- Admin dispatch (admin/index.php):
Replace
;with:aftercase 'check_admin'* Was:case 'check_admin'; check_admin(); break;* Now:case 'check_admin': check_admin(); break;
Benefits: - Correct PHP switch-case syntax - check_admin() is now properly invoked
Technical notes: - No functional change beyond fixing the unreachable call
SVG flags have no intrinsic size (viewBox only), so without explicit CSS they render at 300×150 px. This commit adds size, border, and the Bootstrap Icons hover scale pattern to every flag placement in the admin theme.
Core changes:
- .sl-menu-list-image (sidebar menu, left navigation icons):
- width: 24px; height: auto (replaces fixed 24×24 with object-fit)
- border: 1px solid var(--sl-color-border-strong)
- border-radius: var(--sl-radius-control)
- .sl-table-list-sort .sl-col-ip .sl-geo-flag img (IP column in tables):
- width: 24px; height: auto; border and border-radius as above
- .sl-session-icon .sl-geo-flag img (online-users sidebar widget):
- Same 24 px sizing, border, border-radius treatment
- .sl-admin-language-link (header language switcher):
- Transition eased to background-color 0.15s (matches Bootstrap Icons)
:hover applies transform: scale(0.84) to the child .sl-menu-list-image (rule already present; transition value corrected here)
Benefits: - Flags render at a consistent 24 px across all admin placements - Rounded border provides visual framing identical to icon buttons - Hover scale follows the Bootstrap Icons interaction pattern without introducing background-color bleed artefacts during transition
Technical notes: - --sl-color-border-strong and --sl-radius-control are defined in base.css; no new custom properties added here - The 0.15s timing eliminates the white-shimmer artefact visible at non-default browser zoom levels with the previous .18s ease value
Add 266 SVG files per theme (1064 total) under templates/*/images/flags/. Files use ISO 3166-1 Alpha-2 lowercase filenames (e.g. de.svg, ua.svg) plus an unknown.svg fallback used when no matching code is found.
Core changes:
- templates/{admin,default,lite,simple}/images/flags/ (new directories):
- 265 country flag SVGs sourced from a standard flag icon set
- unknown.svg — grey placeholder shown for unresolved language codes
- All filenames are lowercase ASCII; no spaces or special characters
Benefits: - Scalable vector flags render crisp at any DPI and zoom level - ISO 3166-1 Alpha-2 naming eliminates the need for a translation map for the common case (only edge cases like en→gb require mapping) - Four identical copies keep each theme self-contained; no cross-theme asset dependencies
Technical notes: - SVG files contain viewBox but no width/height attributes; CSS sets the rendered size (24px) via the .sl-menu-list-image rule - Flag files are identical across all four themes at this point
Flag images were resolved from templates/*/images/lang/ as PNG files named after full country names (germany.png). This replaces the logic with a central getLanguageFlagSrc() function that resolves ISO 3166-1 Alpha-2 codes from templates//images/flags/.svg.
Core changes:
- getLanguageFlagSrc() (core/system.php ~3022):
- Accepts a language code string and returns an absolute file path
Maintains a small normalisation map for edge cases: en → gb (British flag), uk → ua (Ukraine)
- Falls back to flags/unknown.svg when the resolved file does not exist
- Uses img_find() so the current theme's flags/ directory is resolved
- user_geo_ip() (core/system.php ~3096):
- Fallback flag src updated to flags/unknown.svg via img_find()
- Removed dead variable \$flag_src; inline img_find() call
- modules/clients/index.php ~102:
Package builder probe updated from lang/germany.png to flags/de.svg to detect whether flag assets are present for inclusion
Benefits: - Single function owns flag resolution; no more scattered img_find calls - ISO 3166-1 codes match the SVG filenames 1:1 without a large map - unknown.svg fallback prevents broken image tags for unmapped locales
Technical notes: - Old lang/ PNG directory is not deleted here; a separate migration step or manual cleanup can remove it once confirmed unused - All four themes must have a flags/ directory with unknown.svg
The two logo references pointed to legacy PNG files that no longer exist after the SVG migration. Config values are updated to the new SVG filenames. The base fingerprint in local.php is regenerated to reflect the changed base config.
Core changes:
- config/global.php:
- admin_logo: slaed_logo_256x79.png → slaed-logo-wordmark-gradient-blue.svg
- site_logo: slaed_logo_256x340.png → slaed-logo-mark-gradient-blue.svg
- sitekey: regenerated
- config/local.php:
- base_fingerprint: updated to match new global.php hash
Benefits: - Logo references point to existing SVG files; no 404s on logo load - Config fingerprint stays consistent with the updated global config
Technical notes: - New SVG files are present under templates/admin/images/logos/ - Only the config references and fingerprint change; no PHP logic touched





