src/EventListener/LeadListener.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Services\Functions;
  4. use Pimcore\Event\Model\ElementEventInterface;
  5. use Pimcore\Event\Model\DataObjectEvent;
  6. use Pimcore\Log\ApplicationLogger;
  7. use Symfony\Component\Messenger\MessageBusInterface;
  8. use Carbon\Carbon;
  9. use Pimcore\Model\DataObject;
  10. use Pimcore\Model\DataObject\Lead;
  11. class LeadListener
  12. {
  13.     private $bus;
  14.     public function __construct(MessageBusInterface $bus)
  15.     {
  16.         $this->bus $bus;
  17.     }
  18.     public function onPreAdd (ElementEventInterface $e) {
  19.         if ($e instanceof DataObjectEvent) {
  20.             $object $e->getObject();
  21.             if($object instanceof Lead){
  22.                 /**  $pathConvention could be "/restricted-assets/{MembersKey}-{MembersUsername}" */
  23.                 $pathConvention Functions::getLeadPathConvention([Carbon::today()->toDateString()]);
  24.                 // Check Asset folder
  25.                 $folder DataObject\Folder::getByPath('/lead/'.$pathConvention);
  26.                 if(!($folder instanceof DataObject\Folder))
  27.                     $folder DataObject\Service::createFolderByPath('/lead/'.$pathConvention);
  28.                 $time Carbon::now();
  29.                 $object->setParentId($folder->getId());
  30.                 $object->setKey(\Pimcore\Model\Element\Service::getValidKey($object->getEmail().'-'.$time->getTimestamp(), 'object'));
  31.                 $object->setCreatedDate($time);
  32.             }
  33.         }
  34.     }
  35.     
  36.     public function onPreUpdate (ElementEventInterface $e) {
  37.         if ($e instanceof DataObjectEvent) {
  38.             $object $e->getObject();
  39.             if($object instanceof Lead){
  40.                 
  41.             }
  42.         }
  43.     }
  44.     
  45.     public function onPostAdd (ElementEventInterface $e) {
  46.         if ($e instanceof DataObjectEvent) {
  47.             $object $e->getObject();
  48.             if($object instanceof Lead){
  49.                 // $logger = ApplicationLogger::getInstance();
  50.                 // $logger->info('Messaggio in coda: '. $object->getEmail());
  51.                 // if ($object->getActive()){
  52.                 //     $this->bus->dispatch(new ManualRegistrationMessage($object));
  53.                 // }
  54.             }
  55.         }
  56.     }
  57. }