class DisplayFieldCopyForm in Display Field Copy 2.x
Same name and namespace in other branches
- 8 src/Form/DisplayFieldCopyForm.php \Drupal\display_field_copy\Form\DisplayFieldCopyForm
Configure copy fields.
Hierarchy
- class \Drupal\display_field_copy\Form\DisplayFieldCopyForm extends \Drupal\ds\Form\FieldFormBase
Expanded class hierarchy of DisplayFieldCopyForm
1 file declares its use of DisplayFieldCopyForm
- DisplayFieldCopy.php in src/
Plugin/ Derivative/ DisplayFieldCopy.php
1 string reference to 'DisplayFieldCopyForm'
File
- src/
Form/ DisplayFieldCopyForm.php, line 21
Namespace
Drupal\display_field_copy\FormView source
class DisplayFieldCopyForm extends FieldFormBase {
/**
* The type of the dynamic ds field.
*/
const TYPE = 'display_field_copy';
/**
* Entity Field Manager.
*
* @var \Drupal\Core\Entity\EntityFieldManagerInterface
*/
protected $entityFieldManager;
/**
* Entity Type Bundle Info.
*
* @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface
*/
protected $entityTypeBundleInfo;
/**
* {@inheritdoc}
*/
public function __construct(ConfigFactoryInterface $config_factory, EntityTypeManagerInterface $entity_type_manager, CacheTagsInvalidatorInterface $cache_invalidator, ModuleHandlerInterface $module_handler, EntityFieldManagerInterface $entity_field_manager, EntityTypeBundleInfoInterface $entity_type_bundle_info) {
parent::__construct($config_factory, $entity_type_manager, $cache_invalidator, $module_handler);
$this->entityFieldManager = $entity_field_manager;
$this->entityTypeBundleInfo = $entity_type_bundle_info;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('config.factory'), $container
->get('entity_type.manager'), $container
->get('cache_tags.invalidator'), $container
->get('module_handler'), $container
->get('entity_field.manager'), $container
->get('entity_type.bundle.info'));
}
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'ds_field_form';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state, $field_key = '') {
$form = parent::buildForm($form, $form_state, $field_key);
$form['entities']['#access'] = FALSE;
$form['ui_limit']['#access'] = FALSE;
$options = [];
foreach ($this->entityTypeManager
->getDefinitions() as $entity_type_id => $entity_type) {
if (!$entity_type instanceof ContentEntityTypeInterface) {
continue;
}
$bundles = $this->entityTypeBundleInfo
->getBundleInfo($entity_type_id);
foreach ($bundles as $bundle_id => $data) {
$fields = $this->entityFieldManager
->getFieldDefinitions($entity_type_id, $bundle_id);
foreach ($fields as $field_id => $field) {
if ($field instanceof BaseFieldDefinition) {
$options[$entity_type_id . '.' . $field_id] = $entity_type
->getLabel() . ' - ' . $field
->getLabel();
}
elseif ($field instanceof FieldConfigInterface) {
$options[$field
->id()] = $entity_type
->getLabel() . ' (' . $data['label'] . ') - ' . $field
->label();
}
}
}
}
$field = $this->field;
$form['ds_field_identity']['field_id'] = array(
'#type' => 'select',
'#options' => $options,
'#title' => t('Fields'),
'#required' => TRUE,
'#default_value' => isset($field['properties']['field_id']) ? $field['properties']['field_id'] : '',
);
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$field_id = $form_state
->getValue('field_id');
$pieces = explode('.', $field_id);
$entity_type_id = $pieces[0];
$entities = $form_state
->getValue('entities');
foreach ($entities as $key => $value) {
$entities[$key] = 0;
}
$entities[$entity_type_id] = $entity_type_id;
$form_state
->setValue('entities', $entities);
if (count($pieces) == 3) {
$bundle_id = $pieces[1];
$form_state
->setValue('ui_limit', $bundle_id . '|*');
}
return parent::submitForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function getProperties(FormStateInterface $form_state) {
return array(
'field_id' => $form_state
->getValue('field_id'),
);
}
/**
* {@inheritdoc}
*/
public function getType() {
return self::TYPE;
}
/**
* {@inheritdoc}
*/
public function getTypeLabel() {
return 'Copy field';
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DisplayFieldCopyForm:: |
protected | property | Entity Field Manager. | |
DisplayFieldCopyForm:: |
protected | property | Entity Type Bundle Info. | |
DisplayFieldCopyForm:: |
public | function | ||
DisplayFieldCopyForm:: |
public static | function | ||
DisplayFieldCopyForm:: |
public | function | ||
DisplayFieldCopyForm:: |
public | function | ||
DisplayFieldCopyForm:: |
public | function | ||
DisplayFieldCopyForm:: |
public | function | ||
DisplayFieldCopyForm:: |
public | function | ||
DisplayFieldCopyForm:: |
constant | The type of the dynamic ds field. | ||
DisplayFieldCopyForm:: |
public | function |