fixed inline editing views admin conflict btw filters an save button
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Correctifs de compatibilité pour le thème d'administration Gin.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implements hook_preprocess_block().
|
||||
*
|
||||
* Un formulaire de filtres exposés placé en bloc autonome (Views > "Exposed
|
||||
* form in block") perd la classe "views-exposed-form" sur sa balise <form> :
|
||||
* Drupal core (BlockViewBuilder::preRender()) retire volontairement
|
||||
* #attributes du contenu d'un bloc pour le fusionner dans le wrapper du
|
||||
* bloc, donc tout ce qu'on ajoute via hook_form_alter atterrit sur le <div>
|
||||
* englobant plutôt que sur le <form>. Or c'est justement cette classe que
|
||||
* Claro/Gin ciblent nativement pour la mise en page flex (voir
|
||||
* claro/css/components/views-exposed-form.css). On la réinjecte donc ici,
|
||||
* après ce "vol" d'attributs, directement sur le contenu du bloc afin
|
||||
* qu'elle atterrisse sur le <form> lors de son propre rendu.
|
||||
*/
|
||||
function gin_compat_preprocess_block(array &$variables) {
|
||||
$plugin_id = $variables['plugin_id'] ?? '';
|
||||
if (str_starts_with($plugin_id, 'views_exposed_filter_block:')) {
|
||||
$variables['content']['#attributes']['class'][] = 'views-exposed-form';
|
||||
// Le wrapper du bloc porte nativement cette même classe : neutralise sa
|
||||
// "card" (padding/marge/bordure/ombre) pour éviter qu'elle se double
|
||||
// avec celle du <form>. Voir css/exposed-filters-block.css.
|
||||
$variables['content']['#attached']['library'][] = 'gin_compat/exposed-filters-block';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user