form_mode_manager.module in Form mode manager 8
Same filename and directory in other branches
Contains form_mode_manager.module.
File
form_mode_manager.moduleView source
<?php
/**
 * @file
 * Contains form_mode_manager.module.
 */
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Link;
use Drupal\Core\Url;
use Drupal\form_mode_manager\EntityTypeInfo;
/**
 * Implements hook_entity_type_alter().
 */
function form_mode_manager_entity_type_alter(array &$entity_types) {
  return \Drupal::service('class_resolver')
    ->getInstanceFromDefinition(EntityTypeInfo::class)
    ->entityTypeAlter($entity_types);
}
/**
 * Implements hook_entity_type_build().
 */
function form_mode_manager_entity_type_build(array &$entity_types) {
  return \Drupal::service('class_resolver')
    ->getInstanceFromDefinition(EntityTypeInfo::class)
    ->entityTypeBuild($entity_types);
}
/**
 * Implements hook_entity_operation().
 */
function form_mode_manager_entity_operation(EntityInterface $entity) {
  return \Drupal::service('class_resolver')
    ->getInstanceFromDefinition(EntityTypeInfo::class)
    ->entityOperation($entity);
}
/**
 * Implements hook_entity_operation_alter().
 */
function form_mode_manager_entity_operation_alter(array &$operations, EntityInterface $entity) {
  return \Drupal::service('class_resolver')
    ->getInstanceFromDefinition(EntityTypeInfo::class)
    ->entityOperationAlter($operations, $entity);
}
/**
 * Implements hook_theme().
 */
function form_mode_manager_theme() {
  return [
    'form_mode_manager_add_list' => [
      'variables' => [
        'content' => NULL,
        'form_mode' => NULL,
        'entity_type' => NULL,
      ],
    ],
  ];
}
/**
 * Prepares variables for list of available entity type templates.
 *
 * Default template: form-mode-manager-add-list.html.twig.
 *
 * @param array $variables
 *   An associative array containing:
 *   - content: An array of content types.
 *
 * @see \Drupal\form_mode_manager\Controller\EntityFormModeController::addPage()
 */
function template_preprocess_form_mode_manager_add_list(array &$variables) {
  $variables['types'] = [];
  $entity_type_id = $variables['entity_type'];
  /** @var \Drupal\form_mode_manager\EntityRoutingMapBase $entity_operation_mapping */
  $entity_operation_mapping = \Drupal::service("plugin.manager.entity_routing_map")
    ->createInstance($entity_type_id, [
    'entityTypeId' => $entity_type_id,
  ]);
  if (!empty($variables['content'])) {
    /** @var \Drupal\Core\Config\Entity\ConfigEntityBundleBase $type */
    foreach ($variables['content'] as $type) {
      $route_name = $entity_operation_mapping
        ->getOperation('add_form') . ".{$variables['form_mode']}";
      $variables['types'][$type
        ->id()] = [
        'type' => $type
          ->id(),
        'add_link' => Link::fromTextAndUrl($type
          ->label(), new Url($route_name, [
          $type
            ->getEntityTypeId() => $type
            ->id(),
        ])),
        'description' => [
          '#markup' => method_exists($type, 'getDescription') ? $type
            ->getDescription() : $type
            ->label(),
        ],
      ];
    }
  }
}Functions
| Name   | Description | 
|---|---|
| form_mode_manager_entity_operation | Implements hook_entity_operation(). | 
| form_mode_manager_entity_operation_alter | Implements hook_entity_operation_alter(). | 
| form_mode_manager_entity_type_alter | Implements hook_entity_type_alter(). | 
| form_mode_manager_entity_type_build | Implements hook_entity_type_build(). | 
| form_mode_manager_theme | Implements hook_theme(). | 
| template_preprocess_form_mode_manager_add_list | Prepares variables for list of available entity type templates. | 
