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

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

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

Всего: 1347 Доступных коммитов | Отфильтровано: 1347 Коммиты | Страница: 108 из 135
26.02.2026
Docs: add [headline] and [author] to _TPLVARS in all language files
Автор: Eduard Laas | Дата: 18:06 26.02.2026

Update the SEO template variable reference string (_TPLVARS) in all six admin UI languages. The [title] description is also clarified to reflect the full composite SEO title (article + category + module + site).

Core changes:

  1. Language files (admin/language/de.php, en.php, fr.php, pl.php, ru.php, uk.php):
  • Add [headline] variable — article headline (plain text, no suffixes)
    • Used in Schema.org "headline" field
  • Add [author] variable — article author display name
    • Used in Schema.org "author.name" field
  • Clarify [title] description to reflect full SEO composition

Benefits:

  • Editors can now understand all available SEO tokens at a glance
  • Consistent variable docs across all 6 UI languages

Technical notes:

  • Change is documentation only (help text); no PHP logic altered
  • Backward compatible — existing templates not affected
25.02.2026
Fix: tighten INSERT table name regex in InsertValidationTest
Автор: Eduard Laas | Дата: 21:47 25.02.2026

The regex used to extract table names from INSERT statements could match partial identifiers where a word character preceded the underscore prefix, producing false-positive table matches.

Core changes:

  1. tests/InsertValidationTest.php:
  • Add negative lookbehind (?<!\w) before _(\w+) in INSERT pattern
  • Ensures the prefix underscore is only matched at a word boundary

Benefits:

  • Eliminates false-positive table name matches in test assertions
  • Test results more accurately reflect actual INSERT targets

Technical notes:

  • Pattern change is regex-only; test logic and assertions unchanged
  • Lookbehind is zero-width and does not affect captured groups
Chore: update external links to HTTPS in lite template
Автор: Eduard Laas | Дата: 21:47 25.02.2026

Two menu links pointed to deprecated HTTP URLs on old domains.

Core changes:

  1. templates/lite/index.php:

Benefits:

  • Eliminates mixed-content warnings on HTTPS sites
  • Reflects current domain structure

Technical notes:

  • No logic or structural changes; text labels unchanged
Fix: initialize \$stop and remove premature save_text in auto_links add()
Автор: Eduard Laas | Дата: 21:46 25.02.2026

Two issues in the auto_links admin add() function corrected.

Core changes:

  1. auto_links/admin/index.php:
  • Add $stop = $stop ?? []; guard before first use to prevent undefined var
  • Remove save_text() wrapper around getVar() calls for a_sitename and a_description: input encoding should happen at save time, not on read

Benefits:

  • Prevents PHP notice/warning on fresh add form where $stop is undefined
  • Separates input retrieval from output encoding responsibility

Technical notes:

  • save_text() is called correctly in the save handler; reading back raw values from getVar() is the expected pattern for form pre-population
Refactor: simplify anonym author display and update voting admin links
Автор: Eduard Laas | Дата: 21:46 25.02.2026

Two consistent patterns updated across nine admin modules to reduce boilerplate and align with the new voting URL routing scheme.

Core changes:

  1. Anonym author display (8 modules: faq, files, help, jokes, links, media, news, pages):
  • Replace ($user_name) ? ... : (($uname) ? $uname : ($confu['anonym'] ?? 'Anonym')) with $user_name ?: ($uname ?: $confu['anonym'])
  • Removes redundant ?? 'Anonym' fallback; $confu['anonym'] is the canonical default
  1. Voting admin links (news/admin/index.php, shop/admin/index.php):
  • Update ?op=voting_add&id= to ?name=voting&op=add&id=
  • Aligns with the new op-based routing in the modernized voting admin module

Benefits:

  • Consistent null-coalescing style across all content admin modules
  • Voting edit links work correctly after voting admin module was refactored

Technical notes:

  • $confu['anonym'] value comes from user config; no hardcoded fallback needed
  • Encoding pattern for copyright fixed in affected files (faq, files, etc.)
Fix: restrict admin module access to per-module permission check
Автор: Eduard Laas | Дата: 21:46 25.02.2026

Four admin modules used is_admin_god() as their access guard, allowing only super-admins in. Replaced with is_admin_modul() so module access can be delegated to non-god administrators via the modules config.

Core changes:

  1. Access guard replacement (four files):
  • modules/account/admin/index.php: is_admin_god() -> is_admin_modul('account')
  • modules/changelog/admin/index.php: is_admin_god() -> is_admin_modul('changelog')
  • modules/rss/admin/index.php: is_admin_god() -> is_admin_modul('rss')
  • modules/sitemap/admin/index.php: is_admin_god() -> is_admin_modul('sitemap')
  1. Additional fixes in the same files:
  • account: rename users() to account() to match op dispatch convention
  • changelog: remove @ suppressor from file_get_contents()
  • sitemap: remove @ suppressor from fopen(); remove BOM from file header

Benefits:

  • Delegated admin access works correctly for these modules
  • Error suppression removed; failures are now visible in error logs

Technical notes:

  • is_admin_modul() reads from $conf['modules'] so no DB query needed
  • Behavior for god-level admins is unchanged (they pass all module checks)
Refactor: modernize monitor admin module and align template variables
Автор: Eduard Laas | Дата: 21:46 25.02.2026

Renames internal helpers to camelCase, extracts platform detection, and renames template placeholders to snake_case for consistency.

Core changes:

  1. Monitor module (admin/modules/monitor.php):
  • Rename navi() to getMonitorTabs() to avoid collision with module navs
  • Extract isWindows() and getServerSoftware() helpers
  • Rename get_server_load_data() to getServerLoadData()
  • Rename template placeholders: ramP/offR/dashD/offD/diskP/pathUp/pathDown to ram_p/off_r/dash_d/off_d/disk_p/path_up/path_down
  1. Monitor template (templates/admin/basic-monitor.html):
  • Update all SVG and chart placeholder tokens to match new snake_case names

Benefits:

  • Consistent naming convention across admin module helpers
  • Snake_case template tokens match the broader SLAED template convention

Technical notes:

  • Placeholder rename is a coordinated change across PHP and HTML
  • No logic changes; all monitoring metrics and rendering preserved
Refactor: modernize whois admin module
Автор: Eduard Laas | Дата: 21:46 25.02.2026

Rewrites whois admin module to match current SLAED coding standards: typed functions, single-quoted strings, and modern navigation API.

Core changes:

  1. Navigation (modules/whois/admin/index.php):
  • Replace whois_navi() / func_get_args() with typed navi()
  • Switch to getAdminTabs() and name=whois&op= URL scheme
  1. All handler functions:
  • Add void return type declarations
  • Replace double-quoted strings with single-quoted throughout
  • Replace list() with [] destructuring in fetchrow loops
  • Replace $admin_file with $afile

Benefits:

  • Consistent style with other modernized admin modules
  • Cleaner navigation registration via getAdminTabs()

Technical notes:

  • Copyright year updated to 2026
  • No functional logic changes; all CRUD operations preserved
Refactor: modernize voting admin module
Автор: Eduard Laas | Дата: 21:45 25.02.2026

Rewrites voting admin module to align with the current SLAED admin architecture: typed functions, modern API calls, and clean URL routing.

Core changes:

  1. Navigation (modules/voting/admin/index.php):
  • Replace voting_navi() / func_get_args() pattern with typed navi()
  • Use getAdminTabs() and name=voting&op= URL scheme
  1. All handler functions:
  • Add void return type declarations
  • Replace $admin_file with $afile, tpl_eval() with setTemplateBasic()
  • Replace double-quoted heredoc style with single-quoted strings
  • Replace list() with [] destructuring in fetchrow loops
  1. Admin links:
  • Update op=voting_add/delete to name=voting&op=add/delete throughout

Benefits:

  • Consistent with other modernized admin modules
  • Typed API reduces silent failures from wrong argument types
  • URL routing aligned with new op-based dispatch scheme

Technical notes:

  • Copyright year updated to 2026
  • No functional logic changes; all CRUD operations preserved
Fix: replace _rating UNIQUE KEY uid with host to allow multi-guest voting
Автор: Eduard Laas | Дата: 21:45 25.02.2026

UNIQUE KEY mid_modul_uid (mid, modul, uid) blocked all guest votes after the first one, because all guests share uid=0. The application already enforces one-vote-per-IP in PHP; the DB key now mirrors that.

Core changes:

  1. Schema for fresh installs (setup/sql/table.sql):
  • Drop UNIQUE KEY mid_modul_uid (mid, modul, uid)
  • Add UNIQUE KEY mid_modul_host (mid, modul, host)
  1. Migration for 6.2 > 6.3 upgrade (setup/sql/table_update6_3.sql):
  • Same key replacement applied to the ALTER TABLE block
  1. Setup wizard (setup/index.php):
  • Append deduplication DELETE and key migration queries to update6_3 branch
  • DELETE removes duplicate (mid, modul, host) rows keeping earliest id
  • ALTER TABLE DROP INDEX IF EXISTS mid_modul_uid (safe if already absent)
  • ALTER TABLE ADD UNIQUE KEY mid_modul_host
  • Fix unused $key => $val in language() foreach loop
  • getInfo() output added to report migration result in the UI

Benefits:

  • Multiple guests from different IPs can now vote in the same poll
  • DB-level uniqueness still enforces one vote per IP per item per module
  • Race-condition protection preserved via $inserted guard (see prev commit)

Technical notes:

  • host column is VARCHAR(45), covers both IPv4 and IPv6
  • PHP duplicate check logic (by host for guests, by uid for users) unchanged
  • Migration is idempotent: IF EXISTS prevents error on already-applied runs
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код

Предварительный просмотр