public function FormModesSubscriber::getFormModeListPageRoute in Form mode manager 8
Same name and namespace in other branches
- 8.2 src/Routing/EventSubscriber/FormModesSubscriber.php \Drupal\form_mode_manager\Routing\EventSubscriber\FormModesSubscriber::getFormModeListPageRoute()
Generate route to Form Mode Manager `add-list` route.
Parameters
\Drupal\Core\Entity\EntityTypeInterface $entity_type: The entity type definition. Useful when a single class is, used for multiple, possibly dynamic entity types.
array $form_mode: An associative array represent a DisplayForm entity.
Return value
\Symfony\Component\Routing\Route|null The generated route, if available.
1 call to FormModesSubscriber::getFormModeListPageRoute()
- FormModesSubscriber::setAddPageCollection in src/
Routing/ EventSubscriber/ FormModesSubscriber.php - Set one add_page route per form_mode for compatible entities.
File
- src/
Routing/ EventSubscriber/ FormModesSubscriber.php, line 167
Class
- FormModesSubscriber
- Subscriber for form_mode_manager routes.
Namespace
Drupal\form_mode_manager\Routing\EventSubscriberCode
public function getFormModeListPageRoute(EntityTypeInterface $entity_type, array $form_mode) {
$route = NULL;
$entity_type_id = $entity_type
->id();
$entity_type_bundle_id = $entity_type
->getBundleEntityType();
$bundle_entity_type_id = !empty($entity_type_bundle_id) ? $entity_type_bundle_id : $entity_type_id;
$has_active_mode = $this->formModeManager
->hasActiveFormMode($entity_type_id, $this->formModeManager
->getFormModeMachineName($form_mode['id']));
if ($has_active_mode) {
$route = new Route("/{$entity_type_id}/add-list/{$this->formModeManager->getFormModeMachineName($form_mode['id'])}");
$route
->addDefaults([
'_controller' => static::FORM_MODE_DEFAULT_CONTROLLER . '::addPage',
'_title' => $this
->t('Add @entity_type', [
'@entity_type' => $entity_type
->getLabel(),
])
->render(),
'form_mode_name' => $this->formModeManager
->getFormModeMachineName($form_mode['id']),
])
->addRequirements([
'_permission' => "use {$form_mode['id']} form mode",
])
->setOptions([
'_form_mode_manager_entity_type_id' => $entity_type_id,
'_form_mode_manager_bundle_entity_type_id' => $bundle_entity_type_id,
'_admin_route' => TRUE,
]);
$this
->userListEnhancements($route, $entity_type
->id());
}
return $route;
}