Skip to content
Snippets Groups Projects
Commit 93099f03 authored by Florent Torregrosa's avatar Florent Torregrosa
Browse files

Issue #3498478 by grimreaper: Support Fences

parent d15356d1
No related branches found
No related tags found
1 merge request!255Issue #3498478 by grimreaper: Support Fences
Pipeline #392201 passed
<?php
declare(strict_types=1);
namespace Drupal\ui_suite_bootstrap\HookHandler;
/**
* Add variables to add optional support of Fences.
*/
class PreprocessField {
/**
* Add variables to add optional support of Fences.
*
* @param array $variables
* The preprocessed variables.
*/
public function preprocess(array &$variables): void {
$variables['display_field_tag'] = $variables['display_field_tag'] ?? TRUE;
$variables['display_label_tag'] = $variables['display_label_tag'] ?? TRUE;
$variables['display_items_wrapper_tag'] = $variables['display_items_wrapper_tag'] ?? TRUE;
$variables['display_item_tag'] = $variables['display_item_tag'] ?? TRUE;
}
}
......@@ -39,29 +39,48 @@
*/
#}
{{ attach_library('ui_suite_bootstrap/field') }}
{%
set title_classes = [
{% set title_classes = [
'field--label',
'field--label--' ~ label_display|clean_class,
label_display == 'visually_hidden' ? 'visually-hidden',
label_display == 'inline' ? 'float-start',
label_display == 'inline' ? 'pe-2',
'fw-bold',
]
%}
{% set field_items_attributes = create_attribute({
'class': [
] %}
{% set field_items_wrapper_attributes = create_attribute(field_items_wrapper_attributes|default({})) %}
{% set field_items_wrapper_classes = [
'field--items',
multiple and label_display == 'inline' ? 'float-start',
]
}) %}
<div{{ attributes }}>
] %}
{%- if display_field_tag ~%}
<{{ field_tag|default('div') }}{{ attributes }}>
{%- endif -%}
{% if not label_hidden %}
<div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
{% if display_label_tag -%}
<{{ label_tag|default('div') }}{{ title_attributes.addClass(title_classes) }}>
{%- endif -%}
{{ label }}
{%- if display_label_tag -%}
</{{ label_tag|default('div') }}>
{%- endif -%}
{% endif %}
<div{{ field_items_attributes }}>
{% for item in items %}
<div{{ item.attributes.addClass('field--item') }}>{{ item.content }}</div>
{% endfor %}
</div>
</div>
{% if display_items_wrapper_tag ~%}
<{{ field_items_wrapper_tag|default('div') }}{{ field_items_wrapper_attributes.addClass(field_items_wrapper_classes) }}>
{%- endif -%}
{% for item in items %}
{%- if display_item_tag ~%}
<{{ field_item_tag|default('div') }}{{ item.attributes.addClass('field--item') }}>
{%- endif -%}
{{ item.content }}
{%- if display_item_tag -%}
</{{ field_item_tag|default('div') }}>
{%- endif -%}
{% endfor %}
{%- if display_items_wrapper_tag ~%}
</{{ field_items_wrapper_tag|default('div') }}>
{%- endif -%}
{% if display_field_tag ~%}
</{{ field_tag|default('div') }}>
{%- endif -%}
......@@ -16,6 +16,7 @@ use Drupal\ui_suite_bootstrap\HookHandler\FormNodePreviewFormSelectAlter;
use Drupal\ui_suite_bootstrap\HookHandler\FormSearchBlockFormAlter;
use Drupal\ui_suite_bootstrap\HookHandler\FormViewsExposedFormAlter;
use Drupal\ui_suite_bootstrap\HookHandler\PreprocessDetailsAccordion;
use Drupal\ui_suite_bootstrap\HookHandler\PreprocessField;
use Drupal\ui_suite_bootstrap\HookHandler\PreprocessFieldset;
use Drupal\ui_suite_bootstrap\HookHandler\PreprocessFileLink;
use Drupal\ui_suite_bootstrap\HookHandler\PreprocessFilterTips;
......@@ -120,6 +121,16 @@ function ui_suite_bootstrap_preprocess_details__accordion(array &$variables): vo
$instance->preprocess($variables);
}
/**
* Implements hook_preprocess_HOOK() for 'field'.
*/
function ui_suite_bootstrap_preprocess_field(array &$variables): void {
/** @var \Drupal\ui_suite_bootstrap\HookHandler\PreprocessField $instance */
$instance = \Drupal::service('class_resolver')
->getInstanceFromDefinition(PreprocessField::class);
$instance->preprocess($variables);
}
/**
* Implements hook_preprocess_HOOK() for 'fieldset'.
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment