diff --git a/modules/oe_whitelabel_search/src/Plugin/Block/SearchBlock.php b/modules/oe_whitelabel_search/src/Plugin/Block/SearchBlock.php index b70ff95effd3036324c19d1472810f1626f3c3e5..c2fcb9727f75996e21eb3f3eb8737e9e7af040e3 100644 --- a/modules/oe_whitelabel_search/src/Plugin/Block/SearchBlock.php +++ b/modules/oe_whitelabel_search/src/Plugin/Block/SearchBlock.php @@ -129,8 +129,7 @@ class SearchBlock extends BlockBase implements ContainerFactoryPluginInterface { '#type' => 'textfield', '#title' => $this->t('Input placeholder text'), '#description' => $this->t('The placeholder that will be shown inside the input field.'), - '#default_value' => $this->t('Search'), - '#value' => $config['input']['placeholder'], + '#default_value' => $config['input']['placeholder'] ?? $this->t('Search'), ]; $form['button'] = [ '#type' => 'details', diff --git a/oe_whitelabel.theme b/oe_whitelabel.theme index 1941cd054fbb8da2cdf4dd0f6d99349b8425de0b..b42c7187f298c72991c24050c994064f50966ba0 100644 --- a/oe_whitelabel.theme +++ b/oe_whitelabel.theme @@ -111,6 +111,16 @@ function oe_whitelabel_form_system_theme_settings_alter(&$form, FormStateInterfa '#default_value' => theme_get_setting('component_library'), '#description' => t('Choose "European Commission" for websites hosted under the ec.europa.eu domain and "European Union" for websites hosted under the europa.eu domain.'), ]; + $form['header_style'] = [ + '#type' => 'select', + '#title' => t('Background style'), + '#options' => [ + 'standard' => t('Blue header'), + 'light' => t('Light header'), + ], + '#default_value' => theme_get_setting('header_style'), + '#description' => t('Choose the header color'), + ]; } /** @@ -118,4 +128,5 @@ function oe_whitelabel_form_system_theme_settings_alter(&$form, FormStateInterfa */ function oe_whitelabel_preprocess(&$variables) { $variables['bcl_component_library'] = theme_get_setting('component_library') ?? 'eu'; + $variables['bcl_header_style'] = theme_get_setting('header_style') ?? 'standard'; } diff --git a/templates/overrides/navigation/block--system-branding-block.html.twig b/templates/overrides/navigation/block--system-branding-block.html.twig index b35d69552a514c3505aa4ee473c0f4797ecd14cd..f48ee7a5732f343d12702d765e8a582f0f98e888 100644 --- a/templates/overrides/navigation/block--system-branding-block.html.twig +++ b/templates/overrides/navigation/block--system-branding-block.html.twig @@ -13,14 +13,42 @@ * - site_slogan: Slogan for site as defined in Site information settings. */ #} +{% + set logo_classes = [ + 'text-decoration-none', + 'site-logo', + ] +%} +{% + set name_classes = [ + 'text-decoration-none', + 'align-bottom', + bcl_header_style == 'light' ? 'text-dark': 'text-white', + ] +%} +{% + set img_classes = [ + 'd-none', + 'd-lg-inline-block', + ] +%} + +{% set site_logo_attr = create_attribute() %} +{% set site_logo_img_attr = create_attribute() %} +{% set site_name_attr = create_attribute() %} + {% block content %} {% if site_logo %} - <a class="text-decoration-none site-logo" href="{{ path('<front>') }}" rel="home"> - <img class="d-none d-lg-inline-block" src="{{ site_logo }}" alt="{{ 'Home'|t }}" /> + <a {{ site_logo_attr.addClass(logo_classes).setAttribute('rel', 'Home') }} href="{{ path('<front>') }}"> + <img {{ site_logo_img_attr.addClass(img_classes).setAttribute('alt', 'Home'|t) }} src="{{ site_logo }}" /> </a> {% endif %} {% if site_name %} - <p class="site-name"><a class="text-white text-decoration-none align-bottom" href="{{ path('<front>') }}" rel="home">{{ site_name }}</a></p> + <p class="site-name"> + <a {{ site_name_attr.addClass(name_classes).setAttribute('rel', 'Home') }} href="{{ path('<front>') }}"> + {{ site_name }} + </a> + </p> {% endif %} {% if site_slogan %} <div class="site-slogan">{{ site_slogan }}</div> diff --git a/templates/patterns/header/pattern-header--variant-ec.html.twig b/templates/patterns/header/pattern-header--variant-ec.html.twig index 74ae4ba234382a134be045e4541ff0249739ff2d..2513d7c388091d008eb003128b8965c3a67a180f 100644 --- a/templates/patterns/header/pattern-header--variant-ec.html.twig +++ b/templates/patterns/header/pattern-header--variant-ec.html.twig @@ -1,22 +1,13 @@ -<header class="ec__header bcl-header"> - <nav class="w-100 shadow-sm navbar navbar-expand-lg navbar-light"> - <div class="container"> - {{ navbar_branding }} - <ul class="nav"> - {{ navbar_right }} - </ul> - </div> - </nav> - <div class="bcl-header__project"> - <div class="container"> - {{ header_top }} - </div> - </div> - {% set attributes = { - 'class': [ - 'bcl-header__navbar', - ] - } %} +{% extends "pattern-header.html.twig" %} +{# +/** + * @file + * Template override for pattern header variant EC. + */ +#} +{% set _header_classes = attributes.addClass('ec__header') %} + +{% block content %} {{ pattern('navbar', { navbar_left: header_left, navbar_right: header_right, @@ -24,7 +15,4 @@ collapse_id: 'navbarNavDropdown', attributes: attributes }) }} - <div class="container"> - {{ breadcrumbs }} - </div> -</header> +{% endblock %} diff --git a/templates/patterns/header/pattern-header--variant-eu.html.twig b/templates/patterns/header/pattern-header--variant-eu.html.twig index e7accdf62bbe7b31aa686e605d772357893dabbf..cb6d8c774154066b64982af590108fbbfe9172aa 100644 --- a/templates/patterns/header/pattern-header--variant-eu.html.twig +++ b/templates/patterns/header/pattern-header--variant-eu.html.twig @@ -1,22 +1,11 @@ -<header class="bcl-header"> - <nav class="w-100 shadow-sm navbar navbar-expand-lg navbar-light"> - <div class="container"> - {{ navbar_branding }} - <ul class="nav"> - {{ navbar_right }} - </ul> - </div> - </nav> - <div class="bcl-header__project"> - <div class="container"> - {{ header_top }} - </div> - </div> - {% set attributes = { - 'class': [ - 'bcl-header__navbar', - ] - } %} +{% extends "pattern-header.html.twig" %} +{# +/** + * @file + * Template override for pattern header variant EU. + */ +#} +{% block content %} {{ pattern('navbar', { navbar_left: header_left, navbar_right: header_right, @@ -24,7 +13,4 @@ collapse_id: 'navbarNavDropdown', attributes: attributes }) }} - <div class="container"> - {{ breadcrumbs }} - </div> -</header> +{% endblock %} diff --git a/templates/patterns/header/pattern-header.html.twig b/templates/patterns/header/pattern-header.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..582c77b5f3f9ebdd91fecdd6f117e53742bae682 --- /dev/null +++ b/templates/patterns/header/pattern-header.html.twig @@ -0,0 +1,46 @@ +{% + set _header_classes = [ + 'bcl-header', + ] +%} +{% + set _nav_classes = [ + 'w-100', + 'shadow-sm', + 'navbar', + 'navbar-expand-lg', + 'navbar-light', + ] +%} +<header {{ attributes.addClass(_header_classes) }}> + <nav {{ attributes.addClass(_nav_classes) }}> + <div class="container"> + {{ navbar_branding }} + <ul class="nav"> + {{ navbar_right }} + </ul> + </div> + </nav> + {% + set _project_classes = [ + 'bcl-header__project', + bcl_header_style == 'light' ? bcl_header_style, + ] + %} + <div {{attributes.addClass(_project_classes)}}> + <div class="container"> + {{ header_top }} + </div> + </div> + {% set attributes = { + 'class': [ + 'bcl-header__navbar', + ] + } %} + {% block content %} + {{ content}} + {% endblock %} + <div class="container"> + {{ breadcrumbs }} + </div> +</header>