Последнии сообщения форума
Updates the base_fingerprint value in config/local.php to reflect the current state of the codebase following the batch refactor of admin modules to the new fragment API.
Core changes:
- Fingerprint update (config/local.php):
- Updated base_fingerprint from 268a9d51... to 8cc21cf6...
Benefits: - Config fingerprint in sync with current codebase state
Technical notes: - Auto-generated value; no logic or behavior changes
Rewrites the links and media admin modules to use the unified new/* fragment API, replacing all legacy getTplAdminNavi, getTplAdminTableHead, and getTplAdminActionMenu calls with getTplAdminTabs, new/table, new/row-actions, new/table-row, new/table-cells, and new/form; removes four legacy HTML fragment files.
Core changes:
- Links list and add form (modules/links/admin/index.php):
- Fixed setHead() leading-whitespace indentation
- Replaced getTplAdminNavi with getTplAdminTabs in all three status branches
- Row rendering migrated to new/table-row, new/table-cells, new/row-actions
- Add/edit form rebuilt as new/form rows array with new/input and new/textarea
- Table + pager wrapped in getHtmlPart('box')
- Media list and add form (modules/media/admin/index.php):
- Fixed setHead() leading-whitespace indentation
- Replaced getTplAdminNavi with getTplAdminTabs in all three status branches
- Row rendering migrated to new/table-row, new/table-cells, new/row-actions
- Add/edit and linked-files forms rebuilt as new/form rows array
- Table + pager wrapped in getHtmlPart('box')
- Template cleanup (templates/admin/fragments/):
Removed: admin-links-add-rows.html, admin-links-list-row.html, admin-media-add-rows.html, admin-media-link-row.html
Benefits: - Links and media modules fully aligned with new admin fragment API - All legacy HTML fragment files for these modules eliminated
Technical notes: - No SQL, schema, or URL changes
Rewrites the files and help admin modules to use the unified new/* fragment API, replacing all legacy getTplAdminNavi, getTplAdminTableHead, and getTplAdminActionMenu calls with getTplAdminTabs, new/table, new/row-actions, new/table-row, new/table-cells, and new/form; removes four legacy HTML fragment files.
Core changes:
- Files list and add form (modules/files/admin/index.php):
- Fixed setHead() leading-whitespace indentation
- Replaced getTplAdminNavi with getTplAdminTabs in all three status branches
- Row rendering migrated to new/table-row, new/table-cells, new/row-actions
- Add/edit form rebuilt as new/form rows array
- Table + pager wrapped in getHtmlPart('box')
- Help list and add form (modules/help/admin/index.php):
- Fixed setHead() leading-whitespace indentation
- Replaced getTplAdminNavi with getTplAdminTabs in both status branches
- Row rendering migrated to new/table-row, new/table-cells, new/row-actions
- Add and thread-view forms rebuilt as new/form rows array
- Table + pager wrapped in getHtmlPart('box')
- Template cleanup (templates/admin/fragments/):
Removed: admin-files-add-rows.html, admin-help-add-rows.html, admin-help-addview-rows.html, admin-help-list-row.html
Benefits: - Files and help modules fully aligned with new admin fragment API - All legacy HTML fragment files for these modules eliminated
Technical notes: - No SQL, schema, or URL changes
Rewrites four admin modules to use the unified new/* fragment API, replacing getTplAdminNavi, getTplAdminTableHead, getTplAdminActionMenu, and associated legacy helpers with getTplAdminTabs, new/table, new/row-actions, new/table-row, and new/table-cells; also fixes setHead() indentation regression in files that had accidental leading whitespace.
Core changes:
- Content list (modules/content/admin/index.php):
- Replaced inline head array + getTplAdminNavi with getTplAdminTabs
- Table rebuilt with new/table (is_wrapless) + new/row-actions
- Pager and table wrapped in getHtmlPart('box')
- FAQ list (modules/faq/admin/index.php):
- Replaced getTplAdminNavi with getTplAdminTabs in both status branches
- Row rendering migrated to new/table-row, new/table-cells, new/row-actions
- Table + pager wrapped in getHtmlPart('box')
- Forum sync (modules/forum/admin/index.php):
- Replaced getTplAdminNavi with getTplAdminTabs
- 'alert' key updated to 'new/alert'
- Table rebuilt with new/table + new/table-cells, new/table-row
- Removed getTplAdminTitleTip / getTplAdminTextLink / getTplAdminColorLabel
- Jokes list (modules/jokes/admin/index.php):
- Replaced getTplAdminNavi with getTplAdminTabs in both status branches
- Row rendering migrated to new/table-row, new/table-cells, new/row-actions
- Fixed setHead() leading-whitespace indentation
Benefits: - All four modules render tables and action menus via the new fragment API - No legacy getTplAdminNavi or getTplAdminTableHead calls remain in these files
Technical notes: - No SQL, schema, or URL changes; no template files deleted in this group
Rewrites the clients and contact admin modules to use the unified new/* fragment API, replacing all legacy getTplAdminNavi, getTplAdminTableHead, getTplAdminActionMenu, getTplAdminForm, and radio_form calls; removes three legacy HTML fragment files that are no longer referenced.
Core changes:
- Clients list (modules/clients/admin/index.php):
- Replaced getTplAdminNavi with getTplAdminTabs
- Rewrote row rendering: new/table-row, new/table-cells, new/row-actions
- Add form rebuilt as new/form with rows array; new/input for all fields
- getTplAdminForm replaced with new/form + getHtmlPart('box')
- Contact config (modules/contact/admin/index.php):
- Replaced getTplAdminNavi with getTplAdminTabs
Config form rebuilt as new/form rows array: getTplRadioGroup for admins, new/textarea for info field
- getTplAdminForm / getTplHiddenInput replaced with new/form hidden array
- Template cleanup (templates/admin/fragments/):
Removed: admin-clients-add-rows.html, admin-clients-list-row.html, admin-contact-config-rows.html
Benefits: - Both modules aligned with the unified admin fragment API - No dependency on legacy HTML fragment files for form or table rendering
Technical notes: - No SQL, schema, or URL changes - Prepared statements and getVar() usage unchanged
Rewrites the changelog admin config form to use the new/form rows array and new/* fragment components, adds CSRF token validation on configsave, and updates chlogRenderCommitStats() in common.php to render file lists and stats with inline HTML when running in the admin context (ADMIN_FILE defined) instead of depending on deprecated changelog-file-row and changelog-stats fragments; removes three legacy HTML fragment files.
Core changes:
- Config form (modules/changelog/admin/index.php):
- Replaced getTplAdminNavi with getTplAdminTabs in changelog() and config()
- Replaced new/alert frag key 'alert' with 'new/alert' for consistency
Config form rebuilt as new/form with rows array: source select with new/label-hint, GitHub fields with conditional row_class, numeric inputs, and radio groups via getTplRadioGroup
- configsave() now validates CSRF token via checkSiteToken('changelog')
- Main changelog view wraps content in getHtmlPart('box') with checkPerms()
- Dual-context rendering (modules/changelog/common.php):
chlogRenderCommitStats(): when ADMIN_FILE is defined, renders file list and stats as raw inline HTML instead of calling legacy fragment functions
- Frontend path unchanged: continues using changelog-file-row / changelog-stats
- Template cleanup (templates/admin/fragments/):
Removed: admin-chlog-config-rows.html, admin-chlog-config-script.html, admin-chlog-source-select.html
Benefits: - Config form no longer depends on legacy HTML fragments - Admin file-stats rendering decoupled from frontend fragment contract - CSRF-safe config saves with named token scope
Technical notes: - Frontend template fragments (changelog-file-row, changelog-stats) unchanged - No schema, URL, or stored-data changes
Rewrites the auto_links admin module to use the new unified fragment API and strengthens security by adding CSRF token validation on all state-mutating actions (delete, hitreset, zerodel, configsave); removes six legacy HTML fragment files that were replaced by inline new/* fragment calls.
Core changes:
- List and stats views (modules/auto_links/admin/index.php):
Replaced getTplAdminNavi with getTplAdminTabs; added getSiteToken() to hitreset and zerodel tab URLs
- Rewrote row rendering with new/table-row, new/table-cells, new/row-actions
- Config form rebuilt using new/form rows array and new/select, new/input
- Replaced getTplAdminForm / getTplBox with new/form + getHtmlPart('box')
- Stats view: table head and rows migrated to new/table + new/table-row
- CSRF hardening (modules/auto_links/admin/index.php):
delete(), hitreset(), zerodel() now check checkSiteToken(); skip mutation and redirect with _TOKENMISS warning on failure
- add() save path checks checkSiteToken() before INSERT/UPDATE
- Template cleanup (templates/admin/fragments/):
Removed: admin-auto-links-add-rows.html, admin-auto-links-config-rows.html, admin-auto-links-list-row.html, admin-auto-links-stats-head.html, admin-auto-links-stats-row.html, admin-auto-links-stats-search.html
Benefits: - CSRF-safe: all write operations require a valid site token - Legacy fragment files eliminated; rendering fully handled in PHP - Config form uses structured rows array for consistency with other modules
Technical notes: - Prepared statements were already in use; no SQL API changes - No schema, URL, or session-API changes
Rewrites the account admin module to align with the new unified admin fragment API introduced across all admin modules: replaces legacy getTplAdminNavi, getTplAdminTableHead, getTplAdminActionMenu, getTplBox, and radio_form calls with new/table, new/row-actions, new/form, new/alert, and getTplAdminTabs; extracts getAccountSearch() as a standalone function and adds proper CSRF token guards and getSiteToken() on all state-changing actions.
Core changes:
- Account list (modules/account/admin/index.php):
- Replaced getTplAdminNavi with getTplAdminTabs and subtitle_html parameter
- Rewrote row rendering: new/table-row, new/table-cells, new/row-actions, new/title-tip
- Added filterTextHighlight() for search term highlighting in all relevant columns
- Extracted getAccountSearch() as named function; moved search form to subtitle_html slot
- Replaced getTplPager with inline pagination using new/pager-link and new/pager-dots
- Account config (modules/account/admin/index.php):
- Replaced getTplBox + form-conf fragment with new/form rows array
- Replaced radio_form() / getTplSelect() with getTplRadioGroup / new/select
- Added CSRF token hidden field to config form via getSiteToken()
- Replaced getTplCodeEditor call with updated signature pattern
Benefits: - Consistent admin UI: all controls rendered via unified new/* fragment API - CSRF-safe: all state-mutating actions guarded with getSiteToken() - Search now highlights matched text in ID, name, IP, and email columns - Config form no longer depends on legacy form-conf HTML fragment
Technical notes: - getAccountSearch() is module-private; not exported or shared - Pagination logic moved from getTplPager to inline loop with new/pager-link - No schema, URL, or session-API changes
The previous commit normalized copyright to ASCII (c) in config files, but setConfigFile() in core/system.php uses © as the canonical template for generated configs. Restoring © everywhere keeps generated and hand-authored files consistent.
Core changes:
- Config generator (core/system.php):
Restore '# Copyright © 2005 - Y SLAED' in setConfigFile() template * Was changed to (c) in the previous chore commit
- Config files (config/referers.php, config/replace.php, config/scheduler.php, config/security.php, config/statistic.php):
Revert copyright line from (c) back to © * These files are generated or maintained by setConfigFile(); must match
Benefits: - Generated and static config files share identical copyright format - No divergence between setConfigFile() output and repository state
Technical notes: - config/referers.php was not touched in the previous commit; corrected here - Encoding rule exception: © is required here as the project copyright symbol
Replace legacy template helpers (getTplOption, getTplSelect, getTplAdminNavi, getTplAdminSearchBox, admin-*-form fragments) with the unified new/ fragment API across five admin modules, improving consistency and removing deprecated paths.
Core changes:
- Scheduler (admin/modules/scheduler.php):
- Replace getTplAdminNavi with getTplAdminTabs
- Replace getTplAdminTipLine string concatenation with structured $tips array
- Replace custom action form+link HTML with $acts arrays using row-actions-item fragments
Use token-carrying GET links for run/unlock/delete actions instead of POST forms * run action now gated behind job[manual] === 1 flag
- Replace old alert() fragments with new/alert fragments
- Security / bansave (admin/modules/security.php):
- Refactor bansave(): move all logic under if (!$warn) guard using $warn pattern
Remove manual opcache_invalidate and file re-include for config reload * Use $conf['security'] directly instead of re-reading security.php
- Migrate token-error path to setRedirect flash instead of inline echo
- Statistic (admin/modules/statistic.php):
- Replace getTplOption/getTplSelect with new/select-option + new/select fragments
- Replace getTplAdminSearchBox + admin-statistic-search-form with new/form + searchbox part
- Replace getTplAdminNavi with getTplAdminTabs using subtitle_html for search bar
- Replace admin-statistic-image with new/image-preview fragment
- Template (admin/modules/template.php):
Add getTemplateFiles(), getTemplateHtmlFiles(), getTemplateCssFiles() helpers * Use RecursiveIteratorIterator instead of manual scandir loops
- Add getTemplateTabsOps() for consistent tab URL generation
- Migrate getTemplateSearch() to new/select-option + new/form + searchbox part
- Remove preg_match('/\./', $file) guard; replace with is_dir() check
- Uploads (admin/modules/uploads.php):
- Migrate getUploadsSearch() to new/select-option + new/form + searchbox part
- Migrate upload form to new/form with structured rows and hidden arrays
- Replace admin-uploads-upload-rows fragment with inline new/input fields
- Replace old alert() with new/alert fragments
Benefits: - Eliminates six deprecated template helpers from admin module code paths - Scheduler run/unlock/delete no longer require hidden POST forms per row - Security bansave is simpler and does not perform redundant config file re-reads
Technical notes: - Scheduler manual flag (job[manual]) gates the Run action; built-in jobs are not manually runnable - Template RecursiveIteratorIterator replaces nested scandir and covers subdirectories - No changes to config keys, DB schema, or public-facing URLs





