예제 #1
0
 /**
  * {@inheritDoc}
  * @return mixed
  */
 public function process()
 {
     if (!$this->resource->checkPolicy('delete')) {
         return $this->failure($this->modx->lexicon('resource_err_delete'));
     }
     $resources = array($this->resource);
     $ids = array($this->resource->id);
     $this->modx->invokeEvent('OnBeforeEmptyTrash', array('ids' => &$ids, 'resources' => &$resources));
     $this->handleChildren();
     /** @var modResourceGroupResource[] $resourceGroupResources */
     $resourceGroupResources = $this->resource->getMany('ResourceGroupResources');
     /** @var modTemplateVarResource[] $templateVarResources */
     $templateVarResources = $this->resource->getMany('TemplateVarResources');
     foreach ($resourceGroupResources as $resourceGroupResource) {
         $resourceGroupResource->remove();
     }
     foreach ($templateVarResources as $templateVarResource) {
         $templateVarResource->remove();
     }
     $this->modx->removeCollection('CollectionSelection', array('resource' => $this->resource->id));
     if ($this->resource->remove() == false) {
         return $this->failure($this->modx->lexicon('resource_err_delete'));
     }
     $this->modx->invokeEvent('OnEmptyTrash', array('num_deleted' => 1, 'resources' => &$resources, 'ids' => &$ids));
     $this->logManagerAction();
     $skipClearCache = $this->getProperty('skipClearCache', false);
     if ($skipClearCache == false) {
         $this->clearCache();
     }
     return $this->success();
 }
예제 #2
0
 /**
  * @param array $ancestors
  *
  * @return bool
  */
 public function remove(array $ancestors = array())
 {
     $collection = $this->xpdo->getIterator('TicketThread', array('name' => 'resource-' . $this->id));
     /** @var TicketThread $item */
     foreach ($collection as $item) {
         $item->remove();
     }
     /** @var TicketAuthor $profile */
     if ($profile = $this->xpdo->getObject('TicketAuthor', $this->get('createdby'))) {
         $profile->removeAction('ticket', $this->id, $this->get('createdby'));
     }
     return parent::remove($ancestors);
 }
예제 #3
0
 public function tearDown()
 {
     parent::tearDown();
     $this->thread->remove();
     $this->resource->remove();
 }
예제 #4
0
 /**
  * Override remove to remove the associated Quip thread
  *
  * {@inheritDoc}
  *
  * @param array $ancestors
  * @return boolean
  */
 public function remove(array $ancestors = array())
 {
     $removed = parent::remove($ancestors);
     if ($removed) {
         $quipPath = $this->xpdo->getOption('quip.core_path', null, $this->xpdo->getOption('core_path') . 'components/quip/');
         $this->xpdo->addPackage('quip', $quipPath . 'model/');
         /** @var quipThread $thread */
         $thread = $this->xpdo->getObject('quipThread', array('name' => 'article-b' . $this->get('parent') . '-' . $this->get('id')));
         if ($thread) {
             $thread->remove();
         }
     }
     return $removed;
 }