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

simba77
feat(downloads): localize demo data strings
Wrap demo category and file titles/descriptions in d__('downloads', ...)
and load the module translation domain on install, so demo data follows
the language selected in the installer. Add Russian translations.
simba77
feat(album): add demo data with albums, photos, comments and votes
Ship demo images with the module and seed them on install into per-user
album directories with generated thumbnails. Create demo albums covering
every access level (public, private, password-protected) for the admin
and demo users, plus comments and votes.

Demo strings are wrapped in d__('album', ...) and translated into Russian
so they follow the language selected in the installer.
simba77
feat(downloads): add demo data with categories and media files
Ship trimmed, ID3-tagged audio, video, image and document samples under
modules/downloads/demo, and seed them via installDemoData(): create
categories under upload/downloads/files, copy files and insert
download__category/download__files rows with English titles, descriptions,
slugs, ratings and download counts.
simba77
fix(install): seed user IPs, clear cache and rebuild smilies after install
- Pass string IPs to User creation so the Ip cast stores them (was ip2long twice -> 0)
- Give demo users distinct RFC 5737 example IPs
- Clear cache after install so counters are recalculated
- Rebuild smilies cache so text formatters have a valid list from the first request
- Guard Tools::smilies against an empty or corrupt cache file to avoid a fatal array_merge(null, null)
simba77
feat(library): add demo data with users, articles, comments and ratings
simba77
chore: update packages
simba77
feat(install): move demo data into per-module installers via installDemoData()
simba77
fix(install): replace removed Languages class with LanguageFilesManager
simba77
refactor(console): migrate one-time data converters to console commands
Replace install/*_converter.php scripts with module console commands guarded against
re-runs via OneTimeTaskTracker (config/autoload/one_time_tasks.local.php, --force to rerun).

New shared services: Johncms\Console\OneTimeTaskTracker, Johncms\Bbcode\BbcodeToHtmlConverter.
New commands: library:convert-bbcode, library:convert-comments, library:generate-slugs,
downloads:convert-bbcode, downloads:convert-comments, downloads:generate-slugs.

Update CHANGELOG and docs submodule pointer.
simba77
fix(library): canonicalize page parameter on the article reader
The library article detail page (one text page per pagination page) did not redirect for non-canonical ?page values (e.g. ?page=0 silently showed page 1). Build the Pagination from the raw request page and apply PaginationGuard so page=1/junk are stripped and out-of-range pages redirect to the last page, matching the other paginated lists.