Последнии сообщения форума
Rename handler functions and switch case keys in all 38 admin files to eliminate ambiguous short names, unify the conf-save pattern, and bring admins.php into line with the standard naming convention used everywhere.
Core changes:
- admins.php — remove ad-prefix from all five handlers:
adlist → admins, adform → add, adsave → save, addrop → delete, adinfo → info * case keys in switch updated to match function names throughout * internal cross-calls (adsave calling adform) updated accordingly
- conf/confsave/saveconf → config/configsave (all 38 files):
Unified config-form handler to config(), save handler to configsave() * Eliminates three competing patterns: conf+save, conf+confsave, conf+saveconf
- del → delete (function + case key, all affected modules):
Aligns with 4-char minimum from .rules/global.md * Fix: corrected deleteete URL typo in database, groups, messages,
auto_links, clients caused by unbounded batch rename
- Semantic renames (targeted modules):
- act → approve (comments, whois)
block → banlist, blocksave → bansave, pass → passwd, fileview → logview, down → download (security)
- nullhits → hitreset, noindel → zerodel (auto_links)
- nullpoints/null → reset, newdel → newdrop, nullsave → resave (account)
- top → toplist, auto → reindex, addmods → modadd (search)
Benefits: - Handler names are consistent across all admin modules - conf-save pattern reduced from 3 variants to 1 (config/configsave) - admins.php follows the same convention as all other modules - op= URL parameters match function names in every switch case
Technical notes: - URL op= values change for all renamed handlers (conf→config, del→delete, etc.) - Config key security.block renamed to security.banlist (auto-migrates on next save) - No behavioral changes; pure rename refactor
Migrate multiple admin configuration screens to the shared form-conf template and fix shared rendering issues discovered during browser verification. This aligns admin modules around one template path, restores correct conditional template handling, and fixes radio field state selection for stored 0/1 values.
Core changes:
- Shared config form migration (templates/admin/form-conf.html):
Add and use the shared configuration form template across admin and module config screens * Replace duplicated inline form markup in multiple modules with template-driven rendering * Keep module-specific blocks controlled by explicit if_flag markers
- Standardize hidden fields, submit actions, and common input layout
- Template and form rendering fixes (core/template.php, core/system.php):
- Fix conditional template processing to evaluate only explicit template values before final replacement
Correct radio_form() checked-state logic * Normalize 0/1 values before rendering radio groups * Prevent invalid double-checked radio markup for stored zero values
Benefits: - Reduces duplicated admin form markup across modules - Fixes incorrect browser output in shared config forms - Improves maintainability of admin configuration screens
Technical notes: - No storage format changes were introduced - Template-driven config forms now depend on explicit if_flag sections in form-conf - Backward compatibility is preserved for existing config values and routes
Core changes: - README.md: admin modules 23/23 -> 24/24, add scheduler.php to list - UPGRADING.md: same count fix; getAdminInfo() now documents .html/.md dual extension support; add scheduler.php to modernized modules list - SECURITY.md: admin panel count 23 -> 24 (incl. scheduler); document getAdminInfo() .html/.md extension resolution order - CONTRIBUTING.md: getAdminInfo() info file table updated with .md col; setAdminNavi() section clarified (no per-module navi() wrapper needed)
Benefits: - Documentation accurately reflects scheduler.php admin module existence - getAdminInfo() .html/.md fallback behavior explicitly documented - UPGRADING migration checklist now complete for all 24 admin modules - SECURITY coverage table corrected
Technical notes: - getAdminInfo() (core/admin.php:826) checks .html then .md extensions - admin/info/*/ru.md files already exist alongside .html variants - .prompts/ dir is gitignored; internal knowledge files updated locally
Replace per-module navi() wrappers in all 24 admin/modules/*.php with direct setAdminNavi() calls inside handler functions
- Refactor modules/*/admin/index.php panels to use same convention
Remove redundant navi() top-level functions where setAdminNavi() now handles navigation inline
- Consistent tab/op URL format across all admin modules
Benefits: - Eliminates duplicated navi() wrapper boilerplate (24 files) - Single authoritative navigation implementation via core setAdminNavi() - Simplifies future admin module additions - scheduler.php already follows this pattern natively
Drop open.html and close.html from both themes and remove all setTemplateBasic('open') / setTemplateBasic('close') call sites across 11 modules and core/user.php
Add setModuleNavi() to core/system.php: centralized nav builder with rate/canadd logic, defaults from $conf[module], any key overridable
Extend setTemplateIf() in core/template.php: add {%if !flag%}, {%elseif flag%}, and non-empty var check via $vars parameter
Update navi.html (default + lite): Variant A — full <a> tags from data vars, {%if var%} guards for optional items
Add form-add.html (default + lite): universal add-form template with {%if%} blocks for all optional field groups
Migrate 12 modules: remove local navigate()/getNewsNavi(), replace all call sites with setModuleNavi(); add module constants where needed (HELP_NAVI, JOKES_NAVI, SHOP_NAVI, WHOIS_NAVI, AUTO_LINKS_NAVI)
- Migrate add() in news, pages, help, links, files to form-add template
Core changes:
- config/search.php, config/security.php:
- Replace (c) with © in copyright header
- sitemap.xml:
- Update lastmod dates to 2026-03-17
Benefits: - Consistent copyright notation across all files - Sitemap reflects current modification dates
Technical notes: - No functional changes
Constants verified unused across all PHP files outside lang directories. Removed from all six locales simultaneously.
Core changes:
- lang/*.php (de, en, fr, pl, ru, uk):
- Remove _ACTIV (replaced by _ACTIVATE / _ACTIVATE2 in admin)
- modules/forum/lang/*.php (de, en, fr, pl, ru, uk):
- Remove _THANK (thank-you button feature removed)
- Remove _WARNM (moderator report feature removed)
Benefits: - Smaller lang files, no dead definitions - Prevents accidental reuse of removed feature constants
Technical notes: - Verified with grep: no usage outside define() lines
Replace direct counter/backup.log file read with getSchedulerState('dbbackup') so the last backup timestamp comes from the same source as the scheduler UI.
Core changes:
- getLastBackupRunLabel (admin/modules/monitor.php):
- Remove backup.log file read
- Use getSchedulerState('dbbackup')['last_success'] instead
- Keep BACKUP_DIR mtime fallback unchanged
Benefits: - Single source of truth for backup timestamps - No dependency on a separate counter file
Technical notes: - backup.log is no longer read by monitor; file can be removed from disk
Remove the separate $ext map and hardcode .log extension throughout, since all log files now share the same format. Add dump_skip path sanitization on save. Restore sess_d, sess_b, log_b and log_d fields to the conf form and confsave handler.
Core changes:
- Log file listing (admin/modules/security.php):
- Remove $ext map; all log files are .log
- Replace whitelist skip array with preg_match on .log extension
- Remove database, dump_map and monitor entries from $labels
- dump_skip sanitization (admin/modules/security.php):
- Normalize line endings, strip leading ./, collapse slashes
- Reject lines containing .. (path traversal)
- Ensure each entry ends with /; deduplicate
- Conf form + confsave (admin/modules/security.php):
- Add sess_d, sess_b, log_b to conf form output
- Add log_d field and restore _SEC_LOG_D row
- Save sess_d, sess_b, log_b, log_d in confsave handler
Benefits: - No more silent loss of sess_d/sess_b/log_b/log_d on settings save - dump_skip entries are normalized before storage - Log list does not depend on a manually maintained extension map
Technical notes: - $ext variable removed; fileview/down/del now always use .log - Copyright header encoding fixed (© instead of ©)





