class FormModeManagerLocalAction in Form mode manager 8
Same name and namespace in other branches
- 8.2 src/Plugin/Derivative/FormModeManagerLocalAction.php \Drupal\form_mode_manager\Plugin\Derivative\FormModeManagerLocalAction
Provides local action definitions for all entity bundles.
Hierarchy
- class \Drupal\Component\Plugin\Derivative\DeriverBase implements DeriverInterface
- class \Drupal\form_mode_manager\Plugin\Derivative\FormModeManagerLocalAction implements ContainerDeriverInterface uses StringTranslationTrait
Expanded class hierarchy of FormModeManagerLocalAction
1 string reference to 'FormModeManagerLocalAction'
File
- src/
Plugin/ Derivative/ FormModeManagerLocalAction.php, line 14
Namespace
Drupal\form_mode_manager\Plugin\DerivativeView source
class FormModeManagerLocalAction extends DeriverBase implements ContainerDeriverInterface {
use StringTranslationTrait;
/**
* The entity display repository.
*
* @var \Drupal\form_mode_manager\FormModeManagerInterface
*/
protected $formModeManager;
/**
* Constructs a FormModeManagerLocalAction object.
*
* @param \Drupal\form_mode_manager\FormModeManagerInterface $form_mode_manager
* The form mode manager.
*/
public function __construct(FormModeManagerInterface $form_mode_manager) {
$this->formModeManager = $form_mode_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, $base_plugin_id) {
return new static($container
->get('form_mode.manager'));
}
/**
* {@inheritdoc}
*/
public function getDerivativeDefinitions($base_plugin_definition) {
$this->derivatives = [];
$form_modes_definitions = $this->formModeManager
->getAllFormModesDefinitions();
foreach ($form_modes_definitions as $entity_type_id => $form_modes) {
foreach ($form_modes as $form_mode_name => $form_mode) {
if ($this->formModeManager
->hasActiveFormMode($entity_type_id, $form_mode_name)) {
$this
->setDefaultLocalTask($form_mode, $entity_type_id, $form_mode_name);
if ($this
->isUserEntityType($entity_type_id)) {
$this->derivatives[$form_mode['id']]['route_name'] = "user.admin_create.{$form_mode_name}";
unset($this->derivatives[$form_mode['id']]['route_parameters']);
}
$this
->setNodeEntityType($form_mode, $entity_type_id);
$this
->setMediaEntityType($form_mode, $entity_type_id);
$this
->setTaxonomyTermEntityType($form_mode, $entity_type_id);
}
}
}
return $this->derivatives;
}
/**
* Set default local task.
*
* @param array $form_mode
* A form mode.
* @param string $entity_type_id
* An entity type id.
* @param string $form_mode_name
* A form mode name.
*/
public function setDefaultLocalTask(array $form_mode, $entity_type_id, $form_mode_name) {
$this->derivatives[$form_mode['id']] = [
'route_name' => "form_mode_manager.{$entity_type_id}.add_page.{$form_mode_name}",
'title' => $this
->t('Add @entity_label as @form_mode', [
'@form_mode' => $form_mode['label'],
'@entity_label' => $entity_type_id,
]),
'route_parameters' => [
'form_mode_name' => $form_mode_name,
],
'appears_on' => [
"entity.{$entity_type_id}.collection",
],
'cache_tags' => $this->formModeManager
->getListCacheTags(),
];
}
/**
* Determine if the current entity type is 'user'.
*
* @param string $entity_type_id
* An entity type id.
*
* @return bool
* True if this $entity_type_id is user.
*/
public function isUserEntityType($entity_type_id) {
return 'user' === $entity_type_id;
}
/**
* Set derivative the current entity type is 'node'.
*
* @param array $form_mode
* A form mode.
* @param string $entity_type_id
* An entity type id.
*/
public function setNodeEntityType(array $form_mode, $entity_type_id) {
if ('node' === $entity_type_id) {
$this->derivatives[$form_mode['id']]['appears_on'] = [
'system.admin_content',
];
}
}
/**
* Set derivative the current entity type is 'media'.
*
* @param array $form_mode
* A form mode.
* @param string $entity_type_id
* An entity type id.
*/
public function setMediaEntityType(array $form_mode, $entity_type_id) {
if ('media' === $entity_type_id) {
$this->derivatives[$form_mode['id']]['appears_on'] = [
'view.media.media_page_list',
];
}
}
/**
* Set derivative the current entity type is 'taxonomy_term'.
*
* @param array $form_mode
* A form mode.
* @param string $entity_type_id
* An entity type id.
*/
public function setTaxonomyTermEntityType(array $form_mode, $entity_type_id) {
if ('taxonomy_term' === $entity_type_id) {
$this->derivatives[$form_mode['id']]['appears_on'] = [
'entity.taxonomy_vocabulary.overview_form',
];
$this->derivatives[$form_mode['id']]['title'] = $this
->t('Add @entity_label as @form_mode', [
'@form_mode' => $form_mode['label'],
'@entity_label' => 'term',
]);
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DeriverBase:: |
protected | property | List of derivative definitions. | 1 |
DeriverBase:: |
public | function |
Gets the definition of a derivative plugin. Overrides DeriverInterface:: |
|
FormModeManagerLocalAction:: |
protected | property | The entity display repository. | |
FormModeManagerLocalAction:: |
public static | function |
Creates a new class instance. Overrides ContainerDeriverInterface:: |
|
FormModeManagerLocalAction:: |
public | function |
Gets the definition of all derivatives of a base plugin. Overrides DeriverBase:: |
|
FormModeManagerLocalAction:: |
public | function | Determine if the current entity type is 'user'. | |
FormModeManagerLocalAction:: |
public | function | Set default local task. | |
FormModeManagerLocalAction:: |
public | function | Set derivative the current entity type is 'media'. | |
FormModeManagerLocalAction:: |
public | function | Set derivative the current entity type is 'node'. | |
FormModeManagerLocalAction:: |
public | function | Set derivative the current entity type is 'taxonomy_term'. | |
FormModeManagerLocalAction:: |
public | function | Constructs a FormModeManagerLocalAction object. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |