diff --git a/.updateignore b/.updateignore
index bbbc8c7..3c5cd2d 100644
--- a/.updateignore
+++ b/.updateignore
@@ -36,6 +36,9 @@ layout/style-scss/style.scss
layout/style-scss/_mixins.scss
layout/style-scss/_mixins.css
+# macOS metadata
+*.DS_Store
+
# Temp / cache / backups
temp/
backups/
diff --git a/updates/0.30/ver_0.326.zip b/updates/0.30/ver_0.326.zip
new file mode 100644
index 0000000..e37e9c1
Binary files /dev/null and b/updates/0.30/ver_0.326.zip differ
diff --git a/updates/0.30/ver_0.326_manifest.json b/updates/0.30/ver_0.326_manifest.json
new file mode 100644
index 0000000..d563207
--- /dev/null
+++ b/updates/0.30/ver_0.326_manifest.json
@@ -0,0 +1,24 @@
+{
+ "changelog": "NEW - Endpoint API categories/list: plaska lista aktywnych kategorii (id, parent_id, title) w domyslnym jezyku sklepu",
+ "version": "0.326",
+ "files": {
+ "added": [
+ "autoload/api/Controllers/CategoriesApiController.php"
+ ],
+ "deleted": [
+
+ ],
+ "modified": [
+ "autoload/Domain/Update/UpdateRepository.php",
+ "autoload/api/ApiRouter.php"
+ ]
+ },
+ "checksum_zip": "sha256:982e3257562e9d6f96bde3aa817918401e7fb0db4900925b34b6adb5068703f1",
+ "sql": [
+
+ ],
+ "date": "2026-02-27",
+ "directories_deleted": [
+
+ ]
+}
\ No newline at end of file
diff --git a/updates/changelog-data.html b/updates/changelog-data.html
index 1c54846..b279749 100644
--- a/updates/changelog-data.html
+++ b/updates/changelog-data.html
@@ -1,29 +1,38 @@
+ver. 0.326 - 27.02.2026
+NEW - Endpoint API categories/list: plaska lista aktywnych kategorii (id, parent_id, title) w domyslnym jezyku sklepu
+
+ver. 0.326 - 27.02.2026
+NEW - Endpoint API categories/list: plaska lista aktywnych kategorii (id, parent_id, title) w domyslnym jezyku sklepu
+
+ver. 0.326 - 27.02.2026
+NEW - Endpoint API categories/list: plaska lista aktywnych kategorii (id, parent_id, title) w domyslnym jezyku sklepu
+
ver. 0.325 - 27.02.2026
FIX - naprawione krzaczki (mojibake) w changelog, limit wyswietlania do 5 wersji wstecz od wersji instancji
ver. 0.324 - 27.02.2026
-NEW - system kolejki zadań cron (DB), priorytetowe przetwarzanie, retry/backoff, ochrona endpointu cron
+NEW - system kolejki zadaÄąĂË€ž cron (DB), priorytetowe przetwarzanie, retry/backoff, ochrona endpointu cron
ver. 0.323 - 24.02.2026
FIX - refactor importu zdjec w shopPRO import (walidacja HTTP, curl timeouty, logi), FIX - saveCustomFields tylko przy jawnym podaniu, FIX - delete() czysci custom_fields, FIX - sciezka upload w API, NEW - trwale usuwanie produktow z archiwum
ver. 0.322 - 24.02.2026
-FIX - custom_fields: jawne mapowanie kluczy w ProductRepository, spĂłjne !empty w ProductsApiController
+FIX - custom_fields: jawne mapowanie kluczy w ProductRepository, spĂłjne !empty w ProductsApiController
ver. 0.321 - 24.02.2026
-NEW - API: obsługa custom_fields w create/update produktu
+NEW - API: obsÄąĂË€šuga custom_fields w create/update produktu
ver. 0.320 - 24.02.2026
-NEW - API: endpoint ensure_producer (znajdĹş lub utwĂłrz producenta); GET product zwraca producer_name
+NEW - API: endpoint ensure_producer (znajdĹş lub utwĂłrz producenta); GET product zwraca producer_name
ver. 0.319 - 24.02.2026
-FIX - usunięcie shopPRO eksportu produktów; API produktu: dodano custom_fields i security_information
+FIX - usuniĂ„ĂË„ËÂcie shopPRO eksportu produktĂłw; API produktu: dodano custom_fields i security_information
ver. 0.318 - 24.02.2026
-NEW - shopPRO export produktĂłw + API endpoints (ensure_attribute, ensure_attribute_value, upload_image)
+NEW - shopPRO export produktĂłw + API endpoints (ensure_attribute, ensure_attribute_value, upload_image)
ver. 0.317 - 23.02.2026
-FIX - klucz API: fix zapisu (brakowalo w whiteliście), przycisk Generuj losowy klucz, ulepszony routing API
+FIX - klucz API: fix zapisu (brakowalo w whiteliÄąĂË€şcie), przycisk Generuj losowy klucz, ulepszony routing API
ver. 0.316 - 23.02.2026
FIX - migracja brakujacej kolumny type w pp_shop_products_custom_fields
@@ -32,16 +41,16 @@ FIX - migracja brakujacej kolumny type w pp_shop_products_custom_fields
FIX - PDOException w listowaniu atrybutow admin (SQLSTATE HY093)
ver. 0.314 - 23.02.2026
-FIX - naprawa globalnej wyszukiwarki admin (Content-Type, Cache-Control, POST, try/catch), NEW - title strony z numerem zamĂłwienia
+FIX - naprawa globalnej wyszukiwarki admin (Content-Type, Cache-Control, POST, try/catch), NEW - title strony z numerem zamĂłwienia
ver. 0.313 - 23.02.2026
-FIX - sync płatności Apilo (int cast na apilo_order_id PPxxxxxx dawał 0) + logowanie decyzji sync do pp_log
+FIX - sync pÄąĂË€šatnoÄąĂË€şci Apilo (int cast na apilo_order_id PPxxxxxx dawaÄąĂË€š 0) + logowanie decyzji sync do pp_log
ver. 0.312 - 23.02.2026
-FIX - krytyczne bugi integracji Apilo: curl_getinfo po curl_close, nieskończona pętla wysyłki, ceny 0.00 PLN, walidacja cen
+FIX - krytyczne bugi integracji Apilo: curl_getinfo po curl_close, nieskoÄąĂË€žczona pĂ„ĂË„ËÂtla wysyÄąĂË€ški, ceny 0.00 PLN, walidacja cen
ver. 0.311 - 23.02.2026
-FIX - race condition callback płatności Apilo, persistence filtrów tabel admin, poprawki cen zamówień
+FIX - race condition callback pÄąĂË€šatnoÄąĂË€şci Apilo, persistence filtrĂłw tabel admin, poprawki cen zamĂłwieÄąĂË€ž
ver. 0.310 - 23.02.2026
NEW - Zakladka Logi w sekcji Integracje (podglad pp_log z paginacja, sortowaniem, filtrami)
@@ -71,10 +80,10 @@ FIX - naprawiono wyswietlanie atrybutow produktu na froncie (kolizja kolejnosci)
NEW - REST API wariantow produktow (CRUD), slownik atrybutow, filtrowanie po atrybutach, wzbogacone atrybuty z tlumaczeniami
ver. 0.301 - 22.02.2026
-NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
+NEW - Ukrywalne filtry tabel, mobilna wersja szczegĂłĹĂË€šÄ‚Ĺ‚w zamĂłwienia
ver. 0.300 - 21.02.2026
-- NEW - System aktualizacji oparty na manifestach JSON (checksum SHA256, backup plikĂłw, automatyczny build)
+- NEW - System aktualizacji oparty na manifestach JSON (checksum SHA256, backup plikĂłw, automatyczny build)
- NEW - Panel logu aktualizacji w panelu admina
ver. 0.299 - 21.02.2026
@@ -84,31 +93,31 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- FIX - kilka poprawek po aktualizacji
ver. 0.297 - 19.02.2026
-- NEW - REST API produktów (lista, szczegóły, tworzenie, aktualizacja)
-- NEW - Endpoint products z filtrowaniem, sortowaniem i paginacjÄ…
-- NEW - Partial update produktĂłw (tylko zmienione pola)
+- NEW - REST API produktĂłw (lista, szczegĂłĹĂË€šy, tworzenie, aktualizacja)
+- NEW - Endpoint products z filtrowaniem, sortowaniem i paginacjĂ„ĂË€¦
+- NEW - Partial update produktĂłw (tylko zmienione pola)
ver. 0.296 - 19.02.2026
-- NEW - REST API zamówień dla ordersPRO (lista, szczegóły, zmiana statusu, płatności)
-- NEW - Endpointy słownikowe (statusy, transporty, metody płatności)
+- NEW - REST API zamĂłwieÄąĂË€ž dla ordersPRO (lista, szczegĂłĹĂË€šy, zmiana statusu, pÄąĂË€šatnoÄąĂË€şci)
+- NEW - Endpointy sÄąĂË€šownikowe (statusy, transporty, metody pÄąĂË€šatnoÄąĂË€şci)
- NEW - Autentykacja API przez X-Api-Key header
- NEW - Kolumna updated_at w pp_shop_orders (polling zmian)
ver. 0.295 - 19.02.2026
-- NEW - Edycja produktów w zamówieniu z panelu admina (dodawanie, usuwanie, zmiana ilości/cen)
-- NEW - Wyszukiwarka produktĂłw AJAX w formularzu edycji zamĂłwienia
-- NEW - Automatyczna korekta stanĂłw magazynowych i przeliczanie kosztu dostawy
-- FIX - Cena promo w zamĂłwieniu = 0 gdy identyczna z cenÄ… bazowÄ…
+- NEW - Edycja produktĂłw w zamĂłwieniu z panelu admina (dodawanie, usuwanie, zmiana iloÄąĂË€şci/cen)
+- NEW - Wyszukiwarka produktĂłw AJAX w formularzu edycji zamĂłwienia
+- NEW - Automatyczna korekta stanĂłw magazynowych i przeliczanie kosztu dostawy
+- FIX - Cena promo w zamĂłwieniu = 0 gdy identyczna z cenĂ„ĂË€¦ bazowĂ„ĂË€¦
ver. 0.294 - 19.02.2026
-- FIX - Code review zakończony (96/96 klas, ~1144 metod): 27 fixów across all layers
+- FIX - Code review zakoÄąĂË€žczony (96/96 klas, ~1144 metod): 27 fixĂłw across all layers
- FIX - Domain: null guard na query()->fetchAll() w 8 repozytoriach, redundancja DI w PromotionRepository
- FIX - Admin: null safety find() ?: [] w 10 kontrolerach, null guard w App logowaniu/2FA
- FIX - Front: LayoutEngine undefined $level + $_GET null check, ShopBasketController missing global $lang_id
-- FIX - Shared: Helpers $_GET null check + bug 'png' → 'image/png' (Imagick lossless WebP nigdy nie działał)
+- FIX - Shared: Helpers $_GET null check + bug 'png' Ä‚ËÂĂˀ ĂËĂ˘â€šÂ¬Ă˘â€žË 'image/png' (Imagick lossless WebP nigdy nie dziaÄąĂË€šaÄąĂË€š)
ver. 0.293 - 19.02.2026
-- FIX - ArticleRepository: SQL injection fix (addslashes→parameterized), uproszczenie articleDetailsFrontend
+- FIX - ArticleRepository: SQL injection fix (addslashesÄ‚ËÂĂˀ ĂË€â„Ëparameterized), uproszczenie articleDetailsFrontend
- FIX - AttributeRepository: martwy class_exists('\S') blokowal czyszczenie cache/temp
- FIX - CategoryRepository: martwy class_exists('\S') blokowal generowanie linkow SEO kategorii
- FIX - BannerRepository: parametryzacja dat w SQL + null guard na query()
@@ -127,12 +136,12 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- UPDATE - front\controls\Site przemianowany na front\App (router, camelCase: checkUrlParams, pageTitle)
- UPDATE - front\view\Site przemianowany na front\LayoutEngine (layout engine, camelCase: cookieInformation)
- CLEANUP - usuniete autoload/front/controls/ i autoload/front/view/ (puste foldery + pliki legacy)
-- UPDATE - usuniecie 12 legacy klas z autoload/shop/ (~2363 linii) — pelna migracja na Domain-Driven Architecture
+- UPDATE - usuniecie 12 legacy klas z autoload/shop/ (~2363 linii) Ä‚ËÂĂ˂¬ĂË€ť pelna migracja na Domain-Driven Architecture
- UPDATE - class.Order.php: logika Apilo sync i email statusu przeniesiona do OrderAdminService
- UPDATE - class.Product.php: ~20 metod przeniesionych do ProductRepository, calculate_basket_product_price do BasketCalculator
- FIX - findCached(): stale Redis cache z obiektami \shop\Product powodowal ceny 0,00 zl
- FIX - szablony: konwersja object access na array access po migracji Product
-- UPDATE - AttributeRepository::getAttributeValueById() — dodano Redis cache
+- UPDATE - AttributeRepository::getAttributeValueById() Ä‚ËÂĂ˂¬ĂË€ť dodano Redis cache
- CLEANUP - katalog autoload/shop/ pusty, zero referencji \shop\ w aktywnym kodzie
ver. 0.291 - 17.02.2026
@@ -176,17 +185,17 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- FIX - Tpl::render() branch 3: sprawdzal templates_user ale ladowal templates
ver. 0.284 - 16.02.2026
-- CLEANUP - usunieta klasa DbModel (base ORM) — logika wbudowana bezposrednio w shop\Promotion
+- CLEANUP - usunieta klasa DbModel (base ORM) Ä‚ËÂĂ˂¬ĂË€ť logika wbudowana bezposrednio w shop\Promotion
ver. 0.283 - 16.02.2026
- UPDATE - migracja class.S.php do Shared\Helpers\Helpers (~140 plikow przepietych)
- UPDATE - migracja class.Html.php do Shared\Html\Html
- UPDATE - migracja class.Email.php do Shared\Email\Email
- UPDATE - migracja class.Image.php do Shared\Image\ImageManipulator
-- UPDATE - migracja class.Log.php do Shared\Log\Log (usunieta — logika przeniesiona)
+- UPDATE - migracja class.Log.php do Shared\Log\Log (usunieta Ä‚ËÂĂ˂¬ĂË€ť logika przeniesiona)
- CLEANUP - usunieta class.Mobile_Detect.php (przestarzala detekcja UA)
- CLEANUP - usunieto 12 nieuzywanych metod z klasy S
-- FIX - array_cartesian_product() — blad iteracji po niezdefiniowanej zmiennej
+- FIX - array_cartesian_product() Ä‚ËÂĂ˂¬ĂË€ť blad iteracji po niezdefiniowanej zmiennej
ver. 0.282 - 16.02.2026
- UPDATE - Cache cleanup: eliminacja legacy class.Cache.php, migracja CacheHandler i RedisConnection do Shared\Cache namespace
@@ -198,7 +207,7 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
ver. 0.281 - 16.02.2026
- UPDATE - migracja Banners frontend: factory + view do Domain/Views (DI)
-- NEW - `front\Views\Banners` — czysty VIEW (banners, mainBanner)
+- NEW - `front\Views\Banners` Ä‚ËÂĂ˂¬ĂË€ť czysty VIEW (banners, mainBanner)
- UPDATE - `BannerRepository` rozszerzony o 2 metody frontendowe (banners, mainBanner) z Redis cache
- UPDATE - `front\view\Site::show()` przepiety na repo + Views
- CLEANUP - usuniete: front\factory\Banners, front\view\Banners
@@ -206,10 +215,10 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
ver. 0.280 - 16.02.2026
- UPDATE - migracja Articles frontend: factory + view + encja do Domain/Views (DI)
-- NEW - `front\Views\Articles` — czysty VIEW + utility (renderowanie, generateTableOfContents, generateHeadersIds, getImage)
+- NEW - `front\Views\Articles` Ä‚ËÂĂ˂¬ĂË€ť czysty VIEW + utility (renderowanie, generateTableOfContents, generateHeadersIds, getImage)
- UPDATE - `ArticleRepository` rozszerzony o 8 metod frontendowych (z Redis cache)
-- UPDATE - `front\view\Site::show()` — 5 sekcji przepietych na repo + Views
-- UPDATE - `front\controls\Site::route()` — single article + page_type switch przepiete na repo + Views
+- UPDATE - `front\view\Site::show()` Ä‚ËÂĂ˂¬ĂË€ť 5 sekcji przepietych na repo + Views
+- UPDATE - `front\controls\Site::route()` Ä‚ËÂĂ˂¬ĂË€ť single article + page_type switch przepiete na repo + Views
- UPDATE - 5 szablonow `templates/articles/*` przepietych na `\front\Views\Articles::`
- CLEANUP - usuniete: `class.Article` (encja + metody statyczne), `front\factory\Settings` (fasada)
- FIX - eliminacja `global $lang` z `articleNoindex()`, eliminacja zaleznosci od `front\factory\Pages::page_sort()`
@@ -220,22 +229,22 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- UPDATE - nowy namespace `front\Controllers` z `NewsletterController` (DI via factory closures)
- UPDATE - nowy namespace `front\Views` z `Languages` i `Newsletter` (czyste VIEW, statyczne metody)
- UPDATE - routing frontend: `Site::getControllerFactories()` z fallback na stare kontrolery
-- FIX - `newsletter_unsubscribe()` — poprawiona skladnia medoo `delete()` (2 argumenty zamiast 3)
-- UPDATE - eliminacja fasady `front\factory\Languages` — 26 zaleznosci przepietych na `LanguagesRepository`
+- FIX - `newsletter_unsubscribe()` Ä‚ËÂĂ˂¬ĂË€ť poprawiona skladnia medoo `delete()` (2 argumenty zamiast 3)
+- UPDATE - eliminacja fasady `front\factory\Languages` Ä‚ËÂĂ˂¬ĂË€ť 26 zaleznosci przepietych na `LanguagesRepository`
- CLEANUP - usuniete: `front\factory\Languages`, `front\factory\Newsletter`, `front\view\Languages`, `front\view\Newsletter`, `front\controls\Newsletter`
- UPDATE - testy: `OK (437 tests, 1398 assertions)`
ver. 0.278 - 16.02.2026
- UPDATE - migracja Settings + Languages do wspolnych klas Domain (z cache Redis)
-- FIX - `get_single_settings_value()` — parametr `$param` poprawnie uzywany (wczesniej hardcoded `firm_name`)
+- FIX - `get_single_settings_value()` Ä‚ËÂĂ˂¬ĂË€ť parametr `$param` poprawnie uzywany (wczesniej hardcoded `firm_name`)
ver. 0.277 - 16.02.2026
-- NEW - migracja modulu `ShopProduct` (factory) — pelna migracja ~40 metod do `ProductRepository` + ~30 akcji w `ShopProductController`
+- NEW - migracja modulu `ShopProduct` (factory) Ä‚ËÂĂ˂¬ĂË€ť pelna migracja ~40 metod do `ProductRepository` + ~30 akcji w `ShopProductController`
- NEW - migracja modulu `Dashboard` do Domain + DI (`DashboardRepository`, `DashboardController`)
- NEW - migracja modulu `Update` do Domain + DI (`UpdateRepository`, `UpdateController`)
- UPDATE - klasa `admin\Site` przemianowana na `admin\App` (plik `App.php`)
-- UPDATE - refaktoring routingu — usunieto fallback na stare kontrolery, uproszczony routing
-- UPDATE - template `update/main-view.php` — panele zamiast `gridEdit`, `$.confirm()` zamiast `$.prompt()`
+- UPDATE - refaktoring routingu Ä‚ËÂĂ˂¬ĂË€ť usunieto fallback na stare kontrolery, uproszczony routing
+- UPDATE - template `update/main-view.php` Ä‚ËÂĂ˂¬ĂË€ť panele zamiast `gridEdit`, `$.confirm()` zamiast `$.prompt()`
- CLEANUP - usuniete stare foldery: `autoload/admin/controls/`, `autoload/admin/factory/`, `autoload/admin/view/`
- CLEANUP - usuniete legacy: `class.Dashboard.php` (controls/shop), `class.Update.php` (controls/factory/view), `class.Articles.php` (factory), `class.Page.php` (view), `class.ShopProduct.php` (controls/factory/view)
- UPDATE - `front\factory\Newsletter` przepieta na `ArticleRepository::articlesByDateAdd()`
@@ -324,12 +333,12 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- UPDATE - pliki aktualizacji: `updates/0.20/ver_0.268.zip`, `ver_0.268_files.txt`
ver. 0.267 - 13.02.2026
-- FIX - front: poprawione dobieranie layoutu dla kategorii/produktu/koszyka i innych stron modułowych (fallback do layoutu domyślnego)
-- FIX - produkt/koszyk: poprawiona obsługa ilości dla kombinacji (stan 0 po dodaniu do koszyka, limit max, odczyt `stock_0_buy`)
-- FIX - produkt: usunięty błąd JS `TypeError: $(...).visible is not a function` (zamiana na `:visible`)
-- FIX - SEO redirecty produktów: blokada konfliktów po kopiowaniu URL oraz utwardzone wykrywanie pętli redirectów (`lang_id` + graf przejść)
-- UPDATE - admin: `input-switch` zapisuje wartość `on` (spójnie z obsługą pól checkbox w formularzach)
-- CLEANUP - usunięte pliki: `apilo-bck`, `geocode-cache.php`
+- FIX - front: poprawione dobieranie layoutu dla kategorii/produktu/koszyka i innych stron moduÄąĂË€šowych (fallback do layoutu domyÄąĂË€şlnego)
+- FIX - produkt/koszyk: poprawiona obsÄąĂË€šuga iloÄąĂË€şci dla kombinacji (stan 0 po dodaniu do koszyka, limit max, odczyt `stock_0_buy`)
+- FIX - produkt: usuniĂ„ĂË„ËÂty bÄąĂË€šĂ„ĂË€¦d JS `TypeError: $(...).visible is not a function` (zamiana na `:visible`)
+- FIX - SEO redirecty produktĂłw: blokada konfliktĂłw po kopiowaniu URL oraz utwardzone wykrywanie pĂ„ĂË„ËÂtli redirectĂłw (`lang_id` + graf przejÄąĂË€şĂ„ĂË€ˇ)
+- UPDATE - admin: `input-switch` zapisuje wartoÄąĂË€şĂ„ĂË€ˇ `on` (spĂłjnie z obsÄąĂË€šugĂ„ĂË€¦ pĂłl checkbox w formularzach)
+- CLEANUP - usuniĂ„ĂË„ËÂte pliki: `apilo-bck`, `geocode-cache.php`
- UPDATE - testy: `OK (235 tests, 682 assertions)`
- UPDATE - pliki aktualizacji: `updates/0.20/ver_0.267.zip`, `ver_0.267_files.txt`, `ver_0.267_sql.txt`
@@ -411,7 +420,7 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
ver. 0.257 - 12.02.2026
- NEW - migracja modulu `Newsletter` do architektury Domain + DI (`Domain\Newsletter\NewsletterRepository`, `Domain\Newsletter\NewsletterPreviewRenderer`, `admin\Controllers\NewsletterController`)
- UPDATE - widoki `/admin/newsletter/*` przepiete z legacy `grid/gridEdit` na nowe komponenty (`components/table-list`, `components/form-edit`) + nowy endpoint `/admin/newsletter/preview/`
-- UPDATE - routing DI (`admin\Site`) rozszerzony o moduł `Newsletter`
+- UPDATE - routing DI (`admin\Site`) rozszerzony o moduÄąĂË€š `Newsletter`
- UPDATE - `admin\factory\Newsletter` dziala jako fasada do nowego repozytorium (backward compatibility)
- UPDATE - `front\factory\Newsletter` nie korzysta juz z `admin\view\Newsletter`
- CLEANUP - usuniete legacy klasy `autoload/admin/controls/class.Newsletter.php`, `autoload/admin/view/class.Newsletter.php`
@@ -435,7 +444,7 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- UPDATE - migracja widokow languages (`languages-list`, `language-edit`, `translations-list`, `translation-edit`) na `components/table-list` i `components/form-edit`
- UPDATE - routing DI dla `Languages` w `admin\Site` oraz kompatybilna fasada `admin\factory\Languages` delegujaca do repozytorium
- UPDATE - naprawiono zapis edycji jezyka (ID jezyka pobierane z URL przy edycji)
-- UPDATE - globalne poprawki UX filtrĂłw w `components/table-list` (kompaktowe kolumny `Aktywny`/`Domyslny`, spacing i pelna szerokosc selecta)
+- UPDATE - globalne poprawki UX filtrĂłw w `components/table-list` (kompaktowe kolumny `Aktywny`/`Domyslny`, spacing i pelna szerokosc selecta)
- CLEANUP - usuniete legacy klasy: `autoload/admin/controls/class.Languages.php`, `autoload/admin/view/class.Languages.php`
ver. 0.253 - 12.02.2026
@@ -504,78 +513,78 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- UPDATE - refaktoryzacja: article_save przeniesiony do Domain\Article\ArticleRepository::save() z prywatnymi helperami
- UPDATE - refaktoryzacja: article_delete przeniesiony do Domain\Article\ArticleRepository::archive()
- UPDATE - ArticlesController: nowe akcje save() i delete() z DI
-- UPDATE - admin\factory\Articles::article_save() i articles_set_archive() delegują do repozytorium (kompatybilność)
+- UPDATE - admin\factory\Articles::article_save() i articles_set_archive() delegujĂ„ĂË€¦ do repozytorium (kompatybilnoÄąĂË€şĂ„ĂË€ˇ)
ver. 0.243
-- UPDATE - refaktoryzacja: cleanup nieprzypisanych plików/zdjęć artykułów przeniesiony do Domain\Article\ArticleRepository
-- UPDATE - ArticlesController::edit() używa repozytorium do cleanupu, a admin\factory\Articles zachowuje delegowanie (kompatybilność)
+- UPDATE - refaktoryzacja: cleanup nieprzypisanych plikĂłw/zdjĂ„ĂË„ËÂĂ„ĂË€ˇ artykuÄąĂË€šÄ‚Ĺ‚w przeniesiony do Domain\Article\ArticleRepository
+- UPDATE - ArticlesController::edit() uĹĽywa repozytorium do cleanupu, a admin\factory\Articles zachowuje delegowanie (kompatybilnoÄąĂË€şĂ„ĂË€ˇ)
ver. 0.242
- NEW - refaktoryzacja: Domain\Article\ArticleRepository + migracja article_edit do admin\Controllers\ArticlesController (DI)
-- UPDATE - admin\factory\Articles::article_details() deleguje do nowego repozytorium (kompatybilność zachowana)
-- UPDATE - metody przejęte przez nowe kontrolery oznaczone jako @deprecated w legacy kontrolerach admin\controls
+- UPDATE - admin\factory\Articles::article_details() deleguje do nowego repozytorium (kompatybilnoÄąĂË€şĂ„ĂË€ˇ zachowana)
+- UPDATE - metody przejĂ„ĂË„ËÂte przez nowe kontrolery oznaczone jako @deprecated w legacy kontrolerach admin\controls
ver. 0.241
-- NEW - refaktoryzacja: admin\Controllers\ProductArchiveController - archiwum produktĂłw z DI
+- NEW - refaktoryzacja: admin\Controllers\ProductArchiveController - archiwum produktĂłw z DI
- NEW - ProductRepository::archive(), unarchive() - operacje archiwizacji w repozytorium
-- FIX - naprawiono SQL w liście archiwum (puste wyszukiwanie filtrowało wszystkie wyniki)
-- FIX - naprawiono brakujÄ…cy filtr archive = 1 w zapytaniu bez wyszukiwania
-- UPDATE - wyczyszczono szablony archiwum (usunięto zbędne funkcje: apilo, baselinker, duplikowanie)
+- FIX - naprawiono SQL w liÄąĂË€şcie archiwum (puste wyszukiwanie filtrowaÄąĂË€šo wszystkie wyniki)
+- FIX - naprawiono brakujĂ„ĂË€¦cy filtr archive = 1 w zapytaniu bez wyszukiwania
+- UPDATE - wyczyszczono szablony archiwum (usuniĂ„ĂË„ËÂto zbĂ„ĂË„ËÂdne funkcje: apilo, baselinker, duplikowanie)
ver. 0.240
- NEW - refaktoryzacja: Domain\Settings\SettingsRepository + admin\Controllers\SettingsController (architektura Domain-Driven)
-- NEW - refaktoryzacja: Domain\Cache\CacheRepository - czyszczenie cache z obsługą Redis
-- FIX - komunikat potwierdzenia zapisu ustawień w panelu administratora
+- NEW - refaktoryzacja: Domain\Cache\CacheRepository - czyszczenie cache z obsÄąĂË€šugĂ„ĂË€¦ Redis
+- FIX - komunikat potwierdzenia zapisu ustawieÄąĂË€ž w panelu administratora
- FIX - naprawiono element #content w layoucie admina (powiadomienia grid.js)
ver. 0.239
-- NEW - refaktoryzacja: Domain\Banner\BannerRepository + admin\Controllers\BannerController (pełna migracja kontrolera)
+- NEW - refaktoryzacja: Domain\Banner\BannerRepository + admin\Controllers\BannerController (peÄąĂË€šna migracja kontrolera)
- NEW - refaktoryzacja: Domain\Product\ProductRepository::getPrice(), getName() - migracja kolejnych metod
-- NEW - router admin z obsługą nowych kontrolerów (fallback na stare)
-- UPDATE - shop\Product::get_product_price(), get_product_name() używają nowego repozytorium (kompatybilność zachowana)
+- NEW - router admin z obsÄąĂË€šugĂ„ĂË€¦ nowych kontrolerĂłw (fallback na stare)
+- UPDATE - shop\Product::get_product_price(), get_product_name() uĹĽywajĂ„ĂË€¦ nowego repozytorium (kompatybilnoÄąĂË€şĂ„ĂË€ˇ zachowana)
ver. 0.238
- NEW - refaktoryzacja: Domain\Product\ProductRepository - pierwsza klasa w nowej architekturze Domain-Driven
- NEW - Dependency Injection zamiast global variables
-- UPDATE - shop\Product::get_product_quantity() używa teraz nowego repozytorium (kompatybilność zachowana)
+- UPDATE - shop\Product::get_product_quantity() uĹĽywa teraz nowego repozytorium (kompatybilnoÄąĂË€şĂ„ĂË€ˇ zachowana)
ver. 0.237
- NEW - automatyczne czyszczenie cache produktu po aktualizacji przez CRON (Sellasist, Apilo, Baselinker)
-- UPDATE - przycisk "Wyczyść cache" w panelu administratora z obsługą AJAX i komunikatami o postępie
+- UPDATE - przycisk "WyczyÄąĂË€şĂ„ĂË€ˇ cache" w panelu administratora z obsÄąĂË€šugĂ„ĂË€¦ AJAX i komunikatami o postĂ„ĂË„ËÂpie
ver. 0.236
-- FIX - zabezpieczenie przed duplikatami zamówień w Apilo - automatyczne pobieranie ID zamówienia przy błędzie "idExternal już wykorzystywany"
+- FIX - zabezpieczenie przed duplikatami zamĂłwieÄąĂË€ž w Apilo - automatyczne pobieranie ID zamĂłwienia przy bÄąĂË€šĂ„ĂË„ËÂdzie "idExternal juĹĽ wykorzystywany"
ver. 0.235
- FIX - poprawka funkcji aktualizacji
ver. 0.234
-- NEW - przycisk zaznaczania zamówienia jako wysłane do trustmate.io
+- NEW - przycisk zaznaczania zamĂłwienia jako wysÄąĂË€šane do trustmate.io
ver. 0.232
- NEW - opcje GPSR
ver. 0.231
-- FIX - poprawki bezpieczeństwa + dwuetapowa weryfikacja logowania
+- FIX - poprawki bezpieczeÄąĂË€žstwa + dwuetapowa weryfikacja logowania
ver. 0.230
-- FIX - poprawki bezpieczeństwa
+- FIX - poprawki bezpieczeÄąĂË€žstwa
ver. 0.229
-- NEW - pola dodatkowe z opcjÄ… wymagane/niewymagane
+- NEW - pola dodatkowe z opcjĂ„ĂË€¦ wymagane/niewymagane
ver. 0.228
-- NEW - cron do wysyłania zamówień do trustmate.io
+- NEW - cron do wysyÄąĂË€šania zamĂłwieÄąĂË€ž do trustmate.io
ver. 0.227
-- NEW - historia kodĂłw rabatowych
+- NEW - historia kodĂłw rabatowych
ver. 0.226
-- NEW - dodanie opcji faktury do zamĂłwienia
+- NEW - dodanie opcji faktury do zamĂłwienia
ver. 0.225
- NEW - przycisk czyszczenia cache
-- NEW - ponowne wysyłanie zamówienia do apilo
+- NEW - ponowne wysyÄąĂË€šanie zamĂłwienia do apilo
ver. 0.224
- NEW - sortowanie form dostawy
@@ -587,20 +596,20 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- NEW - integracja z Orlen Paczka
ver. 0.221
-- NEW - Automatyczne przekierowania adresĂłw URL produktĂłw, zmiany w pliku htaccess
+- NEW - Automatyczne przekierowania adresĂłw URL produktĂłw, zmiany w pliku htaccess
ver. 0.220
-- NEW - Dodanie możliwości wyświetlenia na strone ostatnio dodane produkty [PRODUKTY_NEW] lub [PRODUKTY_NEW:10].
-- NEW - Dodanie możliwości wyświetlenia na strone popularnych produktów [PRODUKTY_TOP] lub [PRODUKTY_TOP:10].
+- NEW - Dodanie moĹĽliwoÄąĂË€şci wyÄąĂË€şwietlenia na strone ostatnio dodane produkty [PRODUKTY_NEW] lub [PRODUKTY_NEW:10].
+- NEW - Dodanie moĹĽliwoÄąĂË€şci wyÄąĂË€şwietlenia na strone popularnych produktĂłw [PRODUKTY_TOP] lub [PRODUKTY_TOP:10].
ver. 0.219
-- NEW - Dodanie możliwości zmiany daty w artykułach
+- NEW - Dodanie moĹĽliwoÄąĂË€şci zmiany daty w artykuÄąĂË€šach
ver. 0.218
- NEW - indywidualny kod GTM
ver. 0.217
-- NEW - zwiększenie obsługi REDIS
+- NEW - zwiĂ„ĂË„ËÂkszenie obsÄąĂË€šugi REDIS
ver. 0.216
- NEW - aktualizacja api i cron (apilo)
@@ -615,43 +624,43 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- FIX - wyliczenie darmowej dostawy
ver. 0.212
-- NEW - zmiany w zapisywaniu zamĂłwienia do apilo
+- NEW - zmiany w zapisywaniu zamĂłwienia do apilo
ver. 0.211
-- NEW - Debugowanie apilo + wyświetlanie podkategorii
+- NEW - Debugowanie apilo + wyÄąĂË€şwietlanie podkategorii
ver. 0.210
-- NEW - dodatkowe pola w widoku produktĂłw
+- NEW - dodatkowe pola w widoku produktĂłw
ver. 0.209
-- NEW - zmiany w widoku produktĂłw (panel administratora)
+- NEW - zmiany w widoku produktĂłw (panel administratora)
ver. 0.208
-- NEW - zmiany w wyszukiwarce produktĂłw
+- NEW - zmiany w wyszukiwarce produktĂłw
ver. 0.204-0.207
- NEW - htaccess update
ver. 0.204-0.206
-- NEW - wysyłanie produktów do apilo
+- NEW - wysyÄąĂË€šanie produktĂłw do apilo
ver. 0.203
- NEW - zmiana sposobu wyliczania cen produkty z dodatkami
ver. 0.202
-- NEW - dodano "główne zdjęcie" w edycji artykułu
+- NEW - dodano "gÄąĂË€šÄ‚Ĺ‚wne zdjĂ„ĂË„ËÂcie" w edycji artykuÄąĂË€šu
ver. 0.201
-- FIX - aktualizacja statusĂłw na podstawie baselinkera
+- FIX - aktualizacja statusĂłw na podstawie baselinkera
ver. 0.200
-- NEW - wysyłanie produktów do baselinker
+- NEW - wysyÄąĂË€šanie produktĂłw do baselinker
ver. 0.199
- NEW - usprawnienie edycji danych do XML
ver. 0.198
-- NEW - automatyczne generowanie kodĂłw SKU
+- NEW - automatyczne generowanie kodĂłw SKU
ver. 0.197
- FIX - poprawki w Dashboard
@@ -660,7 +669,7 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- FIX - integracja z apilo.com
ver. 0.195
-- FIX - aktualizacja statusĂłw
+- FIX - aktualizacja statusĂłw
ver. 0.194
- UPDATE - integracja apilo
@@ -669,46 +678,46 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- UPDATE - aktualizacja synchronizacji z baselinker
ver. 0.192
-- NEW - pobieranie statusĂłw z sellasist
+- NEW - pobieranie statusĂłw z sellasist
ver. 0.191
- NEW - integracja z selasist
ver. 0.190
-- FIX - produkty powiÄ…zane
+- FIX - produkty powiĂ„ĂË€¦zane
ver. 0.189
-- FIX - ceny promocyjne produktĂłw z dodatkiem
+- FIX - ceny promocyjne produktĂłw z dodatkiem
ver. 0.188
-- NEW - widok listy produktĂłw
+- NEW - widok listy produktĂłw
ver. 0.187
- FIX - pobieranie cen z APILO
ver. 0.186
-- FIX - dodawanie do koszyka tych samych produktów ale z różną personalizacją
+- FIX - dodawanie do koszyka tych samych produktĂłw ale z różnĂ„ĂË€¦ personalizacjĂ„ĂË€¦
ver. 0.185
-- FIX - masowa edycja produktĂłw
+- FIX - masowa edycja produktĂłw
ver. 0.184
-- NEW - druga część integracji z apilo, masowa edycja produktów
+- NEW - druga czĂ„ĂË„ËÂÄąĂË€şĂ„ĂË€ˇ integracji z apilo, masowa edycja produktĂłw
ver. 0.183
-- NEW - pierwsza część integracji z apilo
+- NEW - pierwsza czĂ„ĂË„ËÂÄąĂË€şĂ„ĂË€ˇ integracji z apilo
ver. 0.182
- FIX - layout
ver. 0.181
-- NEW - infinitescroll - opcja włączy/wyłącz
+- NEW - infinitescroll - opcja wÄąĂË€šĂ„ĂË€¦czy/wyÄąĂË€šĂ„ĂË€¦cz
ver. 0.180
- NEW - aktualizacja dashboard
ver. 0.179
-- NEW - obsługa EAN
+- NEW - obsÄąĂË€šuga EAN
ver. 0.177, 0.178
- FIX - custom_label
@@ -724,7 +733,7 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
ver. 0.173
- NEW - duplikowanie produktu wraz z kombinacjami
-- NEW - dodanie przechodzenia pomiędzy zamówienia (poprzednie/następne zamówienie)
+- NEW - dodanie przechodzenia pomiĂ„ĂË„ËÂdzy zamĂłwienia (poprzednie/nastĂ„ĂË„ËÂpne zamĂłwienie)
ver. 0.172
- FIX - poprawki w Cache
@@ -736,22 +745,22 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- NEW - usuwanie cache produktu przy zapisie
ver. 0.169
-- FIX - poprawki w liście produktów
+- FIX - poprawki w liÄąĂË€şcie produktĂłw
ver. 0.168
-- NEW - archiwum produktĂłw
+- NEW - archiwum produktĂłw
ver. 0.167
-- NEW - dodanie obsługi cen i stanów magazynowych kombinacji produktów
+- NEW - dodanie obsÄąĂË€šugi cen i stanĂłw magazynowych kombinacji produktĂłw
ver. 0.166
-- NEW - współpraca z GTM
+- NEW - wspĂłĹĂË€špraca z GTM
ver. 0.164/5
-- FIX - ukrywanie produktĂłw nieaktywnych
+- FIX - ukrywanie produktĂłw nieaktywnych
ver. 0.163
-- NEW - automatyczne podpowiadanie produktów do zestawu na podstawie wcześniejszych zakupów klientów
+- NEW - automatyczne podpowiadanie produktĂłw do zestawu na podstawie wczeÄąĂË€şniejszych zakupĂłw klientĂłw
ver. 0.162
- NEW - GA4
@@ -767,7 +776,7 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- FIX - cron Baselinker
ver. 0.158
-- UPDATE - poprawa kolorystyki przyciskĂłw
+- UPDATE - poprawa kolorystyki przyciskĂłw
ver. 0.157
- NEW - szybka zmiana statusu produktu
@@ -779,10 +788,10 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- NEW - infinite scroll w widoku kategorii
ver. 0.154
-- FIX - atrybuty produktĂłw
+- FIX - atrybuty produktĂłw
ver. 0.153
-- FIX - atrybuty produktĂłw
+- FIX - atrybuty produktĂłw
ver. 0.152
- FIX - tematy maili
@@ -791,7 +800,7 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- FIX - tematy maili
ver. 0.150
-- NEW - domyślna forma transportu
+- NEW - domyÄąĂË€şlna forma transportu
ver. 0.149
- NEW - tematy maili
@@ -809,11 +818,11 @@ NEW - Ukrywalne filtry tabel, mobilna wersja szczegółów zamówienia
- NEW - omnibus ready
ver. 0.144
-- FIX - usunięcie adresu marianek.pl z kodu
+- FIX - usuniĂ„ĂË„ËÂcie adresu marianek.pl z kodu
ver. 0.143
-- FIX - poprawa generowania plikĂłw WEBP
+- FIX - poprawa generowania plikĂłw WEBP
ver. 0.142
-- FIX - poprawa adresu strony głównej
+- FIX - poprawa adresu strony gÄąĂË€šÄ‚Ĺ‚wnej
diff --git a/updates/versions.php b/updates/versions.php
index 18c43c6..52c0036 100644
--- a/updates/versions.php
+++ b/updates/versions.php
@@ -1,5 +1,5 @@
-$current_ver = 325;
+$current_ver = 326;
for ($i = 1; $i <= $current_ver; $i++)
{