История версий CMS Donate Engine

2026-10-07 12:31:26
refactor(store): extract write-side into command classes Move inline INSERT/UPDATE/DELETE from store.php into StoreProductCommand and StoreGroupCommand. Logging goes through LogStore/Dto. editServer save left as-is.

2026-10-07 06:35:00
refactor(core): php-cs-fixer

2026-10-06 14:36:46
fix(admin): game auth

2026-10-06 14:30:27
refactor(store): add StoreProductQuery model

2026-10-05 20:55:22
refactor(store): extract RouletteTester from store.php refactor(js): harden showModal lifecycle, cache paths, focus target

2026-10-05 11:27:15
fix(store): decouple dynamic modal from cache, cancel pending AJAX

2026-10-05 10:03:29
fix(updater): Fix CleanupService race condition and add daily cron task

2026-10-05 09:12:00
fix(updater): Add cache_l3 to versioned cache cleanup

2026-10-05 08:57:31
fix(updater): stream archive files instead of loading into memory ArchiveHandler::addFile and extractFile used file_get_contents and getFromName, loading whole files into RAM. A 185 MB entry blew the 256 MB limit. Switched to ZipArchive::addFile and getStream with stream_copy_to_stream 14 memory is now O(1) regardless of file size.

2026-10-05 08:10:42
refactor(store): extract logic from store.php, add CleanupService - Store/Admin: RouletteTester + RouletteTestResult - Store/Catalog: StoreItemQuery + StoreGroupQuery - Store/Update: CleanupService + cron task for storage retention - store.php: canonical URLs, 404 for orphan groups, fix /id-0/cat-X - services.php: exclude Features/Update, register RandomItemPicker

2026-10-04 18:40:11
fix(updater): store archive and backups under storage/

2026-10-04 18:20:15
refactor(updater): store archive and backups under storage/

2026-10-04 06:01:48
fix(store): resolve count from source item, DRY affix parsing fix(store): per-item switch prices, count as amount not multiplier

2026-10-04 04:43:04
feat(store): bundle hydration, set count multiplier, affix fallback

2026-10-04 02:22:50
fix(updater): add user-defined ignore list

2026-10-04 02:19:42
fix(updater): add user-defined ignore list

2026-10-04 01:54:32
feat(updater): user-configurable ignore list Adds an admin modal to edit update_ignored_paths. IgnoredPathsConfig merges the parsed patterns (comments and blanks skipped, regex escaped) into both build and site lists, so configured files are neither overwritten nor deleted on update.

2026-10-03 09:01:09
refactor(store): hydrate helper, DECIMAL money, footer unification - BundleItems::hydrate() 14 single helper for item enrichment from base products - store.php: use hydrate in package/add/itemID, drop duplicated loops - store.php: fix double-fetch (single while on cursor, no silent skip) - store.php: hydrate now works for set, switch, roulette uniformly - modal_bundle.tpl: badge visibility depends only on amount (uses_count drives multiply, not visibility) - modal_footer_price.tpl: unified recalc for product/set, hide count when no %count% item - shop.js: guard responseCheckedData against empty formID (roulette crash) - migration 19168: ALTER money/realmoney to DECIMAL(11,2) 14 fix float drift

2026-10-02 15:43:41
refactor(store): validate resolver fields, fix bundle lookup SQL - resolveRoulette/resolveSwitch: explicit ERROR_GIVE_STORE on missing give/cmd - Drop ?? '' fallbacks for required fields - Restore JOIN store_groups 14 fixes unknown column 'g.server'

2026-10-02 04:33:58
fix(store): case items, drop admin cache, unify give pipeline