og_sm-8.x-1.0/og_sm_menu/src/Form/SiteMenuLinkEditForm.php

og_sm_menu/src/Form/SiteMenuLinkEditForm.php
<?php

namespace Drupal\og_sm_menu\Form;

use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Menu\MenuLinkInterface;
use Drupal\menu_ui\Form\MenuLinkEditForm;
use Drupal\node\NodeInterface;

/**
 * Provides a form to edit site menu links.
 */
class SiteMenuLinkEditForm extends MenuLinkEditForm {

  /**
   * Build the form.
   *
   * @param array $form
   *   The form array.
   * @param \Drupal\Core\Form\FormStateInterface $form_state
   *   The current form state.
   * @param \Drupal\Core\Menu\MenuLinkInterface|null $menu_link_plugin
   *   The menu link plugin.
   * @param \Drupal\node\NodeInterface|null $node
   *   The site node.
   *
   * @return array
   *   The form array.
   */
  public function buildForm(array $form, FormStateInterface $form_state, MenuLinkInterface $menu_link_plugin = NULL, NodeInterface $node = NULL) {
    $form_state->set('site', $node);

    return parent::buildForm($form, $form_state, $menu_link_plugin);
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    parent::submitForm($form, $form_state);

    /** @var \Drupal\node\NodeInterface|NULL $site */
    $site = $form_state->get('site');

    if ($site) {
      $form_state->setRedirect(
        'og_sm.site_menu',
        ['node' => $site->id()]
      );
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc