In meinem letzten Artikel habe ich erklärt wie ihr einen Google Maps JavaScript API Key in der API Console erstellen könnt. In diesem Beitrag zeige ich euch wie ihr diesen Key korrekt in einem Pimcore verwendet.

Statische Einbindung

Eine Möglichkeit ist natürlich, wie im letzten Artikel beschrieben, den Key einfach direkt in das Script Tag zu schreiben das den Google Maps Code lädt. Das funktioniert natürlich, hat aber den Nachteil, sollte sich der Key einmal ändern, ein Programmierer an den Code ran muss, um diesen Key auszutauschen. Hier gibt es eine elegantere Methode, so dass ein Redakteur bzw. Administrator den Schlüssel im Backend ändern kann.

Dynamische Einbindung

Von Haus aus bietet Pimcore im Backend unter „Einstellungen > Systemeigenschaften“ die Möglichkeit an, API Schlüssel und andere Angaben für Google zu hinterlegen. Diese Felder findet ihr in dem Bereich „Google Zugangsdaten & API-Schlüssel“. Klappt diesen Bereich auf und ihr findet im unteren Teil zwei Felder für API Schlüssel. Ein Feld für einen Server Schlüssel und ein Feld für einen Browser Schlüssel.

Da es sich bei dem API Schlüssel für die Google Maps JavaScript API um einen Browser Schlüssel handelt, müsst ihr diesen im entsprechenden Feld für den Browser Schlüssel eintragen.

pimcore_api_keys

Nicht vergessen die Systemeigenschaften zu speichern. Nun könnt ihr im Code auf diesen API Schlüssel zugreifen und ihr könnt flexibel entscheiden, wo ihr ihn benötigt und wo ihr ihn einfügen möchtet.

Der einfachste Weg ist das globale Laden des Scriptes in der Layout Datei. Mit folgendem Code könnt ihr den Schlüssel aus den Systemeigenschaften auslesen und dann als normale String Variable verwenden:

// die Systemeigenschaften aus der Session auslesen
$conf   = Zend_Registry::get('pimcore_config_system');
// den Browwser Schlüssel aus den Systemeigenschaften auslesen
$apikey = $conf->services->google->browserapikey;

Dieser Code funktioniert aber genauso gut in einem Controller oder einem View Script, so dass ihr den Key bei Bedarf immer zur Hand habt.