field_group-8.x-3.1/src/FieldgroupUi.php
src/FieldgroupUi.php
<?php
namespace Drupal\field_group;
use Drupal\Core\Url;
use Drupal\field_ui\FieldUI;
/**
* Static methods for fieldgroup UI.
*/
class FieldgroupUi {
/**
* Get the field ui route that should be used for given arguments.
*
* @param object $group
* The group to get the field ui route for.
*
* @return \Drupal\Core\Url|null
* A URL object.
*/
public static function getFieldUiRoute($group) {
$entity_type = \Drupal::entityTypeManager()->getDefinition($group->entity_type);
if ($entity_type->get('field_ui_base_route')) {
$context_route_name = "";
$mode_route_name = "default";
$route_parameters = FieldUI::getRouteBundleParameter($entity_type, $group->bundle);
// Get correct route name based on context and mode.
if ($group->context == 'form') {
$context_route_name = 'entity_form_display';
if ($group->mode != 'default') {
$mode_route_name = 'form_mode';
$route_parameters['form_mode_name'] = $group->mode;
}
}
else {
$context_route_name = 'entity_view_display';
if ($group->mode != 'default') {
$mode_route_name = 'view_mode';
$route_parameters['view_mode_name'] = $group->mode;
}
}
return new Url("entity.{$context_route_name}.{$group->entity_type}.{$mode_route_name}", $route_parameters);
}
}
/**
* Get the field group delete route for a given group.
*
* @param object $group
* The group to delete.
*
* @return \Drupal\Core\Url
* A URL object.
*/
public static function getDeleteRoute(\stdClass $group) {
$entity_type_id = $group->entity_type;
$entity_type = \Drupal::entityTypeManager()->getDefinition($entity_type_id);
if ($entity_type->get('field_ui_base_route')) {
$mode_route_name = '';
$route_parameters = FieldUI::getRouteBundleParameter($entity_type, $group->bundle);
$route_parameters['field_group_name'] = $group->group_name;
// Get correct route name based on context and mode.
if ($group->context == 'form') {
$context_route_name = 'form_display';
if ($group->mode != 'default') {
$mode_route_name = '.form_mode';
$route_parameters['form_mode_name'] = $group->mode;
}
}
else {
$context_route_name = 'display';
if ($group->mode != 'default') {
$mode_route_name = '.view_mode';
$route_parameters['view_mode_name'] = $group->mode;
}
}
return new Url('field_ui.field_group_delete_' . $entity_type_id . '.' . $context_route_name . $mode_route_name, $route_parameters);
}
throw new \InvalidArgumentException('The given group is not a valid.');
}
}
