Wszystko, co warto wiedzieć, zanim zainstalujesz.
Szczegółowe spojrzenie na to, jak działa Database Manager Back Office: Adminer dla PrestaShop 8 i 9, dlaczego zbudowaliśmy go w ten sposób i jaka myśl stoi za powyższymi funkcjami.
Po co integrować Adminera z back office
Kiedy musisz zdebugować zamówienie PrestaShop, sprawdzić wartość w tabeli cms_lang, wykonać doraźne zapytanie SQL albo zajrzeć do ps_configuration, zwykła procedura wygląda tak: otwórz cPanel albo panel hostingu, uruchom phpMyAdmin, wpisz ponownie dane dostępowe, przejdź do właściwej bazy. Ten przepływ rozbija koncentrację i mnoży błędy (zła baza, zła karta, zapomniane hasło). dfdbmanager zastępuje te sześć kroków jednym: kliknięciem w menu PrestaShop Parametry zaawansowane, Adminer. Lądujesz od razu na liście tabel swojego sklepu, już uwierzytelniony.
Adminer zamiast phpMyAdmin
Adminer to nowoczesna i lekka alternatywa dla phpMyAdmin, stworzona przez Jakuba Vranę i używana przez tysiące deweloperów i agencji. Pojedynczy plik PHP o rozmiarze 508 KB (wobec około 50 MB dla phpMyAdmin), czystszy i szybszy interfejs, natywne wsparcie MySQL, PostgreSQL, SQLite, MS-SQL i Oracle. Konkretnie dla PrestaShop: edycja wierszy w miejscu, eksport SQL w porcjach, wyszukiwanie pełnotekstowe w tabelach, wykonywanie wielolinijkowych zapytań SQL z historią, modyfikacja schematu bezpośrednio z interfejsu. Dostarczony plik adminer.php to najnowsza stabilna wersja (5.4.2) na licencji Apache 2.0 i GPL 2.0, z kodem źródłowym w zestawie.
Automatyczne logowanie: żadnego hasła do przepisywania
Loader modułu uruchamia sesję Adminera (adminer_sid) po stronie serwera i wstępnie wypełnia ją danymi dostępowymi odczytanymi z konfiguracji PrestaShop. Gdy Adminer startuje, widzi już ważną sesję i przechodzi wprost do interfejsu bazy. Żaden ekran uwierzytelnienia, żadne pole do wypełnienia, żaden token do skopiowania. Jeśli masz kilku pracowników SuperAdmin, każdy będzie miał własną sesję Adminera (sesje PHP są per cookie przeglądarki), ale wszyscy łączą się z tą samą bazą PrestaShop tymi samymi systemowymi danymi dostępowymi.
Bezpieczeństwo: tylko SuperAdmin, bramka z podwójną weryfikacją
Adminer to potężne narzędzie. Kto ma dostęp do Twojej bazy, ma dostęp do wszystkiego: zamówień, klientów, płatności, zahaszowanych haseł pracowników. Moduł ogranicza dostęp wyłącznie do profilu SuperAdmin (id_profile = 1 w PrestaShop), z weryfikacją w postProcess (przed wykonaniem) i w initContent (renderowanie UI). Logistyk, Tłumacz, Sprzedawca: żaden nie uzyska dostępu, nawet znając adres URL Adminera. Sam plik adminer.php jest zablokowany przed bezpośrednim dostępem HTTP przez htaccess z dyrektywą Require all denied, więc nie da się do niego dostać z pominięciem PrestaShop. Połączenie z MySQL korzysta z istniejących danych dostępowych PrestaShop: żadne nowe hasło nie jest tworzone, żadne uprawnienia po stronie bazy nie są rozszerzane.
Zgodny z PrestaShop 8 i 9, ta sama architektura
Moduł używa legacy ModuleAdminController, wspieranego przez obie główne wersje PrestaShop. Strona konfiguracji używa Smarty, zakładka menu jest instalowana przez klasę Tab (z ikoną Material storage), a używane hooki są w 100 procentach standardowe. Na PrestaShop 9 moduł działa bez modyfikacji, bez rekompilacji i bez dodawania klas Symfony. Zgodny z PHP od 7.4 do 8.3, MySQL 5.7+ i MariaDB 10.3+. Przetestowany na hostingach współdzielonych o2switch, OVH i Infomaniak.
Baner powrotu, tryb ciemny, ciągła nawigacja
Stały pasek u góry strony (ciemny granat, niebieska ramka, maksymalny z-index) pozostaje widoczny przez całą nawigację w Adminerze. Po lewej: DataFirefly Adminer i nazwa bieżącej bazy. Po prawej: niebieski przycisk powrotu do BO PrestaShop, który jednym kliknięciem odsyła do Parametrów zaawansowanych. Baner automatycznie dostosowuje się do systemowego trybu ciemnego przez media query prefers-color-scheme, z głębszym kolorem tła i jaskrawoniebieską ramką, aby pozostać czytelnym. Wewnętrzne adresy URL Adminera (linki do tabel, formularze, pliki CSS i JS) są w całości przepisywane w post-processingu, aby przechodzić przez nasz kontroler, więc kliknięcie w link Adminera nie powoduje przypadkowego wylogowania.
Dla kogo
Dla deweloperów PrestaShop, którzy debugują codziennie i chcą skrótu do bazy. Dla agencji utrzymujących kilka sklepów klienckich, które wolą narzędzie zintegrowane od cPanelu na każdej witrynie. Dla technicznych sprzedawców, którzy chcą widzieć surowe dane bez zależności od hostingodawcy. Dla freelancerów na projekcie, którzy nie mają dostępu do panelu hostingu klienta, ale mają konto SuperAdmin w PrestaShop. Dla wszystkich, którzy mają dość przepisywania haseł do phpMyAdmin trzy razy dziennie.
Architektura techniczna
Kontroler AdminDfAdminerController nadpisuje checkToken(), aby ominąć CSRF PrestaShop na wewnętrznych akcjach Adminera (formularze POST Adminera nie niosą tokenu PS, a bramka SuperAdmin powyżej jest ściśle silniejszą ochroną). W renderAdminer() ob_start jest wywoływane z callbackiem, który przetwarza wyjście Adminera: wstrzykuje baner powrotu do BO i przepisuje wszystkie adresy href, action i src wskazujące na index.php, dodając do nich controller=AdminDfAdminer. Callback przeżywa 19 wywołań exit, które Adminer wykonuje w różnych miejscach (page_footer, serwowanie plików itd.), w przeciwieństwie do zwykłego ob_get_clean, który zostałby pominięty. Loader wstępnie wypełnia zmienną sesyjną pwds prawdziwym hasłem, a zmienną db wartością true, co wystarcza, aby Adminer pominął swój formularz i przeszedł wprost do połączenia.
Na razie nie ma opinii o produkcie.