PIAST OPOLE — GOTOWA STRONA PHP
================================

1. WYMAGANIA
Hosting z PHP 8.1 lub nowszym, rozszerzeniem fileinfo, sesjami i możliwością
zapisu w folderach storage oraz uploads. Zalecany Apache 2.4 z obsługą .htaccess.
Nie wymaga MySQL, Composer, Node.js ani budowania projektu.
Włącz certyfikat SSL dla piastaopoletenis.pl w panelu hostingu.

2. CO WRZUCIĆ NA HOSTING
Wyślij ZAWARTOŚĆ katalogu public_html do katalogu WWW domeny (zwykle public_html,
www albo httpdocs). Nie wysyłaj nadrzędnego folderu piast-opole ani tej instrukcji.
Włącz pokazywanie ukrytych plików w programie FTP — pliki .htaccess są potrzebne.
Po wejściu na domenę powinien otworzyć się index.php.
Nie otwieraj PHP przez file:// ani VS Code Live Server — potrzebny jest serwer PHP.

3. PIERWSZE KONTO ADMINISTRATORA
Otwórz https://piastaopoletenis.pl/admin/
Wpisz poniższy indywidualny klucz instalacyjny:

PRXQ7GhId0zkgnwcMFcaJHLQCK8GlnM1

Ustaw swój login oraz silne hasło (12–72 znaki). Zachowaj je w menedżerze haseł.
Po utworzeniu konta instalacja jest automatycznie blokowana.
To jest klucz instalacyjny, NIE domyślne hasło. Instrukcji nie publikuj w WWW.
Możesz zmienić klucz przed instalacją w app/config.php.

4. UZUPEŁNIJ PRZED UDOSTĘPNIENIEM STRONY
W panelu administratora:
- Ustawienia: telefon, e-mail, adres, opis akademii i przedstawienie zespołu.
- Wklej pełny link https:// do Waszej akademii w TennisFinalsPro.
- Cennik: nazwa, kwota z jednostką i warunki. Pusta nazwa usuwa pozycję.
- Aktualności: tytuł, data, treść, zdjęcie; zaznacz publikację albo zostaw szkic.
- Galeria: zdjęcia JPG / PNG / WebP do 6 MB, maks. 24 megapiksele.
- Uzupełnij prywatnosc.php o właściwe dane i rzeczywiste zasady klubu.
  Obecna treść jest startowa; pełna informacja wymaga danych klubu i hostingu.

Nie wpisano wymyślonych cen ani danych kontaktowych. Bez linku rezerwacje
prowadzą do sekcji kontakt. Nie ma formularza mailowego ani płatności — obsługa
zapisów ma odbywać się w Waszym istniejącym TennisFinalsPro.
Nazwiska i zdjęcia trenerów dodaj do opisu zespołu oraz galerii; profilowe karty
poszczególnych trenerów nie są osobnym modułem w tej wersji.

5. ZAPIS / UPRAWNIENIA
Foldery storage i uploads muszą być zapisywalne przez PHP. Zwykle wystarczy 755;
na części hostingów 775. Nie ustawiaj uprawnień 777.
Dane są zapisywane w storage/data.php, a obrazy w uploads.
Dla Nginx administrator hostingu powinien blokować URL /app/ i /storage/,
wyłączyć wykonywanie PHP w /uploads/ oraz listowanie katalogów. Nginx nie czyta
.htaccess. Konfiguracja Apache jest dołączona w paczce.
Jeśli .htaccess powoduje błąd 500, poproś hosting o weryfikację dyrektyw Options
oraz AllowOverride zamiast usuwać ochronę katalogów.
Włącz przekierowanie HTTP -> HTTPS w panelu hostingu.
Jeżeli masz już .htaccess z własnymi regułami, połącz konfigurację — nie nadpisuj
w ciemno ustawień innej aplikacji.

6. STRUKTURA PROJEKTU — OTWÓRZ FOLDER public_html W VS CODE
index.php                strona główna i sekcje
prywatnosc.php           informacja o prywatności do uzupełnienia
admin/index.php         logowanie i zarządzanie
app/bootstrap.php       zapis danych, sesje, walidacja i funkcje
app/config.php          klucz pierwszej instalacji
assets/css/style.css    wygląd strony i wersja mobilna
assets/css/admin.css    wygląd panelu
assets/css/sport.ttf     lokalna czcionka Anton (licencja OFL obok pliku)
assets/js/main.js       menu mobilne, animacje, powiększanie galerii
assets/images/         oryginalne logo i fotografia kortów
uploads/               przesłane zdjęcia
storage/               prywatne dane strony i konta

7. KOPIE ZAPASOWE / AKTUALIZACJE
Regularnie kopiuj CAŁE storage i uploads oraz zachowaj konfigurację.
Dane zawierają hash hasła — kopie przechowuj prywatnie.
Przy aktualizacji kodu nie nadpisuj storage ani uploads.
Usunięcie zdjęcia z galerii usuwa jego wpis, a nie fizyczny plik (może być
używany w aktualnościach). Nieużywane pliki można skasować przez FTP po kopii.
W tej wersji nie ma resetowania hasła e-mailem ani wielu administratorów.
Zmiana hasła jest w panelu. Gdy zapomnisz hasła, przywróć kopię lub poproś o
pomoc — nie usuwaj całego pliku danych, bo zawiera też treści strony.

8. WYGLĄD I MATERIAŁY
Hero odtwarza zaakceptowany kierunek: centralna typografia sportowa, granat,
żółć, zdjęcie kortów, przyciski i ukośne akcenty. To kod HTML/CSS, a nie płaski
obraz makiety, więc układ dostosowuje się do ekranu. Czcionka jest lokalna.
Logo i zdjęcie pochodzą z załączonych materiałów; używaj ich zgodnie z prawami
klubu. Przed publikacją zdjęć zawodników upewnij się, że możesz je opublikować.

9. SPRAWDŹ NA SWOIM HOSTINGU
Wejdź na stronę na komputerze i telefonie. Utwórz konto, zapisz telefon i link,
zmień cenę, opublikuj wpis testowy, dodaj zdjęcie, wyloguj się i sprawdź rezultat.
Przy błędzie 500 sprawdź dziennik błędów hostingu (nie jest wyświetlany publicznie).
