Specyfikacja techniczna: Integracja Cloudinary z obsługą HEIC, limitami 15MB i całkowitym WebP. Projekt: Tablica ogłoszeń na silniku Tamaranga v2. Cel: Przenieść logikę przesyłania, przetwarzania i wyświetlania zdjęć użytkowników do chmury Cloudinary. Jest to konieczne, aby odciążyć serwer, wspierać format HEIC z iPhone'a, obejść stare limity silnika i przyspieszyć stronę dzięki formatowi WebP [link]. Dodatki są realizowane lokalnie w frontendzie i szablonach tematycznych, bez ingerencji w rdzeń backendu. 1. Wymagania dotyczące przesyłania i walidacji (Frontend) Zmiana UI: Zastąpić standardowy uploader Tamaranga oficjalnym widżetem JavaScript Cloudinary Upload Widget. Funkcjonalność widżetu: Wewnątrz widżetu powinny być aktywne: wskaźnik ładowania (loader), podgląd (preview) wybranych zdjęć oraz responsywne narzędzie do przycinania (cropper), w pełni sterowane palcami na smartfonach. Walidacja plików (Ograniczenia): Ustawić sztywne limity bezpośrednio w widżecie: Minimalna rozdzielczość oryginalnego zdjęcia: 600px po krótszej stronie. Maksymalna rozdzielczość oryginalnego zdjęcia: 8000px. Maksymalna waga pliku: 15MB. W przypadku naruszenia limitów widżet powinien wyświetlać użytkownikowi zrozumiały błąd w języku rosyjskim. 2. Optymalizacja przechowywania w chmurze Incoming Transformation: Ustawić w panelu Cloudinary automatyczne kompresowanie oryginałów przy przychodzącym strumieniu. Wszystkie przesyłane pliki (w tym ciężkie zdjęcia do 15MB i format HEIC) powinny być automatycznie optymalizowane i skalowane do maksymalnej roboczej rozdzielczości 1920px (rozmiar original/zoom), aby oszczędzać miejsce na dysku w darmowym planie. 3. Całkowite przetwarzanie do WebP i nowa siatka podglądów W szablonach wyjściowych ogłoszeń (na stronie głównej, w kategoriach, na stronie samego ogłoszenia) zastąpić generację starych lokalnych obrazków dynamicznymi linkami URL Cloudinary. Wszystkie obrazy powinny być generowane na bieżąco z obowiązkowym użyciem flagi f_auto (automatyczne przetwarzanie do WebP/AVIF dla nowoczesnych przeglądarek) oraz flagi q_auto (automatyczna inteligentna kompresja jakości bez widocznej utraty ostrości) [link]. Nowe rozmiary podglądów (zamiast starych s98/m180): s200 (mały podgląd): link w formacie .../w_200,h_200,c_fill,f_auto,q_auto/... (ścisły kwadrat 200x200px z przycięciem pośrodku). m640 (średni podgląd): link w formacie .../w_640,c_limit,f_auto,q_auto/... (proporcjonalne zmniejszenie do 640px szerokości). view1280 (główne zdjęcie): link w formacie .../w_1280,c_limit,f_auto,q_auto/.... zoom1920 (powiększenie): link w formacie .../w_1920,c_limit,f_auto,q_auto/.... original1920 (oryginał): link w formacie .../w_1920,c_limit,f_auto,q_auto/.... 4. Integracja z backendem Tamaranga v2 Otrzymane od Cloudinary tekstowe linki URL do przesłanych obrazów powinny być przekazywane do standardowych pól formularza Tamaranga, które silnik już potrafi przyjmować. Zrealizować podmianę tak, aby backend zapisywał w bazie danych tylko tekstową ścieżkę (ciąg URL). Wsteczna kompatybilność: Stare ogłoszenia, przesłane przed tą poprawką, nie powinny się zepsuć. Nadal wyświetlają stare lokalne podglądy z folderów serwera
W celu poprawy ostrości (Retina i Premium): Do linków wyjściowych wszystkich obrazów na stronie dodać parametr dpr_auto, aby na ekranach Retina (iPhone, nowoczesne smartfony i laptopy) podgląd automatycznie wyświetlał się w zwiększonej ostrości [link]. Dla ogłoszeń Premium oraz głównej listy ogłoszeń (wyszukiwanie ogłoszeń) i galerii wewnątrz karty produktu używać maksymalnego trybu jakości q_auto:best [link], a także zastosować filtr adaptacyjnego poprawiania ostrości e_sharpen:50, aby wyróżnić je wizualnie na tle zwykłej listy. Dla standardowych ogłoszeń w liście pozostawić podstawowy tryb q_auto (lub q_auto:good) [link].