История коммитов

.
refactor(library): scaffold src/ and extract TopController
- Register PSR-4 namespaces for Library\ (classes/) and Johncms\Modules\Library\ (src/)
- Move Installer to new namespace Johncms\Modules\Library\Install
- Add config/services.php DI bootstrap
- Add LibraryAccessMiddleware for mod_lib access control
- Extract TopController with PageMeta, fix GROUP BY via subquery
- Update main.phtml and top.phtml links to absolute URLs
- Remove includes/top.php
.
refactor(online): migrate to PSR-4 architecture with DI controllers
- Extract IndexController, HistoryController, GuestController, IpController
- Add OnlineAdminMiddleware for guest/ip access control
- Add FiltersBuilder service to deduplicate tab filter logic
- Add PageMeta for paginated title/description
- Add config/services.php DI bootstrap
- Update Installer namespace to Johncms\Modules\Online\Install
- Remove legacy index.php and includes/
.
refactor(downloads): use fluent middleware chaining in routes, drop unused User param
.
refactor(downloads): migrate legacy classes/ to PSR-4 namespace
- Move Screen → src/Domain/Services/ScreenService.php
- Move Download::displayFile/displayFileSize → src/Application/FilePresenter.php
(injectable service with constructor DI; static formatFileSize helper)
- Extract Download::navigation → src/Application/Services/CategoryNavService.php
(injectable service; buildForFileDir() uses Eloquent instead of raw PDO)
- Inline Download::mp3tagsOut() into EditFileController and FileMediaInfoService
- Delete Download::downloadLlink() (dead code)
- Delete classes/Download.php and classes/Screen.php; remove classes/ directory
- Update all 17 consumers: swap imports, inject new services, update call sites
.
refactor(downloads): extract IndexController, remove legacy index.php
- Add IndexController with category listing, breadcrumb navigation via
refid chain, new/moderation file counts, file sorting by session prefs,
and pagination
- Switch /downloads route from index.php to IndexController
- Fix stale ?act=search and ?act=top_users links in index.phtml to
clean URLs /downloads/search/ and /downloads/top-users/
- Delete modules/downloads/index.php
.
fix(downloads): fix scan-dir path handling and orphan cleanup
- Use relative path 'upload/downloads/files' in CreateCategoryController
and ScanDirectoryController to match legacy DB format
- Deduplicate files and categories via realpath() to handle both
relative and absolute paths pointing to the same filesystem entry;
orderBy('id') keeps the original lower-ID record
- Add independent DownloadMoreFile orphan cleanup: delete records whose
parent DownloadFile is missing or whose physical file is absent
- Add DownloadCategory::$fillable['total'] so recount update() works
- Extract deleteCategoryFiles() helper for category cascade deletion
.
refactor(downloads): extract ScanDirectoryController with clean URL route
Replaces legacy ?act=scan_dir include with ScanDirectoryController at
/downloads/scan-dir. Fixes bug where $start was used instead of $mod
for screenshot/description file handling. Removes empty includes/ directory.
.
refactor(downloads): extract RecountController with clean URL route
Replaces legacy ?act=recount include with RecountController at
/downloads/recount. Updates links in index.phtml and MoveFileController.
.
refactor(downloads): extract DeleteCategoryController with clean URL route
Replaces legacy ?act=folder_delete include with DeleteCategoryController
at /downloads/categories/{id}/delete. Extracts DeleteCategoryUseCase
for domain logic. Adds folder name to the confirmation page.
.
refactor(downloads): extract EditCategoryController with clean URL route
Replaces legacy ?act=folder_edit include with EditCategoryController
at /downloads/categories/{id}/edit. Fixes boolean concatenation bug
in extension validation and uses Eloquent for sort swap logic.