src/EventListener/DocumentListener.php line 10

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Pimcore\Event\Model\ElementEventInterface;
  4. use Pimcore\Event\Model\DocumentEvent;
  5. class DocumentListener {
  6.     public function createDocument (ElementEventInterface $e)
  7.     {
  8.         if($e instanceof DocumentEvent) {
  9.             // Check if this function is not in progress
  10.             if (\Pimcore\Cache\Runtime::isRegistered('PreDocument_add') && \Pimcore\Cache\Runtime::get('PreDocument_add') == 1) {
  11.                 return;
  12.             }
  13.             // Lock this event-trigger
  14.             \Pimcore\Cache\Runtime::set('PreDocument_add'1);
  15.             $doc $e->getDocument();
  16.             if($doc->getParentId() != 1){
  17.                 $docType $doc->getType();
  18.                 // If document is page, do nothing
  19.                 switch ($docType) {
  20.                     case 'snippet':
  21.                         $doc->setController('App\\Controller\\SnippetController::defaultAction');
  22.                         $doc->save();
  23.                         break;
  24.                     case 'email':
  25.                         $doc->setController('App\\Controller\\EmailController::defaultAction');
  26.                         $doc->save();
  27.                         break;
  28.                 }
  29.             }
  30.             // Unlock this event-trigger
  31.             \Pimcore\Cache\Runtime::set('PreDocument_add'0);
  32.         }
  33.     }
  34. }