Commit a15968a6 authored by Volodymyr Mostepaniuk's avatar Volodymyr Mostepaniuk
Browse files

Issue #3295753 by mostepaniukvm: Generate correct ce builder url on view display form.

parent c9d85713
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
use Drupal\Core\Entity\FieldableEntityInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
use Drupal\field_ui\FieldUI;
use Drupal\field_ui\Form\EntityViewDisplayEditForm;

/**
@@ -43,13 +44,21 @@ function custom_elements_ui_form_entity_view_display_edit_form_alter(&$form, For
    $form['#extra'] = [];
  }

  $entity_type = \Drupal::entityTypeManager()->getDefinition($display_entity->getTargetEntityTypeId());
  $route_parameters = FieldUI::getRouteBundleParameter($entity_type, $display_entity->getTargetBundle());
  $route_parameters['view_mode_name'] = $display_entity->getMode();
  $mode = $display_entity->getMode();
  $mode_component = ($mode === 'default') ? $mode : 'view_mode';
  $route_name = "entity.entity_ce_display.{$display_entity->getTargetEntityTypeId()}.{$mode_component}";
  $ce_builder_url = Url::fromRoute($route_name, $route_parameters);


  $form['manage_custom_elements'] = [
    '#type' => 'link',
    '#title' => t('Manage custom elements'),
    '#weight' => -10,
    '#attributes' => ['class' => ['button']],
    // @todo Add correct url.
    '#url' => Url::fromRoute('<front>'),
    '#url' => $ce_builder_url,
    '#access' => $is_enabled,
  ];