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

.
refactor(library): extract CreateSectionController at /library/section/create
Migrates mkdir page to a dedicated admin-only controller with Eloquent insert.
Adds $fillable to LibraryCategory model.
.
refactor(library): extract CreateArticleController at /library/article/create
Migrates addnew page to a dedicated controller with Eloquent insert,
PSR-7 file uploads for text/image, flood protection, tags via Hashtags,
and proper access check. Adds $fillable to LibraryText model.
.
refactor(library): extract SearchController, add FULLTEXT search with XSS/operator sanitization
Migrates /library/search to a dedicated controller with GET-only form,
repository-backed FULLTEXT search on text/name, PageMeta titles, and
sanitization of FULLTEXT boolean operators to prevent SQL syntax errors.
.
refactor(library): add repository layer, extract NewArticlesController
- Add LibraryText and LibraryCategory Eloquent models
- Add LibraryTextRepositoryInterface and LibraryTextRepository
- Bind interface in services.php
- Refactor TopController to use repository, replace closure with $items array
- Extract NewArticlesController using repository
- Update templates: $list() → $items
- Remove includes/new.php
.
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