public function MenuFormController::save

Overrides Drupal\Core\Entity\EntityFormController::save().

Overrides EntityFormController::save

File

drupal/core/modules/menu/lib/Drupal/menu/MenuFormController.php, line 85
Contains Drupal\menu\MenuFormController.

Class

MenuFormController
Base form controller for menu edit forms.

Namespace

Drupal\menu

Code

public function save(array $form, array &$form_state) {
  $menu = $this->entity;
  $system_menus = menu_list_system_menus();
  if (!$menu
    ->isNew() || isset($system_menus[$menu
    ->id()])) {
    menu_overview_form_submit($form, $form_state);
  }
  if ($menu
    ->isNew()) {

    // Add 'menu-' to the menu name to help avoid name-space conflicts.
    $menu
      ->set('id', 'menu-' . $menu
      ->id());
  }
  $status = $menu
    ->save();
  $uri = $menu
    ->uri();
  if ($status == SAVED_UPDATED) {
    drupal_set_message(t('Menu %label has been updated.', array(
      '%label' => $menu
        ->label(),
    )));
    watchdog('menu', 'Menu %label has been updated.', array(
      '%label' => $menu
        ->label(),
    ), WATCHDOG_NOTICE, l(t('Edit'), $uri['path'] . '/edit'));
  }
  else {
    drupal_set_message(t('Menu %label has been added.', array(
      '%label' => $menu
        ->label(),
    )));
    watchdog('menu', 'Menu %label has been added.', array(
      '%label' => $menu
        ->label(),
    ), WATCHDOG_NOTICE, l(t('Edit'), $uri['path'] . '/edit'));
  }
  $form_state['redirect'] = 'admin/structure/menu/manage/' . $menu
    ->id();
}