În sfârșit, am realizat ceea ce mi-am dorit făcând următoarele
mymodule/mymodule.module
utilizați Drupal\Core\Form\FormStateInterface;
utilizați Drupal\mymodule\Alter\FieldWidget\BlockImagesParagraph;
/**
* Implementează hook_field_widget_single_element_WIDGET_TYPE_form_alter().
*/
funcția mymodule_field_widget_single_element_entity_reference_paragraphs_form_alter(&$element, FormStateInterface $form_state, $context) {
if ($element['#paragraph_type'] == 'bloc_images') {
\Drupal::service('class_resolver')
->getInstanceFromDefinition(BlockImagesParagraph::class)
->alterFieldWidget($element, $form_state, $context);
}
}
mymodule/src/Alter/FieldWidget
spațiu de nume Drupal\mymodule\Alter\FieldWidget;
utilizați Drupal\Core\Form\FormStateInterface;
/**
* Modificați paragraful block_images.
*/
clasa finală BlockImagesParagraph {
/**
* Modificați widgetul câmpului.
*
* @param matrice $element
* Elementul de formular widget de câmp.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* Starea formei.
* @param array $context
* O matrice asociativă reprezentând contextul.
*/
funcția publică alterFieldWidget(array &$element, FormStateInterface $form_state, array $context) {
$widget = &$element['subform']['imagine']['widget'];
foreach ($widget ca $key => &$valoare) {
dacă (! is_int($key)) {
continua;
}
$value['#process'][] = [
„Drupal\mymodule\Alter\FieldWidget\BlockImagesParagraph”,
„processImageWidget”,
];
}
}
/**
* Procesați widgetul de imagine.
*
* @param matrice $element
* Elementul de formular widget de câmp.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* Starea formei.
* @param matrice $form
* Un tablou asociativ reprezentând forma.
*/
funcția publică statică processImageWidget(array $element, FormStateInterface $form_state, array $form) {
if (isset($element['titlu'])) {
$element['title']['#title'] = t('titlu');
}
returnează $element;
}
}