plugin/path/Listener/Resource/PathListener.php
public function onCopy(CopyResourceEvent $event)
    {
        // Start the transaction. We'll copy every resource in one go that way.
        $this->om->startFlushSuite();

        /** @var Path $path */
        $path = $event->getCopy();
        $pathNode = $path->getResourceNode();

        if ($path->hasResources()) {
            // create a directory to store copied resources
            $resourcesDirectory = $this->createResourcesCopyDirectory($pathNode->getParent(), $pathNode->getName());
            // A forced flush is required for rights propagation on the copied resources
            $this->om->forceFlush();

            // copy resources for all steps
            $copiedResources = [];
            foreach ($path->getSteps() as $step) {
                if ($step->hasResources()) {
                    $copiedResources = $this->copyStepResources($step, $resourcesDirectory->getResourceNode(), $copiedResources);
                }
            }
        }

        $this->om->persist($path);

        // End the transaction
        $this->om->endFlushSuite();
        $event->setCopy($path);

        $event->stopPropagation();
    }
public function onCopy(CopyResourceEvent $event)
    {
        // Start the transaction. We'll copy every resource in one go that way.
        $this->om->startFlushSuite();

        /** @var Path $path */
        $path = $event->getCopy();
        $pathNode = $path->getResourceNode();

        if ($path->hasResources()) {
            // create a directory to store copied resources
            $resourcesDirectory = $this->createResourcesCopyDirectory($pathNode->getParent(), $pathNode->getName());
            // A forced flush is required for rights propagation on the copied resources
            $this->om->forceFlush();

            // copy resources for all steps
            $copiedResources = [];
            foreach ($path->getSteps() as $step) {
                if ($step->hasResources()) {
                    $copiedResources = $this->copyStepResources($step, $resourcesDirectory->getResourceNode(), $copiedResources);
                }
            }
        }

        $this->om->persist($path);

        // End the transaction
        $this->om->endFlushSuite();
        $event->setCopy($path);

        $event->stopPropagation();
    }
public function onCopy ( CopyResourceEvent $ event ) { // Start the transaction. We'll copy every resource in one go that way. $ this -> om -> startFlushSuite ( ) ; /** @var Path $path */ $ path = $ event -> getCopy ( ) ; $ pathNode = $ path -> getResourceNode ( ) ; if ( $ path -> hasResources ( ) ) { // create a directory to store copied resources $ resourcesDirectory = $ this -> createResourcesCopyDirectory ( $ pathNode -> getParent ( ) , $ pathNode -> getName ( ) ) ; // A forced flush is required for rights propagation on the copied resources $ this -> om -> forceFlush ( ) ; // copy resources for all steps $ copiedResources = [ ] ; foreach ( $ path -> getSteps ( ) as $ step ) { if ( $ step -> hasResources ( ) ) { $ copiedResources = $ this -> copyStepResources ( $ step , $ resourcesDirectory -> getResourceNode ( ) , $ copiedResources ) ; } } } $ this -> om -> persist ( $ path ) ; // End the transaction $ this -> om -> endFlushSuite ( ) ; $ event -> setCopy ( $ path ) ; $ event -> stopPropagation ( ) ; }
Fired when a ResourceNode of type Path is duplicated.

@DI\Observe("resource.innova_path.copy")

@param CopyResourceEvent $event

@throws \Exception
Fired when a ResourceNode of type Path is duplicated .