Rewrites the help admin module with current SLAED conventions: short op-aligned function names, $afile instead of $admin_file, inline $conf['help'] access, and unified template API.
Core changes:
- Navigation (modules/help/admin/index.php):
- help_navi() → navi() with typed int parameters
- Switched to getAdminTabs() + name=help&op=... URL pattern
- Function renames (modules/help/admin/index.php):
- help_view() → view()
- help_add_view() → addview(int $id): string
- help_add() → add()
- help_save() → save()
- help_delete() → del(int $fid)
- help_conf() → conf()
- help_conf_save() → confsave()
- help_info() → info()
- Global variable cleanup (modules/help/admin/index.php):
- $admin_file → $afile
- $confh → $conf['help'] with null-coalesce defaults
- tpl_eval() → setTemplateBasic()
- tpl_warn() → setTemplateWarning()
- while (list()) → while ([]) destructuring
Benefits:
- Eliminates deprecated $confh global and panel() call
- Consistent naming aligned with router op values
- Template API unified with other modernized modules
Technical notes:
- Behavior unchanged; pure refactor
- Copyright year updated to 2026
Rewrites the forum admin module with current SLAED conventions: short op-aligned function names, $afile instead of $admin_file, inline $conf['forum'] access, and unified template API.
Core changes:
- Navigation (modules/forum/admin/index.php):
- forum_navi() → navi() with typed int parameters
- Switched to getAdminTabs() + name=forum&op=... URL pattern
- Function renames (modules/forum/admin/index.php):
- forum_synch() → synch()
- forum_conf() → conf()
- forum_conf_save() → confsave()
- forum_info() → info()
- Global variable cleanup (modules/forum/admin/index.php):
- $admin_file / $aroute → $afile
- $conffo → $conf['forum'] with null-coalesce defaults
- tpl_eval() → setTemplateBasic()
- tpl_warn() → setTemplateWarning()
Benefits:
- Eliminates deprecated $conffo global and panel() call
- Consistent function naming aligned with router op values
- Template API unified with other modernized modules
Technical notes:
- Behavior unchanged; pure refactor
- Copyright year updated to 2026
Follow-up to the initial files-admin modernization: fixes the legacy parameter in getAdminTabs(), switches from $conff global to inline $conf['files'], cleans up URL patterns, and renames conf_save() to confsave() for consistency with other modules.
Core changes:
- Navigation fix (modules/files/admin/index.php):
- Added $legacy parameter pass-through to getAdminTabs()
- Tab URL patterns updated: op=files&status → name=files&status
- Config access (modules/files/admin/index.php):
- $conff['anum'] / $conff['anump'] → $conf['files']['anum'] with defaults
- $offset calculation uses inline $anum variable
- Function rename (modules/files/admin/index.php):
- conf_save() → confsave() (aligns with other modules)
Benefits:
- Eliminates remaining $conff global dependency
- Tab URLs consistent with name=module&op=... routing pattern
- Naming fully aligned with project conventions
Technical notes:
- Behavior unchanged; pure refactor
- Legacy parameter now forwarded correctly to getAdminTabs
Rewrites the faq admin module with current SLAED conventions: short op-aligned function names, $afile instead of $admin_file, inline $conf['faq'] access instead of global $conff, and unified template API.
Core changes:
- Navigation (modules/faq/admin/index.php):
- faq_navi() → navi() with typed int parameters
- Switched to getAdminTabs() + name=faq&op=... URL pattern
- Function renames (modules/faq/admin/index.php):
- faq() → faq() (retained, cleaned up)
- faq_add() → add()
- faq_save() → save()
- faq_delete() → del(int $fid)
- faq_conf() → conf()
- faq_conf_save() → confsave()
- faq_info() → info()
- Global variable cleanup (modules/faq/admin/index.php):
- $admin_file → $afile
- $conff → $conf['faq'] with null-coalesce defaults
- tpl_eval() → setTemplateBasic()
- tpl_warn() → setTemplateWarning()
- while (list()) → while ([]) destructuring
Benefits:
- Eliminates deprecated $conff global and panel() call
- Consistent naming aligned with router op values
- Template API unified with other modernized modules
Technical notes:
- Behavior unchanged; pure refactor
- Copyright year updated to 2026
Rewrites the content admin module to use current SLAED conventions: short op-aligned function names, $afile instead of $admin_file, inline $conf['content'] access instead of global $confcn, and the unified setTemplateBasic / getAdminTabs template API.
Core changes:
- Navigation (modules/content/admin/index.php):
- content_navi() → navi() with typed int parameters
- Switched to getAdminTabs() + name=content&op=... URL pattern
- Function renames (modules/content/admin/index.php):
- content() → retained, globals cleaned up
- content_add() → add()
- content_delete() → delete()
- content_conf() → conf()
- content_info() → info()
- Global variable cleanup (modules/content/admin/index.php):
- $admin_file → $afile
- $confcn → $conf['content'] with null-coalesce defaults
- tpl_eval() → setTemplateBasic()
- tpl_warn() → setTemplateWarning()
- while (list()) → while ([]) destructuring
Benefits:
- Eliminates deprecated $confcn global and panel() call in navi
- Consistent function naming aligned with router op values
- Template API unified with other modernized modules
Technical notes:
- Behavior unchanged; pure refactor
- Copyright year updated to 2026
Aligns the contact admin module with current SLAED conventions: renamed functions to short lowercase names matching the op values, replaced global $admin_file with $afile, and switched template helpers to the new setTemplateBasic / getAdminTabs API.
Core changes:
- Navigation and op routing (modules/contact/admin/index.php):
- contact_navi() → navi() with typed int parameters
- Uses getAdminTabs() instead of navi_gen()
- Op URLs updated to name=contact&op=... pattern
- CRUD functions renamed (modules/contact/admin/index.php):
- contact_conf() → contact()
- contact_conf_save() → save()
- contact_info() → info()
- Global variable cleanup (modules/contact/admin/index.php):
- $admin_file → $afile
- $confco → $conf['contact'] (inline array access)
- tpl_eval() → setTemplateBasic()
- adm_info() signature updated to new arg order
Benefits:
- Consistent naming with other modernized admin modules
- Eliminates deprecated $confco global
- Template calls use the unified setTemplateBasic API
Technical notes:
- Behavior unchanged; pure refactor
- Copyright year updated to 2026
Aligns the whois module language file naming with the project-wide two-letter ISO 639-1 convention used after the info-file rename.
Core changes:
- Renamed language files (modules/whois/language/):
- lang-english.php → en.php
- lang-french.php → fr.php
- lang-german.php → de.php
- lang-polish.php → pl.php
- lang-russian.php → ru.php
- lang-ukrainian.php → uk.php
Benefits:
- Consistent ISO 639-1 naming across language/ and admin/info/ directories
- Language loader can use the same locale key for both directories
Technical notes:
- File contents unchanged; pure rename operation
- Any caller using include/require with old names must be updated separately
Standardises the naming of per-module admin help files: the old full-word names (english.html, russian.html, …) are replaced with two-letter ISO 639-1 codes (en.html, ru.html, …) that match the language identifiers used everywhere else in the codebase.
Core changes:
- Renamed per-module info files:
faq, files, forum, help, jokes, links, media, money, news, pages, shop, voting, whois → all six language variants renamed
- english.html → en.html, french.html → fr.html,
german.html → de.html, polish.html → pl.html,
russian.html → ru.html, ukrainian.html → uk.html
- Global RSS info files migrated to module (admin/info/):
- admin/info/rss-de/en/fr/pl/ru/uk.html → deleted (old global location)
- modules/rss/admin/info/de/en/fr/pl/ru/uk.html → added (module-local)
- Whois admin info files:
- admin/info/whois-.html → modules/whois/admin/info/.html (ISO names)
Benefits:
- Consistent file naming aligned with ISO 639-1 language codes
- Easier programmatic lookup: adm_info() can resolve locale to filename directly
- Removes ambiguity between long-name and code-based file resolution
Technical notes:
- Content of HTML files unchanged; pure rename operation
- adm_info() callers must use ISO codes (already the standard)
Three independent bugs fixed in the forum public module: duplicate named placeholders in WHERE clauses, reused placeholders in INSERT (l_uid/l_name/ l_time sharing names with earlier params), and a missing head()/foot() pair when a category has no topics.
Core changes:
- Unique WHERE placeholders (modules/forum/index.php):
- category query: :id → :parentid / :cid (used twice in OR condition)
- move(): :val → :id_val / :pid_val in UPDATE SET catid query
- INSERT named params fix (modules/forum/index.php):
l_uid, l_name, l_time now bound as :l_uid / :l_name / :l_time
- Previously reused :postid / :postname / :time — caused rebind errors
- Empty-category guard (modules/forum/index.php):
Added else branch: renders head() + setTemplateWarning(_NO_INFO)
- Prevents blank page when forum category contains no threads
- 5-second redirect back to forum root
Benefits:
- Eliminates PDO named-parameter rebind errors in forum queries
- Proper HTTP response (head/foot wrapper) for empty forum categories
- INSERT now correctly stores l_uid / l_name / l_time independently
Technical notes:
- All bound values remain identical; only parameter names changed
- No schema or API changes; backward compatible
PDO does not allow reusing the same named placeholder more than once in a single query; duplicate :word bindings caused silent data loss or driver errors. Each LIKE column now gets its own numbered parameter.
Core changes:
- Unique LIKE parameters (modules/search/index.php):
- auto_links: :word → :word1, :word2, :word3 (sitename/description/link)
- faq: :word → :word1, :word2 (title/hometext)
- files: :word → :word1, :word2, :word3 (title/description/bodytext)
- forum: :word → :word1, :word2 (title/hometext)
- jokes: :word → :word1, :word2 (title/joke)
- links: :word → :word1, :word2, :word3, :word4 (title/description/bodytext/url)
- media: :word → :word1/:word2/:word3 per search type branch
- news, pages, faq, content: same pattern applied throughout
Benefits:
- Eliminates PDO parameter rebind errors on multi-column LIKE searches
- All LIKE values are bound with the same '%'.$word.'%' value — no logic change
- Consistent placeholder naming across all search branches
Technical notes:
- Pure parameter-naming fix; SQL logic and result sets are unchanged
- Backward compatible: no schema or API changes