/**
  * Handles a node save or remove action
  * @param \ride\library\event\Event $event Save or remove event
  * @param \ride\library\event\EventManager $eventManager Instance of the
  * event manager
  * @return null
  */
 public function handleCmsAction(Event $event, EventManager $eventManager)
 {
     if ($event->getArgument('action') != 'publish') {
         return;
     }
     $nodes = $event->getArgument('nodes');
     foreach ($nodes as $node) {
         $this->banNodes[$node->getId()] = $node;
     }
     $deletedNodes = $event->getArgument('deletedNodes');
     if ($deletedNodes) {
         foreach ($deletedNodes as $node) {
             $this->banNodes[$node->getId()] = $node;
         }
     }
     if (!$this->needsAction && $this->banNodes) {
         // register event to clear when the controller has finished
         // processing the request
         $eventManager->addEventListener('app.response.pre', array($this, 'handleVarnish'), 2);
         $this->needsAction = true;
     }
 }
Ejemplo n.º 2
0
 /**
  * Publish a node or site
  * @param \ride\library\cms\node\Node $node Node to publish
  * @param string $revision Name of the published revision, falls back to the
  * default revision
  * @param boolean $recursive Flag to see if the node's children should be
  * published as well
  * @return null
  */
 public function publishNode(Node $node, $revision = null, $recursive = true)
 {
     if ($revision === null) {
         $revision = $this->getDefaultRevision();
     }
     if ($this->eventManager) {
         $eventArguments = array('action' => 'publish', 'description' => 'Publish node ' . $node->getName(), 'nodes' => array($node), 'revision' => $revision, 'recursive' => $recursive);
         $this->eventManager->triggerEvent(self::EVENT_PRE_ACTION, $eventArguments);
     }
     $deletedNodes = $this->io->publish($node, $revision, $recursive);
     if ($this->eventManager) {
         $eventArguments['deletedNodes'] = $deletedNodes;
         $this->eventManager->triggerEvent(self::EVENT_POST_ACTION, $eventArguments);
     }
 }
 /**
  * Handles a node save or remove action
  * @param \ride\library\event\Event $event Save or remove event
  * @param \ride\library\event\EventManager $eventManager Instance of the
  * event manager
  * @return null
  */
 public function handleCache(Event $event, EventManager $eventManager)
 {
     if (!$this->cacheControls || $this->isCacheClearRegistered) {
         return;
     }
     if (!$this->isCacheClearRegistered) {
         // register event to commit when the controller has finished processing
         // the request
         $eventManager->addEventListener('app.response.post', array($this, 'clearCache'));
         $this->isCacheClearRegistered = true;
     }
 }