<?php
namespace App\EventListener;
use Pimcore\Event\Model\ElementEventInterface;
use Pimcore\Event\Model\DocumentEvent;
class DocumentListener {
public function createDocument (ElementEventInterface $e)
{
if($e instanceof DocumentEvent) {
// Check if this function is not in progress
if (\Pimcore\Cache\Runtime::isRegistered('PreDocument_add') && \Pimcore\Cache\Runtime::get('PreDocument_add') == 1) {
return;
}
// Lock this event-trigger
\Pimcore\Cache\Runtime::set('PreDocument_add', 1);
$doc = $e->getDocument();
if($doc->getParentId() != 1){
$docType = $doc->getType();
// If document is page, do nothing
switch ($docType) {
case 'snippet':
$doc->setController('App\\Controller\\SnippetController::defaultAction');
$doc->save();
break;
case 'email':
$doc->setController('App\\Controller\\EmailController::defaultAction');
$doc->save();
break;
}
}
// Unlock this event-trigger
\Pimcore\Cache\Runtime::set('PreDocument_add', 0);
}
}
}