Alles wat u wilt weten voordat u installeert.
Een gedetailleerde blik op hoe Database Manager Backoffice: Adminer voor PrestaShop 8 & 9 werkt, waarom we het zo gebouwd hebben en de gedachte achter de bovenstaande functies.
Waarom Adminer in de backoffice inbouwen
Moet u een PrestaShop-bestelling debuggen, een waarde in een tabel cms_lang nakijken, een losse SQL-query uitvoeren of de inhoud van ps_configuration bekijken, dan is de gebruikelijke gang van zaken: het paneel van uw hosting openen, phpMyAdmin starten, uw inloggegevens opnieuw intypen en naar de juiste database navigeren. Dat breekt uw concentratie en nodigt uit tot fouten (verkeerde database gekozen, verkeerd tabblad, gegevens vergeten). dfdbmanager vervangt die zes stappen door één: een klik in het PrestaShop-menu Geavanceerde instellingen en daarna Adminer. U komt meteen op de tabellenlijst van uw winkel, al ingelogd.
Adminer in plaats van phpMyAdmin
Adminer is het moderne, lichte alternatief voor phpMyAdmin, gemaakt door Jakub Vrana en gebruikt door duizenden ontwikkelaars en bureaus. Eén PHP-bestand van 508 kB (tegenover ongeveer 50 MB voor phpMyAdmin), een strakkere en snellere interface, en native ondersteuning voor MySQL, PostgreSQL, SQLite, MS-SQL en Oracle. Specifiek voor PrestaShop: rijen ter plekke bewerken, SQL-export in blokken, zoeken in volledige tekst binnen de tabellen, SQL-query's over meerdere regels uitvoeren met geschiedenis, en het schema rechtstreeks vanuit de interface aanpassen. Het meegeleverde adminer.php is de laatste stabiele versie (5.4.2), onder Apache 2.0 of GPL 2.0, met broncode inbegrepen.
Automatisch inloggen: geen wachtwoord meer intypen
De loader van de module start de Adminer-sessie (adminer_sid) aan serverzijde en vult die vooraf met de gegevens uit de PrestaShop-configuratie. Bij het opstarten ziet Adminer een geldige sessie en gaat hij meteen door naar de database-interface. Geen authenticatiescherm, geen in te vullen velden, geen token om te kopiëren. Hebt u meerdere SuperAdmin-medewerkers, dan heeft elk een eigen Adminer-sessie (PHP-sessies hangen aan de browsercookie), maar ze verbinden allemaal met dezelfde PrestaShop-database via dezelfde systeemgegevens.
Beveiliging: alleen SuperAdmin, met dubbele controle
Adminer is krachtig gereedschap: wie toegang heeft tot uw database, heeft toegang tot alles, van bestellingen en klanten tot betalingen en de gehashte wachtwoorden van medewerkers. De module beperkt de toegang daarom tot het SuperAdmin-profiel (id_profile = 1 in PrestaShop), met een controle in postProcess (vóór de uitvoering) en in initContent (bij het opbouwen van de interface). Een medewerker logistiek, een vertaler of een verkoper komt er niet in, ook niet met de Adminer-URL. Het bestand adminer.php zelf is via een .htaccess met Require all denied geblokkeerd voor directe HTTP-toegang, zodat PrestaShop niet valt te omzeilen. De verbinding met MySQL gebruikt de bestaande gegevens van PrestaShop: er wordt geen nieuw wachtwoord aangemaakt en er worden geen rechten uitgebreid.
Compatibel met PrestaShop 8 en 9, dezelfde architectuur
De module gebruikt een legacy ModuleAdminController, die door beide hoofdversies van PrestaShop wordt ondersteund. Het configuratiescherm draait op Smarty, het menu-tabblad wordt aangemaakt via de Tab-klasse (met het Material-icoon storage), en de gebruikte hooks zijn volledig standaard. Op PrestaShop 9 werkt de module zonder aanpassing, zonder hercompilatie en zonder extra Symfony-klassen. Compatibel met PHP 7.4 tot 8.3, MySQL 5.7+ en MariaDB 10.3+. Getest op gedeelde hosting.
Terugkeerbalk, donkere modus en doorlopende navigatie
Een vaste balk bovenaan de pagina blijft zichtbaar tijdens de hele navigatie in Adminer. Links staan DataFirefly Adminer en de naam van de huidige database. Rechts staat een blauwe knop die u met één klik terugbrengt naar Geavanceerde instellingen. De balk past zich automatisch aan de donkere modus van het systeem aan via een media query op prefers-color-scheme, met een diepere achtergrond en een feller blauwe rand om leesbaar te blijven. De interne URL's van Adminer (links naar tabellen, formulieren, CSS- en JS-bestanden) worden allemaal achteraf herschreven zodat ze via onze controller lopen. Klikt u op een Adminer-link, dan raakt u dus niet per ongeluk uitgelogd.
Voor wie
Voor PrestaShop-ontwikkelaars die dagelijks debuggen en een snelle weg naar de database willen. Voor bureaus die meerdere klantwinkels onderhouden en liever ingebouwd gereedschap gebruiken dan een hostingpaneel per site. Voor technisch onderlegde verkopers die hun ruwe gegevens willen zien zonder van hun hoster afhankelijk te zijn. Voor freelancers die geen toegang hebben tot het hostingpaneel van de klant maar wel een SuperAdmin-account in PrestaShop. En voor iedereen die er genoeg van heeft om drie keer per dag zijn phpMyAdmin-gegevens in te typen.
Technische architectuur
De controller AdminDfAdminerController overschrijft checkToken() om de CSRF van PrestaShop te omzeilen bij de interne acties van Adminer (de POST-formulieren van Adminer dragen het PS-token niet, en de SuperAdmin-beperking daarvóór is als bescherming strikt sterker). In renderAdminer() wordt ob_start aangeroepen met een callback die de uitvoer van Adminer achteraf bewerkt: de terugkeerbalk wordt ingevoegd en alle URL's in href, action en src die naar index.php wijzen krijgen controller=AdminDfAdminer mee. Die callback overleeft de 19 exit-aanroepen die Adminer op verschillende plekken doet (page_footer, het serveren van bestanden en zo verder), anders dan een eenvoudige ob_get_clean, die zou worden overgeslagen. De loader vult $_SESSION[pwds] vooraf met het echte wachtwoord en $_SESSION[db] met true, wat volstaat om Adminer zijn formulier te laten overslaan en meteen te laten verbinden.
Er zijn nog geen beoordelingen.