<?xml version="1.0" encoding="utf-8"?>
	<rss version="2.0">
		<channel> 
			<title>История коммерческой редакции CMS Donate Engine</title> 
			<link>https://cde.by/ru/news/</link> 
			<description>Здесь Вы можете ознакомиться с историей изменений в CMS Donate Engine.</description>
			<item>
				<title>v19.1.46</title>
				<description><![CDATA[fix(store): keep bundle item fields when switching product types
- addItemPanelWithIndex: always fill hidden price/chance/sound inputs
  regardless of active product mode, so values persist when admin
  toggles between set/switch/roulette in the edit form
- insert handler: merge submitted items with existing serialized items
  by id, preserving fields not present in the current form (cmd/give/lang,
  prices, chance, sound)]]></description>
				<files><![CDATA[Total: 4 files (+0, ~4, -0)

www/public/style/gente/mods/store/
  M admin_modal_edit_product.js
  M modal_bundle.tpl
www/src/app/
  M constants.php
www/src/app/controllers/
  M store.php]]></files>
				<pubDate>Thu, 24 Sep 2026 12:27:15 +0300</pubDate>
			</item>
			<item>
				<title>v19.1.45</title>
				<description><![CDATA[feat(store): add set/switch product types with unified purchase flow
- Add ProductType as single source of truth (product/set/switch/roulette)
- Add BundleItems for serialize decode/encode
- Add PurchaseResolver for per-type purchase resolution
- Switch: per-item prices, info panel per item, amount multiplier per item
- Set: card grid layout with per-item catalog price
- Move amount/online fields to Settings tab, default amount = -1
- Grid selector with optgroup by server
- LogStore::insert(Dto) replaces raw INSERTs in itemID handler
- Fix sound path resolution (siteUrl prefix)
- CSS: unify switch/set card styles, fix feedback icon positioning]]></description>
				<files><![CDATA[Total: 55 files (+7, ~25, -23)

Most changed directories:
  23   www/public/style/images/cstrike/
  10   www/public/style/gente/mods/store/
  3   www/src/app/Features/Store/Purchase/
  2   www/src/app/lib/
  2   www/src/app/controllers/
  2   www/public/style/gente/css/
  1   www/src/app/lib/templates/
  1   www/src/app/Http/
  1   www/src/app/Features/Common/Listener/
  1   www/src/app/Container/]]></files>
				<pubDate>Thu, 24 Sep 2026 11:03:49 +0300</pubDate>
			</item>
			<item>
				<title>v19.1.39</title>
				<description><![CDATA[build 19.1.39 retry9]]></description>
				<files><![CDATA[Total: 1 files (+0, ~1, -0)

www/src/app/
  M constants.php]]></files>
				<pubDate>Tue, 22 Sep 2026 11:12:33 +0300</pubDate>
			</item>
			<item>
				<title>v19.1.38</title>
				<description><![CDATA[fix(admin): migrate]]></description>
				<files><![CDATA[Total: 2 files (+0, ~2, -0)

www/src/admin/controllers/
  M core_updater.php
www/src/app/
  M constants.php]]></files>
				<pubDate>Tue, 22 Sep 2026 08:14:10 +0300</pubDate>
			</item>
			<item>
				<title>v19.1.37</title>
				<description><![CDATA[fix(template): normalize theme name to avoid double slashes in asset URLs]]></description>
				<files><![CDATA[Total: 2 files (+0, ~2, -0)

www/src/app/
  M constants.php
www/src/app/lib/
  M Template.php]]></files>
				<pubDate>Thu, 17 Sep 2026 02:44:07 +0300</pubDate>
			</item>
			<item>
				<title>v19.1.36</title>
				<description><![CDATA[feat(core): Gravatar avatar provider with HttpKernel infrastructure
- DI: EventDispatcher, HttpKernel, ArgumentResolver, Validator, Serializer
- ContainerFactory: RegisterListenersPass for event subscribers
- Features/Common: #[Acl], AclListener, HttpExceptionListener
- Features/Avatar: /gravatar endpoint with ETag caching
- SW: exclude /gravatar from image cache; profile hint when active]]></description>
				<files><![CDATA[Total: 30 files (+11, ~19, -0)

.vscode/
  M settings.json
www/
  M composer.json
www/public/
  M sw.js
www/public/style/gente/js/
  M preload-sw.js
www/public/style/gente/mods/profile/
  M user.tpl
www/src/admin/controllers/
  M core_updater.php
  M settings.php
www/src/admin/lib/
  M FpmClient.php
www/src/admin/lib/updater/migrate_mysql/
  A MigrateMySQL19135.php
www/src/admin/lib/updater/services/
  M Updater.php
www/src/app/
  M constants.php
www/src/app/config/
  M services.php
www/src/app/Container/
  M ContainerFactory.php
www/src/app/controllers/
  M profile.php
www/src/app/Features/Avatar/
  A AvatarController.php
  A Repository.php
www/src/app/Features/Avatar/Dto/
  A AvatarQuery.php
www/src/app/Features/Common/
  A services.php
www/src/app/Features/Common/Attribute/
  A Acl.php
www/src/app/Features/Common/Listener/
  A AclListener.php
  A HttpExceptionListener.php
www/src/app/Http/
  A ContainerControllerResolver.php
  M RequestHandler.php
www/src/app/lib/
  M AppCache.php
  M ErrorHandler.php
www/src/app/lib/session/
  M SessionManager.php
www/src/app/models/ErrorLog/
  M Repository.php
www/tests/
  M bootstrap.php
www/tests/Unit/ErrorHandler/
  A BacktraceTest.php
  A LogParsingTest.php]]></files>
				<pubDate>Thu, 17 Sep 2026 02:13:33 +0300</pubDate>
			</item>
			<item>
				<title>v19.1.34</title>
				<description><![CDATA[fix(digiseller): verify SHA256 sign]]></description>
				<files><![CDATA[Total: 1 files (+0, ~1, -0)

www/src/app/
  M constants.php]]></files>
				<pubDate>Wed, 16 Sep 2026 11:06:11 +0300</pubDate>
			</item>
			<item>
				<title>v19.1.33</title>
				<description><![CDATA[fix(install): cli cache cleaner]]></description>
				<files><![CDATA[Total: 2 files (+0, ~2, -0)

www/src/app/
  M constants.php
www/src/app/controllers/payments/
  M digiseller.php]]></files>
				<pubDate>Wed, 16 Sep 2026 10:42:50 +0300</pubDate>
			</item>
			<item>
				<title>v19.1.32</title>
				<description><![CDATA[fix(error_log): unserialize]]></description>
				<files><![CDATA[Total: 2 files (+0, ~2, -0)

www/src/app/
  M constants.php
www/src/app/lib/
  M ErrorHandler.php]]></files>
				<pubDate>Tue, 15 Sep 2026 09:09:05 +0300</pubDate>
			</item>
			<item>
				<title>v19.1.31</title>
				<description><![CDATA[fix(error_log): unserialize]]></description>
				<files><![CDATA[Total: 2 files (+0, ~2, -0)

www/src/app/
  M constants.php
www/src/app/models/ErrorLog/
  M Repository.php]]></files>
				<pubDate>Mon, 14 Sep 2026 18:30:52 +0300</pubDate>
			</item>
		</channel>
	</rss>