From ddb8f28a52aced9e5469d483660a2c4d11991f1a Mon Sep 17 00:00:00 2001 From: rdrew Date: Thu, 9 Oct 2025 13:17:51 -0300 Subject: [PATCH] 1st --- css/mobile_facets.css | 58 +++++++++++++++++++++++++ js/mobile_facets.js | 16 +++++++ mobile_facets.info.yml | 5 +++ mobile_facets.libraries.yml | 8 ++++ mobile_facets.module | 29 +++++++++++++ templates/region--sidebar.html.twig.new | 31 +++++++++++++ 6 files changed, 147 insertions(+) create mode 100755 css/mobile_facets.css create mode 100755 js/mobile_facets.js create mode 100644 mobile_facets.info.yml create mode 100644 mobile_facets.libraries.yml create mode 100644 mobile_facets.module create mode 100755 templates/region--sidebar.html.twig.new diff --git a/css/mobile_facets.css b/css/mobile_facets.css new file mode 100755 index 0000000..bec8836 --- /dev/null +++ b/css/mobile_facets.css @@ -0,0 +1,58 @@ +/*mobile search facets*/ +.region--sidebar { + .block { + /*display: none;*/ + margin-bottom: 2em; + } + .block.hidden { + /*display: none !important;*/ + } +} + +@media (max-width: 1000px) { + .facet-wrapper { + display: none; + } + #toggle-facets { + background-color: var(--color--bdh-red); + transition: filter 0.2s ease; /* Optional: smooth transition */ + font-size:1em; + color: white; + border: none; + padding: 10px 15px; + border-radius: 4px; + cursor: pointer; + /*temp*/ + display: block; + width: 100%; + &:hover { + filter: brightness(1.5); /* Lightens by 10% */ + } + } + .sidebar-grid { + display: grid; + grid-template-columns: 1fr; /* Single column for vertical stacking */ + gap: 1rem; /* Optional: adds space between items */ + } + .sidebar-grid .region--sidebar { + grid-column: 1 / 15; + } + + main { + order: 2; /* Places main after aside visually */ + } + + aside { + order: 1; /* Places aside before main visually */ + } + .sidebar-grid > .site-main { + grid-column: 1 / 15; + align-self: flex-start; + } +} + +@media (min-width: 1001px) { + #toggle-facets { + display: none; + } +} diff --git a/js/mobile_facets.js b/js/mobile_facets.js new file mode 100755 index 0000000..43f015b --- /dev/null +++ b/js/mobile_facets.js @@ -0,0 +1,16 @@ +(function (Drupal) { + document.addEventListener("DOMContentLoaded", function () { + const toggleButton = document.getElementById("toggle-facets"); + const facetWrapper = document.querySelector( + ".region--sidebar .facet-wrapper" + ); + + if (toggleButton && facetWrapper) { + toggleButton.addEventListener("click", function () { + const isHidden = + facetWrapper.style.display === "none" || !facetWrapper.style.display; // Accounts for CSS default + facetWrapper.style.display = isHidden ? "block" : "none"; + }); + } + }); +})(Drupal); diff --git a/mobile_facets.info.yml b/mobile_facets.info.yml new file mode 100644 index 0000000..d43ccd5 --- /dev/null +++ b/mobile_facets.info.yml @@ -0,0 +1,5 @@ +name: 'Mobile Facets' +type: module +description: 'Attaches mobile facets CSS/JS and overrides the sidebar region template.' +core_version_requirement: ^10 +package: Custom diff --git a/mobile_facets.libraries.yml b/mobile_facets.libraries.yml new file mode 100644 index 0000000..c7d7238 --- /dev/null +++ b/mobile_facets.libraries.yml @@ -0,0 +1,8 @@ +mobile_facets: + css: + theme: + css/mobile_facets.css: {} + js: + js/mobile_facets.js: {} + dependencies: + - core/drupal diff --git a/mobile_facets.module b/mobile_facets.module new file mode 100644 index 0000000..ee4c76a --- /dev/null +++ b/mobile_facets.module @@ -0,0 +1,29 @@ +getActiveTheme()->getName(); + + // Optional: Restrict to a specific theme (e.g., 'my_custom_theme') to avoid affecting admin themes. + // if ($active_theme !== 'my_custom_theme') { + // return; + // } + + // Set the path for the 'region' theme hook to your module's templates directory. + if (isset($theme_registry['region']['path'])) { + $module_path = \Drupal::service('extension.list.module')->getPath('mobile_facets'); + $theme_registry['region']['path'] = $module_path . '/templates'; + } +} diff --git a/templates/region--sidebar.html.twig.new b/templates/region--sidebar.html.twig.new new file mode 100755 index 0000000..1b08d79 --- /dev/null +++ b/templates/region--sidebar.html.twig.new @@ -0,0 +1,31 @@ +{# +/** + * @file + * Olivesbdh's theme override to display the sidebar region. + * + * Available variables: + * - content: The content for this region, typically blocks. + * - attributes: HTML attributes for the region
. + * - region: The name of the region variable as defined in the theme's + * .info.yml file. + * + * @see template_preprocess_region() + */ +#} +{% + set classes = [ + 'region', + 'region--' ~ region|clean_class, + ] +%} + +{{ attach_library('olivesbdh/sidebar') }} + +{% if content %} + + {##} +
+ {{ content }} +
+ +{% endif %}