Wenn Sie jemals PrestaShop Produktbilder von einem CDN oder einem externen Speicherdienst bereitstellen mussten, bedeutete der alte Ansatz, die Link-Klasse zu überschreiben, ein Wartungsaufwand, der bei jedem größeren Update auftritt. PrestaShop 9 behebt dieses Problem sauber mit dem overrideImageLink Haken.
Hier erfahren Sie genau, wie es funktioniert und wie Sie es umsetzen.
Wenn Sie führen PrestaShop Entwicklungsagentur in Frankreich oder PrestaShop Entwicklungsunternehmen in den USA In dieser Anleitung geht es um „So passen Sie Produktbild-URLs in PrestaShop 9 ohne Überschreibungen an“. Beginnen wir also, ohne weiter zu warten!
Was ist der overrideImageLink-Hook in PrestaShop 9?
PrestaShop 9 Einführung einer saubereren Methode zur Kontrolle von Produktbild-URLs. Mit dem overrideImageLink-Hook kann Ihr Modul die URL-Generierung an der Quelle abfangen, bevor der Pfad jemals Ihre Storefront oder Ihr Backoffice erreicht, und stattdessen eine vollständig benutzerdefinierte URL zurückgeben.
PrestaShop löst diesen Hook jedes Mal aus, wenn die Link-Klasse generiert eine Produktbild-URL, was bedeutet, dass Ihre Logik automatisch auf den gesamten Produktseiten des Shops, den Kategorielisten, den Warenkorb-Miniaturansichten und dem Backoffice-Produktraster ausgeführt wird.
Warum sollte man Kernüberschreibungen für die Anpassung von Bild-URLs vermeiden?
Das Überschreiben der Link-Klasse in PrestaShop hat immer funktioniert. Es war auch immer ein Problem, das darauf wartete, passiert zu werden.
Jedes PrestaShop Upgrade oder PrestaShop Migration Wenn Sie die Link-Klasse berühren, besteht die Gefahr, dass Ihre Überschreibung beschädigt wird. Entweder überspringen Sie Aktualisierungen, um die Außerkraftsetzung zu schützen, oder Sie aktualisieren und verbringen Stunden damit, Konflikte auszugleichen. Für einen Produktionsladen ist keine der beiden Optionen akzeptabel.
Der overrideImageLink-Hook eliminiert das komplett. Ihr Modul wird in den Kernprozess eingebunden, ohne ihn zu berühren. Updates werden sauber angewendet. Ihre Individualisierung bleibt erhalten.
3 reale Szenarien, in denen dieser Haken den Unterschied macht.
1) CDN-Integration für PrestaShop Produktbilder
Wenn Ihr Geschäft Kunden auf der ganzen Welt beliefert, ist die Bereitstellung von Bildern über den Ursprungsserver ein Engpass. Integrieren Cloudflare, AWS CloudFront oder ein beliebiges CDN bedeutet, dass Bilder vom nächstgelegenen Edge-Standort und nicht von Ihrem Hosting-Server in einer einzelnen Region geladen werden.
Der overrideImageLink-Hook macht dies zu einer Konfiguration auf Modulebene und nicht zu einem Hack auf Serverebene.
2) Externer Bildspeicher mit AWS S3 oder Google Cloud
Das Speichern von Produktbildern auf Ihrem Haupthosting erhöht die Speicherkosten und die Komplexität der Sicherung. Durch das Verschieben von Bildern nach AWS S3 oder Google Cloud Storage und das Weiterleiten von URLs über diesen Hook bleibt Ihr Hosting schlank, ohne dass sich die Art und Weise ändert, wie PrestaShop intern mit Bildern umgeht.
3) Bildoptimierungs-Routing in PrestaShop 9
Einige Geschäfte leiten Bildanfragen über Optimierungsdienste weiter, die die WebP-Konvertierung, die reaktionsfähige Größenanpassung und die Komprimierung automatisch durchführen. Der Hook gibt Ihnen die URL-Kontrolle, um diese Weiterleitung für den Kern von PrestaShop transparent zu machen.
So implementieren Sie overrideImageLink in Ihrem PrestaShop 9 Modul
Schritt 1: Registrieren Sie den Hook
$this->registerHook('overrideImageLink');
Wenn Ihr Modul bereits installiert ist, führen Sie die Registrierung manuell über die Konfiguration Ihres Moduls durch oder installieren Sie es erneut.
Schritt 2: Schreiben Sie die Hook-Funktion
public function hookOverrideImageLink(array $params)
{
if (empty($params['ids'])
|| empty($params['type'])
|| empty($params['extension'])) {
return;
}
$imageId = $params['ids'];
$imageType = $params['type'];
$extension = $params['extension'];
// Pull CDN base URL from module config
$cdnBase = Configuration::get('MY_MODULE_CDN_URL')
?: 'https://cdn.yourdomain.com';
// Rebuild PrestaShop's standard image folder path
$imagePath = '/img/p/'
. implode('/', str_split($imageId))
. '/' . $imageId . '-' . $imageType . '.' . $extension;
return $cdnBase . $imagePath;
}
Schritt 3: Konfigurieren Sie Ihre CDN-Basis-URL
Hinterlegen Sie Ihre CDN-Domain über Ihre Moduleinstellungen in der Konfigurationstabelle von PrestaShop. Auf diese Weise können Sie den CDN-Endpunkt ändern, ohne den Code zu berühren:
Configuration::updateValue('MY_MODULE_CDN_URL', 'https://cdn.yourdomain.com');
Erklärte PrestaShop Hook-Parameter: Vollständiges Entwicklerhandbuch
Wenn overrideImageLink ausgelöst wird, stellt PrestaShop vier Parameter innerhalb des $params-Arrays bereit:
- Ausweise — Eindeutige Kennung des Bildes, das zur Rekonstruktion der verschachtelten Speicherstruktur von PrestaShop verwendet wird.
- Typ – Definiert die Bildgrößenvariante (z. B. home_default, large_default, medium_default).
- Verlängerung – Gibt das Dateiformat des Bildes an, z. B. JPG oder PNG.
- Name – Optionaler Parameter, der den Bilddateinamen darstellt, ist möglicherweise nicht immer vorhanden.
Vorher und Nachher: Beispiel für eine URL-Transformation
Von PrestaShop generierte Original-URL:
https://myshop.com/img/p/1/2/12-home_default.jpg
After the hook processes it:
https://cdn.yourdomain.com/img/p/1/2/12-home_default.jpg
Benötigen Sie ein PrestaShop Entwicklungsunternehmen für Ihr Projekt?
Wenn Sie eine PrestaShop 9 Migration, CDN-Integration oder die Entwicklung eines benutzerdefinierten Moduls planen und möchten, dass alles gleich beim ersten Mal ordnungsgemäß erstellt wird, arbeiten unsere zertifizierten PrestaShop Entwickler an genau dieser Art von Projekten.
iCreativeTechnologies bietet dedizierte PrestaShop Entwicklungsdienste für Geschäfte in den USA, im Vereinigten Königreich und auf der ganzen Welt an, von der Entwicklung individueller PrestaShop Module und Leistungsoptimierung bis hin zum kompletten Ladenaufbau und fortlaufendem technischen Support.
Häufig gestellte Fragen
Nein. Dieser Hook wurde in PrestaShop 9.0.0 eingeführt. Wenn Sie PrestaShop 8 ausführen, sind der Override-Ansatz oder eine benutzerdefinierte Link-Klassenänderung Ihre aktuellen Optionen.
Nein. Der overrideImageLink-Hook ist speziell für Produktbilder gedacht. Kategoriebilder, Herstellerbilder und Lieferantenbilder werden mit separaten Methoden generiert und von diesem Hook nicht abgefangen.
Der overrideImageLink-Hook ist eine native Funktion, die in PrestaShop 9 eingeführt wurde und es Entwicklern ermöglicht, Produktbild-URLs dynamisch anzupassen, ohne Kernklassen zu ändern. Es fängt den Generierungsprozess der Bild-URL ab und ermöglicht die Rückgabe einer vollständig benutzerdefinierten URL, was es ideal für die CDN-Integration oder externe Speicherung macht.
Ja, dieser Hook ist speziell für die CDN-Integration nützlich. Sie können die Standard-Bild-URL durch eine CDN-basierte URL ersetzen und so eine schnellere globale Bereitstellung, eine geringere Serverlast und eine verbesserte Leistung gewährleisten.
Nein, dieser Hook wurde in PrestaShop 9 eingeführt. Er ist in früheren Versionen nicht verfügbar, in denen Entwickler auf Überschreibungen oder benutzerdefinierte Änderungen angewiesen sind.