isSyncing()) { // Save a new shortcut set with links copied from the user's default set. $default_set = shortcut_default_set(); // This is the default set, do not copy shortcuts. if ($default_set->id() != $this->id()) { foreach ($default_set->getShortcuts() as $shortcut) { $shortcut = $shortcut->createDuplicate(); $shortcut->enforceIsNew(); $shortcut->shortcut_set->target_id = $this->id(); $shortcut->save(); } } } } /** * {@inheritdoc} */ public static function preDelete(EntityStorageInterface $storage, array $entities) { parent::preDelete($storage, $entities); foreach ($entities as $entity) { $storage->deleteAssignedShortcutSets($entity); // Next, delete the shortcuts for this set. $shortcut_ids = \Drupal::entityQuery('shortcut') ->condition('shortcut_set', $entity->id(), '=') ->execute(); $controller = \Drupal::entityManager()->getStorage('shortcut'); $entities = $controller->loadMultiple($shortcut_ids); $controller->delete($entities); } } /** * {@inheritdoc} */ public function resetLinkWeights() { $weight = -50; foreach ($this->getShortcuts() as $shortcut) { $shortcut->setWeight(++$weight); $shortcut->save(); } return $this; } /** * {@inheritdoc} */ public function getShortcuts() { $shortcuts = \Drupal::entityManager()->getStorage('shortcut')->loadByProperties(['shortcut_set' => $this->id()]); uasort($shortcuts, ['\Drupal\shortcut\Entity\Shortcut', 'sort']); return $shortcuts; } }