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

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

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

Всего: 500 Доступных коммитов | Отфильтровано: 500 Коммиты | Страница: 1 / 50
Вчера (11.05.2026)
Chore: add GeoIP language constants to all admin language files
Автор: Eduard Laas | Дата: 15:26 11.05.2026

Adds 14 new i18n constants for GeoIP UI labels across all six admin language files (de, en, fr, pl, ru, uk) and updates the existing _GEO_IP constant with clearer active-voice phrasing aligned to the new panel.

Core changes:

  1. Language files (admin/lang/*.php — all six locales):
  2. Updated _GEO_IP to shorter active-voice phrasing
  3. Added _GEOLOCATION section heading
  4. Added GeoIP-specific constants: _GEOIP_ANON, _GEOIP_ASN, _GEOIP_ASNDB, _GEOIP_CACHE, _GEOIP_CONTINENT, _GEOIP_COUNTRYDB, _GEOIP_COUNTRYNAME, _GEOIP_ORG, _GEOIP_PROVIDER, _GEOIP_STORE, _GEOIP_TESTIP

  5. Added generic reusable constants: _FOUND, _NOTFOUND, _PARAMETERS, _VALUE

Benefits: - All GeoIP panel labels are fully localized in six languages - Generic constants (_FOUND, _NOTFOUND, _PARAMETERS, _VALUE) are reusable across other admin modules

Technical notes: - Constants inserted in alphabetical order at the existing _GEO_IP position - No logic changes; pure i18n additions

Feature: add GeoIP settings panel to admin config
Автор: Eduard Laas | Дата: 15:26 11.05.2026

Extends admin/modules/config.php with a GeoIP configuration section rendered on the Multilingual tab and a save handler that persists settings to config/geoip.php. The panel also shows live database status and a per-IP lookup test.

Core changes:

  1. Admin config panel (admin/modules/config.php):
  2. getGeoipPanel(): renders GeoIP settings form rows, DB status table, and test-IP result * getGeoipBadge(): renders found/not-found status badge via inline-badge fragment * getGeoipFileRow(): renders one DB file status row (name, status, size, date, path) * getGeoipRows(): renders live lookup result for a test IP address

  3. config(): merged GeoIP panel into tab 2 (Multilingual / Geolocation)
  4. save(): persists geoipenabled, geoipcache, geoipanon, geoipstore via setConfigFile()
  5. Redirect preserves testip query param so the test result survives after save

Benefits: - Operators can verify database files and test IP lookup without shell access - All GeoIP settings (TTL, anonymization, IP storage) are configurable via UI

Technical notes: - geoip.php is written by setConfigFile(), aligned with the global.php pattern - Tab label changed from Multilingual to Multilingual / Geolocation - No schema or URL contract changes; redirect path extended with optional testip param

Feature: add GeoIP subsystem with MaxMind integration
Автор: Eduard Laas | Дата: 15:26 11.05.2026

Introduces the Geoip class, configuration, and system-level autoloading to resolve visitor country and ASN data from MaxMind GeoIP2 databases. The subsystem is opt-in, isolated in core/classes/geoip.php, and exposes two thin wrappers in core/system.php.

Core changes:

  1. GeoIP class (core/classes/geoip.php):
  2. Static class with in-request per-process cache keyed on IP hash * getInfo(): returns country, continent, ASN, organization, provider, status * getCountry(): shorthand returning the ISO country code * getFileInfo(): returns database file metadata for admin UI

  3. IP anonymization: SHA-1 hash used as cache key unless store_ip is set
  4. MaxMind reader lazily opened once per process per DB path
  5. System bootstrap (core/system.php):
  6. Added require_once for geoip.php after parser.php
  7. Exposed getGeoipInfo() and getGeoipCountry() as public system helpers
  8. GeoIP configuration (config/geoip.php):
  9. New config file with enabled, country_database, asn_database, cache_ttl, anonymize_ip, store_ip keys

  10. GeoIP storage directory (storage/geoip/):
  11. Added .htaccess and index.html directory protection files
  12. Composer dependency (composer.json):
  13. Added geoip2/geoip2 ^3.1 requirement
  14. Config fingerprint (config/local.php):
  15. Updated base_fingerprint after adding config/geoip.php

Benefits: - Country and ASN resolution available project-wide without additional setup - Opt-in: gracefully no-ops when databases are absent - IP anonymization on by default; full IP storage is opt-in

Technical notes: - Databases expected at storage/geoip/country.mmdb and storage/geoip/asn.mmdb - Reader is opened lazily and cached statically per process - Backward compatible: existing code unchanged; new functions are additive

Эта неделя (08.05.2026)
Chore: add directory protection files and normalize redirect URLs
Автор: Eduard Laas | Дата: 11:43 08.05.2026

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:

  1. New protection files:
  2. Add templates/admin/index.html (redirect to https://slaed.net)
  3. Add templates/lite/index.html (redirect to https://slaed.net)
  4. Add templates/simple/index.html (redirect to https://slaed.net)
  5. Add templates/simple/.htaccess (deny .html direct access)
  6. Replace outdated demo template (templates/default/index.html):
  7. Remove 212-line legacy demo HTML
  8. Replace with standard one-line directory protection redirect
  9. URL normalization (templates/*/images/index.html):
  10. 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)

Chore: add SVG favicon to images/ for default, lite, and simple themes
Автор: Eduard Laas | Дата: 11:43 08.05.2026

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:

  1. SVG favicon (templates/default/images/favicon.svg):
  2. Add favicon.svg (8998 bytes)
  3. SVG favicon (templates/lite/images/favicon.svg):
  4. Add favicon.svg (8998 bytes)
  5. SVG favicon (templates/simple/images/favicon.svg):
  6. 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

Chore: remove deprecated PNG/ICO image assets across all themes
Автор: Eduard Laas | Дата: 11:42 08.05.2026

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:

  1. Favicons (all themes):
  2. Remove favicon.ico and favicon.png from repo root and each theme root * admin, default, lite, simple

  3. Logo images (all themes):
  4. Remove templates//images/logos/png/.png and logos/*.png SVG equivalents already present in templates//images/logos/

  5. Flag images (admin, default, lite, simple):
  6. Remove templates//images/lang/.png (948 files total) * SVG flags added in d14104b, PNG resolution removed in c621469

  7. Misc admin icons:
  8. 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

Fix: replace PHP_EOL with "\n" in HTML output (setExit)
Автор: Eduard Laas | Дата: 11:41 08.05.2026

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:

  1. Error page meta output (core/security.php, core/access.php):
  2. Replace PHP_EOL with "\n" in $jump and $meta string concatenation
  3. Replace implode(PHP_EOL, ...) with implode("\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

Refactor: migrate favicon lookup from PNG/ICO to SVG in core
Автор: Eduard Laas | Дата: 11:40 08.05.2026

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:

  1. Error page (core/access.php, core/security.php):
  2. Remove intermediate $themedir/$basedir variables
  3. Replace PNG/ICO fallback chain with single SVG check via is_file() * type="image/svg+xml" set explicitly

  4. Page head (core/system.php):
  5. Wrap favicon link in is_file() guard for SVG path * Previously unconditional PNG reference

  6. OpenSearch descriptor (core/user.php):
  7. 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

Fix: switch-case syntax error in admin dispatch
Автор: Eduard Laas | Дата: 11:40 08.05.2026

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:

  1. Admin dispatch (admin/index.php):
  2. Replace ; with : after case '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

Эта неделя (07.05.2026)
Style: admin flag image CSS — size, border, and Bootstrap-Icons hover scale
Автор: Eduard Laas | Дата: 18:05 07.05.2026

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:

  1. .sl-menu-list-image (sidebar menu, left navigation icons):
  2. width: 24px; height: auto (replaces fixed 24×24 with object-fit)
  3. border: 1px solid var(--sl-color-border-strong)
  4. border-radius: var(--sl-radius-control)
  5. .sl-table-list-sort .sl-col-ip .sl-geo-flag img (IP column in tables):
  6. width: 24px; height: auto; border and border-radius as above
  7. .sl-session-icon .sl-geo-flag img (online-users sidebar widget):
  8. Same 24 px sizing, border, border-radius treatment
  9. .sl-admin-language-link (header language switcher):
  10. Transition eased to background-color 0.15s (matches Bootstrap Icons)
  11. :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

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

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

Технологии

PHPMySQLHTML 5CSS 3jQueryjQuery UI

Контакты

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

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