# Instrukcja tworzenia aktualizacji shopPRO ## Struktura aktualizacji Aktualizacje znajdują się w folderze `updates/0.XX/` gdzie XX oznacza dziesiątki wersji. ### Pliki aktualizacji: - `ver_X.XXX.zip` - paczka ZIP ze zmienionymi plikami (BEZ folderu wersji, bezpośrednio struktura katalogów) - `ver_X.XXX_sql.txt` - opcjonalny plik z zapytaniami SQL (jeśli wymagane zmiany w bazie) - `ver_X.XXX_files.txt` - opcjonalny plik z listą plików do **USUNIĘCIA** przy aktualizacji (format: `F: ../sciezka/do/pliku.php`) - `changelog.php` - historia zmian - `versions.php` - konfiguracja wersji (zmienna `$current_ver`) ### Zasada pakowania plików - Do paczek aktualizacji **nie dodajemy plików `*.md`** (dokumentacja jest tylko wewnętrzna/deweloperska). - Do paczek aktualizacji **nie dodajemy `updates/changelog.php`** (to plik serwisowy po stronie repozytorium aktualizacji, nie runtime klienta). - Do paczek aktualizacji **nie dodajemy głównego `.htaccess` z katalogu projektu** (ten plik wdrażamy osobno, poza ZIP aktualizacji). ## Procedura tworzenia nowej aktualizacji ### 1. Określ numer wersji Sprawdź ostatnią wersję w `temp/` i zwiększ o 1. ### 2. Utwórz folder tymczasowy ze strukturą w katalogu temp ```bash mkdir -p temp/temp_XXX/sciezka/do/pliku ``` **WAŻNE:** W archiwum ZIP NIE powinno być folderu z nazwą wersji (np. ver_0.234/). Struktura ZIP powinna zaczynać się bezpośrednio od katalogów projektu (admin/, autoload/, itp.). ### 3. Skopiuj zmienione pliki do folderu tymczasowego ```bash cp sciezka/do/pliku.php temp/temp_XXX/sciezka/do/pliku.php ``` ### 4. Utwórz plik ZIP z zawartości folderu (nie z samego folderu!) ```powershell cd temp/temp_XXX powershell -Command "Compress-Archive -Path '*' -DestinationPath '../ver_X.XXX.zip' -Force" ``` ### 5. Usuń folder tymczasowy ```bash rm -rf temp/temp_XXX ``` ### 6. Zaktualizuj changelog.php Dodaj wpis na początku pliku: ```html ver. X.XXX - DD.MM.YYYY
- NEW/FIX/UPDATE - opis zmiany
``` Prefiksy: - `NEW` - nowa funkcjonalność - `FIX` - naprawa błędu - `UPDATE` - aktualizacja istniejącej funkcjonalności ### 7. Zaktualizuj versions.php Zmień wartość `$current_ver` na nowy numer wersji (bez przedrostka 0.): ```php $current_ver = 234; // dla wersji 0.234 ``` ### 8. (Opcjonalnie) Utwórz plik SQL Jeśli aktualizacja wymaga zmian w bazie danych, utwórz plik `ver_X.XXX_sql.txt` z zapytaniami SQL. ### 9. (Opcjonalnie) Utwórz plik z listą plików do usunięcia Jeśli aktualizacja wymaga usunięcia przestarzałych plików, utwórz plik `ver_X.XXX_files.txt`: ``` F: ../sciezka/do/pliku1.php F: ../sciezka/do/pliku2.php ``` **UWAGA:** Pliki wymienione w tym pliku zostaną USUNIĘTE z systemu podczas aktualizacji. ## Przykład - aktualizacja 0.234 Zmienione pliki: - `autoload/admin/controls/class.ShopOrder.php` - `admin/templates/shop-order/order-details.php` Opis: Dodanie przycisku do zaznaczania zamówienia jako wysłane do trustmate.io ### Komendy: ```bash # Utwórz strukturę w folderze tymczasowym mkdir -p temp/temp_234/autoload/admin/controls mkdir -p temp/temp_234/admin/templates/shop-order # Skopiuj pliki cp autoload/admin/controls/class.ShopOrder.php temp/temp_234/autoload/admin/controls/ cp admin/templates/shop-order/order-details.php temp/temp_234/admin/templates/shop-order/ # Utwórz ZIP z ZAWARTOŚCI folderu (ważne: wejdź do folderu i spakuj '*') cd temp/temp_234 powershell -Command "Compress-Archive -Path '*' -DestinationPath '../ver_0.234.zip' -Force" # Wróć i usuń folder tymczasowy cd .. rm -rf temp_234 ``` ### Poprawna struktura ZIP: ``` ver_0.234.zip ├── admin/ │ └── templates/ │ └── shop-order/ │ └── order-details.php └── autoload/ └── admin/ └── controls/ └── class.ShopOrder.php ``` ### NIEPOPRAWNA struktura (do uniknięcia): ``` ver_0.234.zip └── ver_0.234/ <-- tego folderu NIE powinno być! ├── admin/ └── autoload/ ```