示例#1
0
 /**
  * @covers ::preDelete
  */
 public function testPreDelete()
 {
     // This method is internal, so check for errors on calling it only.
     $storage = $this->getMock('\\Drupal\\Core\\Entity\\EntityStorageInterface');
     // Our mocked entity->preDelete() returns NULL, so assert that.
     $this->assertNull($this->entity->preDelete($storage, array($this->entity)));
 }
示例#2
0
 /**
  * {@inheritdoc}
  */
 public static function preDelete(EntityStorageInterface $storage, array $entities)
 {
     parent::preDelete($storage, $entities);
     foreach ($entities as $entity) {
         if ($entity->isUninstalling() || $entity->isSyncing()) {
             // During extension uninstall and configuration synchronization
             // deletions are already managed.
             break;
         }
         // Fix or remove any dependencies.
         $config_entities = static::getConfigManager()->getConfigEntitiesToChangeOnDependencyRemoval('config', [$entity->getConfigDependencyName()], FALSE);
         /** @var \Drupal\Core\Config\Entity\ConfigEntityInterface $dependent_entity */
         foreach ($config_entities['update'] as $dependent_entity) {
             $dependent_entity->save();
         }
         foreach ($config_entities['delete'] as $dependent_entity) {
             $dependent_entity->delete();
         }
     }
 }
示例#3
0
 /**
  * {@inheritdoc}
  */
 public static function preDelete(EntityStorageInterface $storage, array $entities)
 {
     parent::preDelete($storage, $entities);
     // Nothing to do if we don't want to reparent children.
     if ($storage->getPreventReparenting()) {
         return;
     }
     foreach ($entities as $entity) {
         // Children get re-attached to the item's parent.
         if ($entity->has_children) {
             $children = $storage->loadByProperties(array('plid' => $entity->plid));
             foreach ($children as $child) {
                 $child->plid = $entity->plid;
                 $storage->save($child);
             }
         }
     }
 }