<?php
namespace Agence3pBundle\EventSubscriber;
use Pimcore\Event\DataObjectEvents;
use Pimcore\Event\Model\DataObjectEvent;
use Pimcore\Model\DataObject;
class A3ProductSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
{
private const TYPE_VARIANT = 'variant';
private const TYPE_OBJECT = 'object';
/**
* @inheritDoc
*/
public static function getSubscribedEvents()
{
return [
DataObjectEvents::PRE_ADD => ['onPreAdd',11],
DataObjectEvents::PRE_UPDATE => ['onPreUpdate',11]
];
}
/**
* @param DataObjectEvent $event
* @return void
*/
public function onPreAdd(DataObjectEvent $event) : void {
$object = $event->getObject();
if ($object instanceof DataObject\A3pProduct) {
$this->setTypeObject($object);
}
}
/**
* @param DataObjectEvent $event
* @return void
*/
public function onPreUpdate(DataObjectEvent $event) : void {
$object = $event->getObject();
if ($object instanceof DataObject\A3pProduct) {
$this->setTypeObject($object);
}
}
/**
* @param DataObject\A3pProduct $object
* @return void
*/
private function setTypeObject(DataObject\A3pProduct $object) : void {
$type = $object->getType();
if (in_array($type,[self::TYPE_OBJECT,self::TYPE_VARIANT])) {
$object->setTypeObject($type);
}
}
}