Последнии сообщения форума
Merge 33 paired open/close HTML files into 14 *-wrap.html templates using {%if open%}...{%else%}...{%endif%} conditionals. Remove 5 dead-code block-* files and 17 subdirectory placeholder index.html files (protected by .htaccess Options -Indexes). Update all PHP callers to use the new names. Applied identically to both templates/lite/ and templates/default/ themes.
Core changes:
- Template consolidation — both themes (templates/lite/, templates/default/):
Delete block-113, block-81, block-voting (no PHP callers), block-left, block-right (covered by core/template.php fallback to block-all)
Merge into wrap files: forum-cat, forum-list, forum-list-basic, forum-view, account-last, kasse, liste, assoc, voting-home, grid-table/*
- Add table-close.html shared by clients, content, users modules
- Remove 17 placeholder index.html files from fonts/, js/, images/**
- PHP caller updates (15 files):
- modules/forum/index.php: 4 open/close pairs → *-wrap with if_flag open=true
- modules/account/index.php: account-last-open/close → account-last-wrap
- core/system.php: kasse-open/close → kasse-wrap
- modules/voting/index.php: voting-home-open/close → voting-home-wrap
- modules/clients,content,users/index.php: *-close → table-close
- modules/shop,news/index.php: liste/assoc/grid-table pairs → wrap files
- modules/faq,files,links,media,help,pages/index.php: liste/assoc pairs → wrap files
Module refactoring (account, auto_links, contact, jokes, recommend, rss, whois, users): continued from previous sessions — admin panel and template API alignment
- Lang files (modules/clients/lang/): add de, en, fr, pl, ru, uk translations
Benefits: - Each template file represents a complete semantic unit (open+content+close) - Reduces template file count by ~50 files across both themes - Eliminates "file not found" warnings from mismatched open/close deletions
Technical notes: - if_flag mechanism: ['if_flag' => ['open' => true]] for open, [] for close - All 15 modified PHP files verified with php -l (zero syntax errors) - core/template.php not modified (project constraint respected)
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





