Updates all user-facing and developer-facing documentation to reflect the camelCase function rename sprint completed in core/security.php.
Core changes:
- CONTRIBUTING.md:
- getVar() type table updated (filterWord, filterHtml, filterFields)
- SECURITY.md:
- New section: renamed security functions reference table (20 entries)
- UPGRADING.md:
- Breaking changes section: full migration table for renamed functions
- Version history updated
- docs/TEMPLATES.md:
- Date updated to 2026
- docs/TESTS.md:
- 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
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:
- Function renames (core/security.php):
- log_report() → addLog()
- is_admin_god() / is_admin() → isAdmin(bool $super = false)
- get_host() → getHost()
- get_referer() → getReferer()
- zip_check() / zip_compress() → checkCompress() / addCompress()
- isVar() / analyze() → filterVar()
- url_filter() → filterUrl()
- num_filter() → filterNum()
- var_filter() → filterWord()
- text_filter() → filterText()
- cutstrc() → filterCut()
- ed2k_link() → getEd2kLink()
- url_clickable() → filterClickable()
- save_text() → filterHtml()
- fields_save() → filterFields()
- display_time() → getDuration()
- rest_time() → getTimeLeft()
- mail_send() → addMail()
- doHackReport() → addHackReport()
- doWarnReport() → addWarnReport()
- error_sql_log() → addSqlLog() (core/classes/pdo.php)
- isAdmin() optimisation (core/security.php):
- Merged isAdminSuper() into isAdmin(bool $super = false)
- Single DB query fills both cache slots (key 0 and key 1)
- hash_equals() for constant-time password comparison
- Strict === throughout; getSqlRow() null-guard added
- Variable renames (core/security.php):
- $ua → $uagt, $ag → $agent, $ipt_base → $iptbase
- $array_index → $arridx, $is_array_all → $allarr
- $date_time → $dtime
- Bug fixes (core/security.php):
- @ suppression removed from $lwrite closure
- getIp() / getAgent() hoisted out of blocker foreach loop
- setCookies() uses implode() instead of fixed $value[0..5] indexing
- getTimeLeft() calls time() once; getHost() has ?: '' fallback
- getSqlRow() null-guard added via ?? ['', '', '']
- Call sites updated across 68 files:
- admin/modules/*.php, modules//index.php, modules//admin/index.php
- core/admin.php, core/system.php, core/user.php, templates/admin/index.php
- 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
Replaces all double-quoted strings with single quotes in language files, blocks, and plugins to align with SLAED coding standard §17 (always use single quotes for simple strings).
Core changes:
- Language files (language/, admin/language/, modules/*/language/):
- 150+ define() calls: double to single quotes
- Block files (blocks/*.php):
- All string literals converted to single quotes
- Plugin files (plugins/filemanager/**):
- All string literals converted to single quotes
- Template (templates/lite/index.php):
- array() → [] syntax; string literals to single quotes
Benefits: - Consistent code style across the project - Alignment with SLAED coding standard §17
Technical notes: - Behaviour unchanged; purely cosmetic - Applied via php-cs-fixer - Backward compatible
Revert the function extraction introduced in commit 6ec4ea7 due to a production failure. The refactored split (system.php + legacy.php) caused 500 errors on the live server that persisted even after PHP-FPM restart.
Core changes:
- core/system.php:
Restore all legacy functions that were moved to core/legacy.php * Production server failed silently after deployment of the split
- core/legacy.php:
- Remove all functions; restore to stub (guard only)
Benefits: - Production stability restored
Technical notes: - Root cause not yet confirmed; suspected: config file format mismatch between old doConfig() output and new getConfig() reader - Refactor to be re-attempted after diagnosing production config format
Correct over-indented variable declaration in rechn() and remove a redundant setThemeInclude() call that was left after a prior refactor.
Core changes:
- rechn() (modules/money/admin/index.php):
- Fix indentation: $id = getVar(...) was at 8 spaces, corrected to 4
Remove setThemeInclude() call * Function is called by the dispatcher before rechn() is invoked;
calling it again inside the function is redundant and incorrect
Benefits: - Consistent indentation aligned with project code style - Eliminates double theme-include side effect
Technical notes: - No behavioral change for normal request flow - setThemeInclude() removal has no visible effect as template is already loaded
Initialize $retcode before pass-by-reference use and fetch $format from GET input to eliminate PHP undefined-variable warnings in the changelog admin module.
Core changes:
- gitfetch() (modules/changelog/admin/index.php):
Add $retcode = 0 before gitexec($cmd, $gitlog, $retcode) * Prevents PHP 8.x warning: undefined variable passed by reference
- export() (modules/changelog/admin/index.php):
Add $format = getVar('get', 'format', 'var', 'txt') at function start * Variable was used on lines 659 and 664 without being declared * Default 'txt'; accepts 'md' for Markdown export
- File header (modules/changelog/admin/index.php):
- Remove UTF-8 BOM () from line 1
Benefits: - Eliminates two PHP undefined-variable warnings - export() correctly handles both txt and md format requests
Technical notes: - $format default 'txt' preserves existing plain-text export behavior - No changes to git log parsing or GitHub fetch logic
Drop constants that are no longer referenced anywhere in the codebase, keeping all 6 locale files (de, en, fr, pl, ru, uk) in sync.
Core changes:
- Admin language files (admin/language/*.php — 6 files):
Remove _BAN, _OPTION, _SOFT, _TOP * Constants confirmed unused after legacy function extraction
- Frontend language files (language/*.php — 6 files):
Remove _IN, _MENU * Constants confirmed unused in templates and modules
Benefits: - Eliminates dead constants and reduces noise in language files - All 6 locales remain consistent with each other
Technical notes: - No functional impact; purely declarative constant removal - No template or module references to these constants exist
Replace the deprecated doConfig() call in doHackReport() with the modern setConfigFile() to align with the unified config architecture.
Core changes:
- doHackReport() (core/security.php):
Replace doConfig('config/security.php', 'confs', $cont, $conf['security'], '') with setConfigFile('security.php', $cont, $conf['security']) * Path prefix 'config/' dropped — setConfigFile prepends CONFIG_DIR automatically * Variable name parameter removed — derived from filename by setConfigFile * Type parameter removed — no longer required
Benefits: - Consistent with the rest of the codebase using setConfigFile() - Removes dependency on the deprecated doConfig() function
Technical notes: - Output format changes from $confs = [...] to return ['security' => [...]] - Merge behavior: array_replace_recursive() replaces += for proper deep merge - Backward compatible for all callers of the security config
Move deprecated and low-priority functions out of core/system.php into core/legacy.php to reduce system.php size and separate legacy code from the modern API surface. Also fix two issues in filterSlug().
Core changes:
- Legacy function extraction (core/legacy.php + core/system.php):
Move ~2800 lines of legacy functions from system.php to legacy.php * Deprecated helpers: datetime(), save_datetime(), format_time(), user_news(), etc. * Admin UI helpers: getBlocks(), doScript(), doCss(), and related
- Remove stale section comments (### Config bootstrap functions, ### The beginning of new functions)
- filterSlug() fix (core/system.php):
- Fix indentation of static $rus array declaration (8 spaces → 4 spaces)
Replace Unicode escapes ("\u{0410}") with literal Cyrillic characters * Improves readability and avoids reliance on double-quoted escape processing
Benefits: - system.php is significantly leaner and easier to navigate - Legacy code is isolated from the modern API - filterSlug() array is human-readable
Technical notes: - Behavior is unchanged; all moved functions remain callable - Cyrillic literals require UTF-8 file encoding (already enforced project-wide) - No API/interface changes
Bring all project docs in sync with the 6.3.x refactoring: Database rename, filterMarkdown, getLang/setLang, getAdminInfo, $conf, setHead/setFoot page lifecycle, and admin info file path restructure.
Core changes:
- CONTRIBUTING.md (main contributor guide):
- SQL examples updated to getSqlQuery() / Database
- New section: Global Configuration ($conf) — key table, module nesting, usage
- New section: Page Lifecycle — setHead($seo keys table) and setFoot()
- New section: Language Loading — getLang() with params table, setLang() bootstrap warning
- Admin Module Conventions: added Help Info Files (getAdminInfo() paths)
- Content Parsing: filterMarkdown() section added; removed broken link to deleted docs/PARSE.md
- README.md:
- Tech Stack: Database class / getSql* prefix; filterMarkdown() full signature
Modernization status: 80% → 85% complete; added completed items for getAdminInfo(), admin info file restructure, sql_db → Database rename
- SQL examples updated
- SECURITY.md:
- SQL example updated to getSqlQuery()
- Security changelog: 3 new entries (getAdminInfo, admin info paths, Database rename)
- UPGRADING.md:
- SQL migration table updated (new getSqlQuery() column)
- Breaking changes: full rename tables for Database class and getAdminInfo()
Admin info file path fix: corrected wrong en.html/english.html references to actual 2-letter locale codes (en, de, fr, pl, ru, uk)
- Migration checklist: 3 new items
- Troubleshooting: fixed wrong class name in error message
- CODE_OF_CONDUCT.md:
- Date updated to March 2026
- docs/PARSE.md, docs/DISCUS.md — deleted:
- PARSE.md: filterMarkdown() reference (content now in CONTRIBUTING.md)
- DISCUS.md: architecture discussion (unified parser; superseded by implementation)
Benefits: - All documented APIs match actual function signatures in codebase - Contributors have accurate migration guidance for the Database rename - filterMarkdown, getLang, setHead/setFoot, $conf now fully documented
Technical notes: - filterMarkdown() parameter order corrected in all docs: ($src, $mod, $safe) - Admin info paths use 2-letter locale codes (not full language names) - getAdminInfo() takes no parameters — auto-detects from $_GET['name']





