public function ShortcutStorageController::create

Overrides \Drupal\config\ConfigStorageController::create().

Overrides ConfigStorageController::create

File

drupal/core/modules/shortcut/lib/Drupal/shortcut/ShortcutStorageController.php, line 35
Contains \Drupal\shortcut\ShortcutStorageController.

Class

ShortcutStorageController
Defines a storage controller for shortcut entities.

Namespace

Drupal\shortcut

Code

public function create(array $values) {
  $entity = parent::create($values);

  // Generate menu-compatible set name.
  if (!$entity
    ->getOriginalID()) {

    // Save a new shortcut set with links copied from the user's default set.
    $default_set = shortcut_default_set();

    // Generate a name to have no collisions with menu.
    // Size of menu_name is 32 so id could be 23 = 32 - strlen('shortcut-').
    $id = substr($entity
      ->id(), 0, 23);
    $entity
      ->set('id', $id);
    if ($default_set
      ->id() != $id) {
      foreach ($default_set->links as $link) {
        $link = $link
          ->createDuplicate();
        $link
          ->enforceIsNew();
        $link->menu_name = $id;
        $link
          ->save();
        $entity->links[$link
          ->uuid()] = $link;
      }
    }
  }
  return $entity;
}