Files
shopPRO/docs/UPDATE_INSTRUCTIONS.md

4.3 KiB

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

Status biezacej aktualizacji (ver. 0.299)

  • Wersja udostepniona: 0.299 (data: 2026-02-21).
  • Pliki publikacyjne:
    • updates/0.20/ver_0.299.zip
  • Pliki metadanych aktualizacji:
    • updates/changelog.php
    • updates/versions.php ($current_ver = 299)
  • Weryfikacja testow przed publikacja:
    • OK (687 tests, 1971 assertions)

1. Określ numer wersji

Sprawdź ostatnią wersję w updates/ i zwiększ o 1.

2. Utwórz folder tymczasowy ze strukturą w katalogu temp

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

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!)

cd temp/temp_XXX
powershell -Command "Compress-Archive -Path '*' -DestinationPath '../ver_X.XXX.zip' -Force"

5. Usuń folder tymczasowy

rm -rf temp/temp_XXX

6. Zaktualizuj changelog.php

Dodaj wpis na początku pliku:

<b>ver. X.XXX - DD.MM.YYYY</b><br />
- NEW/FIX/UPDATE - opis zmiany
<hr>

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.):

$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:

# 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/