Zasady numeracji:
- zmiana (nowa funkcja, większa modyfikacja): podnosimy o 0.1 (np. 0.5 → 0.6),
- korekta (poprawka błędu, drobna zmiana): podnosimy ostatnią cyfrę o 0.0.1 (np. 0.5 → 0.5.1 → 0.5.2).
v3.6.1 – 2026-10-06
Korekta: na stronie „Wszystkie kategorie” (/kategorie) pod tytułem jest baner z losowym zdjęciem firmy (zmienia się przy każdym wejściu). Wysokość i efekt są takie same jak w banerze kategorii (Ustawienia → Zdjęcie w kategoriach).
Pliki: public_html/kategorie.php, CHANGELOG.md.
v3.6 – 2026-10-06
Zmiany:
- Efekty zdjęcia nagłówka strony głównej wybierane w panelu (Ustawienia → Ustawienia strony → Zdjęcie na stronie głównej → „Efekt zdjęcia przy przewijaniu”): Odsłanianie (domyślny), Paralaksa, Przybliżanie, Rozmycie i przyciemnienie, Powolny ruch (samoczynny najazd kamery) oraz Bez efektu. Osobny wybór efektu dla banera w kategoriach (Zdjęcie w kategoriach).
- Porządek w Ustawieniach: nowy akordeon główny „Ustawienia strony” zawiera akordeony „Zdjęcie na stronie głównej”, „Zdjęcie w kategoriach” i „Tło strony”. Akordeony RODO i Bezpieczeństwo są na końcu listy.
- Poprawka: po zapisie ustawień banera w kategoriach właściwy akordeon pozostaje otwarty.
Pliki: includes/tla.php, includes/public.php, public_html/index.php, public_html/lista.php, public_html/assets/katalog.css, panel/ustawienia.php, panel/style.css, CHANGELOG.md.
v3.5 – 2026-10-06
Zmiany (strona główna i kategorie):
- Przycisk „Zobacz wszystkie kategorie” jest wycentrowany.
- Kafelki kategorii na stronie głównej wyświetlają się w losowej kolejności (przy każdym wejściu inny zestaw w 4 widocznych rzędach).
- Efekt odsłaniania (paralaksa) zdjęcia: zdjęcie w nagłówku strony głównej i baner w kategorii stoją w miejscu względem okna, a przewijana strona przesuwa się nad nimi, odsłaniając kolejne fragmenty zdjęcia. Działa na komputerach (szerokość ≥ 900 px, mysz/touchpad); na telefonach i przy włączonym „ograniczeniu ruchu” zdjęcie przewija się normalnie.
Pliki: public_html/index.php, public_html/assets/katalog.css, CHANGELOG.md.
v3.4 – 2026-10-06
Zmiany (strona główna + nowa strona „Wszystkie kategorie”):
- Na stronie głównej kafelki kategorii zajmują maksymalnie 4 rzędy (liczba kafelków dopasowuje się do szerokości ekranu), a pod nimi jest przycisk „Zobacz wszystkie kategorie”.
- Nowa strona /kategorie z pełną listą kategorii: przy każdej losowe zdjęcie firmy z tej kategorii (zmienia się przy każdym wejściu; gdy brak – zdjęcie domyślne kategorii lub ikona), nazwa i liczba firm. Strona jest w sitemap.xml.
Serwer: w pliku .htaccess w głównym katalogu strony dodaj regułę (lub wklej na nowo blok z htaccess.txt): RewriteRule ^kategorie/?$ kategorie.php [L,QSA] oraz dopisz kategorie do reguły z ukośnikiem na końcu ^(firmy|kategorie|szukaj|...)/$.
Pliki: public_html/kategorie.php (nowy), public_html/index.php, public_html/assets/katalog.css, public_html/sitemap.php, htaccess.txt, CHANGELOG.md.
v3.3 – 2026-10-06
Zmiana (panel → Ustawienia → Tło strony):
- Suwak „Siła efektu przesuwania tła” (0–100%, domyślnie 35% = dotychczasowa wartość). 0% wyłącza przesuwanie tła przy przewijaniu. Dotyczy gotowych teł i własnego zdjęcia.
Pliki: includes/public.php, public_html/assets/katalog.css, panel/ustawienia.php, CHANGELOG.md.
v3.2 – 2026-10-06
Zmiana (strony kategorii + panel → Ustawienia → „Zdjęcie w kategoriach”):
- Na stronie każdej kategorii nad tytułem może pojawiać się baner z losowym zdjęciem firmy z tej kategorii (zmienia się przy każdym wejściu), z podpisem „Zdjęcie: nazwa firmy” i linkiem do wizytówki. Gdy w kategorii nie ma pasującego zdjęcia, używane jest zdjęcie domyślne kategorii; gdy i tego brak – baner się nie pokazuje.
- Nowa sekcja w Ustawieniach: włączenie/wyłączenie banera, wybór wysokości (niski / średni / wysoki) oraz liczniki kategorii i firm ze zdjęciem.
Pliki: public_html/lista.php, public_html/assets/katalog.css, panel/ustawienia.php, CHANGELOG.md.
v3.1 – 2026-10-06
Zmiana (panel → Ustawienia → Zdjęcie na stronie głównej):
- Nowy przycisk „Wyświetlaj zdjęcie losowe”: po włączeniu przy każdym wejściu na stronę główną tłem nagłówka jest zdjęcie losowej firmy z katalogu (poziome, min. 1000 px), z podpisem „Zdjęcie: nazwa firmy” prowadzącym do wizytówki. Można je wyłączyć tym samym przyciskiem; wtedy wraca stałe zdjęcie. Gdy nie uda się wylosować pasującego zdjęcia, pokazuje się stałe.
- Panel pokazuje stan (włączone/wyłączone) i liczbę firm ze zdjęciem.
Pliki: public_html/index.php, public_html/assets/katalog.css, panel/ustawienia.php, CHANGELOG.md.
v3.0.1 – 2026-10-06
Korekta: strona publiczna „Polityka prywatności” jest szeroka (na całą szerokość zawartości serwisu, akapity bez ograniczenia do ok. 70 znaków). Pole edycji treści w Ustawieniach wróciło do poprzedniego rozmiaru.
Pliki: public_html/prywatnosc.php, public_html/assets/katalog.css, panel/ustawienia.php, CHANGELOG.md.
v3.0 – 2026-10-06
Zmiany:
- Tło przesuwa się przy przewijaniu strony publicznej (delikatny efekt paralaksy; wyłączany u osób z włączonym „ograniczeniem ruchu” w systemie). Dotyczy gotowych teł i własnego zdjęcia.
- 5 nowych gotowych teł (każde w wariancie jasnym i ciemnym): Zorza, Fale, Geometria, Warstwice, Siatka – obok dotychczasowego Kwantowego. Wybór w panelu: Ustawienia → Tło strony (miniatury jasna/ciemna, własne zdjęcie, bez tła).
- Zgłoszenia RODO i Bezpieczeństwo przeniesione do Ustawień jako akordeony („RODO – zgłoszenia i treść polityki prywatności”, „Bezpieczeństwo – weryfikacja dwuetapowa i próby logowania”). Znikły z górnego menu; liczba nowych zgłoszeń RODO jest przy „Ustawienia”. Stare adresy (
rodo.php, bezpieczenstwo.php) przekierowują do Ustawień. Uprawnienia bez zmian: RODO – administrator i moderator, Bezpieczeństwo – każdy użytkownik (dla własnego konta). - Edycja treści polityki prywatności (Ustawienia → RODO, tylko administrator): obecny tekst jest wczytany do edytora, zmiany widać od razu na
/polityka-prywatnosci; przycisk „Przywróć domyślną treść”. Prosty zapis: ## Nagłówek, akapity, - lista, [tekst](adres), pogrubienie; podstawienia {nazwa}, {administrator}, {email}. Treść jest bezpiecznie filtrowana (HTML wyłączony).
Pliki: includes/tla.php (nowy), includes/rodo.php (nowy), includes/public.php, includes/bootstrap.php, panel/ustawienia.php, panel/rodo.php, panel/bezpieczenstwo.php, public_html/prywatnosc.php, public_html/assets/katalog.css, public_html/assets/tlo-*.svg (10 nowych), CHANGELOG.md.
v2.9 – 2026-10-06
Zmiany (30 nowych kategorii z ikonami):
- Motoryzacja: Szkoły jazdy, Wulkanizacja i opony, Blacharze i lakiernicy, Stacje kontroli pojazdów, Części samochodowe, Komisy samochodowe, Pomoc drogowa, Wypożyczalnie samochodów.
- Dom i remonty: Dekarze, Okna i drzwi, Klimatyzacja i ogrzewanie, Fotowoltaika, Malarze, Ślusarze, Szklarze, Meble i kuchnie na wymiar, Ogrodnicy i pielęgnacja zieleni.
- Finanse i urzędy: Banki i kantory, Ubezpieczenia, Doradcy kredytowi, Notariusze, Geodeci, Tłumacze, Agencje pracy.
- Uroda i zdrowie: Paznokcie i manicure, Barberzy, Salony tatuażu, Psycholodzy i terapeuci, Laboratoria i diagnostyka, Dietetycy.
- Każda kategoria ma własną ikonę (jasny i ciemny wariant), widoczną na kafelkach firm bez zdjęcia.
Baza: zaimportuj v2.9.sql (można wielokrotnie, istniejące kategorie pomija).
Pliki: v2.9.sql, includes/ikony.php, CHANGELOG.md.
v2.8.1 – 2026-10-06
Korekta (panel → Zadania scrapera, statystyki):
- W ramce na górze strony doszły trzy liczniki: Firmy w bazie (razem, z Google, opublikowane), Pliki graficzne (liczba plików ze zdjęciami na dysku bez miniatur oraz ich rozmiar w MB) i Zdjęcia firm w bazie (główne, galeria, do zatwierdzenia).
Pliki: panel/zadania.php, panel/style.css, CHANGELOG.md.
v2.8 – 2026-10-06
Zmiany (panel → Zadania scrapera):
- Nowa sekcja „Komendy konsoli (szybkie uruchomienie scrapera)” na dole strony: cztery komendy z opisem, co robią (zadania z panelu, odświeżenie danych Google, opisy ze stron www, zdjęcia ze stron www) i przyciskiem „Kopiuj” do schowka.
- Ścieżkę scrapera na serwerze można zmienić w polu nad komendami (domyślnie
/home/raciborz-biz/scraper); przeglądarka ją zapamiętuje, a komendy aktualizują się na bieżąco.
Pliki: panel/zadania.php, panel/style.css, CHANGELOG.md.
v2.7.6 – 2026-10-06
Korekta (mapa na wizytówce):
- Okienko z informacjami przy pinezce (nazwa, adres, telefon, www, godziny, „Wyznacz trasę”) nie otwiera się już samo – pojawia się dopiero po kliknięciu pinezki.
Pliki: public_html/wizytowka.php, CHANGELOG.md.
v2.7.5 – 2026-10-06
Korekta (wizytówka):
- Nazwa firmy z kategorią i miastem przeniesiona nad zdjęcie.
- „Udogodnienia” bezpośrednio pod „O firmie” (lewa kolumna), mapa po prawej obok obu sekcji.
Pliki: public_html/wizytowka.php, public_html/assets/katalog.css, CHANGELOG.md.
v2.7.4 – 2026-10-06
Korekta (panel → Zdjęcia, kolorystyka):
- Karty zdjęć mają kolory panelu (wcześniej były białe w trybie ciemnym i tekst był nieczytelny). Zaznaczona karta ma wyraźną ramkę.
- Zakładki Oczekujące / Zatwierdzone / Odrzucone: aktywna w kolorze akcentu, pozostałe neutralne (zamiast zielonej i pomarańczowej).
- Źródło zdjęcia jako kolorowy znacznik: niebieski „ze strony firmy”, zielony „od właściciela”, szary „dodane w panelu”; osobno link „oryginał”, autor i data mniejszą, przygaszoną czcionką.
- Przyciski pomocnicze (np. „Ustaw jako główne”) w kolorze akcentu panelu – lepszy kontrast w trybie ciemnym.
Pliki: panel/zdjecia.php, panel/style.css, CHANGELOG.md.
v2.7.3 – 2026-10-06
Korekta (wizytówka):
- „Godziny otwarcia” (wraz z dodatkowymi, np. kuchnia, dostawa) przeniesione do ramki „Dane kontaktowe”, pod przyciski „Pokaż na mapie” i „Wyznacz trasę”. Pod zdjęciem zostają „O firmie” i mapa obok siebie.
Pliki: public_html/wizytowka.php, public_html/assets/katalog.css, CHANGELOG.md.
v2.7.2 – 2026-10-06
Korekta (układ wizytówki firmy – powrót do starego):
- Na górze strony znów zdjęcie firmy (albo grafika kategorii, gdy firmy nie ma zdjęcia), a nie mapa.
- Mapa wróciła obok godzin otwarcia: po lewej „O firmie” i „Godziny otwarcia”, po prawej mapa (OpenStreetMap z pinezką i okienkiem, jak wcześniej). Na telefonie mapa przechodzi pod godziny.
- Sekcja „Zdjęcia” pokazuje tylko dodatkowe zdjęcia z galerii (zdjęcie z góry strony nie powtarza się), z powiększeniem po kliknięciu.
Pliki: public_html/wizytowka.php, public_html/assets/katalog.css, CHANGELOG.md.
v2.7.1 – 2026-10-06
Korekta (zdjęcia w galerii a kafelki):
- Zatwierdzone zdjęcie z galerii trafiało tylko na wizytówkę, a kafelki na stronie głównej i listach pokazują zdjęcie główne – firma nadal miała ikonę kategorii. Teraz firma bez zdjęcia głównego dostaje automatycznie pierwsze zatwierdzone zdjęcie jako główne (po zatwierdzeniu w panelu → Zdjęcia oraz po dodaniu zdjęć w edycji firmy). Zdjęcie przechodzi wtedy z galerii do zdjęcia głównego, więc nie powtarza się na wizytówce.
- Panel → Zdjęcia: przycisk „Uzupełnij brakujące zdjęcia główne” – jednorazowo naprawia firmy, których zdjęcia zatwierdzono wcześniej.
Pliki: includes/upload.php, panel/zdjecia.php, panel/firma.php, CHANGELOG.md.
v2.7 – 2026-10-06
Zmiany (zdjęcia ze stron www firm):
- Scraper: nowy tryb
google_places.py --zdjecia [--limit 50] (nie wymaga klucza Google; wymaga biblioteki Pillow). Dla firm bez żadnego zdjęcia szuka na ich stronie www obrazów: og:image, twitter:image, JSON-LD, duże zdjęcia z treści (z pominięciem menu i stopki). Odrzuca logo, ikony, banery, SVG/GIF, obrazy mniejsze niż 600×350 px, jednolite tła i duplikaty tego samego zdjęcia. Bierze do 3 sztuk na firmę, robi wersję 1200 px i miniaturę 480 px. - Moderacja: pobrane zdjęcia trafiają do kolejki w panelu → Zdjęcia (status „oczekuje”, oznaczenie „ze strony firmy” i link do oryginału). Nic nie pojawia się na stronie bez zatwierdzenia.
- Wizytówka: pod zdjęciami pochodzącymi ze strony firmy podpis „Zdjęcia ze strony firmy: domena” z linkiem (nofollow).
- Szanuje robots.txt (strony i obrazów), przedstawia się własnym User-Agentem, 1 s przerwy, limit 6 MB na obraz. Ponawia błędy po 7 dniach, resztę po 90.
- Zdjęć z Google Maps nie pobieramy: regulamin Places API zabrania ich przechowywania.
Baza: zaimportuj v2.7.sql.
Serwer: ./venv/bin/pip install -r requirements.txt (doszedł Pillow); w config.json dodaj "uploads_dir": "/home/raciborz-biz/public_html/uploads" (sprawdź ścieżkę).
Cron (opcjonalnie): 45 3 * * * flock -n /tmp/katalog-zdjecia.lock /home/raciborz-biz/scraper/venv/bin/python /home/raciborz-biz/scraper/google_places.py --zdjecia --limit 50 >> /home/raciborz-biz/scraper/zdjecia.log 2>&1
Pliki: v2.7.sql, scraper/google_places.py, scraper/requirements.txt, scraper/config.example.json, includes/upload.php, public_html/wizytowka.php, panel/zdjecia.php, CHANGELOG.md.
v2.6 – 2026-10-06
Zmiany (nowe kategorie, czytelniejsze zadania scrapera):
- 19 nowych kategorii z własnymi ikonami: Kina, Biblioteki, Domy kultury, Teatry, Pływalnie i baseny, Muzea i galerie, Apteki, Przedszkola i żłobki, Szkoły i uczelnie, Stacje paliw, Pizzerie, Piekarnie, Sklepy zoologiczne, Optycy, Fizjoterapeuci i rehabilitacja, Pralnie i pralnie chemiczne, Sklepy odzieżowe, Spa i masaż, Księgarnie.
- Panel → Zadania scrapera: kolumna „Limit” przemianowana na „Maks. z Google” (z opisem w dymku), dodana kolumna „Znaleziono” (ile firm zwrócił Google) obok „Nowych” (ile z nich dodano do katalogu). Formularz: „Maks. wyników z Google (1–60, strony po 20)”.
- Scraper: zapisuje liczbę wyników z Google; działa też bez nowej kolumny (do czasu importu SQL).
Baza: zaimportuj v2.6.sql (kolumna scrape_jobs.wynikow + nowe kategorie).
Pliki: v2.6.sql, includes/ikony.php, panel/zadania.php, scraper/google_places.py, CHANGELOG.md.
v2.5.2 – 2026-10-05
Korekta (wizytówka):
- Obok linku „zobacz opinie” przycisk „podgląd karty Google”: otwiera okno z osadzoną kartą firmy z Google Maps (ocena, liczba opinii, przycisk opinii). Iframe ładuje się dopiero po kliknięciu, więc nie spowalnia strony ani nie wysyła nic do Google bez zgody. Bez klucza API; treść opinii wyświetla Google, nie katalog.
Pliki: public_html/wizytowka.php, public_html/assets/katalog.css, CHANGELOG.md.
v2.5.1 – 2026-10-05
Korekta (układ wizytówki firmy):
- Pod oceną sekcje są teraz w dwóch kolumnach: „O firmie” | „Godziny otwarcia”. Udogodnienia i zdjęcia zajmują całą szerokość. Gdy jest tylko jedna sekcja, rozciąga się na całość. Na telefonie sekcje układają się jedna pod drugą.
Pliki: public_html/wizytowka.php, public_html/assets/katalog.css, CHANGELOG.md.
v2.5 – 2026-10-05
Zmiany (zdjęcia od właścicieli firm i galeria):
- Formularz publiczny
/dodaj-zdjecie?firma=slug („Dodaj zdjęcia firmy” na wizytówce): do 5 zdjęć naraz (JPG/PNG/WebP, do 5 MB), imię/nazwa firmy, e-mail (niepubliczny), oświadczenie o prawach do zdjęć, pole-pułapka dla botów, limity zgłoszeń z jednego IP. Zdjęcia trafiają do kolejki – nic nie pojawia się bez zatwierdzenia. Strona z noindex, wyłączona w robots.txt. - Panel → Zdjęcia (admin i moderator, plakietka z liczbą oczekujących w menu): podgląd miniatur, zatwierdzanie, odrzucanie (kasuje plik), usuwanie i „Ustaw jako główne” (kopiuje do zdjęcia głównego firmy). Akcje zbiorcze.
- Panel → edycja firmy → Galeria zdjęć: dodawanie wielu zdjęć naraz, usuwanie, ustawianie głównego. Usunięcie firmy czyści jej galerię.
- Wizytówka: jedno zdjęcie = duży obraz, więcej = galeria z powiększeniem (lightbox). Pierwsze zdjęcie z galerii służy jako obraz główny, gdy firma nie ma własnego. Zdjęcia w danych strukturalnych (
image, do 10) i w mapie zdjęć sitemap.xml (do 20 na firmę). - Zatwierdzenie zdjęcia odświeża nagłówek Last-Modified wizytówki.
Baza: zaimportuj v2.5.sql (tabela zdjecia_firm). Katalog uploads/galeria tworzy się sam.
Uwaga: przy wysyłaniu kilku zdjęć naraz liczy się limit PHP post_max_size / upload_max_filesize (domyślnie często 8 MB).
.htaccess: wklej zaktualizowany blok z htaccess.txt (reguła dodaj-zdjecie).
Pliki: v2.5.sql, includes/upload.php, includes/bootstrap.php, public_html/dodaj-zdjecie.php, public_html/wizytowka.php, public_html/sitemap.php, public_html/robots.php, public_html/htaccess.txt, public_html/assets/katalog.css, panel/zdjecia.php, panel/firma.php, panel/style.css, CHANGELOG.md.
v2.4 – 2026-10-05
Zmiany (opisy ze stron www firm):
- Scraper: nowy tryb
google_places.py --opisy [--limit 100] (nie wymaga klucza Google). Dla firm z adresem www pobiera stronę i wyciąga opis: meta description, og:description, JSON-LD albo pierwszy sensowny akapit (max 400 znaków, ucięte na końcu zdania). - Grzeczny robot: szanuje
robots.txt, przedstawia się własnym User-Agentem, 1 s przerwy między firmami, limit 1,5 MB na stronę, pomija profile społecznościowe i katalogi (Facebook, Instagram, Booksy itd.). Odrzuca śmieci: komunikaty cookies, domyślne opisy WordPressa, „strona w budowie”, listy słów kluczowych, same wersaliki, menu. Ponawia błędy po 7 dniach, resztę po 90. - Strona firmy: opis ze strony www pojawia się tylko, gdy firma nie ma własnego opisu ani opisu z Google; zawsze z podpisem „Opis ze strony firmy: domena” i linkiem (nofollow) do źródła. Trafia też do meta description i danych strukturalnych.
- Panel → edycja firmy: sekcja „Opis ze strony www” (status, źródło, data) z przyciskami: Użyj jako własny opis, Ukryj/Pokaż na stronie, Usuń.
- Panel → Ustawienia → SEO → Kontrola: liczba firm z opisem ze strony www i firm jeszcze nie sprawdzonych; „Bez opisu” uwzględnia teraz także ten opis.
Baza: zaimportuj v2.4.sql (kolumny opis_www, opis_www_url, opis_www_status, opis_www_pobrano, opis_www_ukryty).
Cron (dopisz): 30 3 * * * flock -n /tmp/katalog-opisy.lock <ścieżka do scrapera>/venv/bin/python <ścieżka do scrapera>/google_places.py --opisy --limit 150
Pliki: v2.4.sql, scraper/google_places.py, public_html/wizytowka.php, panel/firma.php, panel/ustawienia.php, CHANGELOG.md.
v2.3 – 2026-10-05
Zmiany (konta i role):
- Ustawienia → Moje konto (akordeon, dla każdego zalogowanego): imię i nazwisko, adres e-mail (zmiana wymaga hasła), zmiana hasła, podgląd roli, daty utworzenia i ostatniego logowania (z adresem IP), stan 2FA z linkiem do strony Bezpieczeństwo.
- Ustawienia → Użytkownicy i role (akordeon, tylko administrator): dodawanie kont (hasło własne albo losowe, pokazane jeden raz), zmiana roli, e-mail i imienia, włączanie/wyłączanie konta, nowe losowe hasło, wyłączenie 2FA (np. po zgubieniu telefonu), usuwanie kont oraz dziennik zdarzeń (logowania, zmiany haseł i kont).
- Role: Administrator (wszystko), Moderator (firmy, kategorie i miasta, zgłoszenia RODO), Użytkownik (tylko własne konto – rola na przyszłość). Rola i aktywność konta są sprawdzane przy każdym żądaniu, więc zmiana działa od razu, także dla osoby zalogowanej. Menu panelu pokazuje tylko to, do czego rola ma dostęp; reszta zwraca 403.
- Zabezpieczenia: nie można wyłączyć ani usunąć własnego konta ani ostatniego aktywnego administratora; wyłączone konto nie zaloguje się (komunikat taki jak przy błędnym haśle).
- Moderator i użytkownik widzą w Ustawieniach tylko „Moje konto”.
Baza: zaimportuj v2.3.sql w phpMyAdmin (rola jako tekst, kolumny: imie, email, aktywny, ostatnie_ip, utworzyl_id, tabela dziennik_zdarzen; dawna rola „redaktor” staje się „moderator”). Bez importu panel działa jak dotąd, a sekcja kont pokazuje przypomnienie.
Pliki: v2.3.sql, includes/auth.php, includes/bootstrap.php, panel/login.php, panel/ustawienia.php, panel/index.php, panel/firma.php, panel/slowniki.php, panel/rodo.php, panel/zadania.php, panel/style.css, CHANGELOG.md.
v2.2 – 2026-10-05
Zmiany (SEO):
- Nagłówek strony: robots z
max-image-preview:large, domyślny obrazek do udostępniania (og:image 1200×630 + twitter:image), prawdziwy favicon (ico, svg, apple-touch-icon), kolor paska dla trybu jasnego i ciemnego, hreflang, rel prev/next na listach, kody weryfikacyjne Google/Bing, preconnect na stronach z mapą. Dopisek z nazwą serwisu w tytule znika, gdy tytuł byłby za długi. - Dane strukturalne: strona główna – Organization + WebSite (z SearchAction); listy – CollectionPage; firmy – typ schema.org dobrany do kategorii (Restaurant, AutoRepair, Dentist itd.), godziny otwarcia (openingHoursSpecification), priceRange, hasMap, opis z Google; okruszki z miastem. Celowo bez aggregateRating (oceny pochodzą z Google).
- Tytuły i opisy: listy mają tytuł z liczbą firm, opis z przykładowymi nazwami i krótki wstęp. Listy „kategoria + miasto” z jedną firmą mają noindex i nie ma ich w sitemap. Firmy zamknięte na stałe: noindex i poza sitemap.
- Sitemap: lastmod także dla list, zdjęcia firm (image sitemap), bez stron cienkich. robots.txt: blokada
?q= i /includes/. Strona firmy odpowiada 304 (Last-Modified / If-Modified-Since). - Linkowanie wewnętrzne: w stopce popularne kategorie i miasta (można wyłączyć), opisy zdjęć (alt) na kartach, link „Zgłoś” z nofollow.
- .htaccess: przekierowania 301 na https + www, /index.php → /, usuwanie ukośnika na końcu, kompresja, cache plików statycznych, noindex dla CHANGELOG.md, blokada /includes i /scraper.
- Panel → Ustawienia → SEO (akordeon): tytuł i opis strony głównej, tekst SEO, kody Google/Bing, obrazek do udostępniania (kadrowany do 1200×630), kontrola jakości danych i lista plików/adresów.
Pliki: includes/public.php, index.php, lista.php, wizytowka.php, sitemap.php, robots.php, htaccess.txt, panel/ustawienia.php, assets/katalog.css, nowe: favicon.ico, assets/favicon.svg, assets/apple-touch-icon.png, assets/og-default.png, CHANGELOG.md.
v2.1.1 – 2026-10-05
Korekta:
- Zadania scrapera: formularze „Nowe zadanie” i „Edycja zadania” rozciągnięte na całą szerokość (równo z tabelą „Ostatnie zadania”), pola ułożone w jednym rzędzie i wyrównane do dołu. Plik:
panel/style.css, panel/zadania.php.
v2.1 – 2026-10-05
Zmiany:
- Zadania scrapera: u góry pasek informacji – ostatnia synchronizacja, ostatnie zadanie (wynik), kolejka, ostatnie odświeżenie danych Google oraz ostrzeżenie, gdy zadania czekają ponad 30 minut (z linkiem do Ustawienia → Google API).
- Formularze „Nowe zadanie” i „Edycja zadania”: kategorie, dla których zadanie było już wykonane, są oznaczone ✓, a po wyborze kategorii i miasta pojawia się podpowiedź: czy już pobrano (kiedy, ile znaleziono), czy zadanie czeka w kolejce lub zakończyło się błędem oraz ile firm jest już w katalogu.
Pliki: panel/zadania.php, panel/style.css, CHANGELOG.md.
v2.0.1 – 2026-10-05
Korekta:
- Formularz edycji zadania scrapera: pole wyboru „Wykonaj to zadanie ponownie…” jest wyrównane z tekstem (wcześniej rozciągało się na całą szerokość). Plik:
panel/style.css.
v2.0 – 2026-10-05
Zmiany:
- Panel → Zadania scrapera → „Ostatnie zadania”: przycisk „Edytuj” przy każdym zadaniu (poza wykonywanym w tej chwili). Można zmienić frazę, kategorię, miasto i limit wyników. Dla zadań zakończonych lub z błędem jest opcja „Wykonaj ponownie po zapisaniu”.
- Zmiana nie dotyka zadania, które scraper właśnie wykonuje (zabezpieczenie przed konfliktem).
Pliki: panel/zadania.php (zastępuje wersję z etapu 2), panel/style.css, CHANGELOG.md.
v1.9 – 2026-10-05
Zmiany:
- Panel → Firmy: filtr według miasta (obok istniejących filtrów statusu i kategorii). Listy rozwijane filtrują od razu po wyborze, jest też link „Wyczyść filtry”. Filtry łączą się ze sobą i z sortowaniem, paginacją oraz akcjami masowymi.
Pliki: panel/index.php, panel/style.css, CHANGELOG.md.
v1.8 – 2026-10-05
Zmiany:
- Panel → Ustawienia → akordeon „Poczta – serwer SMTP”: serwer, port, szyfrowanie (STARTTLS / SSL / brak), login i hasło (hasło nie jest nigdy wyświetlane; puste pole = bez zmiany), adres i nazwa nadawcy, adres do powiadomień administratora, opcja weryfikacji certyfikatu.
- Wiadomość testowa z czytelnym komunikatem błędu (połączenie, certyfikat, logowanie, odrzucony nadawca/odbiorca) i zapisem ostatniego wyniku.
- Nowa biblioteka
includes/poczta.php (własny klient SMTP bez dodatkowych pakietów) – gotowa do użycia w kolejnych powiadomieniach.
Pliki: panel/ustawienia.php, includes/poczta.php (nowy), CHANGELOG.md (korzysta z tabeli ustawienia z v1.6.sql).
v1.7 – 2026-10-05
Zmiany:
- Panel → Firmy: sortowanie po kliknięciu w nagłówek kolumny – nazwa, kategoria, miasto, status, zmieniono (ponowne kliknięcie odwraca kierunek, strzałka ▲/▼ pokazuje aktywną kolumnę). Status sortuje się według kolejności pracy: nowa, zatwierdzona, ukryta, do usunięcia. Sortowanie zostaje po filtrowaniu, zmianie strony i akcjach masowych. Domyślnie: ostatnio zmienione na górze.
Pliki: panel/index.php, panel/style.css, CHANGELOG.md.
v1.6 – 2026-10-05
Zmiany:
- Panel → Ustawienia → akordeon „Google API (Places)”: wpisanie/zmiana klucza API (w panelu widać tylko jego fragment), przycisk „Testuj połączenie” (jedno najtańsze zapytanie) z czytelnym komunikatem błędu (zły klucz, wyłączone API, brak rozliczeń/limit), usuwanie klucza.
- Ten sam akordeon pokazuje stan synchronizacji: ostatnia synchronizacja, ostatnie zadanie scrapera (wynik, błąd), ostatnie odświeżenie danych Google, liczba firm z danymi Google, kolejka zadań, błędy z 24 godzin oraz ostrzeżenie, gdy zadania czekają ponad 30 minut (cron nie działa).
- Scraper: klucz zapisany w panelu ma pierwszeństwo przed
config.json (bez klucza w panelu działa jak dotąd).
Pliki: v1.6.sql (baza – nowa tabela ustawienia), panel/ustawienia.php, panel/style.css, includes/google.php, scraper/google_places.py, CHANGELOG.md.
v1.5 – 2026-10-05
Zmiany:
- Panel → Ustawienia: każda sekcja (zdjęcie strony głównej, tło strony, linki w stopce) jest w zwijanym akordeonie; po zapisaniu zmian otwiera się ta sekcja, w której coś zrobiono. Od teraz nowe sekcje ustawień też trafiają do akordeonów.
- Poprawione ustawienie przycisków opcji (radio) w sekcji „Tło strony” – kropki stoją teraz obok opisów.
Pliki: panel/ustawienia.php, panel/style.css, CHANGELOG.md.
v1.4.1 – 2026-10-05
Korekta:
- „Losowe wpisy” pokazują tyle samo firm co „Najnowsze wpisy” (12).
- Kafelki kategorii na stronie głównej mają jedną, stałą wysokość (długie nazwy skracane do dwóch linii).
Pliki: index.php, assets/katalog.css, CHANGELOG.md.
v1.4 – 2026-10-05
Zmiany:
- Strona główna: nowa sekcja „Losowe wpisy” pod „Najnowszymi wpisami” (8 losowych firm, bez tych, które są już w najnowszych; losowanie przy każdym wejściu).
- Stopka: tabela linków dodawanych w panelu (Ustawienia → „Linki w stopce”): grupy w kolumnach, edycja, zmiana kolejności, usuwanie. Dozwolone adresy: https://, http:// i wewnętrzne (zaczynające się od /).
- Stopka: linia „© … by macabrismix · wersja” przeniesiona pod „Polityka prywatności · Zgłoś usunięcie lub korektę danych”.
Pliki: index.php, includes/public.php, assets/katalog.css, panel/ustawienia.php, CHANGELOG.md.
v1.3 – 2026-10-05
Zmiany:
- Tło strony publicznej: domyślnie animowane tło „kwantowe” (cząstki połączone liniami, orbitale atomu, fala prawdopodobieństwa), w osobnych wariantach jasnym i ciemnym (zależnie od przełącznika motywu). Animacja jest bardzo wolna i wyłącza się przy ustawieniu systemu „ogranicz ruch”.
- Panel → Ustawienia → „Tło strony”: wybór tła (kwantowe / własne zdjęcie / bez tła), wgrywanie własnego zdjęcia (zapisywane jako JPG, maks. 2560 px) i jego usuwanie. Wybór zapisuje się w
assets/ustawienia.json.
Pliki: assets/tlo-kwantowe-jasne.svg (nowy), assets/tlo-kwantowe-ciemne.svg (nowy), assets/katalog.css, includes/public.php, panel/ustawienia.php, CHANGELOG.md.
v1.2 – 2026-10-05
Zmiany:
- Panel: nowa strona „Ustawienia” (w menu). Na początek: wgrywanie zdjęcia strony głównej (podgląd aktualnego, podmiana, opcjonalny podpis/autor, powrót do grafiki domyślnej). Zdjęcie jest dekodowane i zapisywane od nowa jako JPG (maks. 1920 px).
Pliki: panel/ustawienia.php (nowy), includes/bootstrap.php, CHANGELOG.md.
v1.1 – 2026-10-05
Zmiany:
- Przełącznik trybu jasny / ciemny (przycisk ☾ / ☀ w menu strony oraz w panelu i na stronie logowania). Domyślnie obowiązuje ustawienie systemu, kliknięcie zapamiętuje wybór w przeglądarce.
- Ikony kategorii zmieniają wariant razem z przełącznikiem.
Pliki: includes/bootstrap.php, includes/public.php, includes/ikony.php, ikona.php, assets/katalog.css, panel/style.css, CHANGELOG.md.
v1.0.1 – 2026-10-05
Korekta:
- Ikony kategorii pokazują się też w sekcji „Najnowsze wpisy” na stronie głównej (brakowało kategorii w zapytaniu). Plik:
index.php.
v1.0 – 2026-10-05
Zmiany:
- Domyślne ikony kategorii: 33 ilustracje (restauracje, kawiarnie, fryzjerzy, warsztaty, hydraulicy, elektrycy, księgowość, kancelarie, lekarze, dentyści, weterynarze, sklepy, hotele, szkoły, siłownie, transport, IT, nieruchomości, kwiaciarnie, zakłady pogrzebowe, fotografowie, sprzątanie, stolarze, krawcy, tapicerzy, myjnie, auto detailing, bary, puby, kluby, dyskoteki). Generowane automatycznie (
/ikona.php?k=slug), mają jasny i ciemny wariant, nie wymagają wgrywania plików. - Ikona pokazuje się na kartach i na stronie firmy, gdy firma nie ma własnego zdjęcia i kategoria nie ma wgranego zdjęcia domyślnego (wgrane zdjęcie kategorii nadal ma pierwszeństwo).
- Panel „Kategorie i miasta”: podgląd ikony domyślnej w kolumnie „Zdjęcie”.
Pliki: includes/ikony.php (nowy), ikona.php (nowy), includes/public.php, wizytowka.php, panel/slowniki.php, CHANGELOG.md.
v0.9 – 2026-10-05
Zmiany:
- Scraper pobiera dodatkowe dane z Google: status działalności (czynna, zamknięta tymczasowo, zamknięta na stałe), średnia ocena i liczba opinii, poziom cen, krótki opis Google, dodatkowe godziny (np. kuchnia, dostawa) oraz udogodnienia (piwo, wino, ogródek, muzyka na żywo, dostawa, na wynos, płatności kartą, parking, dostępność dla wózków i inne).
- Firmy zamknięte na stałe są automatycznie ukrywane w katalogu (można je przywrócić ręcznie w panelu). Dla firm zamkniętych tymczasowo strona pokazuje odpowiednią plakietkę.
- Nowy tryb scrapera
--odswiez: uzupełnia i odświeża dane Google dla firm już w bazie (jedno zapytanie na firmę). - Strona firmy: ocena z gwiazdką i linkiem do opinii w Google Maps, poziom cen, opis Google (gdy firma nie ma własnego opisu, z podaniem źródła), sekcja „Udogodnienia” pogrupowana tematycznie, dodatkowe godziny. Karty firm na listach pokazują ocenę.
- Panel: blok „Dane z Google” (tylko do odczytu) przy edycji firmy oraz znaczniki zamknięcia i oceny na liście firm.
- Ocena z Google może być wyłączona opcją
'oceny_google' => false w sekcji site w config.php. - Zabezpieczenie scrapera: jeśli Google odrzuci dodatkowe pola, scraper wraca do pól podstawowych, a zadanie się nie wysypuje.
Pliki: v0.9.sql (baza), scraper/google_places.py, includes/google.php (nowy), includes/public.php, wizytowka.php, assets/katalog.css, panel/firma.php, panel/index.php, panel/style.css, CHANGELOG.md.
v0.8 – 2026-10-04
Zmiany:
- Strona firmy: interaktywna mapa (Leaflet + OpenStreetMap) w miejscu dotychczasowej grafiki nad nazwą. Mapę można przybliżać i przesuwać (przewijanie kółkiem działa dopiero po kliknięciu w mapę, żeby nie blokować przewijania strony).
- Pinezka w kolorze marki z okienkiem informacji (otwartym od razu): nazwa, kategoria, adres, telefon (link do połączenia), strona www, godziny otwarcia na dziś i link „Wyznacz trasę”.
- Firmy bez współrzędnych: statyczna mapa po adresie (bez okienka na pinezce); bez adresu: grafika jak wcześniej.
- Własne zdjęcie firmy (jeśli jest) pokazuje się niżej na stronie, w sekcji „Zdjęcie”. Usunięta osobna mapa obok godzin otwarcia.
Pliki: wizytowka.php, assets/katalog.css, CHANGELOG.md.
v0.7.1 – 2026-10-04
Korekta:
- Panel: wersja w adresie arkusza stylów (
style.css?v=…), dzięki czemu przeglądarka zawsze pobiera aktualny wygląd (poprzednio mogła pokazywać starą szerokość i przyciski bez kolorów). - Lista firm: przycisk „Usuń” (trwałe usunięcie zaznaczonych firm razem ze zdjęciami, z ostrzeżeniem i potwierdzeniem), odsunięty od pozostałych przycisków.
- Lista firm: większe odstępy między przyciskami zbiorczymi, telefony i daty nie łamią się na dwie linie.
Pliki: panel/index.php, panel/style.css, includes/bootstrap.php, CHANGELOG.md.
v0.7 – 2026-10-04
Zmiany:
- Panel: ekran na pełną szerokość okna (formularze edycji mają ograniczoną szerokość, żeby pola nie rozciągały się bez sensu).
- Lista firm: pole wyboru przy każdym wpisie, „zaznacz wszystkie” w nagłówku (na bieżącej stronie), licznik zaznaczonych i podświetlenie wybranych wierszy.
- Lista firm: przyciski zbiorcze „Zatwierdź”, „Ukryj”, „Do usunięcia” oraz „Przywróć jako nowa” (zmieniają status wszystkich zaznaczonych firm naraz; „Do usunięcia” pyta o potwierdzenie).
Pliki: panel/index.php, panel/style.css, CHANGELOG.md.
v0.6.1 – 2026-10-04
Korekta:
- Nowe kategorie: Stolarze, Krawcy i szwaczki, Tapicerzy, Myjnie samochodowe, Auto detailing, Bary, Kluby, Dyskoteki, Puby.
Pliki: v0.6.1.sql (baza), CHANGELOG.md.
v0.6 – 2026-10-04
Zmiany:
- Menu publiczne: link „Logowanie” prowadzący do panelu (oznaczony
nofollow, a /panel/ pozostaje wyłączony w robots.txt). - Logowanie: limit nieudanych prób osobno na adres IP (domyślnie 5 w 15 min) i na konto (10 w 15 min, z dowolnych adresów), z opóźnieniem po każdej błędnej próbie. Hasło jest sprawdzane także dla nieistniejącego loginu, więc czas odpowiedzi nie zdradza, czy konto istnieje.
- Weryfikacja dwuetapowa (2FA, kody TOTP z aplikacji typu Google Authenticator, Aegis, 2FAS), 8 jednorazowych kodów zapasowych, ochrona przed ponownym użyciem tego samego kodu.
- Nowa strona panelu „Bezpieczeństwo”: włączanie i wyłączanie 2FA, nowe kody zapasowe, zmiana hasła (min. 12 znaków), lista ostatnich nieudanych prób logowania.
- Sesja: wygasa po 30 min bezczynności lub po 8 godzinach, jest unieważniana przy zmianie przeglądarki; cookie z
SameSite=Strict; nagłówki X-Frame-Options, no-store, noindex na stronach panelu. - Opcje w
config.php (sekcja app, wszystkie opcjonalne): max_prob_na_konto, sesja_bezczynnosc_min, sesja_max_godzin, ip_naglowek, panel_ip_dozwolone.
Pliki: v0.6.sql (baza), includes/auth.php (nowy), includes/bootstrap.php, includes/public.php, panel/login.php, panel/bezpieczenstwo.php (nowy), CHANGELOG.md.
v0.5 – 2026-10-04
Zmiany:
- Strona główna: gdy nie ma własnego zdjęcia (
assets/hero.jpg), pod półprzezroczystym panelem pojawia się wbudowana ilustracja stylizowanej panoramy miasta nad rzeką (assets/hero-default.svg, ma wariant jasny i ciemny). Własne zdjęcie ma pierwszeństwo. - Kafelki kategorii: kolorowy pasek z lewej, plakietka z pierwszą literą nazwy, delikatny akcent w rogu, strzałka i uniesienie po najechaniu. Kolory kafelków zmieniają się w cyklu (teal, bursztyn, koral, fiolet, zieleń, błękit).
Pliki: index.php, assets/katalog.css, assets/hero-default.svg, CHANGELOG.md.
v0.4 – 2026-10-04
Zmiany:
- Strona główna: zdjęcie Raciborza w tle sekcji z wyszukiwarką. Panel z tytułem i wyszukiwarką jest półprzezroczysty (rozmyte tło), a zdjęcie widać wokół i pod nim.
- Zdjęcie wgrywasz jako
assets/hero.jpg (lub .webp, .png). Bez pliku strona wygląda jak wcześniej. Opcjonalny podpis/autor w assets/hero-podpis.txt (pokazuje się w rogu zdjęcia).
Pliki: index.php, assets/katalog.css, CHANGELOG.md.
v0.3 – 2026-10-04
Zmiany:
- Numer wersji (np. v0.3) obok logo i nazwy strony w nagłówku oraz w stopce. Kliknięcie otwiera okno z listą zmian (na każdej podstronie). Treść okna jest czytana na żywo z
CHANGELOG.md, a numer wersji bierze się z najnowszego wpisu. - Stopka: „© 2026 Racibórz Biz – katalog firm by macabrismix”.
Pliki: includes/public.php, assets/katalog.css, CHANGELOG.md.
v0.2 – 2026-10-04
Zmiany:
- Układ strony na pełną szerokość ekranu (usunięty limit 1120 px, marginesy skalują się z szerokością okna).
- Strona firmy: adres strony www wyświetlany bezpośrednio pod telefonem w danych kontaktowych.
- Strona firmy: mapa osadzona obok godzin otwarcia (OpenStreetMap, gdy firma ma współrzędne, w innym razie Google Maps po adresie). Na telefonie mapa przechodzi pod godziny.
- Kolumna danych kontaktowych nieco szersza (380 px).
Pliki: wizytowka.php, assets/katalog.css, CHANGELOG.md.
v0.1 – 2026-10-04
Wersja startowa.
- Panel administracyjny (logowanie, firmy, kategorie i miasta, zgłoszenia RODO).
- Scraper Google Places z kolejką zadań.
- Publiczny katalog: strona główna, listy kategorii i miast, wyszukiwarka, wizytówki firm, dane strukturalne SEO, sitemap i robots.
- Zdjęcia firm z możliwością podmiany i zdjęcia domyślne kategorii.
- Formularz zgłoszeń RODO i szablon polityki prywatności.