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

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

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

Всего: 415 Доступных коммитов | Отфильтровано: 415 Коммиты | Страница: 7 / 42
03.03.2026
Fix: replace bare header('Location:') calls with setRedirect() in index.php
Автор: Eduard Laas | Дата: 15:07 03.03.2026

Raw header() calls without exit were used for geo-IP language redirects and fallback routing, violating the SLAED guardrail (exit after every redirect). setRedirect() encapsulates both header() and exit atomically.

Core changes:

  1. Geo-IP language redirect block (index.php):
  2. header('Location: index.php?newlang=...') → setRedirect(...) for en, fr, de, pl, ru, uk locales (6 occurrences)

  3. Removes implicit fall-through risk after redirect
  4. Fallback routing block (index.php):
  5. header('Location: index.php') + exit → setRedirect('index.php') (2 occurrences; exit now handled internally by setRedirect)

Benefits: - Guardrail compliance: no output possible after redirect - Reduced duplication: exit not repeated manually - Architecture alignment with setRedirect() API

Technical notes: - setRedirect() defaults to HTTP 302; behavior unchanged - Backward compatibility: identical HTTP response for clients

Fix: correct UTF-8 encoding of copyright symbol in admin module headers
Автор: Eduard Laas | Дата: 15:06 03.03.2026

The copyright line in 14 admin module files contained a mojibake sequence (•) instead of the UTF-8 © symbol, caused by incorrect encoding during a prior batch operation.

Core changes:

  1. Copyright header fix (14 files: modules/*/admin/index.php):
  2. clients, contact, content, faq, files, forum, help, jokes, links, news, order, pages, rss, voting, whois

  3. • 2005 - 2026 → © 2005 - 2026

Benefits: - Correct UTF-8 output in file headers across all admin modules - Consistent copyright notice project-wide

Technical notes: - Single-character encoding fix; no logic changes - Backward compatibility: not applicable

Refactor: polish getUserNav() and finalize core/user.php cleanup
Автор: Eduard Laas | Дата: 14:31 03.03.2026

Follow-up fixes after the main VerbNoun rename commit: corrects navi() naming conflict, optimizes getUserNav(), and updates all function comments.

Core changes:

  1. navi() → getUserNav(): string (core/user.php):
  2. Renamed to avoid collision with admin navi() in modules/account/admin
  3. Added missing return type declaration: string
  4. 4 parallel arrays → single $navs tuple array
  5. getUserInfo() null-safe: (getUserInfo() ?? [])['user_id'] ?? 0
  6. $conf['shop'] global mutation removed; replaced with ?? 0 read
  7. Strict comparisons: != → !, 1 → === 1
  8. foreach destructuring: [$titl, $itit, $link, $icon]
  9. Function comments updated (core/user.php):
  10. All 19 functions now have accurate, descriptive single-line comments
  11. Old comments reflected legacy names (savecom, editpost, prmess, etc.)
  12. Call sites updated (3 files):
  13. modules/account/index.php (4 calls)
  14. modules/clients/index.php (1 call)
  15. modules/shop/index.php (2 calls)

Benefits: - No redeclaration risk between user and admin navi() - $navs tuple pattern eliminates parallel-array sync errors - Null-safe uid lookup prevents notices on unauthenticated edge cases

Refactor: rename functions in core/user.php to SLAED VerbNoun convention
Автор: Eduard Laas | Дата: 14:19 03.03.2026

Standardizes all 16 non-conforming function names in core/user.php and updates every call site across 20 files so the codebase is consistent with the approved verb set (get, set, add, update, delete, is, check, filter).

Core changes:

  1. Function renames (core/user.php):
  2. getusrinfo() → getUserInfo() (no camelCase)
  3. is_mod_group() → isModGroup() (snake_case)
  4. userblock() → getUserBlock() (missing verb)
  5. savecom() → addComment() (save not in SLAED verbs)
  6. editpost() → updatePost() (edit not in SLAED verbs)
  7. prmess() → getPmView() (no verb, no camelCase)
  8. prmesssend() → addPmMsg() (no verb, no camelCase)
  9. prmesssave() → setPmSaved() (no verb, no camelCase)
  10. prmessdel() → deletePmMsg() (no verb, no camelCase)
  11. favorview() → getFavorBtn() (no verb, no camelCase)
  12. favoradd() → addFavor() (verb at end, no camelCase)
  13. favorliste() → getFavorList() (no verb, no camelCase)
  14. favordel() → deleteFavor() (no verb, no camelCase)
  15. rss_channel() → getRssChannel() (snake_case)
  16. open_search() → getOpenSearch() (snake_case)
  17. open_xsl() → getOpenXsl() (snake_case)
  18. Code quality fixes (core/user.php):
  19. list() → [] destructuring (28 occurrences)
  20. Indentation: 1-space global lines → 4 spaces
  21. getFavorBtn($fid, $mod): added type hints int/string
  22. Strict comparisons in isModGroup() and addComment()
  23. Call sites updated in 20 files:
  24. core/system.php, core/template.php, index.php
  25. blocks/block-user_info.php, templates/lite/index.php
  26. modules/account, auto_links, contact, faq, files, forum, help, links, media, money, news, order, pages, recommend, shop

Benefits: - Consistent SLAED VerbNoun naming across core/user.php - list() removal eliminates PHP 8 deprecation warnings - Strict comparisons prevent type-juggling edge cases

Technical notes: - op= URL routing strings (savecom, editpost, prmess, etc.) unchanged - No logic changes; signature types only on getFavorBtn - Backward compatibility: internal API only

Fix: rename addmail() → addAdminMail() to resolve fatal redeclaration
Автор: Eduard Laas | Дата: 13:47 03.03.2026

addmail() collided with addMail() (core/security.php) because PHP function names are case-insensitive; renamed to addAdminMail() to follow VerbNoun convention and eliminate the fatal redeclaration error.

Core changes:

  1. Function declaration (core/system.php):
  2. addmail() → addAdminMail(); comment updated
  3. No logic changes, signature unchanged
  4. Call sites (11 files):
  5. core/user.php
  6. modules/news, links, files, media, jokes, faq, pages, help, whois, auto_links

Benefits: - Resolves Fatal error: Cannot redeclare function addMail() - Consistent VerbNoun camelCase naming per SLAED §3-4 - No ambiguity between low-level addMail() and admin-notify addAdminMail()

Technical notes: - addMail() (security.php) queues a single email - addAdminMail() (system.php) dispatches notifications to all subscribed admins - Backward compatibility: internal API only; no external callers

Fix: complete is_admin → isAdmin rename in core/system.php
Автор: Eduard Laas | Дата: 13:44 03.03.2026

Replaces all remaining legacy function calls that were missed in the previous Refactor commit, ensuring system.php is consistent with the merged isAdmin(bool \$super = false) API in core/security.php.

Core changes:

  1. Function call replacements (core/system.php):
  2. is_admin() → isAdmin() (12 occurrences)
  3. isAdminSuper() → isAdmin(true) (4 occurrences)

Benefits: - No legacy shim required; all call sites now use unified API - Static cache in isAdmin() shared across all 16 call sites per request - One DB query per request regardless of super check

Technical notes: - isAdmin(true) is equivalent to removed isAdminSuper() - isAdmin() is equivalent to removed is_admin() - Backward compatibility: none needed; legacy functions deleted

Refactor: replace save_datetime() with getVar('req', ..., 'time') and fix quote style
Автор: Eduard Laas | Дата: 13:39 03.03.2026

Migrates remaining save_datetime() calls to the unified getVar() API, and corrects a single-quote style issue in the changelog French language file.

Core changes:

  1. modules/faq/admin/index.php:
  2. save_datetime(1, 'time') → getVar('req', 'time', 'time') (×2, add/save)
  3. modules/changelog/language/fr.php:
  4. Double to single quote on one define() line

Benefits: - Consistent input handling via getVar() throughout admin modules - No more calls to removed save_datetime() helper

Technical notes: - Behaviour unchanged; getVar 'time' type validates and formats identically

Test: update test suite for renamed functions and API changes
Автор: Eduard Laas | Дата: 13:39 03.03.2026

Adapts all test files to the camelCase rename sprint: function calls, helper wrappers and comments updated throughout the Unit and integration test suites.

Core changes:

  1. tests/Unit/InputFilterTest.php:
  2. saveText → filterHtml in helper and comments
  3. tests/Unit/PasswordHashTest.php, TemplateIfTest.php:
  4. Minor naming alignment
  5. tests/bootstrap.php:
  6. Updated function references
  7. Validation tests (BlockValidationTest, SecurityValidationTest, etc.):
  8. Updated function name expectations

Benefits: - Test suite reflects current API - No regressions introduced by the rename sprint

Technical notes: - phpunit: all tests expected to pass after rename completion

Docs: update documentation for renamed security and utility functions
Автор: Eduard Laas | Дата: 13:39 03.03.2026

Updates all user-facing and developer-facing documentation to reflect the camelCase function rename sprint completed in core/security.php.

Core changes:

  1. CONTRIBUTING.md:
  2. getVar() type table updated (filterWord, filterHtml, filterFields)
  3. SECURITY.md:
  4. New section: renamed security functions reference table (20 entries)
  5. UPGRADING.md:
  6. Breaking changes section: full migration table for renamed functions
  7. Version history updated
  8. docs/TEMPLATES.md:
  9. Date updated to 2026
  10. docs/TESTS.md:
  11. Function names updated to camelCase equivalents

Benefits: - Developers can look up old names and find new equivalents - Migration path is clearly documented for upgraders

Technical notes: - No code changes; documentation only - Covers all renames tracked in GLOSSARY.md

Refactor: rename legacy snake_case functions to camelCase across codebase
Автор: Eduard Laas | Дата: 13:38 03.03.2026

Completes the security/utility function rename sprint: all legacy snake_case identifiers in core/security.php are replaced with camelCase VerbNoun names per SLAED coding standard §3-4, and every call site across the project is updated accordingly.

Core changes:

  1. Function renames (core/security.php):
  2. log_report() → addLog()
  3. is_admin_god() / is_admin() → isAdmin(bool $super = false)
  4. get_host() → getHost()
  5. get_referer() → getReferer()
  6. zip_check() / zip_compress() → checkCompress() / addCompress()
  7. isVar() / analyze() → filterVar()
  8. url_filter() → filterUrl()
  9. num_filter() → filterNum()
  10. var_filter() → filterWord()
  11. text_filter() → filterText()
  12. cutstrc() → filterCut()
  13. ed2k_link() → getEd2kLink()
  14. url_clickable() → filterClickable()
  15. save_text() → filterHtml()
  16. fields_save() → filterFields()
  17. display_time() → getDuration()
  18. rest_time() → getTimeLeft()
  19. mail_send() → addMail()
  20. doHackReport() → addHackReport()
  21. doWarnReport() → addWarnReport()
  22. error_sql_log() → addSqlLog() (core/classes/pdo.php)
  23. isAdmin() optimisation (core/security.php):
  24. Merged isAdminSuper() into isAdmin(bool $super = false)
  25. Single DB query fills both cache slots (key 0 and key 1)
  26. hash_equals() for constant-time password comparison
  27. Strict === throughout; getSqlRow() null-guard added
  28. Variable renames (core/security.php):
  29. $ua → $uagt, $ag → $agent, $ipt_base → $iptbase
  30. $array_index → $arridx, $is_array_all → $allarr
  31. $date_time → $dtime
  32. Bug fixes (core/security.php):
  33. @ suppression removed from $lwrite closure
  34. getIp() / getAgent() hoisted out of blocker foreach loop
  35. setCookies() uses implode() instead of fixed $value[0..5] indexing
  36. getTimeLeft() calls time() once; getHost() has ?: '' fallback
  37. getSqlRow() null-guard added via ?? ['', '', '']
  38. Call sites updated across 68 files:
  39. admin/modules/*.php, modules//index.php, modules//admin/index.php
  40. core/admin.php, core/system.php, core/user.php, templates/admin/index.php
  41. core/legacy.php removed (empty guard-only file)

Benefits: - Consistent camelCase API throughout the project - Merged admin-check function reduces DB queries per request - Security hardened: timing-safe comparison, no error suppression

Technical notes: - All renames tracked in .agents/skills/slaed/GLOSSARY.md - php -l: no syntax errors in all changed files - Backward compatible: no public API exposed outside this project

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

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

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

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

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