You are here

field_ui_test.module in Drupal 9

Field UI test module.

File

core/modules/field_ui/tests/modules/field_ui_test/field_ui_test.module
View source
<?php

/**
 * @file
 * Field UI test module.
 */
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Render\Element;
use Drupal\Core\Field\FieldConfigInterface;

/**
 * Implements hook_ENTITY_TYPE_access().
 */
function field_ui_test_field_config_access(FieldConfigInterface $field) {
  return AccessResult::forbiddenIf($field
    ->getName() == 'highlander');
}

/**
 * Implements hook_form_FORM_BASE_ID_alter().
 */
function field_ui_test_form_entity_view_display_edit_form_alter(&$form, FormStateInterface $form_state) {
  $table =& $form['fields'];
  foreach (Element::children($table) as $name) {
    $table[$name]['parent_wrapper']['parent']['#options'] = [
      'indent' => 'Indent',
    ];
    $table[$name]['parent_wrapper']['parent']['#default_value'] = 'indent';
  }
  $table['indent'] = [
    '#attributes' => [
      'class' => [
        'draggable',
        'field-group',
      ],
      'id' => 'indent-id',
    ],
    '#row_type' => 'group',
    '#region_callback' => 'field_ui_test_region_callback',
    '#js_settings' => [
      'rowHandler' => 'group',
    ],
    'human_name' => [
      '#markup' => 'Indent',
      '#prefix' => '<span class="group-label">',
      '#suffix' => '</span>',
    ],
    'weight' => [
      '#type' => 'textfield',
      '#default_value' => 0,
      '#size' => 3,
      '#attributes' => [
        'class' => [
          'field-weight',
        ],
      ],
    ],
    'parent_wrapper' => [
      'parent' => [
        '#type' => 'select',
        '#options' => [
          'indent' => 'Indent',
        ],
        '#empty_value' => '',
        '#default_value' => '',
        '#attributes' => [
          'class' => [
            'field-parent',
          ],
        ],
        '#parents' => [
          'fields',
          'indent',
          'parent',
        ],
      ],
      'hidden_name' => [
        '#type' => 'hidden',
        '#default_value' => 'indent',
        '#attributes' => [
          'class' => [
            'field-name',
          ],
        ],
      ],
    ],
  ];
}
function field_ui_test_region_callback($row) {
  return 'content';
}