Katalog PDF PrestaShop — Kompletny przewodnik
Instalacja, konfiguracja i użytkowanie modułu Katalog PDF: osadzanie na stronach przez shortcode, strona-witryna, profesjonalna przeglądarka (podwójna strona, miniatury, pełny ekran) i SEO. PrestaShop 8 i 9.
Prezentacja
DFPDFCatalog publikuje Twoje katalogi PDF bezpośrednio w sklepie PrestaShop 8 lub 9. Moduł działa na dwa uzupełniające się sposoby. Najpierw tworzy własne strony we front-office: stronę-witrynę z listą wszystkich katalogów w formie klikalnych banerów (/catalogues-pdf) oraz stronę przeglądarki dla każdego katalogu (/catalogue-pdf/{id}-{slug}). Pozwala też osadzić dowolny katalog na dowolnej stronie sklepu przez shortcode, widget Smarty lub iframe.
W obu przypadkach PDF wyświetla się w profesjonalnym wbudowanym czytniku: tryb podwójnej strony jak w magazynie, klikalne miniatury, pełny ekran, zoom, klikalne linki i zaznaczalny tekst.
Instalacja
- Pobierz plik ZIP modułu z Twojego konta DataFirefly.
- W back-office PrestaShop przejdź do Moduły → Menedżer modułów → Zainstaluj moduł.
- Wybierz plik
dfpdfcatalog.zipi zatwierdź. - Moduł instaluje się automatycznie: tabele bazy danych, zakładka administracyjna i trasy front są tworzone bez ręcznej konfiguracji.
Po instalacji w menu Katalog back-office pojawia się nowa zakładka Katalogi PDF.
To samo archiwum instaluje się na PrestaShop 8.0 do 8.2 i na PrestaShop 9.x. Nie trzeba pobierać osobnej wersji dla danej generacji.
Aktualizacja z wcześniejszej wersji
- Wgraj nową wersję przez Moduły → Menedżer modułów → Zainstaluj moduł (lub podmień katalog
/modules/dfpdfcatalog/przez FTP). - Wyczyść cache PrestaShop: Zaawansowane → Wydajność → Wyczyść cache.
Aktualizacja zachowuje istniejące katalogi: tabele bazy danych i wgrane pliki (banery i PDF-y) pozostają nietknięte. Przy przejściu na 1.2.0 moduł automatycznie rejestruje hooki potrzebne do osadzania na stronach.
Dodawanie katalogu
- Przejdź do Katalog → Katalogi PDF i kliknij Dodaj katalog.
- Uzupełnij tytuł (tłumaczony per język) — służy też do generowania slugu URL i meta title strony.
- Uzupełnij opis (tłumaczony) — wyświetlany na stronie przeglądarki i używany jako meta description.
- Wgraj obraz baneru — pojawia się w siatce strony-witryny i pełni rolę plakatu otwierającego, gdy katalog jest osadzony na stronie.
- Wgraj plik PDF.
- Ustaw pozycję (kolejność wyświetlania w siatce) i status aktywny/nieaktywny.
- W trybie multistore zaznacz sklepy, w których katalog ma się pojawić.
- Zapisz: katalog jest natychmiast widoczny na
/catalogues-pdf.
Po zapisaniu katalogu otwórz go ponownie: formularz wyświetla blok Kody osadzania z czterema gotowymi do skopiowania kodami do wyświetlania go w innych miejscach sklepu. Kliknij pole, aby je zaznaczyć.
Osadzanie katalogu na stronie
Strona-witryna nie pasuje do wszystkich zastosowań. Dla branżowej landing page, strony przetargowej czy kategorii, która ma prezentować własny katalog, możesz umieścić przeglądarkę dokładnie tam, gdzie chcesz.
Zalecana metoda: shortcode
Wklej ten znacznik w treści strony, dokładnie w miejscu, gdzie katalog ma się pojawić:
[dfpdfcatalog id="3"]
Zastąp 3 identyfikatorem katalogu, widocznym w kolumnie ID listy Katalog → Katalogi PDF. Shortcode działa w:
- treści stron CMS;
- opisach kategorii;
- opisach produktów.
W tych trzech kontekstach moduł podmienia znacznik po stronie serwera, przed wysłaniem strony. Dla wszystkich pozostałych kontekstów (bloki motywu, moduły zewnętrzne, page buildery) fallback JavaScript wykrywa znacznik na stronie i montuje przeglądarkę w tym samym miejscu. Nie musisz nic konfigurować: zachowanie dla odwiedzającego jest identyczne.
Opcje shortcode’u
id— identyfikator katalogu. Wymagany.mode—click(domyślnie) wyświetla najpierw plakat z banerem katalogu i ładuje przeglądarkę dopiero po kliknięciu.inlinewyświetla przeglądarkę od razu, ładowaną przy zbliżaniu się do viewportu.height— wysokość przeglądarki w pikselach. Domyślnie przeglądarka zajmuje 80% wysokości ekranu.title— etykieta wyświetlana na plakacie otwierającym. Domyślnie tytuł katalogu.
[dfpdfcatalog id="3" mode="inline" height="800"]
Widget Smarty w szablonie motywu
Aby osadzić katalog bezpośrednio w pliku .tpl motywu:
{widget name='dfpdfcatalog' id_catalog=3 mode='inline'}
Ta składnia działa tylko w szablonach. Treść stron CMS nie jest interpretowana przez Smarty — w tym przypadku użyj shortcode’u.
Iframe, także poza PrestaShop
Moduł udostępnia stronę osadzania bez nagłówka i stopki sklepu, do umieszczenia w iframe:
<iframe src="/catalogue-pdf-embed/3" width="100%" height="800" style="border:0;" loading="lazy"></iframe>
To metoda do wyświetlania katalogu na zewnętrznej stronie. Te strony osadzania mają noindex i nigdy nie konkurują z Twoimi właściwymi stronami w wynikach wyszukiwania. Pamiętaj, że wysokość iframe jest stała: we własnym sklepie preferuj shortcode, który dostosowuje się do treści.
Wiele katalogów na jednej stronie
Na jednej stronie możesz umieścić dowolną liczbę katalogów. Każde osadzenie tworzy niezależną przeglądarkę z własnymi przyciskami nawigacji, zoomem i trybem wyświetlania. Skróty klawiaturowe działają tylko na przeglądarce pod kursorem, a nie na wszystkich naraz.
Ładowanie jest zoptymalizowane pod ten scenariusz:
- w trybie
clickżaden PDF nie jest pobierany, dopóki odwiedzający nie otworzy katalogu; - w trybie
inlineładowanie uruchamia się przy zbliżaniu do viewportu; - biblioteka renderująca i arkusz stylów są pobierane tylko raz na całą stronę, i tylko jeśli katalog faktycznie na niej występuje.
Strona prezentująca osiem katalogów w trybie click ładuje więc na start tylko osiem obrazów banerów.
Strony front-office
Strona-witryna
Strona /catalogues-pdf wyświetla wszystkie aktywne katalogi bieżącego sklepu w siatce banerów, posortowane według pozycji. Każdy baner prowadzi do przeglądarki katalogu. Strona generuje własny meta title i meta description oraz integruje się z natywnymi okruszkami PrestaShop.
Strona przeglądarki
Każdy katalog ma własną stronę /catalogue-pdf/{id}-{slug}. PDF wyświetla się we wbudowanej przeglądarce, z przyciskiem powrotu do witryny i przyciskiem bezpośredniego pobrania. PDF jest serwowany przez kontroler PHP w trybie inline, co wymusza wyświetlanie w przeglądarce. Obsługiwane są żądania HTTP Range, dzięki czemu duże katalogi ładują się progresywnie, a nie w całości naraz.
Korzystanie z przeglądarki
Przeglądarka opiera się na PDF.js (Mozilla) i oferuje w pasku narzędzi następujące funkcje:
- Miniatury — pokazuje lub ukrywa boczny pasek miniatur stron. Miniatury są klikalne i generują się podczas przewijania (leniwe renderowanie), nawet dla bardzo długich katalogów. Aktywna strona (lub strony) jest podświetlona.
- Podwójna strona — przełącza między widokiem strona po stronie a trybem podwójnej strony jak w magazynie: sama okładka, potem pary 2-3, 4-5 itd. Ten tryb jest domyślnie aktywny na ekranach o szerokości co najmniej 1024 px.
- Nawigacja — przyciski poprzednia/następna, wskaźnik strony (np. „Strona 4-5 / 24” w trybie podwójnym). Strzałki lewo/prawo na klawiaturze także działają.
- Zoom — powiększanie/pomniejszanie co 25% i przycisk automatycznego dopasowania do szerokości.
- Pełny ekran — przełącza przeglądarkę w tryb pełnoekranowy przez natywne API przeglądarki. Na iOS Safari automatycznie używany jest symulowany tryb pełnoekranowy. Klawisz Escape wychodzi z trybu.
Hiperłącza zawarte w PDF pozostają klikalne: linki zewnętrzne otwierają się w nowej karcie, a linki wewnętrzne (spis treści, odsyłacze) nawigują bezpośrednio w przeglądarce. Jeśli PDF zawiera warstwę tekstową, tekst można zaznaczać i kopiować, a wyszukiwanie Ctrl+F przeglądarki działa na treści.
Renderowanie wykorzystuje gęstość pikseli ekranu (HiDPI): strony są ostre na ekranach Retina i 4K.
SEO i adresy URL
Moduł deklaruje swoje trasy przez hook moduleRoutes PrestaShop:
/catalogues-pdf— strona-witryna z dedykowanym meta title i meta description./catalogue-pdf/{id}-{slug}— czysty URL dla każdego katalogu, gdzie slug jest generowany automatycznie z tytułu. Meta title przejmuje tytuł katalogu, a meta description jego opis./catalogue-pdf-embed/{id}— strona osadzania przeznaczona do iframe’ów, znoindex.
Nie trzeba tworzyć żadnej strony CMS: trasy rejestrują się automatycznie przy instalacji.
Wielojęzyczność i multistore
Tytuły i opisy tłumaczy się pole po polu w formularzu edycji (standardowy selektor języka PrestaShop). Każdy język generuje własny slug i własne metatagi. W multistore przypisanie katalog/sklep zarządzane jest checkboxami: każdy sklep wyświetla tylko przypisane mu katalogi. To filtrowanie obejmuje też bezpośredni dostęp przez URL i osadzenia na stronach: katalog nieprzypisany do bieżącego sklepu nigdy nie jest w nim serwowany.
Rozwiązywanie problemów
Shortcode wyświetla się jako zwykły tekst na stronie
- Sprawdź, czy identyfikator odpowiada istniejącemu, aktywnemu katalogowi przypisanemu do bieżącego sklepu. Nieznaleziony identyfikator pozostawia znacznik nietknięty, zamiast wyświetlać pustą przeglądarkę.
- Sprawdź, czy katalog rzeczywiście zawiera plik PDF.
- Wyczyść cache PrestaShop i przeładuj stronę w trybie prywatnym.
- Jeśli właśnie zaktualizowałeś moduł, odinstaluj go i zainstaluj ponownie, aby wymusić rejestrację hooków osadzania.
PDF się nie wyświetla
- Sprawdź, czy plik PDF został poprawnie wgrany (edytuj ponownie katalog w back-office).
- Wyczyść cache PrestaShop i przeładuj stronę w trybie prywatnym.
- Jeśli w przeglądarce pojawia się komunikat błędu, awaryjnie proponowany jest link bezpośredniego pobrania PDF-a.
Tekst nie daje się zaznaczyć lub Ctrl+F nic nie znajduje
Zaznaczanie tekstu wymaga, aby PDF zawierał warstwę tekstową. Zeskanowane PDF-y lub eksporty czysto bitmapowe jej nie mają: wtedy możliwy jest tylko widok graficzny. Przepuść dokument przez narzędzie OCR, jeśli potrzebujesz tekstu.
Linki w PDF nie są klikalne
Linki muszą być prawdziwymi adnotacjami linków w PDF (tworzonymi przez narzędzie eksportu: InDesign, Word, LibreOffice…). Tekst wyglądający jak URL, ale bez adnotacji, nie będzie klikalny.
Strony wyglądają na rozciągnięte lub rozmyte
Ten problem z wersji 1.0.0 jest naprawiony od wersji 1.0.1 (renderowanie HiDPI i neutralizacja resetów CSS motywów). Zaktualizuj moduł i wyczyść cache PrestaShop.
Historia wersji
- 1.2.0 (2026-08-10) — Osadzanie katalogu na dowolnej stronie przez shortcode, widget Smarty lub iframe; podmiana po stronie serwera na stronach CMS, w kategoriach i kartach produktu, z fallbackiem JavaScript; przeglądarka przepisana na niezależne instancje (wiele katalogów na stronę); leniwe ładowanie; kody osadzania gotowe do skopiowania w back-office; obsługa żądań HTTP Range.
- 1.1.0 (2026-08-10) — Kompatybilność z PrestaShop 9; poprawka przypisania sklepu w formularzu edycji; filtrowanie per sklep stosowane też przy bezpośrednim dostępie przez URL; kontrola rzeczywistej zawartości wgrywanych plików.
- 1.0.4 (2026-05-11) — Tryb pełnoekranowy (natywne API + fallback iOS Safari); poprawka fit-width okładki w trybie podwójnej strony; podświetlanie aktywnych przycisków.
- 1.0.3 (2026-05-11) — Tryb podwójnej strony jak w magazynie (sama okładka, potem 2-3, 4-5…); auto-aktywacja na szerokich ekranach; czyste anulowanie renderów przy szybkiej nawigacji.
- 1.0.2 (2026-05-11) — Boczny pasek klikalnych miniatur z leniwym renderowaniem; warstwa tekstowa (zaznaczanie + Ctrl+F); przycisk pokazywania miniatur.
- 1.0.1 (2026-05-11) — Ostre renderowanie HiDPI na Retina/4K; klikalne linki PDF (warstwa adnotacji); poprawka pionowego rozciągania stron.
- 1.0.0 (2026-05-08) — Wersja początkowa: strona-witryna, wbudowana przeglądarka, URL-e SEO, wielojęzyczność, multistore.