Vom: 22.08.2012

Pimcore - Keys generieren für Objekte

Wer in Pimcore Objekte oder Assets mit einem eigenen Import-Skript einliest, muss auch gültige Keys für die Objekte generieren. Diese müssen einem bestimmten Schema folgen oder alles fliegt früher oder später aus der Kurve. Pimcore stellt intern Methoden bereit um gültige Keys zu erzeugen, zum Beispiel die Methode Pimcore_File::getValidFilename() Diese hat für unseren Sprachraum nur den Schönheitsfehler, dass Umlaute entfernt werden. Es liegt daher nahe, die ganze Geschichte etwas aufzubohren. Der Einfachheit halber mache ich das mit einer simplen Funktion:

function makeKey($key) {
  $key = str_replace(array("ä","ü","ö","ß"), array("ae", "ue", "oe", "ss"), utf8_encode($key));
  return Pimcore_File::getValidFilename($key);
}

Dies kann man nun ganz einfach nutzen - hier ein Beispiel aus einem unserer Importer:

  $objekt = new Object_Objekt();
  $objekt->setParentId($parent_id);
  $objekt->setCreationDate(new Zend_Date($row["ModDate"], Zend_Date::TIMESTAMP));
  $objekt->setUserOwner(1);
  $objekt->setUserModification(1);
  $objekt->setPublished(true);

  $key = makeKey("Mein Objekt");
  $objekt->setKey($key); // der Identifier wie er im Baum erscheint