term_reference_tree bug fix

This commit is contained in:
2026-09-29 00:05:08 +02:00
parent 6b8c1d9353
commit 9136dc3ddb
4 changed files with 12 additions and 22 deletions
@@ -5,33 +5,23 @@
* Admin back-office enhancements.
*/
use Drupal\term_reference_tree\Plugin\Field\FieldWidget\TermReferenceTree;
/**
* Implements hook_field_widget_single_element_form_alter().
*
* Attaches the widget layout library wherever the term reference tree widget
* renders (thesaurus on materiau, etc.), so the selection tree (left) and the
* sortable track list (right) sit side by side.
*
* Transposed from the retired matminimal theme CSS, which was tied to the old
* adminimal-based admin theme. The selectors target the widget's own markup
* classes and are admin-theme agnostic (works under Gin 4 and Gin 5).
*/
function materio_admin_field_widget_single_element_form_alter(array &$element, \Drupal\Core\Form\FormStateInterface $form_state, array $context) {
if (isset($context['widget']) && $context['widget'] instanceof TermReferenceTree) {
$element['#attached']['library'][] = 'materio_admin/term_reference_tree';
}
}
/**
* Implements hook_page_attachments().
*
* Loads the general admin table styling on every admin route (compact
* paddings + constrained widths, replacing the old matminimal rules).
*
* Also loads the term reference tree widget layout (selection tree left,
* sortable track list right) on admin routes. Attaching it here instead of
* hook_field_widget_single_element_form_alter() keeps the widget element's
* own #attached libraries intact: setting #attached in that alter hook
* prevented FormBuilder's element-info defaults merge ($element += $info)
* from applying the checkbox_tree element #attached, which silently dropped
* term_reference_tree/term_reference_tree_js and _css.
*/
function materio_admin_page_attachments(array &$attachments) {
if (\Drupal::service('router.admin_context')->isAdminRoute()) {
$attachments['#attached']['library'][] = 'materio_admin/admin_tables';
$attachments['#attached']['library'][] = 'materio_admin/term_reference_tree';
}
}