コード例 #1
0
 /**
  * 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;
     }
 }
コード例 #2
0
 /**
  * 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;
     }
 }