bundles/Jabber/GenericBundle/EventListener/RelationListener.php line 12

Open in your IDE?
  1. <?php 
  2. namespace Jabber\GenericBundle\EventListener;
  3. use Pimcore\Event\Model\ElementEventInterface;
  4. use Pimcore\Event\Model\DataObjectEvent;
  5. use Pimcore\Model\DataObject\Colour;
  6. use Pimcore\Model\DataObject\Product;
  7. class RelationListener {
  8.     public function onPreUpdateAndSave(ElementEventInterface $e) {
  9.         if (!$e->hasArgument('isAutoSave')) {
  10.             if ($e instanceof DataObjectEvent) {
  11.                 // do something with the object
  12.                 $dataObject $e->getObject();
  13.                 if ($dataObject instanceof Product) {
  14.                     if ($dataObject->getType() == "variant" && $dataObject->getProductLevel() == "STYLE") {
  15.                         if (method_exists($dataObject'getColourRelation') && method_exists($dataObject'getColour')) {
  16.                             $dataObject $this->ChangeColourRelation($dataObject$dataObject->getColour());
  17.                         }
  18.                     }
  19.                 }
  20.             }
  21.         }
  22.     }
  23.     private function GetPreviousVersion(Product $dataObject) {
  24.         $versions $dataObject->getVersions();
  25.         $previousVersion $versions[count($versions)-1];
  26.         $previousObject $previousVersion->getData();
  27.         return $previousObject;
  28.     }
  29.     private function ChangeColourRelation(Product $dataObject$colourCode) {
  30.         $colourObject Colour::getByColourID($colourCode);
  31.         if ($colourObject instanceof Colour\Listing && !empty($colourObject->current())) {
  32.             $colourValue $colourObject->current();
  33.             $dataObject->setColourRelation($colourValue);
  34.         }
  35.         return $dataObject;
  36.     }
  37. }