/**
  * Overrides xPDOObject::save to cache the actionMap.
  *
  * {@inheritdoc}
  */
 public function remove(array $ancestors = array())
 {
     $removed = parent::remove($ancestors);
     if ($removed && empty($this->xpdo->config[xPDO::OPT_SETUP])) {
         $this->rebuildCache();
     }
     return $removed;
 }
 /**
  * Overrides xPDOObject::remove to fire modX-specific events
  *
  * {@inheritDoc}
  */
 public function remove(array $ancestors = array())
 {
     if ($this->xpdo instanceof modX) {
         $this->xpdo->invokeEvent('OnBeforeResourceGroupRemove', array('resourceGroup' => &$this, 'ancestors' => $ancestors));
     }
     $removed = parent::remove($ancestors);
     if ($this->xpdo instanceof modX) {
         $this->xpdo->invokeEvent('OnResourceGroupRemove', array('resourceGroup' => &$this, 'ancestors' => $ancestors));
     }
     return $removed;
 }
 /**
  * Overrides xPDOObject::remove to reset all Element categories back to 0
  * and fire modX-specific events.
  *
  * {@inheritDoc}
  */
 public function remove(array $ancestors = array())
 {
     if ($this->xpdo instanceof modX) {
         $this->xpdo->invokeEvent('OnCategoryBeforeRemove', array('category' => &$this, 'ancestors' => $ancestors));
     }
     $removed = parent::remove($ancestors);
     if ($removed && $this->xpdo instanceof modX) {
         $elementClasses = array('modChunk', 'modPlugin', 'modSnippet', 'modTemplate', 'modTemplateVar');
         foreach ($elementClasses as $classKey) {
             $elements = $this->xpdo->getCollection($classKey, array('category' => $this->get('id')));
             foreach ($elements as $element) {
                 $element->set('category', 0);
                 $element->save();
             }
         }
         $this->xpdo->invokeEvent('OnCategoryRemove', array('category' => &$this, 'ancestors' => $ancestors));
     }
     return $removed;
 }
 /**
  * Overrides xPDOObject::remove to remove all Property Sets that are related
  * to this object.
  *
  * {@inheritdoc}
  */
 public function remove(array $ancestors = array())
 {
     $this->xpdo->removeCollection('modElementPropertySet', array('element' => $this->get('id'), 'element_class' => $this->_class));
     $result = parent::remove($ancestors);
     return $result;
 }