Skip to content
Snippets Groups Projects

Resolve #3247189 "Fix incorrect redirect option b"

1 file
+ 9
15
Compare changes
  • Side-by-side
  • Inline
+ 9
15
@@ -3,7 +3,6 @@
namespace Drupal\bigmenu;
use Drupal\Core\Link;
use Drupal\Core\Url;
use Drupal\menu_ui\MenuForm;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Menu\MenuLinkTreeElement;
@@ -90,9 +89,11 @@ class BigMenuForm extends MenuForm {
$parent = $this->menuLinkManager->createInstance($menu_link);
while ($parent_id = $parent->getParent()) {
$parent = $this->menuLinkManager->createInstance($parent_id);
$breadcrumbs[] = new Link($parent->getTitle(), $this->entity->toUrl('edit-form')->setOption('query', [
'menu_link' => $parent_id,
]));
$query = ['menu_link' => $parent_id];
$uri = $this->entity->toUrl('edit-form')->setOption('query', $query);
$query['destination'] = $uri->toString();
$uri = $uri->setOption('query', $query);
$breadcrumbs[] = new Link($parent->getTitle(), $uri);
}
$breadcrumbs[] = $this->entity->toLink($this->t('Back to @label top level', [
'@label' => $this->entity->label(),
@@ -217,9 +218,10 @@ class BigMenuForm extends MenuForm {
// @see https://www.drupal.org/node/2302149
if ($form['links'][$id]['#item']->hasChildren || $this->hasAnyChildren($links[$id]['#item'])) {
if (is_null($menu_link) || (isset($menu_link) && $menu_link != $element['#item']->link->getPluginId())) {
$uri = $this->entity->toUrl('edit-form', [
'query' => ['menu_link' => $element['#item']->link->getPluginId()],
]);
$query = ['menu_link' => $element['#item']->link->getPluginId()];
$uri = $this->entity->toUrl('edit-form')->setOption('query', $query);
$query['destination'] = $uri->toString();
$uri = $uri->setOption('query', $query);
$form['links'][$id]['root'][] = [
'#type' => 'link',
@@ -276,14 +278,6 @@ class BigMenuForm extends MenuForm {
return $tree;
}
/**
* {@inheritdoc}
*/
public function save(array $form, FormStateInterface $form_state) {
parent::save($form, $form_state);
$form_state->setRedirectUrl(Url::fromUserInput($this->getRedirectDestination()->get()));
}
/**
* Checks if a MenuLinkTreeElement has any children, enabled or disabled.
*
Loading