Add dynamic menu block based on site structure hierarchy

Implements SiteStructureMenuBlock that renders a navigation menu
from the ancestor entity (term, user, or group) through all
content_page hierarchies. Features configurable depth, active
trail highlighting, and proper cache invalidation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-03 20:13:51 -03:00
parent 8a42a6f1c1
commit a52f564192
6 changed files with 637 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
/**
* @file
* Styles for the site structure menu block.
*/
.site-structure-menu {
font-size: 0.9rem;
}
.site-structure-menu__title {
font-size: 1.1rem;
margin-bottom: 0.75rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid #ddd;
}
.site-structure-menu__title a {
text-decoration: none;
color: inherit;
}
.site-structure-menu__title a:hover {
text-decoration: underline;
}
.site-structure-menu__list {
list-style: none;
margin: 0;
padding: 0;
}
.site-structure-menu__list--level-2,
.site-structure-menu__list--level-3,
.site-structure-menu__list--level-4 {
padding-left: 1rem;
}
.site-structure-menu__item {
margin: 0.25rem 0;
}
.site-structure-menu__link {
display: block;
padding: 0.25rem 0.5rem;
text-decoration: none;
color: #333;
border-radius: 3px;
transition: background-color 0.15s ease;
}
.site-structure-menu__link:hover {
background-color: #f5f5f5;
text-decoration: none;
}
.site-structure-menu__link--active-trail {
font-weight: 600;
color: #0073bd;
}
.site-structure-menu__item--active-trail > .site-structure-menu__link {
background-color: #e8f4fc;
}